拜占庭问题与区块链

拜占庭问题

  在战争之中,n个将军们包围了一群敌人,并且希望统一行动来攻打敌人保证作战胜利。如果将军们分散进行作战,即没有进行统一的指挥,那么更可能被敌人歼灭。为了保证统一行动,将军们希望通过投票的方式进行决策。如果有多数人决定在某一个时间点进行行动,则将军们将会在此确定的时间统一进攻。
   一个将军将会首先对其他各个将军发出信息为“攻打”或者“不攻打”,进而各个将军之间为了保证信息的准确性,将会互相之间进行验证(在此看来更多的是为了保证首发信息将军不为叛徒)。
   但是由于相互距离较远,则只能通过派信使进行传递的方式进行操作。由于不能当面进行表决,并且信使们的速度不确定,所以可能出现延迟的情况。不考虑信使中途发生意外的情况。
  但是在将军们之中,已经知道有 f f f个将军是叛徒,他们希望干扰将军们活动的一致性。于是他们在进行投票时候,可能会进行以下两种决策
   1、保持沉默(即不派信使传递信息,伪装成非叛徒节点,使得决策被推迟)。
   2、传递错误信息(即投票表示不进攻,使得在局面上出现不进攻的人数占据大多数,无法进行此次统一进攻活动)。

  则对于将军人数n,和叛徒个数f,应当满足什么样的数学关系式,则当前局面下将军们可以统一行动歼灭敌人。

经过论证,n和f满足关系为 n > = 3 ⋅ f + 1 n>=3·f+1 n>=3f+1,论证如下:
  1、保证决策不会被无限推迟,即能够在 n − f n-f nf步之内做出决定。 n − f n-f nf步指能够通过收到的前 n − f n-f nf个信息做出决定。举出一个例子,若当前有4个节点,只有一个叛徒,此时某个将军收到的决策为两票同意一票反对,若最后一个未作出决策的将军为叛徒,但是其他将军由于无法确定他是否为叛徒,并且缺少最后一个将军的决策,此时的决策无定论。则决策陷入无限等待之中。
  2、保证此时的决策已经有忠诚将军决策数目大于叛徒将军决策数目,则 n − f − f > f n-f-f>f nff>f,则可以得出 n > 3 ⋅ f n>3·f n>3f,即 n > = 3 ⋅ f + 1 n>=3·f+1 n>=3f+1

将此问题迁移到区块链上面

  我们将进攻类比为区块链中某一个密钥的认同表决
  此密钥是指,某个矿工得到的对于算力证明的答案。在该矿工得到该密钥之后,需要将此密钥发送给所有矿工进行验证,由于此挖矿问题具有易于验证,难以计算的特性。则验证过程相比挖矿过程具有更少的算力消耗。此时将矿工类比为将军,矿工中有恶意矿工,他们希望发动一些恶意交易,或者阻止正常交易的进行。
  则对于此验证问题,近似于一次投票表决。仍然需要满足上述拜占庭问题的要求才能使得交易正常进行。由于分布式系统具有延时的情况发生,则可以类比为信使传递信息,拜占庭问题对于此问题具有良好的类比特性。
  在区块链的情况之中,由于现实原因,恶意节点的数目不可能过于多,即其数量超过总数量的一半的可能性极低。由于算力的相对弱势,使得区块链的恶意节点无法通过“运气”劫持一部分节点进而破坏区块链的安全性,因为接下来发展的过程中,由于占据算力优势的仍然是忠诚节点。忠诚节点修改恶意节点的可能性随着交易数目的上升,逐渐趋近收敛于1。则此时恶意节点的最优策略是保持沉默,即延迟此交易的发生
  而区块链采取了类似将军们的互相之间通信的方式保证透明性(即 P B F T PBFT PBFT共识算法)。但是此算法类似于生成一个完全图,其复杂度为O( n 2 n^2 n2)。并且只有在恶意节点数目f满足 n > = 3 ⋅ f + 1 n>=3·f+1 n>=3f+1的时候才有效。
  有 S B F T SBFT SBFT算法为了降低其复杂度,增加了一个决策桌节点,类似于每个人做出决策之后通过一个盲盒放入该决策桌节点之上,形成了一个星型结构。此种决策方式虽然将复杂度降低到O( n n n),但是这种做法将区块链去中心化的特性削弱了。
  由此看来,区块链在完全去中心化特性下的安全性需要极大的算力成本,在削减算力之下的区块链又失去了一部分的去中心化特性。
  那么就需要从别的地方做努力了。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值