前文我们谈了算力51%的问题,比特币网络为了解决这个问题,设计者中本聪引用了拜占庭容错算法。在谈拜占庭容错之前,我们先了解一下拜占庭将军问题。因为拜占庭容错就是为了解决拜占庭将军问题的。
1.什么是拜占庭将军问题
拜占庭帝国即中世纪的土耳其,拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那么入侵者可能都会被歼灭。于是每一方都小心行事,不敢轻易相信邻国。这就是拜占庭将军问题。
2.什么是拜占庭容错(PBFT)
容错拜占庭PBFT是一种算法,简单理解就在一个系统里面出现了恶意的节点,或者是故意作恶的人,那么在这个系统了在至少要有比恶意的节点多两倍加一个的正确节点,或者是比故意作恶的人多两倍加一个正确做事的人。那么系统需要最少的节点就是比恶意节点多一倍加一个,比故意作恶的人多一倍再加一个。用公式描述就是如下所示:
3f+1个节点,2f+1个正确节点,f个恶意节点。
这样就解决了拜占庭将军的问题了。
网友评论