区块链核心技术:DPoS共识机制

更新时间:2023-07-05 20:20:28 阅读: 评论:0

区块链核⼼技术:DPoS共识机制
马云多大年龄属什么DPoS 全称是 Delegated Proof of Stake,中⽂翻译过来是代理权益证明。
从 BM 开始聊起的故事
我们聊 DPoS 时,为什么要从 BM 聊起呢,其实,这和聊⽐特币绕不开中本聪⼀样,DPoS 是 BM ⼀⼿创造的。DPoS 不是独⽴提出的共识算法,⽽是直接被 BM 应⽤到⽐特股项⽬中,在稳定运⾏了 3 年多后,⼜接着被 BM 构造成可复⽤的区块链⼯具箱:⽯墨烯。
虽然应⽤得很早,但 DPoS 算法直到 2017 年才被 BM 单独拎出来作了⼀篇“DPoS 技术⽩⽪书”,这期间伴随着⽐特股、Steemit、EOS 三个项⽬的依次发布。那么到底 BM 是谁,市场上对这个⼈的评价为什么富有争议呢?或许我们从了解 BM 开始,才能体会到 DPoS 的精髓。
我们在前⾯的⽂章中曾简单提过 BM,BM 的本名是 Daniel Larimer,由于他的 GitHub 昵称是 ByteMaster,所以才被称作 BM。BM 是⽐特股、Steemit、EOS 项⽬的创始⼈。与年少成名 V 神的辍学经历不同,BM 2003 年毕业于弗吉尼亚理⼯学院,获得计算机学⼠学位,算是正经的科班出⾝。
BM 曾直⾔不讳地说到:“我的⼈⽣⽬标就是找到⾃由市场的⽅案来保护⽣命、⾃由和财产”。他认为要达成这个⽬标,就必须要从货币开始。我们在数字货币⼀节提到过,⽆论是贵⾦属还是信⽤货币,都是历
史的必然,所以在选择使⽤什么货币上,BM 认为不⼀定是美元,他希望的是:构造⼀种⾃由安全的数字货币。
周武王简介
2009 年,他怀揣梦想开始了数字货币的事业,他先发现了⽐特币,于是不遗余⼒地推⼴着这个项⽬。然⽽在 2010 年,BM 指出中本聪10 分钟⼀次的交易确认时间太长了,这样的话,性能会是⼀个瓶颈,然⽽这样的想法却遭到了中本聪的暴击:看不懂就算了,我没时间搭理你。
于是,BM 觉得⽐特币不是希望,便着⼿开发第⼀个项⽬——⽐特股,同时创造出 DPoS,把⾃⼰的⾼性能共识算法形成了实践。在这⾥,我们可以看出 DPoS 与其他共识机制的第⼀个区别,就是交易确认时间短。
2014 年,当 V 神还在到处奔⾛,开始发起以太坊项⽬的众筹时,当很多项⽬还是基于⽐特币的微创新时,⽐特股就已经横空出世了。所以⽐特股⼀跃成为了当时的明星项⽬,它的⼝号是“Beyond Bitcoin”,在这⾥我们可以感受到极强的攻击性和⽬的性,也正因为如此,⽇益强⼤的⽐特币社区被树在了它的对⽴⾯。薏米红豆粥的做法
营业税是什么
文具盒图片⽐特股⼀共有 2 个版本,⽐特股在 1.0 版本之前,某些版本甚⾄都没有提供向下兼容。虽然后来正式发布了 1.0 版本,似乎并没有改善多少。糟糕的使⽤体验,庞⼤的系统资源开销,还是让尝鲜的⽤户逐渐流失了。这时候 BM 利⽤了⾃⼰⼿⾥超过 1/3 的记账节点,在没有达成社区共识的情况下,强⾏
增发了⽐特股总量。这⼀招⼏乎就是⽐特股项⽬的灭顶之灾,社区⼈就此纷纷退出。
虽然社区萎靡,BM 还是继续了开发⼯作,将⽐特股升级到了 2.0,它的易⽤性和稳定性勉强可以满⾜正常使⽤。随着⽐特股 2.0 的发布,BM 也同时发布了⽯墨烯⼯具箱。尽管在技术上提供了改进,但⽐特股社区最终选择让 BM 离开⽐特股项⽬,⽐特股回到了另⼀位币圈⼤佬——巨蟹的⼿⾥。随后⽐特股的发展陷⼊了长期的低迷,长期在 2 分,最多到 2 ⾓钱左右,直到去年的⽜市,⽐特股涨到过 2 元⼈民币。
虽然最终离开了⽐特股,但是 BM 依然会参与 BTS 紧急 Bug 修复⼯作。与此同时,BM ⼜开发了⼀款旨在颠覆传统互联⽹媒体⾏业的项⽬——Steemit,这也是开辟了基于区块链 Token 内容社区的先例。Steemit 也是基于⽯墨烯技术的,它⾮常流⾏。2017 年,随着Steemit 的成熟,BM 宣布退出了 Steemit,开展了下⼀个项⽬ EOS。
EOS 的⽬的是要做出区块链⾏业的操作系统,为开发者提供底层功能,包括并⾏运算、数据库、账户系统等等。EOS ⼀经发布,就⼴受关注,短短五天内,EOS 便筹集到了数亿美⾦,它的代币销售规模在⽬前为⽌是最⼤的。
现阶段的 EOS 超级节点竞选也体现出了 BM 强⼤的影响⼒。 EOS 项⽬影响⼒也越来越⼤,BM 因为与 V 神在区块链上的理念不合,也经常互怼,他们争论的重点是⼆⼈对于去中⼼化的前提假设不同,
这也造就了两个不同的设计逻辑,所以,两⼈的争论过程可以说是⾮常地吸引眼球了。
十地我们从 BM 的个⼈经历、项⽬经验、影响⼒都可以看出 BM 是⼀个很懂⾦融的天才式程序员,同时也是⼀个有点刚愎⾃⽤导致与社区⽭盾不断的意见领袖。
DPoS 详解
讲完了 BM 的故事,我们再来讲讲 DPoS。简单来理解,DPoS 共识算法就是将 PoS 共识算法中的记账者转换为指定节点数组成的⼩圈⼦,⽽不是所有⼈都可以参与记账,这个圈⼦可能是 21 个节点,也有可能是 101 个节点,这⼀点取决于设计,只有这个圈⼦中的节点才能获得记账权。
这将极⼤地提⾼系统的吞吐量,因为更少的节点也就意味着⽹络和节点的可控。
南昌区号1.DPoS 共识的⽬标
从名称上,我们也可以判断出 DPoS 与 PoS 共识是直接关联的。DPoS 算法是 BM 根据当时 PoW、PoS 的不⾜⽽改进的共识算法,它的⽬的就是为了提⾼性能,也就是交易确认时间短。在 PoS 共识中,⼈们使⽤财产证明来“挖矿”,也就是说,这是任何⼈都可以参与的,只要你持有币,你就可以参与挖矿。
但是我们可以看出,PoS 并没有解决性能问题,在这⾥我们直接认为提⾼性能就是提⾼ TPS,我们可以构造⼀个等式,:
TPS = transactions / block_time
TPS 表⽰区块链每秒能确认的交易数, transactions 是由区块⼤⼩ block_size 和平均每笔交易⼤⼩决定的,⽽区块⼤⼩受全⽹⽹络状态network_bandwidth 限制,也是由记账节点之间处理性能 witness_performance 决定的。记账节点的个数 witness_count 直接决定了物理带宽的上限,因为记账节点数量越多,则对物理带宽要求越⾼,对⽹络的稳定性要求也越⾼。要注意的⼀点是在 DPoS 中,记账节点不叫做矿⼯,⽽是改称为见证⼈Witness。所以这个公式变成了下⾯的样⼦。TPS = (block_size * network_bandwidth *
witness_performance) / (block_time * witness_count)
我们可以看到,要提⾼ TPS,可以提升分⼦项,降低分母项,也就是增⼤区块⼤⼩ block_size、提升记账节点⽹络带宽
network_bandwidth、提升记账节点处理性能 witness_performance,减⼩区块时间 block_time、减⼩记账节点数量 witness_count。
分⼦项我们可以看到,它基本受限于物理资源的上限,⽬前⼯业⽔平制造的物理资源的使⽤上限基本就是整个项的上限了,所以可操作性不⼤。⽽分母项是由共识算法决定的,所以我们从区块时间,以及记账节点数⼊⼿,DPoS 算法便正是从这两项着⼿的。⾸先改动的便是限制记账节点的数量,也就是见证⼈的数量。
我们在 PoW 和 PoS 中可以看到,成为记账节点是⽆需门槛的,你可以随时参与挖矿,随时退出。那这会带来什么问题呢,⾸先⽆法确定记账节点的数量,其次⽆法确定记账节点之间的⽹络环境,记账节点数越多⽹络环境越复杂,这些不确定性会增⼤⽹络分区的概率,从⽽导致区块链分叉。
如果我们事先规定好记账节点的数量,接着让全⽹所有节点可以投票决定哪些节点可以成为记账节点,这样就限制并减⼩了分母项
witness_count,这个过程我们也称作投票选举。
因为记账节点数量不多,那么我们可以在共识算法中可以规定出块时间为⼀个固定值,这个值可以很⼩,通过轮流出块的⽅式来进⾏记账。以上思路基本就是 DPoS 的基本设计思路,BM 还为 DPoS 算法确⽴两个原则:
1. 投票选举过程⼀定要保证最⼤权益所有者最终能控制全⽹,因为⼀旦出了问题,他们的损失最⼤;
2. 与 PoW、PoS ⼀样,所有节点仅承认“最长”链。
这两个原则确⽴了 DPoS 共识的基本特性,第⼀条放⼤了 PoS 共识使⽤者就是记账者的优点,第⼆点则规定了分叉时系统应该表现的⾏为。
2.DPoS 共识算法分析
在 DPoS 共识算法中,区块链的正常运转依赖于见证⼈ (Delegates),见证⼈是由全⽹节点投票产⽣的,见证⼈也是记账节点的实际控制⼈,相当于咱们选课代表,课代表帮我们整理作业。
见证⼈在完成打包交易的同时可以领取区块奖励和交易的⼿续费,并且可以执⾏社区投票的提案,所以 DPoS 共识算法不仅仅是算法,⽽是⼀个包含了协作治理关系的共识机制。我们可以引⽤“DPoS 算法⽩⽪书”中的内容,来看看 BM 设计 DPoS 算法是怎样的思路。
BM 认为所有区块链实际是建⽴交易之上的确定性状态机。共识是在确定交易顺序,过滤⽆效交易的⼀个达成⼀致意见的流程。DPoS为了尽快确定交易顺序,过滤⽆效交易,所以规定了在正常情况下,所有记账节点轮流每 3 秒产⽣⼀个区块,轮到了某个记账节点出块时,必须在 3 秒内提交区块,否则就会错块。
假设⼀直没有记账节点错过⾃⼰顺序,那么他们⽣产的链条势必是最长的链条,如果记账节点在⾮指
定时间⽣产区块被认为是⽆效的,每经过⼀轮,所有节点轮流出块的顺序就会发⽣重新洗牌。
下图就是⼀个理想的轮流记账状态。
DPoS 算法⽩⽪书介绍了 7 种异常的情况会打破上⾯的正常情况。例如少数记账节点发起恶意分叉或者发⽣故障,如下图。
在这种情形下,B 节点只能在 9 秒内⽣产 1 个块,⽽⼤多数分⽀,由于数量多⼀倍,将预期能在 9 秒内⽣产 2 个块,诚实的 2/3 的⼤多数可以⽐⼩的那⼀部分创建⼀个更长的链条,由于原则⼆,DPoS 可以抵御这种攻击。在 DPoS ⽩⽪书中介绍了少数记账节点恶意或故障造成的分叉、⽹络分区情况下重复出块、少数记账节点重复出块、记账节点数量不⾜、多数记账节点的联合腐败等各种情况。
遗憾的是⽩⽪书中的内容没有经过严格证明,以定性分析为主,所以我们⽆法确定 DPoS 算法是否有
设计缺陷。在实际应⽤中,⽐特股中见证⼈是 101 ⼈,EOS ⾥是 21 ⼈。⽐特股中见证⼈们赚取⼿续费,EOS ⾥见证⼈们分享 EOS 的通胀收益。他们都是通过公开选举选出来的,选票就是⼤家⼿⾥的⽐特股或 EOS。
3. 有关 DPoS 的⼀个争论:中⼼化问题。
我们之前⽂章中提过的 FLP 和 CAP 定理,如果为了提升性能,即⼀致性的效率,势必会牺牲其他两项。这也会引出有关 DPoS 的⼀个争论:中⼼化问题。
我们以⽐特股社区为例,每个⼈都可以尝试成为 101 个见证⼈节点中的⼀个,他们可以在社区⾥拉票,为社区做事,或者⼲脆⽤钱买很多bts。平时⼤家象征性地开个会,因为是轮流记账,各个节点之间竞争不⼤。
但是不要忘记,区块链的发展⾮常依靠社区,这种⽅式势必会带来社区的中⼼化。虽然⽐特股中 101 个见证⼈负责记账,但总得有⼈指定发展⽅针,于是⼜设计出了 11 ⼈理事会,这同样是通过选票选出来的。
11 ⼈理事会有很⾼的权⼒,他们相当于 11 个超级节点,通过举⼿表决,甚⾄可以决定修改代码,⽽这 11 ⼈理事会是⽐特股系统⾥的中⼼,也是规则的制定者。这是 DPoS 算法的优势,也是 DPoS 算
一重山法的劣势。在 PoW 中,矿⼯、开发者、⽤户三权分⽴。⽽ DPoS 似乎将这三权合并到了见证⼈和理事会⼿中。在 EOS 中,BM 还制定了区块链宪法,要求所有记账节点必须遵守,所以也有⼈抨击这是具备了BM 特⾊的去中⼼化。
从某种⾓度来看,DPoS 是社区治理加上共识算法,不再是单纯的技术共识,这是与 PoW、PoS 算法最⼤的不同。DPoS 的基本假设是相信节点是好的,所以尽可能快速选择记账节点,⽽把问题发⽣后的修复过程推迟到投票中,可以说 DPoS 并不考虑拜占庭容错问题,把拜占庭容错推给了社区治理,⽽在社区治理上可归纳为⼀切皆投票。
⽽现实⽣活中,很多情况下,投票并不能解决问题,⽐如投票⼈都是有惰性的,集齐所有⼈投票成本是很⾼的,如果记账节点没有上限,所有节点的投票都投给⾃⼰,DPoS 系统就会退化成 PoS 系统。

本文发布于:2023-07-05 20:20:28,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1080449.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:节点   记账   共识   社区   算法   区块   特股   交易
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图