DeFi 需要什麼樣的擴容網絡?從 Radix、StarkWare 技術推論
本文發布於白計畫,作者:Li。
DeFi 已然成為加密貨幣世界不可或缺的組成部分。
整個 2020 年,DeFi 規模得到了空前增長。據 DefiMarketCap 統計,Top100DeFi 代幣的市值已經接近千億,而通過查閱可知,DeFi 鎖倉資產也已經超過 500 億美元。
上圖為 DeBank 顯示的 DeFi 鎖倉資產變化
這個龐大的數字是基於以太坊形成的,如今,以太坊已經承擔著 BTC、ETH 以及 DAI 等其他鏈上資產的流動價值,但根據以太坊的運行邏輯,在這個龐大的數字背後,是巨大的資源消耗。
通過查閱以太坊 gas 消耗量可知,在 ETH 價格不斷攀升、DeFi 應用不斷增加的今天,以太坊單日礦工收入峰值已經超過 2700 萬美金。除了常規的區塊獎勵外,這個數字中很大部分收入是由 DeFi 用戶調用智能合約所致。
gas 費過高不僅僅增加了用戶使用加密貨幣的門檻,從更高的維度看,這阻礙了加密貨幣出現的初衷:普惠金融。
所以,加密貨幣需要解決交易中的成本問題,實現更低成本的 DeFi 交易。目前很多公鏈項目已經有了明確的發展路線圖,以太坊的 DeFi 最多,所以目前其擴容方案最具有代表性,方案有三:轉向 PoS、分片、Layer 2。
以 Layer 2 技術擴容的代表項目有 StarkWare、Matic、Celer 等,而以分片等方式擴容的代表網絡有 Radix、Near 等。兩種形式從技術上各有所長,對 DeFi 賽道的幫助也有所差異,本文中,我們將以這兩種擴容設計來推論:DeFi 需要什麼樣的加密貨幣網絡?
Layer 2 是目前最容易實現的擴容方案
以太坊和其他公鏈,都在嘗試利用多鏈結構擴容,例如以太坊 2.0 可能實現的同構分片、波卡正在實施的異構分片、COSMOS 的跨鏈結構。而新出現的雪崩協議等網絡,在多鏈結構裡更細化的定義了功能分層和功能模組化實現擴容。
這些都是龐大且長遠的設計,例如波卡未來還需要經歷插槽拍賣、COSMOS 還需要建立更好的生態,其餘的鏈的技術進展和生態建設也還處於初期狀態。
對於其他更聚焦於擴容的項目來說,會更聚焦在單個網絡結構裡,例如在 Layer 1 實現分片,代表項目是 Radix、Near。從長遠來看,Layer 1 的擴容(例如分片)是必然。在這些網絡兼容 EVM 後,Defi 都可以快速的遷移到網絡上,如果解決資產的轉移問題,這些網絡都會成為以太坊的擴展網絡。
不過對於 DeFi 需求旺盛的牛市,Layer 2 的擴容落地很有必要。
以以太坊為例,以太坊的 PoW 鏈其性能遠不如信標鏈,如果以太坊可以成功轉向 PoS,那其性能會有質的提升,不過以太坊轉向 PoS 還會經歷漫長的過渡期,在 PoW 鏈承擔網絡出塊的階段,只有 Layer 2 是最快實現的擴容方案, 很多有先見之明的項目已經開始建立 Layer 2 的測試應用,例如 AAVE、Synthetix、dYdX 等,不過 Layer 2 的原理,會產生一些新的關聯問題。
簡析 Layer 2 的原理
讓我們來看一下 Layer 2 的原理。
還是以以太坊為例,其 Layer 2 解決方案,是在以太坊上建立一個鏈下結構或者側鏈結構,將以太坊上的地址餘額映射到 Layer 2 層,然後在 Layer 2 層完成賬戶之間的交易以及其他操作,然後再將結算結果反饋回鏈上,確認最後的地址的數據變化。
這樣對於運行在 Layer 2 的 DeFi 應用來說,只有剛剛啟動 Layer 2 層和最終結算的時候,Layer 2 和鏈上有交互,其他的交易過程都在 Layer 2 發生,不會佔用鏈上的資源,可以實現快速處理交易以及有效減少 gas 的消耗。
但這種方式仍有兩個關聯的顧慮:
- 如果主鏈性能不佳,在鏈上出現擁堵的時候,Layer 2 與賬戶結算仍可能需要較高的 gas 費和較長的確認時間。
- 在 Layer 2 層可能無法執行與鏈上其他資產、合約的交互,如果可以交互,仍需要多次調用鏈上資源,會產生 1 的問題。
因為除了交易被打包後形成區塊存儲在鏈上外,所有智能合約也是上傳到鏈上的,DeFi 的常態是資產合約、借貸、交易合約之間相互調用,所以當合約之間發生調用的時候,就是佔用鏈上資源的時候。
這代表其一:支付 gas 費過程是無法避免的,其二:DeFi 需要豐富的可組合性。
所以解決問題的根本在於,解決以太坊 PoW 鏈帶來的 gas 問題並保持 DeFi 之間可組合性。這就帶來了答案:如果 Layer 1 層的性能足夠快,並不需要 Layer 2 去擴容,如果不是適合 Layer 2 的業務,盡量使用 Layer 1 擴容技術,因為 Layer 2 會影響智能合約的組合性。
StarkWare 的 Layer 2 設計舉例
不過牛市的火熱需求裡,Layer 2 是很多項目謀求發展的選擇,例如 dYdX 將以 StarkWare 的技術搭建 StarkEx 系統用於永續合約交易。我們來看 StarkWare 的技術邏輯。
StarkWare 其目標是在以太坊下層建立一個網絡,該網絡與鏈上的交互過程以及 Layer 2 層的通訊過程會應用 Rollup 以及零知識證明以保護其安全,但在這個網絡內應用各類 DeFi 的前提是需要把 DeFi 部署在 StarkWare 的網絡裡。
StarkWare 未來將形成的 Layer 2 網絡結構
例如 dYdX 是訂單簿形式的 DEX,在沒有應用 Layer 2 之前,dYdX 的訂單簿撮合是在鏈下工作的,會將結算數據與鏈上交互同步,這個過程會產生高額的 gas 費,應用 Layer 2 後,StarkEx 系統會將結算過程在 Layer 2 層完成,這會明顯降低這個過程的 gas 費消耗。
但這會帶來一些關聯的影響,例如使用的步驟會略複雜,可能無法在移動端應用、以及可能會產生 Layer 2 的開戶成本。此外,帶來最大問題是,如果 dYdX 想要與其他 DeFi 協議開啟組合應用,需要其他 DeFi 應用也部署到這個網絡裡。
從加密貨幣的初衷來看,這並不是普惠金融的做法,其應用可能最終會成為高級用戶和專業用戶的領地。
因此相比於能讓一些 DeFi (需要頻繁交易)跑的更快的 Layer 2,一些 DeFi 更適合使用 Layer 1 的擴容方案或性能更高的網絡。
例如 Compound 曾透露可能會轉移到其他公鏈,訂單簿形式的 DEX 需要大量的交易過程,因此也更適合 Layer 2。而借貸、穩定幣、AMM 池等會更適合運行在性能更好的網絡上,在豐富的組合性上發揮最大價值。
更符合 DeFi 特性的 Layer 1 擴容思路
那如何確認 DeFi 需要什麼樣的 Layer 1 呢?Radix 在其網絡設計中給予了一定思路:
- 解決共識問題帶來的性能瓶頸。
- 盡力打造可組合性。
所以 Radix 採取了一些另辟蹊徑的方式。
前文我們提到的同構分片、異構分片,其中分布的片,是一部分節點組成的鏈。可以理解為劃分一些節點成為一個分區,這個分區獨立其他分區存在,分別處理任務,
例如以太坊 2.0,如果還依據原來執行分片的路線圖,初期可能建立 64 個分片,而這些分片都最終由信標鏈來完成交易驗證,分片之間的通訊叫做「交聯」,如果其中一個分片需要驗證其他分片時,才會進行分片間通訊。而因為分片的存在,DApp 開發者在以太坊上開發 DApp 的時候需要選擇一個分片來做為主要的處理區。
這意味著這個 DApp 如果需要向其他分片獲取數據的時候,會出現一些冗雜的步驟。在波卡、COSMOS 實現的結構也是如此,波卡的平行鏈就是異構分片結構裡的分片,平行鏈之間的交互是通過中繼鏈進行,但交互過程較為複雜,需要平行鏈之間去單獨定義。COSMOS 也是如此。
這樣的分片,是一種劃定界限的設計,每個分片鏈會形成一定的孤島效應,自然會出現一些後續問題。
但如果變化一下思路就可能產生一些新的技術思路。
例如 Radix 在數據庫分片的形式之上設計了新的共識機制。可以理解為一個數據庫分片+共識的新的分片結構。
Radix 的分片部署示意圖
這種分片不同於上文提到的定義一些節點作為分片鏈,而是把加入網絡的計算資源全部先切分為不同的分片,分片不是通過鏈劃分的,而是通過隨機命令隨機分配到已經確定的分片位置裡,這些通過命令分出的分片再組成一個個大的分區。
這種預先設定好分片位置,然後動態的將命令分配到各個位置形成分片的方式,需要通過共識來確認最終的狀態。Radix 的 Cerberus 共識是執行這個過程的,與信標鏈的 ghost 算法實現最終確定性一樣,Cerberus 共識可以確定交易的排序以及形成最終的數據集交給驗證者驗證。
這樣做最好的方式是,可以實現更大的並行,調動所有的資源去使用,而不是固定分區帶來的一些邊界問題。
其次,重要的問題是組合性。
對比以太坊,鏈上的組合性是智能合約之間的相互交互,例如通過 Compound 借貸出的 cToken 等可以在其他 DeFi 裡進行挖礦以及 swap。這就代表了 DeFi 的合約要調用 Compound 合約去確認 cToken。該合約之間的調用是組合性的體現。
如果兩者不在同一個網絡或者分片裡部署,那就很難組合到一起,需要網關的處理或者需要一個映射的智能合約存在。
為了解決這個問題,Radix 的思路是,減少智能合約的編程複雜性,因為智能合約中一定會對賬戶的賬本做記錄以輸出最終結果,但如果在 Layer 1 裡實現,就可以把智能合約換成更小單位的執行過程,Radix 將這個執行單位稱為「組件」,其提前定義了「組件」的功能,這些組件的執行非常簡單直接,從而讓多個組件組合在一起也可以快速執行 DeFi 的業務。
例如,當一個智能合約是轉賬的情況下,這個智能合約需要對兩方的賬戶做編輯,即形成一個小的總賬本,在轉賬方銷毀,在接收方增加。而如果使用 Radix 的組件設計,將組件設計為 a 的轉賬代幣屬於 b 即可,這樣執行起來非常快速,無需更多的證明。
這會實現足夠多的組合可能性。
Radix 的組件示例
據官方技術文檔介紹,目前 Radix 基金會建立的組件將包含 DeFi 應用的一些標準功能。會包括(如圖的):資產(可替代或不可替代代幣)、賬戶(包括多 sig 控制)、流動性池、交換系統、可購買資產、數據預言機等。
這些組件都可以直接實例化,例如通過 API 調用創建自定義 token 的供應或者以各種方式進行模組化組合創建更複雜的功能。
是否能期待 DeFi 應用在新網絡?
就像 Compound 曾透露在考慮新公鏈一樣,對於當下紅極一時的 DeFi 來說,選擇新網絡,是有挑戰的。
遷移到另一條公鏈的可行與否,不僅僅是性能上的考慮,與這條鏈對於以太坊、比特幣等網絡的資產兼容、鏈上基礎貨幣的價值都有偌大的關係。
所以暫時看,沒有 DeFi 能夠逃離以太坊,但不乏有新的嘗試出現。2 月 11 日消息,Chainlink、Aave、mStable 和 Messari、Radix 宣布聯合推出了一個新的 DeFi 聯盟 GoodFi。這個聯盟旨在促進 DeFi 行業的教育、研究和實踐發展。這讓我們看到了希望。
期待成本低、體驗好的 DeFi 早日出現。














