在 31/32 期秘猿科技小课堂中,我们从经济模型角度分析了现有区块链的问题,以及状态爆炸的问题。Nervos CKB 的经济模型为了解决现有问题,提出了创新的设计,如 Nervos DAO、基础发行 + 二级发行的发行政策。
秘猿科技区块链小课堂第 33 期
区块链和状态爆炸
简单来说,区块链是一个公开的账本,区块链的状态指的是这个账本当前的样子。
目前大部分的区块链都存在状态存储的问题,特别是对于追求性能的区块链,在达到性能之后,状态爆炸就会出现,因为写入的数据将更加庞大。但是目前大部分区块链并没有考虑状态存储的问题,因为在此之前公链还被困在性能的瓶颈中。
这是一个区块链版本的公地悲剧--用户只要支付一次手续费就能够永久地在区块链这个账本中写入数据,而且数据存储的成本并不是自己承担。矿工只收到第一笔手续费就要承担状态存储的成本,所以会造成「一次付费,永久占用」的问题。
所有矿工都维护一个公共账本,除了写入数据的用户,维护账本的人并没有权力修改账本,不然就导致大家账本不一致,如此区块链的状态只能不断积累,导致状态爆炸的问题:
- 由于对交易的验证需要读取状态,状态不断增大,让交易验证变得缓慢;
- 新区块的打包和验证也会更加缓慢;
- 在同步的时候请求周围节点的数据,而周围节点为降低自己的存储压力会周期性地修剪状态。当同步时间过长,会导致请求的数据发生变化,从而降低节点同步的成功率。
最重要的是,区块链的状态爆炸会使得参与运行全节点的成本变高(比如说需要很高的硬件规格),这会降低社区成员参与运行全节点的意愿:如果存储空间占用累积太快,最后只会剩下少数的节点有能力可以承担运营成本,那就会影响区块链的去中心化特性和抗审查能力。
在一个区块链系统中,计算和带宽都是瞬时资源--如果这些资源用完了,下一个循环或是下一个出块,这些资源会更新,可以重复使用。状态存储是长期资源(对于现有的智能合约平台,已经占用的状态存储空间是无法更新的),对于存储的计费应该怎么做,如何与生态的发展挂勾,一直以来也没有一个很好的解决方案。
Nervos CKB 的经济模型亮点
Nervos CKB 经济模型的最大亮点是将链上的存储空间作为公共资源:每一个原生代币 CKB 代表一个单位的存储空间。也就是说,如果发行了 3 亿枚 CKB Token,那就代表整个 CKB 网络有 3 亿 Kb 的状态存储空间。持有者可以在存储空间中写入任何数据或者合约,矿工通过工作量证明机制在获得激励的同时为这些空间提供安全性。
CKB 分为「基础发行」和「二级发行」:
基础发行
CKB 的基础发行和比特币发行策略类似,区块奖励大约每四年会减半一次,一直到所有的基础发行被矿工开采完毕。
二级发行
CKB 的二级发行是一个常量增发的奖励,不像基础发行会每四年减半一次,二级发行每一年发出的区块奖励都是一样的,并且会一直增发下去。
NervosDAO
NervosDAO 可以帮助长期投资者(Holder)对抗二级发行造成的通胀效应,假设我持有 1 万个 CKB 原生代币,并且预计这是一笔长期投资,那么我可以将代币锁定进 NervosDAO 合约中,换取一定的利息,不会因为二级发行的通胀效应而受到损失。
双管齐下的发行政策
在基础发行结束之前,矿工的收入是这样:「基础发行 + 二级发行 + 手续费」,与比特币有着类似的发行曲线。在前 3 个减半周期中,网络会发出绝大部分的区块奖励,与比特币不同的是,当基础发行完全结束后,仍然有二级发行担任出块奖励的角色。
举个例子,在「已占用的 CKB 占全部 CKB 的 60%,锁定在 NervosDAO 的 CKB 占比 35%,可自由流通的 CKB 占比是 5% 」的状况下:如果二级发行的出块奖励是 100 CKB,那就会有 60 CKB 被分配到矿工手上,35 CKB 分配到 DAO 的合约的持有者手上,5 CKB 将会被交由社区治理处理。
二级发行首先是一种对于状态占用的收费,也可以说是一种租金,也就是要解决上一段提到的「一次付费,永久占用」的问题。对于开发者来说,所持有的 CKB 都是可以拿来使用的,只要数据占用了这个空间,那就要支付占用空间的费用,也等于是负担因为二级发行造成的通胀效应所带来的损失。
对于存储空间使用者来说,支付的费用(租金)将会透过二级发行给到矿工,这让矿工在基础发行因为区块奖励减半而逐渐减少时,还有第二种收入可以让矿工愿意持续投入算力来保护整个网路。
最后还有一部分是可以自由流通的 CKB(没有占用存储空间,也没有锁定进 NervosDAO 的部分),这部分代币所对应的二级发行,将交由治理机制处理;在社区未达到机制的共识之前,这部分的「二级发行」将会被烧毁。
这样的机制设计,会鼓励 CKB 持有者在 CKB 上进行开发,或是将 CKB 存入 NervosDAO 中,或是将 CKB 租赁给其他的开发者。对这个机制设计的另外一个解读是,当持有者享有 CKB 的绝对流动性时,也会承担一部分因为二级发行而造成的稀释。
基础发行加上二级发行将带给矿工与持有者带来长期的可预测性收入,稳定的发行政策将对持有者、矿工以及开发者的持有成本或是开采成本呈现一种线性的发展,而不会因为改变发行政策而造成瞬间的波动,改变了参与者原来的参与动机。
CKB 设计所解决的存储问题
CKB 二级发行和 NervosDAO 的精密设计为区块链的状态爆炸问题提供了解决方案:对长期占用状态的开发者收取定期定额的租金,「一次付费,永久占用」不复存在。
CKB 上纪录的所有数据,是经过全球共识的数据,但是当一个开发者认为某些数据不再重要的时候,他可以将这段数据删除,并更换其他更重要的数据到他所持有的 CKB 上,而新的数据会经过全节点的共识而保存下来,而被删去的数据,仍然会保留在历史节点上。
由于世界状态(经过全球共识,可存储空间的最大值)即 CKB 的发行总量,这使得参与全节点的成本是可以预测的,同时因为 CKB「链下计算,链上验证」的特性,参与全节点的费用将会足够的低,也将带来更好的去中心化体验。
在 CKB 上与状态存储最相关的节点分成两种,一种是参与全局状态共识的全节点,一种是纪录历史数据的历史节点,所以当我们说全局状态的时候,指的是有限的存储空间,有限的资源将带来一连串的影响,即越多的开发者占用了 CKB 后,CKB 的可供给量将会变小,在需求不变的状况下,CKB 的价值将会上升,同时因为相关的应用增加,手续费用也会同时提升,提升了矿工的收入。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。