摘要
從眾多公鏈展開競爭以來,到以太坊路線圖中的Danksharding,再到op/zk等二層解決方案,我們一直不間斷在討論區塊鏈的擴展性——大量用戶和資金進來了怎么辦?通過接下來一系列的文章,我想向大家展示一個未來的圖景,該圖景由數據的獲取、鏈下計算、鏈上驗證三部分構成。
TrustlessDataAccess+Off-chainComputation+On-chainVerification
“證明共識”是這個藍圖中重要的一部分。本文探討了在以太坊PoS的基礎上,用零知識證明共識的意義,包括:
1.對于EVM去中心化的重要性。
2.去中心化數據訪問對于web3擴容的重要性。
證明以太坊主網的全共識是一項復雜的任務,但是如果我們能夠實現共識層的zk化,將會在確保安全信任的基礎上助力以太坊的擴容,同時增強整個以太坊生態的穩健性,降低參與成本,讓更多人融入其中。
一、為什么證明共識層很重要?|Whydoesprovingconsensusmatter?
1.以太坊的?度|PerspectivefromEthereum
2.以太坊?態各層協議的?度|PerspectiveofProtocolStacksonEthereum
二、區塊鏈數據來?何處?不同數據源的信任假設|WhereisBlockchainData?TrustAssumptionsforDifferentDataSources
三、?零知識證明共識層之路|ThePathtoProveConsensusUsingZK
1.以太坊2.0中共識形成的核?步驟|KeyStepsinConsensusFormationinEthereum2.0
2.證明共識層的ZK技術棧|TechStackstoProveConsensus
3.終極?標:多樣性的Level1zkEVM|TheEndGame:DiversifiedLevel1zkEVM
四、未來展望|WhatistheFuture?
五、參考|Reference
一、為什么證明共識層很重要?|Whydoesprovingconsensusmatter?
利用zk來驗證以太坊L1的共識層在兩個大方向上有意義。首先,它可以彌補當前節點多樣性的缺陷,增強以太坊本身的去中心化和安全性。其次,它為以太坊生態各層協議面對更多用戶提供了可用性和安全性的基礎,包括跨鏈安全、無需信任的數據訪問、去中心化預言機、和擴容等方面。
Patrick McHenry:SEC在多年前就該淘汰Binance:金色財經報道,美國眾議院金融服務委員會主席Patrick McHenry表示,我認為他們是非法行為者,從事非法金融交易,但坦率地說,我們實際上沒有一套適用于美國的規則。所以我們必須做好我們的工作,這樣我們才能更有效地追捕作惡者。坦率地說,Binance應該在幾年前就被淘汰了。
金色財經注:美國眾議院金融服務委員會正在討論兩項數字法案,擬議的法案仍處于草案形式,其中還包括對加密貨幣公司的一些豁免,使其免于美國證券交易委員會的注冊程序。在Gensler的領導下,委員會努力將大多數加密貨幣定義為受與股票和債券相同的法律和規則約束的證券。
這一法律原則是SEC對Coinbase和Binance提起訴訟的核心。目前擬議的立法在共和黨人和民主黨人之間產生了分歧,共和黨人大多支持對加密貨幣給予特別考慮的制度,而民主黨人更傾向于Gensler的方法。[2023/6/14 21:37:03]
1.以太坊的角度|PerspectivefromEthereum
對于以太坊來說,要實現其去中心化和穩健性(robustness),它需要一個客戶端多樣性的環境。意味著更多的人參與其中,尤其是普通用戶,運行基于不同代碼環境的客戶端。然而,要求每個用戶都運行全節點是不現實的,因為這需要大量的資源,沒有幾個人能夠承擔至少16GB+RAM和FastSSDwith2+TB,而這些要求還在不斷增長。
目前的目標是實現輕節點(lightnode),既能提供與全節點相同的信任度,又能在內存、存儲和帶寬要求上具有更低的成本。然而,目前輕節點并不參與共識過程,或者說只受到部分的共識機制保護(SyncCommittee)。
這一目標在以太坊的路線圖中被稱為"TheVerge"。
"TheVerge"旨在彌合客戶端差距,關鍵步驟是如何實現去信任的輕節點,安全程度應等同于今天的全節點,填補“theclientgap”,從而讓更多人積極參與網絡的去中心化和穩健性。
https://www.ethernodes.org/network-types
https://clientdiversity.org/
2.以太坊生態各層協議的角度|PerspectiveofProtocolStacksonEthereum
以太坊供應量已增加2120.28枚ETH:金色財經報道,據ultrasound.money數據顯示,以太坊合供應量已增加2120.28枚ETH,以太坊Gas費用當前為6Gwei。[2022/10/31 11:58:41]
從第一性原理出發,我們需要解決鏈上數據訪問與鏈下計算驗證的結合問題。
目前鏈上數據的使用相對初級,不夠充分。在很多情況下,協議調整所需的數據過于復雜,無法進行鏈上計算,而以去信任方式獲取數據的成本又過高,需要大量歷史數據訪問和頻繁的數字計算等。
對于個人用戶和項目來說,我們的理想情況是實現去中心化的、端到端的無需信任假設數據傳遞和讀寫,以此為基礎,面向未來更多的用戶,應實現盡量低的計算成本,兼顧安全性、可用性和經濟性。
具體包括以下幾個方面:
1.去中心化和無需信任的預言機(Oracle):目前的協議使用中心化預言機來避免直接在鏈上對大量歷史數據的訪問,增加了不必要的信任成本,并降低了可組合性。
2.數據和資產敏感相關協議的數據讀寫:例如,DeFi協議在運行過程中需要進行一些參數動態調整,但是否能夠無需信任地訪問歷史數據并進行更復雜的計算,如基于最近的市場波動調整AMM費用,設計鏈上衍生品交易價格模型和動態波動,引入機器學習方法進行資產管理,根據市場情況調整借貸利息等。
3.跨鏈安全:目前基于zk技術的輕節點方案在安全性(security)、資金效率(capitalefficiency)、狀態保留程度(statefulness)和傳遞信息多樣性方面都更優秀。當前Succinct的Telepathy跨鏈方案和Polehedra在LayerZero上面做的跨鏈方案,都是基于SyncCommittee做的輕節點區塊頭zk驗證。然而,SyncCommittee并非以太坊PoS共識層本身,存在一定的信任假設,未來還有余地可以做的更加完備。
目前,由于經濟成本、技術限制和用戶體驗等方面的考慮,開發者在利用鏈上數據時通常依賴于中心化的RPC服務器,例如Alchemy、Infura和Ankr等。
二、區塊鏈數據來自何處?不同數據源的信任假設|WhereisBlockchainData?TrustAssumptionsforDifferentDataSources
區塊鏈中的計算數據有兩種來源:鏈上數據(on-chaindata)和鏈下數據(off-chaindata)。對應鏈上和鏈下兩種去向,進行計算。比如前文提到的調整DeFi協議參數的需求。
持有至少1000枚比特幣的地址數量創4個月新低:7月17日消息,Glassnode數據顯示,持有至少1000枚比特幣的地址數量為2158個,創4個月新低。[2022/7/17 2:18:51]
DataAccess,computation,proofandverification
鏈上和鏈下數據的讀寫和計算有兩個顯著特點:
1.為了實現去中心化和安全,最好能夠驗證我們所獲取的數據,即“不要相信,要驗證(Don’tTrust,Verify)”。
2.往往涉及許多復雜和昂貴的計算過程。
如果沒有找到合適的技術解決方案,以上兩點便會影響區塊鏈的可用性。
我們可以通過一個簡單的例子來說明不同數據獲取方式。假設你想查看自己的賬戶余額,你會怎么做?
一種最安全的方式是自己運行一個全節點,檢查本地存儲的以太坊狀態,并從中獲取賬戶余額。
全節點Benchmark。同步模式(syncmode)和客戶端選擇會影響所需的空間要求。
然而,自己運行全節點的成本很高,還需要自己維護。為了省事,很多人可能會直接向中心化的節點運營商請求數據。雖然這樣做沒有什么問題,類似于Web2中的操作,而且我們也從未見過這些供應商有過任何惡意行為,但是這也意味著我們必須相信一個中心化的服務商,這增加了整體的安全假設。
為了解決這個問題,我們可以考慮兩個解決方案:一是降低運行節點的成本,二是尋找一種驗證第三方數據可信度的方法。
那不如就只存儲必要的數據。為了更高效地訪問數據,降低信任成本,并獨立驗證數據,一些機構開發了輕客戶端(lightclients),如Rust-basedHelio、Lodestar、Nimbus和基于JavaScript的Kevlar等。輕客戶端不存儲所有的區塊數據,而只下載和存儲區塊頭——一個區塊全部信息的“總結”。輕客戶端能夠獨立驗證接收到的數據信息,因此當從第三方數據提供商獲取數據后,你不再需要完全信任該提供商的數據。
https://medium.com/coinmonks/ethereum-data-transaction-trie-simplified-795483ff3929
輕節點的主要特點包括:
理想情況下,輕節點可以在手機或嵌入式設備上運行。
Coinbase:近期比特幣拋售由短期投機者造成:金色財經報道,根據加密貨幣交易所Coinbase的數據,盡管投機者逃離市場,比特幣的長期投資者在最近幾周持有他們的比特幣。Coinbase機構研究主管David Duong在周二發布的月度展望中表示,最近的比特幣拋售幾乎完全由短期投機者造成。Duong稱,投資者仍持有比特幣是一個積極的情緒指標,在投機者拋售時確保了供需平衡,這是熊市的常見特征。(CoinDesk)[2022/7/13 2:10:22]
理想情況下,它們可以與全節點具有相同的功能和安全保障。
但是輕節點不參與共識過程,或者說只受到部分的共識機制保護,即同步委員會(SyncCommittee)。
SyncCommittee是輕節點的信任假設。
在TheMerge之前,從2020年12月開始,BeaconChain進行了一個名為Altair的硬分叉,其核心目的是為輕節點提供共識支持。和PoS全共識不同,組成這一組驗證者(512個)的是一個較小的數據集,相隔更長的時間段(256個epoch,約27小時)進行隨機抽取。
這就是為什么我們要驗證以太坊的全部共識層,以期迎來一個更加安全、可用性更強、擁有更多樣化協議、以及大規模采用的未來,目前來看最好的解決方案零知識(zero-knowledge)技術。
三、用零知識證明共識層之路|ThePathtoProveConsensusUsingZK
要構建一個無需信任假設的環境,必須解決輕節點可信度、去中心化數據訪問、和鏈下計算驗證這些問題,在這些方面零知識證明是目前最被認可的核心技術,其中涉及到但不限于zkEVM、zkWASM、其他zkVM、zkCo-processor等底層解決方案。
證明共識層是其中重要一環。
PoS算法非常復雜,以ZK方式實現它們需要大量的工程工作和架構考慮,我們先將其組件進行拆分。
1.以太坊2.0中共識形成的核心步驟|KeyStepsinConsensusFormationinEthereum2.0
驗證者(validator)相關算法
其中包括以下步驟
成為驗證者:驗證者候選人需向存款合約發送32ETH,并等待至少16小時至幾天或幾周的時間,以使信標鏈處理并激活成為正式驗證者。(可參考FAQ-Whydoesittakesolongforavalidatortobeactivated)
行使驗證職責:涉及隨機數和區塊證明算法。
退出驗證者角色:退出驗證者的方式可以是自愿退出或者因違規而被處罰(slashed)。驗證者可以隨時主動發起“退出”,每個epoch對于退出的驗證者數量有限制。如果有過多的驗證者同時嘗試退出,他們將被放入一個隊列中,在排到之前,他們仍然需要履行驗證職責。成功退出后,經過1/8個eek,驗證者將能夠提取質押資金。
基于Klaytn的DeFi孵化器 Krew 完成400萬美元融資:6月21日消息,基于 Klaytn 的 DeFi 孵化器 Krew 宣布已吸引了 400 萬美元的投資,Quantstamp 和 Ascentive Assets 共同領投。并將于 6 月正式啟動。未來計劃為孵化項目提供咨詢服務,包括流動性提供、營銷知識共享、提供設計建議和市場進入策略。此外,Krew 旗下的第一個 DeFi 平臺,基于 Klaytn 的非托管加密貨幣貸款協議 KLAP(KLAP)將被激活。[2022/6/22 4:43:41]
隨機數相關算法
每個epoch包含32個區塊(slot),提前2個Epoch進行隨機分組,將所有驗證者分成32個委員會(committee),在當前epoch行使職責,分別對每個區塊的共識負責。
每個委員會中有兩種角色,一個提議者(Proposer),其余為區塊構建者(Builders),也被隨機選出。這樣將交易排序和區塊構建兩個過程分離開來(詳見proposer/builderseparation-PBS)。
區塊證明(BlockAttestation)和BLS簽名相關算法
簽名部分是共識層最核心的部分。
每個slot的驗證委員會給投票(使用BLS簽名),需要獲得2/3的通過率才能構建區塊。
在以太坊PoS共識層中,BLS簽名使用BLS12–381橢圓曲線,pairing-friendly,適合聚合所有簽名,減少證明時間和大小。
在工作量證明中,區塊可能會發生重組(re-org)。在合并之后,引入了執行層上的”最終化(finalized)區塊和安全頭(safehead)”的概念。要創建一個沖突的區塊(conflictingblock);攻擊者需要銷毀至少總質押以太幣的1/3;很大程度上,PoS比PoW更可靠。
https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer
2023年6月底,《PuzzleVentures晚自習》中間介紹到了HyperOracle的zkPoS(用zk的方法去驗證以太坊全共識層)。詳情請見zkPoS:End-to-EndTrustless
其他:如弱主觀性檢查點(weaksubjectivitycheckpoints)
無需信任的PoS共識證明面臨的其中一個挑戰是若主觀性checkpoint的選擇,涉及到社會層面的共識(socialconsensusbasedonsocialinformation)。這些檢查點是回退限制(revertlimits),因為位于弱主觀性檢查點之前的區塊無法更改。詳見:https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/weak-subjectivity/
檢查點(checkpoints)也是共識層zk化當中一個需要考慮的點。
2.證明共識層的ZK技術棧|TechStackstoProveConsensus
在證明共識層中,證明簽名或其他計算本身是非常昂貴的,但相較之下驗證零知識證明卻十分便宜。
在選擇使用零知識證明共識層的方法時,協議需要考慮以下因素:
你要證明什么?
證明之后的應用場景是什么?
如何提高證明的效率?
以HyperOracle為例,對于證明BLS簽名,選擇了Halo2,他們選擇了Halo2而不是SuccinctLabs使用的Circom,出于以下幾個原因:
Circom和Halo2都可以生成BLS簽名的零知識證明。
HyperOracle并不只是干zkPoS這一件事,其核心產品是可編程的鏈上零知識預言機(ProgrammableOnchainzkOracle)。其中直接面向用戶的有zkGraph、zkIndexing和zkAutomation,并且還利用zkWASM虛擬機去驗證鏈下計算。盡管Circom對于工程師來說更易上手,但兼容性較差,無法確保所有功能的邏輯都能使用
Circom-pairing會被編譯成為R1CS,與zkWASM和其他電路的Plonkish約束系統不兼容,而Halo2Pairing電路能夠非常容易地整合進zkWASM電路;相比之下,R1CS對于批處理證明(ProofBatching)也并不理想。
從效率的角度,Halo2-pairing生成的BLS電路更小,證明時長更短,對硬件要求更低,gasfee也更低。
https://mirror.xyz/hyperoracleblog.eth/lAE9erAz5eIlQZ346PG6tfh7Q6xy59bmA_kFNr-l6dE
用零知識來證明共識層的另一個關鍵點在于遞歸證明(recursiveproof)——即證明之證明(proofsofproofs),把之前發生的事情打包成一個證明。
如果沒有遞歸證明,最終會輸出O(blockheight)大小的證明,即每個區塊證明(blockattestation)和相對應的zkp。通過遞歸證明,除了初始狀態和最終狀態外,對于任意數量的區塊,我們只需要O(1)大小的證明。
VerifyProofNandStepN+1togetProofN+1,i.e.youknowN+1piecesofknowledge,insteadofverifyallNStepsseparately.
回到最初的目標,我們的解決方案應該針對有計算和內存限制的“輕客戶端”。即使每個證明可以在固定的時間內進行驗證,如果區塊和證明的數量累加,驗證時間將變得非常長。
3.終極目標:多樣性的Level1zkEVM|TheEndGame:DiversifiedLevel1zkEVM
以太坊的目標不僅僅是證明共識層,還希望通過zkEVM實現整個Layer1虛擬機的零知識化,并最終實現多樣化的zkEVM,以增強以太坊的去中心化和魯棒性(robustness)。
針對這些問題,以太坊當前的解決方案和路線圖如下:
“輕量化light”——更小的內存、存儲和帶寬要求
目前通過輕節點(lightnode)實現僅存儲和驗證區塊頭(blockheader)的方式。
未來的發展還需要在verkletree和statelessclients方面做進一步的努力,涉及改進主網數據結構。
“安全去信任trustless”——實現與全節點相同的最小信任(trust-minimization)
目前已經實現基礎的輕節點共識層,即同步委員會(SyncCommittees),但這只是一個過渡方案。
使用SNARK來驗證以太坊Layer1,包括驗證執行層的VerkleProof、驗證共識層、以及將整個虛擬機進行SNARK化。
Level1zkEVM用于實現整個以太坊Layer1虛擬機的零知識化,且實現zkEVM的多樣化。
可能的風險在理想情況下,當進入zk時代時,我們需要多種開源的zkEVM——不同的客戶端具有不同的zkEVM實現,每個客戶端在接受一個區塊之前會等待與其自身實現兼容的證明。
然而,多種證明系統可能會面臨一些問題,因為每種證明系統都需要一個點對點網絡,一個只支持某一種證明系統的客戶端只能等待相應類型的證明,才能被其驗證器(verifier)所識別。其中可能出現的兩個主要挑戰包括“延遲挑戰(latencychallenge)”和“數據低效(datainefficiency)”,前者主要源于生成證明很慢,在生成針對不同證明系統的證明時,有一段時間差留給作惡者創建臨時分叉;后者因為你要生成多種類型的zk證明,就得保存原始簽名,雖然理論上zkSNARK本身的優勢是可以刪除原始簽名等數據,這里就出現了一些矛盾需要優化和解決。
四、未來展望|WhatistheFuture?
要讓web3迎來更多用戶、提供更流暢的體驗、創造更高的可用性和保障應用的安全性,我們必須為去中心化數據訪問、鏈下計算、鏈上驗證做好基礎設施建設。
證明共識層是其中一個重要組成部分,除了以太坊PSE和前面提到的zkEVMlayer2之外,還有一些協議正在通過零知識證明共識來實現自己的應用端目標,包括HyperOracle(ProgrammablezkOracleNetwork)計劃使用零知識證明以太坊PoS的全部共識層來獲取數據;SuccinctLabs的Telepathy是一個輕節點橋(LightNodeBridge),通過驗證SyncCommittee共識,提交statevalidityproof來達到跨鏈通訊的比目的;Polyhedra原本也是輕節點橋,但現在也聲明利用devirgo實現了全節點全共識的zk證明。
除了跨鏈安全、去中心化預言機之外,這種鏈下計算+鏈上驗證的方式,也可能參與到樂觀rollup中fraudproof當中,與OPL2相互融合;或在基于意圖的架構(intent-basedarchitecture)中,針對更復雜的意圖結構提供鏈上證明等等。
這里我們談論的是不僅限于以太坊的鏈下生態系統(off-chainecosystemsurroundingEthereum),還涉及到以太坊以外的更廣闊市場。
WorldEngine分為兩個關鍵部分。第一部分是核心,由兩個關鍵元素組成:EVMBaseShard,一個支持分片的混合執行層和排序器,以及GameShard,一個高性能的游戲引擎加執行層.
1900/1/1 0:00:00雖然去中心化金融、非同質化代幣和元宇宙構成了一個令人興奮的新型加密原生互聯網的基礎,但加密/Web3作為一個持續存在的概念將不會持續下去,除非它滿足了普通人的需求,并擺脫了自身封閉的小眾領域.
1900/1/1 0:00:00在Crypto領域,當我們提到「分片」時,人們通常想到的是區塊鏈分片技術。分片可以讓區塊鏈交易處理速度大大提升,區塊鏈研究者HITer將其比作一條高速公路新開設了無數個收費口,人們不需要在一個收.
1900/1/1 0:00:00深入研究“什么是DAO”的問題,并提出5個不同的概念視角,使我們能夠更有效的用于對現有組織機構的協調和研究.
1900/1/1 0:00:0010月24日 P2E游戲開發商CatheonGaming將在10月24日推出新代幣catheon據TheBlock報道.
1900/1/1 0:00:00重點提要:本文將介紹智能合約開發生命周期,以及開發和部署安全智能合約應采取的步驟。什么是區塊鏈中的智能合約?智能合約是區塊鏈技術的重大進步.
1900/1/1 0:00:00