我们知道基于区块链技术现在有很多的共识机制,包括不限于POW,POS,DPOS,PBFT……,我先不说为什么我最认可POW,我们先来看看著名的拜占庭将军问题:

拜占庭帝国即中世纪的土耳其,拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。
然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那么入侵者可能都会被歼灭。
于是每一方都小心行事,不敢轻易相信邻国。这就是拜占庭将军问题。

在拜占庭将军问题里,最重要的事情是如何让所有将军达成一致,如果中间出现了被拜占庭帝国收买的将军导致只有半数以下的将军攻打拜占庭,那么基本上这些国家将会灭亡,所以建立信任是攻打拜占庭帝国最关键的一环!

而这个经典的问题其实在我们现实的生活场景也会经常发生,如果这些将军中出现了叛徒,他们会产生很多坏的作用,如:

  1. 叛徒欺骗忠诚的将军自己采取行动
  2. 叛徒可能怂恿其它将军行动
  3. 叛徒发出干扰指令,迷惑将军使他们感到无所适从

模型假设一:假设只有3个将军A,B,C,假如只有一个人A是叛徒。A告诉B进攻,但告诉C撤退,B告诉C接收A的命令是进攻,而C接收到A的命令是撤退,这时候B和C都会迷惑,B和C都会怀疑对方或者A是叛徒!
模型假设二:假设只有4个将军A,B,C,D,假如只有一个人A是叛徒。A怎么传达消息都会造成有两个人是一样的消息,另一个人是另外对立的消息!假如A告诉B,C进攻,但告诉D撤退,B从C和D接收的是”A发送给他们的一个是进攻一个是撤退“,C从B和D接收和B的情况一样,那么B认为C和A都是进攻命令,C同理B,所以B和C都会发起进攻,而D也接收到B和C从A接收的信息是进攻,少数服从多数的原则,D也会发起进攻,这样总共有三个人发起进攻,就能保证拿下拜占庭了!

所以科学家针对拜占庭问题进行研究得出结论:如果将军总数为m,叛徒数量为n,当m<3n+1的时候(即叛徒数量大于或等于总人数的三分之一),拜占庭问题是不能被解决的!,这个时候信任是不能被建立的。
但实际上,可能是所有忠诚的将军永远不知道会有多少叛徒,即使实际上没有叛徒他们也不敢冒险去相信别的将军,他们永远不会把家国的命运赌在那三分之一上!
到最后这就变成了大家都不进攻的局面!,所以如果谁能解决这个信任问题,那么我想十个将军会拿出无数具有异国风情的失足少女来让他拯救一下!

而解决这个问题的方案在2008年让中本聪找到了,就是区块链技术。

假如10个将军每个人都有一台电脑,区块链在一段时间内只允许一个将军发出信息,这在某种程度上防止了各个将军各说各的进攻方案造成混乱,当然由谁来第一个发出又有最后一个发出呢?

这个问题问到点子上了,中本聪巧妙的提出了工作量证明(pow),每个将军都必须完成一个10以内加减法后才能发出消息,当某个节点发出统一进攻的消息后,各个节点收到发起者的消息必须签名盖章,确认各自的身份。而中本聪在这里使用现代加密技术为这个信息签名。

这种加密技术——非对称加密完全可以解决古代难以解决的签名问题,它具有以下特点:

消息传送的私密性
能够确认身份
签名不可伪造、篡改。

非对称加密算法的加密和解密使用不同的两个密钥.这两个密钥就是我们经常听到的公钥和私钥。

非对称加密的作用有两个,一来保护消息的内容,二来让接收方确认发送方的身份

假如将军A想给将军B发送消息,为防止消息泄露,将军A只需要使用B的公钥对信息加密,而B的公钥是公开的,只有B使用它的私匙才能解密。

将军B想要在信件上声明自己的身份,他可以自己写一段”签名信息“,并用私钥签名,最后发布出去,所有人可以根据B的公钥来验证该签名,确定的B的身份。

由此,一个不可信的分布式网络变成了一个可信的网络,所有的参与者可以在某件事在达成一致。

好,那么网络信任的问题解决了,那么如果10个将军都做出了第一个算术题,谁来第一个发送呢?

