从分布式一致性到区块链共识机制

作者: 梦想天空分为蓝 | 来源:发表于2017-07-04 23:03 被阅读346次

首先什么是共识机制?共识机制就是在一个群体中的个体通过某种方式达成一致性的一种机制,比如在一个团队、或者一个公司里的个体意见不一致时,就需要有一个领导,由领导来做决定,保证团队达成共识。

团队里的共识机制延伸到普通的分布式系统里面,就是系统需要有一个master,系统的所有决定都由master来达成共识,在分布式系统里面master的选举其实就是基于某种共识机制达成共识。

到了区块链中,由于区块链是一种去中心化的分布式系统,所以区块链中是没有类似于团队里的领导,以及分布式系统中的master的角色,这样就需要有某种共识机制,以便保证系统一致性。

实际上当节点之间的通信网络不可靠的情况下,系统是无法达成共识的,具体原因请参考“两军问题"。即使在网络通信可靠的情况下,一个可扩展的分布式系统的共识问题也是无解的。这个结论被称为”FLP不可能性原理“,又称为分布式领域的”测不准原理“,原理请参考”拜占庭将军问题“。一般的把故障(不响应)即信道不可靠的情况称为”非拜占庭错误“,恶意响应(即系统被攻击)称为”拜占庭错误“。

以上只是学术上的理论值,现实系统中我们付出一定的代价总是能做到一定程度的共识。详情可参考CAP理论

比特币区块链采用了一种工作量证明(Proof of Work)的共识机制来解决区块链中的一致性问题,工作量证明通过猜测一个数值,来解决规定的hash问题,保证一段时间内,系统中只能出现少数合法提案,这也是为什么比特比挖矿每隔10分钟成功一次的原因。理解工作量证明的一个好的例子是这样的:”给定的基本字符串“hello,world!",我们给出的工作量要求是,可以在这个字符串后面添加一个叫做nonce的整数值,使得变更后的字符串的SHA256哈希运算的结果有4位的前导0,即以”0000“开头,则此结果符合要求,验证通过。为了通过验证,我们需要不停的递增nonce的值,对新字符串进行SHA256哈希运算,这里的规则需要4251次计算才能得到符合要求的结果,当然在真实的区块链中的工作量证明的算法要复杂的多,得到符合要求的结果所需的工作量也要大的多。

比特比中的工作量证明机制步骤如下:

1.生成Coinbase交易 ,并与其他所有将要打包进区块的交易组成交易列表,通过Merkle Tree算法生成Merkle Root Hash.

2.把Merkle Root hash以及其他相关字段组成区块头,讲区块头的80字节 数据作为工作量证明的输入。

3.不停的变更区块头中的随机数即nonce的数值,并对每次变更后的的区块头做双重SHA256运算(即SHA256(SHA256(Block_Header))),将结果值与当前网络的目标值做对比,如果小于目标值,则解题成功,工作量证明完成。比特币区块头信息 如下:

Paste_Image.png

区块头大小80字节,有4字节的版本号,32字节的上一个区块的散列值,32字节的merkle Root hash、4字节的时间 戳,4字节当前难度值,4字节随机数组成,区块中的第一比交易为coinbase交易。merkle Root hash是一种父节点为两个孩子 节点的哈希值得二叉树,这种数据结构的特点是,对底层数据的变动都会传递到根节点,更多资料请自行查询。

其他的共识机制还有股权证明机制(Proof of stake,POS),授权拜占庭容错机制(delegated BFT),拜占庭容错算法(PBFT),以及zookeeper中使用的Paxos算法。

如果你对区块链感兴趣,可以加我的个人微信交流。

相关文章

  • 漫谈区块链共识机制

    共识机制是区块链的一个核心特征,是保证区块链系统在分布式架构下的一致性方案。目前主流的也有好多种共识算法:POW、...

  • 对共识的理解

    区块链将共识放在了突出的地位。共识机制的设计决定了一个区块链项目的成败。 作为分布式记账系统,区块链共识机制首先是...

  • 区块链理解

    区块链 区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的 新型应用模式。所谓共识机制是区块链系...

  • 区块链是什么?

    区块链 区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统...

  • 区块链

    区块链 区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统...

  • 共识机制

    共识机制是区块链技术的灵魂。 区块链共识机制的目标是使所有的诚实节点保存一致的区块链数据,同时满足2个性质:一致性...

  • 什么是区块链,区块链有什么作用?

    区块链的含义 区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块...

  • 区块链数字资产投资标的探究-区块链应用生态阐述和投资逻辑分析(一

    1、区块链介绍 1.1 区块链概述 区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法...

  • 《区块链开发指南》笔记~区块链定义

    技术层面 区块链是一个基于共识机制、去中心化的公开数据库。共识机制是指在分布式系统中保证数据一致性的算法;去中心化...

  • 区块链中的共识机制

    区块链解决了在不可信信道上传输可信信息、价值转移的问题,而共识机制解决了区块链如何在分布式场景下达成一致性的问题。...

网友评论

    本文标题:从分布式一致性到区块链共识机制

    本文链接:https://www.haomeiwen.com/subject/ivzxhxtx.html