一、背景
拜占庭是東羅馬帝國的首都,由於拜占庭羅馬國土幅員遼闊,每支軍隊間之駐地相隔甚遠,帝國軍隊調度與征伐須透過信使傳遞訊息。當發生戰爭時,要如何確保將軍們皆能配合所制定之行動計畫?如果將軍中有叛徒欲破壞行動計畫,要如何解決?
二、焦點檢視
為確保行動計畫能穩妥執行,降低少數幾個不忠誠的將軍對計畫造成的影響,於是產生了著名的「拜占庭將軍問題」。當不忠誠的將軍希望透過傳播不實軍情影響行動計劃時,忠誠的將軍們必須有一個預訂的方法或協議,使所有忠誠的將軍們能夠達成一致。也就是說,「拜占庭將軍問題」就是要使將軍們在一個有叛徒的環境中建立共行動計劃的共識。在分散式系統如區塊鏈帳本中,也和「拜占庭將軍問題」類似,有運行正常的帳本(類似忠誠的拜占庭將軍),也有運行故障或有問題的帳本(類似不忠誠的將軍)。共識算法的目的,在於在正常的帳本中形成對資料數據的共識。
中心化系統或帳本相較於去中心化系統或帳本有更易於遭人竄改、更高的備援需求等特性。對於去中心化系統而言,要實現的是如何在不同帳本(節點)上,其數據能保持正確一致。假設現實世界因硬體錯誤、網絡阻塞或中斷、惡意攻擊等原因而產生異常行為,此時就產生「拜占庭容錯」(Byzantine Fault Tolerance,BFT)來解決此些異常行為。以比特幣為例,工作量證明(Proof of Work,POW)機制即在透過解數學題的方式在進行難度足夠之工作,來確認相應的交易內容。其中主要涉及的是工作量證明函數,如安全哈希算法SHA256(Secure Hash Algorithm)、區塊(結構包含時間戳、哈希值等)、難度值等。
比特幣進行POW的共識記帳過程,大致可歸納如下。首先由客戶端產生一 筆新的交易,對全網絡進行廣播要求對交易進行記帳;其次當每一個記帳節點收到此請求(Request),便會將收到之交易訊息放入區塊中;其三每個節點透過工作量證明在足夠的難度下進行嘗試,直到某個節點解出;其四,解出之節點即開始對全網廣播,當該交易先前並未存在過且屬有效,其他節點才會認同形成共識,最後當其他節點表示認同接受該區塊後,會在該區塊末尾製造新的區塊以延長該鏈條。在這樣的記帳過程中,客戶端要求紀錄的交易訊息被寫入了各個記帳節點的區塊鏈中,形成了一個分散式的一致性帳本。
三、結論與展望
去中心化系統需要一個機制,以保障帳本與數據形成正確一致之共識。而共識機制中之工作量證明,又俗稱挖礦,其相應而生的產業如礦機、晶片、礦工等亦相當常見。去年更有相關產業上市,後續發展值得關注。
延伸閱讀
- 金融科技技術概覽(1)——以分散式帳本區塊鏈技術為例
- 金融科技技術概覽(2)——智能合約簡述
- 金融科技技術概覽(3)——虛擬貨幣與數位經濟
- 金融科技技術概覽(4)——虛擬通貨(數位資產)與錢包
- 金融科技技術概覽(5)——人工智慧技術與2019金融科技趨勢
- 金融科技技術概覽(6)——運用在財會金融中的人工智慧技術與智能語音裝置
- 金融科技技術概覽(7)——數位資產、分散式帳本與密碼學技術
- 金融科技技術概覽(8)——應用金融科技、區塊鏈技術於會計師日常業務
- 金融科技技術概覽(9)——台灣虛擬通貨相關管理規劃
- 金融科技技術概覽(10)——區塊鏈技術之政府監理與業者應對
- 金融科技技術概覽(11)—— 智能合約中之重要類型比較分析
- 金融科技技術概覽(12)——共識機制之工作量證明介紹
- 金融科技技術概覽(13)——智能合約審計(上)
- 金融科技技術概覽(14)——智能合約審計(下)
- 金融科技技術概覽(15)——智能合約與數位收藏品