建议和反馈

请填写你的反馈内容

从POW到POS看区块链共识的发展

2020-01-14 ·981次阅读 ·读完需要14分钟

共识机制是区块链的灵魂。就像一个国家的法律,维系着区块链世界的正常运作。区块链最早的共识是工作量证明(POW),比特币和以太坊都是采用的工作量证明。现在流行的一个趋势是权益证明(POS)。以太坊2.0就会采用 POS 共识,还有最新的公链如 Tezos,Polkadot,Algorand 等等。权益证明还包括委托权益证明(DPOS),代表公链有EOS。大多其他公链采用的共识都是从 POW 或者 POS 中衍生出来。我们暂时把联盟链共识不放到讨论范畴中,从 POW 到 POS,来研究一下区块链共识的发展。

工作量证明

区块链共识的目的是决定出块权。工作量证明的基本思想就是用算力来决定出块权。如果你能第一个解出 POW 的计算难题,你就可以出块。在每一个时间点,大家都在算题,然后在差不多的时间里,大家把题算出来,再把计算结果发布出去。这其实就是一个投票的过程。发布的块就是投的票。最后被选中的票,就是来自于那个最快算出结果的矿机。至于没有发布块的节点,相当于弃权了。工作量证明的一个最大优点,就是所投的票和投票权是绑定的。而且一旦投票成功以后,即使是投票者本人也修改不了投票的内容。因为一般在出块前,节点就已经打包好一个块,然后才对这个块做工作量证明,做完后马上投出去。这个时候打包的块已经没有办法修改了。

矿机跑一天可以投出很多票,但是不可以把所有的算力集中到一个块上;另一方面,如果想要回滚掉自己出的块,也必须付出和回滚别人的块时所需的同等的算力。这是不可能的,所以 POW 共识是非常安全的。

基于POW机制去做共识算法的最主要缺点就是延迟比较高,因为我们把交易打包到区块以后,还要完成一个工作量证明,这个区块才能称为候选区块。工作量证明的时间还不能设得特别短,否则容易分叉。于是,至少从打包好区块到做完区块的工作量证明这一段时间内,交易是能被确认的。

工作量证明的时间为什么不能设置太短?因为在网络条件一定的情况下,广播速度是有限制的。如果出块速度设置得比广播速度快,使得节点在收到别人新出的块之前,自己就挖到了,这样就会出现分叉。如果这个差距比较大的话,分叉就会特别多。分叉多会降低安全性。我们说对比特币的攻击需要51%的算力。这个前提是大家都集中在同一条链上。好人有49%,坏人要有51%就能攻击。但如果真的出现频繁分叉的情况,比如说我在分叉A上有30%的算力,在分叉B上有40%的算力。这个时候坏人想把分叉B给回滚改到分叉A,只需要11%算力就可以。只要比全世界的诚实的算力最多的两个分叉之间的差稍微多一点,攻击者就可以让最长链在这两个上面分支上跳来跳去。大大降低安全性。

POW 机制另一个被人诟病的点就是能耗特别高,不环保。因为哈希运算耗电。所以,要想让区块链支持大规模的商用,POW 需要改变。所以,就有了 POS。

权益证明

权益证明基本的思想是:把持有的币做质押,来获取记账权和投票权。投票权和持币的数量是成正比的,一币一票。钱越多,投票的权力就越大。

跟 POW 不知道有多少矿机参与挖矿不同,POS 协议必须知道所有共识参与者的数量和它们的持币量,然后去分配打包权和投票权。另外在 POW 里面,打包权和投票权是一起的,但是在 POS 里,这两者是可以分开的。分配完打包权以后,拿到打包权的人就有资格出一个候选区块。这个区块里面包含要处理的交易,并且有他自己的签名。候选区块并不意味着就会被马上加入共识,在广播候选区块以后还需要由那些有投票权的人去投票。如果能得到多数票的支持,候选区块就会最终被加入共识,变成一个有效的区块。当然投票的过程我们可以用很多方式执行,比较常见的就是用少数服从多数的共识算法。因为现在我们知道一共有多少人有资格投票、一共有多少票,所以用这个共识算法我们很容易算出来多数,比如超过1/2或者2/3。

在去中心化机制中,我们需要选举谁负责打包,谁负责投票。有时候为了效率,大家会先选出一个比较小的委员会,然后由他们负责投票。这样的委员会通常是随机选取的,而且为了公平性还要经常轮换。或者还可以用代理权益证明的 DPOS 机制,选取相对固定的委员会负责打包和投票。这样虽然损失一些去中心化程度,但是可以大大提高效率。

在 POS 系统中,如果检测到有参与者违反了 POS 共识的协议,比如一票多投,或者放弃投票,就可以对他们做出一些惩罚。凡是对系统的安全性造成影响的行为都应该收到惩罚。

权益证明的优缺点

相对 POW,权益证明有哪些优点呢。

第一个优点:矿工和持币者的动机是一致的。POS 的矿工都必须持币,在整个的生态环境里减少了一个不持币单靠机器来挖矿的角色。在 POW 的社区中,持币者、开发者、以及矿工三方的利益不是完全一致的,经常会有冲突。到了POS 中,至少矿工和有钱人的利益更为一致了。在一定程度上冲突和分歧就减少了。

