当前以太坊设计中的向后兼容性所面临的挑战之一是区块链历史记录的访问需要对 Merkle 证明进行 EVM验证,这还假设区块链将永远使用相同的格式和相同的密码技术。 未来的分片(Sharding)设计更是增加了这一点的重要性,因为Rollup的欺诈证明和有效性证明将需要指向分片数据的指针。
这篇文章提出了一种更加面向未来的方法:我们可以添加执行验证特定类型证明的抽象任务的预编译,而不是要求在 EVM 中验证历史和分片的证明。 如果将来更改格式,预编译逻辑将自动更改。 预编译甚至可以具有条件逻辑,用于验证过渡前插槽(slot)的一种证明和转换后插槽的另一种证明。
def verifyHistoricalBlockRoot( slot: uint256, ? ? value: bytes32, ? ? proof: bytes )这种预编译将尝试以两种方式之一解释该proof:
数据:截至目前,APE质押池已质押290万枚APE:金色财经报道,据Lookonchain监测,APE质押已于11小时前开始,截至目前,已质押290万枚APE,价值约1150万美元。[2022/12/6 21:25:10]
如果这个proof为空,则直接检查该value是否为保存在正确位置的历史区块根。 如果slot太旧,它将失败。
如果这个proof是一个Merkle 分支,它会根据 history_roots 中的正确条目将其验证为 Merkle 分支
def verifyHistoricalStateRoot( ? ? slot: uint256, ? ? value: bytes32, ? ? proof: bytes )验证状态根,使用与该区块根相同的逻辑。
Circle首席执行官:众议院立法是数字美元竞争的“最佳选择”:金色财经报道,Circle首席执行官Jeremy Allaire在华盛顿特区的一次金融会议上表示,加密行业参与者对立法者明年可以通过新的稳定币法持乐观态度,我认为这是美国目前在数字美元货币领域竞争的最佳机会,该立法“在确定这种新形式的数字货币货币方面做得非常好”。?
众议院金融服务委员会正在讨论该立法。该法案将允许私人稳定币发行人通过金融监管机构进行注册,前提是他们符合某些标准。该立法还要求美联储向国会报告央行数字货币的可能性。?[2022/10/12 10:31:42]
def verifyHistoricalStateValue( ? ? slot: uint256, ? ? key: bytes32, ? ? value: bytes32, ? ? proof: bytes ) 验证历史状态中的值。 这个proof包括三个要素:
ApeCoin DAO将于10月15日左右发布治理文件:金色财经报道,ApeCoin DAO成员Brandon Caruana在周三晚上举行了一次办公时间会议上表示,ApeCoin DAO将于10月15日左右发布治理文件。Brandon Caruana表示,ApeCoin DAO正在按计划发布对提名过程的看法以及之后的选举的想法,这份治理文件将涵盖从如何获得提名、如何提名其他人、提名人审查以及选举过程如何运作的所有内容。Brandon Caruana称,这份治理文件是与ApeCoin社区对话的起点,而不是全部的终点。[2022/10/11 10:30:33]
表明状态根正确性的证明
Patricia 或 Verkle 或其他证明该value实际上位于状态树中的位置key中的证明(这假设将所有帐户内容映射到 32 字节key的提议方案已永久保存)
美股期货涨幅扩大,标普500期货涨0.68%:行情显示,美股期货涨幅扩大,纳斯达克100指数期货涨1%,标普500期货涨0.68%。[2022/6/23 1:27:14]
def verifyHistoricalTransaction( ? ? slot: uint256, ? ? txindex: uint256, ? ? tx: bytes, ? ? proof: bytes ) 验证 tx 实际上是否在给定slot的区块的 txindex 中。 证明内容如下:
表明区块根正确性的证明
证明给定的tx实际上是给定位置的交易
def verifyHistoricalReceipt( ? ? slot: uint256, ? ? txindex: uint256, ? ? receipt: bytes, ? ? proof: bytes ) 验证receipt实际上是给定slot的 txindex 处的交易接收。 证明内容如下:
证明区块根正确性的证明
证明给定收据实际上是给定位置的receipt
def verifyShardBlockBody( ? ? slot: uint256, ? ? shard: uint256, ? ? startChunk: uint256, ? ?chunks: uint256, ? ? data: bytes, ? ? proof: bytes ) 验证 data = body[32 * startChunk: 32 * (startChunk + chunks)] ,其中 body 是给定slot中给定分片的主体。 该证明将包括:
证明区块子集的 Kate 证明
如果slot太旧(超过 128 个 epoch?),则在slot + 96 处的区块根的 Merkle 证明,然后是从该slot到分片承诺数组中的位置的 Merkle 证明,显示一个最终性承诺
当我们使用 BLS-12-381 Kate 承诺时,预编译还将验证数据是 32 字节chunk的列表,其中每个chunk都小于曲线子组顺序。 如果没有在给定位置保存分片区块,则预编译就像在该位置保存了对零长度数据的承诺一样。 如果给定位置的value未确认,则预编译总是失败。
def verifyShardPolynomialEvaluation( ? ? 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(例如,使用 32 字节二进制字段证明),则预编译会将 SNARK 作为输入,验证数据完全由小于该曲线阶数的值组成,并验证对当前字段数据的评估。
这种预编译对于等价协议的跨多项式承诺方案证明?很有用,可用于允许 ZK Rollup直接对分片数据进行操作。
作者:Vitalik Buterin
原文:https://ethresear.ch/t/future-proof-shard-and-history-access-precompiles/9781
金色周刊是金色财经推出的一档每周区块链行业总结栏目,内容涵盖一周重点新闻、矿业信息、项目动态、技术进展等行业动态。本文是其中的新闻周刊,带您一览本周区块链行业大事.
1900/1/1 0:00:00头条▌七国集团发布CBDC设计偏好?重申对不受监管稳定币的担忧七国集团(G7)财长和央行行长本周在伦敦会晤.
1900/1/1 0:00:00北京时间6月3日11时11分,链必安-区块链安全态势感知平台(Beosin-Eagle Eye)舆情监测显示,BSC链上项目PancakeHunny遭遇黑客攻击.
1900/1/1 0:00:00各位来宾,与会代表,上午好!很高兴参加本次清华五道口全球金融论坛, 刚才听了邱勇校长、张晓慧院长做了非常重要的讲话.
1900/1/1 0:00:00波卡生态最新生态图 V2021.06,5-6月波卡生态新增提交38个项目: 钱包 4个,基础设施 4个,dApp 1个.
1900/1/1 0:00:006月8日,比特币突然跳水,下破33000美元,最低至32352美元,日内跌幅一度达10.36%,其他加密货币跌幅也大都超10%。其中,以太坊跌破2500美元,至2428美,跌幅达13.05%.
1900/1/1 0:00:00