Skip to content

Latest commit

 

History

History
139 lines (65 loc) · 19.1 KB

《读懂区块链PoS共识》第二章 PoS发展史.md

File metadata and controls

139 lines (65 loc) · 19.1 KB

《读懂区块链PoS共识》第二章 PoS发展史

1. PoW+PoS

一个名为QuantumMechanic的人,2011年7月11日在Bitcointalk论坛首次提出的Proof of Stake,当时还没有PoS的简称,是对Proof of Work提出来的。文章预见性的提出了很多现在仍在使用的方案,诸如由持币量代替算力权重,委托权益,奖励分配等等,还有一些词汇像Delegate、Vote、Voting Power等,在2018年的今天我们仍然能看得到。

那时候,人们对于PoS的提出都感到非常的兴奋,这种兴奋一直持续到今天,很多后起的项目都开始研究PoS算法的区块链,甚至很多已有的项目都开始考虑转型PoS,以太坊就是最典型的例子。从提出到落地,大概经历了1年左右的发展,2012年8月19日,首个基于PoS共识的区块链项目点点币(Peercoin)诞生,Token代号PPC。点点币的出现真正代表了PoS从纸面走向了工程实现的里程碑。

点点币是一种类似BTC的电子货币,SunnyKing(点点币创始人)在最初设计的时候,可能因为时间过短,没有想清楚如何解决PoS机制下出现的问题,也可能是PoW共识在人们的思维方式里面占据着主要地位,点点币的共识实际上是基于PoW+PoS的混合共识,而不是纯PoS(Pure PoS)的共识,混合共识里面保留继承了大量PoW的设计,PoS算法在其中所起到的作用实际上并没有想象着那么大。但毕竟是第一个将PoS共识工程化到区块链中的项目,在点点币的白皮书里面,我们可以看到很多新的概念,币龄(Coinage),随机数参数(prev_blocks_data),PoS的checkpoint等等。

混合PoW+PoS共识是PoW过渡到PoS的一种过渡阶段。在2009~2014年期间,比特币的PoW还是具有较高的权威性,大部分人对PoW的印象里面,除了浪费资源和效率稍低一点之外,并没有太大的致命性问题,而且很多基于比特币的二代PoW,像莱特币,仅仅因为缩小了区块时间而备受推崇。可以说点点币的设计还是站在了比特币PoW的肩膀上的,并继承了很多好的策略,像激励措施,分叉保护,共识实现,分发策略等等。但是由于PoS共识的实践过程过短,PoS在点点币的实现中以探索的成分居多,所以说这种混合共识其实算是一种过渡方式。

2. 纯PoS

PoS在不断发展,继点点币横空出世之后,纯PoS共识成为了人们重点的研究方向。在点点币发布后一年左右的时间,2013年9月28日,一个账号名为BCNext的人在Bitcointalk上宣布启动Nxt项目的众筹(那时叫众筹Fundraise,还不叫ICO)。

Nxt是一个100%PoS的项目,没有PoW共识同时存在。Nxt的亮点在于没有和其他的山寨币(altcoin)一样,简单复制比特币代码,然后改变哈希机理,缩短区块之间的时间、或是改变启动难度,而是基于自己全新编写的算法的区块链。强调100%的PoS挖矿,没有预挖。PoS里面要求的股权(Stake)也完全由捐赠来决定总量和分配,用捐赠的方式把PoW的分发直接分配了。

众筹持续了21天,有73个用户参加,总共捐赠了21个BTC,一起瓜分10个亿Nxt,2013年11月24日,Nxt发布主网,预示着首个100%基于PoS共识的创世区块在Nxt上诞生。

Nxt的发展并不顺利,论坛对Nxt记录历史停留在了2014年5月12。Nxt的没落归结于太过于中心化的开发,代码质量和速度一直跟不上,只有3个开发者并不能完成众多投资者的预期,虽然主网功能的开发顺序有社区投票,但是Nxt还是慢慢的走向了众多投资者的诟病,市值在2014年6月5日达到8千万美元市值的高峰后,留下一地鸡毛。但无论怎么说,和当初众筹的21个BTC比较起来,简直是一个天上一个地下,对比同时期起来项目,真可谓是老来迎新春。再看同时期的点点币和黑币,它们可就没有那么好过了。

黑币(Blackcoin),最早于2014年2月24号开始公布计划,宣称是基于纯PoS搭建,但实际也是PoW+PoS混合共识。那为什么在纯PoS这里说混合共识,是因为黑币上运行的PoW只持续到10000个区块高度,按照1分钟一个块,挖矿时间大概是一个星期左右(6.9天),随后整个区块的验证将不再接受PoW的挖矿,转而形成PoS的挖矿,从这个角度,加上时间顺序,我把黑币也归结到了纯PoS的阵营中。

