风险提示:请理性看待区块链,树立正确的货币观念和投资理念,不要盲目跟风投资,本站内容不构成投资建议,请谨慎对待。 免责声明:本站所发布文章仅代表个人观点,与CoinVoice官方立场无关

深度研讨之一 | 星系共识:拥有完整委托机制的实用 PoS 共识协议

加密谷Live
2019年05月31日

在当前众多区块链系统百家争鸣的形势下,安全高效的共识协议已经成为大家主要的研究方向之一,PoS、PoA、PoI 等众多共识模型被相继提出,引发了业界关注。

万维链认为,“权益”才是左右链上治理和发展的根本因素,因此费心打造了 PoS 星系共识(Galaxy Consensus)协议,在众多共识模型中脱颖而出。

星系共识是万维链理论研发团队新近提出的高效、安全的实用型 PoS 共识协议,旨在替代此前的 PPoW (permission proof-of-work),在降低能耗的同时,也将其共识系统正式开放给广大社区,迈出完全去中心化的关键一步。在群星璀璨的共识节点运转下,打造专属的共识星系。

本文由 加密谷 独家发布,系列文章将陆续刊出,敬请期待。

整体框架设计

对于共识协议的设计来讲,主要解决的就是两个核心问题:出块者选择(Leader selection)和合法链选择(Chain selection)。

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

那么,当前主流的 PoS 协议又是通过怎样的框架设计来解决这一问题的呢?

经过长期的调研学习,我们以三种知名的共识协议来简单介绍 PoS 共识的主流框架:

  • Cardano 的 Ouroboros 是发表在美密会上的顶尖学术论文,也是第一个被工业界采用的可证明安全性的 PoS 算法,其卓越的贡献就在于提出了可证明安全的共识模型框架,并在其中设计了实用的算法模块。在其多个系列版本中,出块者选择上也有不同的方式,由最初利用随机数的确定性选择到采用 VRF 算法的匿名选择,Ouroboros 逐渐将选择的过程隐私化安全化,而有效链的选择上一直是最长链规则,也就是 chain based 方式,保证了链的安全性。所以 Ouroboros 的整体框架就是 VRF selection + Chain based 模式。

  • Algorand 是由图灵奖得主、MIT 教授 Sivio Micali 提出的 PoS 共识协议,其突出贡献在于设计了 BFT 的升级协议 BA协议,利用投票的方式解决了区块合法性的选择。在出块者和验证者的选择上,Algorand 也采用了 VRF 算法,保证了随机性和匿名性。经过 BA协议的运行,保证每一个高度的区块都是被确认的,即使最终是空区块,也是经过投票认证的。所以 Algorand 的整体框架就是 VRF + BA*投票模式。

  • Casper 是以太坊当前研究开发的 PoS 共识协议,秉持实用性原则,Casper 采用了投注式共识,完成保证金质押的验证者可以投注自己相信会被确认的区块,在投注规则的限制下保证了最终胜出区块的唯一性,而胜出的验证人也将得到收益。Casper 将帮助以太坊由 PoW 转型为 PoS,也是大家十分期待的共识协议。所以 Casper 的整体框架就是验证人 + 投注的模式。

简单介绍了几种主流 PoS 共识协议之后,我们回归到星系共识。经过深入的思考研究,星系共识坚持学院派的发展路线,借鉴了 Ouroboros 可证明安全的模型框架,全新设计更加高效安全的随机数生成算法,并创新性设计 Unique
Leader Selection 算法替代 VRF 算法用于出块者选择,保证了合法出块者的唯一性,大大降低了自然分叉概率。所以,星系共识的整体框架就是 ULS +
Chain based,在保证安全性的前提下极大地提升了实用性。

** 两种星体**

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

为区分两种星体,不得不提星系共识中的委托机制。为了给仅持有少量 WAN 或权益较小的用户提供参与共识的机会,在星系共识中我们设计了完整的委托机制。

委托机制的实现基于三重 ECDSA 委托签名算法,对当前的区块链系统有着天然的兼容性。

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

