奥罗波罗斯:可证明安全的PoS协议

奥罗波罗斯:一种可证明安全的权益证明区块链协议

摘要

我们提出了“奥罗波罗斯”,这是首个基于 proof of stake并具备严格安全保证的区块链协议。我们为该协议建立的安全属性可与比特币区块链协议所达到的安全性相媲美。由于该协议采用“权益证明”区块链机制,相较于基于物理资源证明(例如工作量证明)的区块链,具有显著的效率优势。我们还提出了一种新颖的奖励机制,用于激励权益证明协议中的参与者,并证明在该机制下,诚实行为构成一种近似纳什均衡,从而有效遏制诸如自私挖矿等攻击。

1 引言

对于基于工作量证明(PoW)的区块链协议(如比特币)[18],运行时的一个主要考虑因素是执行这些协议所需的能源。在撰写本文时,在比特币区块链上生成一个区块所需的哈希运算次数超过 2^60,导致极高的能源消耗。事实上,早期的计算表明,该协议的能源需求相当于一个小国家的能耗[20]。

这种情况促使人们开始研究替代性的区块链协议,这些协议通过引入另一种更节能的机制来取代工作量证明,从而无需依赖工作量证明,同时仍能提供类似的保障。

需要指出的是,比特币的工作量证明机制实现了一种随机化的“领导者选举”过程,该过程从矿工中选出一人来发布下一个区块。此外,只要所有矿工都遵守协议,这种选择就会根据每个矿工所拥有的计算能力按比例随机进行。(偏离协议的行为可能会破坏这种比例性,例如“自私挖矿”策略[10,25])。

一种自然的替代机制依赖于“权益证明”(PoS)的概念。矿工不再投入计算资源来参与领导者选举过程,而是运行一个根据当前区块链账本中各自身持有的权益比例随机选出其中一人的过程。

实际上,这产生了一种自引用区块链机制:维护区块链依赖于持币者自身,并根据账本中记录的每个持币者所拥有的权益数量,向他们分配任务(以及奖励)。除此之外,该机制不应再对持币者提出任何额外的“人为”计算要求。

从某种意义上讲,这听起来是理想的;然而,实现这样的权益证明协议似乎涉及一系列定义、技术和分析上的挑战。

前期工作

权益证明(PoS)的概念已在比特币论坛中广泛讨论。1基于权益证明的区块链设计已被Bentov等人进行了更正式的研究,既包括与工作量证明(PoW)结合使用的情形[4],也包括作为区块链协议的唯一机制的情形[3]。

尽管Bentov等人表明他们的协议对某些类型的攻击是安全的,但他们并未提供用于分析基于权益证明的协议的正式模型,也没有依赖精确定义的安全证明。

已有若干加密货币提出了基于启发式权益证明的区块链协议(并已实现)。2由于这些加密货币基于启发式安全论证,因此经常被发现存在安全方面的缺陷。参见[3]以了解各种攻击的讨论。

将基于权益证明(PoS)的区块链协议与依赖固定权威集合的经典共识区块链进行对比也十分有趣(例如,参见[8])。基于权益证明的区块链与假设静态权威的区块链之间的区别在于,权益会随时间变化,因此系统的信任假设也随之演化。

工作量证明的另一种替代方案是空间证明[1,9],该概念已在区块链协议[21]的背景下得到专门研究。在空间证明机制中,“证明者”希望证明其使用了空间(存储/内存);与工作量证明类似,这也利用了物理资源,但从长期来看可能能耗更低。一个相关概念是时空证明(PoST)[16]。然而在所有这些情况下,都需要消耗昂贵的物理资源(无论是存储还是计算能力)。

