什么是权益证明
权益证明(PoS)是用于公共区块链的共识算法的一类,其取决于验证者在网络中的经济利益。在基于工作量证明(PoW)的公共区块链(例如比特币和以太坊的当前实现)中,该算法奖励解决密码难题的参与者,以验证交易并创建新区块(即采矿)。在基于PoS的公共区块链(例如,以太坊即将推出的Casper实现)中,一组验证者轮流对下一个区块进行提议和投票,每个验证者的投票权重取决于其存款(即股份)的大小。PoS的显着优势包括安全性,降低集中化的风险以及能效。
通常,权益证明算法如下所示。区块链跟踪一组验证器,任何持有区块链基本加密货币(以太坊为以太币)的人都可以通过发送一种特殊的交易来将其以太币锁定为存款来成为验证者。然后,通过共识算法完成创建并同意新区块的过程,所有当前的验证者都可以参与。
共识算法有很多种,向参与共识算法的验证者分配奖励的方式也很多,因此有很多“证明”。从算法的角度来看,主要有两种类型:基于链的权益证明和BFT风格的权益证明。
在基于链的权益证明中,该算法在每个时隙(例如,每10秒的时间段可能是一个时隙)中伪随机地选择一个验证器,并为该验证器分配创建单个块的权限,并且该块必须指向某个先前的块(通常是在先前最长的链的末尾的块),因此随着时间的推移,大多数块会汇聚为一个不断增长的链。
在BFT风格的权益证明中,会向验证者随机分配提议区块的权利,但要通过一个多轮回合过程来确定哪个区块是规范的,在每个回合中,每个验证者都会针对某个特定区块发送“投票”,并且在该过程结束时,所有(诚实和在线)验证者都将永久性地商定是否有任何给定的块属于该链的一部分。注意块可能仍然链接在一起; 关键区别在于,对一个区块的共识可以在一个区块之内,而不取决于其后链的长度或大小。
与工作证明相比,股权证明有什么好处?
有关更详细的论述,请参见权益证明设计哲学。
简而言之:
- 无需消耗大量电力即可保护区块链(例如,据估计,作为共识机制的一部分,比特币和以太坊每天都消耗超过100万美元的电力和硬件成本)。
- 由于缺乏高电力消耗,因此没有太多必要发行新硬币来激励参与者继续参与网络。从理论上讲,甚至有可能出现负净发行,其中一部分交易费用被“烧掉”,因此供应随时间下降。
- 权益证明为使用游戏理论机制设计的各种技术打开了大门,以便更好地阻止集中卡特尔的形成,如果形成卡特尔,则不鼓励以对网络有害的方式行事(例如自私)工作证明中的挖掘)。
- 减少集中风险,因为规模经济不再是一个问题。1000万美元的硬币将为您带来比100万美元的硬币高出10倍的回报,而不会产生任何不成比例的额外收益,因为在更高的水平上,您可以买得起更好的量产设备。
- 用经济处罚来进行各种形式的51%攻击的能力要比工作证明昂贵得多-用Vlad Zamfir来解释,“如果您参与51%的攻击,就好像您的ASIC农场被烧毁了”。
股权证明如何适合传统的拜占庭容错研究?
拜占庭容错研究的一些基本结果适用于所有共识算法,包括诸如PBFT之类的传统共识算法,也包括任何股权证明算法,以及采用适当的数学模型进行的工作证明。
关键结果包括:
- CAP定理-“在发生网络分区的情况下,您必须选择一致性或可用性,不能同时选择两者”。直观的论点很简单:如果网络分裂成两半,一半我发送一个交易“将10个硬币发送到A”,而另一半我发送一个交易“将10个硬币发送到B”,则系统之所以不可用,是因为其中一个或两个交易都不会被处理,或者变得不一致,因为网络的一半会看到第一个交易已完成,而另一半会看到第二个交易已完成。注意,CAP定理与可伸缩性无关。它同样适用于分片和非分片系统。
- FLP不可能-在异步设置中(即,即使在功能正常的节点之间也没有网络延迟的保证范围),无法创建一种算法,即使在单个特定的有限时间内,也无法保证达到共识存在故障/不诚实的节点。请注意,这并不排除“拉斯维加斯”算法每轮都有达成共识的可能性,因此将在T秒内达成共识,并且随着T的增长,概率呈指数方式接近1。实际上,这是许多成功的共识算法使用的“逃生舱口”。
- 容错的界限-从DLS论文中我们可以得出:(i)在部分同步的网络模型中运行的协议(即,网络延迟有一定的限制,但我们事先不知道它是什么)最多可以容忍1个/ 3任意(即“拜占庭”)错误,(ii)异步模型中的确定性协议(即,网络延迟没有限制)不能容忍错误(尽管他们的论文没有提到随机算法最多可以容忍1/3)容错),(iii)同步模型中的协议(即,保证网络延迟小于已知的d)令人惊讶的是,它可以容忍高达100%的容错能力,尽管对当多于或等于1/2的节点出现故障时可能发生的情况有一定的限制。请注意,“经过验证的拜占庭”模型是值得考虑的模型,而不是“拜占庭”模型;“经过身份验证”的部分实质上意味着我们可以在算法中使用公钥加密,而在现代,这已经得到了很好的研究并且非常便宜。
工作证明已经由安德鲁·米勒(Andrew Miller)和其他人进行了严格的分析,并且作为一种依赖于同步网络模型的算法而适用于图片。我们可以将网络建模为由几乎无限数量的节点组成,每个节点代表很小的计算能力单位,并且在给定时间段内创建块的可能性很小。在此模型中,假设网络延迟为零,则协议具有50%的容错能力;在实际观察到的条件下,该协议的容错性为〜46%(以太坊)和〜49.5%(以太坊),但如果网络等待时间等于该阻止,则降低至33%时间,并随着网络延迟接近无限而减少到零。
股权共识证明更直接地适合拜占庭容错共识模型,因为所有验证者都具有已知身份(稳定的以太坊地址),并且网络会跟踪验证者集的总大小。有两种一般性的权益证明研究方法,一种研究同步网络模型,另一种研究部分异步网络模型。“基于链”的风险证明算法几乎始终依赖于同步网络模型,并且可以像在工作证明算法中的安全性一样,在这些模型中正式证明其安全性。可以证明。还存在一条将部分同步网络中的传统拜占庭容错共识与权益证明联系起来的研究方法,但解释起来比较复杂。后面的部分将更详细地介绍它。
工作量证明算法和基于链的股权证明算法选择可用性而不是一致性,但是BFT风格的共识算法更倾向于一致性。Tendermint明确选择一致性,而Casper使用一种混合模型,该模型更喜欢可用性,但提供了尽可能多的一致性,并使链上应用程序和客户都意识到在任何给定时间一致性保证的强大程度。
请注意,Ittay Eyal和Emin Gun Sirer的自私挖矿发现,根据网络模型,对比特币挖矿的激励兼容性设置了25%和33%的界限(即,只有当串谋大于25%或33%时,采矿才是激励兼容的不可能)与传统共识算法研究的结果无关,传统共识算法研究的结果与激励兼容性无关。
什么是“危急关头”问题,如何解决?
在包括Peercoin在内的许多早期(所有基于链的)股权证明算法中,只有生产积木的奖励,而没有罚款。不幸的是,在有多个竞争链的情况下,验证者有动机尝试一次在每个链的顶部制作区块,这是要确保:
在工作量证明中,这样做需要将自己的计算能力减半,因此不会有利可图:
结果是,如果所有参与者在经济上都狭rational合理,那么即使没有攻击者,区块链也可能永远无法达成共识。如果存在攻击者,则与工作量证明相反,攻击者只需要压倒利他节点(专门在原始链上进行抵押),而不需要理性节点(在原始链和攻击者的链上进行抵押)。 ,攻击者必须同时击败利他主义者和理性节点(或至少可信地威胁为:请参阅P + epsilon攻击)。
一些人认为,利益相关者具有采取正确行动的动机,并且仅在最长的链条上才能“保护他们的投资价值”,但这却忽略了这种动机遭受公地悲剧的困扰。问题:每个利益相关者可能只有1%的机会成为“关键”(即处于以下情况:如果他们参与攻击,那么攻击成功,如果他们不参与,攻击失败),因此,贿赂需要说服他们亲自参加攻击只是他们存款的1%;因此,所需的合并贿赂将仅为所有存款总额的0.5-1%。此外,该论点暗示任何零失败机会情况都不是稳定的平衡,就好像失败的机会为零,那么每个人都具有0%的关键性机会。
这可以通过两种策略解决。第一种,在这里以“ Slasher”命名,并由Iddo Bentov进一步开发,涉及到验证器,如果它们同时在多个链上创建块,则通过包括不当行为证明(即,两个冲突的带符号块头)来惩罚验证器。进入区块链作为稍后的时间点,在这一点上,恶意验证者的保证金将被适当扣除。这样就改变了激励结构:
请注意,要使该算法起作用,需要提前确定验证器集。否则,如果验证者拥有1%的股份,那么如果有两个分支A和B,那么验证者将有0.99%的时间仅能向A而非B进行股份,而验证者有0.99%的时间可以在B上而不是在A上投注,而验证者只有0.01%的时间可以同时在两者上投注。因此,验证者可以以99%的效率在概率上加倍赌注:如果可能,则对A进行赌注,如果可能,对B进行赌注,并且前提是两者之间的选择是较长链上的公开赌注。只有在两个分支上每个块的验证器选择都相同的情况下,才能避免这种情况,这要求在派生发生之前一次选择验证器。
这有其自身的缺陷,包括要求节点经常在线以获取安全的区块链视图,以及公开中等范围的验证者合谋风险(例如,在30个连续验证者中有25个聚集在一起并达成一致的情况下)提前对之前的19个区块实施51%的攻击),但如果这些风险被认为可以接受,那么效果很好。
第二种策略是简单地惩罚验证者在错误的链上创建块。也就是说,如果有两个相互竞争的链A和B,那么如果验证者在B上创建了一个区块,则他们会在B上获得+ R的奖励,但是区块头可以包含在A中(在Casper中,这称为a “ Dunkle”),并且在A上,验证者遭受-F的罚款(可能是F = R)。这样就改变了经济计算:
直觉是我们可以在权益证明中复制工作证明的经济学。在工作量证明中,在错误的链上创建区块也要受到惩罚,但是这种惩罚在外部环境中是隐含的:矿工必须花费额外的电力并获得或租用额外的硬件。在这里,我们只是将处罚明确化。该机制的缺点是,它会对验证者施加更多的风险(尽管随着时间的流逝,这种影响应该逐渐消除),但是它的优点是,不需要提前知道验证者。
这说明了基于链的算法是如何解决难题的。现在,BFT风格的权益证明算法如何工作?
BFT风格(部分同步)的股份证明算法允许验证者通过发送一种或多种类型的签名消息来对区块进行“投票”,并指定两种规则:
- 最终条件-确定何时可以考虑确定给定哈希的规则。
- 大幅削减的条件-确定何时可以将给定的验证者毫无疑问地视为行为不当的规则(例如,同时投票多个冲突的区块)。如果验证者触发这些规则之一,则将删除其全部存款。
为了说明削减条件可以采取的不同形式,我们将给出两个削减条件的示例(下文中,“所有验证者的2/3”是“由存入的硬币加权的所有验证者的2/3”的简写,而其他分数和百分比)。在这些示例中,“ PREPARE”和“ COMMIT”应被理解为简单地指验证者可以发送的两种消息。
- 如果MESSAGES包含消息的形式["COMMIT", HASH1, view],并["COMMIT", HASH2, view]为同view,但不同的HASH1,并HASH2通过同一个验证签署,则该验证器削减。
- 如果MESSAGES包含形式为的消息["COMMIT", HASH, view1],则除非view1 = -1或存在["PREPARE", HASH, view1, view2]某些特定形式的消息view2,其中view2 < view1,所有验证器的2/3签名,然后将提交COMMIT的验证器减斜。
对于一组合适的削减条件,有两个重要的需求:
- 负责任的安全性-如果冲突HASH1和HASH2(即HASH1和HASH2不同,两者都不是彼此的后代)最终确定,则所有验证者中至少有1/3必须违反某些严厉条件。
- 合理的活泼性-除非所有验证者中至少有1/3违反了某种苛刻的条件,否则存在一组消息,其中有2/3的验证者可以产生确定某些值的信息。
如果我们有一套满足这两个属性的大幅削减条件,那么我们就可以激励参与者发送信息,并开始从经济终结中受益。
一般而言,什么是“经济最终性”?
经济上的确定性是这样的想法,即一旦确定一个块,或更普遍地,一旦签署了足够的某些类型的消息,那么将来在任何时候规范历史将包含一个冲突块的唯一方法是,如果有大量的人们愿意烧掉很多钱。如果节点发现给定的块已满足此条件,则他们在经济上有很强的保证力,即该块将始终是每个人都同意的规范历史的一部分。
经济终结有两种“味道”:
- 如果有足够多的验证者签署了“我同意在不包括区块B的所有历史中损失X”形式的加密货币声明,则可以在经济上敲定该区块。这使客户确信(i)B是规范链的一部分,或者(ii)验证者损失了大量金钱,以欺骗他们以为是这种情况。
- 如果有足够数量的验证者签署了表示对区块B表示支持的消息,则可以经济地完成该区块的确定,并且有数学证据表明,如果在相同的定义下也敲定了某些B'!= B,那么验证者将损失大量金钱。如果客户看到了这一点,并且还验证了链条,并且有效性加最终性是规范叉子选择规则中优先权的充分条件,那么他们可以确保(i)B是规范链的一部分,或者(ii)验证者在制作最终确定的冲突链时损失了大量金钱。
终结性的两种方法都继承了无处不在问题的两种解决方案:通过惩罚不正确性而实现终结性,以及通过惩罚模棱两可来实现终结性。第一种方法的主要优点是它对轻客户端更友好,并且更易于推理;第二种方法的主要优点是(i)更容易看到诚实的验证者不会受到惩罚,并且( ii)悲伤因素更有利于诚实的验证者。
Casper遵循第二种口味,尽管有可能会添加链上机制,使验证者可以自愿选择签署第一种口味的最终性消息,从而使光客户端的效率更高。
那么这与拜占庭容错理论有什么关系呢?
传统的拜占庭容错理论假定安全性和活动性相似,但有一些区别。首先,传统的拜占庭容错理论只是要求2/3的验证者是诚实的才能达到安全性。这是一个非常容易使用的模型。传统的容错试图证明“如果机制M发生安全故障,则至少有1/3个节点出现故障”,而我们的模型试图证明“如果机制M发生安全故障,则至少有1/3个节点出现故障是错误的,即使发生故障时您处于脱机状态,您也可以知道是哪些”。从活跃度的角度来看,我们的模型更简单,因为我们不需要证明网络可以达成共识,我们只要求证明它不会卡住。
幸运的是,我们可以证明额外的问责制要求并不是特别困难;实际上,有了正确的“协议防护”,我们可以将任何传统的部分同步或异步拜占庭容错算法转换为负责任的算法。这种证明基本上可以归结为以下事实:可以将故障彻底地分为几类,而这些故障中的每一种都应负责(即,如果您犯了那种类型的故障,您可能会被抓住,因此我们可以将故障排除在外)。降低条件)或与延迟没有区别(请注意,即使是过早发送消息的错误也与延迟没有区别,因为人们可以通过加快每个人的时钟速度并分配不是 太早发送了更高的延迟)。
什么是“弱主观性”?
重要的是要注意,使用存款以确保存在“危急关头”的机制确实导致了安全模型的一次改变。假设存款被锁定四个月,以后可以提取。假设发生了51%的未遂攻击,还原了10天的交易额。攻击者创建的数据块可以简单地作为不当行为证明(或“垃圾”)导入主链,并且可以对验证者进行惩罚。但是,假设这种攻击在六个月后发生。然后,即使可以肯定地重新导入这些块,到那时,恶意验证者也将能够提取其在主链上的存款,因此不会受到惩罚。
为了解决此问题,我们引入了“还原限制”-一条规则,即节点必须简单地拒绝还原到比存款长度(例如,在我们的示例中为四个月)更远的时间,并且我们还要求节点在以下时间登录每个存款长度至少一次,以确保链条的安全视图。请注意,该规则与协议中的所有其他共识规则不同,这意味着节点可能会根据何时看到某些消息而得出不同的结论。一个节点看到给定消息的时间在不同节点之间可能会有所不同。因此,我们认为该规则是“主观的”(或者,拜占庭容错理论中精通该规则的人可能会将其视为一种同步假设)。
但是,这里的“主观性”非常弱:要使节点进入“错误”链,它们必须比原先晚四个月收到原始消息。这仅在两种情况下可行:
- 节点首次连接到区块链时。
- 如果节点已脱机超过四个月。
我们可以通过使用户有责任验证带外最新状态来解决(1)。他们可以通过询问其朋友,区块浏览器,与之互动的企业等来做到这一点,以获取链中最近的区块哈希,将其视为规范的哈希。实际上,这种区块哈希很可能只是它们用于验证区块链的软件的一部分。可以破坏软件检查点的攻击者可以说很容易破坏软件本身,并且没有任何纯粹的加密经济学验证可以解决该问题。(2)确实为节点增加了额外的安全性要求,尽管再次注意硬分叉和安全性漏洞的可能性,以及需要及时了解它们并安装任何必要的软件更新的要求,
请注意,所有这些仅在非常有限的情况下才是问题,在这种情况下,大多数先前的涉众在某个时间点合谋攻击网络并创建备用链。在大多数情况下,我们预计将只有一个规范的链可供选择。
我们可以尝试使社交身份验证自动化以减轻用户负担吗?
一种方法是将其纳入自然的用户工作流程:BIP 70风格的付款请求中可能包含最近的区块哈希,并且用户的客户端软件会在批准付款(或付款)之前确保与供应商位于同一链上重要的是,任何链上的互动)。另一种是使用Jeff Coleman的通用哈希时间。如果使用UHT,则需要在构建合法链的同时秘密地生成成功的攻击链,这需要大多数验证者秘密地串通这么长时间。
有人可以在经济上惩罚审查制度以证明利益吗?
与还原不同,审查很难证明。区块链本身无法直接区分“用户A尝试发送交易X但受到不公正的审查”,“用户A尝试发送交易X但由于交易费用不足而未能加入”与“用户A从未尝试”之间的区别。完全发送交易X”。但是,可以使用许多技术来减轻审查问题。
首先是通过制止问题来抵制审查制度。在此方案的较弱版本中,该协议被设计为图灵完备的,以至于验证者甚至无需花费大量处理能力来执行交易就无法判断给定交易是否会导致不良行为,因此可以接受拒绝服务攻击。这就是阻止DAO软叉的原因。
在更强大的计划中,交易可以在近期到中期的某个时候触发保证的效果。因此,用户可以发送多个交易,这些交易相互之间以及与预测的第三方信息进行交互以导致将来发生某些事件,但是验证者可能无法确定这将要发生,直到已经包括了这些交易(并在经济上确定了这些交易)阻止他们为时已晚。即使所有将来的交易都被排除在外,验证人希望停止的事件仍然会发生。请注意,在此方案中,验证者仍可以尝试阻止所有交易,或者可能不是所有未附带某些正式证明的交易,这些正式交易不会导致任何不希望的事情,但这将禁止非常广泛的交易类别,以至于实质上破坏了整个系统,这将使验证者损失价值,因为其存款所用的加密货币的价格将下降。
第二点,由Adam Back在这里描述,是要求对事务进行时间锁加密。因此,验证者将在不知道内容的情况下包括交易,并且只有稍后才可以自动显示内容,这时再次取消交易将为时已晚。但是,如果验证者足够恶意,则他们只能同意包含解密版本是什么的带有密码证明(例如ZK-SNARK)的交易。这将迫使用户下载新的客户端软件,但是攻击者可以方便地提供此类客户端软件以便轻松下载,并且在游戏理论模型中,用户将有动力进行游戏。
在权益证明中可以说的最好的一点是,用户还可以安装包含硬分叉的软件更新,该硬分叉会删除恶意验证程序,这并不比安装软件更新进行交易难得多“审查制度友好”。因此,尽管该方案确实以减慢与区块链的交互为代价(尽管该方案必须是强制性的才能有效),但所有这些方案也都具有一定的有效性(否则,恶意验证程序可以更容易地简单过滤加密交易而无需过滤更快的未加密交易)。
第三种选择是在分叉选择规则中包括审查制度检测。这个想法很简单。节点监视网络中的交易,如果它们在足够长的时间内看到一笔足够高的费用的交易,则它们为不包括该交易的区块链分配较低的“分数”。如果所有节点都遵循该策略,那么最终少数人链会自动合并包括交易在内的所有诚实的在线节点。这种方案的主要缺点是,脱机节点仍将遵循多数分支,并且如果检查是临时的,并且它们在检查结束后重新登录,则它们将最终与在线节点处于不同的分支。因此,
验证器选择如何工作,什么是股权研磨?
在任何基于链的权益证明算法中,都需要某种机制,该机制从当前活动的验证器集中随机选择哪个验证器可以构成下一个块。例如,如果当前有效的验证者集包含40个以太币的Alice,30个以太币的Bob,20个以太币的Charlie和10个以太币的David,那么您希望Alice有40%的机会成为下一个区块创建者,鲍勃有30%的几率,依此类推(在实践中,您不仅要随机选择一个验证者,还要无限选择一个验证者序列,以便如果爱丽丝不露面,那么有人可以在一段时间后替换她。 ,但这不会改变根本的问题)。在基于非链的算法中,出于各种原因,通常还需要随机性。
“赌注打磨”是一类攻击,其中验证者执行一些计算或采取其他步骤来尝试使随机性偏向自己。例如:
- 在Peercoin中,验证者可以“磨削”参数的许多组合,并找到有利的参数,这将增加其硬币生成有效区块的可能性。
- 在一个现已失效的实现中,块N + 1的随机性取决于块N的签名。这使验证程序可以重复产生新的签名,直到他们找到一个允许他们获得下一个块的签名,从而抓住对签名N的控制权。系统永远。
- 在NXT中,块N + 1的随机性取决于创建块N的验证器。这允许验证器通过简单地跳过创建块的机会来操纵随机性。这带来了等于区块奖励的机会成本,但是有时新的随机种子会为验证器在接下来的几十个区块中提供高于平均水平的区块数。请参阅此处以获得更详细的分析。
(1)和(2)很容易解决;通常的方法是要求验证者提前妥善存放硬币,而不要使用容易被操纵的信息作为随机性的源数据。有几种解决问题的主要策略,如(3)。第一种是使用基于秘密共享或确定性阈值签名的方案,并使验证器协作生成随机值。除非大多数验证者合谋(除非在某些情况下,取决于实现方式,在某些情况下,有33%至50%的验证者会干扰操作,从而使该协议具有67%的活跃性假设),否则这些方案对于所有操作都是健壮的。
第二种是使用加密经济学方案,在这种方案中,验证者sha3(x)必须提前提交信息(即publish ),然后必须x在区块中发布。x然后将其添加到随机池中。有两种理论上的针对此的攻击媒介:
- 操纵x在承诺的时间。这是不切实际的,因为随机性结果会考虑许多演员的价值观,并且即使其中一个是诚实的,输出也会是均匀分布。与任意多个任意偏置的分布一起进行异或运算的均匀分布仍然给出了均匀分布。
- 有选择地避免发布块。但是,这种攻击花费了机会成本的一整笔奖励,并且由于该方案阻止任何人看到除下一认证者之外的任何将来的验证者,因此它几乎永远不会提供超过一百万的奖励。唯一的例外是以下情况:如果验证者跳过,则行中的下一个验证者,并且该验证者的第一个子代都将是同一验证者;如果这些情况令人严重担忧,那么我们可以通过明确的跳过处罚来进一步惩罚跳过。
第三种是使用Iddo Bentov的“多数信标”,该方法通过获取通过其他一些信标生成的前N个随机数的多数位来生成一个随机数(即,如果结果的第一位为1,则结果的第一位为1)。源编号中的第一位为1,否则为0,如果源编号中的大多数第二位为1,则结果的第二位为1,否则为0,依此类推。这给出了开发成本,其中潜在信标的开发成本~C * sqrt(N)在哪里C。因此,总而言之,存在许多已知的桩基磨削解决方案。问题比停顿问题更像是差分密码分析 -烦恼的是,权益证明的设计者最终理解了并且现在知道了如何克服,而不是根本性和不可避免的缺陷。
对Casper的51%攻击相当于什么?
“ 51%攻击”的最基本形式是简单的确定性还原:已经确定了块A的验证程序然后确定了一些竞争性块A',从而破坏了区块链的确定性保证。在这种情况下,现在存在两个不兼容的最终历史记录,创建了一个区块链的分裂,整个节点都愿意接受,因此社区需要带外协调以专注于分支之一而忽略其他)。
这种协调可以在社交媒体上进行,方法是通过区块浏览器提供者之间的私有渠道,企业和交易所,各种在线讨论形式等等。做出决定所依据的原则是“首先确定的是真正的人”。另一种选择是依靠“市场共识”:两个分支机构都将在很短的时间内短暂地在交易所进行交易,直到网络效应迅速使一个分支机构对其他分支机构的价值大大提高。在这种情况下,“第一条最终确定的链条制胜法则”原则将成为市场选择的切入点。两种方法的组合很有可能会在实践中使用。
一旦就哪条链是真实的达成共识,用户(即验证者以及轻型和全节点运营商)将能够通过界面中的特殊选项将获胜的区块哈希值手动插入其客户端软件中,然后他们的节点将忽略所有其他连锁店。无论哪个链获胜,都有证据可以立即用于销毁验证者至少1/3的存款。
另一种攻击是拒绝活动性:大于等于34%的验证者的卡特尔可以尝试拒绝还原更多块,而不是尝试还原块。在这种情况下,块将永远不会完成。卡斯珀(Casper)使用混合链/ BFT风格的共识,因此区块链仍会增长,但其安全级别要低得多。如果在很长一段时间(例如1天)内没有完成任何块,则有以下几种选择:
- 该协议可以包括自动功能来旋转验证器集。新的验证器集下的块将最终确定,但客户会获得某种迹象,表明新确定的块在某种意义上是可疑的,因为旧的验证器集很可能会恢复运行并最终确定其他一些块。一旦很清楚旧的验证器集不会重新联机,客户端便可以手动覆盖此警告。将有一个协议规则,在这种情况下,所有未尝试参与共识过程的旧验证者都将对其存款承担大笔罚款。
- 硬分叉用于添加新的验证器并删除攻击者的余额。
在情况(2)中,分叉将再次通过社会共识并可能通过市场共识来进行协调(即,具有新旧验证器的分支机构都在交易所进行了短暂交易)。在后一种情况下,有一个强有力的论点是市场希望选择“好人获胜”的分支,因为这样的链中有验证者已经证明了他们的善意(或者至少符合他们的利益)。用户),这对于应用程序开发人员来说是一条更有用的链。
请注意,社交协调和协议内自动化之间存在一系列响应策略,通常认为应尽可能向自动化解决方案推进,以最大程度地降低同时发生51%攻击和攻击社交的风险层(以及市场共识工具,例如交易所)。可以想象实现(1),如果节点在很长一段时间内都没有提交新的块,则节点会自动接受切换到新的验证器集,这将减少对社会协调的需求,但需要付出代价那些不希望依靠社会协调来保持在线状态的节点。无论哪种情况,都可以设计一种解决方案,使攻击者对其存款造成重大损失。
一种更阴险的攻击是审查攻击,其中> = 34%的验证者拒绝敲定包含某些他们不喜欢的特定交易的区块,否则,区块链将继续下去,而区块将继续敲定。范围从轻微的审查攻击(仅审查员干扰某些特定的应用程序)(例如,有选择地审查Raiden之类的交易或雷电网络是卡特尔窃取钱财的相当简单的方式)到阻止所有内容的攻击交易。
有两种情况。首先是攻击者拥有34-67%的股份。在这里,我们可以对验证程序进行编程,使其拒绝最终确定或建立在他们主观认为明显检查交易的数据块上,从而将这种攻击转变为更标准的活动攻击。更危险的情况是攻击者拥有67%以上的股份。在这里,攻击者可以自由地阻止他们希望阻止的任何事务,并拒绝在包含此类事务的任何阻止基础上进行构建。
有两道防线。首先,由于以太坊是图灵完备的,它自然会在某种程度上抵抗审查制度,因为审查具有一定效果的交易在某种程度上类似于解决暂停问题。由于存在气体限制,尽管“轻松”方法确实会造成拒绝服务攻击漏洞,但实际上并没有什么限制。
这种抵抗力并不完美,有一些方法可以改善它。最有趣的方法是添加协议内功能,以便事务可以自动安排将来的事件,因为要预见执行预定事件的结果以及这些预定事件产生的事件将要提前什么是非常困难的。验证者然后可以使用混淆的计划事件序列来存放其以太币,并将攻击者的命中率降至33%以下。
其次,可以引入“主动分叉选择规则”的概念,在该过程中,确定给定链是否有效的过程的一部分是尝试与之交互,并验证它没有试图对您进行审查。最有效的方法是让节点重复发送事务以安排其以太币的沉积,然后在最后一刻取消该沉积。如果节点检测到审查制度,则可以继续进行存款,因此可以暂时加入验证者池,从而将攻击者的权益稀释到33%以下。如果验证者卡特尔审查了他们的存款尝试,那么运行此“主动分叉选择规则”的节点将不会将该链识别为有效;这会使审查制度的攻击变成拒绝活力的攻击,
这听起来很依赖带外社会协调。那不危险吗?
对卡斯珀的进攻非常昂贵。正如我们将在下面看到的那样,对Casper的攻击所花费的成本,甚至比在工作证明中购买足够的采矿权以永久地51%进行攻击所花费的成本要高得多,甚至一遍又一遍地攻击到无用的地步。因此,上述恢复技术将仅在非常极端的情况下使用。实际上,工作量证明的提倡者通常也表示愿意在类似情况下通过更改工作量证明算法来使用社会协调。因此,甚至不清楚的是,在权益证明中进行社会协调的需要比在工作证明中所需要的更大。
实际上,我们期望社会协调的数量接近于零,因为攻击者将认识到,仅花费一两天时间使区块链脱机消耗掉如此大量的钱并没有好处。
MC => MR难道不意味着具有给定安全级别的所有共识算法都具有同等效率(或换句话说,同等浪费)吗?
这是许多人提出的论点,也许保罗·斯托克在本文中可以最好地解释。本质上,如果您创建一种使人们能够赚取100美元的方式,那么人们将愿意花费不超过99.9美元(包括自己的劳动成本)来获得收入;边际成本接近边际收益。因此,从理论上讲,任何具有给定整体奖励的算法在试图获得奖励的社会非生产性活动的数量上都是“浪费”的。
这有三个缺陷:
- 仅仅说边际成本接近边际收益是不够的。人们还必须建立一种合理的机制,使某人可以实际花费这笔费用。例如,如果明天我宣布从那时起的每一天,我将给随机选择的十个人中的一个(使用我的笔记本电脑的/ dev / urandom作为随机性)之一,给100美元,那么根本没有任何人可以发送$ 99尝试获得随机性。要么他们不在十个列表中,在这种情况下无论做什么都没有机会,或者它们不在十个列表中,在这种情况下,他们没有任何合理的方式来操纵我的随机性,因此坚持每天获得10美元的期望值。
- MC => MR并不意味着总成本接近总收入。例如,假设有一种算法可以从一些非常大的集合中伪随机地选择1000个验证者(每个验证者获得的奖励为$ 1),您拥有10%的股份,因此平均您可以获得100,而成本为$ 1您可以强制重置随机性(并且可以无限次重复此操作)。由于中心极限定理,你的奖励的标准差为$ 10,并根据数学其他已知结果N个随机样本的预期最大小幅正在M + S * sqrt(2 * log(N))这里M是平均值,S是标准偏差。因此,进行额外试验(即增加N)的奖励急剧下降,例如。重试0次,您的预期奖励为100美元,重试一次为105.5美元,两次重试为108.5美元,三次重试为110.3美元,四次重试为111.6美元,五次重试为112.6美元,六次重试为113.5美元。因此,经过五次重审,它就不再值得。结果,拥有10%股份的出于经济动机的攻击者将无效率地花费5美元来获得13美元的额外收入,尽管总收入为113美元。如果可利用的机制只暴露了很小的机会,那么经济损失将很小。绝对不是唯一的问题,即下降的可利用性会使整个PoW级的经济浪费泛滥成灾。这一点在我们下面有关资本锁定成本的讨论中也非常重要。
- 可以用比工作证明低得多的总奖励来保证权益证明。
资本锁定费用呢?
将Xether锁定在存款中并非免费;它为醚持有者牺牲了选择性。现在,如果我有1000个以太币,我可以用它做任何我想做的事。如果我将其锁定在存款中,那么它将被滞留在那里几个月,例如,我没有那笔钱的保险效用可用来支付突然的意外费用。我也失去了在那个时间范围内将代币分配从以太币上更改掉的自由。我可以通过卖空相当于交易所的保证金的数量来模拟卖出以太币,但这本身包含了费用,包括交易费和支付利息。有人可能会争辩:这种资本锁定效率低下的确不是实现与工作证明完全相同的经济效率低下的间接方法吗?出于上述两个原因(2)和(3),答案是否定的。
让我们首先从(3)开始。考虑一个模型,其中股权存款的证明是无限期的,ASIC永远存在,ASIC技术是固定的(即,没有摩尔定律),电费为零。假设均衡利率为每年5%。在工作量证明的区块链中,我可以拿1000美元,将其转换为一名矿工,该矿工将永远每年向我支付50美元的奖励。在权益证明的区块链中,我将购买1000美元的硬币,存入它们(即永远丢失),并每年永久获得50美元的奖励。到目前为止,这种情况看起来是完全对称的(从技术上讲,即使在这里,在股权证明的情况下,我对硬币的破坏也没有完全破坏社会,因为这使其他人的硬币价值更高,但我们暂时可以将其抛在一边)。“ Maginot-line” 51%攻击的费用(即
现在,让我们依次对模型进行以下更改:
- 摩尔定律存在,ASIC每2.772年折旧50%(这是每年不断折算的25%;旨在简化数字)。如果我想保留相同的“一次付款,永远赚钱”的行为,我可以这样做:我将1000美元投入一只基金,其中167美元投入ASIC,其余833美元投入5%的利率投资;每年$ 41.67的股息将足以继续更新ASIC硬件(假设技术发展是完全连续的,再次使数学更简单)。奖励将降至每年$ 8.33;因此,有83.3%的矿工将退出,直到系统恢复平衡,而我每年的收入为50美元,因此在奖励相同的情况下,攻击PoW的Maginot线路成本降低了6倍。
- 电力和维护费用占采矿成本的1/3。我们从最近的采矿统计数据中估算出1/3:Bitfury的一个新数据中心每千兆ahash消耗0.06焦耳,即60 J / TH或0.000017 kWh / TH,如果我们假设整个比特币网络的效率相似,则每千瓦时将获得27.9 kWh第二名获得了167万泰铢/秒的比特币哈希值。中国的电费为每千瓦时0.11美元,则约为每秒$ 3,或每天$ 260,000。比特币区块奖励加费用为每BTC 600美元_每区块13 BTC _每天144区块=每天112万美元。因此,电力本身将占成本的23%,我们可以将维护成本估算为10%,以得到1/3的清洁成本,2/3的固定成本。这意味着在您的$ 1000资金中,只有$ 111会投入ASIC,55美元将用于支付持续的成本,833美元将用于硬件投资。因此,马其诺防线的攻击成本比我们的原始设置低9倍。
- 存款是暂时的,不是永久的。当然,如果我自愿永远保持赌注,那么一切都不会改变。但是,我重新获得了以前的一些选择。我可以随时在中等时间(例如4个月)内退出。这意味着我愿意为每年50美元的收益投入1000美元以上的以太币。也许处于平衡状态,大约是$ 3000。因此,针对PoS的Maginot线路攻击的成本增加了三倍,因此在相同成本下,净PoS的安全性比PoW高27倍。
以上内容包括大量简化的建模,但是,它用于显示多个因素如何大量叠加以支持PoS,从而使PoS在安全性方面更具优势。为什么这个可疑的多因素论证如此偏重于PoS的元论证很简单:在PoW中,我们直接与物理学定律合作。在PoS中,我们能够以一种具有我们想要的精确属性的方式设计协议-简而言之,我们可以根据自己的喜好优化物理定律。给我们(3)的“隐藏活板门”是安全模型的变化,特别是弱主观性的引入。
现在,我们可以谈谈边际/总体差异。就资本锁定成本而言,这非常重要。例如,假设您有100,000美元的以太币。您可能打算长时间保留其中的大部分;因此,锁定甚至$ 50,000的以太币应该几乎是免费的。锁定$ 80,000会带来一些不便,但是$ 20,000的呼吸空间仍然为您提供了很大的操作空间。锁定90,000美元更成问题,99,000美元非常成问题,而锁定全部100,000美元则是荒谬的,因为这意味着您甚至没有一点以太币来支付基本交易费用。因此,您的边际成本迅速增加。我们可以通过工作量证明这种事态与事态之间的区别如下:
因此,股权证明的总成本可能远低于将1个以太币存入系统的边际成本乘以当前存入的乙醚数量的边际成本。
请注意,论点的这一部分不幸地不能完全转化为“安全发行水平”的降低。它确实对我们有帮助,因为它表明即使我们保持较低的发行量,我们也可以获得大量的股权参与证明;但是,这也意味着,大部分收益将仅由验证人作为经济盈余承担。
股权证明书交易所会带来与工作证明书库相似的集中化风险吗?
从集中化的角度来看,在比特币和以太坊中,大约需要三个池来协调51%的攻击(在撰写本文时,在比特币中为4,在以太坊中为3)。在PoS中,如果我们假设包括所有交易所在内的参与度为30%,那么三个交易所就足以构成51%的攻击。如果参与率上升到40%,则所需人数上升到8。但是,交易所将无法与他们所有的以太币一起参与。原因是他们需要适应提款。
此外,不鼓励在PoS中进行合并,因为它对信任的要求更高-股份池的证明可以假装被黑客入侵,破坏其参与者的存款并要求获得奖励。另一方面,许多人可能会发现,即使需要信任,也无需自己运行节点就可以赚钱的能力。总而言之,集中化平衡是一个经验性问题,直到系统实际运行相当长的一段时间后,答案才明确。通过分片,我们希望合并激励能够进一步降低,因为(i)对差异的担忧甚至更低,并且(ii)在分片模型中,交易验证负载与一个人投入的资本数量成正比,因此不能直接从池中节省基础架构。
最后一点是,集中化对于权益证明比对工作证明的危害要小,因为从成功的51%攻击中恢复的成本要低得多。无需切换到新的挖掘算法。
是否有经济手段阻止集中化?
弗拉德·扎姆菲尔(Vlad Zamfir)提出的一种策略是仅部分销毁被削减的验证者的存款,将销毁的百分比设置为与最近被削减的其他验证者的百分比成比例。这样可以确保验证者在发生实际攻击时会丢失所有存款,而在一次过的错误中只会丢失一小部分存款。这使得较低安全性的赌注策略成为可能,并且还特别激励验证者使他们的错误与其他验证者尽可能不相关(或最好是不相关);这涉及到不在最大的池中,将自己的节点放在最大的虚拟专用服务器提供程序上,甚至使用辅助软件实现,所有这些都会增加分散性。
股权证明可以在私有/财团链中使用吗?
通常,是的。任何股权证明算法都可以用作私有/财团链设置中的共识算法。唯一的变化是,验证器集的选择方式将有所不同:它将以每个人都同意的一组受信任的用户开始,然后由验证器集投票决定添加新的验证器。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。