将阵营分为两拨:好节点阵营,坏节点阵营
现在坏节点阵营想要误导好节点,让其误以为已经有足够人数发出了投票,并且发生分歧,如何做?假设最极端情况:好节点被等分为两拨A、B,坏节点加上任意一个阵营的人数都能达到足够人数达成投票,那坏节点就可以发送两种不同信息让A,B达成两种不同的状态,造成了数据不一致。
如何解决:总人数N,控制能够做决策的人数Y,让坏节点数X加上任意一边阵营都不会造成数据不一致的结果,坏节点可以成功将阵营A改变状态,但剩余的节点数无法让阵营B改变,无法造成数据不一致。Y-X > (A+B)/2,X < (A+B)/2
设:X = N/3,
即:Y - N/3 > (2N/3)/2 = Y > 2N/3,Y的最小值2N/3+1
又因为必须满足Y <= A+B(好节点总数),
所以:A+B >= 2N/3+1
X可以更大吗?
不可以:因为必须Y<=A+B,否则好节点无法出块,如果X > N/3,即 Y < 2N/3,又有X > N/3,所以X+A或X+B大于Y,坏节点可以误导两个好节点阵营,造成分叉。