PoW挖矿总量最大是10,000,000,进入PoS之后每年通胀1%(和Nxt一样,没有最大限制)。纯PoS有更短的区块间隔,更合理的铸币方式,从而吸引了很多早期的人进来挖矿,甚至有很多专门做矿池的开始在论坛收币做验证人(Validator)。那时候,PoS这种新型共识的确吸引了很多人的眼球,不需要电脑,不需要GPU,只要持币就可以获得奖励。

但黑币的好景也没有持续多长时间,在2014年4月14号,短短不到2个月时间,就将近2千万美元的市值,后一路下挫,几经周折,还是没能逃过摸底的厄运。而因为市值的下挫,1%的增发奖励对于PoS Staking的人来说,也显得杯水车薪了。

虽然,2016年新的一批开发者又重启了对黑币的开发,并花了重金请来正规军,公司化,全面宣传,但是,黑币以及它的PoS也没再回到主流世界的视野中来。还记得黑币经典的宣传语,简直如教科书般的存在:第一个基于纯PoS币,公平启动,没有预挖,没有ICO,以社区为中心,重新回归,比以往更好,比以前更强。

The first fair-launch pure Proof of Stake coin. No premine. No ICO. Community focused.

Back again, better than ever, stronger than before.

2014年7月18日,一个和黑币共识类似的币,叫影子币(Shadowcoin),是一种基于聊天匿名的应用币,也基于PoW+PoS混合共识,PoW只挖31000个块,随后进入PoS,但是和黑币不一样的是,影子币看到了激励的不足,它提高了每年的通胀率,把黑币的每年1%提到了每年的2%。但进入2015年后,应用币的价值远远还看不到,加上熊市到来,影子币很快就消失在人们的视野中了。

我总结了整个POS的历史,发现很多基于PoS的项目,基本都出现在20122014年,那时候加密货币市场处于上涨周期,带富了一批项目,一批人,很多人虽然都为项目的探索买了单,但是总体上来说在那段时间周期,大家在纸面上都是很好看的。到了2015年2016年,币圈进入了大熊市,很多项目和开发者就进入了冬眠过冬阶段,也很少有项目再出现吆喝捐赠,IPO或者ICO了,PoS的研究也在市场上消失了一段时间。

排除市场大周期的原因,我们归结那段时间PoS机制币种失败的原因,点点币,Nxt,黑币,影子币都是PoS很早期的探索项目,技术上并未完全考虑全面(在第九章节中我们会介绍PoS的技术缺陷),另外,对于PoS中Staking的激励太小,无法支持验证人的成本,还有就是去中心化的运行模式在PoS上的应用并不想PoW上那么完善。

年1%~2%的增发比例无法让矿工维持,特别特别是在熊市阶段。这种初创的PoS增发模式,在很多人开来还是足够新鲜的,在初始可能爆发的币价上来看,增发的初期利益只是一个非常重要的诱因罢了,但当投资者面对币价无法带来预期的收益之后,低激励变成了一种鸡肋。矿工看不到收益,自然无法参与网络验证,那么网络要不发生堵塞,要不就是慢性死亡,潜在的攻击成本越来越低。

另外,多数项目的启动都是几个开发者甚至1个开发者发起的项目,Bitcointalk发起一个话题,大概描述要做什么,100%PoS,1%奖励......然后就没有然后了,初次上线后,开发者像中本聪一样隐匿,这样的结果,带来的不是像比特币一样的繁荣,而是死亡。

至此,这是PoS的发展第二个阶段。

3. 委托PoS(DPoS)

委托PoS,也称作为Delegate Proof of Stake,DPoS,其雏形诞生在2013年12月8日,Daniel Larimer在bitsharetalk首次谈及用投票选择出块人的方式,代替PoS中可能出现的选举随机数被操纵的问题,描述是这样的:

我最近有一个可以用的点子,但是我还不能完全确定是否可行。为何不让持币人选出签名区块的验证人?持币人用币天(CDD coin-day-destroyed)投票给签名人,当签名人签名的时候会消耗投票人的币龄。没有人会被允许在100个区块里面签超过1个的区块数。这个点子可能会有潜在的问题,但是我会把它加入我的点子库。

I recently came up with another system that could work, though I am not fully sold on it.

What if the share holders elected people who would sign blocks? You vote for the signers with CDD. When they sign they spend the CDD they accumulated from people voting for them. No one would be allowed to sign more than 1 in 100 blocks.

This plan has many potential problems, but I thought I would add it to the idea pool.

