共識及分叉極簡入門

買賣虛擬貨幣
什麼是共識?共識在去中心化系統中必不可少,如果沒有共識,去中心化的系統就不能運轉。但在中心化系統中,並不需要共識。中心化系統只存在兩個角色:命令者(控制端)與執行者(受控端)。它們是一對一或一對多的關係。舉個例子,一對一的關係,比如使用遙控器控制電視,比如使用滑鼠控制電腦,比如某些妻管嚴的家庭,丈夫對妻子說一不二,言聽計從。
一對多的關係,比如在90年代,有一種BP機放羊的方法。把BP機掛到每個羊群首領的脖子上。牧羊人只要給BP機發訊息,所有的羊群都會被羊群首領帶回來。但羊群首領只認BP機的震動,而無法識別BP機的內容。如果有其他人知道了BP機的號碼,向其傳送資訊,也可以透過BP機的震動控制羊群。
在中心化的系統中,受控端相信控制端,它必須執行控制端的指令,除非它壞了。但在去中心化的系統中,沒有命令者與執行者。所有節點都是平等的,都按照事先規定的機制來運轉。這套機制就是共識。回到放羊的例子,如果這些羊群並不歸1個牧羊人管理,而是需要5個牧羊人投票表決。當5個牧羊人討論羊群要不要回家的時候,需要進行投票。假設有3個人同意,有2個人反對,則少數服從多數,牧羊人小組達成共識,讓羊群回家。這種共識屬於系統之外的共識。如果對BP機進行改造,每次要收到5個指令,1代表回家,0代表不回家。則BP機根據比例判斷是否震動。5個牧羊人開始傳送指令,有3個牧羊人要羊群回家,有2個牧羊人要羊群不回家,則BP機收到了3個1和2個0,按照規則,於是BP機震動,羊群回家。這就是系統內的共識。共識就是多方認可某項規則或提議。區塊鏈中的共識,是根據一套規則來決定誰有記賬權及驗證記賬是否有效。共識能讓每個節點的資料都相同,從而保證系統整體的一致性。如果在共識中產生了分歧,則會形成分叉。下面舉個簡單的例子來解釋分叉。現在有一個由3個節點組成的區塊鏈流水賬,每個節點都有1份流水賬,總共有3份流水賬,內容如下:
節點a的流水賬:1月1日,張三轉給李四一個包子。1月2日,李四轉給王五兩個包子。節點b的流水賬:1月1日,張三轉給李四一個包子。1月2日,李四轉給王五兩個包子。
節點c的流水賬:1月1日,李四轉給張三一個包子。1月2日,王五轉給張三一個包子。在這個例子中,節點a和節點b的流水賬相同,卻和節點c有出入。區塊鏈必須保持一致性,否則新的流水賬不知該以誰為準。節點a和節點b相同,則2/3的結果作為最終結果。節點a和節點b的資料最終會覆蓋節點c,使得整個區塊鏈達成一致。如果節點c始終不承認a和b怎麼辦?節點c可以拉上新的節點d和e,讓d和e的流水賬和自己一致。這樣新的系統有5個節點,而3/5大於2/5,從而達成新的一致性。或者c節點賄賂b節點,b節點的資料也改過來和節點c一致。這樣,就形成了一個分叉。在分叉的鏈中,1月1日,李四轉給了張三一個包子。而在分叉之前,卻是張三轉給李四一個包子。
可見,分叉的動力源自利益。為了避免惡意分叉,共識需要有安全的加密演算法做支撐,還需要有合理的經濟模型做制約。經過上面的描述,相信大家對共識能有一個全新的認知。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;