• 沒有找到結果。

第二章 區塊鏈及其技術來源

第二節 區塊鏈之運作原理

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

11

等個人敏感的資訊,因此每筆交易與當事人真實身分是相互連結的。但於比特 幣的交易中,交易雙方並不清楚各自的身分,如同股票市場上只顯示股票交易 量和時間,但成交的雙方對於是何人出賣或買受股票無從知悉,而比特幣即是 透過公鑰匿名的方式以達成此項特性6

第二節 區塊鏈之運作原理

第一節介紹區塊鏈技術最早的應用-比特幣之特色,此節則要針對比特幣所 運用之核心與基礎架構-區塊鏈作解析。

區塊鏈最重要的核心價值在於去中心化的特色,若將抽象的技術概念具體 為現實事物,區塊鏈其實就是一個去中心的帳本資料庫系統,這個帳本並非僅 指狹義上有金流記載的交易資訊,而是廣義地包含實務上任何有價值的資料記 載,只是因為區塊鏈最早應用於比特幣等商業上的運行,僅因外界將其類比為 帳本,而帳本上記載的可能是銀行業客戶的交易資訊、證券業的股票交割資訊 或地政機關關於不動產買賣登記的資訊,任何需要進行資料交換、溝通的產 業,都有機會透過區塊鏈進行實作。

第一項 區塊鏈之區塊

傳統網際網路進行傳輸的最小資料單位稱為「封包」,區塊鏈中記錄資料的 最小單位則稱為「區塊」,每一個區塊記錄著許多資訊,包含區塊的容量大小

另外 Google 工程師 Michele Spagnuolo 甚至開發出應用軟體 BitIodine 以解析區塊鏈中的資訊以 追查使用者的來源,因此使用者於區塊鏈中並非無法追蹤,而是追蹤難度增加。因此如何兼顧 使用者隱私與礦工之查核需求即是區塊鏈面臨的發展困境,而零知識證明即是解決此困境的突 破性技術,礦工無須知道交易上的細節如匯款者、收款者和金額即可驗證交易,惟目前運算時 間、運送量龐大,因此使用尚未普及。

6 Satoshi Nakamoto, supra note 3, at 1.

(Block Size)、區塊頭(Block Header)、該區塊包含的交易總數(Transaction Counter)及這個區塊在這個區塊中的交易資訊(Transactions)。

Block Size (4 bytes) 區塊的容量大小

Block Header(80 bytes) Version (4 bytes)

Previous Block Hash (32 bytes) Merkle Root (32 bytes)

Time Stamp (4 bytes) Difficulty (4 bytes) Nounce (4 bytes) Transaction Counter (1-9bytes)

Transactions 記錄此區塊中的每筆交易之資訊 Hash 值 Block Size:區塊的容量大小。

Block Header:區塊頭的資料主要作為工作量證明的輸入資料。

Version:主要用來追蹤區塊鏈協議升級的版本號碼。

Previous Block Hash:從前一個區塊的區塊頭資料計算而得到的 Hash 值,也因 為每個區塊有前一個區塊的區塊頭資料,使得每個區塊產 生連結,藉以確保了區塊序列的正確性和連動性。

Merkle Tree Root:區塊中所有交易資料透過 Merkle Tree 演算法所得的根節點 Hash 值。

Time Stamp:該區塊的時間戳記。

Difficulty:該區塊工作量證明演算法的困難程度。

Nounce:表示已進行的工作量證明演算法的次數。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

13

Transaction Counter:該區塊包含的數量。

Transactions:該區塊所記錄的交易資料,以 Hash 值記錄在區塊中。

第二項 區塊鏈之技術

區塊鏈結合了多種演算法技術,這些技術並非 Satoshi Nakamoto 首創7,但 Satoshi Nakamoto 卻是第一個將它們巧妙地結合並應用在實際案例-比特幣的先 鋒者。這些技術分別為共識機制、公開金鑰加密演算法、Merkle Tree、時間 戳,以下是上述四種區塊鏈關鍵核心技術的介紹:

一、共識機制

