當前位置:
首頁 > 新聞 > 公鏈前沿研究的三大視角

公鏈前沿研究的三大視角

在誕生10多年以來,區塊鏈技術先是從比特幣所描繪的點對點的電子現金系統擴展到了可編程資產的公共賬本,然後又進一步發展出了以以太坊為代表的、可以執行圖靈完備的運算並記錄結果的「通用狀態計算機」,如今又基於性能、功能與互聯互通性等屬性出現許多技術創新,多條公鏈也由此名聲大噪。

為了更深入地探討那些重要且硬核的技術與思想難題,鏈捕手(ID:iqklbs)將邀請公鏈、交易所等一系列領域中具有相當建樹的企業家、學者、技術大牛等,分享他們在自己專業領域經過大量實踐的行業判斷與思考,以幫助各位讀者進一步加深對區塊鏈的理解。

近日,鏈捕手邀請到Conflux研究總監楊光博士撰稿,談談他作為公鏈行業一線從業者對公鏈行業發展狀況的觀點,並對當前公鏈行業新出現的技術解決方案進行梳理與評價,相信這些信息將對讀者們深入了解公鏈行業最新技術動態大有裨益。

作者/楊光

未經授權,謝絕轉載

自從中本聰於2009年1月發布比特幣的代碼以來,比特幣和區塊鏈技術的發展已經走過了十個年頭。這十年間,比特幣經歷了密碼朋克(Cypherpunk)和 Geek 們的玩具、黑市交易和洗錢的工具、投機炒作標的物等多個階段,現在已經成為了一種政府和主流金融機構也不得不正視其價值的數字資產。

在這十年間,區塊鏈技術先是從比特幣所描繪的點對點的電子現金系統擴展到了可編程資產的公共賬本,然後又進一步發展出了以以太坊為代表的、可以執行圖靈完備的運算並記錄結果的「通用狀態計算機」。

區塊鏈技術的意義和使用範圍早已遠遠超出了比特幣或者說電子支付系統——當我們在2019年談起區塊鏈技術的時候,更多的情況下是討論如何以一種可信任的方式組織和處理信息。也正是因為如此,越來越多的人開始意識到區塊鏈技術是一項可以與互聯網技術相提並論的偉大發明。

如今區塊鏈的發展主要有兩個大的分支:公有區塊鏈(簡稱「公有鏈」或「公鏈」)繼承了比特幣的民主和去中心化的精神,採用了無准入許可的共識機制並通過區塊獎勵激勵共識的維護者;聯盟區塊鏈(亦稱「聯盟鏈」)用區塊鏈的思想重構了資料庫,實現了在一個聯盟的內部成員之間建立信任和共享信息的目的。

實際上,至今仍有人認為「聯盟鏈」只是披著區塊鏈外殼的資料庫而不是真正的區塊鏈。本文接下來就從公鏈的角度來介紹一下當前區塊鏈技術的發展。

區塊鏈在本質上是一個處理信息的系統。甚至曾有人提出一種比較誇張的說法:「比特幣實際上就是一個有史以來最慢的分散式資料庫。」誠然,將比特幣或任何一條公鏈跟傳統的分散式資料庫比較都是有失公正的,因為區塊鏈最大的價值在於提供(去中心化的)信任而非提供傳統資料庫已有的功能。

但是另一方面,除了提供信任的共識機制以外,區塊鏈的其他功能和組成部分與一個傳統的日誌式資料庫都是非常類似的。例如比特幣的轉賬和腳本功能和以太坊的智能合約都可以由一個中心化的資料庫實現。因此,也就不難理解公鏈技術的發展方向了——在保證去中心化以提供同樣程度的信任的前提下,把公鏈做成一個更好用的資料庫。

那麼,對於一個資料庫來說,我們都在乎它的哪些方面的?下面我們就從性能、功能、互聯互通等方面介紹一下公鏈技術發展的方向和現狀。

01

性能

公鏈的性能改進的方向可以簡單概括為「更高、更快、更強」,分別表示更高的吞吐量,更快的確認速度,更強的安全性。

1)更高的吞吐量

