一文读懂万维链 PoS 星系共识架构特点和运转流程

链闻·热度: 11186
本文从三大核心 PoS 项目 Cardano、Algorand、Casper 出发,为读者介绍万维链 PoS 星系共识框架和设计思路。
万维链很早便认识到「权益 Stake」才是左右链上治理和发展的根本因素,投入理论研究团队,研发了「PoS 星系共识」协议,在 4 月初正式发布研究论文,这成为 PoS 共识类别下一个高效、科学、安全且实用的 PoS 共识协议。本文从三大核心 PoS 项目 Cardano、Algorand、Casper 出发,为读者介绍星系共识框架和设计思路。

在众多区块链系统百家争鸣的形势下,安全高效的共识协议一直是分布式系统专家和密码学家研究的方向。随着众多基于权益证明(PoS)的核心区块链项目出现,PoS 正在成为整个区块链世界关注的焦点。

万维链很早便认识到「权益 Stake」才是左右链上治理和发展的根本因素,投入理论研究团队,研发了「PoS 星系共识」协议,在 4 月初正式发布研究论文,这成为 PoS 共识类别下一个高效、科学、安全且实用的 PoS 共识协议,用来替代原本高能耗的 PPoW (permission proof-of-work)。

随着万维链计划在 2019 年第四季度实现从 PPoW 共识转至 PoS 星系共识,该项目也在把共识系统正式开放给社区,迈出完全去中心化的关键一步。本文通过介绍星系共识的整体架构特点和其运转流程,帮助加密货币投资者、开发者和区块链技术爱好者了解这个全新的 PoS 共识。

从 PoW 到 PoS 之演化趋势

设计共识协议,主要是为了解决分布式系统中两个核心问题:出块者选择(Leader selection)和合法链选择(Chain selection)。

在传统的工作量证明(PoW)共识中,出块者的选择是通过挖矿进行的,借助的是哈希函数的随机性,矿工依赖自身的计算能力参与出块者竞争,这里的公平性体现在任何节点对哈希函数结果的不可预测性,任何节点都没有优势可言,只能通过简单粗暴的穷举运算来解决问题。合法链选择往往采取最长链的规则,也就是让算力最大的分支成为主流。这样「挖矿+最长链规则」的框架设置下可以解决「双花」问题,但是也会导致大量能源浪费,这正是其他共识协议被提出的根本原因之一。

从三大核心项目了解 PoS 共识主流框架

当前主流的权益证明(PoS)协议又是通过怎样的框架设计来解决这一问题的呢?可以通过三种知名的共识协议来介绍目前 PoS 共识的主流框架。

Cardano

Cardano 的 Ouroboros 共识算法是发表在密码学顶级学术会议美密会(Crypto 2017)上的学术论文,也是第一个被工业界采用的可证明安全 PoS 算法。该算法的卓越的贡献在于提出了可证明安全的共识模型框架,并在其中设计了实用的算法模块。

在 Ouroboros 共识算法多个系列版本中,出块者选择上有不同的方式。由最初利用随机数的确定性选择,到采用 VRF 算法的匿名选择,Ouroboros 逐渐将选择的过程隐私化、安全化,而有效链的选择上则一直是最长链规则,也就是「chain based」方式,保证了链的安全性。简单来说,Ouroboros 的整体框架是「VRF selection + Chain based」模式。

Algorand

Algorand 是由图灵奖得主、麻省理工学院教授 Sivio Micali 提出的 PoS 共识协议,其突出贡献在于设计了拜占庭容错(BFT)算法的升级协议「BA*协议」,利用投票的方式解决了区块合法性的选择。

在出块者和验证者的选择上,Algorand 也采用了 VRF 算法,保证了随机性和匿名性,经过 BA*协议的运行,保证每一个高度的区块都是被确认的,即使最终是空区块,也是经过投票认证的。Algorand 的整体框架是「VRF + BA*投票」模式。

Casper

