close

 

搖錢樹43:區塊鏈技術演進史

楊惟雯
 

區塊鏈其實並非一項全新的技術,而是由密碼學、數學、演算法及經濟模型所組成,是跨領域將過去數十年所累積的技術基礎集成。
基本上,區塊鏈技術是一種基於去中心化零信任基礎分散式資料庫系統及運用共識演算法資料無法被竄改…的特性,日漸形成被認為可能顛覆人類數千年來交易方式,未來應用想像空間跟發展潛力極大,從金融領域到物聯網、雲端運算都可以看到它的身影。
 

一、<拜占庭將軍>問題的啟蒙
 

區塊鏈技術的出現,最早被追溯於2008年11月一份署名「中本聰」的比特幣論文被發表在網路上,及20091350個比特幣問世。

比特幣是第一個採用區塊鏈技術打造出的P2P電子貨幣系統。這幾年也陸續出現許多基於區塊鏈技術的電子貨幣(統稱為Altcoins),不過區塊鏈的真實價值,遠超過於電子貨幣系統。

 

區塊鏈技術是實現基於去中心化、零信任基礎的分散式系統
它最初源於想解決一個在1982年由Leslie Lamport等人所提出的
拜占庭將軍>問題,在策略思考----軍中分散各地部隊,如何彼此取得共識、決定是否出兵的策略形成過程。
拜占庭位於現在土耳其的伊斯坦堡,是東羅馬帝國的首都。由於當時拜占庭羅馬帝國國土遼闊,為了防禦目的,因此每個軍隊都分隔很遠,將軍與將軍之間只能靠信差傳消息。在戰爭的時候,拜占庭軍隊內所有將軍和副官必需達成一致的共識,決定是否有贏的機會才去攻打敵人的陣營。但是,軍隊可能有叛徒和敵軍間諜,左右將軍們的決定,擾亂軍隊整體的秩序。在進行共識時,結果並不代表大多數人的意見。這時候,在已知有成員謀反的情況下,其餘忠誠的將軍在不受叛徒的影響下如何達成一致的協議,拜占庭問題就此形成。

 

2008年出現的區塊鏈技術,便在設法建立具容錯性的分散式系統即使部分節點失效,但仍可確保系統正常運行,可讓多個基於零信任基礎的節點達成共識,並確保資訊傳遞的一致性,故區塊鏈技術即可解決了上述問題。

 

二、區塊鏈的五大核心技術基礎
 

一個偉大創新,往往背後的技術不是萬丈高樓一日起的,而是多年的累積與醞釀,以下讓我們概略介紹區塊鏈背後涵蓋之五項核心技術。

 

第一,在隱私安全(privacy)方面的技術
可回溯到1982David Chaum提出注重隱私的密碼學網路支付系統,如e-cash具有不可追蹤的特性,成為區塊鏈在隱私安全面上的雛形,不過eCash並非去中心化系統,與今日的區塊鏈不同,但他的privacy 研究影響深遠。
1985Neal KoblitzVictor Miller分別提出橢圓曲線密碼學Elliptic curve cryptographyECC),首次將橢圓曲線用於密碼學,建立公開金鑰加密的演算法。相較於RSA演算法,採用ECC好處在於可以較短的金鑰,達到相同的安全強度
到了1992年,由Scott Vanstone等人提出ECDSA。在區塊鏈中每筆交易,採用橢圓曲線數位簽章演算法Elliptic Curve Digital Signature AlgorithmECDSA

 

第二,ScalabilityGoogle的拿手好戲,也是其競爭力的基礎。
現在比特幣區塊鏈是理論上可到7TPSTransactions Per Second)。但 Visa 平時是 2,000 TPS, 尖峰時是 10,000 TPS
淘寶在2015年光棍節(1111日,即雙十一)的尖峰是86,000 TPS。這些都是value transfer
相對於以上value transfer,若是information transfer的話,Twitter平時是5,000 TPS, 尖峰時是15,000 TPS
目前email networks 每天有183 billion emails 183 billion emails2,100,000 TPS
將來物聯網(IOT)時代會有相當高的TPS,且一定是多中心化的,如何估計到時IOT value transferTPS,是相當重要。
現在區塊鏈提供多中心化的 APIbased value transfer,我們必須確保 scalability及效率能跟上。比特幣區塊鏈現在大約65 GB,新的full node加入時約需下載一整天。

