Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >DPOS-( 代理权益证明)

DPOS-( 代理权益证明)

作者头像
用户2909867
发布于 2019-03-29 07:23:54
发布于 2019-03-29 07:23:54
2.6K00
代码可运行
举报
文章被收录于专栏:互联网大杂烩互联网大杂烩
运行总次数:0
代码可运行

DPOS全称是Delegated Proof of Stake,中文翻译过来是代理权益证明。

DPoS详解

简单来理解,DPoS共识算法就是将PoS共识算法中的记账者转换为指定节点数组成的小圈子,而不是所有人都可以参与记账,这个圈子可能是21个节点,也有可能是101个节点,这一点取决于设计,只有这个圈子中的节点才能获得记账权。这将极大地提高系统的吞吐量,因为更少的节点也就意味着网络和节点的可控。

1.DPoS共识的目标

从名称上,我们也可以判断出DPoS与PoS共识是直接关联的。DPoS算法是根据当时PoW、PoS的不足而改进的共识算法,它的目的就是为了提高性能,也就是交易确认时间短。

在PoS共识中,人们使用财产证明来“挖矿”,也就是说,这是任何人都可以参与的,只要你持有币,你就可以参与挖矿。

但是我们可以看出,PoS并没有解决性能问题,在这里我们直接认为提高性能就是提高TPS,我们可以构造一个等式,:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  TPS = transactions / block_time

TPS表示区块链每秒能确认的交易数, transactions 是由区块大小block_size和平均每笔交易大小决定的,而区块大小受全网网络状态network_bandwidth 限制,也是由记账节点之间物理带宽witness_performance决定的。

记账节点的个数witness_count直接决定了物理带宽的上限,因为记账节点数量越多,则对物理带宽要求越高,对网络的稳定性要求也越高。

要注意的一点是在DPoS中,记账节点不叫做矿工,而是改称为见证人,Witness。

所以这个公式变成了下面的样子。

image

我们可以看到,要提高TPS,可以提升分子项,降低分母项,也就是增大区块大小block_size、提升记账节点网络带宽network_bandwidth、提升记账节点处理性能witness_performance,减小区块时间block_time、减小记账节点数量witness_count。

分子项我们可以看到,它基本受限于物理资源的上限,目前工业水平制造的物理资源的使用上限基本就是整个项的上限了,所以可操作性不大。

而分母项是由共识算法决定的,所以我们从区块时间,以及记账节点数入手,DPoS算法便正是从这两项着手的。

首先改动的便是限制记账节点的数量,也就是见证人的数量。

我们在PoW和PoS中可以看到,成为记账节点是无需门槛的,你可以随时参与挖矿,随时退出。

那这会带来什么问题呢,首先无法确定记账节点的数量,其次无法确定记账节点之间的网络环境,记账节点数越多网络环境越复杂,这些不确定性会增大网络分区的概率,从而导致区块链分叉。

如果我们事先规定好记账节点的数量,接着让全网所有节点可以投票决定哪些节点可以成为记账节点,这样就限制并减小了分母项witness_count,这个过程我们也称作投票选举。

因为记账节点数量不多,那么我们可以在共识算法中可以规定出块时间为一个固定值,这个值可以很小,通过轮流出块的方式来进行记账。

以上思路基本就是DPoS的基本设计思路

两个原则:

投票选举过程一定要保证最大权益所有者最终能控制全网,因为一旦出了问题,他们的损失最大;

与PoW、PoS一样,所有节点仅承认“最长”链。   这两个原则确立了DPoS共识的基本特性,第一条放大了PoS共识使用者就是记账者的优点,第二点则规定了分叉时系统应该表现的行为。

工作机制

跟PoS不同的是,持有少数股份(权益)的节点也能行使他们的共识权了,只不过是以一种间接的方式。类似于股东代表大会,每当要决策公司大事(记什么账,谁来记账)的时候,全体股民(节点)依法行使投票权,选出自己心中的股东代表(可信账户),谁得票高谁当选。候选人可以去公开演讲拉票,获得足够多股民(节点)的信任,然后股东代表(被选中的可信节点)代表股民决策公司大事,股东代表的人数由系统决定,比如Bitshares为101个、Asch为51个,EOS为21个。

