國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
第五章 結論與未來展望:
總結本論文提出之方法及實作結果,討論未來挑戰及可能的改善方向。
‧
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
在區塊驗證過程中,一旦該區塊之 Hash 值與上個區塊驗證後不正確,該區塊將 被其他節點識別出來,並無法被加入在區塊鏈中,使得區塊鏈有著不可竄改的特 性。
圖 2-1 比特幣區塊連接示意圖
2.1.2 區塊鏈 1.0: 數位貨幣
比特幣是最早出現的加密貨幣,代表了區塊鏈技術平台,其所運用的分散 式帳本技術(Distributed Ledger Technology, DLT),是一種依賴分散式網路共識 機制運行的電子現金支付系統,同時也是一種協定與數位貨幣。對於目前現行 的加密貨幣來說,區塊鏈底層技術、交易協定與加密貨幣等三個層級是一種通 用結構,如表2-1。每種加密貨幣都代表著一種貨幣與一種協定,例如萊特幣 在萊特幣協定上運作,而萊特幣運作於屬於萊特幣自有的區塊鏈之上,意即一 個獨立創建的區塊鏈,該貨幣擁有屬於自己的去中心化帳本。
表2-1 加密貨幣之通用結構
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
加密貨幣的運作方式與傳統貨幣不同,其執行機制不須依賴政府、銀行等信 用擔保機構。比特幣的加密機制是採用非對稱式加密演算法,解密與加密都必須 使用兩個不同的密鑰,即為公鑰(public key)與私鑰(private key)。公鑰是對外公開 的,私鑰必須由用戶個人保管。公私鑰可用於訊息加密與數位簽章,如圖2-2,
當甲方想對乙方發送加密信息時,需要乙方的公鑰將訊息加密後發送給乙方,當 乙方得到該加密訊息後,以自己的私鑰解密。因此即使有第三方攔截該信息,但 沒有對應的私鑰解密,就無法獲得該加密信息,該流程為公鑰加密與私鑰解密。
用戶透過私鑰將交易記錄加密後,再讓外界使用該用戶的公鑰解密進行驗證,如 果驗證成功,就能確保該交易記錄為公鑰持有人所簽核,該流程為數位簽章。
圖2-2 公私鑰用途
(參考來源:對稱式與非對稱式加密技術)
從個人用戶的角度來看,用戶需要一個比特幣位址(address)、電子錢包。電 子錢包是由一對匹配的私鑰(private key)與公鑰(public key)所組成,私鑰是使用 SHA-256 演算法生成,用於比特幣交易時的加密簽章,公鑰則用於接收比特幣,
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
若要將電子錢包解鎖必須同時使用私鑰與公鑰。當用戶接收比特幣時,只需提供 公鑰給另一方;當用戶轉出錢包中的比特幣時,就必須提供公鑰以及由私鑰生成 的加密簽章,當接收者驗證交易時,會先檢驗公鑰的 hash 值與轉出的錢包位址 是否相符,若相符時再檢驗加密簽章是否由對應的私鑰所加密。
比特幣的開發概念和結構具有高度的可移植性與可擴展性,核心特性為去中 心化、可追溯性、不可竄改性等,為後續的區塊鏈2.0 與區塊鏈 3.0 帶來新的概 念並奠定基礎,針對不同的應用場景有著更深入的開發。
2.1.3 區塊鏈 2.0: 智能合約
2014 年區塊鏈技術有著顯著的提升,並以智能合約(Smart Contract)為發展核 心,意即能夠在區塊鏈上自動執行的程式。智能合約[2]的概念早在 1994 年由學 者尼克
·
薩博(Nick Szabo)首次提出,將智能合約定義為一種以信息化傳播、驗證 或執行的數位協定,並且被允許在沒有第三方的情況下執行可信任之交易,該交 易具有不可逆轉性以及可追溯性。當時並沒有智能合約合適的實現環境,直到區 塊鏈1.0 階段,去中心化平台的出現,智能合約的概念得以被實現。圖2-3 智能合約示意圖
‧
最具代表性的去中心化區塊鏈應用平台為以太坊(Etheruem),其論文《A Next-Generation Smart Contract and Decentralized Application Platform》[3],強調智能合 約為其平台之主要特色。以 Ethereum Virtual Machine 建立可編寫程式的區塊鏈,
使大眾皆可使用區塊鏈技術建立去中心化應用(Decentralized Application, DApp),
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖2-4 智能合約與區塊鏈互動示意圖
2.1.4 區塊鏈 3.0: 共享經濟模式
主要為將分散式帳本技術應用於更多元的實際場景,區塊鏈技術不僅有可能 重塑貨幣市場、支付交易、金融服務等,還可能為更多產業與領域提供資源重新 配置的服務,以價值互聯網為核心。區塊鏈能夠對於每個互聯網中具有價值性的 信息進行產權的確認、計量與儲存,進而實現資產在區塊鏈上可被追溯與交易,
有價值的事物以程式形式數位化。例如共享汽車的使用權、不動產證明、醫療紀 錄、能源、保險理賠。區塊鏈3.0 的應用將會跨足至社會自治與智能化領域,包 括法律、身份認證、物流、醫療、簽證、投票、公共記錄等,應用範圍擴大至自 治社會組織。區塊鏈改進這些領域的服務流程,同時也翻轉其傳統的商業模式,
帶來豐富多元的價值交換,促使社會形成一個多種設備的價值互聯世界。
區塊鏈與物聯網(Internet of Thing)的結合也因此興起,以加密貨幣 IOTA [4]
為例,其主要為提供物聯網上各個機器之間資訊安全的通訊以及支付交易,目標 是讓機器之間可以互相買賣各種資源、數據與服務。IOTA 推出非線性的去中心 化網路Tangle,是第一個不用手續費的分散式帳本系統,也不像其他區塊鏈網路 需要礦工驗證交易,Tangle 將驗證交易的工作分散給網路中每位交易者,每次交 易時負責驗證前兩筆交易,只需付出少量的運算,因此不需額外的獎勵提供給礦 工。
‧
同時 Tangle 也用於物聯網硬體裝置的數據儲存,因其檔案相當輕量,Tangle 上 儲存並交換數據相當便利,IOTA 相較於其他區塊鏈,其可擴展性大幅躍進,使 得區塊鏈去中心化的科技應用更為蓬勃發展。
2.1.5 共識機制 (Consensus Mechanism)
區塊鏈技術主要由四大技術所組成,分別為密碼學、共識機制、點對點網路 (P2P Network)以及分散式帳本儲存技術。由於區塊鏈網路為 P2P 網路,每筆交易 都存有較高的網路延遲,網路中的節點所接收到的交易先後順序可能不一致。為
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖 2-5 CAP 定理
區塊鏈網路本質上為一個大型分散式系統,共識機制對於區塊鏈網路整體的 效能、安全性與可靠性有深遠的影響,在 CAP 定理限制下,針對需求在三項特
點中取得平衡。目前沒有一種共識機制可以適用於所有的區塊鏈,係根據不同的
應用場景,將合適的共識機制導入區塊鏈網路中。常見的共識演算法為:工作量 證明(Proof-of-Work, PoW) [8],權益證明( Proof-of-Stake, PoS) [9],委託權益證明 (Delegated Proof-of-Stake, DPoS) [10],實作拜占庭容錯演算法 (Practical Byzantine Fault Tolerance, PBFT) [11],Raft (Raft Consensus Algorithm)共識演算法[12]。
• 工作量證明(
Proof-of-Work
,PoW
)工作量證明(PoW)共識演算法目前被比特幣和許多其他加密貨幣所採用,特 點是難以運算,容易驗證。該區塊鏈本身使用雜湊函式來達到資料的正確性,工 作量證明對於區塊鏈是簡明的設計。區塊驗證流程為:當新區塊欲添加到區塊鏈 時,網路中的眾多節點各自進行大量的窮舉運算,並且互相競賽計算出該區塊的 Hash 值,當某一節點計算出與條件相符的結果後,其他節點會驗證該結果的有 效性,該節點即獲得該區塊之記帳權,並且能得到相對應之獎勵,此過程又稱為 挖礦,付出越多算力,獲得到的獎勵越多。
‧
‧
(Delegated Proof-of-Stake, DPOS)是利用 PoS 原理創造一個選舉機制,選出特定 數量的節點,並由這些節點進行區塊驗證,此機制產生新區塊的速度快,且更加 去中心化。圖 2-7 PoS 特性
(參考來源:POCKET COIN 口袋區塊鏈)
• 實作拜占庭容錯演算法(Practical Byzantine Fault Tolerance,PBFT) 起源於拜占庭將軍問題(Byzantine Generals Problem),由於當時拜占庭羅馬帝 國國土遼闊,為了防禦目的,每個軍隊都分隔遙遠,將軍與將軍之間只能靠信差
‧
Kafka 最初由 Linkedin 開發與貢獻[13],本質上為一個分散式訊息處理系統,
使用釋出-訂閱模型。消費者透過訂閱特定的主題,以便接收到新訊息的通知,生
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
Kafka 的崩潰容錯機制是透過在多個 Kafka 代理之間複製分割槽來實現。如果 一個代理由於軟體或硬體故障掛掉,資料也不會丟失。過程中需要一個領導-跟隨 機制,領導者持有分割槽,跟隨者進行分割槽的複製。當領導者故障後,會有其 他跟隨者成為新的領導者。如果一個消費者訂閱了某個訊息主體,會藉由 zookeeper 服務來讀取訊息,zookeeper 是一個分散式 key-value 儲存庫,通常用於 儲存資料及叢集機制的實現,並且有故障容錯能力。Hyperledger Fabric 1.0 版本 中的共識機制提供 Kafka。
2.1.6 區塊鏈的密碼學技術特性(Cryptograph in Blockchain)
密碼學的相關技術在區塊鏈中為相當重要的應用,保證區塊中的數據不可竄 改、不可逆性和可追溯性,常見的主要技術有雜湊函數(Hash function)、Merkle tree 與非對稱式加密技術(Asymmetric encryption)。
• 雜湊函數
(Hash function)
雜湊函數是將任意長度的明文(plain text)映射為較短且長度固定的二進 位雜湊值(hash value)。如果更改明文中的一部分,所生成的雜湊值會發生改變,
要找到相同的雜湊值,在計算上是非常困難達成的,因此透過數據使用雜湊函數 所生成的雜湊值可以檢驗數據的完整性。雜湊函數可以用於區塊鏈技術的許多應 用,包括數位簽章、身份驗證、數據加密。在區塊鏈中常見的雜湊函數有 SHA-256,其所生成的雜湊值長度為 256 位元。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖2-9 Hash function 之工作原理 (參考來源:
https://zh.wikipedia.org/wiki/%E6%95%A3%E5%88%97%E5%87%BD%E6%95%B 8)
• 數位簽章
(Digital Signature)
為一種電子簽章技術,使用雜湊函數與非對稱式加密技術,實作的公鑰(Public key infrastructure, PKI)技術。在 P2P 網路中,由於接收資料的一方,不能確定收 到的資料是否來自原發送人所傳送的,透過數位簽章的機制,可以保證資料的正 確性,並且有效防止傳送途中被攔截竄改的情形。區塊鏈網路中的每個帳戶都有 兩把鑰匙,分別為公鑰與私鑰,兩者在數位簽章中使用,有兩個主要流程:
簽署(Sign):
Alice 將欲傳送給 Bob 的資料透過 Hash 函數得到 Hash 值後,再使用 Alice 自己的私鑰進行加密,最後將加密訊息與資料傳送給Bob。
驗證(Verify) :
Bob 收到加密資料後,透用 Hash 函數取得該資料的 Hash 值,並利用 Alice 的公鑰解密得到 Hash 值,兩者相比後若正確,即可證明該資料確實為 Alice 所
Bob 收到加密資料後,透用 Hash 函數取得該資料的 Hash 值,並利用 Alice 的公鑰解密得到 Hash 值,兩者相比後若正確,即可證明該資料確實為 Alice 所