對於更高吞吐量的追求是很多新的公鏈技術最重要的目的。比特幣的共識吞吐量大約是每十分鐘 1MB 數據,也即平均每十分鐘全網可以對 1MB 的數據達成共識。按照每筆交易 500B 計算,這大約相當於每秒處理 3.5 筆交易,也即 3.5 tps。

作為對比, Visa 的日常吞吐量大約是 2000 tps,峰值可以超過 5 萬tps,支付寶處理交易的峰值則要超過 30 萬tps。不難看出,比特幣極低的吞吐量使得它不可能成為一種日常使用的支付手段,而且實際上近年來每次幣價劇烈波動的時候比特幣上的交易都會體驗到明顯的排隊延遲。

在提供吞吐量的擴容技術方面,又分為第一層技術和第二層技術。其中第一層技術主要是修改共識演算法以提升區塊鏈上共識數據的吞吐量,第二層技術則是通過對共識分層的方式在無需改變每條鏈的共識吞吐量的情況下提升整個系統的吞吐量。

第一層擴容方案里最簡單的改動方式就是直接修改參數,比如縮短出塊間隔(萊特幣等)或者增大區塊尺寸(BCH 和 BSV 等),以求在同樣的時間內對更多筆交易達成共識。

例如比特幣現在所使用的隔離見證技術實際上也是在變相地擴大區塊尺寸,只不過因為擴大得非常有限,所以只能把比特幣的吞吐量提高到每秒 7 筆左右。這樣簡單粗暴地改參數的直接副作用就是會降低系統的安全性,而這是我們非常不願意看到的。

為此,代理加速網路和緻密區塊(compact block)等提高區塊廣播速度的技術被開發出來用以平衡修改參數對系統安全性造成的負面影響。但是畢竟廣播速度的上限嚴重依賴於網路基礎設施的發展水平,所以通過改參數的方式能提高的吞吐量是非常有限的(在保證安全性的前提下)。

另一種常見的第一層擴容方式是採用新的共識協議,以突破中本聰最初的設計的性能瓶頸。該方向吸引了很多學術界的大牛進行研究,例如以太坊的共識演算法就採用了由以色列希伯來大學的 Yonatan Sompolinsky 和 Aviv Zohar 提出的GHOST (Greedy Heaviest Observed SubTree)協議而非中本聰的最長鏈規則,因此可以把出塊間隔從 10 分鐘縮短到 15 秒左右,吞吐量也提高到每秒 30 筆交易。

GHOST協議的主鏈選擇路徑

其他比較知名的下一代共識協議還有圖靈獎得主 Silvio Micali 和姚期智先生分別主導開發的 Algorand 和 Conflux:前者採用了 PoS 共識機制來避免分叉,可以達到大約 300 tps;後者以樹圖結構而非鏈式結構組織區塊,實現了超過 3千 tps。目前 Algorand 和 Conflux 以及其他許許多多新的共識協議絕大部分仍處於理論論證和實驗階段,是區塊鏈技術非常重要的發展方向。

第二層擴容方案是對分片、側鏈、多鏈等技術的統稱。這類技術的核心思想是把共識參與者(礦工或 PoS 系統中的驗證者)進行分組,每組分別處理不同的交易,通過分工合作的方式提高整個系統的吞吐量。

目前,第二層擴容方案中的最具影響力的無疑是比特幣的閃電網路,其他比較具代表性的包括以太坊的狀態通道、 Sharding 和 Plasma 等提案。第二層擴容方案的主要缺點在於一定程度上犧牲了安全性,因為參與第二層共識的算力或權益份額都要顯著少於第一層主鏈,這是由「分工合作」的設計思想所決定的。

第二層方案的設計中非常重要的一點就是在發現問題時如何安全快速地退回第一層共識,例如在比特幣閃電網路中單方面關閉交易通道。因此,第二層擴容方案通常是作為對第一層區塊鏈的一種功能上的補充出現的,更適合處理小額資產(例如閃電網路)和實驗性功能(例如比特幣現金的蟲洞)等特殊場景。

此外,未來第二層方案發展的另一個重要方向是利用智能合約的可編程性,在第一層區塊鏈之上實現和運行為具體業務場景定製的第二層側鏈,以獲得更高的性能、更低的成本、以及其他更多樣化定製化的功能。

