文 |郭楊睿美國鍶弗瑞(Cypherium)公司 CEO

  在人類發展史上,貨幣的進化從未停止。

  比特幣創造出了一個個造富神話,引起各國政府及監管機構的關注。雖然金融專家普遍認為它只是一種資產,而非貨幣,但是,其背後的區塊鏈(Blockchain)技術引起了包括各大金融機構、政府、企業及學術界的濃厚興趣,未來可以在各國央行發行的法定數字貨幣時充當技術支撐本文深入淺出,帶您瞭解區塊鏈的工作原理和概念。

  區塊鏈是比特幣發明人中本聰在劃時代的白皮書《比特幣:一種點對點的電子現金系統》中提出的概念,其本質是一種不可篡改、分散式的資料庫,用於解決在沒有中心化機構情況下的信任問題。區塊鏈主要涉及的技術有加密演算法、點對點網路、虛擬機。

  目前,已有國家提倡發行基於區塊鏈技術、由央行實施宏觀調控的央行數字貨幣(Central bank digital currency),例如英格蘭銀行、荷蘭銀行發布了數字貨幣白皮書,加拿大銀行開展了基於區塊鏈的法定數字貨幣實驗。與比特幣使用「挖礦」作為發行機制不同,央行數字幣由央行控制發行量,決定與其他貨幣之間的價值錨定,發行數字貨幣的同時回收相同數額的紙幣。央行數字貨幣的價值由國家信用背書,並且具有法律效應。

  下面,筆者將介紹區塊鏈的技術原理,並且分析其在央行數字貨幣中的應用機會。

  技術原理

  傳統的中心化網路採用客戶端——伺服器通訊模型(Client-server model)。比如,微信用戶發送一條消息給另一位好友,這條消息首先從他的手機上的客戶端被發送到了微信的中心伺服器,接著,微信伺服器會將信息轉發給接收者。這意味著所有的信息都需要經過微信伺服器的處理才能完成傳輸。中心化伺服器對其所存儲的信息擁有完全的許可權,所有的用戶必須依賴其可靠性並給予完全信任。中心化伺服器的安全極易受到威脅。黑客可操縱大量被非法控制的設備(俗稱肉雞)訪問某一伺服器,達到癱瘓服務的目的。一旦微信伺服器被黑客攻破,則所有的用戶均無法正常發送消息。2016年,黑客利用數百萬臺被操控的物聯網設備對美國Dyn公司的域名伺服器實施大規模攻擊,癱瘓掉整個美國東部的互聯網。而點對點網路里每一臺終端設備既是伺服器,也是客戶端。每個節點在加入網路之後,隨機與若干其他節點相連接並將數據接力傳輸至整個網路。某個節點的故障或關停並不會影響到其他節點正常運行。

  分散式賬本是為瞭解決中心化伺服器單點失效(Single point of failure)問題而誕生的技術。區塊鏈技術是分散式賬本(Distributed ledger)的一種,但二者並不完全等同。嚴格地講,只有通過摘要演算法將所有的交易記錄打包成區塊進行鏈接的賬本才屬於區塊鏈。此外亦有非基於區塊鏈的分散式賬本。

  區塊(Block)是構成區塊鏈的基本單位。打個比方,區塊鏈可以看作是一個不斷延伸的賬本,賬本的每一頁則相當於一個區塊。這個區塊上面記錄著某一段時間內所發生的全部交易。其目的是為瞭解決雙重花費問題(Double-spending problem):真實世界的貨幣一經花費便不再屬於原所有者。而數字世界裡的貨幣本身只是一段數據。既然數據可以任意複製,那麼,一枚數字貨幣在花出去之後如何保證它不被再次使用呢?傳統中心化銀行的做法是用一個賬本記錄每一筆轉賬和賬戶的餘額。這樣的缺點和風險顯而易見,即用戶必須對銀行擁有足夠的信任。一旦銀行被黑客攻破,或者有不軌行為,所有的損失將會由用戶承擔。區塊鏈採用了分散式賬本技術,即網路當中的每一臺終端設備都保留一份完整的交易數據。只要有一筆交易發生,區塊鏈就會永久保存這筆記錄,表示貨幣的所有權已經發生了轉移。接下來,該區塊鏈網路里所有的賬本都會更新至最新版本,該版本也被稱為區塊高度。

  密碼學是加密數字貨幣的基石。區塊鏈中涉及的加密演算法主要有摘要演算法(Message digest algorithm)和非對稱加密演算法(Asymmetric cryptography)。摘要演算法可隱藏信息原本的內容而無法逆向破解。信息經過摘要演算法處理後,會得到一段固定長度的二進位數據,稱為哈希(Hash),又名為數字指紋。正如每個人的指紋都是獨一無二的,數字指紋可以作為信息的惟一憑據,驗證原信息是否被篡改。只要原始信息哪怕只有一個比特(計算機中信息最小單位)被篡改,它的數字指紋都將會面目全非。

  非對稱加密名演算法,又稱作公鑰加密演算法(Public-key cryptography),指的是用於加密和解密的密鑰不同的演算法。公鑰可以對任何人公開,而私鑰只有自己知道。用公鑰加密的信息只能用與之匹配的私鑰纔可以解開。公鑰在經過一系列摘要演算法處理之後可生成與之唯一對應的地址。每個地址可表示為一個賬戶,並在區塊鏈上記錄著該賬戶擁有多少數字貨幣。手寫簽名可以辨別一個人的身份。用公鑰加密演算法可以生成數字簽名,證明私鑰持有者簽署了某一段信息。數字簽名又可以通過擁有者的公鑰來驗證。手寫簽名很容易被模仿偽造,而想要在沒有私鑰的情況下偽造簽名需要花上數億年,這在現實世界中可以說是不可能的。使用單一簽名仍然具有較大的安全風險,多重簽名(Multi-sig)因此誕生,一筆多重簽名交易必須獲得兩個或以上簽名方可生效。

  傳統的電子貨幣採用賬戶形式記錄,這樣意味著隨著用戶增長,伺服器就需要存儲越來越多的賬戶信息。未花費交易模型(Unspent transaction output)有效地解決了區塊鏈體積膨脹的問題。該模型中每筆交易本質上是一段代碼,包含了用戶的數字簽名、來源交易、轉賬數額、目標地址、交易手續費等信息。與銀行工作人員核對支票的過程類似,區塊鏈節點收到用戶發起的轉賬請求之後,首先會驗證該簽名是否有效,然後檢查來源交易中的數字貨幣是否已經被花費,以及是否包含足夠數額的貨幣。該筆交易必須在所有驗證過程都通過的情況下方可生效。數字貨幣的擁有者可以發送給任何地址,即使該地址不在網路上。當一筆交易生效之後,該筆交易中所包含的數字貨幣便被「上鎖」,只有目標地址私鑰的擁有者纔可以打開這把鎖並使用這筆數字貨幣。一旦私鑰丟失,這個地址裏擁有的數字貨幣便無法花費了。

  由於數字簽名不可偽造,也就是說在沒有私鑰的情況下黑客無法仿造他人的簽名,最多隻能通過修改區塊鏈記錄重複花費自己擁有的數字貨幣。比如,黑客A給商家B支付了一枚數字貨幣,B看到區塊鏈上已經有了A的轉賬記錄,於是把商品交給了A。A在拿到商品之後對區塊鏈實施雙重花費攻擊,從區塊鏈中抹去自己支付的這筆記錄。然而,這種做法在現實中的可行性微乎其微:第一,每個區塊的生成要耗費大量的算力資源,如果要修改某一筆支付記錄,就需要將包含該記錄的區塊以及其後面的所有的區塊回爐重造,而黑客很難掌握如此巨量的算力。第二,其他的節點會將該區塊和自己保存的記錄加以比對。由於經黑客篡改的區塊與其他節點擁有的區塊鏈記錄不符,被黑客修改過後的區塊不會被網路中的其他節點接受。

  在分散式的區塊鏈網路當中,有可能會出現兩個節點各自賬本的記錄不一致的情況。現實中,某一筆交易不可能同時是既發生過又沒有發生過這兩種狀態。所以,分散式的區塊鏈當中需要有一種機制來確定究竟哪個版本的賬本纔是真實有效的,讓所有的節點達成共識。解決共識是分散式網路中最關鍵的問題。比特幣採用工作量證明的共識機制:礦工通過大量計算獲得一個特定數學公式的解(即挖礦)競爭記賬權,並選取最長的那一條鏈作為有效版本。這裡的「最長」指的並不是所包含的區塊最多,而是所包含的挖礦難度最多。在比特幣當中,每個區塊會有一個隨著網路算力調整的挖礦難度設置。當難度越大,挖礦所需要的電力就越多。工作量證明提供最高的安全性和去中心化程度,相應付出的代價則是需要消耗大量的電力維持,每筆交易必須等待漫長的挖礦過程結束之後纔可被記錄在區塊鏈上。由於挖礦的結果是隨機的,工作量證明機制只能在概率上達成共識,難以保證結果最終性(Finality)。

  工作量證明解決了四個主要問題:決定記賬權歸屬、去中心化信任、增加篡改交易記錄成本以及代幣的分配規則。不同於比特幣,央行數字貨幣運行在受信任的網路上,其發放受央行宏觀調控控制,因此,可以採用非工作量證明礦共識機制。

  一切事物都在運動和發展,一成不變的模式終將無法適應人類生產活動的需求而被淘汰。區塊鏈誕生於比特幣,經過數年已經從去中心化現金支付系統發展成價值傳輸網路。隨著區塊鏈用戶的不斷增加、功能不斷提升,對區塊鏈更高級應用場景的需求與區塊鏈底層技術之間矛盾日益體現。治理機制是最近被引起重視並搬上世界經濟論壇議程的內容,指誰對區塊鏈的規則有制定權,例如採用哪種加密演算法和共識機制、代幣發行機制等。此外,運行在區塊鏈上的應用應該擁有獨立於底層協議的治理機制。應用開發者需要能夠規定用戶訪問許可權、保護用戶敏感信息、部署版本更新等。如何確定可適用本國經濟情況的治理機制是發行法定數字貨幣的關鍵。

  法定數字貨幣對於交易吞吐量和可用性有極高的要求。區塊鏈的速度主要由以下幾點因素決定:加密演算法、共識機制、網路速度、硬體讀寫等。在硬體發展逼近物理極限的今天,演算法對於性能的提升尤為關鍵。分頁技術(Sharding)是區塊鏈和分散式賬本一個熱門的研究方向。經典的區塊鏈按照交易時間順序產生區塊,每個特定時刻只可存在一個區塊。分頁技術將區塊鏈數據拆分成若干部分,通過並行方式處理交易數據,網路中的每記賬節點僅需驗證一部分而非所有的區塊。該技術理論可支持每秒鐘數百萬並發交易。然而,分頁技術在實踐當中仍然有諸多技術難題。閃電網路(Lightning network)是將小額交易放在鏈外結算的一種提高交易頻次的技術方案,可繞過區塊鏈本身在速度方面的侷限,類似支付寶用戶之間轉賬全部發生在支付寶內部系統裏,只有在提現時才涉及銀行結算。

  區塊鏈與法定數字貨幣

  有關央行數字貨幣是否應該採用區塊鏈技術仍然在辯論當中。非區塊鏈的分散式賬本省卻了將交易打包成區塊以及用哈希這一步驟,比區塊鏈技術所需的計算量更小。但是,這一方案不具備區塊鏈的不可篡性。

  從記賬權分配角度劃分,區塊鏈可分為公有鏈、聯盟鏈和私有鏈。公有鏈是指任何人都有資格獲得記賬權的區塊鏈,如比特幣。聯盟鏈指若干個相互信任的節點組成一個同盟,共同擔任記賬職責。私有鏈的記賬權則完全屬於單一個體。 目前,區塊鏈技術正處於其初始階段,對於央行數字貨幣應該採用哪種技術實施方案並無統一定論。

  央行數字貨幣必須解決以下根本問題:

  安全性。央行數字貨幣關乎一個國家的金融命脈,對安全級別有最高要求。系統必須能夠抵抗分散式拒絕服務攻擊、單點故障、未經授權訪問以及在不可抗力情況維持運轉。

  流動性。央行數字貨幣需易於使用,以及與其他的數字貨幣相互轉換。

  不可篡改性。交易記錄是歷史的客觀記錄,必須與交易的客觀歷史相吻合。

  可追溯性。每一筆交易的來龍去脈均可追溯到交易雙方的身份、交易目的、發生地點等信息,並能夠審計。

  高頻次性。Visa信用卡每秒平均處理兩千筆交易,支付寶峯值超過十萬筆。滿足日常支付需求的央行數字貨幣必須支持海量的交易頻次和低網路延遲。

  可控性。央行數字貨幣必須滿足央行貨幣政策實施宏觀調控的需求,準確及時地增發和回收貨幣。

  可控隱私性。央行數字貨幣需要在用戶隱私與透明度之間做出平衡,避免個人敏感信息泄露。由於央行涉及身份信息的敏感問題,交易數據與用戶身份敏感信息不宜在同一處存儲。

  許可權管理。一般用戶、商業銀行、央行、監管部門對於區塊鏈數據的讀寫許可權必需嚴格區分。

  除此之外,央行數字貨幣涉及賬戶分配、身份驗證、隱私保護、容錯機制方面,需要更完善的基礎設施體系。例如,用戶通過何種途徑獲得私鑰,在意外身亡或者身份被盜時如何保護數字貨幣的安全。央行數字貨幣可通過手機、電腦、自動提款機等終端設備完成交易,需要與大數據、移動終端、物聯網緊密結合。

  為了使央行數字貨幣易於在不同國家之間流通,並可作為外匯儲備,筆者認為,區塊鏈技術是發行央行數字貨幣最佳的技術選擇。區塊鏈採用的公鑰加密演算法為央行數字貨幣的身份管理、交易驗證提供不可偽造的安全保障。此外,區塊鏈開放式、不可篡改的數據訪問減少了金融機構之間,尤其在涉及跨行、跨國交易時的信任及通訊成本。央行不必投入巨大的人力和物力成本維護中心伺服器。區塊鏈的智能合約功能將使大量日常交易自動化執行。央行數字貨幣應該基於公有鏈架構,以保證其公信力。目前,業界主要有三種技術可行的方案:

  一、由各國央行推出自己的私有鏈。該方案的優點是央行擁有完全自主控制權;其缺點是存在技術與信用壁壘,例如,在跨境支付時對方必須擁有兼容該法定數字貨幣的軟體及設備方可接受支付。其安全性易受到單點失效威脅。

  二、由各國央行成立聯盟鏈。該方案的優點是兼容性好,專用性強;其缺點是每個成員國不得不犧牲一部分自主權,記賬權的分配容易引起糾紛。

  三、在一個公有區塊鏈上由各國央行發行法定數字貨幣。該方案類似當今的互聯網。其優點是具有較高公信力和統一的技術標準,兼容其他國家的法定數字貨幣,節省運營維護的成本,並且能夠抵抗來自他國的網路封鎖;其缺點是對技術實現方面要求較高。

  在紙幣使用日益受到挑戰的情況下,由央行發行的法定數字貨幣將成為必然趨勢。  掌握了區塊鏈核心技術,就掌握了21世紀世界金融的話語權。但願區塊鏈技術能夠打破國界、文化的壁壘,促使全人類共同迎接數字貨幣時代。


推薦閱讀:

查看原文 >>
相關文章