浅谈区块链的核心技术 — 拜占庭容错

 

当你开始深入了解区块链时,会经常听到一个术语:拜占庭容错(BFT)。如果你想弄清楚它,一个听起来非常奇怪和神秘的术语,我们可以用一个故事来解释。1982年,一个叫做拜占庭将军问题的数学问题被提出来。这里不详细描述它背后的数学原理,本质上,拜占庭将军问题是一个关于两个帝国之间一场战争的故事。

骑士精神:中世纪的战争

一个帝国置身于坚实的城墙里,另一个帝国的数位将军包围了这座城市,每个将军都带领着军队等候进攻。两个帝国势均力敌。如果所有的将军达成一致同时进攻,他们就有足够的力量战胜城墙里的帝国,从而赢得战争。

但是,不管出于什么原因,如果他们不能协调好同时发动进攻,哪怕只有一个将军错过了信息,他们的围攻计划将会失败并输掉这场战争。

拜占庭将军问题探讨了密码学的一个关键领域,事实上,这是密码学的核心,本质是如何在一个某些人可能会“叛变”的环境中交换信息。

现在, 这些将军们唯一的沟通方式就是派一个伪装的信使,穿过城市给其他将军传递信息。这里将会一直存在一个风险。如果你是其中一个将军, 你将从其中的一位信使那里得到一个消息,那么你怎么知道, 或者你怎么能够比随机决定有更大把握相信你得到的信息是可靠且没有被篡改过的?

这也是1982年提出的一个假设,直到2008年才得以解决。那一年匿名的中本聪(Satoshi Nakamoto)提出了一个解决办法,这使得比特币成为可能。

本质上,解决方案是让所有的将军都尽可能拥有更多的数学家。“当我们谈论拜占庭容错时,我们谈论的是将军们比城墙内的帝国拥有更多的权限,更多的数学家,或更多的算力。”

所以, 如果我能雇更多的数学家, 那就意味着我可以越来越复杂地加密我通过城里传递的信息;但如果城外将军们的权力平衡局面变得非常有利, 且他们可以使用的加密方法是如此复杂, 以至于城里的任何一位数学家真的没有机会或非常小的机会,能够在将军们几乎注意不到的足够快的时间里,拦截消息,然后解密、改变内容并重新加密。这就是拜占庭容错。

这也是现在我们看到的,大多数公共区块链解决方案中使用的容错机制,包括比特币和以太坊,尽管以太坊正在过渡到权益证明系统(Proof of Stake)。因此,说到区块链,当你听到拜占庭容错时,它表示的含义就是如果区块链上的算力和哈希能力比链外的更强大,它就会变得安全。

———————————————

Leave a reply

Your email address will not be published. Required fields are marked *