加密货币中的难题:五年后

这篇文章回顾了2014年提出的加密货币相关的16个难题,分析了这五年来在密码学、共识理论和经济学领域的进展。文章深入探讨了每个问题的现状、解决方案的实现程度,并讨论了未来的新难点,特别是关于去中心化治理和公共物品资助等领域的挑战。

加密货币中的难题:五年后

加密货币中的难题:五年后

特别感谢 Justin Drake 和 Jinglan Wang 的反馈

在2014年,我发表了一篇 文章 和一场 演讲,列出了我认为在加密货币领域(当时我称之为“加密货币空间”)中至关重要的数学、计算机科学和经济学的难题。在过去的五年里,发生了巨大的变化。那么,我们当时认为重要的事情到底取得了多少进展?我们在哪些领域取得了成功,在哪些方面失败,又在哪些方面改变了对重要性的看法?在这篇文章中,我将一一回顾2014年的16个问题,看看我们在每个问题上的最新进展。最后,我将包括我对2019年难题的新看法。

这些问题分为三个类别:(i)密码学问题,因此预期如果可解,则要用纯数学技术来解决。(ii)共识理论,主要是对工作量证明和权益证明的改进。(iii)经济问题,涉及到为不同参与者创造激励结构,并往往更多地涉及应用层而非协议层。我们看到所有类别中都有显著的进展,但有些领域的进展比其他领域更多。

密码学问题

  1. 区块链可扩展性

目前加密货币领域面临的最大问题之一是可扩展性问题…… [超大的区块链] 的主要问题是信任:如果只有少数实体能够运行完整节点,那么这些实体可以合谋并同意给自己额外的比特币,而其他用户无法自行验证一个区块是否无效,除非自己处理整个区块。 问题: 创建一个区块链设计,与比特币类似的安全保证,但其中功能正常的最强节点的最大规模在交易数量上要大幅亚线性。

状态:理论进展巨大,待更多现实评估

可扩展性是我们在理论上取得大量进展的技术问题。五年前,几乎没有人考虑分片;现在,分片设计已经是司空见惯。除了 以太坊2.0,我们还有 OmniLedgerLazyLedgerZilliqa 和似乎每个月都有的研究论文 不断涌现。在我看来,目前的进一步进展是渐进的。基本上,我们已经拥有多种技术,允许验证者组就比单个验证者能处理的数据达成安全共识,以及允许客户端在51%攻击条件下以间接方式验证区块的有效性和可用性的技术。

这些可能是最重要的技术:

还有一些其他较小的发展,如 通过收据的跨分片通信,以及诸如BLS签名聚合等 “常数因子” 增强。

不过,完全分片的区块链在实际操作中仍未出现(最近部分分片的Zilliqa刚开始运行)。在理论方面,主要是剩余的细节争论,以及与分片网络的稳定性、开发者体验和减少中心化风险相关的挑战;根本技术的可能性已经不再令人怀疑。但仍然存在的挑战是那些不能仅仅通过思考来解决的问题;只有开发系统并看到以太坊2.0或某些类似链的实时运行才能满足这些条件。

  1. 时间戳

