Nervos cell存储空间设计和EOS的RAM有什么不同?

nervos:

Nervos CKB 的原生代币是 「Common Knowledge Byte」,简称「CK Byte」。 CK Byte 代表 Cell 空间,它们让拥有者能够占用区块链的全球状态。例如,如果 Alice 拥有 1000 个 CK Byte,她可以创建一个空间为 1000 Byte 的单元,或者空间合计最多为 1000 Byte 的多个 Cell。她可以使用 1000 个 Byte 来存储资产,App 状态或是其他类型的数据资料。

eos:

EOS的RAM是用来存储内存数据库的部分。DApp会使用EOS RAM来存储状态信息,以便于DApp的快速存储。另外创建EOS的账户也需要EOS RAM.。举例来说,如果你是一个普通的用户,那来自快照的RAM就是你对应的容量;如果你是一个DApp或者你要创建一个账户,你需要购买一些RAM。我们可以理解为RAM就是DApp或者是账户运行需要的资源。

差别还是很大的: EOS 里面的RAM资源是用来帮助应用快速读取数据, 而 CKB里面的 cell capacity 是用来帮助用户长时间存储共同知识。 所以 CKB 里面还有二级增发来对应收取存储用户的租金。

出发点不同最后的设计结果肯定是差别很大的, 即使在表面上有一定的相似处。

楼上总结的精辟:“表面相似”

架构差距还是蛮大的,EOS那种我可以归类为“联盟链”…

有些相似之处,哈哈····不过这很好,取长补短。

显然 RAM 是一种瞬时的资源,只在运行的时候需要使用。而它的获取方式(用 EOS 购买,然后用完卖出)更适合对持续性资源的收费。

nervos也是需要拥有CK Byte来创建存储空间的

nervos是通过用户抵押ckb来创建,eos是需要用eos来购买,这样区别还是蛮大。:rofl:

关键是,存储空间是持续性的资源,但是 RAM 是内存是瞬时计算,这一秒计算完下一秒就可以释放了,更合理的应该按照计算量来计算手续费的方式更合适。存储的话你这一秒写入数据之后就一直要存储着,抵押的方式更合适。

这是关键哈哈哈,对不同资源用不同的方式合理地进行计价。

假设一个 CKB 代表拥有 1Byte 存储空间的所有权,同时把 Nervos 底层公链比作一座城市的话,那么拥有 1CKB 就意味着拥有一平方米(这个单位仅仅是一种类比)的土地。在一个城市中,土地有很多种用途,可以开发商品房出售、开发写字楼出租、开发商铺做生意等,那么对应到 Nervos 底层公链来,就是可以利用这部分储存空间开发 DApp,供用户使用来赚钱,或者,建立一个 Layer 2 应用链,让更多的人来平台上二次开发,再或者,把这块存储空间像土地一样出租出去,收取固定的利息。

哈哈,这个比喻很好。
但是这里面会有一个问题?未来随着ckb的升值,那么在nervos上面搭建应用的成本就会越来越高,就好比房地产一样,地价高了,开发商拿地成本就会很高。这样就跟ram被爆炒一样的模式。

这可能还真的和ram的爆炒会不太一样。

在ram没有像现在一样增发之前,ram的总量是固定的,用户和开发者们每次创建账户、第一次转账、布置合约等等都会需要消耗ram,ram有着明显的稀缺性,并且ram是由bancor机制去发行的,其价格和占用率有着明显的指数性质的相关性,当ram占用率越高时,ram的价格也会越高,到90%的占用率往后,ram的价格更是接近于直线上涨。下图是ram占用率在90%前的,ram占用量和价格之间的关系,后面的曲线自行脑部即可。

然后在ram价格暴涨之后,社区一顿争吵之后,在没有很好地分析清楚该如何处理,应该按照什么模式增发的时候,ram开始大量增发了,当稀缺性没有办法保证的时候,开发者们对于ram的需求也没有迅速增长的时候,人们失去了对ram占用率上涨和ram价格上涨的信仰,最终也就迎来了ram价格的破裂。