例如今年 2 月斯坦福大學的 Benedikt Bünz 等在 ePrint 預印本網站上公開的 Zether 即是以通用的智能合約的形式實現類似 ZCash 的機密交易的功能的第二層方案。

2)更快的確認速度

比特幣每筆交易通常需要等待六個區塊才能確認,按照平均十分鐘產生一個區塊計算這大約需要一小時時間,這還沒有計算因為吞吐量過低帶來的排隊等待時間。

實際上,如果轉賬的金額足夠高/區塊獎勵相對很少的時候,確保一筆交易安全所需等待的時間和區塊數還會進一步增加。這樣的交易速度無疑會造成很差的用戶體驗,因此提高確認速度也是區塊鏈技術的一個核心發展方向。

提高確認速度的區塊鏈技術往往同時也會提高吞吐量,因為單獨提高確認速度的意義有限,吞吐量過低時排隊的時間將成為實際確認延遲的主要部分。

例如前面說的加快區塊廣播速度和縮短出塊間隔就是典型的同時提高確認速度和吞吐量的技術,而 GHOST、Algorand、Conflux 等共識協議的主要目標之一就是保證系統在快速出塊的同時仍具有足夠的安全性。

Conflux 的樹圖模型(實線箭頭指向父親區塊,虛線箭頭指向引用區塊)

很多第二層擴容的方案也可以提供更高的確認速度,因為此時只需在第二層確認不會受到第一層主鏈達成共識速度的限制,典型的如比特幣的閃電網路。

為了達到極致的確認速度甚至還出現了基於代理的權益證明(DPoS)的共識協議,在採用這種協議的系統中只有具有強大處理能力和良好的網路條件的超級節點才能直接參与共識,其他參與者只能投票選擇自己信任的超級節點而沒有打包交易和投票選擇區塊的權利。

EOS 是 DPoS 系統的典型代表,通過將每輪參與共識的超級節點數量限制在 21 個,EOS 可以實現 1 秒的確認時間和接近 4000 tps。但是 DPoS 的缺點也非常明顯,其中最為人詬病的就是超級節點降低了系統的去中心化程度,為安全性和區塊鏈的治理帶來了很多隱患。

此外,還有一些折衷的技術通過放寬安全性要求的方式在不改變現有共識協議的情況下對小額支付提供更快的確認速度。

例如通過共享幾個大的比特幣礦池的交易內存池即可在一筆交易被實際打包進區塊之前檢查是否有衝突交易,如果沒有衝突則可認為這筆交易最終會被打包並執行。這也被稱為「零確認技術」,用於快速確認小額交易時甚至不需要等待交易被實際打包進區塊。

當然這樣的做法局限性也很大,首先必須有相對集中和中心化的礦池為交易池的真實性背書,其次無法百分之百避免某個礦池或者礦池之外的礦工最終打包了一筆與之有衝突的交易。因此這種技術也只能用於確認風險較小的小額交易。

3)更強的安全性

區塊鏈技術保證了達成共識的交易和數據都具有難以被篡改的特性,這也是區塊鏈能夠提供去中心化信任的核心邏輯。在以比特幣為首的大部分現有區塊鏈系統中,為了達到這點也需要在隱私性方面付出相當的代價——所有的交易都用明文的形式存在鏈上以供其他節點驗證,因此所有交易的內容都是公開的。

這些區塊鏈系統通過與真實身份無關公鑰地址實現了一套「假名」的支付系統,這套「假名」系統可以提供最低程度的隱私性,但是地址對應的用戶的身份仍能通過歷史交易之間的關聯性和使用模式等高級分析手段識別出來。因此,對用戶的隱私信息提供保護也是區塊鏈技術的重要發展方向,也是密碼學技術在區塊鏈中的主要應用。

對轉賬交易的隱私性保護在技術上實現起來相對比較容易。目前已有混幣(CoinJoin)、機密交易(Confidential Transaction)、環簽名(Ring Signature)、Mimblewimble 協議、甚至零知識證明(Zero-Knowledge Proof)等多種技術用於保護交易的隱私性,也湧現出了諸如 Monero、Zcash、Grin、Beam 等以隱私保護作為特色的公鏈。

