长推:数据可用性DA如何确保区块里的所有数据都发布到了网络中

Xiang热度: 9206

ETH的轻节点可以通过欺诈证明+数据可用性采样来确保区块里的数据发布到网络中,而L1检测L2则是通过验证状态根、有效证明以及数据可用性来确认是否release了所有数据。

摘要由 Mars AI 生成
本摘要由 Mars AI 模型生成,其生成内容的准确性、完整性还处于迭代更新阶段。

原文作者:Xiang|W3.Hitchhiker

原文来源:twitter

注:本文来自@xiangganzi 推特,MarsBit整理如下:

数据可用性(DA)的定义,对现在大家理解还是存在很多模糊的地方。

简单来说DA就是,当区块生成者提出新区块时,如何确保区块里的所有数据都发布到了网络中?

这里可以分对象大家会更容易理解,A检测B发布的区块是否没有relesase所有数据?

主要分两种情况

轻节点检测全节点,L1 检测 L2。

更精确的说应该是B区块数据发布后(区块,batch已产生),A检测B是否release了所有数据?避免B作恶

轻节点检测全节点:

现有ETH方式常规方式是用户完全信任全节点,比如用小狐狸的用户就完全信任matemask钱包连接全节点RPC提供的数据(用户可以改全节点的RPC),并未实现轻节对全节点的检验。

celestia目前的实现方式是,如果全节点没有relesase所有数据,celestia的轻节点可以通过欺诈证明+数据可用性采样判断全节点是否实release了所有数据,未relesase所有数据的全节点将受到惩罚。

eth规划也有,但是还未实现,现在是calldata形式保存数据可用性,都是执行层全节点保存。

未来ETH要Proto-danksharding升级,但还是所有的共识层验证节点保存全部数据,再再下次danksharding升级才实现数据可用性抽象,实现轻节点验证。(验证方式可通过有效证明方式)

这里数据可用性是数据发布,不需要数据存储

L1 检测 L2 :

检测opRollup的区块是否relesase所有数据: opRollup的VM执行一个区块(batch)生成新的状态根,然后opRollup把自己的交易数据上传至L1的数据可用性层,检测方式是任何用户可以通过自己运行VM,如得到的状态根与OP提供的不一致,就可在L1发起欺诈证明,如果一致就保证relesase了所有数据

检测validRollup的区块是否relesase所有数据:validRollup的VM执行一个区块(batch)生成有效证明,以及数据可用性(可以是交易数据,也可以是状态差),验证proof有效后,在验证数据可用性与其是否匹配,验证成功自然也就确认了validRollup的区块relesase了所有数据。

L1检测L2还有不同点,L1的安全性是高于L2的,所以L1要考虑到L2跑路的情况,即使L2跑路也得保障用户资产安全,L1的用户能根据链上存储的数据,还原出所有用户账户的状态,要消除这种风险就得做好数据存储。

对于L2而言,不仅需要L1做好数据可用,还需要支持数据存储功能(例如ETH归档节点,ETHStorage)

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。