本文档是关于在电路中创建 Verkle Trie 数据结构的项目提案,旨在实现状态变更在 zk 电路中的高效证明,移除了主要瓶颈 Keccak-SHA3。项目目标是学习 Verkle Trie 中使用的密码学和数据结构,并使用 Halo2 库编写电路,通过对 VKT 和 MPT 电路进行基准测试,分析 VKT 在 EVM 兼容 L2 解决方案中的效率。
这是一个项目提案草案,当前该项目的目标是获得电路内 Pedersen 哈希和承诺的基准,该基准用于 Verkle 树与用于 MPT 的 Keccak 哈希,使事情过于复杂毫无意义
VKT - verkle 树 MPT - merkle patricia 树
本文档的目的是描述一个项目提案,用于在电路内创建一个 verkle 树数据结构,这意味着状态变化的执行可以在 zk 电路中有效地证明(因为消除了主要的瓶颈 - keccak-sha3)。
为了使以太坊更具可扩展性、去中心化和安全性,提出了一种新的存储数据结构:Verkle 树。更多信息请参见: https://verkle.info/
(不确定 VKT 是否为以太坊增加了更多安全性, 我认为 MPT 比 VKT 更安全,因为 keccak 的量子安全性高于 ECC, 但在接下来的 5-10 年里我们仍然应该没问题(目前还没有量子计算机)) - 至少这是我目前的理解 编辑: 存在“功能承诺”,它们是后量子安全的、加法同态的,但它们需要某种可信设置,我正在学习这是否可以在电路内高效实现,这是论文:https://eprint.iacr.org/2022/1368.pdf
来自 Lev(https://github.com/Lev-Stambler/CP22-function-commitment)关于他在这项功能承诺方面的工作以及他的回答的评论:
从 MPT 过渡到 VKT 的两个原因是,它将帮助以太坊实现弱无状态,并帮助引导更多验证者(更多去中心化),而且它比在 zk rollup 的电路中证明 merkle 树便宜且容易得多(更多可扩展性),这意味着应该更容易拥有 1 类 zk-evm(因为消除了 keccak 并具有椭圆曲线运算(pedersen 承诺 + IPA))- 这应该更容易在 zk 电路中验证。
我已在 Ethereum R&D discord 的 "verkle-trie-migration" 频道中询问是否有人已经在电路内使用 VKT, 似乎没有这样的项目,所以我认为研究它是有意义的。来自 Scroll 团队的 Zhang Zhuo (https://github.com/lispc/) 已经提供了帮助。
我在阅读 bandersnatch 椭圆曲线论文时产生了这一想法:https://eprint.iacr.org/2021/1152.pdf 并做了小型黑客马拉松项目。
因此,选择该曲线是为了对 zk-snarks 友好,并且标量乘法效率高,并且 pedersen 承诺在电路内应该很高效。该项目的目标是了解所有这些内容,并针对电路内实现的 MPT 原语(主要是 keccak)进行基准测试。例如,证明时间。
我们需要的东西的高级概述:
由于 Ethereum PSE 团队正在使用 halo2 库开发 ZKEVM 1 类,我想了解更多相关信息并开始为 VKT 编写电路。到目前为止,我已经编写了小型项目,例如: https://github.com/dragan2234/fibosquared-halo2
此外,对于第一次迭代,我认为我们可以只让 VKT 电路正确运行,而不与 zkevm 项目集成。然后我们将针对 MPT 电路进行基准测试。基准测试示例:
由于 zkevm 项目的 MPT 电路开发持续了 2 年,因此该项目并非易事,但仍然不应该那么复杂。本届 cohort 结束时的任何产出都应该是有用的。
有用的链接:
待定。
关于挑战的更新:
在挑战中的更新 2:
更新 3:
更新 4: 来自 https://github.com/asanso 的评论,关于 banderwagon 在电路中是否高效: 是的,它将提供与 https://github.com/zhenfeizhang/bandersnatch#examples “示例”部分中的来自 bandersnatch r1cs contraints 基准测试类似的基准。
基准: bandersnatch: base var 的 cs:5 标量 var 的 cs:256 mul 的 cs:2869 result var 的 cs:27 equality 的 cs:20 总约束数:3177
jubjub: base var 的 cs:21 标量 var 的 cs:256 mul 的 cs:3325 result var 的 cs:21 equality 的 cs:2
带有 glv 的 bandersnatch: setup 的 cs:16 endomorphism var 的 cs:6 标量分解 var 的 cs:405 msm 的 cs:2176 result var 的 cs:16 equality 的 cs:2 总约束数:2621
有几个人对此感兴趣,并非所有人都来自 EPF 项目。 我们将在启动时在此处添加每个人。
更多更新(稍后将清理整个文件):
- 原文链接: github.com/eth-protocol-...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!