作者:VitalikButerin
原文:https://ethresear.ch/t/future-proof-shard-and-history-access-precompiles/9781
当前以太坊设计中的向后兼容性所面临的挑战之一是区块链历史记录的访问需要对Merkle证明进行EVM验证,这还假设区块链将永远使用相同的格式和相同的密码技术。未来的分片设计更是增加了这一点的重要性,因为Rollup的欺诈证明和有效性证明将需要指向分片数据的指针。
《富爸爸穷爸爸》作者:明年比特币价格将触及12万美元:金色财经报道,《富爸爸穷爸爸》作者罗伯特清崎评论了金砖国家联盟成员采用金本位制的最新举措。罗伯特清崎表示,金砖国家可能会在下个月宣布推出黄金支持的加密货币,此举可能会改变美元(USD)估值的现状,考虑到美元即将贬值,清崎建议追随者购买黄金和白银,以对冲未来几个月即将飙升的通货膨胀。此外,清崎预测明年比特币价格将触及12万美元。
金色财经此前报道,渣打银行预测,比特币今年可能达到5万美元,到2024年底可能达到12万美元。[2023/7/11 10:48:09]
这篇文章提出了一种更加面向未来的方法:我们可以添加执行验证特定类型证明的抽象任务的预编译,而不是要求在EVM中验证历史和分片的证明。如果将来更改格式,预编译逻辑将自动更改。预编译甚至可以具有条件逻辑,用于验证过渡前插槽的一种证明和转换后插槽的另一种证明。
Sui生态DeFi初创公司Siphon Lab完成120万美元种子轮融资,Kima Ventures领投:5月8日消息,Sui生态DeFi加密初创公司SiphonLab宣布完成120万美元种子轮融资,Kima Ventures领投,Waveline Capital、BTGrowth Capital、UnoVentures、Quidnet Ventures、Mava Ventures、以及一批Web3和Web2领域里的天使投资人参投,新资金将用于其扩大业务规模、培养人员并加速发展。据悉Siphon Lab目前正在Sui网络上构建“Siphon Universe”,旗下产品包括Tradeify、Liquidify等流动性质押协议,旨在最大限度地提高SUI在整个生态系统中的资本效率。[2023/5/8 14:50:19]
历史区块数据
瑞士当局据悉考虑将瑞信全部或部分国有化:金色财经报道,知情人士透露,瑞士当局正在考虑将瑞士信贷集团完全或部分国有化,作为瑞银集团收购之外的唯一可行选择。知情人士称,由于交易安排的复杂性和涉及的时间框架短,如果瑞银集团的收购失败,该国正在考虑要么完全接管瑞信,要么持有瑞信的大量股权。形势非常不稳定,而且仍有可能发生变化,因为瑞士当局寻求在亚洲市场开盘前(欧洲时间深夜)敲定对瑞信的解决方案。瑞士财政部拒绝对此置评。瑞银对瑞信的收购有很多复杂之处,棘手问题包括政府是否会提供担保,以弥补可能的法律和其他损失。[2023/3/20 13:13:55]
defverifyHistoricalBlockRoot(slot:uint256,value:bytes32,proof:bytes)
Fantom将与安全公司Dedaub合作部署“Contract-library”和“Watchdog”至主网:7月27日消息,Fantom与安全公司Dedaub建立合作伙伴关系,将把“Contract-library”(智能合约浏览器)和“Watchdog”(智能合约安全分析器)部署至Fantom主网,所有这些都是通过Erigon节点驱动的。
注:Contract-library是一个智能合约浏览器,其Fantom的全面公开部署计划于2022年9月进行,测试部署已经投入使用;Watchdog是一种静态EVM分析器,可自动识别智能合约中安全漏洞的根本原因,并向开发人员和审计员提供反馈。[2022/7/27 2:41:02]
这种预编译将尝试以两种方式之一解释该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直接对分片数据进行操作。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。