区块链共识算法:DPoS、PoW和PoS浅析

区块链中的共识算法目前具有工业成熟度的是PoW、PoS和DPoS,其次还有一些基于这些算法的变种和单一币种使用的共识算法,例如:Ripple共识(瑞波币共识证明)、PoC共识(容量证明)、PoE共识(运动量证明)。

PoX类的算法,容错阀值是50%,而分布式一致算法PBFT(拜占庭容错)及其变种的容错阀值是33%左右,这里的百分比是指网络延迟、网络故障、作弊节点等占全网的比例。

与经典的分布式一致算法相比,区块链领域里的分布式一致算法(PoX类)通过概率选择记账者降低了潜在的提案者,提高了可用性,但同时也延长了达成最终一致性的时间。

PoW工作量证明

工作量证明(Proof-of-Work, PoW)是一种对应服务与资源滥用、或是阻断服务攻击的经济对策。一般是要求用户进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、设备与能源做为担保成本,以确保服务与资源是被真正的需求所使用。...现时此一技术成为了加密货币的主流共识机制之一,如比特币所采用的技术 -- 维基百科

理解起来很容易,就是为了选取有效的节点来记账,首先要证明你是真正的工作者(矿工),先交给你一个有适当难度的工作,如果快速的完成了,那么说明你有能力做这个工作,然后才把记账的工作交给你,并且在记账完成时,给到一定的奖励。

这个机制最早用于抵抗垃圾邮件,也就是发送一封邮件前,要计算一道有难度的数学题,其中要消耗掉一部分算力。如果我们是正常的发送一封邮件,这部分算力不会占用过多时间;但是如果要发送大量邮件(比如垃圾邮件),那么需要消耗的计算能力则会呈几何级增长,对垃圾邮件发送者来说,这是个不划算的事情。因此,使用PoW机制,能有效的防止垃圾邮件。

在区块链中,最常用的运算是哈希函数运算(比特币使用 SHA-256哈希函数),哈希函数的原理是,当你输入任意一个原始字符串(文本),经过哈希运算,都能得到一个固定长度的哈希值;当原始字符串改变时哪怕仅仅只有一个字符,运算结果(哈希值)都会大大不同。因此,为了得到特定的哈希值,只能通过穷举运算(暴力破解)的方式来运算,这个过程需要进行大量的算力。

在比特币中,一个交易要想被确认:(1)它存在于最长的分支的区块里(block),(2)至少有5个验证过的(PoW共识算法验证)区块在其后面得到验证。一个攻击者(作弊者)要想发出双重支付攻击,那么必须投入超过总体一半以上的运算量(51%攻击),才能篡改结果,这使得攻击的成本变得高昂,难以实现。

PoS权益证明

权益证明是一种投票机制,通过固定时间协调所有节点参与投票(这个投票机制有点类似于传统的分布式一致算法),根据某种规则(例如持有代币数量、占有币数的时间或提供存储空间大小等)判断每个节点的权重,最后选取权重最高的节点作为检查节点,获得记账权和奖励(利息)。

在现实世界中,PoS很普遍,最为熟知的例子就是股票,股票是用来记录股权的证明,股票持有量最多的,拥有更多的投票权和收益权(利息)。

PoS的防作弊机制是利益捆绑,股东自己保证安全,拥有投票权多的人获取的收益大,如果该投票权最多的人作弊的话,损失最大的也是他自己。

和PoW算法相比较,不需要矿工继续的进行挖矿消耗算力记账,更节省能源。

不过PoS算法对多节点一致性验证、防伪等要求很高,而且随着节点的增多,效率会越来越慢,因为节点越多,一致性越难。

另外一点是,拥有大量代币的节点可以坐享其成,无法做到公平竞争,有形成中心化的风险(大股东就是中心)。而且,在选举的环节中,步骤较多,容易产生安全漏洞(常见的有权益粉碎攻击)。

权益粉碎攻击(nothing-at-the-stake attack),由于PoS中,代币越少,权益也越少,而且很难改变现状(如果持币大户不出售代币的情况下)。为了获取更多权益,持币少的节点,就有可能去不断的尝试分叉,在PoS共识机制里,即是尝试失败了,也不会消耗太多资源;但如果成功了,那么就会使整个币的价值降低,但由于他们的钱很少,也不会太在乎;这是人性里的恶,我不好,也不让你好。

DPoS委托权益证明

委托权益证明(Delegated Proof of Stake)机制是PoS机制的优化版本,DPoS选择一些节点代表来参与交易验证和记账。例如:EOS选择了21个超级节点,100个备用节点来维护整个平台的正常运行。

我们知道区块链作为一个分布式网络,它也具有分布式系统的特性,若使用PoS机制在成千上万的网络节点中达到一致性,效率将会很低,也是一个十分漫长的过程。

使用DPoS机制能够大幅度的提升选举效率,在几十个最多上百个节点之间进行一致性投票一般可以在秒级完成并达成共识。

DPoS委托权益证明的缺点是严重依赖于节点所持有的代币,但是代币在很多国家都是被禁止的。

三者之间的对比

PoW采用简单粗暴但极为有效的方式,通过节点首先自证其资质后才进行广播的方式,大幅度减少了网络间的通讯压力,但与之带来的问题则在于自证资质的计算资源消耗极大。

PoS采用与传统分布式一致性验证类似的机制,通过代币数量(或存储容量等指标)作为权重依据,使用某种分布式算法选举出每次的检查点节点。这种机制的好处在于没有消耗计算资源的自证资质过程,但是带来的问题在于每次选举时在大量节点的网络中对网络压力极大。同时PoS也没有防御恶意分叉的能力。

DPoS作为PoS的优化变形,通过缩小选举节点的数量以减少网络压力,是一种典型的分治策略:将所有节点分为领导者与跟随者,只有领导者之间达成共识后才会通知跟随者。该机制能够在不增加计算资源的前提下有效减少网络压力,在优秀的软件实现中将会具有较强的应用价值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352