它們通過採用不同的技術方案獲得了不同程度的隱私保護,但是有一個共同的問題就是隱私保護的代價還比較高。

例如Monero 採用環簽名技術生成的每筆交易尺寸大約有 10 KB,Zcash 中生成每筆帶有零知識證明的交易需要幾十秒甚至幾分鐘的時間和幾十 MB 到上 GB 規模的內存空間。降低保護交易隱私的額外開銷是這類技術的主要發展方向。

另一方面,對於智能合約的執行等通用計算的隱私保護也吸引了越來越多的研究力量。該方向現在主要的幾個技術流派包括基於安全晶元的可信執行環境(Trusted Execution Enclave,TEE)、基於密碼學的全同態加密技術(Fully Homomorphic Encryption, FHE)和零知識證明技術等。

以 Intel 的 SGX 晶元為代表的 TEE 技術是目前看來離實現最近、額外開銷最低的方案,但其缺點也同樣明顯:需要信任晶元製造商,並且晶元容易受到側信道攻擊(side-channel attack)。

全同態加密技術的主要缺點在於計算成本過高,完成同樣的計算任務需要的計算量大約相當於明文計算時的十萬到一百萬倍的。零知識證明技術現在已經有 zk-SNARK、zk-STARK、Bulletproof、Ligero、ZKBoo 等多種實現方案,這些方案在性能上各有長短,但目前尚沒有哪個在各方面都達到堪用的水平。以更高的性能實現零知識證明是密碼學家們在所有區塊鏈技術中最關注的目標。

此外,可驗證計算也是一種可以提高區塊鏈安全性的重要技術。可驗證計算允許用戶不重複執行所有運算即可驗證計算結果的正確性,可以減少共識計算的成本和降低加入高吞吐量共識系統的門檻。在實現方式上可驗證計算與適合區塊鏈使用的非互動式零知識證明技術具有很多相似之處,此處不再贅述。

02

功能

區塊鏈技術在功能方面的發展面向的主要是豐富的應用需求。自從比特幣誕生以來,對區塊鏈功能改進最大的技術無疑是以太坊的智能合約,該技術使得區塊鏈的功能從記錄交易的賬本進化為通用的數據處理平台,極大地拓展了人們對於區塊鏈在未來的應用場景的想像力。

現在的區塊鏈技術的發展方向是在提供圖靈完備的智能合約的基礎上同時實現更多的功能,以下從許可權控制、外包計算、可信隨機數等幾個方面簡單介紹一下。

1)許可權控制

在區塊鏈最簡單的實現上,每個賬戶地址對應一對公鑰和私鑰,掌握這個私鑰就可以完全控制該賬戶。這種每個賬戶由一個私鑰控制的方式非常簡單易懂,但是也有一些缺點:

首先,有的賬戶可能不是屬於某一個人,如公司賬戶或者夫妻共用的賬戶等,因此我們希望以更靈活的方式讓多個用戶共同控制一個賬戶;其次如果賬戶對應的唯一一個私鑰意外丟失或被盜則用戶會立刻失去對賬戶的控制權,風險過高;最後,有時我們需要區分不同用戶使用賬戶中資產的許可權,例如區分大額支付和小額支付所用的私鑰等。

為了解決上述問題,比特幣引入了多重簽名賬戶,這種賬戶需要預先設定若干對公鑰和私鑰,只有使用足夠多的私鑰簽名的交易才是有效的;而在以太坊等支持智能合約的系統中則可以通過編程實現更靈活的許可權控制。

然而,直接給每筆交易需要附加多個簽名會導致交易的長度隨簽名個數增加,也會增加驗證的負擔。Schnorr 簽名等多重簽名技術使得我們可以將任意多個簽名聚合成一個簽名,只需一次性驗證簽名操作即可判斷交易是否得到了聚合公鑰對應的所有私鑰的授權。

2)外包計算

