Nervos社区经理Ryan:状况租赁——以太坊的艰难挑战
2019年3月8日下午,由金色财经主办,贝壳公关承办,节点资本、大项区块链科技协办的金色沙龙杭州站第一期“以太坊生态——冰河时期的发展与未来”在杭州市上城区白云路9号江南1535(十六铺咖啡)举办。
金色财经讯 金色沙龙杭州站第一期以以太坊生态为主题,探讨在行业寒冬中以太坊生态的现状与未来。DAppReview CEO牛凤轩、Bibox联合创始人马骥、F2Pool鱼池CMO李庆飞、大项区块链董事长、奥德利区块链研究所中国区执行主席范一凡、合约大陆欧米社区成员李秉阳、Nervos社区经理Ryan、币信 CMO熊越、TokenGazer CEO范宏达、COO of NeoWorld Kane、MixMarvel联合创始人Yiyi等业内知名人士在沙龙现场就以太坊生态发表自己独到、精彩的观点。
以太坊核心开发者社区曾经对以太坊的状态爆炸问题讨论良久,其中核心开发者Vlad Zamfir甚至发推表示,不用状态租赁以太坊就会爆炸。那么,状况租赁到底是什么?在Ethereum 2.0 Phase2中实现的状态租赁到底为何如此困难?Nerovos社区经理Ryan分享了“状况租赁:以太坊的艰难挑战”主题演讲,从多角度回答了这一问题。
今天我要讲的话题是关于以太坊的状况租赁问题,对于以太坊是一个非常艰难的选择,首先自我介绍一下,我是合约大陆欧米社区成员,我是在分布式区块链项目特别社区NPC做主编。
Ryan表示,关于状态爆炸这件事,主持人介绍的时候也说了,在去年年初的时候,以太坊社区最顶尖的核心开发者社区有非常多的讨论,甚至在以太坊的论坛里面聊状况爆炸的问题。
刚才提到Vlad Zamfir核心开发者在18年11月26日发的推特,他的意思是:“区块链租赁方案的用户体验非常差,我们需要控制好它的状态,不然以太坊会爆炸”。这个问题说的非常严重,但到底什么是以太坊的状态,以及什么是以太坊的状况租赁方案?
首先,什么是以太坊的状态?如果大家去了解以太坊的技术方面,你们会提到以太坊在它的EVM前面有两种数据:一种是EOA账户,这个账户包含以太坊的余额等相关数据;还有一个账户是以太坊的合约账户,合约账户包含智能合约的逻辑,也就是合约的代码和状态。
这里出现一个问题,为什么以太坊需要这样的状态在前面呢?这是关系到以太坊的设计,以太坊在当初发行的时候提出世界计算机,它的计算是发生链上,带来的后果设计区块当中打包的是事件,最后反馈一个结果。
举一个例子来说,你去打包事件,事件发给你5元的交易,状态就是说发生这个交易之后,你的余额里面是5元,有这样的状态记录之后,下一步在开始转钱的时候,你可以通过这个状况确认这笔交易是否合法,如果没有这个交易你要重新算一下,才能得出交易是正确的。
对于以太坊的衔接点来说,他有两种数据,一种数据是以太坊和区块链的数据,区块包含以太坊的各种交易事件,另外一个地方会存储以太坊的状态数据。以太坊相比特币是完成不同的一种设计,就是在比特币当中有Block的设计。
带来的问题是什么?首先以太坊的世界状态,在它的设计里,付一次交易手续费永远在它的状态里写这些数据,它的世界状态没有明确的上限,带来的问题是衔接点存储的压力不知道存储的成本达到什么程度。另外带来的一个问题是,用户付了一次钱把状态写上去,用户满意走,但是矿工和衔接点需要承担所有的压力,并且要长期为存储空间付费。
第三个问题当以太坊核心团队想要控制这个状态时,带来的问题是以太坊是对计算资源进行叠加,还有一个是用户只是需要支付一次钱,就可以把这个状态写进去,他完全没有任何的激励去删除掉EVM状态。如果大家知道的话,合约里面有一个指令,大概有15%的合约有操作锁。实际上,并没有开发者说把这个合约用完之后,我去把合约删除掉,这些合约存在它的EVM的状态。
虽然听起来只是对它的存储有非常大的压力,实际上,它的问题并不只有这些,还会带来以下4个影响:
首先,每次交易合法的时候,你要从状态里面做一次验证,你要查询以上的状态是什么,如果它的状况非常大,会导致以太坊每一笔交易验证的时间非常长。
第二个问题,区块构造的时候非常慢。
后面两个是关于以太坊节点同步的问题,你想要同步节点的时候,你会向周围的节点需求数据,你的带宽有限制,衔接点非常大,这样非常困难。还有一个情况,在以太坊的节点分为两种,一种是共识节点,共识节点会存储一个小时的区块链的临时数据,对于想新加入网络成为矿工的节点来说,如果把之前的节点删除掉,将无法完成。这会导致你同步的成功率非常低。
为什么会出现爆炸的状态?这是以太坊每天新的账户地址创建的数量,2018年1月每天创造30万账户,今年每个月10万的账户,这些账户写在以太坊的状态里面,这是以太坊的地址增长曲线,下面一个是稍微老一点的数据,它是以太坊的状态里面的存储空间的占用大小。这又是一个稍微老一点的数据,是占用以太坊最大的合约。我们可以看到这个时间点开始,它的合约没有太多的增长,几乎没有人使用他,但是它永远写在以太坊的状态里面,占用这部分的存储空间。
这部分是以太坊衔接点现在的存储空间需要的大小,这种以太坊的两种类型,我们内部尝试讨论衔接点,在阿里云上面跑一个月没有成功。很抱歉,这个数据是从网上抓取过来,但是这个数据可以体现以太坊的状况和严峻性。
对于这个问题,刚才对以太坊的核心设计进行深入的讨论,他们提出什么样的解决方案,提出一个状态租赁的方面,状况租赁的意思就是说,你对你的合约地址,需要周期性,根据这个账户的大小来进行租金的收费,如果你没有支付足够的租金,租金到期,这个合约会删除掉。如果稍微偏技术一点来讲,当合约删除的时候会留下一个存根的东西,在你需要唤醒的时候,你可以唤醒这个合约,这中间的过程用户体验非常差。
除了用户体验非常差之外,还会带来非常多的困难,第一个困难是很多合约代表一个分布式的社区,怎么理解呢?它不是在你的账户里面,是在你的TOKEN的合约里面,所以在TOKEN钱包里面看到,实际上他是在同一个合约里面,这个合约里面有各种不同用户资产的所有权,都是写在这里。对于这样的合约,如何对这个合约进行租金的收费,如何公平从这些合约用户当中收费,这是一个非常大的问题。
即使一个合约复原,但是A合约调用B合约,也会造成调用失败,最重要的是对于大量的用户来说用户体验非常不好,除了付B费用之外,你在另外一个地方输入你的状况租金,当你需要恢复合约的时候。
这是我前几天在阿里云尝试部署一个衔接点需要的成本,根据刚才看到有2000多G的存储,每天增长2-3G,我估计一年里面要4000G的硬盘存储,每个月的成本是5000元,你要跑这个衔接点你要支付5000元,这个衔接点到底可以做什么?衔接点的作用是真正区块链的头部开始计算,保证每个交易绝对是合法的,而不是共识节点向衔接点请求数据确认交易是否合法。
我们在区块链里面说如果你真的不相信,你就去验证,这是衔接点带来的好处。现在以太坊的生态衔接点看到的数据只有46个,所有的节点加起来是9000个。其实,其他的8000多个节点依靠46个衔接点获取数据进行验证。问题出现了,以太坊到底是不是去中心化,衔接点只有46个,这是状态爆炸的问题带来的后果。
如果做一个很形象的比喻,我觉得以太坊的状态就是准入一样,我们每次在以太坊写的数据,承担后果都是这些矿工节点,以太坊社区想到的解决方案是状况租赁,因为它的用户体验非常不好,你现在想要把这个肿瘤切点,你的打包非常缓慢,这个时候会出现接近崩溃的状态。
这是Vlad Zamfir在论坛上面讨论的问题,现在的技术都是可以解决的,但是更大的问题在于是经济的问题。后面有以太坊另外一个核心开发者Lane Rettiig,他觉得以太坊的使用者准备支持这个方案,根据我们的经验,大家有了解我们的团队的话,在16年的时候,当时这么严重的事件,整个社区只有10%的TOKEN进行投票,可以想象参与非常低。现在以太坊的社区这么庞大,他们采取状况租赁方案,到底有多少人会支持和了解,还是一个未知数。但是可以想像,参与者非常少,并且有可能很多用户突然发现自己的合约消失,就会离开这个生态。
这是我前面讲的逻辑的回顾,以太坊最开始想要做一个世界计算机,但是他没有控制好它的状态和上限,这样带来矿工跟用户利益的冲突。后面延伸出来的问题是在区块链上面应该控制什么样的资源,我觉得肯定不是计算资源,如果做一个对比一下,你在城市的阻力空间更重要,永久存在的资源在区块链是更重要的资源,我们觉得区块链更像是一个共同的知识库,我们在区块链上面写入一笔数据,是通过所有矿工的所有共识,是一种共同知识,我们每个人相信并且验证的东西,什么样的概念,我们所说的语言就是一种共同知识,因为我说这句话,我知道你相信,你也知道我所说的这句话是什么意思,所以我们之间可以协作,所以区块链是一个共同知识库,我们觉得存储资源是更重要的稀缺资源。
在我们设计模型的时候,我们在思考三个经济模型设计的目标,首先第一个我们觉得经济模型设计上面,首先你的世界状态的增长,也就是说你的存储空间的增长要有一个上限,这样你的衔接点有可预期部署衔接点的成本,最理想的情况是你这个衔接点部署的成本足够低,低到非专业人士可以参与进来,这样保证你的网络的去中心化比较强。
第二个问题希望用市场定价的方式对存储空间进行定价,如果存储资源占用多,它的价格就会比较高,如果占用比较少,它的价格就会比较低。
第三个问题,系统需要持续性向占用资源的用户收费,在这里用户需要持续的费用,他自己会删除调一些状态。
后面是我们经济模型的设计,用一句话来讲,我们的经济模型是把存储空间处理好。在10个小时之后我们会发现我们经济模型的提案,我们希望整个社区一起帮我们完善这个提案,我们现在准备好跟整个社区进行分享,在经济模型设计当中,我们邀请到非常多的世界经济学家,在这里希望大家后面持续我们关注我们经济模型的发布。同时可以到我们论坛参与各种各样的活动,我们有非常多的奖励。