第二个优点:POS 的延迟可以做得非常低,确认可以非常快。在 POS 系统里,拿到一个交易就可以马上打包,打包以后就可以广播,这个时间是不需要等待的,不像 POW,必须等至少做一次哈希运算的时间。实际上,POS 共识的延迟主要是受限于网络和参与投票的人数。网络越慢,投票的人越多,等待的时间也就越久。

第三个优点:POS 比较环保,因为它不需要用算力做工作量证明。投票实际上就是做个签名,最多再做一些简单的运算,比求解 POW 难题容易多了。所以 POS 节点硬件成本很小,也不耗电。

但是,POS 也有自己的问题。

第一个就是通讯复杂度跟投票的人数相关,而且通常是平方的关系。参与投票的人数越多,通讯越复杂,达成共识需要的时间就越久。不过,现在通过RBFT,BLS签名等技术,可以大大减少投票数量。这个问题基本上算是得到了很好的解决。

还有一个比较本质的问题,就是投票权的决定时间是早于生成候选区块的。POW 是先打包,再投票,最后决定出块权。投出的票就不能改了。在 POS 里,决定投票权和行使投票权是分离的,没有绑定在一起。有区块以前,我们就知道谁有投票权了。所以拿到投票权以后,我可以随便地去投,这就意味着我可以选择的策略空间更大,整个博弈会变得更复杂。通常来说,策略空间大对于安全性是不好的,因为给攻击者留出了更大的操作空间。攻击者如果操作空间大,能干的事儿就很多,想保证安全性也会变得更难。越复杂的系统的安全性越难保证,一方面是分析证明起来会更困难,另一方面是攻击者也更容易在复杂的系统里找到漏洞。所以在 POS 系统里面,有很多种攻击方式,比如无利害攻击、长程攻击等。

几种权益证明

再来简单介绍几个有名的POS共识,主要了解他们的基本原理和各自的差异。

Tendermint

这是跨链平台 Cosmos 采用的共识。可以做为了解 POS 的入门共识。Tendermint 每次由不固定的节点发布新块,然后通过 PBFT 的方式让其他所有节点对区块进行投票验证。超过2/3的赞同票就通过,而且是对区块的终极确认,不像 POW 还要等好几个块。但缺点就是,如果投票通不过,就要一直等着。


评论(0)问答(0)
请先登录或注册

请先登陆或注册

相关推荐

大神实力分析幸运飞艇有什么方法可以赢杀号算法技巧

幸运飞挺公式规律【一对一单带导师Q+204826560】【长久盈利轻松上岸】胜率95%,已助上千人成功翻盘,欢迎增加,沟通交流!    我们总是在寻找游戏的中奖号码,虽然我们所想象......
纯情女孩陈七七@ · 2020-04-10
14阅读 · 0赞赏 · 0问答

区块链共识机制入门

引言共识机制是区块链的灵魂,它解决了区块链去中心化网络中两个关键的问题:谁来记账(创建区块)以及如何维护全网数据的一致性。它的目标就是让网络中的各个节点形成一致的区块链结构,也就是说需要满足以下属性:......
VeelDiana · 2020-04-09
979阅读 · 0赞赏 · 0问答

初论智能合约经济的可行性

本文初步论述了当前智能合约经济的可行性问题以及解决方案的可能途径。作者为CasperLabs密码经济学家Alexander Limonov介绍总体来说,由公链部署的智能合约驱动经济是否可行尚不明确。 ......
CasperLabs · 2020-04-09
543阅读 · 0赞赏 · 0问答

分叉到底解决了什么问题?

我们都知道,数字货币中最广为人知的比特币,以及区块链2.0代表以太坊,都曾经发生过分叉事件。分叉,其实是与区块链不可篡改这一特点背道而驰的行为。那么,什么是分叉?为何要分叉?分叉对于区块链又会产生怎样......
海贼 king · 2020-04-08
815阅读 · 0赞赏 · 0问答

玩快三彩输了很多,该如何回血上岸-询68183049。

【导師Q:68183049】【邀请码88288889】【网址yf165、c0m】【长久盈利轻松上岸】【顶尖稳定盈利】 希望帮助到大家怎么玩才能赢如何才能回血上岸?如果你是刚刚玩,我来教教你。......
晨小柒 · 2020-04-07
153阅读 · 0赞赏 · 0问答

幸运一分快三有什么快速回血的技巧呢?询68183049

【导師Q:68183049】【邀请码88288889】【网址yf165、c0m】【长久盈利轻松上岸】【顶尖稳定盈利】 希望帮助到大家怎么玩才能赢如何才能回血上岸?如果你是刚刚玩,我来教教你。......
晨小柒 · 2020-04-07
141阅读 · 0赞赏 · 0问答

2991

LK币

18

粉丝

105

笔记

感谢"区块链网"

这篇精彩的笔记,目前已经帮助

  • 0
  • 0
  • 9
  • 8
  • 1
喜欢0
链客社群 加入

微博进入

商务合作>

广告投放>

公司名称:北京链客行科技有限公司

联系方式:010-67707199

ICP备案号:京ICP备18032136号

Copyright:链客区块链技术问答社区 版权所有

感谢您的提问,问题被社区永久收入以便新人查看。一定要记得采纳最佳答案哦!加油!

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励

您将赞赏给对方2LK币的奖励哦!感谢您的赞赏!

您将赞赏给对方2LK币的奖励哦!感谢您的赞赏!