阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。
摘要:区块链是一种去中心化的分布式账本数据库。基于去中心和分布式的特点,在区块链系统中会面临一致性和信任问题,如何让不可信的各参与方达成共识呢,这时我们就需要依赖可靠的共识算法了。
本文分享自华为云社区《【云小课】应用平台第18课 区块链关键技术之一:共识算法》,作者:阅识风云 。
共识算法到底是什么?
所谓共识,字面意思就是大家都达成一致的意思,例如篮球比赛,为了能正常开展比赛,所有参与者都要对比赛规则达成共识。简单来讲,共识算法就是指在区块链网络中通过算法手段让所有参与者对某个确定的结果达成一致的一套规则。
区块链为什么需要共识算法
假如没有共识算法,在去中心化的区块链网络中,每个参与者都有一个账本,谁都可以随意篡改账本内容,然后说自己的账本才是合法的,那系统岂不是乱套了。没有规则不成方圆,共识算法作为区块链技术的核心和基础,就好比一个国家的法律,使得区块链能够实现交易的去中心化,同时确保每笔交易在所有记账节点上的一致性和正确性,并得到所有参与方的认可。
那么作为区块链技术的第一个应用比特币是怎么解决这个问题的呢。中本聪在比特币的白皮书中有提到将工作量证明(PoW:Proof of Work)作为了比特币的共识算法,PoW简单理解,就是通过工作量抢夺决策权,你付出越多工作量,就越有机会获得多少记账权(例如比特币)。
除了工作量证明,区块链系统中常见的共识算法有哪些呢?
共识算法示例
由于区块链系统的去中心化,开放性,可扩展性等特性,需要不同的共识算法来实现不同的应用场景,因此产生了很多种类型的共识算法,例如工作量证明PoW(Proof of Work), 权益证明PoS(Proof of Stake),委托权益证明DPoS(Delegated Proof of Stake), 实用拜占庭容错算法PBFT(Practical Byzantine fault tolerance),权威证明PoA(Proof of Authority),使用时间证明PoET(Proof of Elapsed Time),容量证明PoC(Proof of Capacity),空间证明PoSpace(Proof of Space)等。
接下来,简单介绍区块链应用中常见的这三种共识算法:工作量证明PoW(Proof of Work), 权益证明PoS(Proof of Stake),委托权益证明DPoS(Delegated Proof of Stake)。如图所示:
三种共识算法对比差异请参考如下表1-1:
总的来说,每种共识算法都有自己的优势,所以要结合实际应用场景选择适合的算法。
工作量证明PoW主要是依靠计算机性能决定记账,性能越高,就越有机会获取记账的权利;但是这会导致大量资源的浪费。这时权益证明PoS出现了,主要解决 PoW 机制中大量资源被浪费的情况,即参与者持有币的时间越长,难题越简单,挖到币的概率越大;但是容易产生垄断。在PoS基础上设计出了委托权益证明DPoS,类似于投票选举的共识算法。相对于PoW和PoS,DPOS机制最大的优点之一是共识达成的周期要短很多。
共识算法在华为云的应用
华为云区块链服务(Blockchain Service简称BCS)支持Hyperledger Fabric增强版和华为链服务,主要应用的是快速拜占庭容错共识算法(FBFT)和Raft(CFT)共识算法,两种共识算法介绍请看下图:
1.Hyperledger Fabric增强版:支持快速拜占庭容错共识算法(FBFT)和Raft(CFT)共识算法。
以Hyperledger Fabric 为内核,基于华为云全栈可信能力,包括弹性服务器,企业级容器、安全和人工智能等服务,在保持无缝社区对接方式前提下,在可靠性、性能、隐私保护方面做了增强和提升,满足企业级和金融级业务要求。
2.华为链服务:支持Raft(CFT)共识算法。
以BCS自主研发区块链内核为底座,结合可信硬件,具有高安全、高性能、高可扩展、强隐私保护等特点,满足企业级和金融级的可信和协同要求。
下期预告
听了区块链共识算法的介绍,是不是觉得很神奇呢。下期小编继续带着大家一起学习探讨区块链技术:智能合约,敬请期待,记得关注哦~~
【后续】更多区块链知识等你来解锁哦~~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。