本文屬於老雅痞原創文章,轉載規矩不變,給我們打聲招呼~
轉載請微信聯繫:huangdiezi,更多DAO、Web3、NFT、元宇宙資訊請關注FastDaily
今日老雅痞共推送三篇文章。
本文是對區塊鏈的計算模式的分析文章,區塊鍊主題的第271篇。
如果你對DAO治理模型案例的研究感興趣,推薦閱讀今天第一條Ceres DAO的原創分析文章。
如果你對加密貨幣的價格走勢感興趣,推薦閱讀今天第二條美聯儲對加密貨幣影響的分析文章。
信息來源自Chainlink ,略有修改
編譯:RR
區塊鍊是一種全新的計算模式,其中數據和應用不是由中心化的中介機構,而是由去中心化的計算機網絡保護的。由於其無許可的性質,區塊鏈使任何人都可以選擇加入,並開始獨立地驗證計算的完整性,從而在用戶和網絡運營商之間形成了一個制衡系統。
從創建具有程序化貨幣政策的新數字貨幣(如比特幣)到執行可編程的信任最小化應用程序(如以太坊),區塊鏈作為一種新的數字基礎設施正在迅速進入公眾意識。然而,雖然區塊鏈的總體價值主張被許多人認可,但關於區塊鏈基礎信任模式的細微差別往往會被誤解。
本文將通過觀察自我驗證的全節點的作用來解釋區塊鏈的信任模式與傳統計算的區別。
傳統計算模式的局限性
目前大多數應用程序使用的計算模式涉及到了客戶端-服務器模型,其中請求被發送到集中式數據庫服務器中。傳統計算模式的參與者可以分為以下幾類:
客戶端:終端用戶通常通過個人設備生成請求,這些請求通過TCP/IP經由互聯網被發送到中央數據庫服務器,並等待響應。客戶端信任數據庫服務器會忠實地響應請求。
數據庫服務器:通常採用集中式雲提供商的形式提供信息或訪問特定服務的遠程計算機。後端數據庫服務器通常是傳統機構集中管理的計算機集合。
▵在傳統的計算模型中,用戶必須信任不透明的集中式數據庫。
這種計算模式通常被稱為“Web2”,它使開發人員能夠按需快速啟動和擴展應用程序。由於數據中心提供的低延遲和高吞吐量計算,用戶還可以獲得無縫的用戶體驗。雖然託管在中央數據庫上的應用程序為全球數十億用戶提供了巨大的價值,但它們也有一定的局限性。
最值得注意的是,終端用戶無法驗證生成請求響應所涉及的計算是否合法,或者數據庫條目是否被操縱。此類應用程序實際上是在黑箱中運行,這意味著用戶必須完全信任第三方中間人會以他們的最佳利益行事。
與集中託管的應用程序相關的信任假設會對用戶產生負面影響,用戶可能會經歷財務審查、社交媒體去平台化、個人數據洩露、操縱性的內容選擇算法、調節成本增加、數據損壞和數據丟失,以及總體上缺乏問責制。最終的結果是社會信任的崩潰和經濟協調成本的增加。
區塊鏈計算模式
區塊鏈不信任中心化中介的誠信度,而是通過以下方式引入了信任最小化和可信中立性:
使用加密技術來驗證數據/資產所有權和交易的完整性
通過去中心化共識以建立交易秩序並執行協議規則
利用財政激勵確保網絡賬本的不變性及其持續運作
重要的是,區塊鍊是開放的網絡——世界上任何人都可以作為主動貢獻者或被動受眾加入。這使得終端用戶可以親自驗證網絡產生的任何輸出是否有效,且分類帳條目有沒有被篡改。區塊鏈的透明度還降低了不透明性帶來的風險,消除了信息不對稱,並確保所有參與者都能獲得有關風險敞口的信息。
▵在區塊鏈計算模型中,終端用戶可以選擇加入網絡並驗證正在執行的計算。
區塊鏈參與者的角色
為了確保區塊鏈的正常運行,有各種(通常是重疊的)類別的網絡參與者各自發揮著關鍵作用。
區塊生產者(BP) :負責將交易排序並打包成被稱為區塊的離散數據結構,然後將其提交給網絡進行驗證的實體。如果在同一區塊高度產生了兩個有效的區塊,BP將負責決定哪個版本的區塊鍊是規範的。共識算法用於確定哪個BP負責生成區塊鏈中的下一個區塊,其中工作證明(礦工)和股權證明(驗證者)是最流行的兩種模式。
全節點:區塊鍊網絡的核心。全節點下載並自我驗證由BP提出的每個區塊。如果發現該區塊是有效的(即遵守了協議規則),那麼該區塊將被添加到全節點的個人分類帳副本中,並應用狀態更改。任何不符合協議規則的無效區塊都會被忽略,並因此被丟棄,而不會發生任何狀態變化。
歸檔節點:存儲與全節點相同的所有信息,但也計算和存儲區塊鏈的先前狀態。歸檔節點對於查詢任意歷史數據非常有用,比如用戶過去在特定區塊高度的賬戶餘額。請注意,一個完整的節點可以在任何時候被轉換成一個存檔節點,而無需從網絡下載任何額外的信息。歸檔節點通常有很高的硬件要求,通常由服務提供商(如區塊瀏覽器)運行。
輕客戶端:全節點的一種有限形式,只下載區塊頭(即小型獨特的加密指紋)。輕客戶端可以驗證一個交易是否包含在區塊內,但由於他們不下載或執行區塊內的所有交易,他們默認相信大多數區塊生產者是誠實的。輕客戶端也被稱為簡單支付驗證(SPV)客戶端,在最初的比特幣白皮書中首次被描述。
RPC服務提供者:促進其他網絡參與者連接到區塊鏈讀寫訪問的全節點。 RPC(遠程程序調用)節點經常被那些沒有或不能運行自己的全節點或輕客戶端的人使用,這大大減少了訪問區塊鏈的摩擦。由於沒有自我驗證,任何連接到RPC服務提供者的用戶都默認相信服務提供者的誠實性。
終端用戶:希望在區塊鍊網絡上進行交易處理的普通用戶。這一類別可以包括運行全節點或輕客戶機的參與者,以及連接到RPC服務提供者的參與者。區塊鏈的存在是為了服務於終端用戶,除此之外該網絡沒有其他存在的理由。
雖然這些網絡參與者在區塊鏈生態系統中都發揮著關鍵作用,但全節點是區塊鍊網絡的核心,它們是負責維護網絡賬本完整副本的實體。區塊生產者和輕客戶端等其他網絡參與者連接到全節點以隨時了解網絡狀態。由此產生的網絡拓撲圖如下圖所示:
區塊生產者的有限權力
關於區塊鏈的一個常見誤解是,由於區塊生產者負責生成包含交易的新區塊,因此他們必須單方面控制區塊鏈。換句話說,如果大多數BP被破壞或串通(通常稱為51%攻擊),那麼網絡就會完全被破壞,所有有價值的東西都可能被不可挽回地摧毀。在現實中,BP的權力範圍有限,只能進行特定類型的惡意活動。
區塊生產者可以做什麼:
審查交易:BP決定哪些交易被包含在其創建的區塊中,這允許他們有選擇地忽略特定的交易。雖然串通的BP可以阻止交易被包含在他們創建的區塊中,但只要有一個誠實的BP,交易就可以被包含在有效的區塊中。
重寫鏈:如果大多數BP串通一氣(例如51%攻擊),那麼之前創建的有效區塊可以通過一個名為區塊重組(reorg)的流程從網絡中分叉出來,在這個過程中,新的區塊鏈將成為正統。
▵區塊重組使用一組新的有效區塊來恢復以前接受的有效區塊。
區塊生產者無法做的:
更改協議規則:BP不能隨意更改協議規則,如添加/刪除功能(如操作碼),增加/減少最大允許的區塊大小或區塊時間間隔,或增加/減少為產生區塊而發放的區塊獎勵。
竊取用戶資金:BP不能從他們沒有私鑰的地址消費代幣,因為這種交易的加密簽名將是無效的。請注意,雖然區塊鏈重組可能會導致雙重花費攻擊,但這只涉及從區塊鏈的分類賬中刪除由私鑰持有者簽名的交易,而不是偽造交易簽名。
為了理解BP的能力為什麼本質上有限,理解BP和自我驗證的全節點之間的關係是很重要的。
全節點如何使區塊生產者負有責任
雖然BP通過提議新的區塊來確保區塊鏈的活性,但它們並不代表網絡來確定區塊的有效性。相反,全節點的作用是獨立驗證每個區塊,並執行其中包含的所有交易,以確定協議的規則是否得到遵守。
其結果是一個制衡系統,其中全節點通過僅接受有效區塊而忽略不符合協議規則的區塊來對BP負責。因此,BP在經濟上受到激勵,只生產有效區塊,否則他們會因為生產無效的區塊而浪費經濟資源,並喪失他們可以獲得的任何區塊獎勵和交易費用。即使其他BP在無效區塊的基礎上建立了有效區塊,這些區塊也都會被全節點忽略,從而導致這些BP將自己從網絡中分叉出去。
全節點由區塊鏈生態系統中的關鍵經濟行為者操作,其中包括加密貨幣交易所、穩定幣發行機構、oracle、第二層驗證者、RPC服務提供者、託管錢包提供商、大型加密資產持有者和普通用戶。通過自我驗證區塊鏈的分類帳,這些關鍵的經濟行為者不會被騙去接受無效的區塊。全節點也不需要相互協調/通信來確定一個區塊是否有效。相反,通過在檢查區塊時遵循協議的規則,他們都將得出關於區塊有效性的相同結論。
▵無效的區塊會被遵循有效區塊鏈的全節點拒絕。
在許多區塊鏈中,協議規則是由社區在鏈下決定的,這一過程被稱為社區共識。它通常涉及一個正式的流程(例如以太坊改進提案或EIPs),其中社區在各種社交渠道上討論協議規則更改的優點。一旦達成了粗略的鏈下共識,區塊鏈核心開發人員就會編寫一個新版本的區塊鏈軟件客戶端,以實現這些更改。然後,全節點和BP可以選擇是否運行這個新軟件,通過硬分叉(非向後兼容的更改)或軟分叉(向後兼容的更改)來升級網絡。
如果硬分叉升級存在爭議,那麼網絡可能會經歷創建並分別維護兩個不同版本的區塊鏈的分裂。一旦發生分裂,每個區塊鏈將擁有從genesis區塊到發生分裂的特定區塊高度的共享歷史。 2017年的Bitcoin/Bitcoin Cash硬分叉就體現了這一點,當時在如何擴大交易吞吐量方面出現了分歧。在2016年的Ethereum/Ethereum Classic硬分叉中也出現了這種情況,當時在如何處理DAO攻擊上出現了分歧。
▵ Bitcoin Cash是圍繞著如何擴大交易吞吐量的差異而產生的比特幣區塊鏈的一個分叉。
與鏈下共識相反,其他區塊鏈選擇通過鏈上治理來處理升級,由代幣持有者治理的去中心化自治組織(DAO)決定協議規則的變更。任何一種促進協議升級的方法都有其獨特的好處和挑戰,所使用的方法取決於社區的需求。
全節點的低硬件要求
如果運行一個全節點的硬件要求太高(例如需要非消費級硬件),那麼很少有實體能夠或願意運行全節點,而是依賴於集中式解決方案對區塊鏈進行讀寫。這可能導致區塊鍊網絡更容易被BP利用。
為了支持一個健康的全節點網絡,許多區塊鏈有意將網絡的交易吞吐量限制為社區希望自我驗證賬本的最低規格計算機的交易吞吐量。低硬件要求不僅可以幫助那些希望在正常操作中運行全節點的人,而且還可以在區塊鏈受到BP串通攻擊時更容易啟動一個新的自我驗證的全節點。保持與網絡完全同步所需的確切硬件要求因區塊鏈而異,然而,普通消費級硬件比較普遍。
▵一個在低規格微型計算機Raspberry Pi上運行的比特幣全節點的例子
以下邏輯描述了低硬件需求如何帶來區塊鏈的核心價值主張:
硬件要求低→驗證區塊的成本低→可以運行全節點的實體更多→更強的抗BP攻擊能力→網絡安全性提高→可信度提高→採用率提高
雖然在區塊鏈協議的規則中沒有明確定義能夠運行全節點的最低硬件要求(硬件/軟件效率不斷提高),但區塊鏈的交易吞吐量規則(通常由區塊的大小和頻率決定)被調整為針對設備規格的特定範圍。
雖然以普通消費級硬件為目標是一種常見的方法,但一些區塊鏈選擇將更強大的服務器級硬件作為驗證的最低硬件要求,以提高交易吞吐量。這是因為人們認識到,雖然能夠使用自託管設備自我驗證賬本的實體可能更少,但仍有足夠數量的關鍵經濟參與者可能擁有運行全節點所需的資源。
降低區塊鏈驗證的成本
儘管每個人都能運行自己的全節點來自我驗證區塊鍊是一個理想的目標。然而在實踐中,啟動一個全節點所需的時間和資源可能會給許多終端用戶帶來過多摩擦。隨著區塊鏈被越來越廣泛地採用,熟悉信任中心化服務提供商的用戶可能會發現,設置全節點的過程太過繁瑣,他們更希望能夠立即開始與鏈上應用程序進行互動。
因此,如今廣泛使用的區塊鏈的大多數終端用戶並不運行他們自己的全節點,而是連接並默認地信任RPC服務提供者,將交易中繼到網絡,並告知他們區塊鏈的當前狀態。這些用戶可能無法享受到區塊鏈全部的自我驗證優勢,網絡的安全性也沒有達到應有的水平,但與傳統的計算模型相比,它在信任最小化方面仍有一個數量級的提升。
這個問題的中間解決方案可能需要將輕客戶端集成到區塊鏈錢包中。雖然通過減少對RPC服務提供者的信任,這將是對現狀的改進,但輕客戶端仍然默認地相信大多數BP正在生成有效的區塊,並且區塊內的所有交易數據都已公開可用。
為了使輕客戶端能夠驗證BP的工作而無需簡單地下載和執行整個區塊(即運行一個全節點),輕客戶端實現的技術改進可以增加它們的信任最小化屬性,從而產生所謂的“信任最小化輕客戶端”。這些技術改進包括:
欺詐證明:由全節點生成的加密證明,可以被發送給輕客戶端來證明區塊無效並違反協議規則,而輕客戶端無需重新執行整個區塊。
有效性證明:生成零知識證明的欺詐證明的一種替代方案,允許區塊生產者直接向輕客戶端證明區塊有效且遵循協議規則。
數據可用性抽樣(DAS) :一種概率抽樣技術,驗證一個區塊中的所有數據是否已經提供給網絡,而不需要輕客戶下載整個區塊。
▵ 信任最小化的輕客戶端不需要下載或執行整個區塊就可以驗證區塊生產者的工作。
隨著更多的信任最小化技術被創建並在生產中成功部署,在不下載和執行整個區塊的情況下驗證區塊生產者的工作的成本和摩擦得到了改善,這帶來了更安全的區塊鍊網絡。值得注意的是,創建信任最小化的輕客戶端的方法甚至可以促進更可擴展的區塊鍊網絡的出現。
在保持自我驗證的同時擴展區塊鏈
擴展區塊鏈通常被認為等同於增加交易吞吐量。然而,更全面的解釋是在增加交易吞吐量的同時,保持較低的驗證成本。由於信任最小化輕客戶端的特性,可以在區塊鍊網絡的吞吐量增加(例如增加塊大小和/或塊間隔時間)的同時仍然保留保持BP負責所需的低驗證成本。
此外,rollup等第二層擴展解決方案利用了與信任最小化輕客戶端類似的技術,通過使用加密證明來證實交易的有效性,而無需區塊鍊網絡執行每個交易。在這種情況下,區塊鏈會為第二層rollup運行一個受保護的信任最小化的輕客戶端。通過結合交易批處理和在鏈上存儲交易數據以實現數據可用性,交易吞吐量可以提升幾個數量級,同時對底層區塊鏈施加最小甚至為0的額外驗證成本。
▵第2層rollup使用區塊鏈作為信任最小化的輕客戶端來增加交易吞吐量。
結論
區塊鍊是高度安全、可信中立且透明的僅附加分類賬,為計算提供了一種新的範式。通過在區塊生產者和全節點之間納入製衡系統,區塊鏈可以滿足其社區的需求,並隨著時間的推移不斷發展,同時也能保持對操縱的抵抗。雖然還需要進行更多的努力來降低驗證成本,但區塊鏈在信任最小化方面仍然比傳統計算模式高出了一個數量級。