原文:《公眾對區塊鏈的幾大誤解》
作者:ChainLinkGod
區塊鍊是一種創新的計算模式,數據和應用的安全不由中心化的第三方保障,而是由去中心化的計算機網絡保障。由於區塊鏈本身俱有無需許可性,因此任何人都可以加入網絡,並獨立驗證計算的真實性。最終,區塊鏈技術在用戶和網絡節點之間建立了權力製衡機制。
區塊鏈技術為我們帶來了創新的數字貨幣(如比特幣),可以將貨幣政策寫入代碼中;也實現了可編程的信任最小化應用(如以太坊)。目前,區塊鏈正作為一種全新的數字化基礎設施快速進入公眾視野,這一發展勢頭也被稱為Web3。儘管許多人認識到了區塊鏈的價值主張,但仍對區塊鏈的底層信任模式存在一些誤解。
本文將探討擁有自主驗證能力的全節點可以發揮什麼作用,特別是全節點如何監督區塊創建者(即miner或驗證者),以及降低驗證成本會對區塊鏈的可擴展性產生有哪些關鍵影響。看完後,你將對區塊鏈與傳統計算在信任模式上的不同之處有更深的了解。
傳統計算模式的瓶頸
如今大多數應用都採用客戶端-服務器的模式,該模式將請求發送到一個中心化的數據庫服務器中。傳統計算模式中有以下幾類參與者:
- 客戶端:終端用戶通常會通過個人設備創建請求,請求會通過TCP/IP協議發送到一個中心化的數據服務器上。客戶端相信這個數據庫服務器會忠實地響應請求。
- 數據庫服務器:這是一台遠程計算機,通常是中心化的雲服務商,提供數據或具體的服務。後端數據庫服務器通常是由傳統機構統一管理的一組計算機。
在傳統計算模式中,儘管中心化的服務器缺乏透明性,但用戶也只能信任它
這種計算模式也被稱為Web2,開發者可以根據自身需求快速發布和擴展應用。由於數據中心可以保障計算的低延時性和高吞吐量,因此可以實現非常流暢的用戶體驗。部署在中心化服務器上的應用為全世界幾十億用戶提供了巨大價值,但是它們自身也存在一些瓶頸。
其中最大的瓶頸就是,終端用戶無法驗證響應請求的計算過程是否可靠,也無法確認數據庫錄入的數據是否被操控。實際上這類應用是在暗箱中操作的,用戶必須充分信任第三方不會損害其利益。
中心化應用的這種信任假設可能會對用戶產生負面影響。用戶可能會遭遇審查,被社交平台刪除賬戶,個人數據被洩露,被算法推薦內容,對賬成本變高,數據被篡改或丟失,甚至整個系統中缺乏問責制。最終,這將導致社會信任崩塌,並推高經濟協調成本。
區塊鏈計算模式
區塊鏈擺脫了對中心化實體的盲目信任,並採用以下技術機制,實現信任最小化以及可信的中立。
- 採用加密技術,認證數據/資產的所有權並驗證交易的真實性;
- 採用去中心化共識機制,為交易排序並執行協議規則;
- 採用經濟激勵機制,保障網絡賬本的不可篡改性和運行穩健性。
值得一提的是,區塊鍊是開放的網絡,全世界任何人都可以加入,既可以主動地做貢獻,也可以被動地監聽消息。終端用戶可以親自驗證網絡輸出的結果是否有效,以及賬本中的數據是否被篡改。由於區塊鏈具有透明性,因此也降低了信息不透明的風險,消除了信息不對等,並保障了所有參與者都能充分知曉風險。
在區塊鏈計算模式中,終端用戶可以選擇加入區塊鍊網絡,並驗證計算結果
區塊鍊網絡中的各個參與者
區塊鍊為了確保能夠正常運行,需要不同類型的網絡參與者,一個參與者常常會扮演多個角色,而且每個角色都會發揮關鍵的作用。
- 區塊創建者(BP):負責為交易排序,並打包成區塊(注:這是一種特殊的數據結構),然後將區塊提交到網絡進行驗證。如果在同一區塊高度創建了兩個有效區塊,那麼區塊創建者就要決定哪個版本的區塊鍊是“具有正統性的”(即遵循最長鏈原則)。過程中會採用共識機制來決定讓哪個區塊創建者來創建下一個區塊,其中最受歡迎的兩種共識機制分別是PoW(miner)和PoS(驗證者)。
- 全節點:全節點是區塊鍊網絡的核心。這類節點負責下載並驗證區塊創建者提交的每個區塊。如果區塊被驗證為有效(即遵守了協議規則),那麼就會被添加到全節點的個人賬本中,並執行狀態變更。不符合協議規則的無效區塊會被無視並丟棄,不會執行任何狀態變更。
- 歸檔節點:歸檔節點不僅會儲存全節點中的所有信息,還會計算並儲存區塊鏈之前的狀態。歸檔節點可以用來請求任意歷史數據,比如在過去某一區塊高度的用戶賬戶餘額。這裡要注意一點,那就是全節點可以隨時轉換成歸檔節點,無需從網絡中下載任何其他數據。歸檔節點對硬件的要求通常非常高,而且一般由服務提供方(比如區塊瀏覽器)負責運行。
- 輕客戶端:輕客戶端是在功能上受限的全節點,只下載區塊頭(即獨特的加密指紋)。輕客戶端可以驗證區塊中是否包含某筆交易,但由於其不會下載或執行區塊中的所有交易,因此在本質上需要相信大部分區塊創建者是誠實的。輕客戶端也稱為“簡易支付驗證”(SPV)客戶端,最初由《比特幣白皮書》提出。
- RPC服務商:RPC服務商也是全節點,可以將其他網絡參與者連接至區塊鏈,並讀寫數據。 RPC(遠程過程調用)服務的用戶往往沒有能力或意願來自己運行全節點或輕客戶端,因此可以通過這項服務大幅降低訪問區塊鏈的門檻。用戶必須相信RPC服務商能夠誠實地提供服務,因為用戶自己無法對結果進行驗證。
- 終端用戶:終端用戶就是想要在區塊鍊網絡中展開交易的普通用戶。這類參與者有可能會運行全節點或輕節點,也可能會接入RPC服務商。區塊鏈的唯一目的就是為終端用戶提供服務。
雖然每類參與者都對區塊鏈生態的良好運行發揮著關鍵作用,但全節點毋庸置疑是區塊鍊網絡的核心,因為它們負責維護網絡賬本的完整副本。而其他參與者,比如區塊創建者和輕客戶端,都會連接到全節點,以隨時了解網絡的狀態。因此,區塊鍊網絡的拓撲結構如下圖所示。
區塊鍊網絡的拓撲結構示意圖,其中輕客戶端和區塊創建者都連接到全節點
區塊創建者的權力是有限的
對於區塊鏈的一個普遍誤解是:由於區塊創建者負責將交易添加到新區塊中,因此他們能夠單方面控制區塊鏈。換句話說,這些人認為,如果大多數區塊創建者都被收買或者共謀(注:這通常也稱為“51%攻擊”),那麼網絡就會淪陷,一切有價值到的東西都會被徹底毀滅。實際上,區塊創建者的權力是受到限制的,因此只會發生幾類惡意攻擊事件。
區塊創建者擁有以下權力:
- 審查交易:區塊創建者可以自行決定將哪些交易放到自己的區塊中,也可以選擇性地忽略某些交易。區塊創建者如果出現共謀,確實有可能將某些交易剔除出去,但實際上只需要有一個誠實的區塊創建者,就可以把交易放到有效的區塊中。
- 重新改寫區塊鏈:如果大多數區塊創建者出現共謀(如:51%攻擊),那麼之前創建的有效區塊就有可能由於區塊重組(reorg)而出現分叉,並會出現一條新的區塊鏈成為主鏈。這裡要注意的是,一些區塊鏈會建立checkpoint機制來實現“經濟終局”(economic finality)的概念。在checkpoint之前的區塊一旦重組會導致區塊鏈暫停,而這需要在鏈下達成社會共識才能解決。
區塊重組會回滾之前被接受的有效區塊,並用新的一組有效區塊代替
區塊創建者不擁有以下能力:
- 更改協議規則:區塊創建者不能隨意修改協議規則,比如添加/刪除功能(如:opcode);提高/降低區塊空間上限或出塊頻率;以及增加/減少出塊獎勵。
- 盜取用戶資金:不持有錢包私鑰的區塊創建者是不能花錢包中的通證的,因為交易的加密簽名將是無效的。這裡要注意的是,區塊鏈重組會導致雙花攻擊,這類攻擊會刪除區塊鏈帳本中由私鑰持有者簽名過的交易,而不是偽造交易簽名。
要理解區塊創建者能力受限的原因,就必須先搞清楚區塊創建者和負責驗證的全節點之間的關係。
全節點如何對區塊創建者進行監督
區塊創建者的職責是提交新區塊,以保障區塊鏈能夠平穩運行。不過區塊創建者無權代表整個區塊鍊網絡決定區塊是否有效。負責決定區塊有效性的是全節點。全節點儲存了區塊鏈賬本,負責獨立驗證每個區塊,並執行區塊中的所有交易,以確認區塊是否遵守了協議規則。
因此就形成了一種權力製衡機制:全節點只接受有效的區塊,並會無視不遵守協議規則的區塊,以此來對區塊創建者進行監督和問責。而區塊創建者則受到經濟激勵,只創建有效的區塊。因為如果他們創建無效區塊,就會白白浪費大量經濟資源,而且還要放棄所有區塊獎勵和交易費收入。即使其他區塊創建者在一個無效區塊上繼續創建有效區塊,這些區塊都會被全節點無視,而這些區塊創建者最後會分叉離開網絡。
全節點由區塊鏈生態中的關鍵經濟實體運行,其中包括cryptocurrency交易平台、stablecoin發行方、預言機、L2驗證者、RPC服務商、託管錢包服務提供商、巨鯨和普通用戶等。這些關鍵的經濟實體自主驗證區塊鏈賬本,因此不會受騙接受無效區塊。全節點在確認區塊有效性時也無需互相協調溝通。這些節點在驗證區塊時只需遵守協議規則,就可以對區塊有效性達成共識。
無效的區塊會被全節點拒絕,全節點會持續追踪有效的區塊鏈
許多區塊鏈的協議規則都是由社區在鏈下決定的,這個過程也稱為“社會共識”。達成社會共識通常需要經過正式的流程(如以太坊改進提議或EIP),社區會在各個社交平台上討論協議規則變更的好處。一旦在鏈下初步達成了共識,區塊鏈的核心開發者就會開發新版本的區塊鏈客戶端來執行這些變更。全節點和區塊創建者可以自行選擇是否運行新版本的軟件,通過硬分叉(非向後兼容更新)或軟分叉(向後兼容更新)來升級網絡。
如果硬分叉升級出現爭議,那麼區塊鍊網絡可能會分化成兩個不同的版本,並且這兩個版本會各自運行。一旦這種情況發生,每個區塊鏈都會共享從創世區塊到分叉前某一區塊高度之間的所有歷史。 2017年比特幣和Bitcoin Bash的硬分叉就是如此,當時大家對於如何提升交易吞吐量產生了分歧。 2016年的以太坊和以太經典(Ethereum Classic)的硬分叉也是這樣,當時社區對於如何處理DAO黑客攻擊事件出現了分歧。
Bitcoin Cash是比特幣區塊鏈的分叉鏈,之所以會出現是因為當時大家對如何提升交易吞吐量出現了意見分歧
也有的區塊鏈不採取鏈下共識機制,而是選擇通過鏈上治理的方式來處理升級,由通證持有者來治理一個去中心化自治組織(DAO),並決定協議規則變更事項。無論哪種協議升級方式都有其獨特的優勢和挑戰,採用哪種方案要取決於社區的具體需求。
降低對全節點的硬件要求
如果對全節點的硬件要求過高(比如必須使用工業級硬件),那麼就不會有那麼多實體有能力或意願運行全節點,他們可能會選擇中心化的解決方案來向區塊鏈讀寫數據。這將使區塊鍊網絡更容易受到區塊創建者的操縱。
為了建立健康的全節點網絡,許多區塊鏈都會故意限製網絡的交易吞吐量,兼容社區中配置最低的驗證節點硬件。降低對硬件的要求不僅能夠讓全節點在正常情況下正常運行,還能在區塊鏈被一組共謀的區塊創建者攻擊時迅速搭建新的驗證全節點。每條區塊鏈對硬件的具體要求都有所不同,不過它們基本上都兼容普通的消費級硬件。
在樹莓派上運行的比特幣區塊鏈全節點,樹莓派是一個低配置的微型計算機
以下邏輯說明了降低硬件要求將如何提升區塊鏈的核心價值主張:
降低硬件要求→降低區塊的驗證成本→更多實體可以運行全節點→能夠更好地抵禦區塊創建者發起攻擊→提升網絡安全→更好地實現可靠的中立性→提升用量
雖然區塊鏈協議中並沒有明確規定對全節點的硬件要求(因為硬件軟件的運行效率在不斷提升),但卻會規定交易吞吐量(注:交易吞吐量通常取決於區塊大小和出塊頻率),以專門針對某一類硬件配置。
雖然大多數區塊鏈都可以兼容普通的消費級硬件,但也有一些區塊鏈會要求驗證節點的硬件至少達到服務器級別,以提高交易吞吐量。這些區塊鏈意識到,雖然這樣做會減少參與驗證的自建節點數量,但仍然有足夠多的關鍵經濟實體有充足的資源來運行全節點。
降低區塊鏈的驗證成本
一種理想的情景是全世界所有人都運行自己的全節點來驗證區塊鏈交易。然而實際上,搭建全節點需要耗費大量時間和資源,而且可能會影響許多終端用戶的使用體驗。隨著區塊鏈越來越普及,習慣使用中心化服務提供商的用戶可能會覺得自建全節點太麻煩了,它們更希望能立刻與鏈上應用交互。
因此,目前主流區塊鏈上的大多數終端用戶都沒有自建節點,而是接入了RPC服務商,並信任這些服務商能夠提供可靠的服務,將用戶交易發送到區塊鍊網絡,並向用戶同步區塊鏈的當前狀態。這些用戶可能並不在乎區塊鏈自主驗證的種種好處,而且區塊鍊網絡的安全性也沒有達到最理想的狀態。然而,相比傳統計算模式,區塊鏈在信任最小化方面仍擁有巨大優勢。
如今許多終端用戶都不親自運行全節點,而是接入可信的RPC服務商
這個問題有一個折衷的解決方案,那就是將輕客戶端集成至區塊鏈錢包。雖然集成輕客戶端可以降低對RPC服務商的依賴程度,因此可以在一定程度上改善現狀,但輕客戶端模式在根本上仍然需要相信大多數區塊創建者創建的是有效區塊,而且區塊中的所有交易數據都是公開的。
為了使輕客戶端不用下載並執行整個區塊(即運行全節點)就可以驗證區塊創建者的區塊,輕客戶端需要在技術上實現優化,以提升信任最小化水平,並成為“信任最小化的輕客戶端”。可以在以下方面進行技術優化:
- 欺詐證明:全節點生成一份加密證明,發送給輕客戶端,證明區塊是無效的且違反了協議規則。與此同時,輕客戶端無需重新執行一遍區塊中的所有交易。
- 有效性證明:除了欺詐證明之外,還會生成一份零知識證明,區塊創建者可以直接向輕客戶端證明區塊是有效的且遵守了協議規則。
- 數據可用性採樣(DAS):這是概率性的採樣技術,可以驗證區塊中的所有數據都已提交至網絡,無需輕客戶端下載整個區塊。
信任最小化的輕客戶端無需下載或執行整個區塊就可以驗證區塊創建者的區塊
隨著新的信任最小化技術不斷發布,驗證者可以更輕鬆地驗證區塊創建者的區塊,無需下載並執行整個區塊,而且驗證成本更低。這將有助於提升整個區塊鍊網絡的安全性。值得一提的是,創建信任最小化輕客戶端可以進一步催生出更多可擴展的區塊鍊網絡。
在維持自主驗證的前提下擴展區塊鏈
通常我們會將區塊鏈擴容和交易吞吐量提升劃上等號。然而更全面的理解應該是:區塊鏈擴容既需要提升交易吞吐量,又需要維持較低的驗證成本。好在現在出現了信任最小化的輕客戶端,區塊鍊網絡的吞吐量得以提升(如擴大區塊容量或縮短出塊時間)的同時,仍將區塊驗證成本保持在較低水平。
另外,rollup等L2擴容方案也利用了跟信任最小化輕客戶端類似的技術,採用加密證明技術來證明交易的有效性,而且底層區塊鍊網絡無需執行每一筆交易。底層區塊鏈對於L2 rollup來說就是公認的信任最小化輕客戶端。另外,交易被打包並儲存在區塊鏈上以保障數據可用性,這樣做可以大幅提升交易吞吐量,並且幾乎不會增加任何底層區塊鏈上的驗證成本。
L2 rollup將底層區塊鏈作為公認的信任最小化輕客戶端,以提升交易吞吐量
總結
區塊鍊是append-only形式的賬本,非常安全、可信和中立,為我們帶來了全新的計算範式。區塊鏈在區塊創建者和全節點之間建立了權力製衡機制,可以為社區提供服務,不斷升級迭代,並同時保持其不可篡改的屬性。雖然我們還需繼續努力進一步降低區塊鏈的驗證成本,但目前區塊鏈在信任最小化方面已經比傳統計算模式擁有巨大優勢。
——
本文內容僅代表作者本人觀點,不代表Chainlink基金會或Chainlink Labs的觀點。
END