所以中本聪又巧妙的设计了时间戳,每个将军解题的时间盖上了时间戳,第一个解题的人就拥有本轮的发送消息的权利,对应到区块链上就是第一个完成有效计算的矿工的区块是有效的。

那么问题又来了,将军第一个发消息和最后一个发没什么区别,为什么要第一个发呢去做加减法呢?
中本聪就用比特币来奖励完成计算挖出区块的矿工来激励有人不断的打包区块。同样对将军来说,第一个发消息的人可以获得更多的战利品,可以拯救更多的失足少女。

到这里,我们应该明白了区块链建立信任是可行的,但是必须有激励机制来保证它的稳健运行!所以工作量证明在此时显得非常有意义,挖矿在某种程度上是信任建立的基础,因为建立信任的成本永远不可能是0,除非有天实现了大同社会,否则消耗那些能源来进行挖矿来建立信任完全是不用计较的。

但是有人会说比特币是每四年减半的,代表着以后每个区块挖出来比特币奖励会很少,这可能会导致矿工打包交易的手续费会变高,否则矿工不会有动力去挖区块,参与的人减少,算力减少,区块链的安全不安全了,会承受51%攻击。实际上矿工如果不是诚实挖矿来伪造交易的话,比特币持有人将会对比特币失去信心,只有第一批伪造交易的人会受益,后面伪造交易的矿工获得再多的比特币也没有意义!实际上由于比特币的先发优势,全球的算力已经很分算了,就算是传说掌握了70%算力的中国除非是几大矿池联合才能伪造交易,但是如此劳神费力去让他们已经挖出的很多比特币变得没有意义他们会做吗?而且我们可以等到六个确认之后才确认交易完成,因为六个确认表示伪造者必须成功连续计算出六个区块才能伪造成功!

所以在我看来pow是目前最合适的共识机制,而在权益证明机制POS中,权益越大的人获得记录权利的概率越高,而记录的人就会有奖励token ,这样一来这些人就会越来越富有,贫富差距就会越来越大。持有token少的人几乎都没有话语权了。
权利掌握在少数人手中,这有违区块链去中心化理念,而在PBFT中,由所有人投票,如果一个没有任何token余额的人想要捣乱,那他几乎是完全没有利益损失。

一直被鼓吹的EOS就是由十几个超级节点来进行公示信息,所以才能达到那么高的tps,那么个人愚见这和中心化的支付宝有何区别,当然支付宝tps可能更高。所以我们不得不承认比pow效率高的去中心化必然没有它高。

安全、去中心化、效率在现在看来是不可能三角,三者只能取其二,而且我们不难发现区块链在某种程度上和互联网互为镜像,我们更不能用互联网思维来看区块链,所以我们也不能说中心化就一定不好,去中心化就一定要吹上天,尺有所长,寸有所短,我们应该辩证且理性的看来这两个领域,让时间说话,二者都必然会在自己适合的领域更好的服务经济、服务整个社会!

闲来无事瞎聊聊自己的想法,可能还很初级,请多指教!

转自:https://zhuanlan.zhihu.com/p/33766317

