昨天大致上簡單說明共識機制的功用,今天要來介紹共識機制的由來。
共識機制的由來,可以追朔至分散式系統和容錯計算領域的研究,在1982年由Leslie Lamport提出的一個思想實驗–拜占庭將軍問題(Byzantine Generals Problem)。
拜占庭將軍問題在維基百科中的敘述如下:
一組拜占庭將軍分別各率領一支軍隊共同圍困一座城市。為了簡化問題,將各支軍隊的行動策略限定為進攻或撤離兩種。因為部分軍隊進攻部分軍隊撤離可能會造成災難性後果,因此各位將軍必須通過投票來達成一致策略,即所有軍隊一起進攻或所有軍隊一起撤離。因為各位將軍分處城市不同方向,他們只能通過信使互相聯絡。在投票過程中每位將軍都將自己投票給進攻還是撤退的資訊通過信使分別通知其他所有將軍,這樣一來每位將軍根據自己的投票和其他所有將軍送來的資訊就可以知道共同的投票結果而決定行動策略。
簡而言之,這個問題描述了一群將軍和他的部隊,他們只能通過不可靠的通訊達成共識(攻擊或撤退)。
這個問題的核心在於:在一個分散式的系統當中,要如何確保多數的參與者(將軍)達成真正的共識,即使其中一部份的參與者是惡意或不可靠的。
來源:https://zh.wikipedia.org/zh-tw/%E6%8B%9C%E5%8D%A0%E5%BA%AD%E5%B0%86%E5%86%9B%E9%97%AE%E9%A2%98