恒星共识协议

恒星共识协议(SCP)是恒星网络的基础共识算法,可作为联邦拜占庭协议(FBA)的可证明安全构造。恒星网络采用与其他加密货币不同的多种变体,在金融网络中实现了许多类似的机制来实现分布式容错.

恒星共识协议

SCP源自拜占庭协议(BA)的概念,并针对使用仲裁和仲裁切片的去中心化和无权限网络量身定制。了解SCP需要简短的BA历史以及如何将它们与FBA进行比较,然后描述法定人数和法定人数,联邦投票模型,最后是SCP协议本身的提交/中止投票系统。.

拜占庭协议和联合拜占庭协议

拜占庭协议是 拜占庭容错 分布式计算系统可以使它们达成共识,尽管网络中只有一小部分节点具有任意行为。 BA共识不假设系统中节点的行为。实用的拜占庭容错(pBFT)是拜占庭协议的原型模型,它可以快速有效地达成共识,同时将共识与资源(即PoS中的金融股权或PoW中的电力)脱钩.

实用的拜占庭容错

阅读:什么是实用的拜占庭容错?

但是,BA(pBFT)无法很好地扩展,并且需要所有参与节点之间的大量通信开销。此外,系统需要就网络成员资格达成一致协议,以减轻 西比尔攻击.

拜占庭联邦协议是由 SCP白皮书 并通过建立保证以下内容的共识协议来明确解决BA的局限性:

  • 分散控制
  • 弹性信任
  • 低延迟
  • 渐近安全

与BA相比,FBA的主要后果之一是,FBA系统向加入无许可设置而不是通过封闭(允许)成员资格列表的节点开放.

亚马逊物流使用唯一身份就状态更新达成协议 投币口 推断节点之间的更新依赖关系。在每一轮共识中,节点必须就插槽更新达成共识。但是,由于该系统对任意加入和离开网络的节点开放,因此基于多数的仲裁共识机制将不起作用。相反,SCP中的FBA雇用了 法定人数 是能够说服协议中特定节点的仲裁的子集.

根据恒星 博客

“拜占庭协议系统和联邦拜占庭协议系统(FBAS)之间的主要区别在于,在FBA中,每个节点都选择自己的仲裁切片。”

仲裁和仲裁切片将在下面更详细地讨论,但是这里的主要要点是各个节点可以独立地决定他们信任哪些其他节点(参与者)以获取信息。因此,SCP是第一个赋予每个参与者最大程度自由选择信任对象的BA协议.

法定人数和法定人数切片

一种 法定人数 定义为在分布式系统中达成协议所需的一组节点。当节点尝试达成协议时,它们彼此通信(假设不伪造任何消息-此处使用密码),并同意一旦满足协议中特定的节点阈值,状态更新就有效.

法定人数片 是能够说服协议中特定节点的仲裁的子集,这意味着一个节点可以依赖于断言语句的多组节点。节点可以依赖大量切片来获取信息,并且这种信任可以基于系统外部的信息。值得注意的是,建立信任 节点的 配置 文件,允许动态形成仲裁切片并随后进行分散.

举个例子:

节点A可以确定它不信任银行,从而需要节点A信任的另一个仲裁切片来与银行达成协议。一旦达成协议,便形成法定人数。下图非常适合于更好地理解此示例。节点7(和8)将代表不信任库的节点A.

图片来源– David Mazieres 介绍 在Google

传统的BA要求所有节点都接受相同的切片,而不是自己识别可信任信息的来​​源。因此,无法区分分片和法定人数,这需要封闭且许可的成员访问网络.

FBA模型依靠各个节点来选择自己的仲裁切片集,从而有效地实现了有机的和分散的仲裁,这些仲裁依赖于各个决策,因此被称为“联合”。在讨论中 安全活泼 在FBA协议中,我们需要评估 法定人数交集不相交的法定人数.

根据SCP白皮书:

“只有当函数Q表示的仲裁切片满足我们称为仲裁交集的有效性属性时,协议才能保证协议。”

仲裁如果共享一个节点,则相交。好的仲裁共享节点并导致重叠的仲裁。节点负责确保其选择的仲裁切片不违反仲裁交集,并且通常要求节点选择保守的切片并导致大量仲裁.

