科普 | ETH 2.0 需要 ETH 1.0 什么,EIP-2537又是什么?
编者注:原标题为《eth2需要eth1什么?》
前言:本文的主要目的是支持EIP-2537。它希望在eth1成为eth2分片之前,可以将eth2上使用的新加密原语集成到EVM中,从可以让eth1利用新系统的功能,可以为实现互操作性奠定基础。本文作者Alex Stokes,由“蓝狐笔记”的“DR”翻译。
新前沿
随着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”的不同集合!)
使用这堆栈的主要原因是,它允许将很多签名有效地聚合到一个签名中,这对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的使用可以为这些网络间的互操作性铺平道路。
- 存储合约用户体验
重要的是,验证存储所需的BLS签名并没在eth1链上验证。当由于bug,一系列的BLS签名未得到正确计算时,这一事实导致测试网ETH的丢失。通过在eth1链上支持BLS签名的验证(EIP-2537),我们可以编写“转发”智能合约,这样的智能合约接收存款数据,验证签名,然后发送存款数据到存款合约。不要求存款合约以安全方式工作,但确实为跟存款合约对接的开发者添加一些额外的安心。
- EVM内的eth2轻客户端
令人兴奋的是,在EVM内构建轻客户端(作为智能合约)可能不是向eth1添加eth2意识的最佳方法(在eth1客户端层面替代实现轻客户端),并且关于“双向桥接”的最新研究表明,考虑到每个网络的其他安全参数,这是不可行的。(相反,只需将eth1状态放入eth2分片中会更合理)。话虽如此,今天奠定基础并没有什么坏处,且eth1-eth2合并策略未来有可能会改变。
- zk-SNARKs
- 其他网络
这有多紧急?
EIP-2537支持的所有用例都没有阻碍eth2的启动。但是,这对存款合约的提升很好,且不久之后,我们越早为互操作性奠定基础,就越早可以对这些应用进行原型设计。这似乎确实有利于推动这一EIP进入代号为柏林的下一次以太坊硬分叉。你可以通过在你喜欢的客户端中支持这个EIP的实现来推进这些努力。 ------ 风险警示:蓝狐笔记所有文章都不能作为投资建议或推荐,投资有风险,投资应该考虑个人风险承受能力,建议对项目进行深入考察,慎重做好自己的投资决策。