第04讲 共识机制:从拜占庭共识谈起.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4讲 共识机制:从拜占庭共识谈起 15次阅读??03-23 人人能懂的区块链:从基础到实战 ? 量子学派 如果说区块链是比特币运行的躯干, 那共识机制就是灵魂。 【区块链的哲学三问】 ? 区块链被确认有以下三个基本特征: 1、区块链是一个分布式数据库(系统)。 2、区块链采用密码学保证已有数据不被篡改。 3、区块链采用共识算法来对于新增数据达成共识。 这3点可以简单地从哲学上理解为:我是谁,我来自哪里,我要去哪里。 我是谁?我是一个分布式的数据库。 我来自哪里,密码学告诉我过往的记忆。 我要去哪里,共识算法告诉我应该怎么往前走。 区块链技术的伟大之处,就是它的共识机制在去中心化的思想上解决了节点间互相信任的问题。区块链拥有众多节点并达到一种平衡状态是因为共识机制,尽管密码学占据了区块链的半壁江山,但是共识机制才是让区块链系统不断运行下去的关键。 要深入谈及区域链的共识机制,就避不开一个问题:拜占庭问题。 【关于拜占庭问题及其分析】 ?? 拜占庭问题是容错计算中的一个老问题,由莱斯利?兰伯特(Leslie Lamport)等人在1982年提出:“拜占庭帝国为5~15世纪的东罗马帝国,拜占庭城邦拥有巨大的财富,令它的十个邻邦垂涎已久。但是拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个城邦的入侵行动都会失败,而入侵者的军队也会被歼灭,使得其自身反而容易遭到其他九个城邦的入侵。这十个城邦之间也互相觊觎对方的财富并经常爆发战争。” 拜占庭的防御能力如此之强,非大多数人一起不能攻破,而且只要其中有一个邻邦背叛盟军,那么该邻邦所有进攻军队都会被歼灭,并随后被其他邻邦所劫掠。因此,这是一个由互不信任的各个邻邦构成的分布式网络,每一方都小心行事,因为稍有不慎,就会给自己带来灾难。 为了获取拜占庭的巨额财富,这些邻邦分散在拜占庭的周围,依靠士兵传递消息来协商进攻目的及进攻时间。这些邻邦将军想要攻克拜占庭,面临着一个困扰,邻邦将军不确定他们中是否有叛徒,叛徒是否擅自变更进攻意向或者进攻时间。在这种状态下,将军们能否找到一种分布式协议来进行远程协商达成他们的共识,进而赢取拜占庭城邦的财富呢? “拜占庭问题”模型中,对于将军们(节点)有两个默认的假设:? 所有忠诚的将军收到相同的命令后,执行这条命令得到的结果一定是相同的; 如果命令是正确的,那么所有忠诚的将军必须执行这条命令。 假设1的含义是:所有节点对命令的解析和执行是一样的,这个命令必须是一个确定性的命令,不能存在随机性,也不能依赖节点自身的状态。(这个命令不能是心情好就攻击敌人,心情不好就原地休息。) 假设2的含义是:忠诚的将军需要判断接收到的命令是不是正确的。这个判断命令的方法是整个拜占庭容错技术的核心。 对于将军们的通信过程,在“拜占庭问题”中也是有默认假设的:点对点通信是没问题的。也就是说,在这里,我们假设A将军要给B将军一条命令X,那么派出去的传令兵一定会准确地把命令X传递给B将军。如下图: 问题在于,如果每个城邦向其他九个城邦派出一名信使,意味着这十个城邦每个都派出了九名信使,也就是在任何一个时间有总计九十次的信息传输,并且每个城市分别收到九条信息,可能每一条都写着不同的进攻时间。 除此以外,信息传输过程中,如果叛徒想要破坏原有的约定时间,就会自己修改相关信息,然后发给其他城邦以混淆视听,这样的结果是部分城邦收到错误信息后,会遵循一个(或者多个)城邦已经修改过的攻击时间相关信息,从而背叛发起人的本意,由此遵循错误信息的城邦(包含叛徒)将重新广播超过一条信息的信息链,整个信息链会随着他们所发送的错误信息,迅速变质成不可信的信息和攻击时间相互矛盾的纠结体。 针对拜占庭问题的解决方法包括:口头协议算法、书面协议算法等。 口头协议算法的核心思想如下:要求每个被发送的消息都能被正确投递,信息接收者明确知道消息发送者的身份,并且信息接受者知道信息中是否缺少信息。采用口头协议算法,若叛徒数少于1/3,则拜占庭问题可解。也就是说,若叛徒数为m,当将军总数n至少为3m+1时,问题可解。 然而,口头协议算法存在着明显的缺点,那就是消息不能溯源。为解决该问题,提出了书面协议算法,该算法要求签名不可伪造,一旦被篡改即可发现,同时任何人都可以验证签名的可靠性。 书面协议算法也不能完全解决拜占庭问题,因为该算法没有考虑信息传输延时、其签名体系难以实现的问题,且签名消息记录的保存难以摆脱中心化机构。 ?? 【以比特币为例的区块链共识机制解决方案】 ?? 中本聪所创建的比特币通过对这个系统做出一个简单的变化解决了这个问题,它为发送信息加入了成本,这降低了信息传递的速率,并加入了一个随机元素,以保证在一个时间只有一个

文档评论(0)

___________ + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档