与生活中的股东代表选举不同: 1)DPoS机制中的股民(节点)根据自己持有的加密货币数量占总量的百分比(占股比例)来投票,不是一人一票; 2)选举出的股东代表(可信节点)完全对等,可理解为具有同等算力的101个矿池; 3)股东代表一旦无能、不作为、胡作为(提供的算力不稳定,计算机宕机、或者试图利用手中的权力作恶),将立刻被股民踢出整个系统,然后由其他后备代表顶上去; 4)决策完公司大事(记完账、出完块)有钱分,根据占股比例。DPoS的工作流程如下图所示:

image

EOS的DPoS分为两个步骤: 1)选举块生产者(Block Producter,简称BP); 2)出块共识;

选举块生产者:任何持有Token的人都可以成为块生产者,都拥有投票权。每次投票前,候选BP可以给自己拉票(线下方式),每次投票超过50%代表有效,然后生成一个BP候选池,每次从BP候选池中选择排名靠前的21个节点作为BP,并对选出的21个BP随机排序。

出块共识:21个BP按照随机排序进行出块,在每轮出块共识的过程中,BP如果不出块或者出现恶意行为,将被其他节点举报并接受惩罚(剥夺出块的权利),然后从候选池中再选择一个BP加入,一个BP出块成功,并且经过至少(2/3 + 1)个BP确认(至少15个),出块BP获取相应的奖励,然后轮流至下一个BP出块,如果轮询了10次或者一天,将重新进行投票选举。

2. DPoS的优缺点

对于EOS的DPoS优点:1)记账节点减少,交易速度更快,EOS号称可达百万TPS; 2)更加安全,一般不不会发生链分叉并不可逆,确保最终一致性; 3)相对PoW,解决了资源消耗问题;

基于DPoS的设计,其优点也成为了自己的缺点,这也是为什么V神怒怼DPoS的原因。

首先DPoS通过选举少数的BP来出块记账,确实从网络传输和确认时间上看,性能大幅提升,但是少量的BP数量牺牲了部分去中心化。有人说这些被选举的BP代表着“民意”,相比PoW的5大矿场和PoS的富人玩家,DPoS更加民主,更加去中心化,但是DPoS机制的设计并不能保证一定有足额的真实的区块生产者,因为一个人或一个实体,可能控制着多个节点。比如LBTC,就一度出现半数节点被鱼池一家控制。EOS在启动过程中,也疑似出现一个人虚拟出7个节点的事。 其次,在真实的网络环境中,EOS实际的运行效率远没有吹的那么厉害,同时超级节点的治理全力和经济利益过于集中,如果他们串通,将进一步形成巨头龙垄断,这和区块链思想南辕北辙。 再次,对于坏节点的处理存在诸多困难。社区选举不能及时有效的阻止一些破坏节点的出现,给网络造成安全隐患,同时在网络节点数量少的场景,选举的BP代表性不强。

2.DPoS共识算法分析

在DPoS共识算法中,区块链的正常运转依赖于见证人(Delegates),见证人是由全网节点投票产生的,见证人也是记账节点的实际控制人,相当于咱们选课代表,课代表帮我们整理作业。

见证人在完成打包交易的同时可以领取区块奖励和交易的手续费,并且可以执行社区投票的提案,所以DPoS共识算法不仅仅是算法,而是一个包含了协作治理关系的共识机制

我们可以引用“DPoS算法白皮书”中的内容,来看看BM设计DPoS算法是怎样的思路。

BM认为所有区块链实际是建立交易之上的确定性状态机。共识是在确定交易顺序,过滤无效交易的一个达成一致意见的流程。

DPoS为了尽快确定交易顺序,过滤无效交易,所以规定了在正常情况下,所有记账节点轮流每3秒产生一个区块,轮到了某个记账节点出块时,必须在2秒内提交区块,否则就会错块。

