前言
本文的主要目的是支持EIP-2537。它希望在eth1成为eth2分片之前,可以将eth2上使用的新加密原语集成到EVM中,从可以让eth1利用新系统的功能,可以为实现互操作性奠定基础。
新前沿
随着eth2.0主网的第一阶段(“信标链”)预计在今年晚些时候启动,现在是时候问问现存的网络是否可以做些什么来促进新系统的顺利生成。我们可以想象一些利用两个网络之间互操作性(eht1合并到eth2之前)的让人激动的用例,但结果证明,这些应用程序会无法实施,需要修改EVM以理解在eth2上使用的新加密原语。
我想提供新密码学的高层级概述,并说明在将eth1状态迁移到新系统之前,将其集成到EVM中会为在eth1中利用新系统的功能奠定基础。
eth1缺少什么?
考虑到在以太坊区块链上的所有数据都是公开的,需要加密签名确保特定的交易可以反映相关方的需求。以太坊上使用的签名方案是基于“椭圆曲线”的数学对象,其中使用的特定曲线称为secp256k1。该曲线上的点用于特定签名方案ECDSA,它提供我们期望的加密签名属性。
https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication,这一数学运算属性提升了ECDSA作为签名方案的安全性。
尽管secp256k1的ECDSA已经经历多年的实践,但定义它们的标准分别有20年和10年的历史。eth2使用新的结构,新结构利用了从那时以来的加密技术的进步。eth2上的验证者(类似eth1的矿工)使用BLS签名机制,它基于另外一种称为BLS12-381的椭圆曲线。(请注意,名称中的“BLS”都是缩写,表示“B”、“L”、“S”的不同集合!)
Starknet数据面板StarkBoard发布V1版本,可查看TVL、交易信息等数据:9月17日消息,Starknet数据面板StarkBoard发布V1版本,目前用户可查看TVL、日活跃地址数、交易信息等数据,接下来V2版本将覆盖深入的协议和DApp数据、发布API、链上alpha机会收集、链上游戏统计、DAO2DAO服务等。[2022/9/17 7:03:12]
使用这堆栈的主要原因是,它允许将很多签名有效地聚合到一个签名中,这对eth2的安全性的可扩展有直接帮助。关于eth2中签名聚合重要性的更多信息,可以参考Carl Beekhuizen的文章。
虽然这些进步对eth2非常有用,但是,由于eth1并不原生支持这种新加密技术,并且基础数学的计算需求性质使我们无法在EVM中执行BLS签名,因此我们立即就遇到了问题。幸运的是,我们可以通过将计算添加为“预编译”来规避EVM的性能限制,这是硬编码算法,当智能合约调用时,它会在EVM解释器外遵循本地实现。
我们如何得到它
以太坊上的预编译是稀缺资源,因此仅保留给社区认为是重要的计算。此外,它们需要为部署进行硬分叉(因为它们改变了EVM语义),因此协调成本很高。幸运的是,关于这些BLS预编译,目前的EIP-2537草案已经提出来了。
这个EIP包括基于BLS12381曲线进行操作的几种预编译,并且将包括另外一种称为“曲线映射”(用于BLS签名方案)的昂贵操作。如果你深入研究BLS签名方案本身的数学原理,则会发现需要一些机制才能将特定信息转化为曲线上点的表示,它有助于“映射到曲线”。
它对于我们有什么帮助?
通过提高存储合约的用户体验和为在eth1中构建eth2轻客户端奠定基础,EIP-2537预编译将可以立即帮助到eth2。BLS12-381曲线本身可用于构建zk-SNARKs,且在其他区块链中BLS的使用可以为这些网络间的互操作性铺平道路。
存储合约用户体验
要成为eth2信标链的验证者,最初的方法是通过将ETH存入eth1上的智能合约(“存储合约”)。为了节省gas成本或最小化复杂性,这个智能合约只是对特定存款进行加密承诺(在Merkle tree上),它是可在信标链上消费的证明,除此之外,没有做更多其他的事情。
重要的是,验证存储所需的BLS签名并没在eth1链上验证。当由于bug,一系列的BLS签名未得到正确计算时,这一事实导致测试网ETH的丢失。通过在eth1链上支持BLS签名的验证(EIP-2537),我们可以编写“转发”智能合约,这样的智能合约接收存款数据,验证签名,然后发送存款数据到存款合约。不要求存款合约以安全方式工作,但确实为跟存款合约对接的开发者添加一些额外的安心。
EVM内的eth2轻客户端
我们也希望eth1可以理解eth2加密技术,并将其作为在eth1链上构建eth2轻客户端的前提条件。这个能力使得在智能合约中BTC中继方式的轻客户端成为可能。这样的轻客户端是让人兴奋的,因为它形成了eth1和eth2网络之间的“桥梁”。这样的双向桥接可以解锁在eth1和eth2之间转移ETH的能力,而且它也允许将eth2分片用作为大规模可扩展数据层,以支持在eth1上进行Layer 2的构建(例如Optimistic Rollups,zk-rollups等。
令人兴奋的是,在EVM内构建轻客户端(作为智能合约)可能不是向eth1添加eth2意识的最佳方法(在eth1客户端层面替代实现轻客户端),并且关于“双向桥接”的最新研究表明,考虑到每个网络的其他安全参数,这是不可行的。(相反,只需将eth1状态放入eth2分片中会更合理)。话虽如此,今天奠定基础并没有什么坏处,且eth1-eth2合并策略未来有可能会改变。
zk-SNARKs
创建BLS12-381曲线是为了支持在Zcash中使用的更高效的zk-SNARKs,并将曲线添加到EVM中,这会让以太坊验证此SNARKs,从而允许零知识协议在隐私应用中使用且实现可扩展性。
其他网络
还有很多“下一代”的区块链(Filecoin、Chia、Cosmos......)都打算在某种程度上使用BLS签名机制,以便于拥有在EVM中本地验证这些签名的能力,并解锁类似于eth1和eth2之间类似的互操作性用例。
这有多紧急?
EIP-2537支持的所有用例都没有阻碍eth2的启动。但是,这对存款合约的提升很好,且不久之后,我们越早为互操作性奠定基础,就越早可以对这些应用进行原型设计。这似乎确实有利于推动这一EIP进入代号为柏林的下一次以太坊硬分叉。你可以通过在你喜欢的客户端中支持这个EIP的实现来推进这些努力。
本文作者Alex Stokes,由“蓝狐笔记”的“DR”翻译。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。