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

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

显然 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是指令的即时使用存储空间。

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

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

这几天在思考 Nervos 与 EOS RAM 的区别。对这个答案提出一些有趣的想法。

将区块链想象为一台世界计算机并将计算机资源区分为:CPU、硬盘、内存、带宽。在区块链上的开发者或者用户需要使用这些资源并且为资源付费。在 Bitcoin、Ethereum,这些费用被笼统地以交易费的形式支付。交易费的设计最初是为了避免了 DDos 攻击,而今代表了世界计算机资源使用的费用。Ethereum 已经发现了仅仅采用交易费的方式来使用有限的区块链资源的缺陷:全节点状态爆炸,大量垃圾数据堆积等等,因此提出了“Storage Rent ” 的 EIP:不仅仅要为交易收费,还需要为状态存储收费。EOS 与 Nervos 的经济模型设计更进一步。EOS 拆分了计算机资源,并将内存资源(RAM)的地位拔升,用户需要通过 EOS 购买 RAM,同时需要抵押 EOS 获得 CPU、带宽,EOS 似乎并不关心硬盘资源(在白皮书中,出下了 Disk ,但是是与带宽一起讨论,本文也将两者一并讨论) 。而 Nervos 将硬盘存储资源的地位拔升,1 CKB 占据世界状态 1 Byte 的使用空间,而 CPU、内存、带宽则笼统地以交易费的形式进行收费。

通过上文论述不难发现,区块链作为一台世界计算机,其资源肯定是有限的(这种有限体现在 Bitcoin 和 Ethereum 7/15 tps,因此并非所有人都能够使用到该资源;EOS RAM 的总量,CKB 的总量也都意味着如此。),那么如何通过经济模型来协调有限资源的供需呢?从区块链设计目的出发对比很有意思!

在区块链设计目的上,Nervos 的设计偏重于能够长期稳定可靠运行的去中心化,EOS 的设计偏重于去中心化应用(The Most Powerful Infrastructure for Decentralized Applications ),希望支持百万级别的用户。

对于 Nervos 来说,公链真正需要关心的是去中心化,因此 Pow 的选择,全节点的低门槛等等都是其设计的必然归宿。一个总量受限的世界状态意味着硬盘存储的总量是受限的,也因此能够确保全节点的硬盘总量受限而使普通用户能够跑一个全节点。与此同时,PoW 区块链往往需要多个区块后才能够敲定交易,也因此没有办法实时(譬如1S)地反馈用户操作,因此带宽、CPU、内存等能够帮助去中心化应用快速敲定交易的计算机资源就显得没有这么重要了(因为应用从开始到敲定的时间必然是比较长的 - 与一般的互联网产品对比),这应该是 Layer2 考虑的问题。

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

是的!EOS RAM 和 Nervos 的确看过去非常相似,因为他们都是基于稀缺资源的供需调节机制需求越高,意味着资源使用程度或者炒作程度越高,价格越高。而两者不同之处在于,区块链设计目的是不同的,导致了区块链对于不同有限资源的依赖,也因此不得不围绕该资源设计一整套的经济模型,以调节该资源的供需。

3 Likes

在 EOS 上面, 更高的内存资源价格提高了交易成本,其实是降低了其作为高效交易平台的核心竞争力; 而 CKB 上面更高的储值成本其实是提供了更高的算力保护, 也就是说也同时产生了更高的核心功用。 SoV 领域有 “头部通吃” 的趋势,实际上也更巩固了项目的核心定位。

在我们研究过的经济模型里面, 是绝少数有能体现在币价上面的强者愈强的马太效应的模型的。

2 Likes

拥有CKB看来就是拥有土地,以后我们都是开发商。从实体土地,向数字土地转换的过程。