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

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

团队里的共识机制延伸到普通的分布式系统里面,就是系统需要有一个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算法。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,951评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,606评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,601评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,478评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,565评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,587评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,590评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,337评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,785评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,096评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,273评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,935评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,578评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,199评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,440评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,163评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,133评论 2 352

推荐阅读更多精彩内容

  • 1.介绍 本文旨在对Aeternity区块链的架构和可能的应用进行总览。未来我们将提供更细致的论文,尤其是针对共识...
    X1nMa阅读 1,338评论 0 5
  • 区块链(BlockChain),是区块(Block)和链(Chain)的直译,其数据结构如图1所示,即每个区块保存...
    简闻阅读 1,280评论 0 8
  • 一、前言 先说一下我使用Excel表的内容转为json的应用场景,我们是用来处理国际化的时候用到的。 二、具体操作...
    挑战者666888阅读 863评论 1 5
  • 抚指间,细纱漂泊水相恋,琴书雪落际纷飞,星点缀,火成灰,凡夫俗子...
    琉璃盏中颜如玉阅读 280评论 0 3