如果做到 Visa級別,約需 3.9 GB/day 1.42 PB/year。如果做到 150,000 TPS, 約需 214 PB/year. 光是比特幣區塊鏈本身,Roger Ver 預測未來兩年的size也會迅速成長,很快就會到Terabyte等級。如此大規模運算時,我們系統的挑戰為何?開發者需要simple and expressive 區塊鏈開發工具及模型。在系統層級,scalable efficientand fault-tolerant implementation十分重要。
 

第三,Security and cryptography
比特幣區塊鏈安全的原因,主要是在於它背後強大的core developers,問題發生後有馬上處理改善的能力。這種急戰力,源自open-source developers community
總而言之,Stress test Penetration test 並沒有擊倒比特幣區塊鏈。社會上看到的比特幣被盜事件都跟區塊鏈安全無關,問題往往都是出在上層的交易所及人為因素。

 

第四,Flexibility
Flexibility包含智能合約(Smart Contract),Virtual MachineGovernance Structure,及Business Logic
Flexibility是區塊鏈系統研究人員常常忽略的,因為系統人員或系統公司往往忽略應用。而做區塊鏈應用的又往往技術紮根不足,無法徹底解決Governance StructureSmart Contract的問題。
Flexibility十分重要。區塊鏈若要遍地開花,落實在現實世界,雖然底層scalability十分重要,但同樣重要,或甚至更重要的是Governance Structure及業務邏輯的實踐。
可以說沒有Flexibility,就沒有落地。誠如臺大黃茂榮教授說過,所有有用的技術,都必須接受商業實踐的檢驗。Flexibility這正是Gcoin區塊鏈的強項之一。Gcoin G正是代表Governance StructureGlobal。前者代表Flexibility,後者(Global)代表Scalability

 

第五,Consensus Algorithm(共識演算法):
區塊鏈雖然在隱私安全、密碼學、經濟模型上都有跨領域的突破,但最重要的創新應是在算法、算力,特別是共識演算法的創新突破。
相較之下,區塊鏈在其他領域方面的貢獻比較像是十分漂亮的跨領域結合與設計,當然這些也展現了不凡的系統功力與設計實力,但我們還是要特別強調,其在共識演算法的突破才是讓區塊鏈被稱為“Trust Machine”。

現在區塊鏈百家爭鳴,例如做 Database 的研究人員說區塊鏈不過是分散式 Database(帳本),做 Networking 的人員說區塊鏈就是P2P network,做Programming Language的老師說區塊鏈就是 一個Programming Platform,做Virtual MachineCompiler的研究人員說區塊鏈是Smart Contract,做密碼學的研究人員說區塊鏈只不過是PKC(Public Key Cryptography)的下一版

所以,我們更要找回區塊鏈的初心:Trust Machine。例如,如果沒有Trust在我們討論的範疇,記錄東西時就用Database即可,不用扯到區塊鏈。如果沒有Trust在我們討論的範疇時,要點對點傳遞訊息就用P2P network即可,不用硬拉區塊鏈進來。其他領域也是類似情形。

 

三、區塊鏈技術的演進階段

 

區塊鏈技術已經歷了幾個不同的階段,常見的分法:
1
、將比特幣視為Blockchain 1.0,為數位貨幣Currency)應用;

2
Blockchain 2.0開始出現如智慧資產Smart Assets)、智慧契約Smart Contracts)等貨幣以外的應用;

3
Blockchain3.0則是指更複雜的智慧契約,將區塊鏈用於政府、醫療、科學、文化與藝術等領域。

 

區塊鏈新創DTCO執行長李亞鑫基於現有的分法進行補充,他認為,Blockchain 2.0彩色幣Colored Coin)為代表,在區塊鏈上運行Open Assets Protocal,可傳遞貨幣以外的數位資產,如股票、債券…等。

而從Blockchain 2.0之後,可再分出一類屬於Blockchain 2.5的應用,包括代幣(貨幣橋)應用、分散式帳本Distributed Ledgers)、資料層區塊鏈Data Layers Blockchain)、結合人工智慧Artificial Intelligent),以及無交易所的國際匯款網路,以Ripple為代表,資料層、分散式儲存則以FactomMaidSafe為代表,Blockchain3.0則以Ethereum為代表。

