风险提示
登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担!
特别感谢JustinDrake、Hsiao-weiWang、@antonttc、AndersElowsson和Francesco的反馈和审稿。
最初,「合并(theMerge)」指的是以太坊协议自推出以来历史上最重要的事件:期待已久且来之不易的从工作量证明(PoW)到权益证明(PoS)的过渡。如今,以太坊作为一个稳定运行的权益证明系统已快整整两年了,而且这种权益证明在
我的2023年路线图将其分为几个部分:改进技术功能,例如稳定性、性能和小型验证器的可访问性,以及解决中心化风险的经济变革。前者接管了「theMerge」的标题,后者成为「theScourge」的一部分。
这篇文章将重点讨论「Merge」部分:权益证明的技术设计还有哪些可以改进的地方,以及实现这一目标的途径是什么?
这并不是对权益证明可以做的事情的详尽列表;相反,它是一个正在积极考虑的想法的列表。
如今,需要2-3个epochs(约15分钟)才能完成一个区块,并且需要32ETH才能成为质押者。这最初是为了
最大化可以参与质押的验证者数量(这直接意味着最小化质押所需的最低ETH)
最大限度地缩短最终确定的时间
最小化运行节点的开销,在这种情况下是下载、验证和重新广播所有其他验证者签名的成本
这三个目标是相互冲突的:为了使经济上的最终性成为可能(意味着:攻击者需要燃烧大量ETH来扭转最终确定的区块),每次最终确定发生时,你需要每个验证者签署两条消息。因此,如果你有很多验证者,要么你需要很长时间来处理他们的所有签名,要么你需要非常强大的节点来同时处理所有签名。
这三个目标是相互冲突的:为了使经济上的最终性成为可能(意味着:攻击者需要燃烧大量ETH来篡改最终确定的区块),每次最终确定发生时,你需要每个验证者签署两条消息。因此,如果你有很多验证者,要么你需要很长时间来处理他们的所有签名,要么你需要非常强大的节点来同时处理所有签名。
请注意,这一切都以以太坊的一个关键目标为条件:确保即使成功的攻击也会给攻击者带来高昂的成本。这就是「经济最终性」一词的含义。如果我们没有这个目标,那么我们可以通过随机选择一个委员会来最终确定每个区块来解决这个问题。不尝试实现经济最终性的链,例如Algorand,
理想情况下,我们希望保持经济的最终性,同时改善两个领域的现状:
第一个目标有两个目标,这两个目标都可以被视为「使以太坊的属性与(更中心化的)注重性能的L1链的属性保持一致」。
首先,它确保所有以太坊用户实际上受益于通过最终性机制实现的更高级别的安全保证。如今,大多数用户不这样做,因为他们不愿意等待15分钟;通过单slot最终确定,用户几乎在确认交易后就会看到他们的交易已完成。其次,如果用户和应用程序不必担心链扭转的可能性(除了相对罕见的
第二个目标是因为希望支持单独的质押者(solostakers)。一次又一次的民意调查反复显示,阻止更多人单独质押的主要因素是32ETH的最低限额。将最低限额减少到1ETH将解决这个问题,其他问题将成为限制单独质押的主导因素。
目前存在一个挑战:更快的最终确定和更民主化的质押目标都与最小化开销的目标相冲突。实际上,这个事实就是我们没有从单slot最终确定性开始的全部原因。然而,最近的研究提出了解决该问题的一些可能途径。
单slot最终性涉及使用一种共识算法来最终确定一个slot中的块。这本身并不是一个困难的目标:许多算法,例如Tendermint共识,已经做到了这一点。以太坊独有的一项所需属性是
问题的更难部分是弄清楚如何使单slot最终确定性与非常高的验证器数量一起工作,而不导致极高的节点运营商开销。为此,有一些领先的解决方案:
选项1:暴力-努力实现更好的签名聚合协议,可能使用ZK-SNARK,这实际上允许我们处理每个slot中数百万个验证器的签名。
选项2:
一种思考OrbitSSF的方式是,它开辟了一个妥协两种选项的空间,范围从x=0(Algorand风格的委员会,没有经济终结性)到x=1(以太坊现状),在中间开辟了「以太坊仍然具有足够的经济最终性,因此非常安全,但同时我们只需要中等规模的随机验证者样本参与每个slots即可获得效率优势」的点。
Orbit利用验证者存款规模中预先存在的异质性来获得尽可能多的经济最终确定性,同时仍将给予小型验证者相应的角色。此外,Orbit使用缓慢的委员会轮换来确保相邻法定人数(adjacentquorums)之间的高度重叠,从而确保其经济最终性仍然适用于委员会切换的界限。
选项3:两级质押——一种存在两类质押者的机制,一类具有较高的存款要求,一类具有较低的存款要求。只有较高存款层级才会直接参与提供经济最终性。对于较低存款层到底拥有哪些权利和责任,有各种建议(例如,参见
将质押委托给更高级别质押者的权利
一些随机的低级质押者需要证明并最终确定每个区块
生成
Pathstowardsingleslotfinality(2022):https://notes.ethereum.org/@vbuterin/single_slot_finality实现单slot最终确定性的路径(2022)
AconcreteproposalforasingleslotfinalityprotocolforEthereum(2023):https://eprint.iacr.org/2023/280以太坊单slot最终性
OrbitSSF:https://ethresear.ch/t/orbit-ssf-solo-staking-friendly-validator-set-management-for-ssf/19928
FurtheranalysisonOrbit-stylemechanisms:https://ethresear.ch/t/vorbit-ssf-with-circular-and-spiral-finality-validator-selection-and-distribution/20464Orbit式机制的进一步分析
Horn,signatureaggregationprotocol(2022):https://ethresear.ch/t/horn-collecting-signatures-for-faster-finality/14219Horn,签名聚合协议(2022)
Signaturemergingforlarge-scaleconsensus(2023):https://ethresear.ch/t/signature-merging-for-large-scale-consensus/17386?u=asn大规模共识的签名合并(2023)
SignatureaggregationprotocolproposedbyKhovratovichetal:https://hackmd.io/@7dpNYqjKQGeYC7wMlPxHtQ/BykM3ggu0#/Khovratovich等人提出的签名聚合协议
STARK-basedsignatureaggregation(2022):https://hackmd.io/@vbuterin/stark_aggregation基于STARK的签名聚合(2022)
Rainbowstaking:https://ethresear.ch/t/unbundling-staking-towards-rainbow-staking/18683彩虹质押
有四种主要可能的路径可供选择(我们也可以采取混合路径):
维持现状
暴力SSF
OrbitSSF
具有两级质押的SSF
(1)意味着不做任何工作并保持原样,但这会使以太坊的安全体验和质押中心化属性变得更糟。
(2)用高级技术暴力解决问题。要实现这一点,需要在很短的时间内(5-10秒)聚合大量签名(100万以上)。一种思考这种方法的方式是,它涉及
(3)避免「高级技术」,并通过围绕协议假设进行巧妙的重新思考来解决问题:我们放宽了「经济最终性」要求,以便我们追求令攻击成本高昂,但可以接受攻击成本可能低于今天的10倍(例如,攻击成本为25亿美元,而不是250亿美元)。人们普遍认为,今天的以太坊的经济最终性远远超出了它的需要,而且主要安全风险在其他地方,所以这可以说是一个可以接受的牺牲。
主要的工作是验证Orbit机制是安全的并且具有我们想要的属性,然后将其完全形式化并实现。此外,
(4)避免了巧妙的反思和高级技术,但它创建了一个仍然存在中心化风险的两级质押系统。风险在很大程度上取决于较低质押级别获得的具体权利。例如:
如果低级别的质押者需要将其证明权委托给高级质押者,那么授权可以中心化,因此我们最终会得到两个高度中心化的质押层。
如果需要较低层的随机样本来批准每个块,那么攻击者可以花费非常少量的ETH来阻止最终性。
如果较低层的质押者只能生成包含列表,那么证明层可能会保持中心化,此时对证明层的51%攻击可以自行审查包含列表。
可以组合多种策略,例如:
1+2):添加Orbit而不进行单slot最终确定
(1+3):使用暴力技术来减少最小存款大小,而不进行单slot最终确定。所需的聚合量比纯(3)情况少64倍,因此问题变得更容易。
(2+3):使用保守参数(例如128k验证者委员会而不是8k或32k)进行OrbitSSF,并使用技术使其超高效。
(1+4):添加彩虹质押(ainbowstaking)而不进行单slot最终确定
除了其他好处外,单slot最终性还降低了
暴力策略的弱点在于,它们使得减少slot时间变得更加困难。
如今,哪个验证者将提出下一个区块是提前知道的。这会产生一个安全漏洞:攻击者可以监视网络,识别哪些验证器对应于哪些IP地址,并在验证器即将提出区块时对每个验证器进行DoS攻击。
解决DoS问题的最佳方法是隐藏有关哪个验证器将生成下一个块的信息,至少直到该块实际生成为止。请注意,如果我们删除「单一」要求,这很容易:
单一秘密领导者选举协议通过使用一些加密技术为每个验证者创建一个「盲」验证者ID来解决这个问题,然后为许多提议者提供对盲ID池进行洗牌的机会(这类似于
PaperbyDanBoneh(2020):https://eprint.iacr.org/2020/025.pdfDanBoneh的论文(2020)
Whisk(concreteproposalforEthereum,2022):https://ethresear.ch/t/whisk-a-practical-shuffle-based-ssle-protocol-for-ethereum/11763Whisk(以太坊具体提案,2022)
Singlesecretleaderelectiontagonethresear.ch:https://ethresear.ch/tag/single-secret-leader-electionethresear.ch上的单一秘密领导者选举标签
SimplifiedSSLEusingringsignatures:https://ethresear.ch/t/simplified-ssle/12315使用环签名的简化SSLE
实际上,剩下的就是找到并实现一个足够简单的协议,以便我们可以轻松地在主网上实现它。我们高度评价以太坊是一个相当简单的协议,我们不希望复杂性进一步增加。我们看到的SSLE实现添加了数百行规范代码,并在复杂的密码学中引入了新的假设。找出足够高效的抗量子SSLE实现也是一个悬而未决的问题。
最终可能的情况是,一旦我们出于其他原因冒险尝试并引入在L1的以太坊协议中进行通用零知识证明的机制(例如状态树、ZK-EVM),由SSLE带来的额外复杂性就会降到足够低。
另一种选择是根本不考虑SSLE,并使用协议外缓解措施(例如,在p2p层)来解决DoS问题。
如果我们添加证明者-提议者分离(APS)机制,例如。
以太坊的交易确认时间进一步减少是有价值的,从12秒减少到例如4秒。这样做将改善L1和BasedRollups的用户体验,同时使defi协议更加高效。它还将使L2更容易去中心化,因为它将允许一大类L2应用程序在BasedRollups上工作,从而减少L2构建自己的基于委员会的去中心化排序的需求。
减少slot时间,例如
允许提议者在slot过程中发布预确认。在极端情况下,提议者可以将他们实时看到的交易添加到自己的区块中,并立即为每个交易发布预确认消息(「我的第一笔交易是0×1234...」,「我的第二笔交易是0×5678……」)。提议者发布两个相互冲突的确认的情况可以通过两种方式处理:(i)削减(slashing)提议者,或(ii)使用prover对较早出现的确认进行投票。
Basedpreconfirmations:https://ethresear.ch/t/based-preconfirmations/17353
Protocol-enforcedproposercommitments(PEPC):https://ethresear.ch/t/unbundling-pbs-towards-protocol-enforced-proposer-commitments-pepc/13879协议强制提议者承诺(PEPC)
Staggeredperiodsacrossparallelchains(a2018-eraideaforachievinglowlatency):https://ethresear.ch/t/staggered-periods/1793并行链上的交错周期(2018年实现低延迟的想法)
目前尚不清楚减少slot时间是否切实可行。即使在今天,世界许多地区的质押者也很难足够快地获得证明。尝试4秒的slot时间会带来验证者中心化的风险,并且由于延迟而导致在少数发达地区之外成为验证者变得不切实际。具体来说,转向4秒时隙需要将网络延迟(「增量」)限制减少到两秒。
提议者预确认方法的缺点是它可以极大地提高平均情况下的包含时间,但不能改善最坏情况:如果当前提议者运行良好,交易将在0.5秒内得到预确认,而不是在6秒内被包含(平均),但如果当前提议者离线或运行不佳,你仍然需要等待整整12秒才能启动下一个slot并提供新的提议者。
此外,如何激励预确认也是一个悬而未决的问题。提案者有动力尽可能长时间地最大化他们的选择权。如果证明者签署了预确认的及时性,那么交易发送者可以以立即预确认为条件收取部分费用,但这会给证明者带来额外的负担,并可能使证明者继续运作变得更加困难作为中性的「dumbpipe」。
另一方面,如果我们不尝试这样做,并将最终确定时间保持在12秒(或更长),生态系统将更加重视L2的预确认机制,跨L2交互将需要更长的时间。
基于提议者的预确认实际上取决于证明者-提议者分离(APS)机制,例如
Slot时间到底能有多短还取决于slot结构,这在很大程度上取决于我们最终实施的APS版本、包含列表等。有些slot结构包含较少的回合,因此对短slot时间更友好,但它们在其他地方进行了权衡。
人们常常假设,如果发生51%攻击(包括无法通过密码学证明的攻击,例如审查制度),社区将齐心协力实施
完全自动化是不可能的,因为如果是的话,那将被视为>50%容错共识算法,并且我们已经知道
今天,如果持有67%质押的人支持,则该区块将最终确定。有人认为这过于激进。在以太坊的整个历史中,只发生过一次(非常短暂的)最终性失败。如果这个百分比增加,例如到80%,那么增加的非最终性阶段的数量会相对较低,但以太坊将获得安全属性:特别是,许多更有争议的情况将导致最终性的暂时停止。这似乎比「错误的一方」立即获胜要健康得多,无论是当错误的一方是攻击者还是有错误的客户端时。
这也回答了「单独质押者的意义是什么」这个问题?如今,大多数质押者已经通过矿池进行质押,而单独质押者似乎不太可能获得质押ETH的51%。然而,如果我们努力工作,让单独的质押者达到法定人数阻止少数派,特别是如果法定人数为80%(因此quorum阻止少数派只需要21%),似乎是可以实现的。只要单独的质押者不同意51%攻击(无论是最终性恢复还是审查),这样的攻击就不会获得「干净的胜利」,并且单独的质押者就会有动力帮助组织少数派软分叉。
请注意,quorum阈值和Orbit机制之间存在相互作用:如果我们最终使用Orbit,那么「21%的质押者」到底意味着什么将成为一个更复杂的问题,并且部分取决于验证者的分布。
斯科特·阿伦森(ScottAaronson)等量子计算专家最近也开始
登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担!