分布式技术原理与算法解析
聂鹏程
智载云帆 CTO,前华为分布式 Lab 资深技术专家
39663 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 43 讲
分布式技术原理与算法解析
15
15
1.0x
00:00/00:00
登录|注册

05 | 分布式共识:存异求同

缺点
优点
EOS平台
记账权竞争
缺点
优点
以太坊平台
记账权竞争
缺点
优点
比特币平台
共识过程
记账权竞争
解决方法
问题描述
DPoS(Delegated Proof of Stake)
PoS(Proof-of-Stake)
PoW(Proof-of-Work)
多个节点达成一致的过程
区块链技术解决的问题
分布式共识的本质
存异求同
多数策略
拜占庭将军问题
一致性与共识的区别
三种分布式共识算法对比分析
分布式共识方法
什么是分布式共识
分布式在线记账一致性问题
分布式选举问题
思考题
分布式共识技术

该思维导图由 AI 生成,仅供参考

你好,我是聂鹏程。今天,我来继续带你打卡分布式核心技术。
首先,我们来回忆下上篇文章的分布式选举。分布式选举问题,是从多个节点中选出一个主节点,相关的选举方法几乎都有一个共同特点:每个节点都有选举权和被选举权。大部分选举方法采用多数策略,也就是说一个节点只有得到了大部分节点的同意或认可才能成为主节点,然后主节点向其他节点宣告主权。
其实,这个选主过程就是一个分布式共识问题,因为每个节点在选出主节点之前都可以认为自己会成为主节点,也就是说集群节点“存异”;而通过选举的过程选出主节点,让所有的节点都认可该主节点,这叫“求同”。由此可见,分布式共识的本质就是“存异求同”。
所以,从本质上看,分布式选举问题,其实就是传统的分布式共识方法,主要是基于多数投票策略实现的。基于多数投票策略的分布式选举方法,如果用于分布式在线记账一致性问题中,那么记账权通常会完全掌握到主节点的手里,这使得主节点非常容易造假,且存在性能瓶颈。因此,分布式选举不适用于分布式在线记账的一致性问题。在今天这篇文章中,我就带你了解另外一种用于解决分布式在线记账一致性问题的分布式共识技术。
这里所说的分布式在线记账,是指在没有集中的发行方,也就是没有银行参与的情况下,任意一台接入互联网的电脑都能参与买卖,所有看到该交易的服务器都可以记录这笔交易,并且记录信息最终都是一致的,以保证交易的准确性。而如何保证交易的一致性,就是该场景下的分布式共识问题。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了分布式共识技术中的三种主流算法:PoW、PoS和DPoS。PoW算法通过节点的计算能力来竞争记账权,但存在效率低、资源消耗大的缺点。PoS算法则以系统权益代替算力来决定记账权,节能但容易形成垄断。为了解决PoS的垄断问题,DPoS算法引入了受托人,由被社区选举的可信账户来拥有记账权。文章还对这三种算法进行了对比分析,并解释了一致性和共识的区别。总的来说,本文通过深入浅出的方式介绍了分布式共识技术的核心概念和具体方法,为读者提供了一次全面的技术学习之旅。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式技术原理与算法解析》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(32)

  • 最新
  • 精选
  • 易儿易
    看完之后有几点没搞太明白: 1.比特币“钱”从哪来? 2.Pow算力如何证明?(老师讲的没看明白) 3.通过什么方式向全网传播? 4.“挖矿”到底是一个主动行为还是一个被动行为? 发生交易--》需要记账--》证明算力获得记账权--》记账--》收益,大致过程是这样吗? 如果对的话,那“挖矿”是不是更像一个“赏金猎人”?

    作者回复: 1.比特币系统设置的总量2100万个比特币,系统中的每个节点都有记账权,成功获得记账权的节点将获得记账奖励,这个奖励就来自于这个总量,这个就是比特币的来源。因为和黄金采矿原则类似,谁付出谁得到,因此记账的过程也被称形象的称为挖矿。 2.“利用区块的 index、前一个区块的哈希值、交易的时间戳、区块数据、nonce值,通过SHA256计算出一个哈希值”,这里的nonce值是无法直接猜出的,所以只能大量的穷举尝试并且每次尝试都需要一定的计算量,因此需要大量的计算量才能得到一个正确的nonce值。每次为了争取一个区块的记账权,而获得正确nonce值的过程就是一个PoW(工作量证明)的过程。 3.主要是通过广播的方式。 4.挖矿当然是一个主动行为,首先加入到比特币网络就是一个主动过程,就是为了通过挖矿获利。你理解的没错,总体过程就是你说的这样。“赏金猎人”这个词用的很形象:)

    2019-10-10
    5
    17
  • 陈狄
    可以理解为一致性是对外的,强调如何从外部看表现一致。而共识是对内的,强调如何达成一致吗?

    作者回复: 可以这么理解

    2020-06-21
    3
  • 忆水寒
    老师,有个地方没明白。POW算法计算题目的难度,那么各节点的题目怎么来的?

    作者回复: 各节点题目一样,就是计算文中所讲的哈希结果的前k位是0,这个k会指定,且在每个节点上是一致的

    2019-10-02
    2
    3
  • 风华笔墨
    我觉得吧,首先分布式选举和分布式共识都保证了一致。分布式选举可以类比之前讲的集中式算法,而分布式共识问题可以类比分布式算法。关于分布式记账作假问题,如果所有的交易全有美国把控,你说别国会放心吗?这就是我国会大力支持区块链的原因了吧。

    作者回复: 分布式选举和分布式共识确实都保证了一致性,一致性是分布式中最重要的一个特征。

    2020-05-20
    2
  • zhaozp
    打卡文章学习: 1、分布式一致性是指集群对外提供的数据或状态是一致的,强调的是结果。分布式共识是指集群达到一致的过程,强调的是过程。 2、分布式在线记账的3种共识算法:PoW、PoS和DPoS。 以前没接触过区块链的知识,学习了。。。

    作者回复: 业精于勤,加油!

    2019-10-08
    1
  • leslie
    打卡:提的东西没听过😂😂😂

    作者回复: 以前没听过没关系,现在听过就可以了:)

    2019-10-06
  • 哇哦
    我感觉老师如果能够在相应章节,推荐相关的阅读资料或者书籍,这样可能会更好。
    2019-10-10
    47
  • Stealer
    我感觉老师如果能够在相应章节,推荐相关的阅读资料或者书籍,这样可能会更好。 我也希望老师如果可以的话, 加上这个.
    2019-10-10
    13
  • 张理查
    分布式技术原理与算法#Day8 选主就是所有节点通过第一轮的“都听我的”到选举后的“我听你的”(当然也可能是“还听我的”)来达成共识。所以选主的过程是对主节点达成一致的共识问题,因此再来看一下分布式共识。 那么上面讲到的基于多数投票策略就是分布式共识的一种方法。而选主的本质是希望中央集权,即所有节点默认为最终要听主节点的协调与管理,但这样会有随着规模增加主节点存在性能瓶颈问题、以及篡改或破坏主节点后(比如篡改元数据)产生的安全问题。因此人们想到了”去中心化“。 中央集权制就是主节点掌管集群状态,因此对于某些去中心化场景,需要另一套分布式共识机制,来对集群的状态达成一致。去中心化的典型应用就是区块链技术,而区块链中所有机器参与记录交易,并达成一致的过程,就是我们常常提到的“挖矿”。这其中达成一致就不能通过简单的投票来决定,主要包扩“POW工作量证明”、“POS权益证明”和“DPOS委托权益证明”三种共识技术。 能够发现这三种共识技术都是证明,证明什么呢?证明的是自己有能力完成记录,从而获得记账的权利。所以虽然说是去中心化,但其实最后还是要争夺某项权利,要听某个机器的,只不过这个机器不是固定的(算法控制得好的话),因此去中心化的分布式共识包括了获得权力和达成一致两个关键点,而中心化的分布式共识实际上是将获得权利这一步提前做好了,主节点就是权利中心。 POW用来争夺记账权的衡量标准是计算能力(也就是算力),计算能力越强,单位时间的工作量肯定就越大,也就更可能获得记账权。而如何评判算力如何呢?就是所有节点都去解决一道超级难的题目,谁先解决谁就有能力。 它包括以下几个步骤: 1. 客户端广播交易 2. 各节点收到交易信息,放入一个区块,开始计算本节点区块的Hash值,竞争挖矿 3. 谁先计算完成,向全网广播这个区块 4. 各节点收到区块后验证该区块,通过后便接受,放在末尾 既然是算力决定记账权,那么好处就是当你拥有全网51%的算力后才可能攻击比特币,且允许全网50%的节点出错。但是资源耗费过多、共识达成周期长、效率较低。 POS股权模式是对POW的改进。衡量标准是系统权益。这里的权益是指的每个节点占有货币的数量和时间。持有的币越多,持有的时间越长,谁就有权力记账。这样看来POS不用浪费资源来挖矿,一定程度上缩短了共识达成所需要的时间。但劣势也很明显,就是头部节点会出现垄断(退化成了中心化) 为了解决垄断问题出现了DPOS,即委托权益证明。其实有点像多党派的模式,普通节点先推选出党领导(受托节点),再由党领导参与总统竞选。也就是先选出k个党代表,权利完全相等,党代表下去拉票,党代表展示能力的方式也是算力。最终党代表通过持股大小来竞选成为最终记账者。党代表如果性能不稳定或者存在污点(如恶意篡改行为)会被普通节点踢出候选人名单,而且每个周期会调整一批受托节点,从而消除了造假和垄断。但存在投票意愿不高等问题。 那么一致性和共识是什么关系呢? 一致性是指对外呈现状态的稳定性,比如不希望自己的支付宝余额自己看到的和银行看到的不一样。 共识是指就某项问题达成一致,比如“大家都认为你能力强”,“大家都知道你家钱多”等。 共识算法是保证一致性的核心技术
    2019-12-26
    8
  • Li Shunduo
    请问Paxos分布式共识算法和这章的算法的区别?
    2019-10-12
    3
    4
收起评论
显示
设置
留言
32
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部