Casper 是以太坊当前研究开发的 PoS 共识协议。秉持着实用性的特点,Casper 采用了「投注式」共识,具体来说,完成保证金质押的验证者可以投注自己相信会被确认的区块,在投注规则的限制下保证了最终胜出区块的唯一性,而胜出的验证人也将得到收益。

Casper 将帮助以太坊由 PoW 转型为 PoS,是大家十分期待的共识协议。简单来说,Casper 的整体框架是「验证人 + 投注」的模式。

PoS 星系共识框架和设计思路是什么?

在了解了以上三种最主流的 PoS 共识协议之后,让我们回归到 Wanchain 提出的 PoS 星系共识,看看这个共识算法的整体框架和设计思路是什么。

星系共识借鉴了 Ouroboros 可证明安全的模型框架,全新设计了更加高效安全的随机数生成算法,并创新性设计「Unique Leader Selection」算法,替代了 VRF 算法,用于出块者选择。

「Unique Leader Selection」算法是万维链理论团队独创的一种用于选择出块人的算法,其 PoS 黄皮书中有专门的介绍。

保证了合法出块者的唯一性,大大降低了自然分叉概率。

简单来说,星系共识的整体框架就是「ULS + Chain based」,在保证安全性的前提下极大地提升了实用性。

谁来构建链上随机数和打包出块?

在星系共识之中,参与节点可以根据任务分工的不同,划分为两个「星群」:「RNP 星群」和「EL 星群」。

这两个星群都是在所有星系共识节点中,按照自身持有权益比例选择出来的。但是承担的任务不同,主要解决共识中的两个关键问题:

(1)RNP 星群是负责构建链上随机数的群体。RNP 星群中的节点通过 DKG1、DKG2、SIGN 三个阶段的工作完成随机数的更新,保证了链上随机数的安全性。正如上面介绍的主流 PoS 框架所说,如何维护一个公平的随机数是保证协议安全的重中之重,RNP 星群正是承担着这一关键性工作,其每一轮产生的随机数将作为星群构建、出块者选择和其他随机源应用的重要种子,维持着共识的健康运转。

(2)EL 星群是负责收集交易、打包出块的群体。EL 星群需要完成两个周期的工作,第一个周期通过 SMA1、SMA2 两个阶段完成秘密信息序列(secret message array)的协商,完成 EL 星群内部秘密数据的共享,第二个周期通过秘密信息序列和链上随机数确定出块权归属,并在自身负责出块的时间段内打包区块并广播,完成链的生长发展。其作用毋庸置疑,是保证共识安全运行的基础。

两类星群如何工作,实现星系共识?

了解了「RNP 星群」和「EL 星群」两类星群的核心任务之后,就可以从一个较高的视角来看看这两类星群如何工作,实现星系共识的运行。

首先简单了解一下两个和时间有关的概念:「slot」和「epoch」。slot 是一个区块的生成时间,即每个 slot 内产生一个新的区块,而 epoch 是由大量连续 slot 构成的时间周期,是协议完整运行的一个循环。

星系共识具体的协议运行流程可以分为四个步骤:

1、构建星系

这是协议运行的准备阶段,在这一阶段,所有想要参与星系共识的节点通过在共识智能合约中质押一定量的 WAN 成为星系节点,质押时会选择锁定时间。锁定时间的长短将影响节点的权益值,锁定时间越长,权益值则相应略高。同时,权益值随着锁定时间的流逝也将呈增长趋势。这一设计很好的模拟了币龄的概念,确保了权益设计的合理性和节点参与的公平性。

经过这一阶段的准备,星系中就出现了大量的节点,这些节点将正式运转星系共识。

2、组建星群

在每次协议运行周期(epoch)的起始,星系中会选择出两大星群,即 RNP 星群和 EL 星群,这两大星群的选择是基于节点持有权益值的比例,利用链上随机数进行的随机选择过程,类似于 follow-the-satoshi。使用 follow-the-stake-ratio,可以保证星系节点参与组建星群的公平性,权益占比越高,被选入星群的概率越大,参与共识进而获得收益的可能性就越大,这也是 PoS 共识的核心思想之一。

3、RNP 星群运转

