跳转至

去中心化共识机制

约 1734 个字 预计阅读时间 6 分钟

简介

去中心化的共识机制是要解决『拜占庭将军问题』1

区块链是比特币的底层技术,而 共识机制是去中心化的分布式账本中的规则核心 ,决定了区块链的安全性、可扩展性和去中心化程度等许多重要特性,有助于验证和验证信息被添加到分类账簿,确保只有真实的事务记录在区块链上

共识机制(consensus)是指以去中心化的方式就网络的状态达成统一协议的过程

常见的共识机制:

  • PoW(工作量证明)典型案例: bitcoin
  • PoS(股权证明), 典型案例: 以太坊
  • DPoS(委任权益证明), 典型案例: EOS
  • PoC (容量证明) , 典型案例: filecoin
  • PBFT(实用拜占庭容错算法)
  • Paxos算法
  • Raft算法
  • POOL(验证池)等

分布式一致性算法

拜占庭的将军们没有一个中心化的领导机构,如果他们需要攻击某个城市,所有将军需要对任何将军可能提出的攻击时间达成共识,但可能会有多个将军同时发出不同的攻击计划,并且将军中可能还有叛徒。那怎样达成共识呢?

Leslie Lamport证明当叛变者不超过\(1/3\)时,存在有效的算法。不论叛变者如何折腾,将军们总能达成一致的结果。如果叛变者过多,则无法保证一定能达到一致性。之所以难解,在于任何时候系统中都可能存在多个提案,并且要完成最终的一致性确认过程十分困难,容易受干扰

比特币的区块链网络在设计时使用的 PoW(Proof of Work)算法思路

  • 一个是限制一段时间内整个网络中出现提案的个数(增加提案成本)
  • 另一个是放宽对最终一致性确认的需求,约定好大家都确认并沿着已知最长的链进行拓宽

若比特币系统在某一个时刻同时出现了两个都合法的区块,那么两个都承认。于是区块链上会出现两个合法的分支(称为分叉)。此时矿工可以选择任何一个分支继续,在某个分支的长度超过了另一个分支时,短的那个分支则马上作废

拜占庭容错系统三个重要理论:

  1. CAP——在网络发生阻断(Partition)时,只能选择数据的一致性(Consistency)或可用性(Availability),无法两者兼得, 比如网络因阻断而分割为二, 在一边我10\(给A, 另一边我10\)给B, 此时系统:

    • 要么是(1). 无可用性, 即这两笔交易至少会有一笔交易不会被接受
    • 要么是(2). 无一致性, 即一边看到的是A多了10\(而另一边则看到B多了10\)
  2. FLP 和 DLS

工作量证明(PoW)

        比特币的挖矿算法并不是比特币开创的,原型为Hashcash,最开始是限制垃圾邮箱的; Hashcash一开始要求邮件发送方对邮件头(其中包括时间和收件人地址)计算一个160bit的SHA-1哈希值。其前面需要有5个零,也就是20bit的0。接收端会检查这个事; 这对于需要大量发送垃圾邮件的人来说,是一个很大的成本 ; 用这种消耗对手资源的手段来阻止一些恶意的攻击或是像垃圾邮件这样的对服务的滥用, 即 PoW(Proof-of-Work)

PoW两种协议:

  1. Challenge-Response协议, 用于Client-Server; 若Client需要使用服务,则需要被Challenge去花费一些资源, 若证明自己的资源已被花费了,则通过认证,授权使用 e.g

  2. Solution-Verification协议,用于验证使用, Hashcash即是这种 e.g

通过挖矿——PoW这样的协议来大幅度地提高修改成本,使得有恶意的人要改一个地方,需要花很大很大的成本来修改。这几乎是一件不可能的事情; PoW还有另一个功能,即让这些不受控制的分布式P2P网络里的结点统一思想。又即 分布式一致性

总之:

  • PoW提高对数据篡改的成本, 若想完全修改需要大量算力
  • 提高网络中不同声音的成本 (要做一个伪造账本的成本极大,而校验成本很小)
  • 解决分歧 (让整个去中心化系统的一致性,不再以人数多认可的为准,而是以算力多的)
  • 越来越中心化地记账 & 越来越跑不动

股权证明协议(PoS)

PoW中,要找到符合条件的Hash值,其耗费的电力和时间成本是越来越大。故为了每个Block更快的生成,出现了PoS; 在此机制下, 矿工不在叫矿工,而是叫Validator(校验者), 他们将按照股权的比权来获得记账权; 在记账权不再像PoW谁的算力大谁就越有机会来记账,而是由谁的财富多,谁就越有可能来记账。即记账权按大家财富的比例来分配

  • 在以太坊下,是根据拥有以太币的总量,来决定成为Validator的几率

缺点: 在PoS这种不需要算力的机制下,就可以让记账人们在两个分支上同时进行,以争取实现利益的最大化(无论哪个分支最终胜出,我都可以有利)。这样一来,攻击者就可以利用这种情况来发起Nothing-ot-Stake攻击 , 于是提出了DPos

委托股权证明(DPoS)

        DPoS优化方案在于:通过不同的策略,不定时地选中一小群节点,这一小群节点做新区块的创建、验证、签名和相互监督。即允许网络用户投票和选举将验证该网络上交易的代表, 这样就大幅度减少了区块创建和确认所需要消耗的时间和算力成本

Note

分布式系统的CAP原则,在 一致性、可用性和分区容忍性 上只能三选二

在区块链的P2P网络下也如此,在 去中心化、安全和高性能 中,只能选两个

  • 若想要一个既安全,性能也很高的系统,就得放弃去中心化的架构, 如DPoS这样的中心化系统,直接放弃区块链走传统的中心化架构

  • 若想要一个去中心化和安全的系统,主要去挖矿,那么放弃高性能。即比特币架构

  • 若想要一个去中心化和高性能的系统,即放弃安全。但没有安全,基本是不会有人用


  1. 拜占庭将军问题(Byzantine Generals Problem),是由Leslie Lamport在其同名论文中提出的分布式对等网络通信容错问题, 用来解释一致性问题的一个虚构模型。同时,它也是分布式领域中最复杂、最严格的容错模型 

颜色主题调整

快来和我聊天~

可以的话请给我赞和 star喔~    =>  GitHub stars

评论