• 沒有找到結果。

第二章 文獻探討

2.2 區塊鏈

2.2.1 區塊鏈 (Blockchain)沿革

2.2.1 區塊鏈(Blockchain)沿革

關於區塊鏈(Blockchain)演進,第一先想到的不外乎是比特幣(Bitcoin),一 種採用區塊鏈技術打造出的點對點(Peer to Peer)電子貨幣系統應用,但比特幣 區塊鏈並非是一項全新的技術,而是跨領域的將過去數十年所累積的技術基礎 做結合。

區塊鏈的演變歷程相關技術如下:

 1982 年:

拜占庭將軍問題

Leslie Lamport 等人首先提出拜占庭將軍問題(Byzantine Generals

Problem),把各地軍隊的將軍如何彼此取得共識?決定是否出兵?延伸解釋

David Chaum 提出了注重隱私安全的密碼學網路支付系統(Payment),具有 無法追蹤的特性,之後成為了比特幣區塊鏈在隱私安全面的基本雛形。

 1985 年: 橢圓曲線密碼學

Neal Koblitz 和 Victor Miller 分別提出橢圓曲線密碼學(Elliptic Curve Cryptography,ECC),首次將橢圓曲線用於密碼學,建立非對稱式公開金 鑰加密演算法。相較 RSA 演算法,採用 ECC 好處在於可用較短的金鑰,卻 可以達到相同的安全強度。(Ex:密鑰安全:ECC 160 bits =RSA 1024 bits)

David Chaum 基於先前理論打造出不可追蹤的密碼學網路支付系統,就是 後來的 eCash,不過 eCash 並非去中心化系統。

Leslie Lamport 提出具高容錯的一致性演算法 Paxos。

 1991 年: 使用時間戳(Timestamp)確保數位文件安全

Stuart Haber 與 W. Scott Stornetta 提出用時間戳確保數位文件安全的協議,

之後此概念被比特幣區塊鏈系統採用,作為區塊鏈內資料的安全驗證。

 1992 年: 橢圓曲線數位簽章演算法

Scott Vanstone 等人提出橢圓曲線數位簽章演算法(Elliptic Curve Digital Signature Algorithm,ECDSA)

 1997 年: Adam Back 發明 Hashcash 技術

Adam Back 發明 Hashcash(雜湊現金),這是一種工作量證明演算法

(Proof of Work,POW),此演算法利用成本函數的不可逆特性,使用 Hash Function 加密(圖 2-1),達到容易驗證,卻很難被破解的特性,亦即 很難反推回去找出未 Hash 前的資料, 最早被應用在阻擋垃圾郵件。而後 Hashcash 成為比特幣區塊鏈所採用的關鍵技術之一。

Adam Back 於 2002 年正式發表 Hashcash 論文。

 1998 年:

Wei Dai 發表匿名的分散式電子現金系統 B-money

Wei Dai 發表匿名的分散式電子現金系統 B-money,使用工作量證明機制 (POW),強調點對點間的交易,以及不可竄改特性。不過在 B-money 中,

並未使用 Adam Back 提出的 Hashcash 演算法。但是 Wei Dai 的許多設計,

之後仍是被比特幣區塊鏈所使用。

Nick Szabo 發表去中心化的數位貨幣系統 Bit Gold,參與者可貢獻運算能力 來解出加密的謎題。

 2005 年: 可重複使用的工作量證明機制(RPOW)

Hal Finney 提出一種可重複使用的工作量證明機制(Reusable Proofs of Work,RPOW),結合 B-money 與 Adam Back 提出的 Hashcash 演算法 來,可以創造出一個密碼學貨幣。

 2008 年: 比特幣(Bitcoin)

Satoshi Nakamoto(中本聰)於 2008/10/31 發表一篇關於比特幣的論文:A Peer-to-Peer Electronic Cash System,描述一個點對點電子現金系統,可以 在一個不具信任的基礎的環境達到支付清算,並且建立一套去中心化的電 子加密數位貨幣交易系統。

 2012 年之後:

區塊鏈可以使用在貨幣以外的數位資產轉移,例如股票、債券。比如彩色 幣(Colored Coin)便是基於比特幣區塊鏈的開源協議,可在比特幣區塊鏈上 發行多項資產,此時期屬於智慧資產、智慧契約發展期。

1. Blockchain 1.0: 為數位貨幣(Currency)應用,例如比特幣。