RNP 星群被选择组建之后,星群中的节点完成 DKG1、DKG2 和 SIGN 三个阶段的工作,在 DKG1 阶段,各节点提出自身对随机数碎片选择的承诺,保证了碎片选择的不可更改性,在 DKG2 阶段,各节点将自身选择的随机数碎片通过门限秘密分享的方式分享给星群中的其他节点,最终在 SIGN 阶段,各节点公布自身收集的随机数碎片数据,完成随机数的生成,更新链上随机数数据。

整个过程中,由于门限秘密分享的特点,保证了只要在线节点数超过门限值,就将顺利完成随机数的更新,确保了随机数生成的可靠性。同时,只要星群中至少一个节点在随机数碎片的选择上是随机的,那么最终随机数结果就是随机的,保证了随机数生成的安全性。

4、EL 星群运转

EL 星群被选择组建后,将参与两个周期(epoch)的工作。在第一个周期中,EL 星群节点参与 SMA1 和 SMA2 两个阶段工作。

在 SMA1 阶段,各节点提出自身秘密信息的承诺数据,保证了秘密信息的不可更改性;在 SMA2 阶段,各节点将自己的秘密信息加密共享给其他节点,完成秘密信息序列(secret message array)的生成。

在第二个周期起始时,EL 星群中的节点会依据 RNP 星群产生的随机数进行排序。这一排序在整个周期中有效,同时依据秘密信息序列执行出块者选择算法,确定整个周期内各时间段(slot)的出块权归属。这一过程是在 EL 星群内部秘密执行的,其他节点无法获知结果,而 EL 星群中节点就依据出块权的归属完成整个周期内新区块的生成。

当新区块被提出时,EL 星群中的节点要添加自身合法性的凭证,这一凭证可被全网验证,确保了链的正常安全发展。

共识节点的另一类划分:两类星体

在星系共识之中,参与节点除了可以根据在共识达成中的任务分工不同,划分为「RNP 星群」和「EL 星群」之外,还可以根据是否可以接受委托,为「恒星节点」和「行星节点」两种「星体」。

在星系共识之中,所有在智能合约中质押了 WAN 的用户都将成为整个星系中的一个节点,而这些节点由于能力的大小被分为两种星体:恒星(star)和行星(planet):

  • 恒星节点是可以接受委托的共识节点,其自身持有一定量的权益,而且其自身权益值将影响其接受委托的权益上限;
  • 行星节点是不可以接受委托的共识节点,其参与共识完全依赖于自身持有的权益值。

虽然两种星体能力大小有所区分,但在参与共识的过程中是相同的,并不做区分。

不过,只有恒星节点可以接受委托,这是因为为了给仅持有少量 WAN 或权益较小的用户提供参与共识的机会,星系共识中设计了完整的委托机制。委托机制的实现是基于三重 ECDSA 委托签名算法,对当前的区块链系统有着天然的兼容性。

通过委托机制,持有少量 WAN 的用户可以将自身权益委托给代理节点(某恒星节点),由代理节点参与共识的运行,同时由于签名消息空间的限制,代理节点只能代为出块,无法进行其他操作,保证了用户权益的安全性。

希望成为恒星节点,一方面需要更多的权益质押,另一方面也取决于节点的信誉程度。

通过以上的介绍,希望读者可以从整体上了解 PoS 星系共识的框架和运行流程。其中更详细的内容,可以在星系共识论文(https://www.wanchain.org/files/Wanchain-Galaxy-Consensus-V1.0.pdf)找到具体的描述。

这是星系共识探索系列文章的开篇。我们会在之后的文章中针对具体问题,一一深入介绍该共识体系中各模块组件的设计思想和运转流程,为大家逐步呈现星系共识系统的完整蓝图。

声明:本文为入驻“火星号”作者作品,不代表火星财经官方立场。转载请注明出处、作者和本文链接
提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。
语音技术由科大讯飞提供
推广
最近更新
本文来源:
原文标题:
涨跌幅
排名名称价格(USD)涨幅
您可能感兴趣的内容
暂无内容

评论0