資訊科技的時代,商業交易能透過網際網路隨時隨地進行,交易記錄透過 中間機構的資料庫統一管理和記錄,以維持帳本內容的唯一性和正確性,但若 中間機構出現問題,如駭客入侵、內部人疏失,使得資料被篡改、竊取甚至整 個資料庫系統被癱瘓時,此種中心化管理的模式,容易造成「單點淪陷、全部 淪陷」(Single Point of Failure, SPOF)的弊病,亦容易使中間機構的損害擴散至 網路上的每個節點,因此區塊鏈最大的特色即是建構一個不需要第三方介入,

即可驗證數據資訊之正確性的分散式帳本系統,成功解決互聯網最讓人擔憂之 安全信任問題。

區塊鏈分散式帳本系統中,並無一個中心機構處理資訊之記錄和交換,因 此每個節點都是中心,各自都擁有一本完整帳本且帳本上記載的資訊都是相同

7 「工作量證明共識機制」概念最早由 Cynthia Dwork 和 Moni Naor 於 1993 年提出,並由 Markus Jakobsson 與 Ari Juels 於 1999 年發表;「公開金鑰加密演算法」概念最早由 Ralph C.

Merkle 於 1974 年提出,Whitfield Diffie 與 Martin Hellman 以此基礎於 1976 年發展出公開金鑰 加密系統,兩人並於 2005 年獲得有電腦界諾貝爾獎之稱的圖靈獎(Turing Award),以表彰其對 現代密碼學之貢獻;』「Merkle Tree」由 Ralph C. Merkle 於 1976 年提出,提升巨量資料驗證的 效率。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

14

的,但交易發生後,帳本的資訊勢必需要進行變更,為了確保各帳本的資訊能 同步更新且達到內容一致性,每個節點不能同時進行記帳的動作,因交易隨時 都在發生,網路上的延遲會導致各節點接受資訊的時間並不相同,若同時記帳 必然會造成帳本的不一致8,因此由一個節點取得記帳的權力才不會導致帳本資 訊更新的混亂。至於該由誰取得記帳的權力,即是區塊鏈共識機制所欲解決 的,目前區塊鏈共識機制之主要設計有以下四種:

(一)、POW (Proof-of-work) 工作量證明機制

POW 機制所使用是雜湊現金函數演算法(Hashcash algorithm),透過單向雜 湊函數概念,使得給予一個任意大小的 X 值時,能得到一固定大小且相應的 Hash 值:H(X),但外界難以由此 Hash 值回推得到 X 值。

將上述單向雜湊函數難以回推之特性包裝成一個數學難題,考驗各節點所 欲付出的努力程度和誠意,每個節點透過本身的計算能力競逐解題9,並由最先 解出題目之節點將答案和交易內容廣播給其他節點進行驗證,若驗證成功,則 大家形成共識,由這個最先解出題目的節點取得將資訊儲存在區塊中之記帳 權。

然而,競逐解題而取得記帳權的過程需要付出大量的運算資源和成本,因 此 Satoshi Nakamoto 設計了一套激勵機制,給予解出題目的節點比特幣獎勵,

提供誘因以鼓勵爭取記帳的權利,並為每一筆資料進行驗證。這也是第一個區 塊鏈應用-比特幣設計的巧妙之處,除透過此種方法達成共識外,亦讓不願付出 工作量擔保的節點無法參與分散式帳本的維護,以截堵詐欺行為的產生10

8 張健,揭秘比特幣和區塊鏈:什麼是區塊鏈?,參考網址:https://read01.com/zh-tw/a00e7m.html#.Wrny-cOuzIV (最後瀏覽日:2019 年 7 月 1 日)

9 比特幣區塊鏈稱此過程為「挖礦」。

10 Satoshi Nakamoto, supra note 3, at 3.

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

15

(二)、POS(Proof-of-stake)

POW 依照「運算能力」取得共識,各個節點憑藉本身的運算資源競逐解題 以決定誰能取得記帳權之共識;POS 則是依照「權益」取得共識,當一個節 點,願意投注越多代幣於此系統中,則越有機會獲得記帳的權利11,但若被發 現有偽造交易資訊的駭客行為,則其投注的代幣將被沒收,此設計也是與 POW 最大不同之處,讓駭客的詐欺行為付出代價,進而保障系統的安全,目前以太 坊所建構之區塊鏈應用即是採取此種共識機制12

