恒星共识协议
恒星共识协议(SCP)是恒星网络的底层共识算法,作为联邦拜占庭协议(FBA)的可证明安全构造。恒星网络在金融网络中实现许多类似于其他加密货币的分布式容错机制,同时具有一些独特的变体。
拜占庭协议与联邦拜占庭协议
拜占庭协议(BA)是分布式计算系统中的拜占庭容错机制,使系统能够在网络中一部分节点任意行为的情况下达成共识。BA共识不对系统中节点的行为做任何假设。
实用拜占庭容错(pBFT)是拜占庭协议的原型模型,它可以快速有效地达成共识,同时将共识与资源(如PoS中的财务利益或PoW中的电力)解耦。
然而,BA(pBFT)可扩展性较差,需要在所有参与节点之间进行大量通信开销。此外,系统需要对网络成员身份达成一致,以抵御女巫攻击。
联邦拜占庭协议由SCP白皮书提出,通过培养一个保证以下特征的共识协议,明确解决了BA的局限性:
- 去中心化控制
- 灵活信任
- 低延迟
- 渐进安全
与BA相比,FBA的主要后果之一是FBA系统对节点在无许可设置下加入开放,而不是通过封闭(许可)的成员列表。FBA通过独特的插槽就状态更新达成一致,推断节点之间的更新依赖关系。
法定人数与法定人数切片
法定人数(Quorum)定义为在分布式系统中达成共识所需的一组节点。当节点尝试达成共识时,它们相互通信(假设没有伪造消息——密码学在这里发挥作用),并在一组特定阈值的节点达成一致时确认状态更新的有效性。
法定人数切片(Quorum slices)是法定人数的子集,能够说服特定节点达成一致,这意味着一个节点可以依赖多组节点来确认声明。
传统BA要求所有节点接受相同的切片,而不是自行辨别可信信息来源。因此,没有方法区分切片和法定人数,需要封闭和许可的成员访问网络。
联邦投票
联邦投票是SCP就参与者所做的声明达成一致的方法。整个过程包括4个阶段:
- 初始投票
- 接受
- 批准
- 确认
投票机制较为复杂,但恒星提供了一些优秀的资源来更有效地进行规划。
恒星共识协议
SCP是联邦拜占庭协议协议的实现,旨在最大限度地减少被阻止的协议实例,并通过投票系统将其中和。SCP协议由2个主要子协议组成:提名协议和投票协议。
对于每个共识插槽,提名协议生成候选值。最终,每个节点都可以确定性地为每个插槽生成一个收敛值。然而,他们无法知道收敛何时发生,恶意节点可能能够重置提名过程。
一旦节点同意提名协议已收敛,就会执行投票协议。在投票协议中,投票与候选值相关联,节点必须提交或中止与该投票相关联的值。
结论
总体而言,SCP是第一个可证明安全的共识协议,可以提供去中心化控制、低延迟、灵活信任和渐进安全性。不同形式的共识都带有其权衡,但SCP在分布式、无许可的网络中保持高水平的有效性,能够在不牺牲安全性的情况下快速达成共识。