(转)从拜占庭将军问题谈谈为什么pow是目前最好的共识机制的更多相关文章

  1. [区块链] 拜占庭将军问题 [BFT]

    背景: 拜占庭将军问题很多人可能听过,但不知道具体是什么意思.那么究竟什么是拜占庭将军问题呢? 本文从最通俗的故事讲起,并对该问题进行抽象,并告诉大家拜占庭将军问题为什么在区块链领域作为一个重点研究问 ...

  2. 两将军问题、拜占庭将军问题、TCP三路握手过程的联系

    2015年初时产生了一个疑问:基于不可靠的通信链路,为什么在两将军问题中永远无法达到共识,而在TCP三路握手中可以? 今天抽出了一些时间进行研究发现,实际上TCP三路握手也不是完全可靠的,只是一个近似 ...

  3. 一致性hash理解、拜占庭将军问题解读和CAP理论总结

    一致性hash理解 白话概述: 比如说存储图片,有10台服务器用来存储,对图片名进行hash(pic_name)%10得到的值就是图片存放的服务器序号.这是正常的hash算法分散图片存储.但是有一天, ...

  4. 拜占庭将军问题(Byzantine Generals Problem),一个关于分布式系统容错问题故事

    拜占庭将军问题(Byzantine Generals Problem),一个关于分布式系统容错问题故事 背景:拜占庭帝国派出10支军队,去包围进攻一个强大的敌人,至少6支军队同时进攻才能攻下敌国. 难 ...

  5. 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用  c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网

    任何国家都无法限制数字货币.为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用  c.分布式算法的实现 d.数据存储技 ...

  6. 区块链共识机制:POW、POS、DPOS、PBFT、POOL

    共识机制作为区块链的关键技术之一,在业务吞吐量.交易速度.不可篡改性.准入门槛等等方面发挥重要的作用. 区块链是去中心化的,没有中心记账节点,所以需要全网对账本达成共识.目前有POW.POS.DPOS ...

  7. 区块链共识机制(POW、POS、DPOS等)的优缺点

    一.POW:工作量证明机制 基本原理: 第一代共识机制,比特币的基础.理解起来,很简单,就是“按劳取酬”,你付出多少工作量,就会获得多少报酬(比特币等加密货币).在网络世界里,这里的劳动就是你为网络提 ...

  8. 通俗讲解:PoW共识机制与以太坊的关系、Ghost协议 及 PoS共识机制的变种---Casper

    作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...

  9. (转)区块链共识机制分析——论PoW,PoS,DPos和DAG的优缺点

    近期,随着区块链技术在社区中的声音越来越大,业界已经开始从技术角度对区块链进行全方位的解读.作为第一批区块链技术的实现,传统比特币与以太坊在共识机制.存储机制.智能合约机制.跨链通讯机制等领域并没有非 ...

随机推荐

  1. windows下模拟网络延时、丢包、抖动

    1.Fiddler 免费软件 模拟网速功能比较单一(Rules --> Performance --> Simulate Modem speed),选项较少,Fiddler仅是减缓带宽并未 ...

  2. 数据结构与算法——基数排序简单Java实现

    基数排序(radix sort)又称“桶子法”,在对多个正整数进行排序时可以使用.它的灵感来自于队列(Queue),它最独特的地方在于利用了数字的有穷性(阿拉伯数字只有0到9的10个). 基数排序使用 ...

  3. H - Being a Good Boy in Spring Festival

    一年在外 父母时刻牵挂 春节回家 你能做几天好孩子吗 寒假里尝试做做下面的事情吧 陪妈妈逛一次菜场 悄悄给爸爸买个小礼物 主动地 强烈地 要求洗一次碗 某一天早起 给爸妈用心地做回早餐 如果愿意 你还 ...

  4. web 常用开发工具

    he把字符转化为实体字符 awesome-vue Vue资源 clipboard.js 粘贴板 Share.js 一键分享 nock 模拟异步数据 Clamp.js 限制文本最大行数 pinyin 将 ...

  5. 火狐浏览器报错“support.mozilla.org

    火狐浏览器有时候再打开新网页会报此错“support.mozilla.org 有时候火狐浏览器会出现如下状况 解决方法 在地址栏键入”about:config” 点击“我了解此风险” 在下方任意位置右 ...

  6. Java 文件读写操作

    1[1]按字节读写,一次只读取一个字节,效率比较低 package bk1; import java.io.File; import java.io.FileInputStream; import j ...

  7. Android最全开发资源(申明:来源于网络)

    Android最全开发资源(申明:来源于网络) 地址:http://www.jianshu.com/p/0c36302e0ed0?ref=myread

  8. python----流程控制

    计算机程序在解决某个具体问题时,包括三种情形,即顺序执行所有的语句.选择执行部分的语句和循环执行部分语句,这正好对应着程序设计中的三种程序执行结构流程:顺序结构.选择结构和循环结构. 事实证明,任何一 ...

  9. 洛谷P1074 靶形数独【dfs】【剪枝】

    题目:https://www.luogu.org/problemnew/show/P1074 题意: 数独的分数如下.一个数独的总分数就是权值乘所填数字之和. 现在给一个未完成的数独,问分数最高的数独 ...

  10. POJ 1488 - TEX Quotes

    Description TEX is a typesetting language developed by Donald Knuth. It takes source text together w ...