(2017-03-30)區塊鍊藉比特幣讓大家重視,現在雖是發展的初期,已經有許多行業開始試用,預計進展會很快。IBM於日前宣布IBM Blockchian系統,協助企業建構區塊鍊,MIT媒體實驗室也將在4月18日舉行Business of Blockchain會議,邀請企業主管參加,瞭解區塊鍊對企業營運的相關性。


美國共和黨眾議員 David Schweikert 與民主黨眾議員 Jared Polis,成立了一個「國會區塊鍊核心小組」,籲請同僚注意這個用在「比特幣」(Bitcoin) 的新技術,不是注意比特幣,是比特幣背後的基礎技術,也就是現在大家熱烈討論的議題,「區塊鍊」(Blockchain) 的資料管理。

除了比特幣,Maersk 船運公司追蹤全球貨運,Alphabet 公司發展醫療資料稽核工具,以及多種行業都開始試用區塊鍊,兩位議員期望政府運用這一新技術來幫忙制訂政策。

兩位議員的呼籲有道理,因為區塊鍊形同一個分散式資料庫,資料一旦入庫,就不能更改,沒有反悔的餘地,這是區塊鍊在技術上的設計。

區塊鍊顧名思義,是把許多「區塊」(Block)「鍊」(Chain) 到一起,每一個區塊又稱一本帳簿 (Ledger),比特幣是金錢交易所以帳簿為名,事實上帳簿是通稱,記載的不一定是金錢,任何交易或營運的記錄,貸款、保險、貨運、合約、服務,都可以是帳簿的內容,但僅是紀錄,不包括大量資料,所以不同於傳統的「資料」庫。


左圖:傳統集中管理。右圖:區塊鍊分散處理。取自網路。

區塊鍊處理有什麼特別?先從上圖的示意的說起。傳統的資料管理,是由一個可信賴的機構、如銀行與政府,來集中管理,比如說個人與銀行的進出交易,因為我們信任銀行,所以安心讓銀行保管這些記錄。

區塊鍊則是把這些記錄,分散到每個人保管,請注意上圖中的 Ledger (交易記錄),每個 Ledger 上端都顯示許多小方塊,意指包括所有人的交易記錄,而每個人都有一份 Ledger,也就是每個人都一份相同的所有人的交易記錄。與傳統結構比較,區塊鍊少了「可信賴」的機構,或者說銀行不再管理大家的交易記錄。這正是區塊鍊的基本概念。

網路上的每一個人、或說每一台電腦,雖然都握有每個人的資料,但由誰來管理、誰可信賴?區塊鍊的設計理念是「人」都不可信賴,反而電腦的運算更可以信賴,所以區塊鍊上的交易記錄由電腦管理,不經人的手,所以杜絕了反悔、不認帳、甚至竄改的弊病,這種人類的陋習在各種交易或協議上屢見不鮮,前面說的兩位議員就是要藉區塊鍊的記錄,讓政府說話算話。

分散結構的另一個好處,是可以 P2P 直接對話或交易,不必經過集中管理者。但用在區塊鍊上,網路上每個電腦(稱為「節點」、或 Node)都有一份整體的資料,也就是多次重複拷貝同樣資料,一旦更新所有的節點都要跟著更新,所以需用較大的計算資源,但好處是一個或少數節點出問題不會影響整體。另一個好處,就是不再需要交易的「中間人」,或者是集中管理的電腦系統,被認為是有互聯網以來的最大發明。

所謂區塊,相當一本帳目,記載每一筆交易,比特幣系統記載的是金錢、也就是比特幣,不同的系統記載不同交易記錄,然後把每個區塊串成一個鍊條,如下圖示意,就是區塊鍊的基本結構。

每一區塊都有一個識別 ID,稱為 Header,是串連的掛勾,每一區塊 Header 都指向下一個區塊,下一區塊 Header 又指向再下一個區塊,區塊鍊就這樣形成。但 Header 不是用號碼,而是用多層「散列」(Hash) 運算的結果,區塊內容一旦變更,Header 必須要重新計算,這也保障了區塊的安全,使區塊鍊不能(很難)更改。


區塊形同帳冊記錄每一筆交易,區塊連接在一起就成了區塊鍊。取自網路。

現在以比特幣系統的區塊鍊為例,略微說一點技術。散列運算是一種簡單的加密,把一系列文字與數字經過一個散列函數 (Hash Function) 的運算,轉換成長度固定的簡短字串,稱為散列值。

下圖中的 Transactions 就是交易記錄,每筆交易記錄經過散列運算之後,把所有的散列值再層層散列運算,最後得到的數值就是圖中的 Merkle Root,可以說是所有交易資料的總碼。這個總碼,加上前一個區塊 Header 的散列值,組成本區塊的 Header,如果有新的區塊加到後面,這個 Header 就指向後面的新區塊。

比特幣區塊鍊的簡單結構。取自網路。

上面是比特幣系統的區塊鍊結構,別的應用系統未必用同樣的結構,但概念相同,多層散列加密的用意,就在防止更改區塊的交易內容,因為交易一旦更改,區塊的 Header 必定更改,而後面的區塊也必導致 Header 的更改,再後面的區塊也接著要更改,一直延續到鍊條的結尾。

這些更改需用強大計算資源,更花時間,更改的同時可能有新的區塊進入,讓這個區塊鍊落後。比特幣系統有為數眾多的電腦節點,估算沒有一個節點有這樣的能量,所以說區塊一旦入鏈就不能更改,不但遠離病毒駭客,就連反悔都不可能。

區塊鍊可以是公開的、像比特幣網路,也可以機構為主不對外公開,公開的區塊鍊網路,每一個節點都有完整的區塊鍊拷貝,所以可以看到每一區塊的資料,資料完全透明。

每一節點也可以製作一個區塊,經過一定的檢核程序,加到區塊鍊的尾端,然後通知所有的節點更新。比特幣增加區塊的手續比較複雜,一旦一個新區塊要加入區塊鍊,要製作一個隨機數 (Nonce),由計算功能強大的節點電腦相競來猜這個隨機數,先猜到的就把這一新區塊加入區塊鍊,猜測隨機數需用很多計算資源,也因此獲得 25 比特元獎賞。

區塊鍊是一個新概念,所用技術又跨越多種領域,這篇短文僅能說是簡化又簡化的介紹,省略了複雜的細節。比特幣運用區塊鍊的成功,引發大家聯想擴充到別的作業,金融、證照、合約、保健、專利、學術、凡是不允許更改的記錄,都可以用來安全保存,有人估算有近千種作業可以使用區塊鍊,果真如此,勢必顛覆很多商業行為,也再次證明數位技術的破壞創新潛力。

區塊鍊藉比特幣讓大家重視,現在雖是發展的初期,已經有許多行業開始試用,預計進展會很快。IBM 於日前宣布 IBM Blockchian 系統,協助企業建構區塊鍊(見下面參考資料),MIT 媒體實驗室也將在 4 月 18 日舉行 Business of Blockchain 會議,邀請企業主管參加,瞭解區塊鍊對企業營運的相關性。有興趣的朋友,可以參考下面資料,當做休閒閱讀,或做為進一步探討區塊鍊的入門。

How does the Blockchain Work (for Dummies) explained simply
How does the Blockchain Work?
Understand the fundamentals of IBM Blockchain
區塊鍊技術指南(簡體版 PDF 下載) 

*本文取材自2017年3月22日「那福忠西海岸數位隨筆(5):可以顛覆商業行為的「區塊鍊」」                   
對本文有任何看法,歡迎 eMail:frank.na@gmail.com 給作者,分享您對本文的看法。