共识算法
传统商业网络面临的挑战:
每个参与方都有自己的账本,在交易发生时修改各自账本
为了协同各参与方需要增加中介等额外的工作及附加成本
由于业务条件(合同)- 重复分散在各个参与方造成整体业务流程的低效
整个业务网络依赖于一个或几个中心系统,一旦中心系统发生问题如欺诈、网络攻击或错误将导致整个商业网络
问题:效率低下, 成本高, 易遭攻击
解决方案:所有成员共享账本的区块链系统
共享账本:区块链架构使每一个商业网络的参与方共享同一帐本,当交易发生时,通过点对点的同步更改所有账本。
安全隐私:使用密码算法确保网络上的参与者仅仅可以看到和他们相关的账本内容,确保交易的安全、授权和验证性。
智能合约:区块链也将资产转移交易相关的合同条款嵌入交易数据库以做到满足商务条件下交易才发生。
共识算法:网络参与者基于共识机制来保证交易是共同验证的。商业网络满足政府监管、合规及审计。
建立多中心化,共识, 可信, 不可篡改, 可追溯商业网络。
需要解决的问题:多人共同记账,以谁记的为准?
1、出个猜谜题谁先猜出来给谁? 比特币工作量证明
2、每隔一段时间选个组长,大家举手表决是否同意组长的记账? 实用拜占庭容错协议
3、利用可信硬件掷骰子,选数字最小的? 最小幸运数算法
高性能方案:提供多种安全、高效共识算法,按需选择
证明类共识机制 :
工作量证明机制PoW
股权证明机制PoS
权威证明机制PoA-Clique
投票类共识机制:
经典Paxos
不考虑拜占庭RAFT
拜占庭容错机制PBFT
拜占庭容错机制(其他BFT类)
BFT共识
共识算法总览
共识算法名称 | 中心化 | 延时/吞吐量 | 一致性 | 适用区块链场景 | 备注 |
实用拜占庭容错(PBFT) | 部分去中心化,预设了决策角色(无Leader) | 低/较高
| 最终收敛 | N/A | 后面所有协议本质上都是拜占庭容错的改进。几位将军如何在有一定数量个叛徒的条件下达成一致决策,即分布式系统如何在部分信任环境下如果取得状态一致 |
Paxos/Raft | Paxos允许有多个Leader,Raft有单一Leader | 低/高 | 最终收敛 | 私有链、信任度高的联盟链 | 简化了拜占庭将军问题,排除拜占庭节点的存在,仅考虑节点之间由于网络中断、系统崩溃等原因导致无法正常沟通时的状态一致性问题 |
工作量证明 Proof-of-Work(PoW) | 完全去中心化 | 高/低 | 依概率收敛 | 公有链 | 首个在完全不信任的网络环境中可以达成状态一致的共识算法;需要消耗大量的计算资源,安全性依赖网络中诚实节点的计算资源总和 |
股权持有证明 Proof-of-Stake(PoS) | 持有更多股份者有较大权利,可能有中心化倾向 | 中/依赖实现 | 依赖实现 | 公有链、联盟链 | 克服了PoW浪费大量算力的缺点。PoS的基本原理是将区块链系统内用户的一部分资源作为其信用的凭证,让其在一致性决策时拥有较大的话语权。例如和PoW结合可以依据资产降低挖矿难度;或者由资产最多的用户选择100位其它用户作为代表决策投票;或每若干块由持股人投票持久化分支;设计时考虑需短程攻击、长程攻击、无成本作恶等问题 |
典型改进协议 (Ripple、Stellar、Tendermint等) | 依赖实现 | 低/高 | 最终收敛 | 联盟链 | Ripple是拜占庭容错的一个实现,每个节点可以按照规则信任其它节点,每个共识周期中对尚未确认的Tx进行多轮投票来决定是否将其永久记录;Tendermint可以看作是PoS和PBFT的结合;Stellar恒星协议是提供了更灵活信任容忍度的经典PBFT改进方案 |
Intel PoET(Elapse Time) | 去中心化 | 低/高 | 最终收敛 | 联盟链 | 使用Intel的可信执行环境(TEE),根据芯片产生的等待时间随机产生Leader,生成新的Block;所有节点必须使用Intel的芯片 |
习题:
1. 下列哪些不是投票类共识机制?
A.POS B.DPOS C.RAFT D.PBFT
答:AB
(POS:Proof of Stake,股权证明;DPOS:Delegated Proof of Stake,委任权益证明,均为股票类)
2. 基于pbft的orderer节点最小是几个?
A. 2 B. 3 C.4 D. 6
答:C
3. 下列哪步属于PBFT的3阶段协议?
A. pre-prepare B. prepare C. commit D. reply
答:ABCD
4. PAXOS保证超过多少节点正常,系统可以共识?
a. 1/2 b. 1/3 c. 1/4 d.1/5
答:A
5. ACID原则包括哪些?
a.Atomicity(原子性) b.Consistency(一致性) c.Isolation(隔离性) d.Durability(持久性)
答:ABCD
(知识点图片均来自于课程教材)