区块链共识机制及其迭代

共识,Consensus,故名思义,共同的认识,共识问题研究的就是多个成员如何达成一致,典型的比如投票选举。

区块链是一种去中心化的分布式账本系统,区块链的共识问题实际上来源于分布式系统的一致性问题。

分布式一致性问题

区块链是一种去中心化的分布式账本系统,由于点对点网络下存在较高的网络延迟,
各个节点所观察到的交易事务先后顺序不可能完全一致。 因此区块链系统需要设计一种机制对在一定的时间内发生的事务的先后顺序进行共识。这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为“共识机制”。

共识机制在区块链中扮演着核心的地位,共识机制决定了谁有记账的权利,以及记账权利的选择过程和理由。不用的虚拟货币采用共识机制不同,常见的共识机制如POW,POS,DPOS,拜占庭容错等。

比特币区块链采用了 Proof of Work(PoW)的机制来实现共识,该机制于 1998 年在 B-money 设计中提出。目前,Proof of 系列中比较出名的一致性协议包括 PoW 和 PoS,都是通过经济惩罚来限制恶意参与。

POW 工作量证明

工作量证明,Proof of Work,通过计算来猜测一个数值(nonce),得以解决规定的 hash 问题(来源于 hashcash)。保证在一段时间内,系统中只能出现少数合法提案。

在比特币的区块结构中,nonce数值被保存在区块头中。

同时,这些少量的合法提案会在网络中进行广播,收到的用户进行验证后会基于它认为的最长链上继续难题的计算。因此,系统中可能出现链的分叉(Fork),但最终会有一条链成为最长的链。

hash 问题具有不可逆的特点,因此,目前除了暴力计算外,还没有有效的算法进行解决。反之,如果获得符合要求的 nonce,则说明在概率上是付出了对应的算力。谁的算力多,谁最先解决问题的概率就越大。当掌握超过全网一半算力时,从概率上就能控制网络中链的走向。这也是所谓 51% 攻击 的由来。

参与 PoW 计算比赛的人,将付出不小的经济成本(硬件、电力、维护等)。当没有成为首个算出的“幸运儿”时,这些成本都将被沉没掉。这也保障了,如果有人恶意破坏,需要付出大量的经济成本。也有设计试图将后算出结果者的算力按照一定比例折合进下一轮比赛考虑。

有一个很直观的例子可以说明为何这种经济博弈模式会确保系统中最长链的唯一。

超市付款需要排成一队,可能有人不守规矩要插队。超市管理员会检查队伍,认为最长的一条队伍是合法的,并让不合法的分叉队伍重新排队。只要大部分人不傻,就会自觉在最长的队伍上排队。

POS 权益证明

权益证明,Proof of Stake,2013 年被提出,最早在 Peercoin 系统中被实现,类似现实生活中的股东机制,拥有股份越多的人越容易获取记账权。

典型的过程是通过保证金(代币、资产、名声等具备价值属性的物品即可)来对赌一个合法的块成为新的区块,收益为抵押资本的利息和交易服务费。提供证明的保证金(例如通过转账货币记录)越多,则获得记账权的概率就越大。合法记账者可以获得收益。

PoS 是试图解决在 PoW 中大量资源被浪费的缺点。恶意参与者将存在保证金被罚没的风险,即损失经济利益。一般的,对于 PoS 来说,需要掌握超过全网30%的资源,才有可能左右最终的结果。这个也很容易理解,三个人投票,前两人分别支持一方,这时候,第三方的投票将决定最终结果。

PoS 也有一些改进的算法,包括授权股权证明机制(DPOS),即股东们投票选出一个董事会,董事会中成员才有权进行代理记账。

DPOS 委托股权证明机制

代表新型智能合约的EOS采用DPOS(Delegated Proof of Stake)委托股权证明机制。DPOS通过一定程度的中心化,拥有了中心化系统的性能优势。

中本聪设想的一cpu一票的区块链世界里,每个人都能积极参与到区块链中,这样才能实现完全去中心化的系统。但是现实生活中每个人都参与决策效率往往不高,这才出现代表大会制度。

DPOS网络中的每个持有代币的人(即每个客户端)都有权选出自己的代表,让为数不多的代表们来维护区块链网络的运行,每个区块由随机的代表轮流负责挖出。这使得区块的产生只需要被更少数量的节点检验和确认,大大提高了网络运行速度。
最重要的是这些代表权利平等,并时刻受到监督,如果因为计算不稳定,经常不在线,就会被持币者们自动踢出由新的代表所代替。而表现可靠的代表们也能稳定地收取区块中的交易手续费。

拜占庭容错

PBFT是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算法。

2657976-a03ec11d1cf3c941.png

拜占庭容错能够容纳将近1/3的错误节点误差,Hyperledger就是使用了该算法作为可插拔的共识算法之一。

步骤:

从全网节点选举出一个主节点(Leader),新区块由主节点负责生成
Pre-Prepare:每个节点把客户端发来的交易向全网广播,主节点0将从网络收集到需放在新区块内的多个交易排序后存入列表,并将该列表向全网广播,扩散至123
Prepare:每个节点接收到交易列表后,根据排序模拟执行这些交易。所有交易执行完后,基于交易结果计算新区块的哈希摘要,并向全网广播,1->023,2->013,3因为宕机无法广播
Commit:如果一个节点收到的2f(f为可容忍的拜占庭节点数)个其它节点发来的摘要都和自己相等,就向全网广播一条commit消息
Reply:如果一个节点收到2f+1条commit消息,即可提交新区块及其交易到本地的区块链和状态数据库。

原文地址:https://www.cnblogs.com/binyue/p/8576873.html

时间: 2024-11-10 05:14:42