1参见“权益证明而非工作量证明”,比特币论坛帖子。用户“QuantumMechanic”及其他人的发帖。(https://bitcointalk.org/index.php?topic=27787.0)。

2一个非详尽的列表包括NXT、Neucoin、黑币、Tendermint、比特股。

The PoS Design Challenge

基于权益证明的区块链协议面临的一个基本问题是模拟领导者选举过程。为了在持币者之间实现公平的随机选举,必须向系统中引入熵,而引入熵的机制可能容易受到对手的操纵。例如,控制一组持币者的对手可能会尝试模拟协议执行,通过尝试不同的持币者参与序列,以找到有利于对抗性持币者的协议延续路径。这导致所谓的“磨削”漏洞,即对抗方可能利用计算资源来偏袒领导者选举结果。

我们的成果

我们提出了“奥罗波罗斯”,一种可证明安全的权益证明系统。据我们所知,这是首个经过严格安全分析的同类区块链协议。具体而言,我们的成果如下。

首先,我们提供了一个形式化实现基于权益证明的区块链协议问题的模型。我们引入的模型秉承了[12]关注持久性和活性这两个鲁棒交易账本的形式化属性的理念。持久性指出,一旦系统中的某个节点宣称某笔交易为“稳定的”,其余节点在被查询且诚实响应时,也会报告该交易为稳定的。这里的稳定性应理解为一个由某个安全参数 k所参数化的谓词,该参数会影响该属性成立的确信程度。(例如,“深度超过 k个区块”。)活性确保一旦一笔诚实生成的交易在足够长的时间内对网络节点可见,比如 u个时间步长,它最终将成为稳定的。活性与持久性的结合从意义上保证了诚实生成的交易会被采纳并变得不可更改。我们的模型经过适当修改,以支持基于权益证明的动态机制。

其次,我们描述了一种基于权益证明的新型区块链协议。我们的协议假设参与方可以自由创建账户并接收和进行支付,且权益会随时间发生转移。我们利用一种(非常简单)的安全多方计算实现的抛币协议来为领导者选举过程生成随机性。这使得我们的方法与其他先前的解决方案有所不同(并且防止了所谓的“磨削攻击”),后者要么根据区块链的当前状态以确定性方式定义此类值,要么使用集体抛币作为引入熵的方式[3]。此外,我们的方法独特之处在于系统忽略轮次之间的权益变动。相反,系统会在称为纪元的固定间隔内对当前持币者集合进行快照;在每个这样的间隔内,利用区块链本身作为广播通道来进行一次安全多方计算。具体而言,在每个纪元中,一组随机选出的持币者组成一个委员会,该委员会负责执行抛币协议。该协议的结果将决定下一纪元执行协议的持币者集合,以及本纪元所有领导者选举的结果。

第三,我们提供了一系列形式化论证,证明任何对手都无法破坏持久性和活性。我们的协议在若干合理假设下是安全的:(1)网络是同步的,即可以确定一个上界,在此期间任何诚实的利益相关者都能够

可以与其他任何持币者通信,(2)每个纪元所需的来自诚实多数的若干持币者可随时参与,(3)持币者不会长时间离线,(4)腐败的适应性受到一个小的延迟限制,该延迟以与安全参数成线性关系的轮次衡量(或者,参与者能够访问发送者匿名广播通道)。我们安全论证的核心是关于一种组合概念“可分叉字符串”的概率论证,我们对此进行了形式化、证明,并通过实验加以验证。

在分析中,我们还区分了隐蔽攻击,这是一类特殊的一般分叉攻击。“隐蔽性”在此借鉴了针对安全多方计算协议的隐蔽对手的概念,参见[2],其中对手希望破坏协议,但更倾向于不被发现。我们证明,隐蔽可分叉字符串是可分叉字符串的一个子类,且其密度要小得多;这使得我们能够提供两个不同的安全论证,在效率与安全保证之间实现不同的权衡。我们的可分叉字符串分析是一种自然且相当通用的工具,可作为权益证明环境中安全论证的一部分。

第四,我们关注该协议的激励结构。我们提出了一种新的奖励机制,用于激励系统参与者,并证明该机制构成一个(近似)纳什均衡。通过这一设计,诸如区块扣留和自私挖矿[10,25]之类的攻击得以缓解。该奖励机制的核心思想是:对于那些无法被偏离协议的参与方联盟所抑制的协议行为,给予正向收益。因此,在合理的假设下——即某些协议执行成本较低——可以证明,当所有参与者均为理性的时,忠实遵循协议是一种均衡状态。

第五,我们引入了一种权益委托机制,可无缝集成到我们的区块链协议中。在持币者群体高度分散的场景下,委托机制尤为有用,因为它能够使协议仍具备良好的可扩展性。在这种情况下,权益委托机制允许持币者将其“投票权”——即参与每个纪元领导者选择协议运行委员会的权利——进行委托。与流动式民主(又称委任式民主[11])类似,持币者可以独立地随时撤销其委任任命。

根据我们的模型和协议描述,我们还探讨了如何在我们的框架内应对实践中考虑的各种攻击。具体而言,我们讨论了双重支付攻击、交易拒绝攻击、51%攻击、无利害关系问题、去同步化攻击以及其他攻击。最后,我们提供了有关我们设计效率的证据。首先,我们考虑双重支付攻击。为了说明目的,我们对中本聪关于比特币交易确认时间(保证率为99.9%)的分析进行了比较。针对隐蔽对手,交易确认时间比比特币快10到16倍,具体取决于对抗性哈希算力;对于通用攻击者,确认时间比比特币快5到10倍。

此外,我们对双花攻击的具体分析依赖于对可分叉字符串和隐蔽可分叉字符串的组合分析,相较于中本聪更为简化的分析,适用于更广泛的对抗行为类别。3随后,我们介绍了原型实现,并报告了在亚马逊云上运行的基准实验,展示了我们的权益证明区块链协议在性能方面的优势。由于篇幅限制,上述内容将在完整版本中呈现[14]。

相关工作

在奥罗波罗斯开发的同时,许多其他协议也在针对基于PoS的分布式账本设计空间中的不同位置进行开发。休眠共识[5]考虑固定的持币者分布(即权益不会随时间演变),并面向“混合”损坏环境,其中允许对手执行故障停止和恢复性损坏,以及拜占庭错误。实际上,我们的分析可以很直接地扩展到这种混合损坏环境中,参见备注2;然而,由此得出的安全性只能在我们引入的“延迟损坏”设置中得到论证,因此并非完全自适应。雪白[6]处理的是动态变化的持币者分布,并使用与我们类似的腐败延迟机制来论证安全性。然而,与我们的协议不同,雪白的设计容易受到一种“磨削”类型的攻击,这种攻击可能使高概率事件偏向于对手。虽然这在渐近意义上不影响安全性,但它阻碍了不考虑对手计算能力的具体参数化。阿尔戈兰德[15]提供了一种遵循每区块拜占庭协议的方法来实现分布式账本,能够抵御自适应损坏。由于每个区块都需要达成共识,此类协议生成区块的速度将明显慢于权益证明区块链(其减速程度等于拜占庭协议执行过程的长度)。在这方面,尽管存在分叉,区块链协议具有灵活性,允许客户端设定自己愿意承担的风险水平,从而使低风险偏好的客户端享受更快的处理速度。最后,水果链[23]为基于工作量证明的区块链提供了奖励机制和近似纳什均衡的证明。我们在区块链层面采用了类似的奖励机制,但底层机制有所不同,因为我们必须在权益证明环境下运行。其核心思想是使用与基于工作量证明的拜占庭协议中诚实多数情况相同的逻辑,以公平比例的方式“认可”输入[12]。

2 模型

时间、时隙和同步

我们考虑一种时间被划分为称为时隙的离散单位的设置。账本(下文将详细描述)关联每个时间槽最多对应一个账本区块。参与者配备有(大致同步的)时钟,用于指示当前槽位。这使得他们能够执行分布式协议,旨在共同为当前槽位分配一个区块。通常情况下,每个时隙 slr由一个整数 r ∈{1, 2,…}进行索引,我们假设对应于每个时隙的实际时间窗口具有以下特性。

– 当前槽位由当前时间的一个公开且单调递增的函数确定。
– 每个参与者都能获取当前时间。各方本地时间之间的任何差异与一个时隙所代表的时间长度相比均可忽略不计。
– 对应于一个时隙的时间窗口长度足以保证,诚实参与者在该时间窗口开始时发送的任何消息,都将在该时间窗口结束前被其他任何诚实参与者接收到(即使考虑到各方本地时钟存在微小不一致)。特别是,尽管可能存在网络延迟,但它们从不超过时隙的时间窗口长度。

交易账本属性

一个协议 Π实现了稳健的交易账本,前提是该协议维护的账本被划分为“区块”(分配给时间槽),以确定交易被纳入账本的顺序。它还应满足以下两个属性。

持久性 。一旦系统中的某个节点宣布某笔交易 tx为稳定的,其余节点在被查询时,要么在同一账本位置报告 tx,要么不会将任何与 tx冲突的交易报告为稳定。此处稳定性是一个由安全参数 k参数化的谓词;具体而言,当且仅当一笔交易位于账本中超过 k个区块深度的区块中时,该交易才被声明为稳定。

活性 。如果系统中的所有诚实节点都尝试包含某笔交易,那么经过相当于 u个时隙的时间(称为交易确认时间)后,所有节点在被查询且诚实地响应时,都会报告该交易为稳定的。

在[13,22]中表明,只要协议 Π从区块链形式的数据结构中导出账本,持久性和活性就可以从以下三个基本性质中推导出来。

公共前缀 (CP) ;参数为 k ∈ N。在时隙 sl1< sl2 开始时,两个诚实方所持有的链 C1,C2 满足 C^k 1 ⊑ C2,其中 C^k 1 表示从 C1 中移除最后 k 个区块后得到的链,⊑ 表示前缀关系。

链质量 (CQ) ;参数为 μ ∈(0, 1] →(0, 1] 和 ℓ ∈N。考虑在某个轮次开始时,一个诚实方所持链中长度至少为 ℓ 的任意一段;其中来自对手的区块比例至多为 1 − μ。我们称 μ 为链质量系数。

链增长 (CG) ;参数为 τ ∈(0, 1], s ∈ N。考虑在两个时隙 sl1, sl2 开始时,两个诚实方所持有的链 C1,C2,其中 sl2 至少领先 sl1 s 个时隙。那么有 len(C2)−len(C1) ≥ τ·s。我们称 τ 为速度系数。

有几点需要说明。关于共同前缀,我们采用了强意义上的共同前缀概念,参见[13]。关于链质量,函数 μ满足μ(α) ≥ α对于感兴趣的协议成立。在理想情况下, μ应为恒等函数:在这种情况下,任何足够长的链片段中恶意区块的比例与一组(恶意)持币者的累计持股成正比。

值得注意的是,对于比特币,我们有 μ(α) = α/(1 − α),且该界限实际上 是紧的——参见[12],其中论述了链质量的这一保证。我们的协议构造也将满足同样的条件。正如我们将展示的,这仍然足以使我们的激励机制正常运作。

最后,链增长涉及链的增长速率(针对诚实方)。与比特币的情况类似,最长链在我们的协议中具有优先地位;这为链增长提供了简单的保障。

安全模型

我们采用[12]提出的模型来分析区块链协议的安全性,并通过理想功能 F对其进行扩展。我们用VIEWP F Π A,,,Z(κ)表示在安全参数 κ下,协议Π在对抗敌手 A、环境 Z并访问理想功能F的执行后,参与方 P的视图。需要注意的是,多种不同的“功能”均可被 F所包含。

我们强调,与[12]不同,我们的分析是在“标准模型”中进行的,且不依赖随机预言功能。然而,我们确实使用了一个“扩散”以及“密钥和交易”功能,其接口如下所述。

扩散功能 。它为每个参与方 Ui维护一个输入字符串。如果某个参与方被激活,则可以在任意时刻获取其输入字符串的内容,因此可以将其视为邮箱。此外,参与方可以向该功能发出指令以广播消息。该功能维持若干轮次(称为时隙),所有参与方在每一轮中均可广播一次消息。除非所有参与方都已广播消息,否则轮次不会推进。当对手被激活时,也可以与该功能进行交互,并被允许读取所有邮箱内容以及所有广播请求,且可按其偏好的任意顺序将消息递送至邮箱中。在本轮结束时,该功能将确保所有邮箱都包含已被广播的所有消息(但消息的顺序不一定与其请求广播的顺序相同)。任何参与方可在任意时刻请求获取当前时隙索引。如果利益相关者未在某个特定时隙内获取写入其输入字符串的消息,则这些消息将被清空。

密钥和交易功能 。密钥注册功能使用 n用户、 U1,…, Un及其相应的权益 s1,…, sn进行初始化;在完成此类初始化后,该功能将咨询对手,并会接受一个(可能为空的)(Corrupt U)消息序列,并将相应的用户 U标记为被攻破。对于尚未注册公钥的被攻破用户,该功能允许对手设置其公钥;而对于诚实的用户,该功能将生成公钥/私钥对并进行记录。被攻破用户的公钥将被标记为相应状态。随后,可能发生以下任意序列的操作:(i)用户可请求获取其公钥和私钥,此时该功能将把密钥返回给该用户。(ii)可能需要获取完整的公钥目录,此时该功能将把目录返回给请求的用户。(iii)环境可通过发送一条消息 (Create U,C) 请求创建新用户,在这种情况下,该功能将遵循前述相同流程:它会向对手查询 U的被攻破状态,并根据其被攻破状态设置其公钥及可能的私钥;此外,它还将 C存储为建议的初始状态。在成功完成此交互后,该功能会将公钥返回给环境。(iv)环境可代表某一用户请求发起一笔交易,提供交易模板(其中应包含唯一随机数)以及接收方。该功能将相应调整每个利益相关者的权益。(v)对手可通过发送消息 (Corrupt U) 请求攻破一个现有用户。用户只能在延迟 D个时隙后被攻破;具体而言,一旦注册了攻破请求,根据Diffuse接口中维护的轮次计数器,在经过 D个时隙后才会释放私钥。

基于上述内容,我们将假设协议的执行是相对于一个功能 F而言的,该功能包含了上述两个功能,以及可能在下文解释的其他附加功能。需要注意的是,一个被攻破的利益相关者 U会将其全部状态交予 A;从此时起,对手将代替该利益相关者 U被激活。除了 F所施加的任何限制外,仅当运行协议执行的环境 Z给予许可时,对手才能篡改某个利益相关者。该许可以消息形式( Corrupt U)由环境提供给对手。综上所述,关于激活机制,我们有以下结论。

– 在每个时隙 sl j,环境 Z 可以激活任意子集的持币者。每一个被激活的持币者都可能生成需要传输给其他持币者的消息。
– 对手在每个 sl j 中至少作为最后一个实体被激活(同时也在所有对抗方激活期间被激活)。

很容易看出,上述模型赋予了对手如此广泛的权力,以至于人们无法对相关协议建立任何重要的安全保障。因此,有必要适当地限制环境(并考虑协议的细节),以便我们能够论证其安全性。我们将对环境施加如下限制。

Restrictions Imposed on the Environment

负责在每一轮中激活诚实方的环境,将受到以下关于运行该协议的诚实方激活的约束。

– 在每个时隙中,至少会有一个诚实的激活方(无论其是否为时隙领导者)。
– 将存在一个参数 k ∈ Z,用于表示诚实股东可以离线的最大时隙数。如果通过(Create U,C)在协议开始后生成了一个诚实的利益相关者,则环境所提供的初始化链 C 应与在前一时隙中活跃的诚实方的链一致。
– 在每个时隙 slr 中,对于每个活跃的利益相关者 Uj,都存在一个集合 Sj(r),包含公钥和权益对,形式为(vki, si) ∈{0, 1}∗×N,其中 j= 1,…, nr, nr 为截至该时隙引入的用户数量。若对应的利益相关者被攻破,则其公钥将被标记为“被篡改”。若在所有可能的 Sj(r) 中,被篡改密钥的总权益除以总权益∑i si 小于50%,则称对手受限于50% 相对权益。若上述条件被违反,则在当前执行中事件 Bad1/2 成立。

我们注意到,上述离线限制非常保守,根据执行过程的具体情况,我们的协议实际上可以容忍更长的离线时间;尽管如此,为了简化起见,我们采用上述限制。最后,我们指出,在我们所有的证明中,当我们说某个性质 Q在所有执行过程中以高概率成立时,实际上我们将论证 Q ∨ Bad1/2在所有执行过程中以高概率成立。这体现了我们排除了以不可忽略概率触发Bad1/2的环境和对手。

3 我们的协议:概述

我们首先概述协议的设计方法。该协议的具体细节取决于以下几个参数:(i) k 是某个消息要成为账本不可变历史的一部分所需具有的“上方”区块数量; (ii) ε 是诚实的利益相关者相对于对手在权益上的优势;(iii) D 是施加给对手的腐败延迟,即在执行过程中,当对手传递一条攻破消息后,一个诚实的利益相关者将在 D 个时隙后被篡改;(iv) L 是系统以时隙衡量的生命周期;(v) R 是一个纪元的长度,以时隙为单位。

我们通过四个阶段逐步提升协议所能承受的对抗模型来介绍我们的协议描述。在所有阶段中,参与者均可使用一种“理想功能” FD,F LS。该功能捕获了各方为实现协议安全运行所依赖的资源作为先决条件(例如,创世区块将由 FD ,F LS 指定)。

阶段1:静态权益; D= L

在第一阶段,信任假设是静态的,并保持在初始持币者集合上。存在一种初始权益分配,该分配被硬编码到创世区块中,其中包含持币者的公钥,{(vki, si)}ni=1。根据我们对环境的限制,假设这些初始持币者中存在具有优势 ε的诚实多数。具体而言,环境最初允许篡改一部分持币者,其相对权益占比为 1−ε / 2 ,其中 ε> 0。环境通过向对手提供形式为(Corrupt U)的令牌来允许参与方被篡改;需要注意的是,由于在此第一阶段施加了腐败延迟,任何后续的篡改都将针对那些最初没有权益的参与方,因此该腐败模型类似于 “静态腐败”。 FD,F LS 随后将采样 ρ,这将作为“按权益加权”的持币者抽样的种子,从而以压倒性概率选出一组 m 个密钥 vki1, …, vkim 组成委员会,在 m中该委员会具有诚实多数(此结论基于恶意方所持有的相对权益为 1−ε / 2这一事实;在此阶段将对 m与 ε−2施加线性依赖)。更详细地说,委员会将通过为每一个 L时隙以与其权益成比例的概率指派一名持币者的方式隐式选出。随后,持币者将根据由时隙分配确定的计划生成区块。最长链规则将被应用,对手有可能使诚实方的区块链视图发生分叉。然而,我们将通过马尔可夫链论证证明,在连续 n个时隙内维持分叉的概率至少以 √n指数级下降,参见针对通用攻击者的定理1。

阶段2:具有信标、周期时长为 R 个时隙的动态状态, D= R < L

扩展上述协议生命周期的核心思想是考虑对该协议进行多次调用的顺序组合。我们详细描述了一种实现方法,前提是可信信标以固定间隔发布均匀随机字符串。具体而言,信标在时隙{j · R+ 1,…,(j+ 1)R}期间,公开第 j个用于种子化领导者选举函数的随机字符串。与静态状态协议的关键区别在于,权益分配可以变化,并且是从区块链中获取的。这意味着,在属于第 j个纪元(其中j ≥ 2)的某个时隙 sl,所使用的权益分配是时间戳小于 j · R −2k的最新区块中报告的权益分配。

关于不断变化的权益分配,交易将通过环境持续生成并在持币者之间转移,参与者会将已发布的交易纳入其维护的基于区块链的账本中。为了容纳新创建的账户,FD,F LS功能能够按需创建新的(vk,sk)并将其分配给一个新的参与方Ui。具体而言,环境可以创建新的参与方,这些参与方将与此 FD ,F LS交互以获取其公钥/私钥,从而将其视为一个可信组件,用于保护其钱包的私密性。需要注意的是,对手可以干扰新参与方的创建过程,篡改该参与方,并提供其自己创建的公钥。与之前一样,环境可能会请求

持币者账户之间的交易,它还可以代表被攻陷账户与对手合谋生成交易。回想一下,我们的假设是,在任何时隙,从任何诚实参与者看来,持币者分布在权益优势下满足诚实多数 ε(请注意,不同的诚实参与者在某个时隙可能感知到不同的持币者分布)。此外,在一定数量的时隙内,权益分布的变化最多为 σ统计距离。此处的统计距离将基于按权益加权的采样器及其在指定时间间隔内的变化来衡量。安全证明可以视为对纪元数量的归纳 L/R,其基础情况由静态权益协议的证明提供。最终我们将论证,在此设定下,对抗性权益的1−ε / 2 −σ上界足以保证单次抽签的安全性(并注意到委员会的大小 m现在应选择得足够大,以抵消一个大小为ln(L/R)的加性项,因为系统生命周期包含如此数量的连续周期)。腐败延迟仍为 D= R,可任意选择小于 L,从而允许对手进行自适应损坏,只要这种损坏不是瞬时发生的。

第三阶段:无信标的动态状态,周期时长为 R 个时隙, R=Θ(k) 以及延迟 D ∈(R, 2R) < L

在第三阶段中,我们通过引入一个具有“保证输出交付”的安全多方协议来模拟信标,从而消除对信标的依赖。通过这种方式,我们可以在仅假设第一阶段设计成立的情况下(即仅需存在初始随机字符串和具有诚实多数的初始持币者分布),实现如第二阶段设计所述的协议长寿命特性。其核心思想如下:如果我们能以非常高概率保证选出的持币者中存在诚实多数,则可进一步将该选出的集合用作安全多方计算(MPC)协议实例的参与者。这要求周期长度足够长,以容纳一次完整的MPC协议运行。从安全性角度来看,与之前情况的主要区别在于,信标的输出可能会先被对手获知,再才被诚实方得知。尽管如此,我们将证明,诚实方也必然会在少数几个时隙之后学习到该输出。为了应对对手因此获得的先机优势(其可能利用此优势进行自适应损坏),我们将腐败等待时间从 R增加到(R, 2R)中的一个合适值,以抵消这种优势,该值取决于安全MPC设计。从密码学设计角度看,本阶段的一个特点是利用账本本身来模拟支持MPC协议的可靠广播。

阶段4:输入背书人、利益相关方代表、匿名通信

在我们设计的最后阶段,我们为运行协议的实体增加了两个新角色,并考虑了匿名通信的好处。输入背书者在区块包含之前创建了交易背书的第二层。这种机制使协议能够抵御诸如自私挖矿之类的偏离行为,并使我们能够证明诚实行为是一种

在关于协议运行成本的合理假设下,该协议达到近似纳什均衡。需要注意的是,输入背书者的分配方式与时隙领导者相同,且只有经过合格的输入背书者背书的输入才能被区块接受。其次,委托功能允许持币者将委员会参与权转移给选定的代表,由这些代表承担持币者在运行协议中的责任(包括参与多‐party计算(MPC)和区块生成)。委托机制自然催生了“权益池”,其作用方式类似于比特币中的矿池。最后,我们观察到,通过引入匿名通信层,可以消除我们在分析中所施加的腐败延迟要求,但这会增加诚实方的在线时间要求。由于篇幅限制,更多细节请参见完整版本,[14]。

4 我们的协议:静态状态

4.1 基本概念和协议描述

我们首先描述“静态权益”场景下的区块链协议 πSPoS,在此场景中,领导者的分配与他们的(固定)初始权益成正比,该初始权益将作为执行过程中有效的权益分布贯穿始终。为了简化表述,我们对该领导者选择过程进行抽象,将其视为一种忠实执行持币者到时隙随机分配过程的“理想功能”。在下一节中,我们将解释如何通过安全计算来实现这一功能。

我们指出,即使采用理想的领导者分配机制,在我们的权益证明环境中分析标准的“最长链”选择规则也需要引入大量全新的思路。这一挑战的产生是因为大量的时隙(即上文所述的纪元)会一次性分配给持币者;尽管这种方式在效率(和激励)方面具有优势,但它为对手提供了一种新的攻击手段。具体而言,控制一定数量持币者的对手可以在一个纪元开始时,基于对未来时隙分配给持币者的完整信息,选择何时将标准的“链更新”广播消息传递给诚实方。相比之下,在典型的工作量证明环境中,对手只能以在线方式做出此类决策。

我们指出,这一点可能显著影响对手生成替代链的能力;有关“可分叉字符串”的详细讨论,请参见下文。

在静态权益情况下,我们假设一组固定的 n持币者U1,…, Un在整个协议运行期间参与交互。每个持币者 Ui在协议开始前拥有 si权益。对于每个持币者 Ui,会为指定的签名方案生成一对验证密钥和签名密钥(vki,ski);我们不妨假设所有持币者都知道各个验证密钥vk1,…。在描述该协议之前,我们依据[12]的符号约定建立基本定义。

定义1(创世区块)

创世区块B0包含由其公钥标识的持币者列表、各自的权益(vk1, s1)......,(vkn, sn)以及辅助信息 ρ。

前瞻性地指出,辅助信息 ρ将用于为时隙领导者选举过程提供种子。

定义2 (状态)

一个状态是一个字符串 st ∈{0, 1}λ。

定义3 (区块)

在时隙sli ∈{sl1,…, slR}生成的一个区块 B包含当前状态 st ∈{0, 1}λ、数据 d ∈{0, 1}∗、时隙编号 sli以及一个签名 σ= Signski(st, d, sl),该签名使用对应于生成该区块的持币者 Ui的私钥 ski计算得出。

定义4 (区块链)

相对于创世区块 B0的区块链(或简称为链)是由一系列区块 B1, …, Bn组成的序列,这些区块关联着严格递增的时隙序列,且其中 Bi的状态 sti等于 H(Bi−1),其中 H是一个规定的抗碰撞性哈希函数。一条链的长度 len(C)= n是指其包含的区块数量。区块 Bn是该链的头,记作head(C)。

我们将空字符串 ε视为合法的链,并按约定设<head(ε)= ε。

设 C为长度为 n的链, k为任意非负整数。我们用C^k表示从 C中移除最右侧的 k个区块后得到的链。如果 k ≥ len(C),我们定义 C^k= ε。我们用 C1 ⊑ C2表示链 C1是链 C2的前缀。

定义5(纪元)

一个纪元是一组 R相邻时隙 S={sl1,…, slR}。( R的值是我们在此部分分析的协议的一个参数。)

定义6(对抗性权益比率)

设UA为对手 A所控制的持币者集合。则对抗性权益比率定义为

α= ∑j∈UA sj / ∑n i=1 si,

其中 n是持币者的总数, si是持币者 Ui的权益。

时隙领导者选择

在本节描述的协议中,对于每个 0< j ≤R,将确定一名时隙领导者 E j,其拥有在 sl j生成区块的唯一权利。具体而言,对于每个时隙,利益相关者 Ui被选为时隙领导者的概率与其在创世区块中注册的权益成正比 B0;这些分配在各个时隙之间相互独立。在此静态权益情况下,创世区块以及时隙领导者选择过程由一个理想功能 FD ,F LS定义,如图1所示。该功能由以下参数化:列表 {(vk1, s1)…,(vkn, sn)},用于为每位利益相关者分配相应的权益,一种提供辅助信息 ρ的分布 D ,以及下文定义的领导者选择函数F。

定义7(领导者选择过程)

关于持币者分布 S={(vk1, s1) . . . ,(vkn, sn)}, (D, F)的领导者选择过程由一个分布和一个确定性函数组成,使得当 ρ ← D时,对于所有 slj ∈{sl1,…, slR},F(S, ρ, slj)以概率输出 Ui ∈{U1,…, Un}

pi= si / ∑n k=1 sk

其中 si是利益相关者 Ui所持有的权益(我们称之为“按权益加权”);此外,随机变量族{F(S, ρ, slj)} R j=1是相互独立的。

我们注意到,按权益比例抽样可以以一种直接的方式实现。例如,一个简单的过程如下所述。令 p˜i= si/∑ n

出任何利益相关者,该过程就会抛掷一枚 p˜i‐有偏硬币;如果硬币结果为1,则选择参与方Ui作为该时隙的领导者,过程结束。(注意 p˜n= 1,因此该过程必定会选出唯一的领导者。)当我们把这个过程实现为一个函数 F(·)时,必须分配足够的随机性来模拟这些有偏硬币抛掷。如果我们对每次单独的硬币抛掷使用 λ精度来实现,则选择一个利益相关者总共需要 n log λ个随机比特。需要注意的是,通过使用伪随机数生成器(PRG),可以使用较短的“种子”字符串,然后利用PRG将其扩展到所需的长度。

混合模型中的协议 FD ,F LS-混合模型。我们首先描述一种基于权益证明且考虑静态权益的简单区块链协议,该协议位于 FD ,F LS ‐混合模型中,即创世区块 B0(以及相应的时隙领导者)由理想功能 FD ,F LS决定。持币者 U1,…, Un通过图2中描述的协议 πSPoS与彼此及 FD ,F LS进行交互。

该协议依赖于一个 maxvalidS(C, C) 函数,该函数根据当前链 C以及网络中可用的一组有效链 C来选择一条链。在静态情况下,我们分析简单的“最长链”规则。(在动态情况下,该规则由公共链长度进行参数化;参见第5节。)

函数 maxvalid(C, C):返回 C∪{C} 中的最长链。若存在长度相同的链,则优先选择 C(如果其具有最大长度),否则任意选择。

4.2 可分叉字符串

在我们的安全论证中,我们通常使用{0, 1}n的元素来表示在长度为 n的特定时隙窗口中,哪些时隙被分配给了对抗性持币者。当字符串具有这种含义时,我们将其称为特征字符串。

定义8(特征字符串)

固定一次执行,其创

奥罗波罗斯:一种可证明安全的权益证明区块链协议

4.2 可分叉字符串

在我们的安全论证中,我们通常使用{0, 1}n的元素来表示在长度为 n的特定时隙窗口中,哪些时隙被分配给了对抗性持币者。当字符串具有这种含义时,我们将其称为特征字符串。

定义8(特征字符串)

固定一次执行,其创世区块为B0,对手为 A,环境为 Z。令 S={sli+1,…, sli+n}表示长度为 |S| = n的一系列时隙。特征字符串 w ∈{0, 1} n针对S定义如下:当且仅当对手控制时隙 sli+k的时隙领导者时,wk= 1成立。对于这样的特征字符串 w ∈{0, 1} ∗,我们称索引i是对抗的(adversarial),如果 wi= 1成立;否则称其为诚实的(honest)。

我们首先对分析该协议的方法进行一些直观的介绍。设w ∈{0, 1} n为一系列时隙 S的特征字符串。考虑两种情况观察者(i)在 S开始之前立即离线,(ii)在 S开始之前对当前链具有相同的视图 C0,以及(iii)在 S的最后一个时隙重新上线并请求更新其链。我们分析中的一个基本问题是,这些观察者可能会被呈现一个关于序列 S的“分歧”视图:具体而言,对手可能迫使这两个观察者采用两条不同的链 C1,C2,它们的共同前缀为 C0。

我们观察到,并非所有特征字符串都允许这种情况。例如,(完全诚实的)字符串 0n确保两个观察者将采用相同的链 C,该链将在共同前缀之上包含 n个新区块 C0。另一方面,其他字符串并不能保证这种共同扩展;以 C0为例,在 1n的情况下,对手有可能在时隙序列 S期间生成两个完全不同的历史记录,从而向两个观察者提供两条仅共享共同前缀 C1、C2的 distinct 链,且它们仅共享共同前缀 C0。在本节的其余部分,我们将证明允许此类“分叉”的字符串非常罕见——事实上,我们证明只要对抗性时隙的比例为 2−Ω(√n),这些字符串的密度就为 1/2 − ε。

为了分析特征字符串 w ∈{0, 1}n的此类“分叉”,我们在下方定义了一个形式化的“分叉”概念,用以刻画协议执行过程中由诚实的时隙领导者广播的链之间的关系。在给出定义之前,我们回顾一下:诚实参与者总是选择在网络中可获得的链里最长的一条进行扩展。此外,如果这样一条最长链 C包含了一个先前由诚实参与者广播的区块 B,那么从该链 C在 B之前的部分必须完全与此前该诚实参与者所广播的链(终止于 B)一致。这种“汇合”性质直接源于以下事实:任何诚实区块的状态实际上都唯一承诺了一条从创世区块开始的链。综上所述,任何由诚实参与者广播的链 C必须始于一个先前诚实参与者产生的链(或创世区块),接着可能是一段空或非空的对抗性区块序列,最后以一个诚实区块结尾。因此,由诚实参与者广播的链构成一棵天然的有向树。由于诚实参与者可靠地广播他们的链,并始终在当前最长可用链上构建新区块,这就引出了该树的第二个重要性质:在协议执行过程中,各个诚实参与者添加的诚实区块的深度必须各不相同。

当然,由 πSPoS执行所生成的实际链包含着各种与分叉分析无关的数据区块。因此,下文中关于分叉的正式概念仅反映相关链所形成的有向树以及生成这些链中区块的参与者——以字符串 w中的索引表示——身份。

分叉和可分叉字符串。我们将在下方定义用于分析在具有该特征字符串的协议执行过程中诚实参与者可能观察到的各种视图的基本组合结构。

定义9(分叉)

设 w ∈{0, 1}n,并令 H={i | wi= 0}表示诚实索引的集合。对于字符串 w的一个分叉是一个有向根树 F=(V, E),其具有标记 : V →{0, 1,…, n},使得

– F的每条边都从根指向外;
–根 r ∈ V被赋予标签 (r)= 0;
–树中任意有向路径上的标签严格递增;
–每个诚实的索引 i ∈ H恰好是一个顶点 F的标签;
–函数d: H →{1,…, n}定义为,d(i)表示唯一满足 (v)= i的顶点在 F中的深度,该函数严格递增。(具体而言,如果i, j ∈ H且 i< j,则 d(i)< d(j)。)

作为一种表示法,我们用 F w表示 F是字符串 w的一个分叉。我们称一个分叉是平凡的,如果它仅包含一个顶点,即根。

定义10(尖刺与高度)

在分叉 F中从根出发的一条路径称为一条尖齿。对于一条尖齿 t ,我们用length(t)表示其长度,即路径上的边数。一个分叉的高度(如同树的高度一样)被定义为最长链的长度。对于分叉 F中的两条尖刺 t1和 t2,若它们共享一条边,则记为t1 ∼ t2。注意, ∼是非平凡刺突集合上的一个等价关系;另一方面,如果 tε表示仅由根顶点构成的“空”尖齿,则对于任意尖齿 t都有 tε ∼ t。

如果一个分叉中的顶点 v被标记为对抗性索引(即 w(v)= 1),我们称该顶点为对抗性;否则,我们称该顶点为诚实的。为方便起见,我们将根顶点定义为诚实的。我们将此术语扩展到尖刺:若一条尖齿以一个诚实顶点结束,则称该尖齿为诚实的,否则称为对抗性。根据此约定,空尖刺 tε是诚实的。

参见图3中的示例,该示例还展示了上述及本节后续部分定义的一些量。图中所示的分叉反映了一次执行过程,其中(i)与第一个时隙相关联的诚实参与者直接在创世区块上构建(这是必须的),(ii)与第三时隙相关联的诚实参与者被展示了一条由第二时隙的对抗性参与者生成的长度为1的链(此外还有步骤 (i)中诚实生成的链),该诚实参与者选择扩展此链,(iii)与第五时隙相关联的诚实参与者被展示了一条长度为2的链,该链基于步骤(i)中的链,并增加了由第四时隙参与者生成的另一个对抗性区块,等等。

定义11

我们称一个分叉是平坦的,如果它具有两条长度等于该分叉高度的尖齿 t1 ∼ t2。若存在一个平坦分叉 F w,则称一个字符串 w ∈{0, 1}∗ 是可分叉的。

注意,为了使πSPoS的一次执行产生两条完全不相交的最大长度链,与该执行相关联的特征字符串必须是可分叉的。我们的目标是建立关于可分叉字符串数量的以下上界。

定理1

设 ε ∈(0,1)且令 w为从{0, 1}n中通过独立地以概率(1−ε)/2为每个 wi= 1赋值得到的字符串。那么Pr[w是可分叉的]=2−Ω(√n)。

在后续的工作中,Russell 等人 [24]将该界限改进为 2−Ω(n)。

分叉的结构特征:闭合分叉、前缀、到达和边距。我们首先定义两个分叉之间的一种自然包含关系:

定义12(分叉前缀)

如果 w是字符串 w′ ∈{0, 1}∗,F w和 F′ w′的一个前缀,我们称 F是 F′的一个前缀,记作 F F′,当且仅当 F是 F′的一个标签一致的子图。具体而言, F中的每个顶点和边都出现在 F′中,并且在F和 F′中同时出现的任何顶点的标签都完全相同。

如果 F F′,则 F的每个尖齿都作为 F′中某个尖齿的前缀出现。特别地,终止于同一顶点的所有尖齿上出现的标签是相同的,并且,出现在 F和 F′中的任何诚实顶点的深度也相同。

在许多情况下,处理那些除了最终诚实索引外不“提交”任何内容的分叉会更加方便。

定义13(闭合分叉)

如果每个叶节点都是诚实的,则该分叉是闭合的。按照约定,仅由根顶点组成的平凡分叉是闭合的。

注意,一个闭合分叉具有唯一的最长尖齿(因为所有极大尖刺都终止于一个诚实顶点,且这些顶点必须处于不同深度)。另外请注意,如果 w是 w′和 F′ w′的前缀,则存在唯一的闭合分叉 F w,使得 F F′。

定义14(差距、储备和到达)

设 F w为一个闭合分叉,并令ˆt表示在 F中长度最大的唯一尖齿。我们定义一个尖齿t的差距,记为gap(t),即为ˆt与 t之间长度的差值;因此

gap(t)= length(ˆt)− length(t).

我们定义尖齿 t的储备为在 t的最后一个索引之后出现在 w中的对抗性索引的数量;具体而言,如果 t由路径(r, v1, . . . , vk)给出,其中 r是 F的根,我们定义

reserve(t)= |{i | wi= 1 and i> (vk)}|.

我们注意到,该量值既依赖于 F,也依赖于与 F相关的特定字符串 w。最后,对于一个尖齿 t,我们定义

reach(t)= reserve(t)− gap(t).

定义15(边距)

对于一个闭合分叉 F w,我们定义 λ(F)为在 F的所有尖刺中到达的最大值:

λ(F)= max t reach(t).

同样,我们定义 F的边距,记为 μ(F),为在 F的边不相交的尖齿上取到的“倒数第二”次到达:具体而言,

margin(F)= μ(F)= max t1∼t2( min{reach(t1), reach(t2)}). (1)

我们注意到,上述最大值始终可以通过诚实的尖刺获得。具体来说,如果 t是分叉 F w的一个对抗性尖刺,reach(t) ≤ reach(t),其中 t是 t的最长诚实前缀。由于 ∼是空尖刺上的等价关系,因此总存在一对(边不相交的)尖刺 t1和 t2在定义公式(1)中达到最大值,并满足 reach(t1)= λ(F) ≥reach(t2)= μ(F)。

边距与可分叉性的概念之间的相关性体现在以下命题中。

命题1

一个字符串 w 是可分叉的,当且仅当存在一个闭合分叉 F w,使得边距(F) ≥ 0。

证明。如果 w没有诚实索引,则仅包含单个根节点的平凡分叉是平坦的、闭合的,并且具有非负边距;因此这两个条件是ˆ等价的。考虑一个至少有一个诚实索引的可分叉字符串 w,并令 i表示 w的最大诚实索引。设 F是 w的一个平坦分叉。如上所述,可以通过从 F的尖齿末端移除所有对抗性顶点,由 F得到唯一的闭合分叉 F w。注意到包含ˆi的尖齿ˆt是 F中的最长链,因为这是 w的最大诚实索引。另一方面, F是平坦的,此时存在两条边不相交的尖齿 t1和 t2,其长度至少与ˆt相同。这两条尖齿在 F中的前缀显然必须具有储备不少于差距(因此到达为非负);因此边距(F) ≥ 0符合预期。

另一方面,假设 w具有一个边距为(F) ≥ 0的闭合分叉,在这种情况下存在两条边不相交的 F的尖齿 t1和 t2,使得到达距离reach(ti) ≥ 0。然后我们可以通过简单地向每个 ti添加一条包含gap(ti)个顶点的路径来生成一个平坦分叉,这些顶点标记为reserve()定义所承诺的后续对抗性索引。

鉴于该命题,对于字符串 w ,我们将注意力集中在以下量上

λ(w)= max F w, F closed λ(F), μ(w)= max F w, F closed μ(F),

并且为了方便起见,

m(w)=(λ(w), μ(w)).

注意,这重载了符号 λ(·)和 μ(·),使其既适用于分叉也适用于字符串,但具体含义将根据上下文明确。我们指出,这些定义并不能先验地保证 λ(w)和 μ(w)能由同一个分叉实现,尽管这一点在[14]中的完整论述中得到了证实。无论如何,很明显,对于所有字符串 w,都有 λ(w) ≥ 0且 λ(w) ≥ μ(w);此外,根据命题1,一个字符串 w是可分叉的当且仅当 μ(w) ≥ 0。我们称 μ(w)为字符串 w的边距。

有了这些定义,我们就可以着手考察1号定理的证明。

证明(1号定理;高层概述)。该证明通过建立关于m(w0) 和 m(w1) 的递归描述,将其表示为 m(w) 的函数,并分析由此产生的马尔可夫链,该马尔可夫链是通过考虑从二项分布中抽取字符串的 m(·) 得到的。这给出了事件μ(w) ≥ 0发生的概率上界,从而也给出了 w可分叉这一事件的概率上界。完整的证明见论文的电子打印版本[14]。

隐蔽对手。注意到,一个对手若为某个特定时隙广播两个不同的区块,则会留下可疑的“审计痕迹”——同一时隙的多个签名区块——这明显偏离了协议规定。这对某些实际存在的对手而言可能是不可取的,因为他们希望维持诚实的表象。我们称这类对手为“隐蔽的”,并指出此类对手破坏协议的能力被削弱了。我们将在论文完整版本中详细讨论这一点,并考虑在这些削弱能力的对手存在的情况下可分叉概率的问题[14]。

4.3 常见前缀

回想一下,在 π SPoS执行过程中,由诚实参与者构建的链对应于之前章节中定义和研究的分叉的尖刺。

由 FD,F LS分配给持币者的时隙的随机性保证了相关特征字符串的坐标服从二项分布,其概率等于对抗性权益。因此定理1表明,协议的任何执行 πSPoS都无法产生两条无共同前缀的最大长度尖刺(链)。

在 πSPoS 的背景下,我们希望确立一个更强的共同前缀性质:任意两个诚实参与者报告的链必须具有“近期”的共同前缀,即从较短的链中移除少量区块后,结果是较长链的一个前缀。

定理2

设 k, R ∈ N和 ε ∈(0,1)。当 πSPoS协议在具有 (1−ε)/2比例的对抗性权益的情况下执行时,在包含 R个时隙的纪元内违反参数为 k的共同前缀性质的概率不超过exp(−Ω(√k)+ln R);该 Ω()记号所隐含的常数仅依赖于 ε。

证明(概要)。完整证明(见[14])通过以下方式展开:如果具有参数 k的共同前缀在某个分叉上被破坏,则其底层特征字符串必须包含长度为 k的可分叉子串。因此

Pr[common prefix violation] ≤ Pr[∃α, β ∈{1,…, R} so that α+ k−1 ≤ β and wα… wβ is forkable ]

≤ ∑ 1≤α≤R ∑ α+k−1≤β≤R Pr[wα… wβ is forkable] ︸ ︷︷ ︸ (∗) .

回想一下,此类πSPoS执行的特征字符串w ∈{0, 1}R是通过以概率( 1 − ε)独立地为每个 wi= 1赋值得到的。根据定理1,从该分布中抽取的一个长度为 t的字符串是可分叉的概率不超过 exp(−c√t),其中 c为一个正常数。注意,对于任意的 α ≥ 1,

R ∑ t=α+k−1 e−c√t ≤∫ ∞ k−1 e−c√t dt=(2/c2)(1+ c√k −1)e−c√k−1= e−Ω(√k)

并且可以得出上述和(∗)为 exp(−Ω(√t))。因此

Pr[common prefix violation] ≤ R · exp(−Ω(√k)) ≤ exp(ln R −Ω(√k)),

如所期望的。

4.4 链增长和链质量

在进行这两个证明之前,我们记录一个加法型切尔诺夫‐霍夫丁界。(例如参见[17]以获取证明。)

定理3 (切尔诺夫‐霍夫丁界)

设 X1, …, XT为独立的随机变量,满足 E[Xi]= pi和 Xi ∈[0, 1]。令 X= ∑T i=1 Xi且 μ=∑T i=1 pi= E[X]。那么, 对于所有 δ ≥ 0,

Pr[X ≥(1+ δ)μ] ≤ e− δ2 2+δμ and Pr[X ≤(1 − δ)μ] ≤ e− δ2 2+δμ.

我们将从链增长性质开始。

定理4

πSPoS协议在整个包含 R个时隙的纪元中,以至少1 − exp(−Ω(ε2s)+ ln R)的概率满足链增长性质,对抗持有总权益 α − ε比例的对手。

证明(概要)。该证明通过应用切尔诺夫界,确保从二项分布中抽取的特征字符串以高概率包含 ≈ τ=(1 − α)比例的诚实索引。注意,每个诚实参与者都会在 πSPoS的任何执行过程中强制使结果链的长度增加一。完整的阐述见[14]。

在确立了链增长后,我们现在将注意力转向链质量。回顾一下,具有参数 μ和 ℓ的链质量属性断言:在一条链的任意 ℓ个连续区块中(由诚实用户持有的链),恶意区块的比例不超过 μ。

定理5

设 α−ε为对抗性权益比率。该 πSPoS协议在整个包含 R个时隙的纪元中, 以至少(α − ε)= α/(1 − α)和 ℓ ∈ N的参数满足链质量属性,其概率不低于 1 − exp(−Ω(ε2αℓ)+ ln R).

证明(概要)。同样,这也可以通过适当应用切诺夫界得出。详见[14]以获取完整讨论。

5 我们的协议:动态权益

5.1 使用可信信标

在上一节协议的静态版本中,我们假设在整个执行过程中(即一个周期)权益是静态的,这意味着在一个给定周期内发生的权益转移不会影响领导者选举。现在,我们提出对协议 πSPoS的一种修改,使其能够在多个周期中执行,使得每个周期的领导者选举过程由前一个周期某个指定时间点的权益分配进行参数化,从而允许跨周期的权益分配变化影响领导者选举过程。与之前相同,我们在混合模型中构建该协议,增强FD,F LS理想功能,以在各个周期中为领导者选举过程提供随机性和辅助信息(增强后的功能)。

将被称为 FD,F DLS。然后我们讨论如何仅使用 FD,F LS 来实现 FD,F DLS,从而将假设简化为在设置时选定的简单公共随机字符串。

在描述动态权益情况下的协议之前,我们需要解释对 FD,F LS的修改,以便考虑多个纪元。由此产生的功能 FD,F DLS允许持币者查询每个纪元特定的领导者选择数据。 FD,F DLS由每个持币者在第一个纪元 e1开始前的初始权益进行参数化;在后续纪元中,各方将考虑前一个纪元前 R − 2k个时隙中最新区块的权益分配。由于不存在预先确定的持币者分布视图,功能 FD,F DLS将仅提供一个随机字符串,并将根据持币者分布的解释留给调用它的参与方。有效的持币者分布是序列 S1, S2, . . .,定义如下: S1为初始持币者分布;对于时隙{(j − 1) R+ 1, . . . , jR},其中 j ≥ 2,有效持币者 Sj由时间戳至多为(j −1)R−2k的最新区块中的权益分配决定,前提是所有诚实方对此达成一致,若诚实方存在分歧,则该值未定义。功能 FD,F DLS的定义见图4。

我们现在描述协议 πDPoS,它是 πSPoS 的一个修改版本,该版本在每个新纪元更新其创世区块 B0(从而更新领导者选择过程)。该协议还采用了一种静态 maxvalidS 函数的变体,该函数被定义为将选择范围缩小到具有共同前缀的链。具体而言,它采用以下规则,该规则由一个前缀长度 k 参数化:

函数 maxvalid(C, C)。返回从 C∪{C} 出发且分叉不超过 k 个区块的最长链。如果存在多条这样的链,则返回 C(如果 C 是其中之一),否则返回在 C 中排在最前面的那条链。

协议 πDPoS在图5中描述,并在 FD ,F DLS‐混合模型中运行。

备注1. 对 maxvalid(·) 的修改要求其与最后一个已知链的分叉不超过 k 个区块,这将需要持币者至少每隔k 个时隙在线一次。该规则的相关性在于,随着时间推移权益发生转移,对手有可能篡改那些在过去某个时刻曾拥有多数权益的利益相关者,而不会触发 Bad1/2,因此由于此类事件产生的任何对抗性链都应被拒绝。值得注意的是,如果可以信任诚实的利益相关者能够安全地清除其内存,则此限制很容易解除;在这种情况下,可采用前向安全签名来抵御任何试图规避 Bad1/2 的历史篡改行为。

5.2 模拟可信信标

虽然协议 πDPoS 能够处理多个周期并考虑权益分配的变化,但它仍然依赖于 FD ,F DLS来执行领导者选择过程。在本节中,我们将展示如何通过

协议 πDLS,允许持币者计算领导者选举所需的随机性和辅助信息。

回想一下, FD,F LS和 FD,F DLS之间唯一的关键区别在于为纪元 e2, e3,…连续生成随机字符串 ρ2, ρ3,…。其思想很简单,协议 πDLS 将使用抛币协议来生成可用于定义值 ρj, j ≥ 2 的无偏随机性,该过程以初始随机字符串和初始诚实利益相关者分布为基础进行引导。然而,请注意,对手可能通过中止操作导致简单的抛币协议失败。因此,我们构建了一种具有“保证输出交付”的抛币方案。

协议 πDLS如图6所示,使用了公开可验证的秘密共享(PVSS)[26](方案的完整描述请参见完整版本)。

我们将对PVSS方案使用的假设是,由此产生的抛币协议以区分优势εDLS模拟一个完美信标。这里的模拟意味着,在诚实多数的情况下,存在一个模拟器与对手交互,并在承诺阶段之后获得信标值时生成不可区分的协议记录。我们指出,若使用[26]作为PVSS,模拟器可通过利用预言机的可编程性,在随机预言模型中实现可模拟性。然而,使用随机预言机并非必要,同样的优势也可通过嵌入创世区块的aCRS获得。

5.3 健壮交易账本

我们现在可以陈述本节的主要结果,即在我们假设的环境条件下,将 πDLS协议作为子程序的 πDPOS协议实现了鲁棒交易账本。回顾在动态权益情况下,我们必须确保对手无法利用权益随时间变化的方式,篡改一组持币者,从而控制某一纪元中选举委员会多数持币者的权益。为了捕捉这种对权益“转移”的依赖性,我们引入以下性质。

定义16

考虑两个时隙 sl1、 sl2以及一次执行 E。在 sl1和 sl2之间的权益转移是指:根据在 sl1时刻活跃的某个诚实的利益相关者的链 C1上反映的权益,以及在 sl2时刻活跃的某个诚实的利益相关者的链 C2上反映的权益,所定义的两个按权益加权的分布之间可能达到的最大统计距离。

根据上述定义,我们现在可以陈述以下定理。

定理6

固定参数 k, R, L ∈ N, ε, σ ∈(0,1)。设 R= 10k为纪元长度, L为系统总生命周期。假设对手的相对权益受限于 1−ε / 2 − σ,且该 πSPOS协议满足具有参数 R, k和错误概率 εCP的公共前缀属性,满足具有参数 μ ≥ 1/k, k和错误概率 εCQ的链质量属性以及链

具有参数 τ ≥ 1/2、 k 和错误概率 εCG 的增长属性。此外,假设 πDLS 以区分优势εDLS 模拟一个完美信标。

然后, πDPOS协议在 L 个时隙内(或Bad 1/2发生)以概率 1 −(L/R)( εCQ+ εCP+ εCG+ εDLS)满足持久性参数为 k 以及活性参数为 u= 2k,假设 10k 个时隙内的最大权益转移为 σ,腐败延迟为 D ≥ 2R − 4k,且没有诚实参与者离线超过 k个时隙。

证明。(概要)让我们首先考虑在使用 FD ,F DLS替代 πDLS的情况下πDPOS的执行。令BADr表示在第 r ≥ 1轮中三个性质CP,CQ,CG中任意一个被违反的事件,且在此前未发生任何违反。容易看出Pr[∪r≤RBAD r] ≤ εCQ+ εCP+ εCG。现在,在该事件的否定条件下,我们可以对第二纪元重复此论证,因为 D ≥ R ,因此对手无法影响第二纪元的权益持有者选择。由此可得Pr[∪r≤LBADr] ≤(L/R)(εCQ + εCP+ εCG)。现在容易看出,在上述事件的否定条件下,持久性和活性成立:持久性的违反将

违反共同前缀。另一方面,对活性的违反将导致在所述参数下链增长或链质量的违反。

请注意,即使 FD,F DLS被削弱,允许对手在纪元结束前 6k个时隙访问下一个纪元的随机值,上述结果仍然成立。这是因为腐败延迟 D ≥ 2R − 4k= 16k。

最后,我们考察当 FD,F DLS被替换为 FD,F LS以及协议πDLS执行时会发生什么。考虑一个由环境 Z和对手 A参与的执行过程,其中事件BAD以某种概率 β在该执行中发生。我们构造一个对手 A∗,其在包含 FD,F DLS(如前一段所述被削弱)的执行环境中运行,并以大致相同的概率 β引发事件BAD。 A∗的操作方式如下:在前 4k个时隙中,它将使用一个诚实方将诚实方的模拟承诺插入区块链;这对 A∗是可行的,因为在 4k个时隙内,链增长将导致区块链至少增长 2k个区块,因此在前 k个区块中至少会包含一个诚实区块。现在 A∗将从 FD,F DLS获取信标的值,并代表诚实方模拟打开所有承诺。最后,在最后的 2k个时隙中,它将强制打开所有未被打开的对抗性承诺。该协议模拟将在每个纪元重复进行,定理的结论随之成立。

备注2. 我们注意到,很容易将对手模型扩展为同时包含故障停止(以及恢复)式腐败和拜占庭式腐败。这种混合损坏环境的优势在于,可以证明我们能够容忍大量的停机故障式腐败(可任意超过50%)。其背后的直觉很简单:即使任意比例的时隙领导者变为非活跃状态,可分叉字符串分析仍然适用。为此所需做的唯一调整是,根据非停机方的比例反比扩大参数 k。我们省略进一步的细节。

6 激励

到目前为止,我们的分析集中在密码学对手环境下,即一组诚实参与者在对手存在的情况下运行。在本节中,我们考虑理性参与者联盟的情形,以及他们偏离诚实协议操作的动机。

输入背书人。为了处理激励问题,我们进一步修改了基本协议,为持币者分配两个不同的角色。与之前一样,在每个纪元中,有一组选出的持币者负责运行安全多方抛币协议,并作为该纪元的时隙领导者。除此之外,还有另一组(不一定是互斥的)称为背书人的持币者。现在,每个时隙都关联着两种类型的持币者:与时隙对应的时隙领导者将像以前一样发布区块,以及与时隙关联的背书人,其将对要包含在其中的输入进行背书

该区块。此外,与时隙领导者不同的是,我们可以为每个时隙选举多个时隙背书人,但为了不失一般性,在本文描述中我们仅假设每个时隙有一个输入背书人。尽管这看似是一个微不足道的修改,但由于以下原因,它为我们提供了改进的空间:即使背书人的贡献延迟了 d个时隙,也是可接受的,其中d ∈ N是一个参数。

增强协议 πDPOSwE显然具有与πDPOS相同的持久性和活性行为:引入背书人的修改并未为对手提供任何阻止链增长、接受输入或保持一致性的可能性。

然而,如果我们根据包含的已背书输入数量来衡量链质量,则会得到更有利的结果:可以很容易地看出,在链的任意一段长度为 k的部分中,来自持币者集合 S的已背书输入数量以高概率与其相对权益 S成正比。其原因在于,只需创建一个诚实区块,即可将最近 d个时隙中的所有已背书输入全部包含进去。

假设 d ≥ 2k,任何持币者集合 S将在 d个时隙的一个子集中成为背书人的概率与其累计持股成正比,因此结论成立。

一种合适的奖励机制类别。 我们将与输入背书人配对使用的奖励机制操作如下。首先,我们将背书接受窗口 d设为 d= 2k。令 C为由区块 B0, B1,…组成的链。考虑覆盖第 j纪元、时间戳位于{jR+ 1,…,(j+ 1)R+ 2k}内、并包含源自第 j纪元的已背书输入序列(其中部分可能作为第 j+ 1纪元的一部分被包含)的区块序列,记为 B1,…, Bs。我们定义总奖励池 PR等于对应于第 j纪元的已背书输入中所包含的交易费用之和。如果一笔交易多次出现(作为不同已背书输入的一部分)或甚至以冲突版本出现,则在计算 P时仅计入该交易的首次出现 (并视为在该位置已纳入账本),此处所使用的全序由包含在 C中的已背书输入的顺序决定。在这些区块的序列中,我们用 L1,…, LR标识对应于该纪元各个时隙的时隙领导者,并用 E1,…, Er标识贡献了 r个已背书输入序列的输入背书人。随后,第 i位利益相关者 Ui可申领最多(β · |{j | Ui= Ej}|/r+(1 −β) · |{j | Ui= Lj}|/R)P的奖励,其中 β ∈[0, 1]。奖励的申领通过在后续纪元中自 4k区块之后的任意时刻发起一笔“coinbase”类型的交易来完成。

请注意,上述奖励机制具有以下特点:(i)它会奖励当选委员会成员,仅因其为委员会成员身份,而无论其是否发布了区块;(ii)它会根据输入背书人所贡献的输入来奖励这些输入背书人;(iii)它会在纪元 j、时隙 jR+ 4k之后奖励相关实体。

接下来,我们证明我们的系统是一个 δ‐纳什(近似)均衡,参见[19,第2.6节。6]具体而言,该定理表明,任何偏离协议的联盟最多只能为其总奖励增加一个加性项 δ。

上述表述中的一个技术难点在于,参与者数量、其相对权益以及他们获得的奖励均基于协议执行过程中生成的交易。为了简化分析,我们将考虑一种设定:参与者数量是静态的,他们所拥有的权益不会随时间变化,且协议执行的协议成本可忽略不计。我们观察到,任何由诚实参与者组成的联盟 V 在持续 L= tR+ 4k+ 1 个时隙的协议执行中所能提取的总奖励(因此根据我们对协议成本的假设,效用也如此)等于

RV(E)= ∑ j=1 t P(j) all(β IEj V(E) R +(1 − β)SL j V(E)

对于任何执行 E,其中具有参数 k的共同前缀成立,rj表示在第 j纪元期间发出的已背书输入总数(并可能包含至第 j+ 1纪元的前 2k个时隙为止), P(j) all是纪元j的奖励池, SLj V(E)表示 V中的成员在纪元 j中被选为时隙领导者的次数,IEj V(E)表示 V中的成员在纪元 j中被选为背书输入的次数。

请注意,一组理性参与者 V在执行 E中获得的实际奖励可能与 RV(E)不同;例如,联盟 V可能从不认可某组输入,从而获得较少的奖励。此外,请注意,当E是共同前缀失败的执行时,我们未定义 RV(E)的值:在这种执行中考虑该值没有意义,因为诚实方对协议的视图可能是分歧的;然而,这不会影响我们的整体分析,因为此类执行发生的概率足够小。

我们将通过证明联盟 V即使偏离正确的协议行为,也无法获得超过 RV(E)+ δ的效用(对于某个合适的常数 δ> 0),从而确立我们的协议是一个 δ‐纳什均衡的事实。

定理7

固定任意 δ> 0;在协议中,针对任何控制权益比例小于(1 − ε) /2 − σ的联盟,诚实策略是 δ-纳什均衡,其中常数 ε、 σ ∈(0,1) 如定理6所述,前提是所有可能的协议执行中提供的最大总奖励 Pall以 λ 的多项式为界,而 εCQ+ εCP+ εCG+ εDLS 在 λ 上可忽略不计。

我们参考论文完整版本,[14],以获取证明。

备注3. 在上述定理中,为简化起见,我们假设协议成本不影响最终效用(本质上意味着假设协议成本可忽略不计)。然而,很容易将该证明扩展到一种情形,即在每位参与者的支付函数中引入一个负项,该项与参与者所认可

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值