他表示,Blockchain2.5跟Blockchain3.0最大的不同在於,3.0較再強調是更複雜的智慧契約,以2.5則強調代幣(貨幣橋)應用,如可用於金融領域聯盟制區塊鏈,如運行1:1的美元、日圓、歐元等法幣數位化。

 

由於區塊鏈協議幾乎都是開放源代碼的,因此要取得區塊鏈協議的原始碼不是問題,重點是要找到好的區塊鏈服務供應商,協助導入現有的系統。而銀行或金融機構得對區塊鏈有一定的瞭解,才能知道該如何選擇,並應用於適合的業務情境。

 

四、以時間軸歸納區塊鏈技術演進階段

 

以下,再以時間軸方式,歸納區塊鏈技術演進階段如下:

■1982----拜占庭將軍問題

Leslie Lamport等人提出拜占庭將軍問題(Byzantine Generals Problem),把軍中各地軍隊彼此取得共識、決定是否出兵的過程,延伸至運算領域,設法建立具容錯性的分散式系統,即使部分節點失效仍可確保系統正常運行,可讓多個基於零信任基礎的節點達成共識,並確保資訊傳遞的一致性,而2008年出現的比特幣區塊鏈便解決了此問題。

另David Chaum提出注重隱私安全的密碼學網路支付系統,具有不可追蹤的特性,成為之後比特幣區塊鏈在隱私安全面的雛形。

 

■1985----橢圓曲線密碼學

Neal Koblitz和Victor Miller分別提出橢圓曲線密碼學(Elliptic Curve CryptographyECC),首次將橢圓曲線用於密碼學,建立公開金鑰加密的演算法。相較於RSA演算法,採用ECC好處在於可用較短的金鑰,達到相同的安全強度。

 

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

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

 

■1991----使用時間戳確保數位檔安全

Stuart Haber與W. Scott Stornetta提出用時間戳確保數位檔安全的協議,此概念之後被比特幣區塊鏈系統所採用。

 

■1992----

Scott Vanstone等人提出橢圓曲線數位簽章演算法Elliptic Curve Digital Signature AlgorithmECDSA

 

■1997年----Adam Back發明Hashcash技術

Adam Back發明Hashcash(雜湊現金),為一種工作量證明演算法Proof of WorkPOW),此演算法仰賴成本函數的不可逆特性,達到容易被驗證,但很難被破解的特性, 最早被應用於阻擋垃圾郵件。Hashcash之後成為比特幣區塊鏈所採用的關鍵技術之一。

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

而區塊鏈中最關鍵的工作量證明機制,則是採用由Adam Back1997年所發明Hashcash(雜湊現金)方法,為一種工作量證明演算法Proof of WorkPOW),此演算法仰賴成本函數的不可逆特性,達到容易被驗證,但很難被破解的特性,最早被應用於阻擋垃圾郵件。

 

■1998----

Wei Dai發表匿名的分散式電子現金系統B-money,引入工作量證明機制,強調點對點交易和不可竄改特性。不過在B-money中,並未採用Adam Back提出的Hashcash演算法。Wei Dai的許多設計之後被比特幣區塊鏈所採用。

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

 

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

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

 

■2008---- Blockchain 1.0:加密貨幣

Satoshi Nakamoto(中本聰)發表一篇關於比特幣的論文,描述一個點對點電子現金系統,能在不具信任的基礎之上,建立數位貨幣與一套去中心化的電子交易體系。

 

■2012年之後----Blockchain 2.0:智慧資產、智慧契約

市場去中心化,可作貨幣以外的數位資產轉移,如股票、債券。如Colored Coin便是基於比特幣區塊鏈的開源協議,可在比特幣在區塊鏈上發行多項資產。

 

■2014年之後----
Blockchain 2.5
:金融領域應用、資料層
強調代幣(貨幣橋)應用、分散式帳本、資料層區塊鏈,及結合人工智慧等金融應用

Blockchain 3.0:更複雜的智慧契約
更複雜的智慧合約,將區塊鏈用於政府、醫療、科學、文化與藝術等領域

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大宅配 的頭像
    大宅配

    大宅配~ 生活美學

    大宅配 發表在 痞客邦 留言(1) 人氣()