2. Blockchain 2.0: 開始出現智慧資產(Smart Assets)、智慧契約(Smart Contracts)等數位貨幣之外的應用,例如彩色幣(Colored Coin),可以在區塊 鏈上運行 Open Assets Protocol,以及可傳遞貨幣以外的數位資產,如股票、

債券等。

3. Blockchain 2.5: 包括代幣(Token)應用、分散式帳本(Distributed Ledgers)、資料層區塊鏈(Data Layers Blockchain)、結合人工智慧

(Artificial Intelligent),像是可用於金融領域聯盟制區塊鏈,如運行 1:1 的 美元、日圓、歐元等法幣數位化,以及無交易所的國際匯款網路,如企圖取 代 SWIFT 功能的 Ripple Coin,而資料層、分散式儲存則是以 Factom、

MaidSafe 等等為代表。

4. Blockchain 3.0: 指的是更複雜的智慧契約,將區塊鏈用於政府、醫療、科 學、文化與藝術等領域,例如 Ethereum,而本篇論文即是以此 Ethereum 區 塊鏈平台作智能合約開發以達成信用狀交易功能。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

18

抗碰撞性:如果兩個原始輸入不同,其輸出的雜湊值也是不相同的,不 會一個 Hash 值卻有 2 個不一樣的輸入值,這代表擁有極高的 獨特性,所以 Hash 值又被稱為數位指紋。

圖 2-1 Hash Funciton

資料來源:本研究整理自(梁伯嵩,2016) 關鍵技術 2: 橢圓曲線數位簽章演算法,加上配對的公鑰和私鑰

公鑰加密系統:

Alice 有一把公鑰和一把私鑰。她可以用她的私鑰產生數位簽章,而 Bob 可以用 Alice 她的公鑰來驗證這個簽名確實是用 Alice 的私鑰產生的,也 就是說,確實是 Alice 的簽名。

反之,傳輸資料的做法則是 Alice 拿 Bob 公鑰加密傳給 Bob,Bob 再拿自 己私鑰解密。

相較傳統的 RSA 演算法(公鑰加密系統),採用 ECC(公鑰加密系統)好 處在於可用較短的金鑰,卻可以達到相同的安全強度。

(Ex:密鑰安全性:ECC 160 bits =RSA 1024 bits)

關鍵技術 3: 時間戳(Time Stamp Server)確保區塊鏈按照序列

將每個區塊頭內(Block Header)加上一個時間戳(Timestamp),這個時間戳 用來證明資料在是某個時間產生,形成一個用來確保區塊序列的區塊。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

19

圖 2-2 區塊結構

資料來源:本研究整理自(梁伯嵩,2016)

圖 2-3 Time Stamp Server 資料來源:本研究參考文獻[19]

2. 區塊鏈的三大特色之二:去中心化

進行 Hash 運算時,動態調整「Nonce」 值。直到區塊頭的 Hash 函數值,

低於「困難度目標」,方為可被接受的區塊頭 Hash 值 1.設定一個「Nonce」值

2.對區塊頭進行雜湊運算

3.檢查區塊頭的雜湊函數值,是否低於「困難度目標」?

Yes : Proof-of-Work 成功 (挖礦成功) No : 設定新的 Nonce 數值,重複再進行一次

俗稱的挖礦就是這種 POW 的驗證過程,挖礦的目的就是使待驗證的區塊成為 一個"已經被驗證"的區塊,而將交易驗證並記錄到區塊鏈上,此筆交易才算 真正的成立。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

20

圖 2-4 Proof-of-Work

資料來源:本研究整理自(梁伯嵩,2016)

4. 區塊鏈的三大特色之三:快速驗證

在每一個區塊中,可能包含數百筆到數千筆的資料,因此,為節省儲存空間 並減少資源浪費,區塊鏈採用 Merkle Tree 機制設計,讓這些資訊的 Hash 值,經由兩兩一組形成另一個新的 Hash 值方式,不斷的重複進行,直到最 後產生一組最終的 Hash 值(Merkle Tree Root)。

而這個 Merkle Tree Root(Root Hash)也就是 Block Header 組成的一部份,例 如下圖所示(圖 2-5)Hash01= Hash(Hash0+Hash1),而 Root Hash 則是 Hash01 與 Hash23 兩兩組成。

Merkle Tree 的設計機制,驗證時只需驗證 Merkle Tree Root 即可,可大幅減 少資料傳輸量與運算資源損耗。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

21

圖 2-5 Merkle Tree 資料來源:本研究參考文獻[1]

相關文件