上一篇,我们讨论了POS算法在实际应用当中遇到的一些问题。下面,我们来看一看POS算法的一些解决方案:
>> Ouroboros:一个可证明安全的POS区块链协议,Ouroboros加入了权益证明算法,定义了节点对账本状态达到共识的方法,它是第一个宣称进行严格安全分析的POS类型区块链协议。
Ouroboros在一定条件下的实践验证中,解决了各种攻击问题,包括双花攻击、交易拒绝攻击、51%攻击、无利害关系攻击、去同步攻击以及其他各种攻击。某些前提下,它被科学证明是安全的。它在亚马逊云中运行了基准测试,这些测试展现了Ouroboros的权益证明区块链协议在性能方面的优势。
不过经常回头验证的模式也有问题。多次回头,一方面影响TPS,一方面会增加更多的通信,另一方面还很难验证回头stake的是否都为正确。
>> DPOS,相比于普通的POS,但是多了一个选举机制,类似会议选举制度,不仅币数很关键,声望更加关键,从而实现速度与安全性的提高。DPoS希望通过投票来筛选信任节点,解决POS的安全隐患,类似的还有POP和POC共识机制。
>> POP (Proof of Participation),基于账户参与度的算法。POP 将 POI 和DPOS 的思想结合,既能确保对设备的公平性,又拥有社区的共识,同时减少了算力的浪费。让记账这件事情更具有经济效率, 从而支撑起更多大规模的协作体系。
>> POC (Proof of Credit),信用共识机制。“POC”继承了“POW”通过计算来实现账本安全性,但同时提出了非常有创新的一点,将“利用用户的信用值”作为挖矿的准入门槛,这样就会积累有效的节点为网络加密计算。同样“POC”也相对“POW”在社区发展中公平了很多,在参与挖矿的时候,是根据自己的信用值来判断是不是有共识(挖矿)资格。在达到共识的信用值后,为了防止节点的违规行为还必须提交一定的保证金额(押注),才能参与共识。共识网络中加入了简单的智能合约,作为共识的契约来约束每个节点参与共识。如果有违规会付出很大的惩罚。这也保证了节点会正常参与共识,用来提高网络的安全性。
但目前,没有一种POS是被证明和POW一样安全的,在设计上尽可能的通过制定出块规则与奖励惩罚机制来解决nothing at stake等问题,但本质还是不安全的。比较可行的方法是进行一个折中,即POW+POS混合共识机制。
例如第一个使用POS的项目:peercoin。peercoin是第一个POS算法,于2012年提出,PPCoin的最大创新是其采矿方式混合了POW+POS方式,而POW部分加入币龄的概念,越早挖优势越大,相比与纯POS或者纯POW,达到节能和安全的平衡。
类似的还有CFFG,POW+POS混合模型,由Vitalik Buterin带领研究Casper the Friendly Finality Gadget(CFFG),需要进行两周期投票,并且需要质押token。第一次是POW,超过2/3即可验证成功。第二次是POS,超过2/3即可验证成功,然后确认区块,验证者即可获得收益。验证者是被激励者集合在权威链上的。因为如果他们持续在不同的链上进行投票将会受到惩罚。验证者不仅仅会为双重投票而受罚,也要为在不正确的链上进行投票而受到惩罚。
Tendermin,2014年,由Jae Kwon带领研究,BFT与POS混合机制,假设少于1/3的验证者是拜占庭,Tendermint保证安全永远不会被破坏——也就是,验证者(2/3以上)永远不会在同一个高度提交冲突的区块。因此,基于Temdermint的区块链永远不会分叉。Tendermint的设计决策偏向于安全性和不可改变性。
但这样的混合共识机制,虽然降低了能耗,但依然没有本质上解决POW“浪费不必要能耗”的问题。为了设计可持续发展的共识算法,需要同时做到以下两点:
1. 找到一个低能耗、有实际效用的算法
2. 将此实际效用作为PoS的防御机制
为了做到以上两点,势必需要?+POS这样的混合共识机制。至于?是什么,就取决于各个公链的设计了。如果公有链除了账本之外,还有其他的功能,则这个功能就是公式中的“?”。例如Genaro公链可以解决存储问题,于是有了SPOR + POS混合共识机制。
这也是Genaro的SPoR + PoS混合共识机制的设计初衷。
先简单介绍一下什么是SPOR:可以被看作是一个微型的POW。
>> SPOR全称为sentinel proof of retrievability,是一种数据可检索行证明。数据可检索证明的意思是:当用户不取回文件的时候,依然可以相信文件完好无损的保存在系统中。在Genaro系统中每天都会对存储节点进行“challenge”,存储节点通过运行SPOR算法表明数据是可被取回的。
首先这种证明的难度不会随着时间的推移而增加。证明一个文件可取回,今天的计算量和明年是几乎一致的。其次这是在实际生活中做有用的计算,即便是云存储本身也需要这样的证明。SPOR是一种在存储领域被验证为可靠的算法,将其引入区块链系统并不会带来额外的隐患。
Genaro并不是用SPOR去代替POW, 实际上,Genaro的混合共识机制是以POS为主体,而SPOR主要用来要求节点贡献算力、存储空间等资源来加强POS共识的“防守”。此混合共识机制的大致过程为:
step1. 节点进行GNX押注,分享存储空间,申请加入委员会
step2. 报名者进行实力排名(根据epoch中heft重量与GNX押注等因素)确定委员会名单
step3. 由委员会点按排名顺序依次连续出块
step4. 出块节点获得奖励
这个流程相当于通过SPOR来筛选可信节点,即要求共识节点付出一定代价,也即something at stake,于是nothing at stake不攻即破。其中,选取部分节点以及允许信任节点连续出块是提升TPS的方法,详情请参考之后的文章《公有链七大超级难题之提升TPS的必要性与方法》
对于Long range attack而言,Genaro的混合共识机制本质是将存储网络与公有链进行深度绑定。可以简单这样理解:公有链中的交易分为两部分:
1.普通交易
2. 存储行为引发的交易(例如上传下载分享等)
而第2类交易会将文件的sentinel相关信息存入区块中。那么,如果节点想要实施Long range attack,回到最初阶段的区块链状态,则无法复原存储网络,就无法将区块推进到当前高度,网络会判断你不是最长链,直接进行惩罚。
此外,这样的混合共识机制还可以防止分叉。如果攻击者想要故意分叉(就像ETC与ETH),即便可以拉拢部分矿工在分叉链上继续出块,但这条链将会丧失用户数据的完整性,成为了一条毫无价值的“伪链”,用户不会使用,矿工就没有了消费者,自然不会去挖。
这样,通过引入“存储”这样更多的一个维度,打造出的SPOR + POS混合共识机制,变成为了可持续共识机制的一个例子。这也说明,可持续共识机制要求公链本身有记账之外的更多实际功能。
最后,共识算法的可持续发展还有一个必要条件:任意节点可以加入并作出贡献,这对共识算法的选取有了更高的要求,请期待系列文章下篇:《公有链七大超级难题之建立点对点的分享社区》。
公有链七大超级难题,是公有链绕不开的关键。七大挑战环环相扣,需要一个从宏观到微观的深度认知,不仅仅涉及到技术领域,同时,经济、营销、市场、社会等领域都需要深入考虑,Genaro Network点对点存储和公有链的通证经济的体系设计,不仅是未知领域的探索,更是一场艺术之旅。大家请继续关注系列文章《公有链七大超级难题》和我们一起踏上未来旅程,迎接区块链的挑战与变革。
本文作者:Larry
本文技术校对:Waylon
本文内容校对/编辑/学术整理:Xuan, Sophia,Iris