比特币通信协议 - 币圈消息

比特币通信协议篇11、二、TURN简介。在典型的情况下,TURN客户端连接到内网中,并且通过一个或者多个NAT到 详细

比特币和拜占庭将军问题 - 币圈消息

[复制链接]
55 0
wangjia 发表于 2022-11-3 15:48:27 | 只看该作者 |阅读模式 打印 上一主题 下一主题
比特币和拜占庭将军问题篇11、image。如果没有足够多的军队同时前往攻打,大概率进攻就会失败。这些军队是通过通信兵或信使来协商传递进攻的。但各个军队占山为王,有些被敌军收买,佯装攻击!
2、拜占庭将军问题快速理解。提案人不是叛徒,提案人发送一个提案,叛徒收到后,回复不同的命令,对于第三个将军就收到两个相反的消息,也无法判断出谁是叛徒,系统无法达成一致!
3、提案人是叛徒,发送不同的提案给不同的节点,但其他三个节点之间进行通信后,他们自己也能达成一个共识!
4、比特币的工作原理,和解决拜占庭将军问题一样,都需要达成共识机制!
5、最后这个超级大账本中就有了统一的数据:我少了一个BTC,你多了一个BTC!
6、维护者除了记账之外,还需要按照一定的规则争夺数据打包权,胜者会把这段时间的交易数据都打包到一个数据块,也就一个Block中!
7、假设将军总数3,叛徒将军数。这样的交战情形在电影《指环王》中也经常有体现。拜占庭要找到一种方法来解决让各个军队达成进攻共识的问题。这就是莱斯利-兰伯特提出的拜占庭将军问题!
8、但比特币采用的方案就不是完全按照PBFT来的,比特币的区块链网络采在设计时提出了PoW算法思路,计算高难度的hash是为了限制在一段时间内整个网络中出现提案的个数,另外一个是放宽对最终一致性确认的需求,是约定好大家都确认并沿着已知最长的链进行延展,系统的最终确认是概率上的确认,不是100%。这样,有人想作恶,会付出很大的经济代价!
9、对于我给你转账1个BTC这笔在BTC大账本中已经记录好的数据,如果要修改,就必须要51%的维护者举手表决同意。但是在比特币网络中维护者多如牛毛,需要的算力资源消耗巨大,有可能需要几十万个BTC的矿工费用的巨额支出,所以在BTC账本中篡改交易数据是不现实的!
10、比特币是一个基于区块链技术的分布式超级大账本,记录着每一笔比特币的交易转账记录,很多人共同维护这个大账本!

比特币和拜占庭将军问题篇21、拜占庭将军问题之所以难解,在于任何时候系统中都可能存在多个提案,并且要完成最终的一致性确认过程十分困难,容易受到干扰。但是一旦确认,即最终确认,概率上是100%!
2、快速理解案例二。ByzantineFaultTolerant算法。
3、然后这个维护者向其他所有维护者广播说:我已经完成一笔记账了,大家可以根据我记的账把数据补全!
4、拜占庭各支军队之间通过信使建立通信。其中第一个将军决定攻打时,他写一封信并盖章。信使会将这封信快速传递到其他将军的手中,由于每个将军的印章是唯一的,所以其他将军可以识别,这就相当于立下了军令状!
5、接下来给数据块编上序号,好让所有维护者保证自己的数据和这个数据区块的数据一致,这个胜者将会获得系统自动发送的BTC奖励!
6、提案人是叛徒,发送两个相反的提案给另外两个,另外两个收到两个相反的消息,无法判断究竟谁是叛徒,系统无法达成一致!
7、那怎么解决拜占庭将军问题呢?接下来第一个听到我们两个广播的维护者立刻把这笔转账记录下来!
8、拜占庭问题,假设节点总数是N,叛徒将军数为F,则当N》=3F1时,问题才有解,共识才能达成,这就是ByzantineFaultTolerant算法!
9、面向拜占庭将军问题的容错算法,解决的是网络通信可靠,但节点可能故障情况下的一致性达成!
10、后来各种PoX的算法,也是沿着这个思路进行改进,采用经济上的惩罚来制约破坏者!
比特币和拜占庭将军问题篇31、前面分析的Paxos和Raft对节点的前提假设是不作恶,只是偶尔可能不响应而已。而真实情况是节点可能会作恶,在这样的场景下,如何在众多节点中达成一致性问题,这是拜占庭将军问题所要讨论的!
2、拿到信的第二个将军如果同意攻打,那么他就在信的最后面加盖自己唯一的印章!
3、快速理解案例一。最早由Castro和Liskov在1999年提出的PracticalByzantineFaultTolerant是第一个得到广泛应用的BFT算法。只要系统有2/3的节点是正常工作的,则可以保证一致性!
4、假设将军总数4,叛徒将军数。PBFT算法包括三个阶段来达成共识:Pre-Prepare,Prepare和Commit!
5、LeslieLamport在1982年提出的虚拟模型,用来解释一致性问题。拜占庭作为东罗马帝国的首都,地域辽阔,在首都周边有众多将军负责城防,将军之间通过信使来传递消息,达成某些一致的决定。但由于将军中存在叛徒,叛徒会想尽一切办法干扰一致性的达成,甚至是达成叛徒想要的共识从而实现攻击!
6、拜占庭是东罗马帝国的首都,拜占庭地盘很大,所以有多支军队分散在各地驻防!
7、如果当这封信积累到了足够多支军队攻打的确认函,那就可以进攻,确保攻破敌军城池!
8、提案人不是叛徒,提案人发送一个提案,叛徒同样作恶,但受到的消息结果,能很容易就找出哪个节点是叛徒。从而快速达成共识!
9、拜占庭将军问题。LeslieLamport证明,当叛徒不超过1/3时,存在有效的算法,不论叛徒如何折腾,忠诚的将军们总能达成共识。当叛徒超过三分之一时,则无法保证一定能达成一致性!
10、比如我给你转了1个比特币,然后我把我给你转1个比特币这件事情通过网络向所有维护大账本的人广播!
比特币和拜占庭将军问题篇41、你收到这个比特币之后,你也把我给你转了1个比特币这件事情向所有维护大账本的人广播一下!
2、流行方案思路。同样拿到信的第三个将军也同意攻打,那么他也在信的最后面加盖自己唯一的印章!
3、每当拜占庭攻打另外一个城市的时候,由于敌军也很强大,拜占庭各个军队分散距离太远,就需要多支军队分开包围同时攻击!
极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:比特币和拜占庭将军问题
喜欢 (0)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
收藏
收藏0
转播
转播
分享
分享
分享
淘帖0
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝0

帖子2930859

发布主题
阅读排行更多+

Powered by 顺水鱼MT4外汇EA网! X3.2© 2001-2017 顺水MT4外汇EA公司.( 陕ICP备17014341号-1