在目前去中心化預言機尚未得到解決的情況下,除了點對點支付以外完全能不依賴於鏈外信息即在區塊鏈內部實現全部流程的應用並不太多,外包計算就是其中之一。外包計算的基本流程是甲方把輸入數據交給乙方,由乙方完成計算後再把計算結果返回給甲方,甲方驗證計算結果正確後付費給乙方。

外包計算對於傳統的資料庫也是一項非常前沿的技術,其最大的難點在於甲方驗證計算的成本必須顯著低於執行整個計算任務的成本,否則外包計算就失去了外包的意義,這點可以通過前面說的可驗證計算技術或者可信執行環境 TEE 實現。

除了計算的經濟性外,外包計算通常還要求保護輸入數據和輸出的計算結果的隱私性,也即乙方要在不知道甲方到底要做什麼的前提下完成計算任務。外包計算隱私性的傳統密碼學解決方案是採用安全多方計算或者全同態加密計算,前者的缺點是需要參與者之間進行交互,不適合區塊鏈的場景,後者的主要缺點在於效率過低。

如果在安全性上降低一些要求,則可信執行環境 TEE 技術也可以達到保護計算隱私性的目的。因此目前看來最適合區塊鏈的外包計算的技術還是使用帶有 TEE 功能的安全晶元,在未來可能會出現效率可接受的基於密碼學的解決方案。

3)可信隨機數

隨機數是很多演算法和程序設計時都需要用到的重要資源。在區塊鏈上實現一個公平公正公開的隨機數對於鏈上的很多應用乃至一部分區塊鏈共識協議本身都有著十分重要的意義。

在鏈上實現可信隨機數的技術有承諾-打開(Commitment-opening)方案、基於秘密共享(Secret Sharing)的方案、以及基於唯一簽名(Unique Signature)和可驗證隨機函數(Verifiable Random Function,VRF)技術的方案等。

這些方案雖然可以提供質量比較高的隨機數,但是都無法完全杜絕攻擊者影響和操縱隨機數的情況。如何更好地限制攻擊者能對隨機數造成的影響是密碼學家們關注的研究課題。

03

互聯互通性

區塊鏈的預言機機制(Oracle mechanism)研究的是如何以去中心化的方式在區塊鏈上可靠地獲取鏈外的數據,這是長期以來阻礙了很多公鏈應用落地的核心難題。特別是在可預見的未來內多個不同的區塊鏈(包括公鏈和聯盟鏈)將長期並存的背景下,在不同的區塊鏈間實現數據和價值的相互流通越來越成為一個亟待解決的難題。

儘管通用的預言機至今仍沒有一個普遍適用的方案,但是僅用於跨鏈操作的專有預言機已經有了一些初步的實現:

閃電網路使用的哈希鎖定技術可以支持雙向跨鏈操作,實現起來非常簡單且不需要可信的第三方,缺點就是功能比較單一,泛用性不強;

BTC relay 用以太坊的智能合約實現了一個比特幣的 SPV 節點,以去中心化的方式實現了比特幣到以太坊的單向跨鏈;

Ripple 協議等通過公證人跨鏈的技術實現了資產交換和轉移等功能,缺點在於需要信任作為公證人的第三方;

Cosmos、Polkadot 等採用的側鏈和中繼鏈技術可以實現較好的雙向跨鏈性能,也不需要信任任何第三方,缺點是技術架構比較複雜,實現較為困難——目前 Cosmos 和 Polkadot 都還處於測試階段。

最後,本文為觀察公鏈發展狀況提出了吞吐量、互通性、許可權控制等視角,並分析了每個方向的發展狀況。不過,在前述領域尚沒有哪條公鏈處於絕對領先位置,並且很多公鏈的解決方案還需要具體實踐的檢驗,我將會繼續保持對公鏈發展狀況的高度關注並與大家分享。

(作者:鏈捕手,內容來自鏈得得內容開放平台「得得號」;本文僅代表作者觀點,不代表鏈得得官方立場)

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 鏈得得APP 的精彩文章:

央行行長易綱:央行將繼續支持上海探索區塊鏈等技術在金融領域應用
2019區塊鏈應用創新投資高峰論壇即將盛大召開

TAG:鏈得得APP |