问题: 创建一个分布式的、激励相容的系统,无论它是位于区块链上还是独立的区块链,必须保持当前的时间精确度高。所有合法用户的时钟围绕某个“真实”时间呈正态分布,标准差为20秒……没有两个节点之间的时间差超过20秒。解决方案可以依赖于现有的“N个节点”概念;这一点在实践中由权益证明或非Sybil代币强制实施(见#9)。该系统应该不断提供与超过99%诚实参与节点的内部时钟在120秒(或更短)之内的时间。外部系统可能最终会依赖于该系统;因此,它应保持安全,以抵御控制少于25%节点的攻击者,不受激励影响。

状态:一些进展

以太坊实际上以13秒的区块时间和没有特别先进的时间戳技术顺利运行;它采用了一种简单的技术,客户端不接受其所述时间早于客户端本地时间的区块。尽管如此,这尚未在严重攻击下进行测试。最近的 网络调整时间戳 提案试图通过允许客户端在不知道本地时间的情况下确定时间的一致性来改进现状;这一点还未得到测试。但通常来说,时间戳目前并不是被认为的研究挑战的重点;一旦更多的权益证明链(包括以太坊2.0及其他链)上线,或许会看到问题的变化。

  1. 任意计算证明

问题: 创建程序 POC_PROVE(P,I) -> (O,Q)POC_VERIFY(P,O,Q) -> { 0, 1 },使得 POC_PROVE 执行程序 P,输入 I,返回程序输出 O 和计算证明 Q,而 POC_VERIFY 则接受 POQ 并输出 QO 是否是通过使用 PPOC_PROVE 算法合法产生的。

状态:理论和实践进展巨大

这基本上是在说,构建一个SNARK(或STARK,或SHARK……)。而 我们 确实 做到了! SNARK现在越来越被理解,并且已经在多个区块链中使用(包括以太坊上的 tornado.cash)。SNARK既是隐私技术(见Zcash和tornado.cash)也是可扩展性技术(见 ZK RollupSTARKDEXSTARKing擦除编码数据根)。

在效率方面仍存在挑战;使得七元算子友好的哈希函数(见 这里这里 以获取破解建议的奖金)是一个重要的问题,而有效证明随机内存访问是另一个问题。此外,O(n * log(n)) 的证明者时间膨胀是否是根本限制的问题仍然未解,或者是否有某种方式仅用线性开销创建简洁证明,就像 bulletproofs (不幸的是,验证这些需要线性时间)。现有方案存有 bug 的风险也总是存在。一般来说,问题体现在细节而非 fundamentals。

  1. 代码混淆

圣杯是创造一个混淆器 O,使得给定任何程序 P 时,混淆器能够产生第二个程序 O(P) = Q,使得若输入相同,P 和 Q 返回相同的输出,并且重要的是,Q 不会泄露任何关于 P 内部的信息。可以在 Q 中隐藏密码、秘密加密钥,或者仅使用 Q 隐藏算法本身的专有工作原理。

状态:进展缓慢

简单来说,问题在于我们希望提出一种“加密”程序的方式,使得加密后的程序仍对相同的输入产生相同的输出,但“内部”逻辑被隐藏。混淆的应用场景之一是包含私钥的程序,该程序仅允许该私钥对某些消息进行签名。

代码混淆的解决方案对区块链协议非常有用。用例很微妙,因为必须处理链上混淆程序可能被复制并在不同于链本身的环境中运行的可能性,但有很多可能性。我个人感兴趣的一个是通过将包含某种工作量证明的混淆程序替换操作员,以去除中心化运营者,这会使得多次运行以不同输入的成本非常高,因此在试图确定个别参与者的行为时变得昂贵。

不幸的是,这仍然是一个难题。继续有人对该问题进行研究,一方面是尝试构造(如 这个),以尝试减少对我们在实践中不知道存在的数学对象(如通用加密多线性映射)的假设要求,另一方面则试图使所需数学对象的实用化。然而,这些路径距离创建可行且已知安全的解决方案仍然相当遥远。有关该问题的更一般概述请参见 <https://eprint.iacr.org/2019/463.pdf>。

  1. 基于哈希的密码学

问题: 创建一种签名算法,依赖于除了哈希的随机预言机属性之外没有其他安全假设,能在经典计算机上保持160位安全性(即由于 Grover 算法而在量子计算机上为80)。 

状态:一些进展

自2014年以来在这方面取得了两个方向的进展。SPHINCS,一种“无状态”签名方案(意味着多次使用该方案不需要记住如随机数这样的信息),在发布这份“难题”列表后不久问世,提供了一种纯粹基于哈希的签名方案,大小大约为41 kB。此外,STARKs也得到了开发,可以基于它们创建类似大小的签名。事实是,不仅可以使用签名,还可以使用普通的零知识证明,仅使用哈希,这是我五年前并不期待的事情;我对此感到非常高兴。不过,大小仍然是个问题,正在进行的进展(例如,可以参见最近的 DEEP FRI)还在继续减少证明的大小,尽管看起来进一步进展会是增量性质的。

基于哈希的密码学尚未解决的主要问题是聚合签名,类似于 BLS聚合 使得聚合成为可能。我们知道可以在许多 Lamport 签名上制作一个 STARK,但这效率不高;更有效的方案会是受欢迎的。(如果你想知道基于哈希的 公钥加密 是否可行,答案是:不可以,除了二次攻击成本外你不能做更多事情。](https://www.boazbarak.org/Papers/merkle.pdf)

共识理论问题

  1. 抗 ASIC 工作量证明

解决问题的一种方法是创建一种基于一种很难专门化的计算类型的工作量证明算法……如需有关抗ASIC硬件的更详细讨论,请参见 <https://blog.ethereum.org/2014/06/19/mining/>。

状态:就我们所能做到的来说已解决

在“难题”列表发布大约六个月后,以太坊确定了其抗 ASIC 的工作量证明算法:Ethash。Ethash 被称为内存硬算法。理论上,普通计算机中的随机存取内存已相当优化,因此对特殊计算应用而言很难进一步改进。Ethash 旨在通过使内存访问成为运行 PoW 计算的主导部分来实现抗 ASIC 的能力。Ethash 并不是第一个内存硬算法,但它确实增加了一项创新:它在两个级别的DAG上使用伪随机查找,使得评估函数有两种方法。首先,如果拥有整个(大约 2 GB 的)DAG,则可以快速计算;这是内存硬的“快速路径”。其次,如果只有 DAG 的顶层,也可以更慢地计算(仍然足够快,以便快速检查提供的单个解决方案);这用于区块验证。

Ethash 在抗 ASIC 性能方面证明了极大的成功;在经历三年和数十亿美元的区块奖励之后,虽然已存在 ASIC,但它们的性能和成本效率最多仅比 GPU 高2-5倍。ProgPoW 被提出作为替代方案,但越来越多的共识认为,抗 ASIC 的算法终将有短期生命,而抗 ASIC 性能 有缺点,因为它使51%攻击变得便宜(例如,参见 以太经典的 51% 攻击)。

我相信,提供中等程度的抗 ASIC 的 PoW 算法是可以创建的,但这种抗性是有限的,ASIC 和非 ASIC 的 PoW 各有其劣势;从长远来看,区块链共识的更好选择是权益证明。

  1. 有用的工作量证明

将工作量证明函数同时变得有用;一个常见的候选是像 Folding@home 这样的程序,用户可以下载软件到他们的计算机上以模拟蛋白质折叠,并向研究人员提供大量数据以帮助他们治愈疾病。

状态:可能不可行,只有一个例外

有用的工作量证明的挑战在于,工作量证明算法需要许多特性:

  • 难以计算
  • 容易验证
  • 不依赖大量外部数据
  • 可以有效地分小块计算

不幸的是,几乎没有什么有用的计算能保留所有这些属性,而大多数具备所有这些属性且是“有用”的计算,仅对构建加密货币来说“有效”的时间太短。

然而,有一个可能的例外:零知识证明生成。关于区块链有效性的零知识证明(例如 数据可用性根)难以计算,并且容易验证。此外,它们在耐久性上难以计算;如果“高度结构化”计算的证明变得太容易,可以简单地转而验证区块链的整个状态转移,由于需要模拟虚拟机和随机内存访问,这会变得极为昂贵。

区块链有效性的零知识证明为区块链的用户提供了极大的价值,因为它们可以替代直接验证链的需要;Coda 已经这样做,尽管其设计是对区块链进行了简化,非常优化以便于证明。然而,现实中需要进行的计算总量仍远低于当前由工作量证明矿工实际完成的总计算,因此这充其量只能作为权益证明区块链的附加功能,而不是完整的共识算法。

  1. 权益证明

解决挖矿中心化问题的另一种方法是彻底废除挖矿,并转向某种其他机制来计算共识中每个节点的权重。迄今为止,讨论中最受欢迎的替代方案是“权益证明”——也就是说,不再将共识模型视为“一个CPU权力单位,一个投票”,而是变成“一个货币单位,一个投票”。

状态:理论进展巨大,待更多现实评估

在2014年末,权益证明社区明确意识到某种形式的“弱主观性” 是不可避免的。为了保持经济安全,节点需要在首次同步时获得一个最近的协议外的检查点,如果它们长时间离线,则再次需要。这是一个难以接受的现实;许多工作量证明的倡导者仍然坚信 PoW,正是因为在 PoW 链中,“链头”的发现只能依赖于来自受信任来源的区块链客户端软件本身的唯一数据。然而,权益证明的支持者愿意接受这个现实,认为额外的信任需求并不大。从那里,通过长期安全存款的方式实现权益证明的路径变得清晰。

目前,大多数有趣的共识算法在根本上类似于 PBFT,但将固定的验证者集替换为动态列表,任何人可以通过向一个总层合同发送代币来参与,并且提款设置了时间锁(例如,在某些情况下,提款可能需要长达4个月才能完成)。在许多情况下(包括以太坊2.0),这些算法通过惩罚被抓到执行罢工操作的验证者来实现“经济上的最终性”(见 这里 关于权益证明能达到的哲学性观点)。

截至目前,我们有(在众多其他算法中):

正在进行的持续改进(例如 这里这里)。Eth2阶段0,即将实现FFG的链,目前正在实施中,并且取得了巨大的进展。此外,Tendermint已经在 Cosmos链 中运行了几个月。关于权益证明的剩余论点,在我看来,主要涉及优化经济激励,以及进一步规范 应对51%攻击的策略。此外, Casper CBC 规范 仍然需要具体的效率改进。

  1. 存储证明

第三种解决方案是使用除计算能力或货币之外的稀缺计算资源。在这一方面,提出的两个主要替代方案是存储和带宽。从原则上讲,无法提供事后加密证明,证明带宽被给予或使用,因此,应该将带宽证明认定为社会证明的子集,然而存储证明绝对可以通过计算实现。存储证明的一大优点是完全抗ASIC;我们在硬盘中拥有的存储种类已接近最佳。

状态:理论进展较多,尽管仍有许多工作要做,以及更多的现实评估

一些区块链计划使用存储证明协议,包括 ChiaFilecoin。尽管如此,这些算法尚未经过实地测试。我个人最大的担忧是中心化:这些算法是否会被使用剩余存储能力的小用户主导,还是会被大型矿场主导?

经济学

  1. 稳定价值加密资产

Bitcoin 的主要问题之一是价格波动性问题……问题:构造一种价格稳定的加密资产。

状态:一些进展。 <img src="../../../../images/progress-files/happy_face2.png" style="width:50px; height: 50px" ]class="transparent" />

MakerDAO 现在已经上线,并已稳定近两年。它经历了其基础抵押资产(ETH)价值下跌93%的考验,目前发行的DAI超过1亿美元。它已成为以太坊生态系统的主流,许多以太坊项目已在与其集成或已经集成。其他合成代币项目,如 UMA,也在迅速发展。

然而,虽然MakerDAO系统在2019年艰难的经济条件下生存下来,但这些情况绝不是碰到的最艰难的。在过去,Bitcoin曾在两天内falls by 75%(见 Bitcoin崩盘历史);以太坊或任何其他抵押资产有可能也会发生这样的事情。对基础区块链的攻击是一个更大的未知风险,尤其是当价格在同一时间下降时更为严重。另一个重大挑战,可以说是更大的挑战在于MakerDAO这种系统的稳定性依赖于某种基础的预言机方案。不同的预言机系统尝试存在(见 #16),但关于它们在大量经济压力下能否保持稳定的问题仍具有争议。到目前为止,MakerDAO控制的抵押物低于MKR代币的价值;如果这种关系反转,MKR持有者可能会有共同的动机去“掠夺”MakerDAO系统。虽有防范此类攻击的方法,但尚未在实际生活中得到检验。

  1. 去中心化公共产品激励

经济系统中的一个挑战是“公共产品”的问题。例如,假设有一个科学研究项目,完成需要100万美元,而如果完成,结果研究将使100万人各省5美元。从总体上看,社会效益是显而易见的……但从每个人的角度看,个人贡献就显得没有意义……到目前为止,大多数公共产品的问题涉及到中心化的额外假设和需求:假设一个完全可信的预言机存在,以确定某个公共产品任务是否已完成(在现实中这是假设不实际存在的,但这是另一个问题的领域) 

状态:一些进展

资助公共产品的问题通常被认为分为两个问题:资金问题(从哪里获得公共产品的资金)和偏好聚合问题(如何确定什么是真正的公共产品,而不是某个个人的特定项目)。这个问题专注于前者,假设后者已经解决(参见去中心化的贡献度量部分 有关该问题的工作)。

一般而言,在这方面尚未有重大的新突破。解决方案主要有两种类型。首先,我们可以进行个体捐赠,给予人们社会奖励以此激励。我自己关于 通过边际价格歧视来进行 Charity 的提案 是这种类型的一个例证;另一个是 Peepeth 上的反疟疾捐赠徽章。其次,我们可以从具有网络效应的应用中收集资金。在区块链领域,有几个选项:

  • 发行代币
  • 从协议层收取部分交易费用(例如通过 EIP 1559
  • 从某个二层应用(例如Uniswap,某个扩展解决方案,甚至是在以太坊2.0的执行环境中收取的状态租)中提取部分交易费用
  • 从其他类型的费用抽取部分(例如ENS注册)

在区块链领域以外,这实际上是一个政府如何征税和商业或其他组织如何收取费用的老问题。

  1. 声誉系统

问题:设计一个正规的声誉系统,包括一个分数 rep(A,B) -> V,在该系统中,V 是 B 从 A 的角度的声誉、一个机制用于确定一个方信任另一个方的概率,以及一个机制用于根据特定的开放或最终互动记录更新声誉。

状态:进展缓慢

自2014年以来,声誉系统的工作并不多。也许最好的一个例子是使用代币策划的注册,创建可信实体/对象的策划清单;Kleros ERC20 TCR (是的,这是一个 代币策划的注册 可信ERC20代币的例子),甚至存在专门的替代接口Uniswap,它将其作为后端来获取代币及其货币符号和标志。主观声誉系统并没有真正尝试过,或许是由于关于人们之间连接的“社交图”的信息发布不足。如果出于其他原因开始存在此类信息,那么主观声誉系统可能会变得更流行。

  1. 卓越证明

一个有趣、且尚未广泛探索的解决 [代币] 分配的问题(亦有原因使其不能如此容易用于挖矿)是利用那些社会有用,但需要原始人类创造性努力和才能的任务。例如,可以想出一个“证明的证明”货币,以奖励玩家为某些定理找出数学证明。

状态:没有进展,这个问题基本被遗忘

被广泛接受的代币分配替代方案是 空投;通常情况下,在代币启动时要么按已有其他代币持有量的比例分配,要么基于某种其他指标(例如在 Handshake 空投中)。直接验证人类创造力的方式尚未真正进行,而随着最近AI的发展,设计出一种只有人类能够做到但计算机又能验证的任务问题,可能会变得过于艰难。

15 [sic]. 反Sybil系统

与声誉系统相关的问题是创建“唯一身份系统”的挑战——一个生成代币证明身份不属于Sybil攻击的系统……然而,我们希望有一个系统,其具有比“每美元一票”更好、更平等的特性;可以说,最理想的是“一人一票”。

状态:一些进展

解决唯一人问题已经有了不少尝试。记忆中的一些尝试包括(不完整列表!):

随着 平方投票平方融资 等技术的兴趣日渐增强,对某种基于人性的反Sybil系统的需求不断增长。希望这些技术的持续发展和新的发展能够满足这一需求。

14 [sic]. 去中心化贡献变量

激励公共产品的生产,不幸的是,并不是中心化解决的唯一问题。而是,首先要确定哪些公共产品值得生产,其次确定特定努力实际在多大程度上达成了公共产品的生成。这一挑战与后者问题有关。

状态:一些进展,焦点有所改变

关于确定公共产品贡献的价值,更近期的工作不试图将确定任务与确认完成质量分开;原因在于,实际上这两者往往难以分开。特定团队所进行的工作往往实现的不够可替代和主观,因此最合理的方法是将任务相关性与表现质量视作一个单一包,采用同一技术进行评估。

所幸的是,在这方面已有了极大的进展,特别是发现了 平方融资。平方融资是一种机制,其中个人可以对项目进行捐赠,基于捐赠者数量和捐赠金额,使用公式计算出如果完美协调(即彼此考虑对方的利益而不是陷入共同的悲剧),他们将会捐赠多少。该项目的实际捐赠金额与估计的不同之处,将作为这个项目的一种补贴来自某个中心池(见#11 以了解中心池资金的来源)。请注意,这种机制的重点在于满足某个社区的价值,并不是出于某个给定目标,而不管是否已有人关心过它。由于存在 价值复杂性 的问题,这种方法可能对未知的问题更具鲁棒性。

平方融资甚至在现实中获得成功,在最近的 gitcoin平方融资轮 中取得了相当大的进展。关于改进平方融资和类似机制的工作也在进行中;特别是,正在研究的对偶平方融资 旨在减轻这种合谋。此外,关于 抗贿 的投票技术的规范和实施工作也在进行,以防止用户向第三方证明他们的投票;这阻止了许多类型的合谋和贿赂攻击。

  1. 去中心化成功指标

问题:想出并实施一种去中心化的方法来测量数值型现实世界变量……系统应能够衡量人类当前能够达成的粗略共识的任何事物(例如资产价格、温度、全球CO2浓度)

状态:一些进展

这通常被称为“预言机问题”。已知运行中最庞大的去中心化预言机实例是 Augur,它处理了数百万美元的投注结果。代币策划的注册,如 Kleros TCR for tokens 是另一个例子。然而,这些系统的分叉机制仍未进行现实测试(“主观主义”问题请搜索该文献 此处),不仅因为问题争议重重,且曾有人尝试进行51%攻击。关于预言机问题的研究也在区块链以外的领域展开,形式上涉及 “同行预测” 文献;见 此处 对该领域的最新进展。另一个迫在眉睫的挑战是人们希望依赖这些系统来指导转移大于系统原生代币经济价值的资产。在这种情况下,代币持有者在理论上有动机串通以给出错误答案来窃取资金。如果发生这种情况,系统将会分叉,原始系统代币可能会变得毫无价值,但原始系统代币持有者仍然能够获得他们误导的任何资产转移的回报。稳定币(见#10)是一个特别明显的例子。解决此问题的一种方法是创建一个假设存在利他诚实的数据提供者的系统,并创造一个识别他们的机制,仅允许他们缓慢变化,以便如果恶意者开始被投票,依赖预言机的系统用户可以首先完成有序退出。无论如何,预言机技术的进一步发展确实是一个重要问题。

新问题

如果我在2019年再次编写困难问题列表,其中一些将是上述问题的延续,但重点将有显著变化,以及出现显著的新问题。以下是一些选项:

  • 加密混淆:与上面#4相同
  • 后量子密码学的持续研究:包括基于哈希的和基于后量子安全的“结构化”数学对象,例如椭圆曲线同态、格...
  • 反串通基础设施:对<https://ethresear.ch/t/minimal-anti-collusion-infrastructure/5413>的持续工作和改进,包括增加对操作员的隐私保护,以尽可能实用的方式添加多方计算等
  • 预言机:与上面#16相同,但去掉“成功指标”的重点,专注于一般的“获取真实世界数据”问题
  • 独特人类身份(或者,更现实地说,半独特人类身份):与上面#15的描述相同,但强调一种不那么“绝对”的解决方案:获取两个身份应该比获取一个身份困难得多,但使获取多个身份变得不可能,既不现实也可能有害,即便我们真的能成功
  • 同态加密和多方计算:在实用性方面仍需要持续改进
  • 去中心化治理机制:DAO很酷,但当前的DAO仍然很原始;我们可以做得更好
  • 完全形式化对PoS 51%攻击的响应:对<https://ethresear.ch/t/responding-to-51-attacks-in-casper-ffg/6363>的持续工作和改进
  • 更多公共产品资金来源:理想情况下是在具有网络效应的系统内部为拥堵资源收费(例如交易费用),但在去中心化系统中这样做需要公共的合法性;因此,这在社会问题和寻找可能来源的技术问题之间是一个社会问题
  • 声誉系统:与上面#12相同

总的来说,基础层问题正缓慢而确实地减少,但应用层问题才刚刚起步。

  • 原文链接: vitalik.eth.limo/general...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Vitalik Buterin
Vitalik Buterin
https://vitalik.ca/