登录 注册 App下载 简体中文
  • 简体中文
  • English
  • 交易
  • 行情
  • 快讯
  • 首页 > 资讯 > 币种新闻

    并不那么小白的,小白看 Nervos 之 CKB

    2020-03-24 20:24


    在开始之前还是觉得有必要明确一下作者本人的认知水平,理科男、非程序猿,接触区块链大约两年时间,喜欢区块链技术。

    本系列主要是想以一种通俗易懂的方式向大家介绍一下 Nervos,其中可能会涉及到一部分关于技术的内容,但是会尽量以打比方举例子的形式方便大家理解。主要还是想让大家能够理解 Nervos 是什么,以及了解 Nervos 究竟做了些什么。

    今天主要聊的话题就是:当你购买 CKB,你究竟买到了些什么?

    CKB 是 Nervos Network 的 Layer1 层的原生 Token 的名称。对于 CKB 这个缩写,目前主要有两种同样合理的释义:

    第一种,CKB 是(Common Knowledge Base 共同知识库)的缩写,从字母意思理解就是,“共同知识”就是一群人共同认同并接受的数据,而 CKB 寓意着希望成为所有人存储共同知识的地方。

    第二种,CKB 是(Common Knowledge Byte 共同知识字节)的缩写,前面的“共同知识”同第一种解释是一样的,而最后的 Base 被替换成为了 Byte 字节(字节:是计算机内用于计量存储容量的一种计量单位),Byte 赋予了 CKB 实际的物理意义,演变成为了 CKByte,CKByte 是所有人用来存储共同知识的物理空间。

    看到这里,你可能还是挺疑惑的,这里的“共同知识”到底是什么意思,而这两种释义又蕴含了什么深意,又有什么区别,接下来我会用一定的篇幅来向大家解释这两种概念,以及 CKB 的设计究竟解决了哪些问题。

    CKB 是共同知识库

    CKB 是“共同知识库”。“共同”就是一个群体都认可的,都接受的。而“知识”的界定其实并不明确,柏拉图提出了一个比较经典的定义:“一条陈述能称得上是知识必须满足三个条件,它一定是被验证过的,正确的,而且是被人们相信的,这也是科学与非科学的区分标准。”

    这里,我们首先需要明确知识和数据是不同的,目前的我们正处于一个数据爆炸的时代,我们以前在书本上学习到的被称之为知识的内容,都已经被移植到了计算机上,成为了电子数据的一部分。我们在电脑和手机上看到的文字、图片等等本质上都是数据,但是其中只有很小的一部分能被称之为知识。比如我们经常看到的物理公式或者化学方程式、物种日历介绍的生物科普、局座开展的军事讲座等等,这些被验证过,正确的,且被人们相信的数据才可以真正被称之为知识。


    “共同知识”是需要经过验证的,正确的,并在一群人中达成共识的知识。比如全人类都遵守在数学领域中“1+1=2”这个最基本设定,比如编程语言都需要认可“与/and”“或/or”“非/not”这些三种基本的逻辑门,这些共同知识是团队协作、社会协作、全人类协作的基础。只有基于这一系列的共同知识,我们才会在这个基础上逐渐演化出民族、宗教、国家、团队、企业、文化、经济等等社会形式,而这些社会形式的扩展和发展,也都是基于新的共同知识在不断地形成、认可和固定。

    可以说共同知识的形成和传递是人类社会的基础和关键。

    而区块链在一定程度上就是一个共同知识库。区块链是一条数据链,这里面的数据不仅包含了我们常提及的数字资产和智能合约,还包含了加密算法,隐私算法以及未来所有可能放到链上的逻辑或功能。而这些数据会一次一次地被各个节点验证正确性,最终经过所有节点的确认并达成一致共识,区块链的整个过程在慢慢被人们理解和相信的过程中,逐渐以一种非常低的成本沉淀为所有目前正在使用或者未来即将使用这条区块链的人的共同知识。

    目前我们对区块链的认知和使用的水平还是处于一个非常早期的水平,最主要还是数字资产的发行和流转以及一些简单的智能合约逻辑,我相信随着技术的进步,新的验证逻辑在区块链上的实现,会有更多更复杂的共同知识在区块链上沉淀下来。

    因此我们可以说:促进共同知识的形成和传递才是区块链的核心价值所在。

    这也是 CKB 的定位, CKB 不希望成为一台世界计算机,而是希望成为人类的共同知识库。

    CKB 是一种物理资源

    上面我们已经谈到了 CKB 的目标是成为人类的共同知识库。在这个设定下,Nervos 团队发行了 CKB 这个 Token,然后标榜 CKB 就是所谓的共同知识库,我想这样的推论断然是站不住脚的。

    CKB 可以称之为共同知识库,是因为 CKB 真实地绑定了区块链上实际的物理资源的,每 1 个 CKB 都对应着 Nervos CKB 网络上 1 Byte 的存储空间。

    首先我们需要解答一个问题,为什么存储空间才是区块链上的共同知识库?

    区块链最常见的解释是,区块链是一个不可篡改的分布式数据库。而区块链之所以可以成为一个不可篡改的分布式数据库,是因为区块链上的这些数据是经过全球无数台,分属于不同人、不同团体、不同机构的计算机共同验证通过的。在区块链在实际运行上其实就是无数台计算机执行相同的内容而已,而对于任意一台计算机,我们可以大致将计算机资源分为:带宽、CPU、内存、硬盘。

    我们进一步分析一下这些计算机资源,带宽:用于接收和传输数据;CPU:用于处理和计算数据;内存:用于暂存当前正在处理的数据;硬盘:用于存储已经处理好的需要长久保存的数据。

    从我们使用电脑的角度来看,带宽、CPU、内存其实都属于瞬时资源,通常情况下在你使用这些资源的同时,它会实时地恢复,比如当前的带宽是 1M/s,它在任何时候都是 1M/s,不会因为你下载了一个文件而减少,1M/s 决定的只是你瞬时下载速度的上限。而硬盘则属于非瞬时资源,你在电脑中存储了一个文档或者一张照片,它是长时间地占据硬盘空间的,在接下的时间内,你可以随时再调用查看它,当然你的硬盘空间始终是需要消耗掉一部分的,除非你选择彻底删除这个文件或者照片,这部分存储空间才可能会被再次使用,存入新的数据。

    让我们回到上面的问题,区块链上所有被验证过的、正确的,且被人们相信的数据,也就是共同知识,最终是被存储在了什么地方?不是带宽、不是CPU、不是内存,而是硬盘代表的存储空间。所以 CKB 对应的存储空间,才可能真正地成为区块链上的共同知识库。

    就是这样一个简单的道理,目前只有 Nervos 一个项目是真正朝着这个方向去努力的。

    CKB 选择了一条特别的路

    上面提到的共同知识库和物理资源,我们更多地只是介绍了 CKB 是什么?而我们决定更近一步,去探寻 CKB 会走上这一条路的深层原因。

    区块链作为一台世界计算机,其资源肯定是有限的,这种有限体现在 Bitcoin 和 Ethereum 7/15 tps,因此并非所有人都能够使用到该资源。当所有人都挤着脑袋需要使用这台电脑时,理所当然的,在区块链上的用户或者开发者需要使用和占用这些有限的资源进行付费。

    在 Bitcoin、Ethereum 上,这些费用被笼统地以交易手续费的形式支付,你支付一次交易手续费,就可以使用一部分带宽、CPU、内容以及占用一部分硬盘空间。目前 Ethereum 已经意识到了仅仅采用交易费的方式来使用有限的区块链资源的缺陷:全节点状态爆炸,大量垃圾数据堆积等等。

    EOS 与 Nervos 的设计则更进一步,对于这台世界计算机的各个部分进行了额外的设计。

    EOS 拆分了计算机资源,并将内存资源(RAM)的地位提升,用户需要通过 EOS 购买 RAM,同时需要抵押 EOS 获得 CPU、带宽,EOS 似乎并不关心硬盘资源。

    而 Nervos 将硬盘存储资源的地位拔升,1 CKB 占据世界状态 1 Byte 的使用空间,而对于 CPU、内存、带宽则笼统地以交易手续费的形式进行收费。

    这样的设计有何意义,又究竟会给这条公链带来什么样的特性呢?我们可以从区块链设计的目的出发进行对比,结论非常有意思!

    对于 EOS 来说,其关心的是区块链的商业化应用,因此低延迟(Low Latency)是 EOS 的设计要旨之一。

    去中心化应用的低延迟需要交易的快速敲定,而交易的快速敲定则需要快速的网络、CPU 与内存资源(硬盘读取相比内存读取显然还是略慢了一点)。由于带宽与 CPU 是可循环使用的,两者采用了抵押的方式;而内存总量受限,则采用了用代币购买的方式。这意味着 RAM 是更加稀缺的资源。由于 EOS 独特的 DPos 共识算法,真正具备出块权仅为 21 个超级节点,廉价的硬盘资源显然是 EOS 生态最无需考虑的问题。

    但是 EOS 真正的实现了这一目标吗?不知道你有没有了解最近在 EOS 上非常火热的项目 EIDOS。EIDOS 通过一种空投机制,将 EOS 资源设计机制的弊病暴露无遗,当 eos 网络的使用人数的上升,交易笔数增多进而发生拥堵时,这个时候用户为了进行一笔可能只有 0.001 eos 的转账,可能需要抵押成百上千的 eos 去获取 CPU 资源。并且如果你 eos 账户内的 CPU 耗尽,你将无法进行任何转账操作,不得不求助于朋友或者别的账户帮你抵押 eos 获取 CPU 资源,而这种情况在以太坊上并不会出现。

    关键是,出现这样的问题违背了 EOS 设计的初衷么?其实并没有,EOS 依然是一个低延迟的网络,前提是你需要抵押足够多的 eos 去获取对应的瞬时资源,只要有钱你依然可以在 EOS 的网络上愉快的玩耍,当然这样一个需要抵押巨额 eos 去完成一笔可能非常小额的转账的残酷现实,让人不禁质疑整个设计的正确性。

    而 Nervos 的设计偏重于能够长期稳定可靠运行的去中心化。

    对于 Nervos 来说,公链真正需要关心的是去中心化,因此选择 PoW 作为共识算法,降低全节点门槛等等都是其设计的必然归宿。一个总量受限的世界状态意味着硬盘存储的总量是受限的,也因此能够确保全节点的硬盘总量受限,而使得普通用户都能够跑一个全节点。

    与此同时,PoW 区块链往往需要多个区块后才能够敲定交易,也因此没有办法实时(譬如 1s)地反馈用户操作,因此带宽、CPU、内存等能够帮助去中心化应用快速敲定交易的计算机资源就显得没有这么重要了(因为应用从开始到敲定的时间必然是比较长的 —— 与一般的互联网产品对比),这应该是 Layer2 考虑的问题。

    是的!Nervos 和 EOS 的设计都是基于稀缺资源的供需调节机制,需求越高,意味着资源使用程度或者炒作程度越高,价格越高。不一样的是 EOS 是让你花费大量的资源用于抵押获取瞬时资源,而在 Nervos 上你获取的将是长久的可升值的存储资源。

    CKB 解决了状态爆炸

    可以说任何一个不对状态总量进行限制的区块链,理论上都会面临状态爆炸的问题。

    在这里我们首先得明确,这里提到状态指的是什么,CKB 锚定的状态空间究竟有多大,为什么要在设计初期就需要解决状态爆炸的问题?

    区块链网络中每一个全节点,在运行过程中都会保存一些区块链的数据,这些数据主要包含几个部分:历史交易数据,历史状态和当前世界状态。历史交易数据,就是从区块链的第一个区块到当前区块高度,每个区块中发生的转账交易的数据。而一个地址内曾经有过哪些 Token,Token 的数量是多少,这些就属于历史状态,而当前世界状态,指的是目前区块链上所有的地址上现在有什么种类的 Token,有多少 Token,以及当前的区块链上有多少的智能合约和一些其他数据,当前世界状态描述的是从区块诞生到当前高度为止,所有交易形成后的最终结果。

    拿微信钱包打比方的话,你使用微信钱包接收红包、进行支付这些都属于历史交易数据;你微信钱包在曾经的各个时间点上有多少钱,属于历史状态;而你微信钱包里目前现在有多少钱,就是当前状态。理论上你只要拥有了历史交易数据,你是可以计算出所有的历史状态和当前状态的,但是因为当前状态是需要实时查看的,因此不能删除,而历史状态其实是可以裁剪掉的。

    而 CKB 锚定的就是上面所说的当前世界状态的存储空间。

    那么 CKB 锚定的状态空间究竟会有多大?让我们来看一下 Bitcoin 和 Ethereum 的数据。因为 Bitcoin 采用的是 UTXO 模型,因此历史交易数据和历史状态是一致的,这里我们就不细分解释了,目前 Bitcoin 整个数据的大小(所有区块加起来的大小)大约是 200G(既是历史交易数据,也是历史状态数据) ,而当前世界状态的大小只有 ~ 3G(由 ~ 5000 万个 UTXO 组成)。而对于 Ethereum,所有数据加起来的大小超过了 2 TB,其中历史交易数据大概是 190G,当前世界状态大概是 20G,剩下的都是历史状态。

    正如我们看到的实际上对于 Bitcoin 和 Ethereum 上的全节点目前不可删减的数据(就是历史交易数据 + 当前世界状态数据)目前其实差不多都是二百多 G,产生这么多数据,比特币用了十年,而以太坊只用了四年。

    而这是在我们还没有解决可扩展性问题,区块链仍然是小众技术的情况下的增长速度。当我们解决了可扩展性问题,区块链真正获得大范围应用,DApp 和用户数量都呈现几何爆炸式增长的时候,区块链历史交易数据和当前世界状态数据会以什么速度累积呢?

    对于历史交易数据,我们未来是可以通过中心化地加入检查点或者是采用零知识证明技术等方式来进行删减或压缩,但是,当前世界状态是始终无法删减的,拿上面微信钱包的例子,腾讯可以把历史状态和历史交易数据都删掉了,但是腾讯不能把你当前微信钱包内有多少钱的数据给删除掉。

    区块链,特别是公链,特别是目标成为共同知识库的公链,必须在设计之初就要解决状态爆炸的问题。

    而 1 CKB 锚定的就是 1 Byte 的当前世界状态。因此 CKB 发行数量的限制是可以真正地限制当前世界状态大小的,也是可以真正解决状态爆炸问题的。

    CKB 化解了公地悲剧

    为了更好地理解公地悲剧这个问题,我们这里通过一个故事去讲解一下。

    Bitcoin 就好比在一个村庄的中心放置了一个计算器,村民之间相互转账的时候都需要到这个计算器上进行一下计算,这样算出来的数据才是准确的有效的,当然村民每次使用的时候都需要支付一丢丢的手续费。

    而 Ethereum 是图灵完备的,可以部署智能合约,在计算器的基础上,升级成了一台可以使用的电脑,虽然这台电脑性能一般,但相比于计算器还是有了很大的提升,可以实现更加丰富的功能。村民们除了可以进行 ETH 转账,还可以在这一台电脑上创建别的 Token 进行转账交易,比如各类的 ERC 20 和 ERC 721,村民还可以在上面存入各类的智能合约和其他数据。而村民每次使用这台电脑,也只需要支付一丢丢手续费即可。对于这样一台公用的电脑而言,带宽、CPU、内存这些瞬时资源都是可以即时恢复的,但是硬盘却不是,村民存入的数据永久的保存在了电脑里面,这个时候一些村民写入的没有用的或者过时的数据依然保留在硬盘中,因为村民并不需要为这部分占用付出额外的代价,因此写入数据的村民并没有将这一部分数据删除的动力,长此以往就变成了公地悲剧,有限的共享资源在不受任何限制的情况下被人们过度消耗。

    CKB 则不同,CKB 作为一台更加优异的电脑出现在村中心时,村民使用这台电脑同样需要支付一部分手续费,而当村民需要在这台电脑上保存数据的时候,村民还需要购买 CKB,从而才能换取一部分在这台电脑上保存数据的空间。不持有 CKB 的村民,是没有办法在 Nervos CKB 网络上存储数据的,没有办法持有这个网络上创造的其他 Token,没有办法创建智能合约,没有办法存入数据。

    而随着 CKB 价值的提升,当其他所有的村民平均用 1000 CKB 存储空间去存储价值约为 1000 元的数据或者 Token 时,而你在用 1000 CKB 存储空间去存储价值约为 100 元的数据或者 Token,这个时候,你和大家都付出了同样的存储成本和风险,但是显然你的存储空间的价值密度要比别人要低。这个时候你会不会选择出让一部分 CKB 存储空间给他人或者选择存入更高价值的数据或者 Token 呢?

    CKB 在一定程度上化解了公地悲剧,通过这样的设计让这一部分过度占用这些共享的存储空间的用户,付出了额外的成本,这些用户需要重新衡量自己的行为,并在市场规律的驱动下做出正确的选择。

    总结

    说了这么多,是希望大家在购买和持有 CKB 的时候,知道自己究竟买到些了什么。

    CKB 首先是一种 Nerovs 底层网络的原生 Token;CKB 也是 Nervos 底层网络中实际的物理资源,也就是上面所说的当前世界状态的存储空间,1 CKB = 1 Byte。CKB 的这一设计,解决了状态爆炸的问题,也在一定程度上化解了公地悲剧的难题。

    最终 Nervos CKB 作为一个无需许可的公链项目,有可能会真正地成为人类的共同知识库。

    来源: NervosCommunity,作者:史迪仔