当法定​​人数不相交时,它们称为 不相交的法定人数. 不相干的法定人数是糟糕的法定人数,可能导致矛盾的陈述破坏共识。为了确保适当的切片选择过程,节点需要平衡 安全活泼.

当节点将与其他节点相矛盾的值外部化时,它们将缺乏安全性。当节点在达成协议的路上受阻时,它们缺乏活力。联合投票模型在达成声明的节点中起着至关重要的作用.

联合投票

联合投票是SCP同意参与者所作陈述的一种方法。总体而言,节点之间交换了两组消息,这两个消息回合可以细分为以下情况的协议状态: 未知, 公认, 和 确认的. 值得注意的是,在联邦环境中进行投票必须容纳开放成员资格,这使得该过程比封闭系统更复杂.

联合投票过程包括四个阶段:

  1. 初始投票
  2. 验收
  3. 批准书
  4. 确认

初次投票 节点在其中对自己断言是有效的特定声明进行投票,而对矛盾的声明则不会投票。但是,如果仍有足够的其他参与节点(一个节点信任)对另一个有效消息进行投票,则仍然有可能使该节点更改其投票。从技术上讲,此阶段的投票是初步投票.

验收 是节点根据该特定节点是否已接受矛盾声明或否定语句接受声明的阶段 垂直阻断 与该节点(仲裁交集)在仲裁切片中的一组节点接受一条语句。如果该节点尚未接受矛盾的语句或一组v阻塞节点投票接受一条语句,则该节点将接受该语句.

批准书 法定人数的所有成员都可以接受该声明。如果它们这样做,那么该语句将由节点批准。回到不信任库的节点A,如果该节点A的节点除了与它信任的其他节点共享定额切片之外,还与其他节点投票表决接受语句,则该节点A会批准它。.

确认 是系统范围内的声明协议。一旦在网络上处理了足够的消息阈值,系统便会同意特定的声明。节点从仲裁中的节点通过网络传播接受消息。这些消息可能会影响其他节点以接受该消息,即使它们已经接受了不同的初始消息。最后,广播一轮确认消息以确认该消息,从而结束投票轮.

投票机制很复杂,但是Stellar提供了一些出色的资源,帮助您更有效地进行规划。他们提供了“银河共识”以获得更广泛的概述的图形,以及使用 午餐时间示例. 要进行技术性深入研究,可以阅读以下内容的“联合投票”部分: SCP纸.

恒星共识协议

SCP是联邦拜占庭协定协议的实施,旨在最小化被封锁协议的情况并通过投票系统将其消除。 SCP协议包含2个主要子协议,提名协议和投票协议.

对于每个共识时隙,提名协议都会产生候选值。最终,每个节点都可以确定地为每个时隙生成一个收敛值。但是,他们不能 知道 当融合发生时,恶意节点可能能够重置提名过程.

一旦节点同意提名协议已收敛,便执行投票协议。在选票协议中,选票绑定到候选值,并且节点必须 犯罪 或者 中止 与选票相关的价值。为避免协议阻塞,节点可以中止某些表决并继续进行其他表决。相反,节点可以投票进行投票,从而将与该投票相关的值外部化到共识槽.

从高层次上讲,SCP独立对待每个时隙的方式类似于单时隙共识。 Paxos, 只是有许多单独的实例.

在具有法定交叉点的SCP中没有阻塞状态。错误节点(严重依赖坏节点的节点)甚至可以通过可分配的设置机制绕过,在这种机制中,良好节点可以批准语句,而无需错误节点的配合。虚假节点也不能破坏共识.

提名协议和投票协议都包含针对特定情况(例如拆分投票)的一些高度复杂的细节。这些详细信息也可以在SCP论文中找到.

SCP的局限性之一是它只有在节点选择足够的仲裁切片时才能保证安全。另外,在诸如受信任的节点之类的联邦系统中利用安全漏洞的位置可能带来不道德的优势。例如,如果银行被大量节点所依赖,那么它们可能具有网络中其他节点无法获得的信息优势.

结论

总体而言,SCP是第一个可证明安全的共识协议,可以提供分散控制,低延迟,灵活的信任和渐近安全性。各种权衡取舍都有其形式,但是SCP保持了很高的有效性,可以在不牺牲安全性的情况下在分布式,无许可的网络中快速达成共识。.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me