來源:白話區塊鏈
為什麼流動性必須無縫流動?
上個週末,我所有的Farcaster朋友都在談論一個熱門的新幣,Base上的DEGEN。感受到了FOMO(恐懼失去的情緒),我查看了我的Rabby錢包,看看我可以投資多少:
“很酷,我可以投入$500到這個幣種,只是需要賣掉一些其他資產。不過,我的投資組合看起來是什麼樣子的呢?”
“Oh NO”
幾乎每個Token都在不同的第二層網路上。為了取得DEGEN,我必須依序執行多個橋接和交換操作,即使手續費很低,這仍然是一小時令人沮喪的橋接和交換過程。
我們必須解決這個問題,我們的北極星是讓整個以太坊生態系統感覺像一個網路。讓我們看看統一的流動性,再加上錢包升級,如何將橋接抽象化,並使跨鏈第二層體驗感覺像使用單一鏈一樣。
1.橋接本不應該需要這樣做
為什麼目前的橋接如此糟糕?這裡存在一些缺陷:
你必須訪問一個單獨的網站,連接錢包,批准轉賬,轉賬後祈禱它能到達另一端…
橋接通常需要5 到30 分鐘才能完成,這遠遠太慢了。少於10 秒是可以實現的,也是理想的。
大多數橋接需要在兩個網路上鎖定流動性。我們擁有的第二層網路越多,流動性就會越薄弱。流動性不足使得在鏈之間轉移大量資金變得困難,並且結果會導致價格更低。
只有某些具有流動性的Token可以進行橋接,對於大多數網路來說,這是ETH + 穩定幣。
還有一種不需要鎖定流動性的封裝Token橋接。它可以支援任何Token。然而,在橋接之後,你會得到你所需Token的非本地版本,必須將其與真實的Token交換才能在新網絡上使用任何應用程序,這需要流動性,因此我們最終陷入了同樣的困境。
最重要的是,如果橋接確實不需要這樣做,為什麼我們要集體浪費數百萬小時去做它?
2、錢包和應用程式應該自動處理橋接
當你使用去中心化交易平台或借代協議時,它應該追蹤你在所有鏈上的Token。當你存入來自另一條鏈的Token時,它應該會自動在後台將其橋接到正確的鏈上,使整個過程感覺與以太坊主網完全相同。
應用程式和錢包想要實現這一點,但是底層基礎設施還不夠好。如果這個橋接過程需要花費10分鐘,而且你在過程中損失了1%的Token,大多數用戶會對這種體驗感到不滿意。
讓我們深入探討基礎設施層,看看如何解決這個問題。
流動性如何無縫流動
在L2網路中,流動性可以透過以下3種主要方式進行統一,並且有一種增強方式可以提高它們的速度。這些方法有不同的權衡,但彼此互補。
它們是:
1)共享生態橋接:實現整個生態系鏈上的流動性無縫聚合。
2)鑄造/銷毀Token:可以在任何支援的鏈之間以無限大小進行轉移。
3)本地橋接相互信任:實現跨生態系的流動性無縫聚合。
共享生態系橋接
當你從以太坊主網橋接到任何第二層網路時,過程大致如下:
每個橋接都是以太坊上的一個智慧合約,我們稱之為「本地橋接」。當你橋接到第二層網路時,你的資產將被鎖定在L1上,並在L2上鑄造一份副本。這些網路有權鑄造任何其本地橋接支援的資產的無限數量。
儘管它們具有相同的名稱,並且明確不被稱為封裝資產,但透過鏈的本地橋接從以太坊橋接到任何L2的每個資產實際上都是封裝資產,因為合約地址,有時甚至代碼都是不同的。在以太坊上,USDC的合約位址以0xa0b8開頭,而在Arbitrum上以0xaf88開頭,在Optimism上以0x0b2c開頭,在Polygon zkEVM上以0xa8ce開頭。
這些資產看起來和感覺都是相同的,因為錢包和應用程式有一個官方資產列表,其中包含官方圖像以供顯示,所以用戶永遠不會知道其中的區別。
如果不是為每個L2都有一個橋接,而是它們共用一個橋接會怎麼樣呢?資產可以在一個稱為interop層的共享鏈上鑄造,然後在最終目的地L2上鑄造它們。
Polygon將這種新設計稱為「聚合區塊鏈」。
這種設計有什麼用處呢?在這個生態系統中,當資產從一條鏈移動到另一條鏈,例如從Polygon zkEVM到OKX X1時,不需要透過傳統的橋接或先橋接回以太坊。相反,你可以銷毀該資產,並讓interop層在目標鏈上鑄造相同數量的該資產!
透過這個interop層橋接的每個資產現在在生態系統中的每條鏈上都完全相同。假設interop層是免費且速度快的(Polygon表示他們的將在<20秒內完成),你將能夠在幾秒鐘內免費地在生態系統中的任何L2之間無限大小地橋接資產!
Polygon和zkSync都在為他們的生態系統開發這種interop層設計,從Optimism的設計文件中可以看出,它們似乎也在追求這個設計,儘管尚未確認。
缺點是它只適用於一個生態系統,並且需要所有鏈使用一個橋接,這增加了風險,但是在生態系統中讓流動性在所有鏈之間無縫流動的獎勵遠遠超過了這個缺點。
因為所有Token在生態系統之間是可互換的,所以你的錢包不需要顯示你所在的鏈或按鏈分開Token。相反,你的錢包可以是這樣的:
一個統一的錢包在一個統一的鏈上
在跨多個鏈執行交易時,您的錢包可以簡單地顯示您正在使用“Polygon”網絡,並在後台自動執行所有橋接操作。
如果這個設計如此出色,為什麼不早點實現呢? ZK證明直到最近才足夠快速和廉價,才使得這一切成為可能。 Interop層使用ZK證明進行所有的鑄造/銷毀操作,因此可以在幾秒鐘內完成,而無需任何挑戰期。
優勢:
-快速、簡單、標準的方式在鏈之間轉移Token
-可以移動任意數量的Token,無滑點
-可能完全免費使用
劣勢:
-只在單一生態系內起作用
-一個橋接是整個生態系的單點故障/攻擊目標
-必須從一開始就進行設計,不能在現有生態系統中進行重大更改
3、鑄造/銷毀Token
與依賴共享生態橋接不同,鏈可以將橋接留給Token。 Token需要實現鑄造/銷毀功能,並允許用戶隨時銷毀Token,在另一條鏈上進行鑄造。
將DAI從zkSync移到Polygon,不使用以太坊主網
將DAI從zkSync移到Polygon,而不使用以太坊主網,可以透過諸如Layer Zero或Chainlink CCIP之類的中間件發送這些鑄造/銷毀訊息。 Layer Zero正在開發一個名為Omnichain的項目,該項目將允許Token實現這項功能。
一些Token已經實施了這個系統。 Circle最近推出了他們的跨鏈轉帳協定(CCTP),該協定正是為USDC在8個不同網路之間實現這項功能。
由於USDC在許多網路上具有高流動性,並且沒有流動性可用上限,它可能是在鏈之間移動資產的完美橋樑。錢包可以交換你想要橋接到的Token為USDC,使用CCTP將該USDC進行橋接,然後在目標鏈上將其交換回你想要的Token。這可以在錢包自動處理的情況下進行,並且收取很少的費用或滑點。
將流動性統一留給Token的缺點是,由個別Token來實現它,錢包和應用程式必須知道哪些Token可以自動橋接,哪些不行。
這也要求Token等待鏈的最終確定,然後才能發送該Token,這可能需要幾分鐘到幾小時,具體取決於資料寫入以太坊的頻率。如果Token不等待最終確定,它可能會被雙倍消費,即在目標鏈上鑄造,然後在發送鏈上的重組中被撤銷。
另一個需要考慮的風險是,Token的安全性取決於每個鍊和中繼系統的安全性。如果L2被攻擊,它可能會透過向其他鏈發送惡意訊息(例如,聲稱它銷毀了一個Token,而實際上沒有)來鑄造新的Token。如果Token的中繼或預言機被攻擊,也可能發生同樣的情況。這將導致Token在所有鏈上都出現故障。
在Cosmos生態系中以ICS-20實現了跨鏈Token。它透過追蹤Token到達目前鏈的路徑來解決了「一個鏈破壞所有鏈上的Token」的問題。如果TokenX透過鏈A -> B -> C發送,而一些XToken透過A -> C發送,然後鏈B受到攻擊,第一組XToken將變得毫無價值,但是同一XToken的第二組仍然具有價值,因為它們沒有跨越鏈B。這會帶來Token可替代性的額外問題,需要錢包和應用程式來解決,但這是一個解決方案。
優勢:
-Token可以自由地在任何L2鏈之間移動
-可以移動任意數量的Token,無滑點
劣勢:
-鏈必須安全,一個受損的鏈可能會在所有鏈上破壞該Token
-錢包必須了解每個個別Token的功能,以簡化使用者體驗
-Token必須等待最終確定才能移動,這需要幾分鐘,有時甚至幾個小時
4.互信的本地橋接
具有ZK橋接的L2鏈可以透過相互信任其他L2鏈的本地橋接來實現快速、免費的Token轉移。這可以透過使用者在一條鏈上銷毀一個Token,然後使用銷毀證明透過另一條鏈的本地橋接鑄造該Token來實現。
例如,如果Scroll審查了Linea橋接並認為它是安全的(且無法透過升級使其不安全),他們可以設定一個監視Linea橋接L1狀態根的服務,允許Linea上的任何用戶發布他們在Linea上銷毀Token的證明,而這個銷毀交易被包含在L1狀態根中,並在Scroll上鑄造等值的Token。
在兩個L2之間移動任何Token,而不使用以太坊主網
鏈之間相互檢查狀態的過程在Vitalik 的這篇文章中有更詳細的技術說明。
這與先橋接回以太坊然後再到其他L2的方法類似,但這種方法節省了昂貴的L1 gas費用。
現在的風險是這些本地橋可能不會與在L2上鑄造的Token數量完全一致,這是一個核心屬性,直到現在還沒有被破壞。在上面的例子中,如果一個用戶將1百萬美元的DAI從Linea移動到Scroll,那麼Scroll橋將缺少1百萬美元的DAI,如果一個用戶希望從本地的Scroll橋中提取大量Token,那麼可能不會有足夠的Token可用。橋接可以透過彼此之間進行批量的L1Token轉帳來協調這些差異,或者始終在它們之間保持雙向信任,因此即使Scroll橋被清空,大鯨魚仍可以透過Linea橋提取資金。
優勢:
-Token可以在受信任的鏈之間自由移動
-可以移動任意數量的Token,無滑點
劣勢:
-如果一個橋被破壞,它可能會危及所有信任它的橋
-橋的鎖定Token數量與其網路上鑄造的Token數量可能會不同。這可能會導致提取資金時出現問題。
5.一個經濟上安全的快速確定性層
這三種方法具有很好的擴展性和安全性特性,但有一個缺點會嚴重減慢轉帳速度——等待最終確定。最終確定一個區塊需要發送網路將其資料寫入以太坊,這可能需要多達一個小時,然後以太坊再次確定,這可能需要多達另外15分鐘。
透過經濟激勵,我們可以創建“軟最終確定性”,其中一筆交易由經濟價值多於它的價值的節點最終確定。這可以透過節點在類似Eigenlayer的服務上抵押來實現,它們的抵押可以被削減,並且證明交易已最終確定。如果交易以某種方式被還原,那麼這些節點將被削減,而這種削減可能被用來填補還原引起的漏洞。
這樣做的好處是交易可以在幾秒鐘內完成軟最終確定,大大加快了所有跨鏈Token轉移的速度。
這是Near正在努力實現的。與其需要將發送/銷毀的證明寫入以太坊L1並最終確定不同,相反,證明被寫入到一個NEAR快速確定性鏈中,最終確定性由Eigenlayer的質押者保證,如果有回滾或還原,他們將被削減。這條推文線程對它的工作原理進行了進一步詳細的介紹。
讓我們看看這個快速確定性層如何改進所有三種Token轉移方法:
1)Interop層已經是快速確定性層,由生態系團隊(如Polygon、zkSync等)管理。它允許生態系統內的轉帳在幾秒鐘內完成。
2)當Token在層之間進行鑄造/銷毀時,不必等待交易在以太坊上最終確定,這可能需要多達20分鐘,而快速確定性層可以證明交易已完成且不會被還原,並且如果有的話,進行證明的節點將被削減。然後,目標鏈可以信任該層,在其對交易進行證明後立即進行鑄造。
3)同樣,當網路信任彼此的橋時,它們可以透過這個快速確定性層解決Token轉移,而不是等待以太坊,並且可以以與Token發送相同的方式使用證明者。
優點:
-Token轉移可以在幾秒鐘內最終確定並完成。
缺點:
-不清楚削減如何用於修復由於雙倍花費引起的還原造成的漏洞。
-依賴一個不是以太坊的次要鏈來確保安全。
6、一個未來的錢包體驗
在實施了這些新的統一流動性改進之後,跨L2錢包要感覺像是在使用一個鏈上還有哪些步驟?剩下的兩個最大的問題是跨鏈Gas和將應用程式與此系統整合。
跨鏈Gas共享
如果用戶不斷在多個鏈之間移動,他們如何在所有這些鏈上獲取Gas來支付轉帳費用?
這正在透過帳戶抽象化(也稱為EIP-4337)和支付中心來解決。支付中心是一個可以要求為您支付交易費用的地址。一些錢包,如Avocado和Ambire,允許您預先加載Gas餘額,然後在任何鏈上使用此Gas,類似於預付借記卡。
另一個簡單的解決方案是Bungee Exchange Refuel,它將一條鏈上的Gas轉換成另一條鏈上的一點Gas。這比支付中心的UX差,會讓用戶在許多鏈上留下一點點Gas,但對於EOA帳戶(標準非智慧合約帳戶)來說是有效的。
應用程式支付Gas費用
支付中心還可以解鎖應用程式本身運行支付中心並支付所有用戶交易費用的能力。這將允許任何人在自己的鏈上使用應用程序,而無需橋接。應用程式可以透過其他方式獲利,例如銷售需要Token的高級商品,或擁有免費的演示模式,但必須支付完整體驗的費用。
使應用程式輕鬆利用統一的流動性
許多應用程式透過呼叫每個已知ERC-20上的balanceOf來載入用戶Token餘額,這是一個緩慢的過程,並且不支援跨鏈。它們基本上對可能從其他網路橋接的Token一無所知。
這個問題應該在錢包層面解決,這樣每個應用程式就不必為支援多鏈未來而重新發明輪子。 EIP-2256引入了一個標準函數,錢包可以實現它,這樣可以一次加載所有Token餘額,儘管目前僅支援單鏈。
如果一個錢包是多鏈感知的,並且知道從一條鏈到另一條鏈的橋接Token的方法,它可以立即告訴應用程式用戶擁有這些可橋接的Token,並且當用戶與應用程式互動時,錢包會立即在執行互動之前進行橋接。這可以使用上述任何一種機制來橋接Token。
7.小結
希望現在您對未來如何更順暢地在L2之間流動流動性有了更好的理解,以及錢包如何利用這些新技術完全擺脫鏈的束縛,從而使使用以太坊像在2020年那樣簡單,而不會受到高額Gas費用的困擾!