了解了委托机制,就可以介绍两种星体的不同。在星系共识中,恒星节点是可以接受委托的共识节点,其自身持有一定量的权益,而且其自身权益值将影响其接受委托的权益上限;行星节点是不可以接受委托的共识节点,其参与共识完全依赖于自身持有的权益值。虽然两种星体能力大小有所区分,但在参与共识的过程中是相同的,并不做区分。如何成为恒星节点,一方面需要更多的权益质押,另一方面也取决于节点的信誉程度,最终方法后续将有详细说明。

** 两类星群**

星系共识之中,参与节点由于任务分工被划分为两个星群:RNP 星群和 EL 星群,这两个星群主要解决了共识中的两个关键问题。

RNP 星群是在所有星系共识节点中按照自身持有权益比例选择出来的,负责构建链上随机数的群体。RNP 星群中的节点通过 DKG1、DKG2、SIGN 三个阶段的工作完成随机数的更新,保证了链上随机数的安全性。

正如上面介绍的主流 PoS 框架所说,如何维护一个公平的随机数是保证协议安全的重中之重,RNP 星群正是承担着这一关键性工作,其每一轮产生的随机数将作为星群构建、出块者选择和其他随机源应用的重要种子,维持着共识的健康运转。

EL 星群是在所有星系共识节点中按照自身持有权益比例选择出来的,负责收集交易、打包出块的群体。EL 星群需要完成两个周期的工作,第一个周期通过 SMA1、SMA2 两个阶段完成秘密信息序列(secret
message
array)的协商,完成 EL 星群内部秘密数据的共享;第二个周期通过秘密信息序列和链上随机数确定出块权归属,并在自身负责出块的时间段内打包区块并广播,完成链的生长发展。它是保证共识安全运行的基础。

** 运行流程**

介绍了两种星体和两类星群之后,我们从一个较高的视角整体的描述星系共识的运行流程,给大家一个直观的展现。

首先我们介绍两个时间上的概念:slot 和 epoch。相信了解过 Ouroboros 的读者对这两个概念应该并不陌生,slot 是一个区块的生成时间,即每个 slot 内产生一个新的区块;而 epoch 是由大量连续 slot 构成的时间周期,是协议完整运行的一个循环。下面分四个步骤讲述协议运行流程:

  • 构建星系

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

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

  • 组建星群

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

  • RNP 星群运转

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

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

  • EL 星群运转

EL 星群被选择组建后,将参与两个周期(epoch)的工作。在第一个周期中,EL 星群节点参与 SMA1 和 SMA2 两个阶段工作。在 SMA1 阶段,各节点提出自身秘密信息的承诺数据,保证了秘密信息的不可更改性;在 SMA2 阶段,各节点将自己的秘密信息加密共享给其他节点,完成秘密信息序列(secret
message array)的生成。

在第二个周期起始时,EL 星群中的节点会依据 RNP 星群产生的随机数进行排序。这一排序在整个周期中有效,同时依据秘密信息序列执行出块者选择算法,确定整个周期内各时间段(slot)的出块权归属。这一过程是在 EL 星群内部秘密执行的,其他节点无法获知结果。而 EL 星群中节点就依据出块权的归属完成整个周期内新区块的生成。当新区块被提出时,EL 星群中的节点要添加自身合法性的凭证,这一凭证可被全网验证,确保了链的正常安全发展。

以上简单介绍了星系共识的整体框架和运行流程,详细内容在星系共识论文中有着具体描述。

在后续的星系共识探索中,我们会再深入介绍其中各模块组件的设计思想和运转流程,为大家逐步呈现星系共识系统的完整蓝图,敬请期待。

万维链理论研究团队 作者

** Sonny Sun ** 编辑**

   Roy    **排版**

内容仅供参考 不作为投资建议 风险自担

版权所有 未经允许 严禁转载


声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。

评论0条

加密谷Live

简介:分享区块链领域专业、前沿、有趣的内容

专栏

更多>>