原标题:以太坊协议的未来,第六部分:挥霍
原文作者:@VitalikButerin
原文翻译:zhouzhou、BlockBeats
以下为原文内容(为了方便阅读和理解,对原文内容进行了重新整理):
有些事情很难归入单一类别,而在以太坊协议设计中,有许多细节对以太坊的成功至关重要。事实上,大约一半的内容涉及不同类型的 EVM 改进,其余则由各种小众主题组成。这就是 flourish 的含义。
2023 年路线图:繁荣
繁荣:一个关键目标
使 EVM 达到高性能和稳定的最终状态
在协议中引入账户抽象,让所有用户都能享受更加安全、便捷的账户
优化交易费用经济学,提高可扩展性并降低风险
探索先进 加密货币从长远来看,网络技术将显著改善以太坊
在本章中
EVM 改进
解决了什么问题?
当前的 EVM 难以进行静态分析,这使得创建高效的实现、形式化验证代码和进行进一步扩展变得困难。此外,除非预编译明确支持,否则 EVM 效率低下且难以实现多种形式的高级加密技术。
它是什么以及它是如何工作的?
当前 EVM 改进路线图的第一步是 EVM 对象格式 (EOF),计划在下一次硬分叉中纳入。EOF 是一系列 EIP,用于指定具有许多独特功能的新 EVM 代码版本, 最值得注意的是:
-
代码(可以执行但不能从 EVM 读取)和数据(可以读取但不能执行)分离
-
禁止动态跳跃,只允许静态跳跃
-
EVM 代码不再能够观察燃料相关信息
-
添加了新的显式子程序机制
EOF 代码的结构
Boom:EVM 改进(续)
旧式合约将继续存在并可创建,但它们最终可能会被淘汰(甚至可能被迫转换为 EOF 代码)。新式合约将受益于 EOF 带来的效率提升——首先是通过子程序功能以略小的字节码形式实现,然后以新的 EOF 特定功能或降低 gas 成本的形式实现。
在引入EOF之后,进一步的升级变得更加容易,目前最发达的是 EVM 模块化算术扩展 (EVM-MAX) EVM-MAX 专门为模块化操作创建了一组新操作,并将它们放置在其他操作码无法访问的新内存空间中,这使得可以使用以下优化: 蒙哥马利乘法 .
一个较新的想法是将 EVM-MAX 与单指令多数据 (SIMD) 功能相结合。SIMD 作为以太坊概念已经存在很长时间了,最早由 Greg Colvins EIP-616 . SIMD 可用于加速多种形式的加密,包括哈希函数、32 位 STARK 和基于格的加密。EVM-MAX 与 SIMD 的结合使这两个以性能为导向的扩展成为自然搭配。
组合 EIP 的粗略设计将从 EIP-6690 开始,然后:
-
允许 (i) 任何奇数或 (ii) 2 的任何幂(最高 2768)作为模数
-
对于每个 EVM-MAX 操作码(加法、减法、乘法),添加一个使用 7 个立即数而不是 3 个 x、y、z 的版本:x_start、x_skip、y_start、y_skip、z_start、z_skip、count。在 Python 代码中,这些操作码的工作原理如下:
-
对于范围内的 i(计数):
mem[z_start + z_skip * count] = op(
mem[x_start + x_skip * count],
mem[y_start + y_skip * count]
)
在实际实施中,将会并行处理。
-
可能至少为 2 的幂的模数添加 XOR、AND、OR、NOT 和 SHIFT(循环和非循环)。还添加 ISZERO(将输出推送到 EVM 主堆栈),这将足够强大,可以实现椭圆曲线加密、小域加密(如 Poseidon、Circle STARKs)、传统哈希函数(如 SHA 256、KECCAK、BLAKE)和基于格的加密。其他 EVM 升级也是可能的,但迄今为止受到的关注较少。
现有研究链接
结尾: https://evmobjectformat.org/
EVM 最大值: https://eips.ethereum.org/EIPS/eip-6690
SIMD: https://eips.ethereum.org/EIPS/eip-616
剩余工作和权衡
目前,EOF 计划包含在下一次硬分叉中。虽然在最后一刻删除它总是有可能的——以前的硬分叉中曾暂时删除过一些功能,但这样做将非常具有挑战性。删除 EOF 意味着将来对 EVM 的任何升级都需要在没有 EOF 的情况下进行,这是可能的,但可能更困难。
EVM 的主要权衡是 L1 复杂性与基础设施复杂性。EOF 是需要添加到 EVM 实现中的大量代码,并且静态代码检查相对复杂。但是,作为交换,我们可以简化高级语言,简化 EVM 实现等好处。可以说,优先考虑以太坊 L1 持续改进的路线图应该包括并建立在 EOF 之上。
需要完成的一项重要工作是实现类似 EVM-MAX 加 SIMD 的功能,并对各种加密操作的 gas 消耗进行基准测试。
它如何与路线图的其余部分互动?
L1 调整其 EVM,以便 L2 能够更轻松地进行相应调整。如果两者不同步调整,可能会导致不兼容和不利影响。此外,EVM-MAX 和 SIMD 可以降低许多证明系统的 gas 成本,使 L2 更加高效。它还使得用可以执行相同任务的 EVM 代码替换更多预编译变得更加容易,并且可能不会对效率产生很大影响。
账户抽象
解决了什么问题?
目前,交易只能通过一种方式验证:ECDSA 签名。最初,账户抽象旨在超越这一点,允许账户的验证逻辑为任意 EVM 代码。这可以实现一系列应用:
-
转向抗量子密码学
-
轮换旧钥匙(广泛 被认为是推荐的安全做法 )
-
多重签名钱包和 社交恢复钱包
-
使用一个密钥进行低价值操作,使用另一个密钥(或密钥集)进行高价值操作
允许隐私协议无需中继即可工作,从而大大降低其复杂性并消除关键的中心依赖点
自 2015 年提出账户抽象以来,其目标也不断扩展,包括了大量的便利性目标,比如一个没有 ETH 但有一些 ERC 20 的账户能够用 ERC 20 支付 gas。以下是这些目标的总结图表:
MPC(多方计算)是一种 40年历史的技术 将密钥分成多个部分并存储在多个设备上,使用加密技术生成签名,而无需直接组合这些密钥部分。
EIP-7702 是计划在下一次硬分叉中引入的提案。EIP-7702 是人们越来越意识到需要提供账户抽象便利以造福所有用户(包括 EOA 用户)的结果。它旨在短期内改善所有用户的体验,避免分裂成两个生态系统。
工作始于 EIP-3074 并最终形成了 EIP-7702。EIP-7702 为所有用户提供了账户抽象的便捷功能,包括如今的 EOA(外部拥有账户,即由 ECDSA 签名控制的账户)。
从图表中可以看出,虽然一些挑战(尤其是便利性挑战)可以通过多方计算或 EIP-7702 等渐进式技术来解决,但原始账户抽象提案的主要安全目标只能通过回溯和解决原始问题来实现:允许智能合约代码控制交易验证。迄今为止尚未实现这一目标的原因是,安全实施具有挑战性。
它是什么以及它是如何工作的?
账户抽象的核心很简单:允许智能合约发起交易,而不仅仅是 EOA。整个复杂性来自于以一种有利于维护去中心化网络和防止拒绝服务攻击的方式实现这一点。
一个典型的关键挑战是多重故障问题:
如果有 1000 个账户的验证函数都依赖于一个值 S,而 S 的当前值使得内存池中的所有交易都有效,那么一个翻转 S 值的交易可能会使内存池中的所有其他交易无效。这使得攻击者可以以非常低的成本向内存池发送垃圾交易,从而堵塞网络节点的资源。
经过多年努力,旨在扩展功能同时限制拒绝服务(DoS)风险,最终找到了实现理想账户抽象的解决方案:ERC-4337。
ERC-4337 的工作原理是将用户操作的处理分为两个阶段:验证和执行。所有验证都先处理,所有执行都后处理。在内存池中,只有验证阶段只涉及自己的账户,不读取环境变量时,用户操作才会被接受。这可以防止多次无效攻击。此外,验证步骤还强制执行严格的 gas 限制。
ERC-4337 被设计为附加协议标准 (ERC),因为当时以太坊客户端开发人员专注于合并 (Merge),没有多余的精力来处理其他功能。这就是为什么 ERC-4337 使用称为用户操作的对象而不是常规交易的原因。然而,最近我们意识到我们需要将其中至少一些写入协议中。
主要有以下两个原因:
1. EntryPoint 作为合约固有的低效率:每个 bundle 有大约 100,000 gas 的固定开销,并且每个用户操作需要数千个额外的 gas。
2. 确保以太坊属性的必要性:纳入列表创建的纳入保证需要转移给账户抽象用户。
此外,ERC-4337还扩展了两个功能:
-
付款人:允许一个账户代表另一个账户支付费用的功能。这违反了在验证阶段只能访问付款人账户本身的规则,因此引入了特殊处理以确保付款人机制的安全性。
-
聚合器:支持签名聚合的函数,例如 BLS 聚合或基于 SNARK 的聚合。这对于在 Rollup 上实现最高的数据效率是必需的。
现有研究链接
关于帐户抽象历史的讨论: https://www.youtube.com/watch?v=iLf8qpOmxQc
ERC-4337: https://eips.ethereum.org/EIPS/eip-4337
EIP-7702: https://eips.ethereum.org/EIPS/eip-7702
BLSWallet 代码(使用聚合函数): https://github.com/getwax/bls-wallet
EIP-7562(将账户抽象写入协议): https://eips.ethereum.org/EIPS/eip-7562
EIP-7701(基于EOF的写入协议账户抽象): https://eips.ethereum.org/EIPS/eip-7701
剩余工作和权衡
需要解决的主要问题是如何将账户抽象完全引入协议中。用于编写协议账户抽象的最流行的 EIP 是 EIP-7701 ,在 EOF 之上实现了账户抽象。账户可以有单独的代码段用于验证。如果账户设置了此代码段,则该代码将在来自该账户的交易验证步骤中执行。
这种方法的优点在于它清楚地显示了本地帐户抽象的两个等效视图:
1. 将 EIP-4337 纳入协议
2. 一种新型的 EOA,其签名算法是 EVM 代码执行
如果我们首先严格限制验证期间可执行的代码的复杂性(不允许访问外部状态,甚至将初始 gas 限制设置得足够低,以至于对抗量子或隐私保护应用程序无效),那么这种方法的安全性就很明显了:只需用花费类似时间的 EVM 代码执行替换 ECDSA 验证即可。
然而,随着时间的推移,我们需要放宽这些限制,因为允许隐私保护应用程序在没有中继的情况下工作以及量子抗性非常重要。为此,我们需要找到更灵活地解决拒绝服务 (DoS) 风险的方法,而无需将验证步骤简化到极致。
主要的权衡似乎是快速编写一个让更少人满意的解决方案,还是等待更长时间以获得可能更理想的解决方案,而理想的方法可能是某种混合方法。一种混合方法是更快地编写一些用例,并留出更多时间探索其他用例。另一种方法是首先在 L2 上部署一个更雄心勃勃的帐户抽象版本。然而,这里的挑战是 L2 团队需要确信采用提案会奏效,然后他们才愿意实施它,尤其是要确保 L1 和/或其他 L2 将来可以采用兼容的解决方案。
我们需要明确考虑的另一个应用是 密钥存储帐户 在 L1 或专用的 L2 上存储账户相关状态,但可以在 L1 和任何兼容的 L2 上使用。要有效地做到这一点可能需要 L2 支持以下操作码 L1S 负载 或者 遠端靜電呼叫 ,但这也需要L2上的账户抽象实现来支持这些操作。
它如何与路线图的其余部分互动?
包含列表需要支持账户抽象交易,在实践中,包含列表的要求实际上与去中心化内存池的要求非常相似,尽管包含列表的灵活性略高。此外,账户抽象实现应尽可能在 L1 和 L2 之间协调。如果未来我们预计大多数用户都会使用密钥存储 Rollups,那么账户抽象设计也应以此为基础。
EIP-1559 改进
它解决了什么问题?
EIP-1559 于 2021 年在以太坊上启动,显著提高了平均区块包含时间。
等待时间
然而,目前 实施 EIP-1559 有几个方面还不够完善:
1. 该公式略有缺陷:它不是以 50% 的块为目标,而是以 50-53% 的完整块为目标,具体取决于方差(这与数学家所说的“算术几何平均不等式”有关)。
2. 在极端情况下调整不够迅速。
后面的 blob 方案(EIP-4844)专门为解决第一个问题而设计,总体来说也更简洁。然而,EIP-1559 本身和 EIP-4844 都没有试图解决第二个问题。因此,现状是一个混乱的中间地带,涉及两种不同的机制,有人认为这两种机制都需要随着时间的推移而改进。
此外,以太坊资源定价还存在其他与 EIP-1559 无关的弱点,但可以通过对 EIP-1559 进行调整来解决。主要问题之一是平均情况和最坏情况之间的差异:以太坊中的资源价格必须设置为处理最坏情况,即一个区块的全部 gas 消耗占用了资源,但实际平均使用量远低于此,导致效率低下。
什么是多维气体?它是如何工作的?
解决这些低效率的方法是 多维气体 :不同资源有不同的价格和限制。这个概念在技术上独立于 EIP-1559,但 EIP-1559 的存在使其更容易实现。如果没有 EIP-1559,最佳地打包具有多个资源限制的区块是一项 复杂的多维背包问题 . 使用 EIP-1559,大多数区块不会在任何资源上达到满负荷,因此像接受任何支付足够费用的交易这样的简单算法就足够了。
目前我们有用于执行和数据块的多维 gas;原则上,我们可以将其扩展到更多维度:例如 calldata(交易数据)、状态读/写和状态大小扩展。
EIP-7706 为 calldata 引入了一个新的 gas 维度。它还通过将三种 gas 类型统一到一个(EIP-4844 风格)框架中来简化多维 gas 机制,从而解决了 EIP-1559 的数学缺陷。 EIP-7623 是对平均情况和最坏情况资源问题的更精确的解决方案,对最大呼叫数据有更严格的限制,而无需引入全新的维度。
进一步的研究方向是解决更新率问题,找到更快的基本费用计算算法,同时保留 EIP-4844 机制引入的关键不变量(即:从长远来看,平均使用量刚好接近目标值)。
现有研究链接
EIP-1559 常见问题解答: EIP-1559 常见问题解答
经验 EIP-1559 分析
建议的 改进以允许快速调整:
EIP-4844 关于基本费用机制的常见问题解答: EIP-4844 常见问题解答
EIP-7706: EIP-7706
EIP-7623: EIP-7623
多维气体: 多维气体
剩下的任务和权衡是什么?
多维 Gas 主要有两个权衡:
1.增加协议复杂性:引入多维Gas将使协议变得更加复杂。
2. 填充区块所需的最优算法复杂度增加:填充区块至容量的最优算法也将变得更加复杂。
对于 calldata 来说,协议复杂度相对较小,但对于那些 EVM 内部的 gas 维度(例如存储读写),复杂度会增加。问题是,不仅用户设置 gas 限制,合约在调用其他合约时也会设置限制。而目前,他们只能在单一维度上设置限制。
一个简单的解决方案是将多维 Gas 只放在 EOF 内部,因为 EOF 不允许合约在调用其他合约时设置 gas 限制。非 EOF 合约在执行存储操作时需要支付所有类型的 Gas 费用(例如,如果 SLOAD 占用了 0.03% 的区块存储访问 gas 限制,那么非 EOF 用户也将支付 0.03% 的执行 gas 限制费用)。
对多维 Gas 的更多研究将有助于理解这些权衡并找到理想的平衡。
它如何与路线图的其余部分互动?
成功实现多维 Gas 可以显著减少一些最坏情况的资源使用,从而减轻优化性能以支持基于 STARKed hashes 的二叉树等需求的压力。为状态大小增长设定明确的目标将使客户端开发人员更容易规划和估计未来的需求。
前面提到过,EOF 的存在,由于其不可观测的特性,使得实现多维 Gas 的更极端版本变得更加容易。
可验证延迟函数 (VDF)
它解决了什么问题?
目前,以太坊使用基于 RANDAO 的随机性来选择提议者。RANDAO 的随机性的工作原理是要求每个提议者提前透露他们承诺的秘密,并将每个透露的秘密混合到随机性中。
因此,每个提议者都有 1 位权力:他们可以通过不露面(需要付出代价)来改变随机性。这对于寻找提议者来说很有意义,因为您很少会放弃一次机会来获得两个新的提议者。但对于需要随机性的链上应用程序来说,这并不理想。理想情况下,我们应该找到更强大的随机性来源。
什么是 VDF 以及它如何工作?
可验证延迟函数是只能顺序计算且无法通过并行化加速的函数。一个简单的例子是重复哈希:for i in range(10**9): x = hash(x)。使用 SNARK 证明输出正确,可以作为随机值使用。
其理念是,输入是根据时间 T 时可用的信息来选择的,而输出在时间 T 时尚不清楚:输出仅在 T 之后的某个时间可用,即在有人完全运行计算之后。因为任何人都可以运行计算,所以不可能隐藏结果,因此也无法操纵结果。
可验证延迟函数的主要风险是意外优化:有人找到一种方法来以比预期更快的速度运行该函数,从而操纵它们在时间 T 透露的信息。
意外优化可能以两种方式发生:
1. 硬件加速:有人创建了一种比现有硬件运行计算周期更快的 ASIC。
2. 意外并行化:有人通过并行化找到了一种更快地运行函数的方法,即使这样做需要 100 倍的资源。
创建成功的 VDF 的任务是避免这两个问题,同时保持效率实用(例如,基于哈希的方法的一个问题是实时 SNARKing 哈希需要重型硬件)。硬件加速通常由公共利益参与者自行创建和分发近乎最佳的 VDF ASIC 来解决。
现有研究链接
VDF 研究网站: vdfresearch网站
思维 关于 2018 年针对以太坊 VDF 的攻击:
剩下的任务和权衡是什么?
目前,还没有单一的 VDF 构造能够完全满足以太坊研究人员的所有要求。需要做更多的工作来找到这样的功能。如果找到,主要的权衡是是否将其包括在内:在功能性和协议复杂性以及安全风险之间进行简单的权衡。
如果我们认为 VDF 是安全的,但事实证明它并不安全,那么根据其实现方式,安全性将退化为 RANDAO 假设(每个攻击者 1 位控制权)或稍差。因此,即使 VDF 失败,也不会破坏协议,但会破坏严重依赖它的应用程序或任何新协议功能。
它如何与路线图的其余部分互动?
VDF 是以太坊协议中相对独立的组件,除了提高提议者选择的安全性之外,它还可应用于 (i) 依赖于随机性的链上应用程序和 (ii) 加密内存池,尽管基于 VDF 制作加密内存池仍然依赖于尚未发生的额外加密发现。
需要记住的一点是,鉴于硬件的不确定性,在 VDF 输出生成和需要之间会有一些余量。这意味着信息将提前几个区块可用。这可能是一个可以接受的成本,但应该在单槽最终确定或委员会选择设计中考虑。
混淆和一次性签名:密码学的遥远未来
它解决了什么问题?
尼克·萨博最著名的文章之一是他 1997 年发表的关于“上帝协议”的论文。在这篇论文中,他指出,许多多方应用程序依赖“受信任的第三方”来管理交互。在他看来,密码学的作用是创建一个模拟的受信任第三方,它可以完成同样的工作,而实际上不需要信任任何特定的参与者。
到目前为止,我们只是部分实现了这个理想。如果我们想要的只是一台透明的虚拟计算机,其数据和计算无法被关闭、审查或篡改,而隐私不是目标,那么区块链可以实现这一目标,尽管可扩展性有限。
如果目标是隐私,那么直到最近我们还只能为特定应用开发一些特定的协议:用于基本身份验证的数字签名、用于原始匿名的环签名和可链接环签名、在关于可信发行者的某些假设下用于更方便加密的基于身份的加密、用于 Charm 风格电子现金的盲签名等。这种方法需要为每个新应用程序做大量的工作。
在 2010 年代,我们首次看到了一种不同且更强大的方法,即基于可编程加密的方法。我们无需为每个新应用程序创建新协议,而是可以使用强大的新协议(具体来说就是 ZK-SNARK)为任意程序添加加密保证。
ZK-SNARK 允许用户证明他们所持有的数据的任意陈述,并且这些证明 (i) 易于验证,并且 (ii) 不会泄露除陈述本身之外的任何数据。这在隐私和可扩展性方面都是一个巨大的进步,我将其比作人工智能中 transformers 的影响。数千人年的特定应用工作突然被这种可以处理意想不到的广泛问题的通用解决方案所取代。
然而,ZK-SNARK 只是三个类似的极其强大的通用原语中的第一个。这些协议非常强大,以至于当我想到它们时,它们让我想起了 Yu-Gi-Oh! 中的一组极其强大的卡片——我小时候玩过的纸牌游戏和电视节目:埃及众神卡牌。
埃及神卡是三张极其强大的卡牌,传说制作这些卡牌的过程可能会致命,而且它们的力量使得它们在决斗中被禁止使用。同样,在密码学中,我们也有这套三张埃及神协议:
什么是 ZK-SNARKs 以及它如何工作?
ZK-SNARKs 是我们已有的三种协议之一,成熟度较高。在过去五年中,证明器速度和开发人员友好度的显著提高使 ZK-SNARKs 成为以太坊可扩展性和隐私策略的基石。但 ZK-SNARKs 有一个重要的限制:您需要知道数据才能证明它。ZK-SNARK 应用程序中的每个状态都必须有一个唯一的所有者,该所有者必须在场才能批准读取或写入该状态。
第二个没有此限制的协议是完全同态加密 (FHE),它允许您对加密数据执行任何计算,而无需查看数据。这允许您对用户数据执行计算,以造福用户,同时保持数据和算法的私密性。
它还能让你扩展 MACI 等投票系统,以获得近乎完美的安全和隐私保障。长期以来,FHE 被认为效率太低,不适合实际使用,但现在它终于变得足够高效,可以开始在现实世界中应用。
Cursive 是一款利用双方计算和全同态加密 (FHE) 进行隐私保护的共同兴趣发现的应用程序。
然而,FHE 也有其局限性:任何基于 FHE 的技术仍然需要有人持有解密密钥。这可以是 M-of-N 分布式设置,甚至可以使用可信执行环境 (TEE) 来添加第二层保护,但这仍然是一个限制。
接下来是第三个协议,它比前两个协议加起来还要强大:不可区分混淆。虽然这项技术还远未成熟,但截至 2020 年,我们已经拥有基于标准安全假设的理论上有效的协议,并且我们最近已开始实施它们。
不可区分的混淆允许您创建一个执行任意计算的加密程序,同时隐藏程序的所有内部细节。举一个简单的例子,您可以将私钥放入一个混淆的程序中,该程序只允许您使用它来签署素数,并将该程序分发给其他人。他们可以使用该程序签署任何素数,但他们无法提取密钥。然而,它的功能远不止于此:与哈希相结合,它可用于实现任何其他加密原语等等。
无法区分的混淆程序唯一无法做到的就是防止自己被复制。但要做到这一点,还有一项更强大的技术即将问世,尽管它依赖于每个人都拥有一台量子计算机:量子一次性签名。
通过混淆和一次性签名的结合,我们可以构建一个近乎完美的无需信任的第三方。而区块链唯一无法通过密码学实现、仍需保证的目标就是抗审查性。这些技术不仅可以让以太坊本身更加安全,还可以在其上构建更强大的应用。
为了更好地理解这些原语如何添加附加功能,让我们以投票作为一个关键示例。投票是一个有趣的问题,因为它需要满足许多复杂的安全属性,包括非常强的可验证性和隐私性。虽然具有强大安全性的投票协议已经存在了几十年,但我们可以通过要求能够处理任意投票协议的设计来让自己变得更加困难:二次投票、成对限制二次融资、集群匹配二次融资等等。换句话说,我们希望计票步骤是一个任意程序。
首先,我们假设将投票结果公开放在区块链上。这为我们提供了公开可验证性(任何人都可以验证最终结果是否正确,包括计票和资格规则)和抗审查性(人们无法阻止投票)。但我们没有隐私。
然后我们添加了 ZK-SNARKs,现在我们有了隐私:每一次投票都是匿名的,同时确保只有授权投票者才能投票,并且每个投票者只能投票一次。
接下来,我们引入了 MACI 机制,投票被加密到中央服务器的解密密钥中。中央服务器负责计票过程,包括删除重复投票,并发布结果的 ZK-SNARK 证明。这保留了之前的保证(即使服务器作弊!),但如果服务器是诚实的,它还增加了抵抗胁迫的保证:用户无法证明他们是如何投票的,即使他们想这样做。这是因为虽然用户可以证明他们的投票,但他们无法证明他们没有投票来抵消该投票。这可以防止贿赂和其他攻击。
我们在 FHE 中运行计票,然后执行 N/2-of-N 阈值解密计算。这将反强制保证提高到 N/2-of-N,而不是 1-of-1。
我们对计票程序进行混淆,并将其设计为只有在获得授权的情况下才能输出结果,这些结果可以是区块链共识的证明、某种工作量证明,或者两者的结合。这使得反胁迫保证几乎完美:在区块链共识的情况下,51% 的验证者必须串通才能打破它;在工作量证明的情况下,即使每个人都串通,与不同的选民子集重新计票以试图提取单个选民的行为也将是极其昂贵的。我们甚至可以让程序对最终计数进行微小的随机调整,以进一步增加提取单个选民行为的难度。
我们添加了一次性签名,这是一项依赖于量子计算的原语,允许对特定类型的信息仅使用一次签名。这使得反胁迫保证真正完美。
不可区分的混淆还支持其他强大的应用。例如:
1. 去中心化自治组织(DAO)、链上拍卖和其他具有任意内部秘密状态的应用程序。
2. 真正通用的可信设置:有人可以创建一个包含密钥的模糊程序,然后运行任何程序并提供输出,将 hash(key, program) 作为输入放入程序中。有了这样的程序,任何人都可以将程序 3 放入自己体内,将程序的预密钥和自己的密钥结合起来,从而扩展设置。这可用于为任何协议生成 1-of-N 可信设置。
3. ZK-SNARKs 的验证只需要一个签名:实现这一点非常简单:建立一个可信环境,并让某人创建一个混淆器,只有在存在有效的 ZK-SNARK 时,该混淆器才会使用密钥签署消息。
4. 加密内存池:加密交易非常简单,只有将来发生某些链上事件时才能解密。这甚至可以包括成功执行的可验证延迟函数 (VDF)。
借助一次性签名,我们可以使区块链免受具有最终性逆转的 51% 攻击,尽管审查攻击仍然可能存在。一次性签名等原语使量子货币成为可能,无需区块链即可解决双重支付问题,尽管许多更复杂的应用程序仍然需要链。
如果这些原语能够足够高效,那么世界上大多数应用程序都可以去中心化。主要的瓶颈在于验证实现的正确性。
以下是一些现有研究的链接:
1. 不可区分性 混淆 (2021):
2. 混淆技术如何帮助以太坊
3. 首次构造一次性签名
4. 尝试实施混淆(1)
5. 尝试实施混淆(2)
还有哪些工作要做?需要权衡哪些因素?
还有很多工作要做,而且不可区分的混淆仍然非常不成熟,候选构造的运行速度与预期一样慢(甚至更慢),以至于无法在应用程序中使用。不可区分的混淆以理论上的多项式时间而闻名,但在实践中,它的运行时间可能比宇宙的寿命还要长。最近的协议在一定程度上缩短了运行时间,但对于常规使用来说,开销仍然太高:一位实施者估计运行时间为一年。
量子计算机甚至还不存在:你在互联网上看到的所有构造要么是无法执行超过 4 位运算的原型,要么根本不是实质性的量子计算机,尽管它们可能有量子部件,但它们无法运行像 Shors 或 Grovers 算法那样有意义的计算。最近有迹象表明真正的量子计算机离我们并不遥远。然而,即使真正的量子计算机很快出现,普通人可能需要几十年的时间才能在笔记本电脑或手机上使用量子计算机,直到强大的机构能够破解椭圆曲线密码学的那一天。
对于不可区分的混淆,一个关键的权衡在于安全假设,并且有更激进的设计使用特殊假设。这些设计通常具有更现实的运行时间,但特殊假设有时最终会被打破。随着时间的推移,我们可能会更好地理解格并提出更不容易被打破的假设。然而,这条路更危险。更保守的方法是坚持使用安全性可证明为标准假设的协议,但这可能意味着需要更长的时间才能获得运行速度足够快的协议。
它如何与路线图的其余部分互动?
极强的加密技术可能会彻底改变游戏规则,例如:
1. 如果我们让 ZK-SNARKs 变得像签名一样容易验证,那么我们可能不再需要任何聚合协议;我们可以直接在链上进行验证。
2.一次性签名可能意味着更安全的权益证明协议。
3.许多复杂的隐私协议可能只需要一个保护隐私的以太坊虚拟机(EVM)来代替它们。
4.加密内存池变得更容易实现。
最初,这些好处将体现在应用层,因为以太坊的 L1 本质上需要在其安全假设方面保持保守。然而,仅在应用层使用可能会造成破坏,就像 ZK-SNARKs 的出现一样。
本文来源于网络:Vitaliks新文章:以太坊的可能未来,The Splurge
相关:灰度精心挑选35个代币:FDV最低3亿美元,更适合大投资者
原文 | Odaily星球日报(@OdailyChina)作者 | 付豪(@vincent31515173)作为连接Web3与主流金融的桥梁之一,灰度在加密行业的举措备受关注。从最初比特币、以太坊等众多知名代币的信托产品,到今年相继推出比特币现货ETF、以太坊现货ETF,灰度对加密行业的贡献有目共睹。近日,灰度列出了35种未来考虑加入到其产品的加密资产。为此,Odaily星球日报先将这35种币种按照轨迹进行分类,再按照每种币种的市值进行排序,并通过图表与读者分享了近两年来的价格走势。一共有…