撰文:Haotian

以太坊從Plasma到Validium再到主流Rollup,比特幣從側鏈到狀態通道再到客戶端驗證,Layer2本質上都在找一套兼顧安全、可擴展性、去中心化的Tradeoff方案。

基於此,我比較了ZK-Rollup和最近熱議的@BsquaredNetwork方案,從DA實現、可交互操作性、安全挑戰等技術實現方面,探討下比特幣layer2的差異性和複雜性。

為了更好地做同比參考,可以先模糊「定義」一組對應:

ETH Plasma = BTC 狀態通道;ETH Validium = BTC 側鏈;ETH Rollup = BTC 用戶端驗證。

不難看出,以太坊Plasma對應比特幣生態Lightning Network,承接了BTC的安全性,但HTLC合約目前受限於小額支付Payment方向;以太坊Validium對應比特幣生態的側鏈,擴展性很強,但一套獨立的共識讓它始終不受主流認可;以太坊Rollup我傾向於對應比特幣生態的客戶端驗證,安全性、可擴展性,去中心化特性會取綜合權衡點,以太坊Rollup也正因為此成了一條主流焦點賽道。

順著以太坊ZK-Rollup的思路,我們以比特幣客戶端驗證為突破口,比特幣layer2 Rollup方案該如何建構?以@BsquaredNetwork為例探討下:

1)客戶端驗證部分:

在一個完整的以太坊ZK-Rollup中,鏈下環節包括Sequencer收集並batch交易,會產生ZK SNARK證明和Merkle樹等打包同步到主網Calldata,然後鏈下會把ZK SNARK證明經過Prover系統的驗證,將最終的State diff上傳到主網,主網根據State root根再結合Calldata中的區塊數據,驗證數據的完整性和一致性,最終完成Finality狀態確認。

Bsquare的客戶端部分,主要包含Rollup layer 和DA layer兩大部分,Rollup layer的工作流程大致為:Sequencer 收集並Batch交易,先同步到去中心化存儲環境下一份,然後經zkEVM生成Proof證明,同時把交易Raw data,Merkle樹以及Bitcoin state等資料匯總成Aggregator聯合Proof證明一起同步給DA layer的B²nodes。

過程中有兩個差異,一方面比特幣需要將TXs原始資料同步到去中心化儲存環境下,而zk-Rollup預設了本地環境儲存;另一方面以太坊可以直接把資料匯總同步到主網Call Data,但比特幣主網儲存量有限,驗證能力缺失,因此Bsquare將這些資料同步到了客戶端環境下的B²nodes。

2)Data Availability部分

在以太坊系統中,主網來給Rollup鏈輸出DA能力,Rollup把資料同步到Calldata的操作目的正為主網的DA驗證能力,鑑於比特幣主網不具備驗證能力,DA功能由客戶端環境下建構的DA layer來承擔。

DA layer中的B²nodes在收到這部分Rollup匯總資料後,會進行電路編譯操作,將資料壓縮後以Inscription銘文的方式上傳到比特幣主網。同時B²nodes也會運作Prover系統對ZK證明進行去中心化驗證產生比特幣Commitment承諾,該承諾會連同Rollupdata等匯總資料一同去刻銘文。

這裡會產生兩個疑問:

1.為何不直接用Celestia這類第三方DA而選擇自己構建,這正是比特幣生態的特殊性所決定,B²node需要配備indexer索引器對inscribe到比特幣主網的銘文進行去中心化解析和索引,同時產生的ZK Proof會議Commitment的形式上傳到主網,在刻銘文的時候還需要對資料進行Circuit電路預編譯壓縮,以確保降低對主網儲存空間的佔用。

2.既然DA並非由主網提供,為何要把各類Rollup資料以銘文形式同步到主網,這其實是在主網保留一個不可篡改的交易記錄,為後續的Challenge過程提供基礎。

3)Challenge 部分

在ZK-Rollup中,主網Rollup合約的可透過Calldata中的打包資料和Prover上傳到主網的State diff二次校驗確保交易的完整性和一致性,這是主網具備驗證能力,ZK技術的優勢。

然而在比特幣的Rollup環境下,由於主網缺乏驗證能力,ZK技術價值本質在於SNARKs資料簡潔壓縮同時確保一致性,倘若在鏈下環境的Sequencer收集交易過程中就存在數據作假,整個鏈條的數據都是假的,Finality狀態確認並無法拒絕作假的數據,因此要設計一套機制要對「作假」行為進行挑戰。

要如何做呢?大家回看我關於BitVM的文章就會知道,BitVM是理論假設下可以讓比特幣實現圖靈完備計算的方案,只不過其預編譯電路向比特幣主網傳輸TXs的Taproot Tree方式過於消耗礦工費而不現實,如果借鏡BitVM的實作邏輯來進行挑戰機制設計就不一樣了。

挑戰機制會在主網UTXO中鎖定BTC,一旦用戶以BitVM的形式向layer2鏈挑戰,就可以拿走提前鎖倉在比特幣主網的資產。而刻錄在比特幣主網的銘文以及公開透明的B²nodes等Raw data、Merkle樹、Commitment承諾等都會成為用戶發起挑戰的證據,一旦挑戰結果證明B²nodes中的一系列數據和主網銘刻的Inscription數據存在不一致問題,B²nodes的節點不僅會失去鎖在主網路UTXO中的資產,還需要將交易回滾,重新更新索引器和歷史資料。

以上

不難看出,比特幣生態的layer2 Rollup方案有相當的技術複雜性與特殊性:

例如客戶端驗證環節要基於去中心化儲存將Sequencer產生的一切資料都留底,為了確保資料可追溯;

又例如DA環節要在鏈下環境建構一套去中心化資料驗證系統,並且透過Commitment承諾和刻錄銘文的方式來確保DA資料的一致性;

又例如即使採用了ZK技術,也需要配備公開透明的挑戰機制以確保安全; 整個過程要權衡一套去中心化、安全、可擴展性三個矛盾點得到一個公允的方案出來。探索的雛形答案顯而易見:既然比特幣主網無法驗證,無法DA,那就利用銘文向主網刻錄受限的DA+一套基於BitVM電路的圖靈完備挑戰系統來實現Rollup鏈的透明性和安全性。以ZK技術+BitVM挑戰系統來彌補比特幣缺失的DA和驗證能力。

既然以太坊Rollup也還存在Rollup合約可Update的多簽合約治理隱患,也不能百分百確保安全,大家相信的其實是一套相對透明公開的合約交互機制,那現在做不到絕對BTC共識安全,眼前是一套基於BitVM的透明公開挑戰機制,雖然技術實作複雜太多,邏輯似乎也Make Sense。總之,比特幣Layer2這套ZK技術+客戶端驗證+DA銘刻+BitVM挑戰的典範若逐漸得到市場認可,你覺得會成為新一輪的比特幣layer2 Rollup標榜嗎?