背景
DeFi、GameFi等去中心化应用的蓬勃发展,极大地增加了对低交易费用的高性能区块链的需求。然而,构建高性能区块链的一个关键挑战是存储爆炸。下图是取自Etherscan的图表,它说明了一个以太坊全节点的区块链数据大小。
从图中我们可以看出,节点的链数据规模稳步增长,现在已经达到~9TB。由于去中心化区块链的一个目标是允许普通配置的计算机运行节点,因此在普通配置的计算机上强制要求9TB+存储会难以达到。
分解存储开销
如果我们进一步分析存储使用情况,我们可以发现区块数据只占了约300GB的数据,这一数字远小于9TB。那么剩下的8.7TB数据从何而来呢?
实际上,存档节点执行所有块并保留所有历史数据,包括:
区块
状态
交易收据
这其中,状态是这8.7TB的主要组成部分。所以有时,我们将存储爆炸称为“状态爆炸”。但是为什状态会如此之大?
什么是以太坊状态?
以太坊状态是一个MerklePatrica树,其中
金色实力派 | 徐豪镠:区块链本质和互联网很像 但区块链是价值数据的传递:金色财经报道,在今日举行的金色实力派直播中,针对“对于实体行业来说,区块链的价值该如何体现?区块链行业与实体行业间,该如何互补以促进行业成熟发展?”的问题,富尔资本创始人徐豪镠表示,这个时代的底层是互联网,互联网本质是解决的是信息数据传递的问题,阿里,速卖通也好,淘宝也好,他做的是把制造业的商家信息放到互联网上,让更多人能看到来促成交易。而区块链本质和互联网很像,但是有区别,区块链做的是价值数据的传递,以制造业为例,比如现在最全球化的制造业,一架飞机有数万个零部件,这些零部件的标准和更换频率非常高,那么获取这些零部件背后的海量数据的时间成本和信任成本会非常高,而区块链技术可以做到迅速而准确的了解每一个零部件的源头,从而降低这些零部件的修复成本。区块链技术不是万能的,只是一项技术,它的发展也并不是一蹴而就的,需要人工智能、大数据、云计算、物联网等一系列基础技术做支撑。所以请大家理性投资。[2020/5/28]
叶子节点是地址(0x...)=>帐户的映射,其中帐户存储与地址关联的余额、nonce等
内部节点维护树结构,以便可以快速计算整个树的哈希根
动态 | 经济学家Paul Krugman称其没有区块链钱包:纽约时报(New York Times)经济学家兼专栏作家Paul Krugman在收到一封电子邮件,说他的“区块链钱包”收到了一笔付款,他对此公开表示困惑。Krugman表示:“我没有区块链钱包。这有可能是欺诈。”[2019/12/7]
由于存档节点将保留所有区块的所有历史状态,这意味着MPT中的任何更新都将创建O(log(N))个内部节点,并且不会删除旧的内部节点。
Geth的全节点
为了解决存档节点状态爆炸的问题,Geth的天才工程师们创建了一种称为“修剪”模式的新模式,该模式仅定期存储MPT。这里我们举一个简化的例子,其中节点只保存每3个区块的MPT。。
通过定期存储MPT,状态的存储大小显著减少。据Etherscan数据,目前Geth全节点的区块链数据大小约为1TB。
声音 | 云栖科技评论:数字货币下沉 区块链上升:人民网研究院和阿里云研究中心发布的第96期云栖科技评论提到,随着数字货币下沉,市场普遍认识到,区块链作为一种数字互信机制,很可能将在几乎所有的行业起到支撑作用,毕竟现代商业社会的基础就是“(可信、可确认的)契约”,这意味着区块链的作用与现代商业社会的本质是有根本性联系的。与此同时,随着区块链在数字身份、智能合约、内容管理和分布式数据存储等多个领域逐渐落地,区块链已经展现出其催生应用创新的能力,很可能成为下一波技术创新浪潮的引领者,受到追捧理所当然。比特币、以太坊等数字货币下沉,区块链与“新数字货币”上升,相信会在2019年得到进一步的证实,在这背后,是现代商业社会和每一家企业对新一代信息技术本质价值的认可和善用。[2019/3/21]
Geth的可快速同步的全节点
通过从创世区块开始重放所有交易来运行节点的一个问题是,重放所有交易会占用很长时间。一般来说,建立这样一个节点需要数周时间才能从创世区块赶上网络的最新状态。为了加速节点的启动过程,Geth进一步提供了一种快速同步模式,可以下载最新的稳定区块的MPT,而无需重放和维护区块之前的历史MPT。下载完MPT后,它会像全节点一样重放新区块。
声音 | 赵健:区块链等技术为发展普惠金融提供了巨大的可能性:西泽研究院院长、教授赵健发布题为《普惠金融的现实困境与突破思路》的文章称,目前,以信息通信技术(ICT)为基础的手机银行、互联金融模式,对现有的金融制度产生了颠覆性的影响。大数据、区块链、人工智能、物联网等新兴技术的快速发展,为发展普惠金融从技术层面提供了巨大的可能性。[2019/3/15]
在不存储历史MPT的情况下,一个Geth节点的存储大小可以进一步减少到447G。通过减去300GB的区块数据,我们推断状态大小约为150GB。
问题
以目前以太坊447GB的存储大小和15TPS,我们预计具有1TBSSD的普通配置计算机应该能够运行以太坊节点相当长的一段时间。那么存储爆炸或状态爆炸真的存在吗?或许未来几年以太坊并不会,但假如我们可以将以太坊的虚拟机(EVM)扩展到数百或数千TPS呢?
让我们将目光转向另一个基于EVM的链,币安智能链。截至2021年12月8日,BSC已有:
约984GB链上数据,其中区块约占550GB,状态约占400GB。
20.6623亿笔交易,100TPS
如果我们进一步用交易数量来预测数据大小,我们可以得到:
动态 | 瑞士试图通过改善银行准入来阻止区块链项目外流:据reuters消息,瑞士银行协会(SBA)今天向那些可能希望与区块链初创企业开展业务的银行发布了指导方针。这使得这些初创企业更容易开立公司银行账户,从而进入传统金融系统。SBA战略顾问Adrian Schatzmann表示:“我们相信,有了这些指导方针,我们将能够为银行和创新型初创企业之间的合作奠定基础,使对话更简单,并为开户提供便利。”据报道,由于银行渠道确实,该国面临着大量的加密货币项目流失。[2018/9/21]
如果TPS为100,即~3,153MTPY
1年后,总TX~5,219M,区块~1.375TB,状态~1.085TB
3年后,总TX~11,525M,区块~3.025TB,状态~2.387TB
如果TPS为150,即~4,730MTPY
1年后,总TX~6,796M,区块~1.809TB,状态~1.427TB
3年后,总TX~16,256M,区块~4.327TB,状态~3.414TB
综上所述,对于BSC来说,如果保持目前的速度甚至更高,则很快就会达到以太坊存档节点相同的存储大小,这是普通计算机几乎无法运行的。
具有极高TPS区块链的存储爆炸问题
如果我们对一个极高TPS的区块链做一个更大胆的假设,这个数字会变成多少?我们来考虑一个具有1000TPS的区块链并分析其区块和状态大小,将是:
假设tx大小约为100字节,每年区块所需的存储量为1000(TPS)*100*365*24*3600=2.86TB
假设MPT有100亿账户,我们预计状态大小将为150G/0.18B*10B=8.3TB
将这些数字放在一起,我们很容易得出一个结论,这是大多数普通配置计算机将无法承受的要求!
优化
为了优化存储成本,我们必须将限制放宽为兼容EVM而不是兼容以太坊。即,我们必须构建/运行另一个支持EVM的链,而不是高度优化的以太坊客户端。
状态存储优化
我们提出的第一个优化是使用普通的KV而不是MPT。当MPT很大时,MPT中的所有内部节点可能非常昂贵。而我们的优化将去掉MPT中的所有内部节点。假设每个账户的数据大约是50字节,我们可以节省下100亿账户的数据为:
~10B*50+100GB=600GB,大约是MPT版本的1/10!
虽然使用普通KV会带来巨大的好处,但一个主要问题是我们无法在如此短的区块间隔内计算每个区块的状态后哈希,这意味着我们将失去以太坊的以下好处:
快速同步:下载任何区块的状态并通过重放剩余的区块来快速同步网络
分叉检测:来自对等方新创建的区块是否会导致与本地执行区块的状态不同。
为了启用快速同步,我们有一个周期性的快照区块。一个快照区块包含前状态哈希这一附加信息,即前一个快照区块的后状态哈希:
非快照区块不维护状态哈希,而是具有增量哈希,其中包含该区块的所有交易事务的原始数据库操作的哈希。这使得分叉检测成为可能!
我们使用交易前状态哈希来代替以太坊中区块的交易后状态哈希。原因是节点不能立即计算状交易后的状态哈希,但是通过使用交易前状态哈希,节点可以使用整个epoch间隔来计算哈希。例如,假设状态哈希计算每秒处理10M的状态数据,那么计算600GB的整个状态将需要600GB/10M~16.67小时
计算状态前哈希的流程如下:
1.当一个快照区块被接收并最终确定时,它的KV状态被快照,并创建一个后台线程来迭代所有KV条目并计算哈希。
2.当下一个快照区块被创建时,计算出的状态前哈希值将存储在该区块中。同样,节点将创建KV的另一个快照并在后台计算其哈希。
3.当下一个快照区块被创建时,节点除了存储状态前哈希之外,节点现在可以释放快照区块的KV快照,这意味着来自快照区块以来所有被删除/更新的数据将被自动垃圾回收
其结果意味着,要存储状态,节点只需要最多两个KV快照。
区块存储优化
使用快照区块,我们可以通过仅存储以下数据来进一步减少节点中所需的区块数据:
最新的快照区块的交易执行前状态快照,即快照区块的交易执行后状态
快照区块之后的完整区块?
我们可以对存储成本进行简单的数学计算:假设epoch持续时间为2周,则区块重放大小为
2*14*24*3600*100*1000=224GB!
而且,这里的数字不会随着时间的推移而增长!
总结
我们分析了以太坊当前的存储使用情况:
不仅是区块,状态存储消耗了很多的空间
当TPS>1000时,存储空间用量高得令人望而却步
我们提出对区块和状态进行优化:
区块大小从每年2.86TB减少到224GB
状态大小从8.3TB减少到600GB
一台2TB的普通配置计算机应该能满足长时间运行节点的条件
缺点:轻节点无法验证状态中的一个数据
致谢
感谢dapp-learning主办此次活动。教学全程视频可点击公众号第二条推送观看。
这就是未来天使投资应该有的样子:从你的ENS钱包向公司的ENS发送USDC,并获得数字镜像资产回到你的钱包中.
近日,狗狗币基金会发布了一份“路线图”,详细说明了其未来的发展计划。这也是狗狗币基金会8年来首次发布狗狗币路线图.
科幻作家能够非常迅速地接受新想法和新研究。很少有人撰写影响人类生存的问题,更少有人因为写科幻小说而获得多个文学奖,同时也几乎没有人会以首席未来学家的身份加入一家估值百亿美元的大公司,但这三件看似.
尽管我认为自己是一名密码学家,但我并没有发现自己特别喜欢“密码学”。我不认为我曾经居然说了一句“滚出我的草坪,”但我更有可能点击PepperidgeFarm记住有关“加密”过去如何表示“加密”的.
金色周刊是金色财经推出的一档每周区块链行业总结栏目,内容涵盖一周重点新闻、行情与合约数据、矿业信息、项目动态、技术进展等行业动态。本文是项目周刊,带您一览本周主流项目以及明星项目的进展.
随着数字人民币的推广在2021年全面提速,无论其覆盖城市、应用场景,还是钱包开通数量都迎来了大幅增长.