区块链共识机制及其迭代的相关文章

区块链共识机制的演进

分布式系统的基本概念 FLP不可能原理和CAP原理 FLP 不可能原理(FLP impossibility):在网络可靠,存在节点失效(即便只有一个)的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性算法.1985年 FLP 原理实际上说明对于允许节点失效情况下,纯粹异步系统无法确保一致性在有限时间内完成. 科学告诉你什么是不可能的:工程则告诉你,付出一些代价,我可以把它变成可能. CAP 原理最早由 Eric Brewer 在 2000 年,ACM 组织的一个研讨会上提出猜想,后来

区块链开发公司 什么是区块链共识机制?

区块链是一种去中心化的分布式账本系统,由于点对点网络下存在较高的网络延迟,各个节点所观察到的交易事务先后顺序不可能完全一致. 因此区块链系统需要设计一种机制对在一定的时间内发生的事务的先后顺序进行共识.这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为"共识机制". 区块链上采用不同的共识机制,在满足一致性和有效性的同时会对系统整体性能产生不同影响.综合考虑各个共识机制的特点,从以下4个维度评价各共识机制的技术水平:1.安全性.即是否可以防止二次支付.自私挖矿等×××,是否有良好

随着区块链技术的快速迭代进化

从时代的虚拟货币,到时代的智能合约,随着区块链技术的快速迭代进化,以落地应用为代表的区块链时代已拉开帷幕,火币网官网通过标准制定.年更被视作"区块链+实体经济"在中国形成投资风口的元年.火币网官网通过标准制定.联合认证.资源整合.机制设计等方式,打造成推动区块链产业发展的权威.专业人才赋能平台. 这其中,不少上市公司凭借产业竞争力优势在这波区块链技术与实体产业应用融合的浪潮中扮演"吃螃蟹的人".根据算力智库日前发布的<"区块链+"上市公司研

区块链共识大会受热捧 技术商用迎爆发KBTC受邀参会

自巴菲特本月股东大会上指出比特币毫无价值后,比特币作为迈向区块链第一步的加密货币再度成为本次峰会的热议话题.同时,作为第四次工业革命的重要成果,区块链技术也更受关注.来自美国和欧洲的政策制定者在会上表示,在适度监管的前提下,政府鼓励区块链技术创新. 监管者鼓励技术创新 "区块链共识大会"由全球知名区块链媒体Coindesk于2015年发起,当年只有400人参加,而此次共有逾4000人出席.去年会议后,比特币价格从2000美元附近开始攀升,至11月举行"共识投资会议"

1.4 [区块链] 共识算法之争(PBFT,Raft,PoW,PoS,DPoS,Ripple)

近几天对区块链中几种常见的共识机制(PBFT,Raft,PoW,PoS,DPoS,Ripple)进行了总结.尽量使用简单易懂语言,篇幅较大,想了解的可以只读每个算法介绍中前边的原理.本篇文章主要参考<区块链技术指南>,首先表示感谢! ---Begin--- 区块链架构是一种分布式的架构.其部署模式有公共链.联盟链.私有链三种,对应的是去中心化分布式系统.部分去中心化分布式系统和弱中心分布式系统. 在分布式系统中,多个主机通过异步通信方式组成网络集群.在这样的一个异步系统中,需要主机之间进行状态

区块链共识算法实现

最近对区块链的共识算法比较感兴趣,也在尝试着使用JAVA实现它.进度不是很快,日积月累吧,目前在写POW,RAFT. POW还有一小块部分没有搞明白,还在搜索资料中. RAFT实现了第一个阶段:LEADER选举,使用了JAVA,MAVEN,DOCKER实现.虽然还有一些小瑕疵,慢慢来吧. 附上GitHub地址,希望各位大佬可以指点迷津(主要还是自学进度太慢了). 原文地址:https://www.cnblogs.com/cbkj-xd/p/11614027.html

兄弟连区块链入门到精通教程区块链共识算法分布式一致性算法Raft

Paxos自1990年提出以后,相当长时间内几乎已成为分布式一致性算法的代名词.但因其难以理解和实现,目前知名实现仅有Chubby.Zookeeper.libpaxos几种,其中Zookeeper使用的ZAB对Paxos做了大量改进.为此,2013年斯坦福的Diego Ongaro.John Ousterhout,提出了新的更易理解和实现的一致性算法,即Raft. Raft和Paxos均只要保证n/2+1节点正常,即可服务.相比Paxos,其优势即为易于理解和实现.Raf将算法分解为:选择领导者

区块链共识算法|RAFT和PBFT的区别

这里有个很形象的比喻: 一个团队一定会有一个老大和普通成员.对于 raft 算法,共识过程就是:只要老大还没挂,老大说什么,我们(团队普通成员)就做什么,坚决执行.那什么时候重新老大呢?只有当老大挂了才重选老大,不然生是老大的人,死是老大的鬼. 对于 pbft 算法,共识过程就是:老大向我发送命令时,当我认为老大的命令是有问题时,我会拒绝执行.就算我认为老大的命令是对的,我还会问下团队的其它成员老大的命令是否是对的,只有大多数人 (2f+1) 都认为老大的命令是对的时候,我才会去执行命令.那什么

区块链上的共识机制

前言 区块链上的共识机制有多种,没有一种共识机制是完美无缺的,同时也意味着没有一种共识机制是适合所有应用场景的. PoW:Proof of Work,工作量证明 依赖机器进行数学运算来获取记账权,资源消耗相比其他共识机制高.可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错1. 优缺点2: 优点:完全去中心化,节点自由进出: 缺点:目前bitcoin已经吸引全球大部分的算力,其它再用Pow共识机制的区块链应用很难获得相同的算力来保障自身的安全:挖矿