假设一直没有记账节点错过自己顺序,那么他们生产的链条势必是最长的链条,如果记账节点在非指定时间生产区块被认为是无效的,每经过一轮,所有节点轮流出块的顺序就会发生重新洗牌。

下图就是一个理想的轮流记账状态。

image

(图来自白皮书)

DPoS算法白皮书介绍了7种异常的情况会打破上面的正常情况。

例如少数记账节点发起恶意分叉或者发生故障,如下图。

image

(图来自白皮书)

在这种情形下,B节点只能在9秒内生产1个块,而大多数分支,由于数量多一倍,将预期能在9秒内生产2个块,诚实的2/3的大多数可以比小的那一部分创建一个更长的链条,由于原则二,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系统。

总结

我们来总结一下DPoS共识机制。

DPoS共识机制本身将“矿池”纳入系统内部,并把它们统称为见证节点,虽然不会出现中心化挖矿的风险,但是DPoS由于节点数不多,并且见证节点权力较大,可以认为DPoS本身就是带中心化思路的共识机制。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.03.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
盘点|一文读懂11个主流共识算法, 彻底搞懂PoS,PoW,dPoW,PBFT,dBFT这些究竟是什么鬼
在区块链的交流和学习中,「共识算法」是一个很频繁被提起的词汇,正是因为共识算法的存在,区块链的可信性才能被保证。
区块链大本营
2018/12/20
3.2K0
盘点|一文读懂11个主流共识算法, 彻底搞懂PoS,PoW,dPoW,PBFT,dBFT这些究竟是什么鬼
共识机制
区块链作为一个去中心化的分布式账本系统,然而在实际运行中,怎么解决因为去中心化后,保证整个系统能有效运行,各个节点诚实记账,在没有所谓的中心的情况下,互相不信任的个体之间就交易的合法性达成共识的共识机制。
用户2909867
2019/03/29
8650
晓说区块链 | DPOS为何被称为实现去中心化最佳的共识机制?
区块链有一个重要的概念叫共识算法,DPOS是其中的一种——DPOS(Delegated Proof of Stake)委托权益证明。
维基链WICC
2019/02/10
1.1K0
晓说区块链 | DPOS为何被称为实现去中心化最佳的共识机制?
持有steem的我当了回股东(文末有福利)
有关Steemit、Steem、SBD等概念,请先阅读以前的几篇文章: Steemit注册教程 Steemit上写作你需要知道的一些事 Steemit里的三种货币 Steem交易转账操作 Steem与Bitshares Steem与BTC的的共识机制 在steem的蓝皮书里提到,相比于工作量证明POW(比特币的共识机制),steem能提供更大规模和更快速度的算法,即委托权益证明股权(DPOS)。 关于POW的详细介绍可以查看《区块链生存训练》的【块29:PoW工作量证明】,同时块51对POS(权益证明)进行
申龙斌
2018/03/06
9830
持有steem的我当了回股东(文末有福利)
聊聊DAG的共识和牛逼的hashgraph
可能因为IOTA和byteball的原因,一提到DAG,很多人就会担心DAG可能有中心化的问题。包括iota依赖validator节点,byteball依赖witness节点。这篇文章尝试为iota和byteball正名,更重要的,介绍一个让我很兴奋的东西,hashgraph。 什么是区块链的共识 谈到区块链,共识是个绕不开的话题。到底共识在解决什么问题呢? 用户A在银行账户里有100块,这100块A只能使用一次,在A转给B 100块后就没办法再给C转100块。这看起来是个再自然不过的逻辑,实际上依赖了银行
企鹅号小编
2018/01/18
1.3K0
聊聊DAG的共识和牛逼的hashgraph
EKT多链技术谈 | 主流共识机制解析
为了解决拜占庭将军问题,达成去信任的分布式网络中的一致性,区块链技术的几种共识机制陆续被提出,根据选择生成区块节点的方式、节点确认区块的方式等,不同的共识机制在去中心化程度、高效低能耗性、安全性上做出了取舍,对于不同功能的区块链各有其注重的要点,共识机制的选择往往成为决定一个区块链成败的一大因素。当前主流的共识机制主要有PoW、PoS、DPoS、Paxos等,这几种各自又演化改进产生了不同版本。
风中凌乱的靓仔
2019/03/22
5720
EKT多链技术谈 | 主流共识机制解析
区块链是什么(下)?凭什么他可以记账,共识机制有话说
上篇《区块链是什么?读完这篇文章你就掌握70%区块链入门》的末尾有个问题:区块链网络上的陌生人出于什么承认区块的有效性?他们为什么愿意苦哈哈地帮助记账?现在,我们开始学习另外这30%的基础知识。
互链脉搏
2018/05/18
2K0
区块链是什么(下)?凭什么他可以记账,共识机制有话说
从拜占庭将军问题看:区块链「 共识算法 」
而由于地域上特殊原因,你们这10支军队不能集合在一起单点进攻,必须在分开的状态下同时包围攻击敌国。如果是单支军队单独进攻的话是毫无胜算的,除非有至少有6支军队同时调遣一起袭击才能攻下敌国。你们分散在敌国的四周,依靠通信兵相互通信来协商进攻意向和进攻时间。
奎哥
2018/08/31
1.1K0
从拜占庭将军问题看:区块链「 共识算法 」
【许晓笛】详解 EOS 的新共识机制 BFT-DPoS
EOS 最新的白皮书中已经将共识机制从 DPoS 升级为了 BFT-DPoS(Byzantine Fault Tolerance - Deligated Proof of Stake,带有拜占庭容错的委托股权证明),本篇文章将详解新共识机制的原理。
圆方圆学院
2018/11/11
1.6K0
【许晓笛】详解 EOS 的新共识机制 BFT-DPoS
eos源码赏析(七):EOS智能合约入门之共识机制初探
金庸小说中塑造了众多丐帮帮主的形象,如汪剑通、萧峰、洪七公、黄蓉、鲁有脚、耶律齐、史火龙等。这些帮主在未当选帮主之前大都是丐帮中普普通通的一员,后来经过投票选举---也就是吐唾沫的方式当上了帮主。这和现在eos的各大BP的竞选类似,eos的持有者可以通过投票的方式或者代理投票的方式选择自己意向中的BP,今天我们就从选举和投票的角度来谈谈丐帮帮主选举,来谈谈eos的投票机制以及对共识的理解。
用户2569546
2021/11/23
4280
共识算法探讨:委托权益证明算法及其应用
委托权益证明(Delegated Proof of Stake,DPoS)是一种创新的区块链共识机制,旨在通过代表投票的方式提高区块链网络的效率和治理能力。DPoS最早由BitShares引入,目前在多种区块链项目中得到了广泛应用。本文将深入探讨委托权益证明算法的原理、其在区块链中的应用以及其优缺点。
运维开发王义杰
2024/06/11
2400
共识算法探讨:委托权益证明算法及其应用
区块链共识机制的演进
FLP 不可能原理(FLP impossibility):在网络可靠,存在节点失效(即便只有一个)的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性算法。1985年 FLP 原理实际上说明对于允许节点失效情况下,纯粹异步系统无法确保一致性在有限时间内完成。 科学告诉你什么是不可能的;工程则告诉你,付出一些代价,我可以把它变成可能。
深蓝studyzy
2022/06/16
1.1K0
区块链共识机制的演进
吕文哲:为什么我说EOS完爆以太坊,理由全在这里了
作者 | 吕文哲 整理 | Aholiab 作为国内技术力量强大的EOS超级节点竞选者之一,HelloEOS是国内最早接触区块链并为其布道的组织。其对EOS的理解和实践,有很多值得学习的地方。 4月21日,在CSDN主办,区块链大本营、EthFans、PDJ、极客帮创投协办的第7期CSDN区块链技术沙龙上,北京邮电大学博士、现YOYOW产品负责人 吕文哲带来题为《EOS的发展和总体介绍》的分享,从自身的区块链技术创业历程,对EOS的特性和组成部分做了深刻而全面的解读,带你重新认识这个重要的系统。 先介
区块链大本营
2018/06/19
7210
百花村区块链山的选民们, 超有趣!
百花村旁有一座山叫区块链山,属村民集体所有。村外的A公司准备开发区块链山的旅游资源。A公司和村民委员会联合成立了百花旅游开发有限公司,签了股份制合作协议。以下是春节假期期间发生在村民李大和柳五之间的对话:
区块链大本营
2019/05/24
6180
EOS
EOS是一个区块链底层公链系统,目的是解决现有的区块链应用性能低、安全性差、开发难度高以及过度依赖手续费的问题。当EOS完成系统目标之后,任何团队都可以在EOS上以比较快的速度开发出所需要的Dapp(基于区块链的分布式应用),这些应用可以让普通人无需任何手续费(gas)就可以方便地使用,甚至很难感受到在使用的是区块链应用。而EOS的高性能(100W+TPS,可以在1秒之内进行100W次打包记账)可以承载数量众多的Dapp应用,所以可以预见,EOS将是未来可以孵化出众多独角兽企业的超级独角兽平台。
用户2909867
2019/03/29
1.1K0
权益设计原理的证明
像以太坊(还有比特币,未来币,以及比特股等等)这样的系统是一种全新的加密经济学机制——它是去中心化的,遍布全网的无控制权实体,而且由密码学,经济学和社会共识的结合体所维护。它们有点像比特流,但和比特流不同,因为比特流不涉及状态这一概念——这会成为一种极为重要的区别。它们有时也被描述为去中心化自治公司(https://letstalkbitcoin.com/is-bitcoin-overpaying-for-false-security),但它们也确实不是公司——你无法对微软进行硬分叉。它们类似于开源的软件项目,但也并非确实如此——你可以对区块链进行分叉,但是却无法做到和对 OpenOffice 分叉一样容易。
AI研习社
2018/09/25
5200
【Sphinx评级】从商业到技术全面评估EOS项目
Eos 为区块链奇才 bm (daniel larimer)领导开发的类似操作系统的区块链架构平台,旨在实现分布式应用的性能扩展。eos 提供帐户、身份验证、数据库、异步通信以及在数以百计的cpu或群集上的程序调度。该技术的最终形式是一个区块链体系架构,该区块链每秒可以支持数百万个交易,同时普通用户无需支付使用费用。
辉哥
2018/08/10
1.6K0
【Sphinx评级】从商业到技术全面评估EOS项目
【许晓笛】重新理解EOS的系统架构
如果区块链智能合约系统想追求类似比特币的去中心化程度,理论上效率就会大打折扣。现实也是这样的:比特币每秒钟只能处理7笔左右的交易,每一笔交易要用至少30分钟才能确认,这种效率和速度是远远不如银行转账的。作为一个全球资产交易平台,比特币这样的效率或许可以接受,但对于智能合约平台这样的效率是远远不够的。因为在智能合约中,每一个动作都可以看成是一笔交易,例如五子棋游戏合约中,每下一步棋就是一个交易,用户是无法等待半个小时才能确认一步棋的。所以想要实现真正实用的智能合约平台,就要脱离比特币系统的架构,寻找新的系统组织形式。
圆方圆学院
2018/11/11
1.3K0
区块链共识算法之DPOS(3)
DPOS(Delegated Proof of Share),代理权益证明共识机制,是一种 基于投票选举的共识算法,类似代议制民主。在 POS 的基础上,DPOS 将区块 生产者的角色专业化,先通过权益来选出区块生产者,然后区块生产者之间再轮 流出块。
随心助手
2019/10/15
1K0
区块链共识机制知多少
小智的假期结束了,又要开启吃鸡状态。现在就来考考你,区块链的共识机制,你能说出哪些呢?
前端修罗场
2022/07/29
6880
区块链共识机制知多少
相关推荐
盘点|一文读懂11个主流共识算法, 彻底搞懂PoS,PoW,dPoW,PBFT,dBFT这些究竟是什么鬼
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验