这就是委托(Delegate)PoS的雏形,这个系统被成功的运用到了比特股(Bitshares)上,比特股社区对DPoS的宣传语是:DPoS不仅解决了PoW的浪费资源问题,同时还解决了点点币和未来币的PoS问题。在当时看来,DPoS的确是一种解决方案。虽然比特股的发展也非一番风顺,Dan最终还被踢出比特股的社区,但不可否认的是,委托权益DPoS共识在未来一段时间里,为PoS的进一步发展起到了奠基作用。

比特股的DPoS基于石墨烯(Graphene)平台搭建,这套石墨烯技术后来发展成了DPoS的专用底层,基于石墨烯开发的区块链项目可以直接使用DPoS的共识机制,免去了重复开发的苦恼,像Steemit,EOS,Lisk等都是基于石墨烯平台搭建的DPoS公链。直到现在的2018年,我们仍然可以看到在比特股交易所(Bitshares DEX)里面,很多网关资产都是基于石墨烯的DPoS,基于PoS共识的项目在数量上达到了一个数量级。

的确,DPoS有比较多的优点。DPoS解决了权益使用不及时的问题,是一种让专业人做专业事情的基本原则,可以理解为是国家治理里面的代议制,或者说是人大代表制度,乡里乡镇的居民通过选举选出乡长,然后是镇长,县长,省长等等,这种制度最大的好处就是解决了验证人过多导致的效率低下问题,当然,这种制度也有很明显的缺点,就是中心化诟病。

比特股的初始节点验证人大概人数在100人左右,后逐渐减少到30多(因为无利可图),EOS的节点验证人固定在21个人。在去中心化思想被及其推崇的区块链世界里,倾向中心化的项目是容易为人诟病的,很多开发者并不会认同这种委托权益的做法。在2014年开始起源的另外一个项目——Tezos,把去中心化和委托权益更好的结合到了一起。

Tezos的PoS,开发团队更喜欢称之为LPoS(Liquid Proof of Stake),但称之为DPoS也不为过,因为委托权益在Tezos的PoS里是极其重要的一环。为了保证系统安全,PoS希望提高系统代币的Staking量,这样攻击者发动51%攻击的代价就会变得很大。

Tezos解决了初期激励不够大和用户Staking意愿比较低的问题,用年5.5%的增发来给Staking用户作为奖励,同时,用户可以将自己的权益委托给验证人(Tezos中叫面包师,baker),让验证人帮助委托人行使权益。验证人可以收取用户一点的手续费,作为服务费用,这样验证人节点除了自己Staking的奖励之后,还能得到接受委托的奖励,这种激励对于未来币,黑币的1%~2%的激励,高出了很多。

另外,Tezos的委托和EOS的委托有很多方面不一样,原则上,每一位委托人都可以选择任意候选人进行投票,但由于Tezos和EOS的投票激励不同,导致了不同的结果。Tezos上,委托人可以选中任意一个验证人,投票并获得收益,而EOS的委托选中的验证人只有当选不当选的结果,并没有激励。

EOS上的当选者有责任和义务代表投票人意志,在大部分节点候选人都诚实的情况下,委托人并不能很好的判断出来区别,所以投票动机也变得不一样了。总体上来说,两种DPoS都是根据持币的权重占比给与分配一定的权益,此权益是否委托在于持币人的初始动机,这就是DPoS的精髓了。

Tezos于2018年6月30日上线了主网,目前主网节点数量400多个,验证人100多个。EOS于2018年6月15号启动了主网,主网主节点数量21个,备选节点100个。

4. BFT+PoS

拜占庭容错(Byzantine Fault Tolerance,简称BFT )和PoS结合最早是在2014年由Tendermint团队,Jae Kwon提出的。而Tendermint前身,则是基于1988年在麻省理工学院开发的经过验证的BFT算法,Tendermint进行了优化和改良。但是Tendermint出来之后一直没有被运营到项目当中,Jae Kwon后来创建了Cosmos项目,可以说是基于Tendermin的第一个项目。

按照主网上线时间排序,BFT+PoS或者是类BFT+PoS的项目应用最早开始于2018年,先是EOS带着BFT+DPoS的上线,然后,Tezos的类BFT+PoS的算法在EOS后一个月也上线了。而基于Tendermint的第一个项目Cosmos,则会在2019年Q1上线主网,另外,我现在知道的还有Ethereum,Algorand都会采用了BFT+PoS的共识算法,具体的上线时间未知。虽然说Tendermint先出来,Cosmos却别别人占据了先机,但是不得不说的是后来者基本都参考了Tendermint的设计,所以Tendermint对BFT在项目中的应用还是起到了很好的带头作用的。2018年~2019年,会是BFT上线大量项目的共识,百花齐放。

