晶文摘

區塊鏈網路是什麼?

給晶新聞一個讚



作者:夏肇毅 2018-10-11 初版


區塊鏈網路是什麼?

作者: 夏肇毅

近年來金融科技風起雲湧,傳統金融業數位轉型蔚為風潮。金融科技依照世界經濟論壇(World Economic Forum, WEF) 的金融服務業未來報告書所描述,包括有支付、保險、存放款、資本募集、投資管理以及市場資訊供應六個主要方向。政府、學界及業界不斷舉辦競賽來蒐集應用場景,慢慢地這些應用都已為金融業者所採納實現,因而就漸漸移出創新應用的焦點。到最近兩三年,隨著以比特幣為首的加密貨幣與ICO興起,接著也帶動起另一股區塊鏈熱潮。


自2009年比特幣Bitcoin發行開始,加密貨幣Cryptocurrency就慢慢的發展起來。由2010年5月22日有人用1萬比特幣買到兩盒披薩起,逐漸加溫後爆熱。到2017年底達到歷史高點1比特幣近2萬美金,之後又曾崩跌七成。


比特幣使用的技術就是區塊鏈。所謂區塊鏈,就是把帳本資料紀錄在一塊塊的區塊中,然後再用特殊的方法將它連結成一個長長的鏈。在後面支撐這區塊鏈的,就是分散式帳本技術DLTs (Distributed Ledger Technologies)。有了區塊鏈後還要用Peer to Peer (P2P)網路把自己的帳本傳給他人分享。在裡面每個人都能修改帳本,但要聽誰的呢? 於是就發明了共識機制,在比特幣中用的是PoW(Proof of Work) 誰算得最快,做出最長的鏈,就聽他的,同時也給找出每個新區塊的人一定數量的比特幣做為獎勵。所以大家就投資硬體並結盟一起,搶當算力最高的人,以賺取比特幣酬勞。


在比特幣中定義,一個電子貨幣為一個簽章鏈。

某個電子貨幣的擁有者將它轉移給下一個擁有者時,會對前次交易與下個擁有者的公鑰做hash再加以數位簽章,並加到電子貨幣底端,收款人對這數位簽章驗章來驗證該鏈的所有權。這過程表示如下:


付款人(擁有i):

擁有者簽i = 簽章(

hash( 交i+公鑰(擁有i+1) ),

私鑰(擁i)

)


收款人(擁有i+1):

驗章(

擁有者簽i ,

公鑰(擁有i)

)


若要確認這個電子貨幣未被使用過,收款人就必須驗證過去的所有交易。有一種驗證方式是去建立驗證中心,讓它存著過去所有交易來確認某個電子貨幣是否被使用過。但為了達成去中心化目的,比特幣不用驗證中心的集中式驗證,而採用將所有交易紀錄傳給所有參與者自行驗證的方式。


比特幣在每個區塊內持續增加區塊中名為nonce的數值,直到這區塊的hash值是以一定數目的0起頭為止。這所需要的運算能力,與起頭為0的數目成指數級相關。因為這區塊的hash值會被帶到下一區塊,所以若有人想要竄改前面區塊的內容,則它必須花費大量計算能力來重新計算該點以後所有區塊的hash值。


因為是去中心化設計,最後要靠大家來決定要用誰計算出來的結果。其中的規則就是取用最長鍵,誰控制最多節點的算力,誰就能算出最長鍵。比特幣會控制系統讓當前算力在每10分鐘能產生一個區塊的程度。再加上傳輸驗證等因素,所以通常要六個循環,也就是一個鐘頭後才能確認交易已完成。


區塊鏈的另一個要角是乙太坊。它是個區塊鏈智能合約平台,應用程式在乙太坊虛擬機 EVM (Ethereum Virtual Machine) 中執行。乙太坊的區塊產生間隔降低到15秒左右,加上智能合約的出現,讓區塊鏈應用從單純的貨幣拓展到各行各業上。


比特幣中使用 UTXO ( Unspent Transaction Outputs ) Model,要把以前的交易加起來才知道各帳戶餘額。乙太坊所使用的 Account Model 就像銀行帳戶一樣,交易完會把帳戶餘額紀錄在區塊鏈當中,所以適合智能合約的發展。


比特幣是在公用網路上運作,所以需要用共識機制來確保不易被竄改,這種方式叫公有鏈 (Public blockchains)。相對有些完全在私人領域中運行的區塊鏈網路,就是私有鏈 (Private blockchain)。介於中間的就是聯盟鏈 (Consortium blockchains)。加入聯盟需申請,不對外開放,運作上有權限控管的機制。比特幣的PoW共識機制是最為人詬病的問題,因為它消耗了大量的能源。而性能問題又是公有鏈的共同弱點,比特幣最快每秒鐘只能處理7筆交易,乙太坊每秒20筆。而聯盟鏈性能較佳,可達每秒1000筆交易左右