📢 #Gate观点任务# 第九十期精彩啟程!調研 Pell Network (PELL) 項目,在Gate.io動態發佈您的看法觀點,瓜分 $100 GT!
💰️ 選取10名優質發帖用戶,每人輕鬆贏取 $10 GT 獎勵,獲獎文章還將被標記為“精選”!
👉 參與方式:
調研$PELL項目,發表你對項目的見解。
帶上$PELL現貨交易鏈接:https://www.gate.io/trade/PELL_USDT
推廣$PELL Launchpool挖礦活動,質押$BTC、$PELL、$GT參與瓜分7,002,801 $PELL挖礦獎勵:https://www.gate.io/launchpool/PELL?pid=237
推廣$PELL上線狂歡活動,充值、交易、註冊享三重福利,參與瓜分$30,000 PELL獎勵:https://www.gate.io/announcements/article/43851
建議創作的主題方向:
🔹 什麼是 Pell Network?
🔹 Pell Network 在BTC再質押方面有什麼優勢?
🔹 $PELL 代幣經濟模型是如何運作的?
您可以選擇以上一個或多個方向發表看法,也可以跳出框架,分享主題以外的獨到見解。
注意:帖子不得包含除 #Gate观点任务# 和 #PELL# 之外的其他標籤,並確保你的帖子至少有 60 字,並獲得至少 3
一文探討Rollup擴容方案的演進思路和設計緣由
原文作者:ORFEO
原文來源:The SeeDAO
L2 項目再次成為萬眾焦點。
作為L2 中Rollup 擴容路線的代表,前腳Arbitrum 空投完,後腳zkSync Era 就上線了。層出不窮的新設計、路線圖背後,Rollup 到底有一條什麼主線,演進的思路是怎樣的,今天就來理一理。
本文要點:
從一個類比說起
對比特幣、以太坊而言,自誕生起,來自普通用戶的最大詬病有二:
這倆詬病之處,分別源於區塊鏈設計上的2 個因素:
要是區塊鏈真可以類似車道,那麼治本之策自然是奔著拓寬車道去,同時配合價格手段來在出門時間上進行疏導,不急的就先別出門了。
然而,拓寬車道,提升區塊容量,雖然是個誘人的通行效率解決方案,但在區塊鏈設計上,卻是捨本逐末了。因為區塊容量越大,對礦工的硬件要求就越高,能達到要求的礦工就越少;按這種思路,要想做到像Visa 那樣每秒處理成千上萬條交易,最終只會做出另一個中心化的Visa,與區塊鏈去信任的核心目的南轅北轍。
那還有其他解法嗎?有的,除了在時間上疏導,我們在空間上也可以優化,包括但不限於:
作為區塊鏈上的公交車,Rollup 的關鍵其實就是省空間和省汽油(Gas,pun intended):
這樣一來,「慢」和「貴」這兩個槽點就被Rollup 解決了。
下面我們回到區塊鏈上,看看Rollup 的具體方案。
從零設計一個Rollup;方案
與其偷看看標準答案(何況沒有),不如來點懸念,想像自己接到為以太坊設計Rollup 的任務,會怎麼做。
我們不妨從減少計算成本(省汽油)和減少存儲成本(省空間);2 個角度出發,先提一個比較激進的方案,叫Rollup 1.0;。
匯總 1.0;
Rollup 1.0 包含3 個要點:
簡單來說,就是定時定量收集大家的交易請求,鏈下計算後,只把計算結果固化到鏈上。
這個方案完美地解決了「慢」和「貴」這2 大痛點,但又似乎衍生了新的問題:
針對這3 個新問題,我們可以迭代一版方案。
匯總 2.0;
動機問題最好解決,能用錢解決的問題都不是問題。服務商可以平攤「拼車」成本,再額外收一點「小費」,即便如此和「拼車」人之間仍然是雙贏。
審查問題稍微麻煩點,但解法在區塊鏈領域很常見,那就是去中心化。一群人都是服務商,比只有一個服務商好;任何人都能當服務商,又比固定一群人當服務商好。在後面這種玩法下,如果所有服務商都不乖,你也能自己當服務商,或者直接去L1 發起仲裁。
欺詐問題就有點難度了。它可以拆分成兩個問題 — — 一個是如何識別欺詐,另一個是如何防範欺詐。
首先,要識別欺詐,我們需要知道大家的交易(Transaction)數據,交易前的狀態(State),從而計算交易後的新狀態(State'),拿來和服務商鏈上存儲的新狀態對比,如果一樣說明服務商誠實,否則說明他撒了謊。然而,我們並不知道交易數據,因為它們沒有上鍊。這就導致我們只能將信將疑,無法判斷服務商是否誠實。
接著,防範欺詐,最好的方式就是讓欺詐不可能出現,這個比較難,除非鏈上每次都檢查一遍服務商的計算對不對,但這樣一來就沒有「拼車」的優勢了。所以我們只能退一步,讓欺詐的成本很高,讓服務商有所顧忌(have skin in the game),比如交個押金(Stake),如果發現欺詐就將其沒收。 (這種方式叫社會共識,屬於基於博弈的安全性,在《週報#3;》中亦有提及。)
匯總 3.0;
Rollup 2.0 還不錯,但識別欺詐的問題沒解決。
根據之前的推論,要識別欺詐,我們必須要知道交易數據,所以這部分數據,必須和狀態數據一樣上鍊。
那由誰來發現他們欺詐呢?很顯然,這個不大能是普通用戶,因為大家不可能7;x;24 小時監督服務商的一舉一動,所以只能是專業的「賞金獵人」(Validator)。如果服務商「派單」後的7 天內,有「賞金獵人」舉報欺詐,並且驗證屬實,那麼交易就會回滾,服務商就會受到懲罰。當然,如出一轍,「賞金獵人」也需要有激勵,比如發現欺詐後,服務商的押金將分一部分給「賞金獵人」(只會是一部分,避免服務商和賞金獵人共謀)。
匯總 4.0;
到Rollup 3.0 階段,整個方案已經能夠跑通了,但又引入了新的成本。到目前為止,成本包括:
下面我們來看看,有哪些成本是可以優化的。
交易數據
通過特定的方式,多條交易聚合在一起,所佔的空間是可以比每條交易所佔空間的總和要小的。
以最簡單的ETH 轉賬交易為例,我們拆解下每條交易的內容構成,可以看到,簽名的空間佔比最大。我們可以將所有交易的簽名,合成一個(Key Aggregation),這樣就省了很大一筆存儲的開銷(類比比特幣中的Schnorr)。此外其他部分我們也可以優化,比如把Nonce 甩掉,以及「拼車」的時候盡可能選擇「肥瘦相間」、嚴絲合縫的「拼車人」,最大限度地利用「車內」空間。
來源:
就這麼三兩下,每條ETH 轉賬交易的大小就由112 字節,縮減為12 字節,接近以前的十分之一;當然,還有其他手段,可以進一步壓縮交易數據。
在實際操作中,我們可以在鏈上部署的合約裡,安插這麼一個方法:
function storeTxData(bytes calldata data) external {;// 啥事兒不干}
然後每次「拼車」成功後,把合併壓縮後的交易數據,作為calldata 傳入這個方法。 calldata 不需要永久保存,社會共識的公示挑戰期(Challenge Period)過後,被剪枝(Prune)也不會有所謂;本身價格很低,而且之後隨著Danksharding、Data Blob 等EIP 落地,會更便宜,這種將L1 應用於數據存儲分發(Data Availability)的形式也會更正式。
狀態數據
既然交易數據已經上鍊,那任何人都可以通過交易數據來計算更新後的狀態了,狀態數據就沒那麼大必要了。我們可以只保留狀態數據的Merkel Root,用於在服務商不配合時,讓普通用戶(「拼車人」)可以直接向L1 申請提款,靠Merkel Proof 證明自己賬上有錢。
欺詐仲裁成本
當「賞金獵人」舉報服務商說有欺詐時,鏈上合約計算(Replay)一次,對比狀態結果,這理論上固然可行。但是,這樣做一是成本不低(雖然已經不錯了),二是Rollup 「拼車單」包含的交易的Gas 總和可能超過了以太坊的Gas 上限,致使無法驗證。
所以仲裁需要減負,減負的方式自然也是把不必要的計算操作放到鏈下進行。其中一種解法叫交互式證明(Interactive Proving),大致過程如下:
(整個過程中,若某一方超時未回复,則這一方失敗。)
這樣一來,整個鏈上仲裁成本就非常非常低了。
說到這裡,我們便完整地構建了一個Rollup 方案。因為這種方案默認假定服務商是誠實的,除非有「賞金獵人」舉報,所以這一派別叫做樂觀主義者的Rollup,所謂Optimistic Rollup。
那麼,我們的Rollup 4.0;,就是最優的方案了嗎?
Rollup 再進化
經過我們的多輪迭代,Rollup 4.0 依然有些不完美的地方:
有沒有一種方案,能讓欺詐根本無從實施,讓最終性(Finality)更快,讓需要上鍊的數據更少,讓擴容更上一個量級呢?想要的簡直不要太多,但還真有這樣一類幾乎能滿足一切想像的方案 — — Zero Knowledge Rollup(簡稱ZK-Rollup)。
ZK-Rollup 是一種採用零知識證明(ZKP)的Rollup 思路。所謂ZKP,指的是在不透露任何敏感信息的前提下,讓對方確信你知曉這一信息的技術。解釋ZKP,我最喜歡的比方有2 個:
用不夠嚴謹的話來講,ZKP 的核心思路是證明方(Prover)先把秘密知識藏好,「買定離手」(Commit),然後由驗證方(Verifier)發起隨機挑戰(Challenge),如果證明方能成功通過挑戰,那麼大概率他有相應的秘密知識。
ZKP 要滿足3 個要求:
為了滿足這3 個要求,ZKP 利用了多種多樣的NP 難題,包括最簡單的質數分解,以及離散對數(如Schnorr 就是)等。
ZKP 並不是為區塊鏈而生的技術,但是恰好可以用於L2 擴容,這主要是因為一個好的ZKP 有以下有用的特性:
利用這些特性,我們的Rollup 方案可以:
當然,任何安全機制都會有潛在的前提條件,ZKP 也不是區塊鏈的萬能藥。 ZKP 目前還有不少局限性,需要逐步去克服,比如:
來源:
這也是為什麼,在ZK-Rollup 這一面向未來的擴容領域中,每次進步,都難能可貴,可喜可賀。
來源:
寫在最後
就擴容的未來而言,筆者認為,與L1 的原生擴容相比,包括Rollup 在內的分層設計是更為可靠的思路。模塊化,每層解決每層的關切,比在已是「鐵板一塊」(monolithic)的L1 上不斷堆疊,風險更小;而且,底層L1 因擴容而損失的去中心化,理論上不大可能在上層找補回來。況且這種分層設計的思路,在區塊鏈以外的領域,也有看似成功的應用。觀點不一定對,但這是筆者目前的認知。
本文嘗試以一種無關特定項目(project-agnostic)的口吻,梳理了Rollup 擴容方案中的思考脈絡和設計緣由。由於水平有限,有些地方還是略顯生硬,可能不僅未解釋到位,反而徒增了理解難度;作為日新月異的一個垂直領域,很多新的發展筆者可能也未能及時知曉和考慮進來。真誠歡迎朋友們指正,交流。