article_man_pic

科技台灣  2017-05-18 21:00  A20170509002 
article_pic
區塊鏈(Block chain)的技術裡最重要的一個特性是使用「分散式拓樸(Distributed topology)」,比特幣的節點(Node)是散佈在整個網路的世界裡,當使用者進行交易改變了某一個節點的比特幣帳本,必須把這個改變通知散佈到世界各地的節點,要如何做呢?

 

❒ 節點資料同步

另外一個麻煩的問題是比特幣的節點(Node)是散佈在整個網路的世界裡,當使用者進行交易改變了某一個節點的比特幣帳本,必須把這個改變通知散佈在世界各地的節點,要如何把這個改變通知散佈在世界各地的節點呢?知識力www.ansforce.com。


假設網路上所有的節點(Node)都已經存在區塊0/1/2/3(Block 0/1/2/3),這個時候節點(Node R)的礦工採出新礦區塊(Block R),同時節點(Node G)採出新礦區塊(Block G),如<圖一>所示,則新區塊的資料溢散傳遞(Propagating)的流程如下:
1.節點(Node R):已儲存區塊(Block 0/1/2/3),採出新礦區塊(Block R)。
2.節點(Node G):已儲存區塊(Block 0/1/2/3),採出新礦區塊(Block G)。
3.區塊(Block R與Block G)分別經由「溢散傳遞(Propagating)」給所有節點,其中節點(Node B)同時收到區塊(Block R與Block G)。
4.節點(Node B)不知道該鏈結那個區塊,因此同時將區塊(Block R與Block G)鏈結到區塊(Block 3)後面,形成「分岔(Fork)」。知識力www.ansforce.com。

 


圖一 溢散傳遞示意圖。
資料來源:杜宏毅博士,Block Chain的前世今生與未來,台灣網路認證公司。

 

工作量證明(POW:Proof of Work)

過了一會兒,節點(Node P)採出新礦區塊(Block P),如<圖二>所示,則新區塊的資料溢散傳遞(Propagating)的流程如下:
1.節點(Node P):已儲存區塊(Block 0/1/2/3/G),採出新礦區塊(Block P)。
2.節點(Node B):計算區塊(Block R與Block G)兩個分支的「總困難指數(Difficulty)」,保留總困難指數高的分支,刪除困難指數低的分支。
3.假設區塊(Block G)的分支總困難指數高,因此將區塊(Block P)鏈結上去,同時刪除區塊(Block R),稱為「工作量證明(POW:Proof of Work)」。
4.如果被刪除區塊(Block R)內的「交易(Transaction)」已經包含在區塊(Block G與Block P)內則不做任可變動,直接刪除區塊(Block R)的分支即可。
5.如果被刪除區塊(Block R)內的「交易(Transaction)」沒有包含在其他區塊內,節點(Node B)將這些交易傳遞出去讓其他區塊將這些交易包含進去。
6.重複上面步驟,使所有節點的資料收斂(Convergence)達到同步而一致。

 

圖二 工作量證明示意圖。
資料來源:杜宏毅博士,Block Chain的前世今生與未來,台灣網路認證公司。

 

比特幣(Bitcoin)的限制

前面介紹的方法,包括使用公開金鑰驗證來進行交易識別確認,使用區塊鏈確保交易資料無法篡改,使用工作量證明達成節點資料同步,已經解決了比特幣大部分的問題,但是仍然有一些限制存在:

比特幣大約每10分鐘採出一個區塊,可儲存1MB的資訊,由於每一個區塊容量是有限制的,隨著交易量愈來愈多,容量的限制會使處理速度受到影響,這個問題可以經由變更比特幣的設計來解決,但是目前比特幣社群尚無共識。
由於區塊容量的限制,再加上工作量證明也需要時間處理,因此比特幣無法處理超過每秒7次的交易,和目前廣泛使用的VISA這樣能夠每秒處理數萬次交易的支付系統相差很多,因此比特幣不適合即時大量的小額交易。知識力www.ansforce.com。
使用「可驗證的匿名制」,可驗證代表可以確認這筆交易的真實性,匿名制代表並不知道發動這筆交易的人是誰,因此容易造成交易追蹤斷線變成不法人士的洗錢管道,例如日前的勒索病毒「WannaCry」肆虐全球,怪客向受害者勒索價值300美元的比特幣,使用比特幣就是因為不容易追蹤。
分散式拓樸沒有中央控管機制會造成交易不確定性、究責與賠償困難,而且服務提供者(節點或電子錢包)的技術可能會有落差,那一天真的發現自己的比特幣不見了!或是已經完成的交易卻無效,基本上很難找到負責的人。知識力www.ansforce.com。
比特幣在法規上存有疑義難以被主管機關接受,因此有人將比特幣的部分技術抽離出來尋找新的應用,並且取了新名字:區塊鏈(Block chain)。但是區塊鏈落實困難,無法直接套用到現用的其他應用上,因此開始演化並且出現新名字,例如:分散式帳本(Distributed ledger)、分享式帳本(Shared ledger)、超級帳本(Hyper ledger)等。

比特幣(Bitcoin)的目標明確,就是要取代傳統貨幣扮演貨幣支付的角色,但是仍然有許多困難必須克服,包括:重複支付、結算確認、交易同步等。
 

【請注意】上述內容經過適當簡化以適合大眾閱讀,與產業現狀可能會有差異,若您是這個領域的專家想要提供意見,請自行聯絡作者;若有產業與技術問題請參與社群討論。

 

我的評分