那么ram和CKB哪里不一样呢?

  • ram的定价采用的是bancor协议,而CKB走的是市场定价的模式。所以如果两者如果同样都是稀缺的,在内存占用率线型上升的过程中,ram的价格和上面图中的曲线一样,是非线型的,到后期是直线上升的状态;而CKB的价格因为是市场定价,应该是处于线性上涨的模式(这当然是理性市场,非理性市场的情况下,我们可能也没有必要去讨论内存占用率的问题)e

  • ram是没有办法被租赁的,而CKB是可以租赁的。当Nervos上的生态愈加繁华,土地价格愈加昂贵的时候,你作为CKB真诚的HODLER,你还是不愿意高价出售这部分CKB,那么你还可以选择出租CKB。土地需求者们,买不起土地或者不愿意承担购买土地的较高风险,也会趋向于去选择租赁CKB。这种租赁模式和行为上的博弈在ram上面是不存在的。

  • ram的消耗数量是官方规定的,是非分层设计;CKB的使用细则是市场和自身决定的,是分层设计。在eos中,你开设账户、开设合约,消耗的ram基本上是固定的,合约这方面可能根据合约大小略有不同。因为eos不是分层的设计,所以按照ram最开始的设定,大家自然而然地会意识到ram的稀缺性,后面新进来的用户和新增长的数据,需要和前面的用户和数据去争夺ram,这才有了提前购买土地引发的土地价格暴涨。而CKB是分层设计,你感觉Layer1上的土地贵了,你可以选择把数据迁移到Layer2上去,你可以把Layer2想象成中心城市周围的广阔农村,你不需要去争抢仅限的城市中心,你完全可以去更广袤的农村去发展。CKB的究极状态就是每个Cell里面存的可能仅仅是一个Merkle Proof,作为一名农村人,只要你的银行账户开设在城市中心,你就依然和这个城市牢牢地捆绑在一起。

  • ram增发的随意性,CKB增发的确定性。这就是治理层面上的问题了,BM在电报群里一会儿说不增发ram,过两天就啪啪打脸,ram的增发决议的确定和通过只让底层用户感受到了随意,21个节点在乎的也是自身的利益而很难为整个体系去做更多的考虑。而CKB的基础发行、二级发行,我们现在不还在讨论着呢嘛~ Nervos给予了社区足够多的思考理解和讨论分析的时间,我也能感受到Daniel以及其他一些人对这种RFC理念的认同感,我们正在享受这种表达的权利和思想碰撞的快乐,不是吗?

9 Likes

你这个解读满分

复制了 EOS 白皮书的相关论述,两者形似。但是一个是为了快速读取,一个是为了长久存储。

我这里再补充一点差异:EOS 推崇开发者付费,即开发者为用户状态存储付费。但是,这部分造成了用户也不得不为开发者的失误埋单(这在 ETH 中也出现过:譬如 ERC20 合约转账丢币的问题:https://github.com/ethereum/EIPs/issues/223)。在CKB 的设计中,first class asset 意味着用户会自己存储自己的重要状态,这部分地分散了风险。

State Storage (RAM).
1)Blockchain state storage is information that is accessible from application logic. It includes information such as order books and account balances. If the state is never read by the application, then it should not be stored. For example, blog post content and comments are not read by application logic, so they should not be stored in the blockchain’s state. Meanwhile the existence of a post/comment, the number of votes, and other properties do get stored as part of the blockchain’s state.

2)While bandwidth and computation can be delegated, storage of application state will require an application developer to hold tokens until that state is deleted. If state is never deleted, then the tokens are effectively removed from circulation.

1 Like

厉害了,我的兄弟···必须满分啊···:微笑:

我的觉得我没有说明白,哈哈哈

其实我想说的是,未来随着ckb的升值,在nervos网络上面开发应用的成本会不会越来越高。
1CKB就意味着拥有一平方米(这个单位仅仅是一种类比)的土地。ckb是稀缺的,就像土地,会升值,越来越贵。那么租赁是个很好的方案,但是依然会很贵,作为稀缺的资源不管是买还是租赁都会是昂贵的。

你可以看一下 First-class Asset 关于CKB上实现First-class Asset的部分,这个Cryptochen刚刚也有提到,资产定义和资产状态是分离的,开发者不需要为用户存储这个UDT所需要的CKB买单,这相比于其他公链的一些做法已经有了很多的改进。

而且开发者应该也算是一个创业者嘛,在未来可能享受巨大收益下,前期付出一些开发成本也是理所当然的。

另外本矿池衍生的租赁平台,未来将推出若干项开发者扶持政策,成为助力Nervos生态繁荣的中流砥柱,政策包括:

  • 普惠的:免费CKB使用权。你可以通过提交一些申请,通过社区审批,即可获得一定额度一定时间的CKB免费使用权限。
  • 专项的:低利率CKB租赁。对于非常有前景并且需要大量CKB空间的项目,将提供具有针对性的长期低利率CKB租赁服务。
  • YY的:开发者、项目方众筹CKB使用权。你可能听说过IPO、ICO、IEO,这些项目的投资都是需要你投入真金白银的,而当一个人拿着奇思妙想出来,只想募集一些CKB使用权来完成这一开发,这简直带着圣人、极客的光辉,你舍弃的不过是一点点存在NervosDAO中的补偿收益,何乐而不为呢?

Nervos的CKB和EOS的RAM是带有不同的设计目的,实现出来的产品。

Cell是持久化存储的数据空间,数据在Nervos网络里面被具象成为价值、Asset、Common Knowledge之类的概念。

RAM是EOS网络计价的超级节点内存资源。用来定义分布式网络里面,智能合约可以使用的内存资源。

相较而言,RAM可能类似Nervos的cycles的作用。

cycles 的概念是在 CKB VM 中,CKB VM 用 RISC-V 指令集模拟真实 CPU,每执行一条指令都可以在 VM 中明确状态。运行了几行代码都可以很明确计算出来,拿来计算手续费等等。

1 Like

嗯嗯,确实理解不到位,cycles是指令计算周期,RAM是指令的即时使用存储空间。

大兄弟,你这就厉害了啊。哈哈哈···

是啊,非专业人士理解不到位,哈哈哈···