第三章 區塊鏈之起源與發展
第一節 區塊鏈基本定義
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
- 33 -
第三章 區塊鏈之起源與發展
區塊鏈,起源一位名為Satoshi Nakamoto(俗譯:中本聰)的一篇比特幣 論文(Bitcoin: A Peer-to-Peer Electronic Cash System 比特幣:一套點對點的電子 現金系統),作為比特幣的底層技術,本質上是一套去中心化的資料庫。是指透 過去中心化的方式集體維護一個可靠資料庫的技術方案。儘管到目前為止世界 上仍不曉得這位中本聰究竟是何人。之所以在此探討區塊鏈,無非是想透過區 塊鏈解決上章著作權於現下存在的問題。本研究在此將以較淺顯易懂的方式帶 領閱聽者剖析整個區塊鏈生態系。
第一節 區塊鏈基本定義
根據中本聰2008 年提出的雛形,區塊鏈是一種不依賴第三方、通過分散式 節點(Node)進行網路數據的存儲、驗證、傳遞和交流的一種技術方案。換個
說法,區塊鏈技術可以說是一種分散式去中心化的「網路記帳本」,無論任何人 都可以採用相同的技術方式在此記帳本裡面加入自己的信息。延伸至今,區塊 鏈可以因應各種市場需求將不同形式的信息寫入區塊鏈。
這套系統簡單來說可說是結合了分散式記帳本、共識證明、不可竄改三大 特性的一套系統。但實際上來說,上述的三種系統各自並不是因為區塊鏈出現 才被發明的,更應該說是,「區塊鏈」透過獎勵機制(或說是商業模式)將上述 三種系統完美的結合,此般的創新才導致了風潮。
‧
33 LESLIE LAMPORT, ROBERT SHOSTAK, and MARSHALL PEASE, The Byzantine Generals Problem, SRI International, 1-2(1980).
34 Id.
‧
‧
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
- 37 -
圖 6:比特幣交易紀錄
資料來源:Blockchain.info,比特幣主鏈,區塊編號 #497180
(四)、 區塊/區塊鏈
在第(一)段中提到Hash 值,其全名為雜湊函數(Hash Function、或稱雜 湊演算法、雜湊函數)是一種將任何資料中建立成較小格式成「指紋碼」的方 法。此般方式常見的編碼有SHA-1、SHA-2、SHA-3(SHA 為 Secure Hash
Algorithm 的縮寫),MD5 等。雜湊函數將數位電子資料,壓縮成指定格式且固 定長度的編碼(又稱訊息摘要),使資料量有效變小。該些函數將資料打亂混 合,重新建立一個叫做雜湊值(hash values,hash codes)的指紋。
所有雜湊函數的演算法,都有一個基本特性:「如果兩個雜湊值是不相同 的,那麼這兩個雜湊值的原始輸入也是不相同的」。這個特性是雜湊函式具有一 定且唯一的結果,具有這種性質的雜湊函式稱為「單向雜湊函式」。
但同時,數學上,雜湊函數的輸入與輸出仍無法達到唯一對應的關係(數 學上稱1-1,one - to - one function),由於數位檔案的多元性可視為無限多種
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
- 38 -
(函數之定義域),但固定長度之編碼卻有限(函數之對應域),也就是說,儘 管兩個數位檔案是不同的,仍有特定的機會得到的y 值可能相同,這種情況稱 為「雜湊碰撞(collision)」。但由於典型的雜湊函式都可以有非常大的定義域
(對應域則為輸出雜湊值長度的最大排列組合),比如SHA-2 系列函數中,最高 可輸入的字串長度長達264-1 位元組,但實務上仍將此認定為單射函數(每個 y 值只會被一個x 值對應到)。然而,同上所述,少量的雜湊碰撞仍然是不可避免 的(參考鴿洞原理37)。
但由於硬體計算科技的進步,部分雜湊函數已可以透過強制對應每一個值 所破解(西元1996 年 MD5 演算法已被破解、2005 年 SHA-1 被檢驗理論上的漏 洞,於2017 時實現了雜湊碰撞),然而建立此一般對應表既龐大又沒有效率,
於現今硬體科技的此時,強行進行雜湊碰撞僅被視為理論的實現。
37 Grimaldi, Ralph P. Discrete and Combinatorial Mathematics: An Applied Introduction. 4th edn.
1998. ISBN 0-201-19912-2. pp. 244–248.
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
- 39 -
圖 7:雜湊函數示意圖
之所以要介紹雜湊函數,為了表示區塊鏈的特性之外,雜湊函數更是區塊 鏈的基本(甚至是本論文的基本)。上些段落提到的,每份資料之間要如何證明 沒有被竄改的狀況呢?這時雜湊函數便能派上用場。之所以取名叫做「區塊 鏈」(Blockchain)的意義便在於,每個「區塊(Block)」之間由特殊的方式相互
「鏈結(Chain)」在一起,如同鎖鏈一樣,抽換任何一段鐵鎖都會造成鎖鏈的 斷裂。
在區塊鏈上便是利用Hash 值的特性,一個區塊將資料全部寫入完畢後,透 過雜湊函數編碼出一個Hash 值,該 Hash 值便是該區塊的身分指紋碼,在下一 個區塊寫入時也會同時記錄這個區塊的Hash 值,如此接續下去便成為一套無法 竄改的紀錄鏈,稱為「區塊鏈」。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
- 40 -
圖 8:區塊鏈結示意圖
如假設若有人於事後想竄改某份區塊的資料,根據Hash 值的特性,該區塊 資料編碼出來的Hash 值便會大幅度的不同,如此一來下一個區塊所紀錄上的資 料便會對應不起來,因此便可以發現資料遭到竄改。
也因此,若竄改者想要有效的改變整份資料,便需要持續不斷竄改下一份 區塊的Hash 值,直到最新的區塊資料。不僅是成本的提高,上述同時提到,要 要證明資料的真偽須取得整體節點數量的百分之五十以上,才有竄改資料的可 能。此般的特性使得整個區塊鏈系統無法具有不可改動、竄改的存證性。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
- 41 -
圖 9:區塊資料遭到竄改示意圖