(三)、DPOS(Delegated Proof-of- stake)

DPOS 與 POS 原理相似,皆依照權益多寡決定記帳之權利,但 DPOS 規定 每個節點須投票選出代理人,類似股東投票選出董事會成員,獲得票數前幾位 的超級節點將代理眾多節點行使記帳和驗證之權利,此舉將能大幅縮減參與記 帳或驗證節點之數量,以增加共識驗證的效率13

(四)、PBFT(Practical Byzantine Fault Tolerance)

上述三種共識機制適用於公有鏈上,優點是有較佳的驗證安全性缺點是處 理速度慢,效率較差。在聯盟鏈(許可鏈)的情形,各個節點互相認識或已經過 事先身分的認證,因此推定各個節點是可信的,則使用 PBFT 將能提升區塊鏈 驗證的效率。

PBFT 又稱為拜占庭容錯,每個收到訊息的節點都會廣播予其他節點,並 不斷進行訊息的交換和交互的驗證,透過嚴格的證明演算法,將能確保其餘可

11 許明恩,礦工失業倒數:以太坊轉型權益證明機制,參考網址:https://reurl.cc/pDdA8 (最後 瀏覽日:2019 年 7 月 1 日)

12 Vitalik Buterin ,A Proof of Stake Design Philosophy, available at:

https://medium.com/@VitalikButerin/a-proof-of-stake-design-philosophy-506585978d51 (Last visited on 2019/07/01)

13 Weusecoins, Delegated Proof-of-Stake Consensus, p2, available at:

https://www.weusecoins.com/assets/pdf/library/Delegated%20Proof-of-Stake%20Consensus.pdf

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

16

信的節點最後達成一致的共識,並識別出有問題的節點,惟此機制適用的前提 是有問題的結點不能超過 1/3,因此只能適用於聯盟鏈(許可鏈)此等已事先經過 節點身分審核的類型14

(五)、零知識證明

區塊鏈發展目前遇到的最大瓶頸是隱私和驗證查核無法兼顧,雖然區塊鏈 號稱安全、匿名,但如比特幣和以太坊的區塊鏈設計,交易者的地址和交易紀 錄皆設定為公開,方便礦工在每筆交易前進行查核以確認每個地址的餘額,雖 然沒有直接連結個人的身分,但透過目前大數據技術仍可間接推知使用者之個 人背景資料,因此有論者認為比特幣只有假名交易的安全性而沒有達到真正匿 名交易的安全強度,為了兼顧使用者對於交易內容隱私的需求和區塊鏈礦工的 查核需求,零知識證明的技術於焉而生15

零知識證明是一種能將上述交易資料隱藏的情況下,礦工亦能進行查核的 技術,麻省理工學院多媒體實驗室(MIT Media Lab)舉了一個有趣的例子解釋這 個不可思議的概念16,Alice 手上有兩顆撞球,分別是綠色和紅色,除了顏色這 兩顆撞球不管是球半徑、重量、觸感皆一模一樣。假設 Bob 是紅綠色盲,在 Bob 眼中 Alice 手上拿的是兩顆一模一樣的撞球,Alice 為了說服 Bob 兩顆撞球 是不一樣的,則提議 Bob 可以背對著她並隨意交換兩顆球後,讓她識別原本拿 在 Bob 左手的球是哪一顆,由於 Alice 不是色盲,所以不管 Bob 將兩顆球如何 快速混淆,Alice 皆能快速分辨,重複幾次後,Bob 就越能相信這兩顆球一定有

14 Miguel Castro & Barbara Liskov(1999), Practical Byzantine Fault Tolerance, MIT's Computer Science Lab, p3-6, available at:http://pmg.csail.mit.edu/papers/osdi99.pdf

15 Malte Möser(2013), Anonymity of Bitcoin Transactions, p1, available at:

15 Malte Möser(2013), Anonymity of Bitcoin Transactions, p1, available at: