從技術角度告訴你,區塊鏈到底有哪些特點和運作機制

區塊鏈社群HiBlock發表於2018-03-08

從技術角度告訴你,區塊鏈到底有哪些特點和運作機制


自從今年1月20日,中國人民銀行在數字貨幣研討會上表示高度重視區塊鏈(Blockchain)等技術帶來的新機遇和挑戰,並爭取早日推出央行發行的數字貨幣[1]以來,區塊鏈的概念在國內越發火熱,吸引了金融機構空前的關注。


技術篇介紹區塊鏈的技術特點和運作機制,並說明相關的重要技術概念;應用篇結合其在金融和非金融領域的應用案例,分析區塊鏈的應用場景和市場前景。


作者認為,區塊鏈技術的核心是沿時間軸記錄資料與合約,並且只能讀取和寫入,不能修改和刪除。在應用層面,區塊鏈的安全、透明、高效3大優勢,使其特別有助於規範網際網路金融的發展,以及促進物聯網和共享經濟的普及與創新;在資本市場,採用分散式資料庫和智慧合約還可以大幅減少人工核對工作,為金融機構節省成本。


區塊鏈的技術特點


區塊鏈是一種共享的分散式資料庫技術[2]。儘管不同報告中對區塊鏈的一句話介紹措辭都不相同,但以下4個技術特點是共識性的[3]。


1. 去中心化(Decentralized):圖1的左側描述了當今金融系統的中心化特徵,右側描述的是正在形成的去中心化金融系統,其沒有中介機構,所有節點的權利和義務都相等,任一節點停止工作都會不影響系統整體的運作[4];


從技術角度告訴你,區塊鏈到底有哪些特點和運作機制

圖1,出自花旗報告Digital Disruption: How FinTech is Forcing Banking to a Tipping Point [4]


2. 去信任(Trustless):系統中所有節點之間無需信任也可以進行交易,因為資料庫和整個系統的運作是公開透明的,在系統的規則和時間範圍內,節點之間無法欺騙彼此;


3. 集體維護(Collectively Maintain):系統是由其中所有具有維護功能的節點共同維護的,系統中所有人共同參與維護工作;


4. 可靠資料庫(Reliable Database):系統中每一個節點都擁有最新的完整資料庫拷貝,修改單個節點的資料庫是無效的,因為系統會自動比較,認為最多次出現的相同資料記錄為真。


從技術角度告訴你,區塊鏈到底有哪些特點和運作機制

圖2,出自高盛報告Blockchain: Putting Theory into Practice [2]


圖2為簡化起見,僅展示了6處保留資料庫副本的節點;在3個交易序列中,前2個交易的資料和簽名得到了所有6個節點的驗證,但第三個交易的位置5沒有通過驗證,將被其它節點的“一致意見”更改[2]。


公有鏈、私有鏈、側鏈


區塊鏈按照訪問和管理許可權可以分為公有鏈(Public Blockchain)和私有鏈或聯盟鏈(Private Blockchain)。公有鏈是完全開放的區塊鏈,全世界的人都可以參與系統維護工作,這使得公有鏈還具有以下2個特點[3]。


1. 開源(Open Source):由於整個系統的運作規則公開透明,這個系統是開源系統;


2. 匿名(Anonymity):由於節點之間無需信任彼此,所有節點也無需公開身份,系統中每一個節點的匿名和隱私都受到保護。


私有鏈或聯盟鏈在開放程度和去中心化程度方面有所限制[5],參與者需要被提前篩選,資料庫的讀取許可權可能是公開的,也可能像寫入許可權一樣只限於系統的參與者[6]。


公有鏈的典型代表是比特幣區塊鏈,任何人都可以通過交易或挖礦讀取和寫入資料[7]。私有鏈或聯盟鏈的典型案例是Ripple和R3 CEV,前者目前為屬於聯盟成員的銀行類金融機構提供跨境支付服務,希望取代環球同業銀行金融電訊協會(SWIFT)的跨境轉賬平臺,打造全球統一的網路金融傳輸協議;後者旨在推動制定適合金融機構使用的區塊鏈技術標準[8]。


側鏈(Sidechains)是用於確認來自於其它區塊鏈的資料的區塊鏈,通過雙向掛鉤(Two Way Peg)機制使比特幣、Ripple幣等多種資產在不同區塊鏈上以一定的匯率實現轉移[9][10]。


從技術角度告訴你,區塊鏈到底有哪些特點和運作機制

圖3,出自Blockstream Moves Ahead with Sidechain Elements. Giulio Prisco [10]


側鏈進一步擴充套件了區塊鏈技術的應用範圍和創新空間,使區塊鏈支援包括股票、債券、金融衍生品等在內的多種資產型別,以及小微支付、智慧合約、安全處理機制、真實世界財產註冊等;側鏈還可以增強區塊鏈的隱私保護[10][11]。


所謂“多種資產在不同區塊鏈上轉移”其實並不會實際發生。以比特幣為例,側鏈的運作機制是,將比特幣暫時鎖定在比特幣區塊鏈上,同時將輔助區塊鏈上的等值數字貨幣解鎖;當輔助區塊鏈上的數字貨幣被鎖定時,原先的比特幣就被解鎖[12]。


比特幣區塊鏈如何運作?


比特幣網路從2009年1月開始至今,在沒有專人維護的情況下已經平穩執行7年多,期間沒有出現一次當機。圖4以Bob接收來自Alice的比特幣的場景,詳細描述了比特幣區塊鏈的工作方式,一併解釋了涉及到的錢包和地址(Wallets and Addresses)、私鑰和公鑰(Private Key and Public Key)、加密雜湊(Cryptographic Hashes)、隨機數(Nonces)等概念[13]。


從技術角度告訴你,區塊鏈到底有哪些特點和運作機制

圖4,出自A Guide to Bitcoin Mining. Alec Liu [13]

錢包和地址:


  • Bob和Alice的電腦上都有比特幣錢包。

  • 錢包是一種檔案,可以讓使用者訪問多個比特幣地址。

  • 一個地址是一串由字母和數字組成的字串。

  • 每一個地址都有自己的比特幣餘額。


新建一個地址:


  • Bob建立一個新的比特幣地址,用於接收Alice的付款。


私鑰和公鑰:


1)當Bob建立一個新地址時,他真正在做的是生成一個金鑰對,由一個私鑰和一個公鑰組成。如果你使用私鑰(只有你知道)對一個訊息進行簽名,它可以被對應的公鑰(所有人都知道)所驗證。Bob的新地址代表一個唯一的公鑰,對應的私鑰則儲存在他的錢包裡。公鑰允許所有人來驗證被私鑰簽名的訊息的有效性。


2)可以將地址看做銀行賬號,但工作方式稍有不同。比特幣使用者可以任意建立多個地址,並且被鼓勵為每一個新的交易單獨建立新地址,以增強隱私性。只要沒有人知道哪些地址是Alice的,她的匿名就受到保護。


提交一個支付:

1)Alice告訴她的比特幣客戶端,她要向Bob的收款地址轉賬。

2)
Alice的錢包裡有她的每一個比特幣地址的私鑰。比特幣客戶端用Alice此次使用的付款地址的私鑰,對她的這一交易申請進行簽名。

3)此時,網路上的任何人都可以使用公鑰來驗證,這個交易申請實際來自一個合法的賬戶所有者。


驗證交易:


1)Gary、Garth和Glenn都是比特幣礦工。

2)他們的電腦將過去約10分鐘內的交易打包成一個新的交易區塊。

3)礦工的電腦被設定用於計算加密雜湊(Cryptographic Hash)函式。

4)加密雜湊函式將一個資料集轉換成特定長度的包含字母和數字的字串,稱為雜湊值。源資料的細微改變會徹底改變雜湊值的結果。並且基本不可能預測初始的資料集將會產生的特定雜湊值。

5)為相同的資料建立不同的雜湊值,比特幣使用隨機數來實現。隨機數是在進行雜湊計算之前,在資料中新增的隨機數字。改變這個隨機數會產生極不相同的雜湊值。

6)每一個新的雜湊值包含關於此前所有比特幣交易的資訊。

7)礦工的電腦基於前一個區塊的雜湊值、新交易區塊和隨機數,來計算新的雜湊值。

8)建立雜湊在計算上微不足道,但比特幣系統要求新的雜湊值擁有特定格式——必須以特定數量的0作為開始。

9)礦工無法預測哪個隨機數會產生以要求的數量的0作為開始的雜湊值,所以他們被迫用不同的隨機數建立很多雜湊,直到獲得有效的那一個。

10)每一個區塊都包含一個名為coinbase的初始交易,這是給勝出礦工的50比特幣的支付——在這個例子中是礦工Gary。Gray的錢包裡生成了一個新地址,裡面的餘額是新挖到的比特幣數量。


注:只有在比特幣發行的階段1,每一個區塊的coinbase支付給勝出礦工的新幣是50個。從2009年1月3日創世區塊誕生開始,新比特幣的發行大約每4年減半,2012年11月28日,階段2開始,每一個區塊包含的新幣減為25個,這是歷史上第一次減半;預計今年7月11日,挖礦獎勵會再次減半;直到第33次減半時,每一個區塊從產生0.0021個新幣直接減為0個,比特幣的總量固定在將近2100萬個[14][15]。


交易驗證:


隨著時間流逝,Alice向Bob的轉賬被埋在了其它更近期的交易下面。任何人要想修改歷史交易的細節,就必須重做一遍Gary的工作,然後再重做所有下一級礦工的工作,因為所有的改變都需要一個完全不同的勝出隨機數。這樣的操作幾乎不可能成功。


雙重支付如何解決?


以比特幣為代表的數字貨幣,關鍵的創新是通過時間戳(Timestamp)和工作量證明(Proof of Work)機制解決雙重支付(Double Spending)和拜占庭將軍問題(Byzantine Generals’ Problem),即保證同一筆比特幣不會同時出現在兩個地址[7],並且在通道可靠的基礎上,所有節點都可以讓其它節點接收到自己的真實意圖,並最終一致行動[16]。


這一技術方案最早見於化名為中本聰(Satoshi Nakamoto)的個人或團體在2008年發表的論文Bitcoin: A Peer-to-Peer Electronic Cash System [17]。


在Bob接收來自Alice的比特幣的場景中,一方面,這筆付款被廣播給系統中所有節點,任何人都可以使用Bob的公鑰來驗證這個交易的合法性,如果Alice試圖雙重支付,就必須先刪除這個交易記錄,否則新交易無法通過驗證。中本聰在論文中寫道:


“時間戳伺服器為一個區塊的資料的雜湊計算結果加上時間戳,並大範圍釋出這一雜湊計算結果,好比在報紙或新聞網上發表。顯然,時間戳證實這些資料一定在這一特定時間存在,只有這樣才能得到雜湊計算結果(A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash)”[17]。


另一方面,工作量證明機制使得生成下一個區塊的節點和礦工幾乎無法被預測到,所以刪除交易記錄幾乎不可能。系統中的節點將過去約10分鐘內的比特幣交易進行打包,而只有獲得有效雜湊值的礦工才能生成新區塊,並得到挖礦獎勵;礦工除了打包比特幣交易,還要結合隨機數來完成有效雜湊值的建立工作,獲得以要求的數量的0作為開始的雜湊值。


中本聰在論文中寫道:


從技術角度告訴你,區塊鏈到底有哪些特點和運作機制
圖5,出自中本聰論文Bitcoin: A Peer-to-Peer Electronic Cash System [17]

“工作量證明本質上是一CPU一票(Proof-of-work is essentially one-CPU-one-vote)”;


“如果兩個節點同時廣播不同版本的新區塊,那麼一些節點會先收到其中一個的廣播。在這種情況下,節點在先收到的區塊基礎上工作,並保留另外一個分支,以防後者變成較長的鏈。這個僵局要等到發現下一個工作量證明才能被打破,其中一條鏈將成為較長的鏈,在另一個分支上工作的節點將切換到較長的鏈上繼續工作(If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof-of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one)”;


“節點永遠認為最長的鏈是正確的鏈,並將持續在它上面延長(Nodes always consider the longest chain to be the correct one and will keep working on extending it)”[17]。


所以除非永久控制整個系統中超過一半的節點,才能阻止礦工把這個交易新增到新區塊中。


最後,考慮到硬體運算速度的增長和節點參與程度的變化,中本聰用移動平均目標來確定工作量證明的難度,使得兩個區塊生成的時間間隔約為10分鐘[17]。

區塊鏈技術目前問題


區塊鏈技術還處於不斷完善的階段,就其第一個應用的比特幣來說,有3個主要問題正在被其它系統所完善或試圖完善。


區塊容量和交易速度限制


中本聰設計比特幣時,為區塊設定了1MB的容量限制,使每一個區塊只能容納4096個交易;同時,工作量證明機制使得確認交易並將交易記錄到區塊鏈中需要約10分鐘,當運算量達到極限時,運算時間就會放緩[18]。目前,比特幣網路還沒有成熟到可以將規模擴充套件至主要信用卡網路的程度,提高這一上限的工作正在進行中[19]。


另外,區塊擴容已經成為迫切需求。曾有比特幣核心開發者提出從Bitcoin Core切換到硬分叉鏈Bitcoin XT的方案,區塊從1MB擴容至8MB,此後每2年翻倍。這一變動需要1000個連續區塊中的750個包含礦工的變更批准。目前這一事件正在發展中[18]。


挖礦浪費巨大資源

2014年6月曾有工程師系統計算,在比特幣全網計算能力為110,000,000 GH/S的情況下,整個網路的挖礦成本約為每年8億美元,包括電力成本約7,071.2萬美元和礦機投資約7.33億美元[20]。

礦機投資方面,支援這樣的算力大約需要36,670臺KnCMiner海王星礦機,每臺功率3,000GH,售價9,995美元,按照一年支出2次計算,結果約為7.33億美元/年;電力成本方面,每日需要耗電80,666千瓦,按照每兆瓦100美元計算,結果約為7,071.2萬美元/年。另外,這些礦機產生的二氧化碳為424,725噸/年[20]。

圖6展示了從2014年6月到2016年6月,比特幣網路計算能力的增長趨勢,最高點的Hash Rate已經達到1,800,000,000 GH/S [21]。


從技術角度告訴你,區塊鏈到底有哪些特點和運作機制
圖6 Hash Rate,出自Blockchain.info [21]

由於挖礦工作只為搜尋到隨機數以獲得有效雜湊值,並不產生其它價值,比特幣網路的算力資源和消耗的電力成本被詬病為資源浪費[22]。其它系統改進這個問題的總思路是,減少其中參與維護工作的節點的數量,減輕挖礦競爭的激烈程度。具體有2種方式,一是採用私有鏈或聯盟鏈,將“記賬權”強制規定給某些節點;二是引入權益證明(Proof of Stake)機制,配合工作量證明來維護可靠資料庫。


權益證明是一種對貨幣所有權的證明[23],證明人需要提供一定數量的貨幣的所有權,系統根據每一個節點所佔有的貨幣的比例和佔有時間來確定“記賬權”[22];權益證明的核心是隻讓在區塊鏈中具有經濟利益的人蔘與系統的維護工作,這就使得挖礦的成本遠低於工作量證明機制之下的挖礦成本[24]。


缺少圖靈完備性


既然區塊鏈可以保證比特幣交易記錄不被刪改,理論上也可以保證任何程式碼一旦被寫入,就不能刪改。然而,比特幣的指令碼語言並不是圖靈完備的,即不支援迴圈語句,意味著比特幣只能作為數字貨幣,不能直接支援智慧合約及更復雜的去中心化應用[25]。


區塊鏈技術平臺以太坊的指令碼語言(Ethereum Virtual Machine code)就是圖靈完備的;用EVM程式碼來建立應用,理論上可以實現任何可以想象的計算,包括無限迴圈[25]。以太坊實現了讓任何人可以上傳和執行任意的應用程式,並且程式的有效執行能得到保證[22]。

智慧合約如何運作?


在英語裡,Code這個單詞既有“程式碼”的意思,也有“法典”的意思,這暗示了智慧合約(Smart Contracts)的功能和意義。


智慧合約是一種直接控制數字資產的電腦程式[26]。圖7描述了基於比特幣的智慧合約的工作方式[27],通過在區塊鏈上寫入類似if-then語句的程式,使得當預先編好的條件被觸發時,程式自動觸發支付及執行合約中的其它條款[28]。


從技術角度告訴你,區塊鏈到底有哪些特點和運作機制

圖7,出自德勤報告Blockchain: Enigma. Paradox. Opportunity [27]


1)多方之間的定期交付合同被以程式碼的形式寫入區塊鏈。其中的個體是匿名的,但合同記錄在公共賬本中。


2)當扳機事件觸發時,比如到期、執行價格達到,合約按照程式設計的條款自動執行。


3)監管者可以通過這個區塊鏈瞭解市場上的活動,同時維護個體成員的隱私。


Bob是接受數字貨幣支付的線上商家,Alice是使用數字貨幣進行支付的購物者,智慧合約可以在去信任的情況下使Bob的商品與Alice的數字貨幣實現交換。Alice可以建立一個智慧合約,將這樣一段程式碼寫入區塊鏈:“如果我在24小時內收到這一商品,則我會將這筆數字貨幣發到寄件人的收款地址,並將這個商品寄給我的建立者,否則我將會將這筆數字貨幣發回給我的建立者”。


智慧合約中的資產和資金沒有擁有者(Owner),在這個例子中,當Alice把這筆數字貨幣加入智慧合約,就無法通過修改這個合約把這筆數字貨幣拿回來,只能等待交易成功並收到Bob寄出的商品,或者24小時後交易沒有成功,再收到自己的數字貨幣。


技術篇結論


以上介紹了區塊鏈的技術特點及相關的數字貨幣、智慧合約、側鏈等的運作機制,並說明了相關的時間戳、工作量證明、權益證明、加密雜湊等概念。區塊鏈技術的核心是實現了沿時間軸記錄資料與合約,並且一旦寫入,就只能讀取,不能修改和刪除。


參考文獻:
[1] 中國人民銀行數字貨幣研討會在京召開 網址:http://www.pbc.gov.cn/goutongjiaoliu/113456/113469/3008070/index.html
[2] Blockchain: Putting Theory into Practice 高盛報告
[3] 什麼是區塊鏈 網址:http://chainb.com/?P=Cont&id=6
[4] Digital Disruption: How FinTech is Forcing Banking to a Tipping Point 花旗報告
[5] 詳解區塊鏈——顛覆式創新技術 申萬巨集源報告
[6] On Public and Private Blockchains 網址:https://blog.ethereum.org/2015/08/07/on-public-and-private-blockchains
[7] Mastering Bitcoin: Unlocking Digital Cryptocurrencies 出版社:O'Reilly Media
[8] 區塊鏈——銀行業遊戲規則的顛覆者 麥肯錫大中華區報告
[9] 論文Enabling Blockchain Innovations with Pegged Sidechains 網址:https://www.blockstream.com/sidechains.pdf
[10] Blockstream Moves Ahead with Sidechain Elements, the First Implementation of Sidechains 網址:https://bitcoinmagazine.com/articles/blockstream-moves-ahead-sidechain-elements-first-implementation-sidechains-1433883105
[11] How Sidechains Work 網址:https://blockstream.com
[12] Sidechains, Drivechains, and RSK 2-Way peg Design 網址:http://www.rootstock.io/blog/sidechains-drivechains-and-rsk-2-way-peg-design
[13] A Guide to Bitcoin Mining: Why Someone Bought a $1,500 Bitcoin Miner on eBay for $20,600 網址:http://motherboard.vice.com/blog/a-guide-to-bitcoin-mining-why-someone-bought-a-1500-bitcoin-miner-on-ebay-for-20600
[14] 比特幣總量為什麼是2100萬? 網址:http://www.8btc.com/21million00
[15] 定於7月11日的比特幣挖礦獎勵減半日,中外看法大不相同 網址:http://www.8btc.com/china-bitcoin-711-halving
[16] 拜占庭將軍問題深入探討 網址:http://www.8btc.com/baizhantingjiangjun
[17] 論文Bitcoin: A Peer-to-Peer Electronic Cash System 網址:https://bitcoin.org/bitcoin.pdf
[18] 區塊鏈和數字貨幣系列報告之一 申萬巨集源報告
[19] 比特幣能否擴大規模成為一個主要的支付網路? 網址:https://bitcoin.org/zh_CN/faq#can-bitcoin-scale-to-become-a-major-payment-network
[20] Under the Microscope: Economic and Environmental Costs of Bitcoin Mining 網址:http://www.coindesk.com/microscope-economic-environmental-costs-bitcoin-mining
[21] Hash Rate. Blockchain.info 網址:https://blockchain.info/charts/hash-rate?timespan=2year&showDataPoints=false&daysAverageString=1&show_header=true&scale=0&address=
[22] 區塊鏈:網際網路的詩和遠方 安信證券報告
[23] PPC: 一種P2P(點對點)的權益證明(Proof of Stake)電子密碼貨幣 網址:http://8btc.com/thread-540-1-1.html
[24] What Proof of Stake Is And Why It Matters 網址:https://bitcoinmagazine.com/articles/what-proof-of-stake-is-and-why-it-matters-1377531463
[25] [中文] 以太坊白皮書 網址:https://github.com/ethereum/wiki/wiki/%5B%E4%B8%AD%E6%96%87%5D-%E4%BB%A5%E5%A4%AA%E5%9D%8A%E7%99%BD%E7%9A%AE%E4%B9%A6
[26] Platform Review - Opportunities and Challenges for Private and Consortium Blockchains 以太坊報告(R3出版)
[27] Blockchain: Enigma. Paradox. Opportunity 德勤報告
[28] 智慧合約將使我們未來不需要銀行和律師? 網址:http://haogetalks.baijia.baidu.com/article/505826
[29] Blockchain: Blueprint for a New Economy 出版社:O'Reilly Media

(文章來源:鈦媒體)


以下是我們的社群介紹,歡迎各種合作、交流、學習:)




相關文章