BFT容错能给分布式网络带来了可观的抗风险能力,还能带来了较快的区块确认速度,解决区块链分叉问题,并带来一定程度的交易的最终确定性,间接的提高了性能。如果说纯PoS比起纯PoW,仅仅是解决了能源消耗,那么BFT+PoS比起纯PoS,那就是除了解决能源消耗外,还解决了PoW的交易确认,交易分叉,性能较低等问题,带来的飞跃是不可忽视的,特别在安全这块,我们来看Tendermint:

Tendermint中很重要的一部分就是它的共识引擎部分(Tendermint Core),该共识引擎将BFT和PoS共识结合到了一起,持币人通过stake获得验证区块机会,签名完成后,新区块的验证通过3轮提交,2轮2/3的投票过程,来达成最终共识。由于投票是在区块广播后就开始的,那么当它完成了验证之后,新区块即获得了及时确定性(Instant Finality),这和比特币交易需要6个区块确认不一样,Tendermint大大缩短了验证时间,使得交易能及时生效,提前避免了交易被回滚,双花等问题的出现。

除了交易确认这块,同时拜占庭容错最大能容忍系统中小于1/3的验证权重宕机,能很好的保证系统运行,可以简单理解为,只要系统中大部分人是诚实的,不管其他验证人怎么做,系统还能运行,不会出现停止,宕机的情况。

基于Tendermint Core引擎打造的第一个项目叫Cosmos,Cosmos是一个以提供跨链功能为目的的公有链项目。Cosmos hub是这个项目最重要的部分,也是作为跨链总协调方,如果跨链生态繁荣,多链接入到Cosmos中心,那么这个中心的安全性可见多么的重要。而提到Cosmos,就不得不提到另外一个跨链项目波卡(Polkadot),波卡同样是基于BFT的PoS项目,由以太坊黄皮书撰写人Gavin Wood带领,云集众多技术牛人,团队阵容可谓强大。只不过,在作者写系列文章时,波卡的GRANDPA共识还在不断改进当中,具体需要等到对于波卡临近上线的时候才能具体分析了。

目前,已经在运行的Tezos,情况良好,只有一次因为Slash判断出现问题,导致整个网络暂停了出块(Halt),原因共识机制有部分关系,但是通过手动注入Nonce后解决了问题。除此之外,Tezos运行了小半年,除了受到了低手续费的垃圾交易攻击外,共识部分并没有出现过大的问题。

2014年BFT开始引入到区块链分布式网络,后配合PoS开始开始流行起来,BFT+PoS的混合共识已经受到了很多项目的重视,不仅因为BFT这种算法的安全性已经研究了将近30年时间,而且因为这种算法提高系统的抗风险能力和性能,所以我预计未来一段时间内,这种共识会流行很长一段时间。

5. PoS新时代

PoS的研究脚步还在不断前进,安全、性能和去中心化一直都是PoS所追求的方向。2018年后开始发起的一些新起的项目,我看到了它们身上或多或少都有前人的影子,基于此,要不优化了性能,要不优化了安全性,要不极致的优化不可能的铁三角。Algorand和Thunderalla是2018后开始走入我的视野的新项目,这两个项目我认为可以在一定程度上代表了新的PoS时代。如果把PoS的发展分成4年一个轮回的话,恰巧,这两个项目都会在2022左右开始成型。

Algorand和Thunderalla都站在了巨人的肩膀上。由图灵奖得主、MIT教授Sivio Micali带领研究的Algorand,专注于新的PoS+BFT共识算法(简称BA,Byzantine Agreement),旨在让验证人的选举更加随机,不可预测,以更好的保证系统的安全为研究方向;Thunderella,由两位康奈尔大学计算机教授Rafael Pass 和 Elaine Shi发起,旨在解决PoS当中的性能扩展问题,目前理论性能最高可以达到1000~2000Tps。

相信2019年会是PoS丰收的一年,众多2014年2018年间做的研究将在2019年上线验证,预示PoS2.0时代的开启。我觉得我很幸运能经历PoS两个时代(20112014,2015~2019)从PoW+PoW,到纯PoS,再到DPoS,最后来到BFT+PoS新的混合共识里面。我相信,这远远不是终点,而是新时代的起点。

Wetez公众号会根据以上内容做精简,输出价值内容,请关注Wetez微信公众号wetez_wallet

历史文章

1. 开源《读懂区块链PoS共识》

2.第一章 PoS整体介绍

所有文章在Github的地址:

https://github.com/wetez-project/pos-book

欢迎关注微信公众号: 区块链卡咩

欢迎关注本人微博: 比特币卡咩

希望交流的朋友可以添加我的个人微信:kamiesheep

欢迎打赏

BTC

3BiLWkLYJ6auPqkMiB64PBhasmuCVaPekG

ETH

0x7bfFCd7D2C17D534EDf4d1535c8c44324eb13A36