如何在一个不受信任的网络上建立信任关系?这是困扰计算机科学家们数十年的难题。最终因为比特币的出现,得以解决。当中,拜占庭将军问题,算是区块链中的经典,是解决这一难题的核心内容。
拜占庭将军问题(Byzantine failures),是由莱斯利·兰伯特(2013年的图灵讲得主)在1982年提出的,用来为描述分布式系统一致性问题(Distributed Consensus)在论文中抽象出来一个著名的例子,是点对点通信中存在的基本问题。
故事大概是这么说的:
拜占庭帝国即中世纪的土耳其,拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的6个同时进攻,才有可能攻破。
然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那么入侵者可能都会被歼灭。
于是每一方都小心行事,不敢轻易相信邻