今天给大家聊到了拜占庭区块链怎么样了,以及拜占庭理念组相关的内容,在此希望可以让网友有所了解,最后记得收藏本站。
19年06月06日,祝六六大顺。
我们以前常看到以太坊拜占庭分叉,这个拜占庭又是什么意思呢?
拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。
由于当时拜占庭罗马帝国国土辽阔,为了达到防御目的,每个军队都离得很远,将军与将军之间只能靠信差传消息。在战争期间,拜占庭军队内所有将军必须达成一致共识,全体都决定认同有赢的机会才能去攻打敌人的阵营。
但是,在军队内有可能存有叛徒和敌军的间谍,他们可能影响将军们的决定、甚至某个将军自己就是叛徒。那么,在已知有成员谋反的情况下,其余忠诚的将军如何在不受叛徒的影响下达成一致的协议,拜占庭问题就此形成。
对区块链有认识的读者们可以看出来,拜占庭将军问题其实是一个协议问题:由于叛徒可以任意行动以达到以下目标:欺骗某些将军采取进攻行动;促成一个不是所有将军都同意的决定;或迷惑某些将军,使他们无法做出决定。如果叛徒达到了这些目的之一,则任何攻击行动的结果都是注定要失败的。
所谓拜占庭失效指一方向另一方发送消息,另一方没有收到,或者收到了错误的信息的情形。
这些错误被统称为“崩溃失效”和“发送与遗漏式失效”。当拜占庭失效发生时,系统可能会做出任何不可预料的反应!
以太坊以前那个拜占庭硬分叉,为什么叫拜占庭?笔者认为该阶段旨在用技术算法解决历史上的难题,以便区块链网络在受到干扰的情况下依然能够达成共识。人家说艺术来源于生活,那么这一灵感来源于真实历史事件,读史使人明智。
区块链技术涉及的关键点包括:去中心化(Decentralized)、去信任(Trustless)、集体维护(Collectivelymaintain)、可靠数据库(ReliableDatabase)、时间戳(Timestamp)、非对称加密(AsymmetricCryptography)等。
区块链技术重新定义了网络中信用的生成方式:在系统中,参与者无需了解其他人的背景资料,也不需要借助第三方机构的担保或保证,区块链技术保障了系统对价值转移的活动进行记录、传输、存储,其最后的结果一定是可信的。
扩展资料
区块链技术原理的来源可归纳为一个数学问题:拜占庭将军问题。拜占庭将军问题延伸到互联网生活中来,其内涵可概括为:在互联网大背景下,当需要与不熟悉的对手方进行价值交换活动时,人们如何才能防止不会被其中的恶意破坏者欺骗、迷惑从而做出错误的决策。
进一步将拜占庭将军问题延伸到技术领域中来,其内涵可概括为:在缺少可信任的中央节点和可信任的通道的情况下,分布在网络中的各个节点应如何达成共识。区块链技术解决了闻名已久的拜占庭将军问题——它提供了一种无需信任单个节点、还能创建共识网络的方法。
参考资料来源:百度百科-区块链
拜占庭将军问题(以下简称“共识问题”)的正式表述是:如何在一个不基于信任的分布式网络中就信息达成共识?这个表述听起来有些晦涩,但其本质并不复杂,下面的例子与共识问题虽然并不完全一致,但却有助于我们的理解[9]。
想象一下在遥远的拜占庭时代,有一个富饶的城邦,金银珠宝绫罗绸缎应有尽有,它的领主哆啦A梦独享着这一切奢华与荣耀。而在城邦的外围,四位拜占庭将军大雄、胖虎、小夫和静香都觊觎着哆啦A梦的财富,于是他们决定联手攻占哆啦A梦的城邦。根据双方的实力对比,必须有超过半数的将军同时发起进攻方能克敌制胜,因此获胜条件就是四人中至少三个人可以就进攻时间达成一致。那么四位将军的胜算有多少呢?
这个问题的答案就要取决于四个人的合作方式了,如果是集中式系统,有一个盟主,比如胖虎(相当于中央服务器),那么他们的胜利是毫无悬念的,因为就进攻时间达成一致非常简单,只要胖虎召集大雄、小夫和静香开个会讨论一下就可以了,即使大家意见有分歧胖虎也可以在最后予以定夺。下面让我们回到拜占庭将军问题的假设里,在不基于信任的分布式网络中,四位将军的胜算又如何呢?
?
首先由于四位将军之间缺乏信任,因此聚到小黑屋里开个密谋会的可能性被排除了(一旦在小黑屋里被胖虎绑架了怎么办?);其次由于没有盟主,四个人的意见都会被同等的看重。在这种情况下,四位将军只能通过信使在各自营地之间传递消息,来商定进攻时间了。比如大雄觉得早上6点是发动进攻的好时机,他就会派信使将自己的意见告诉胖虎、小夫和静香,与此同时,胖虎可能认为晚上9点发动突袭更好,小夫更喜欢下午3点出击,而静香希望是上午10点,他们三人也会在同一时间派出自己的信使。这样一来,在第一轮通信结束后,四位将军每个人都有了四个可供选择的进攻时间,他们各自要在下一轮通信中把自己选定的时间告知另外三人。由于四个人的决策都是独立做出的,因此最终的选择结果就有256种可能,而只有当三人以上都恰好选择了同一时间的时候,共识才被达成,而这样的结果才64种,也就是说达成共识的概率仅为1/4。这还只是四位将军的情况,如果将军的人数是10人,100人,1000人呢?我们稍加计算就可以发现随着人数的增加,达成共识的希望会变得越来越渺茫。
把上面例子中的将军换成计算机网络中的节点,把信使换成节点之间的通信,把进攻时间换成需要达成共识的信息,你就可以理解共识问题所描述的困境了。达成共识的能力对于一个支付系统来说重要性不言而喻,如果你给家里汇了一笔钱买车,第二天去银行核实的时候柜台告诉你“关于你汇了多少钱的问题,我们的系统里有三个版本的记录”,这样的银行你显然是不敢把钱存进去的。在比特币出现之前共识问题是很难被完美解决的,要保证达成共识就需要采用集中式系统(除非节点满足特定条件),要想去中心化共识就无法保证。那么区块链技术又是如何解决这一难题的呢?(关注公众号weoption,回复“区块链”,可查看全文。)
“拜占庭将军问题”(Byzantine Generals Problem)是一个经典难题,这个难题是这样描述的:拜占庭是东罗马帝国的首都,它的军队分成多个师,每个师都由一个将军统领。这些将军通过信使进行交流,来达成一个共同作战方案,有些将军可能是叛徒,想故意破坏这个过程,这会造成那些忠诚的将军也无法达成一个统一的作战计划。这个难题在于如何让那些忠诚的将军在这样的情况下达成统一作战方案,而避免那些叛徒对作战方案的误导。
在点对点、分布式的区块链中,常常用拜占庭问题来比喻节点如何达成共识的问题。将军即对应着一个个节点,达成统一作战方案即达成共识,正确的打包与验证区块数据,防止恶意节点(叛徒将军)破坏区块链的运行。
顾名思义,就是能够解决拜占庭问题,使各个节点达成共识,解决共识问题的各种机制也被称为共识算法。在各种各样的共识算法中,又一直存在一个「不可能三角」的难题,这三角是指“安全性”、“去中心化”和“速度”,也就是说难以同时保证速度、安全性和去中心化程度,三者之间往往会顾此失彼。
现在各种共识算法算起来有好几十种,计算机界也一直处于研究阶段,并没有说哪种算法已经完美。
下面盘点一下讲解pBET和POW两种算法,以及它们的“安全性”、“去中心化”和“速度”如何。
实用拜占庭容错是一种较早的共识算法。pBFT的一个原则,就是少数服从多数。节点通过在相互传递有关决策的消息,谁的决策赞同的人数多,就采用谁的。所以在这个系统中,安全性随着诚实节点的数量而增加。诚实节点同意正确的决策,拒绝恶意节点的错误决策,只要恶意节点的数量少于总数的1/3,就能保证达成共识。
达成共识可以简化为四步:
pBFT 使用投票机制以循环方式选举领导节点。
领导者发起决策并将其广播给辅助节点。
所有节点,包括领导节点和辅助节点,都发送响应。
当 ⅔ + 1 个节点发送相同的响应时,该响应被认为是有效的。
如果领导者有恶意行为,它可以被大多数节点删除。
按少数服从多数的原则。那按理来说,只要恶意节点的数量少于1/2就够了啊,那么为什么PBFT算法的容错数量要满足恶意节点的数量少于总数的1/3呢?
因为 PBFT 算法的除了需要支持容错故障节点之外,还需要支持容错作恶节点。假设集群节点数为 N,有问题的节点为 f。有问题的节点中,可以既是故障节点,也可以是作恶节点,或者只是故障节点或者只是作恶节点。那么会产生以下两种极端情况:
(1)这f 个有问题节点既是故障节点,又是作恶节点,那么根据少数服从多数的原则,集群里正常节点只需要比f个节点再多一个节点,即 f+1 个节点,正确节点的数量就会比故障节点数量多,那么集群就能达成共识,即总节点数为f+(f+1)=n,也就是说这种情况支持的最大容错节点数量是 (n-1)/2。
(2)故障节点和作恶节点都是不同的节点。那么就会有 f 个作恶节点和 f 个故障节点,当发现节点是作恶节点后,会被集群排除在外,剩下 f 个故障节点,那么根据少数服从多数的原则,集群里正常节点只需要比f个节点再多一个节点,即 f+1 个节点,确节点的数量就会比故障节点数量多,那么集群就能达成共识。所以,所有类型的节点数量加起来就是 f+1 个正常节点,f个故障节点和f个作恶节点,即 3f+1=n。
结合上述两种情况,因此PBFT算法支持的最大容错节点数量是(n-1)/3,即少于1/3。
pBFT的优缺点
pBFT 系统不需要高计算资源或大量能源来运行。pBFT 在节点少的时候可以快速达成共识,因为所有节点都在不断地相互通信。一旦节点就决策达成一致,交易就完成了。
然而,pBFT的缺点也很明显:频繁的通信使它只能在节点数量有限的网络中正常工作。随着每个新节点加入网络,通信开销呈指数增长,响应所需的时间也随之增加。
pBFT 网络也容易受到女巫(Sybil)攻击,女巫就是恶意黑客制造的不同节点,黑客可以控制多个节点,使其超过1/3,那系统将无法达成正确的共识。
从不可能三角的角度来看,由此可见pBFT在节点少的时候速度快,但安全性差,去中心化低;节点多了又会导致速度很慢。
中本聪设计了POW共识机制来解决上面pBFT这个经典共识的可扩展性问题。
上面说到,pBFT通过不断广播然后计算节点的消息数,时间花费过长。POW是怎么做的:我不要计算节点数是否超过2/3,我直接选一个节点,按它的决策,其他节点全部同步它的决策。这样就省去在全节点通信然后计算节点数的费时操作。
那么,对于哪个节点来打包区块,那就很重要,万一是恶意节点呢?必须对打包的节点进行要求,哪个节点有权力进行打包呢?那就是解决复杂的数学问题,俗称挖kuang。节点必须花费大量算力和电费来争取某次打包区块的权力。这样的成本就限制了黑客的女巫攻击。
如果打包区块的权力真的被黑客抢到了,那可能会有什么问题?
(1)窃取冰糖橙
黑客能够窃取属于另一个用户,不受她控制的地址里的冰糖橙吗?答案是否定的。即使这一轮是由黑客打包区块链上的下一个区块,她也不可能窃取别人的比特币。这么做的话,黑客需要发起一笔有效的交易来转移比特币到自己的地址。这就要求黑客伪造比特币拥有者的签名,然而如果数字签名机制是安全的,她是无法办到的。只要背后的密码学基础是牢靠的,她就无法轻易窃取比特币。
(2)拒绝服务攻击
让我们来考虑另一种攻击。假设黑客不喜欢叫鲍勃的某个用户,黑客可以决定她不把鲍勃发起的任何交易放进她所提议的区块里。换言之,她拒绝提供服务给鲍勃。尽管这是黑客可以开展的有效的攻击,但幸好这不过是个小问题。如果鲍勃的交易没有被放进黑客所打包的下一个区块,鲍勃只要等到下一个诚实节点发起区块的时候,他的交易记录就会被放进这个区块里。所以这其实也不算是一个有效的攻击。
也就是说,黑客花费重大成本取得的打包,但并不能起到有效的攻击。由于对恶意节点进行惩罚、对诚实节点进行奖励这样的机制下,共识就达成了。
尽管有所改进,POW也引入了其他问题。工作量证明需要所有节点解决复杂的数学问题,这会消耗大量的能源,就是大家所熟知的挖kuang耗费电力。并且解决复杂的数学问题的时间也要求不短,10分钟左右。
从不可能三角的角度来看,POW去中心化高,安全性高,但速度还是慢,但至少已经不会像pBFT那样由于节点多导致花费时间呈指数增长。
共识算法各式各样,冰糖橙的POW并不是真正去解决分布式共识问题,它不能完美的套用到其他场景。但它在货币系统的这个特定场景下解决了冰糖橙的共识问题。POW在冰糖橙里运行得非常好。
无论在链圈,还是在币圈混,经常听到一个名词“拜占庭将军问题”。
到底拜占庭是啥,拜占庭将军怎么啦,到处都被提及,这位将军好忙啊!
先说拜占庭这个地方。很久很久以前的欧洲,建立在比中世纪还古老的时期,历史上就是东罗马帝国,跨越了千年的历史期盼。
扯远了,回到正题,什么是拜占庭将军问题。
拜占庭这个地方异常坚固,同时被十个独立邻邦环伺,分别有一位将军,单独攻城必败,只有一半以上的将军同时攻打才能破城。
十位将军为了协调一致,在那个古老的时代,累死传令兵,要么飞鸽传书(那时的欧洲比中国落后,好像没有这个高速通信手段)。十位将军相互通信一次就需要90次传信,每位将军都有各自的攻城计划,要想达成统一就需要往复传递不知道多少次。
我们可以假设一个场景,一个桌子上坐着十位将军,每个人各自说着自己的想法,同时听其他九位的说法,但是信息的传递不是实时的,有快有慢,有早有晚。想明白了吗?也就是说,这十位将军如果想达成一致,理论上有可能,实际上他们的有生之年都实现不了,难怪拜占庭帝国经历了千年也没有被这十位将军攻破。
中本聪这个神人,利用互联网信息传递的及时性特点,引入时间戳可以明确知道“谁先说、谁后说”的特性,创造性地加入挖矿机制(就是用计算机算随机数满足一定难度才算成功)比拼各位将军的智商来决定谁做本次进攻的统帅,使用非对称加密保证信息传输的安全性等等手段融合到比特币中,用实例说明自己破解了这个历史难题“拜占庭将军问题”。从而向世人证明解决60亿人口的互信问题是有去中心化解决方案地。
币圈和链圈的朋友很焦虑的另一个关键问题就是:这个圈子概念太TM多。除了这个“拜占庭将军问题”,还有一个“拜占庭容错”,这是什么鬼?这两个是一样的吗?这两个是故意有一个被写错了吗?还是说我的智商税没交够?其实,你都说对了。
“拜占庭将军问题”假设所有十个将军都是好的,都想攻破拜占庭,只是达成共识很难,比特币提供了好人达成共识的方案。
“拜占庭容错”是说十个将军可以很好地达成共识。但是,如果其中出了坏人,怎么解决?
如果十个将军中出现了坏人(叫叛徒也行),进攻计划是否会永远无法达成共识呢?
“拜占庭容错”告诉大家,是可以达成地,并且,还能找出这些“叛徒”是谁。只是,10个将军中叛徒的数量不能超过3个,超出了就无法“容错”,也找不出这些叛徒是谁。对应的公式就是:3n+1。其中3n+1是将军总数(区块链的账本/矿机总数),n是能够“容错”的“叛徒”(恶意记错账)总数。
对于十个将军来说,最多容忍三个叛徒,多了就彻底没戏啦。为了比特币的容错能力越来越强,就需要更多的节点,这样才能容忍并找出更多的叛徒。懂了吧。
小结一下:拜占庭将军问题是假设都是好人前提下如何达成共识,拜占庭容错就是全网最多能够容忍多少叛徒并且能找出他们。
请交智商税到如下地址:
国税BTC到Kcash:179L7takj4GvWJk4WZfDivdgPyg5Gc5BRJ
地税ETH及各种原生Token到 Imtoken:0x9bBAa867101ecdd5a7d46115f268551092384b7a
不交税的,祝你做“韭菜”一切顺利 :D
写到这里,本文关于拜占庭区块链怎么样了和拜占庭理念组的介绍到此为止了,如果能碰巧解决你现在面临的问题,如果你还想更加了解这方面的信息,记得收藏关注本站。
评论