为以太坊2.0扫清障碍,V神提出新的以太坊向后兼容方法_比特币:比特币害死多少人犯法

作者:VitalikButerin

原文:https://ethresear.ch/t/future-proof-shard-and-history-access-precompiles/9781

当前以太坊设计中的向后兼容性所面临的挑战之一是区块链历史记录的访问需要对Merkle证明进行EVM验证,这还假设区块链将永远使用相同的格式和相同的密码技术。未来的分片设计更是增加了这一点的重要性,因为Rollup的欺诈证明和有效性证明将需要指向分片数据的指针。

Double Protocol推出的可租赁NFT标准“ERC-4907”成为以太坊最终标准:6月29日消息,NFT租赁市场Double Protocol推出的可租赁NFT标准“EIP-4907”已通过以太坊开发团队最终审核,成为以太坊上第30个状态为“Final”(最终版)的ERC标准。该标准通过双角色的设置,实现了NFT所有权与使用权的分离,并首创了到期自动收回使用权功能。“ERC-4907”这一标准的应用将极大地降低游戏、元宇宙、会员卡等Utility NFT租赁的开发和集成成本,让NFT资产更具流动性。据悉,目前确认应用“ERC-4907”标准的项目已达12家。[2022/6/29 1:38:14]

这篇文章提出了一种更加面向未来的方法:我们可以添加执行验证特定类型证明的抽象任务的预编译,而不是要求在EVM中验证历史和分片的证明。如果将来更改格式,预编译逻辑将自动更改。预编译甚至可以具有条件逻辑,用于验证过渡前插槽的一种证明和转换后插槽的另一种证明。

为以太坊矿工提供套利工具的项目Archer治理代币上线Uniswap:匿名团队开发的以太坊矿工可提取价值(MEV)套利产品Archer的治理代币ARCH已上线Uniswap,项目方提供的初始流动性为370个ETH和100万个ARCH,官方称这部分流动性将会被锁定至少6个月。ARCH代币总量为1亿枚,以初始流动性的价格计算,该项目的总市值超过2000万美元。

注:Archer通过使用链上激励机制来为矿工增加收入来源,包括通过DEX套利和贷款清算等零风险或风险较低的方式为开采出来的区块增加价值。Archer表示自己有助于提升以太坊用户体验,包括降低抵押率、使各个DEX的现货价格趋于一致、更可靠的激励机制、减少不友好的抢先交易频率以及通过私有渠道提交交易。[2020/11/23 21:48:13]

历史区块数据

现场丨MAP协议开源贡献者兰舟:以太坊难以吸收新鲜的血液,波卡可能会成为以太坊的强力竞争者:金色财经现场报道,11月20日,由金色财经主办,Blocklike,鲸交所,四块科技,DSFS-LABS协办的金色沙龙第57期在杭州举办,在圆桌环节,MAP协议开源贡献者兰舟表示,以太坊在DeFi生态可以称之为垄断,但是难以吸收新鲜的血液,由于技术壁垒较高,很少会有新的开发者加入。而波卡则对链开发者很友好,无论是内容还是社区推广上面,波卡都做的很优秀,所以波卡可能会成为以太坊的强力竞争者。[2020/11/20 21:31:18]

defverifyHistoricalBlockRoot(slot:uint256,value:bytes32,proof:bytes)

动态 | 昨天EOS日活为以太坊3倍 交易量为52倍:据 DAppTotal 12月07日数据显示:过去一天内, ETH DApps整体生态日活跃DApps有324个,日活跃用户7,033个,日交易笔数为50,793次,交易总额为13,296.71枚ETH,用户活跃度最高的分别为游戏和交易所,各占比38.81%、33.91%;EOS DApps整体生态日活跃DApps有127个,日活跃用户21,942个,日交易笔数为2,687,432次,交易总额为8,794,103.30枚EOS,用户活跃度最高的为竞猜类游戏,占比53.26%。就两条公链整体情况而言,EOS日活跃用户为以太坊的3倍,交易量为52倍。[2018/12/7]

这种预编译将尝试以两种方式之一解释该proof:

如果这个proof为空,则直接检查该value是否为保存在正确位置的历史区块根。如果slot太旧,它将失败。

如果这个proof是一个Merkle分支,它会根据history_roots中的正确条目将其验证为Merkle分支

defverifyHistoricalStateRoot(slot:uint256,value:bytes32,proof:bytes)

验证状态根,使用与该区块根相同的逻辑。

defverifyHistoricalStateValue(slot:uint256,key:bytes32,value:bytes32,proof:bytes)

验证历史状态中的值。这个proof包括三个要素:

状态根

表明状态根正确性的证明

Patricia或Verkle或其他证明该value实际上位于状态树中的位置key中的证明

defverifyHistoricalTransaction(slot:uint256,txindex:uint256,tx:bytes,proof:bytes)

验证tx实际上是否在给定slot的区块的txindex中。证明内容如下:

区块根

表明区块根正确性的证明

证明给定的tx实际上是给定位置的交易

defverifyHistoricalReceipt(slot:uint256,txindex:uint256,receipt:bytes,proof:bytes)

验证receipt实际上是给定slot的txindex处的交易接收。证明内容如下:

区块根

证明区块根正确性的证明

证明给定收据实际上是给定位置的receipt

分片数据

defverifyShardBlockBody(slot:uint256,shard:uint256,startChunk:uint256,chunks:uint256,data:bytes,proof:bytes)

验证data=body,其中body是给定slot中给定分片的主体。该证明将包括:

证明区块子集的Kate证明

如果slot太旧,则在slot+96处的区块根的Merkle证明,然后是从该slot到分片承诺数组中的位置的Merkle证明,显示一个最终性承诺

当我们使用BLS-12-381Kate承诺时,预编译还将验证数据是32字节chunk的列表,其中每个chunk都小于曲线子组顺序。如果没有在给定位置保存分片区块,则预编译就像在该位置保存了对零长度数据的承诺一样。如果给定位置的value未确认,则预编译总是失败。

defverifyShardPolynomialEvaluation(slot:uint256,shard:uint256,x:uint256,y:uint256,proof:bytes)

如果我们将给定(slot,shard)处的分片区块视为多项式P,其中字节i*32...i*32+31是w**i处的评估,这将验证P(x)=y。该proof与数据子集proof相同,除了Kate证明正在证明某个点的评估而不是在证明一个位置子集的数据。

如果我们将来不再使用BLS-12-381,则预编译会将SNARK作为输入,验证数据完全由小于该曲线阶数的值组成,并验证对当前字段数据的评估。

这种预编译对于等价协议的跨多项式承诺方案证明?很有用,可用于允许ZKRollup直接对分片数据进行操作。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-6:220ms