以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > SOL > Info

Rollup Bridge 介紹(五):Hop Protocol 第二部分_TRANS:RAN

Author:

Time:1900/1/1 0:00:00

作者:NicLin,imTokenLabs資深區塊鏈工程師

本文受眾:區塊鏈開發者、對Rollup有所了解的區塊鏈愛好者

本篇是RollupBridge介紹的第五篇,主要用來補充第二篇HopProtocol第一部分的運作細節,建議先從第二篇看起:

以下所稱的L2皆指Rollup而非Plasma或側鏈以下所稱「資產」和「代幣」兩個詞指的是一樣的東西以下所稱「七天」和「Rollup挑戰期」兩個詞指的是一樣的東西以下示意圖中Arbitrum會是RollupA,Optimism會是RollupB,使用者要將資產從RollupA跨到RollupBHopProtocol第一部分中用fasttransfer代指跨Rollup的transfer,來和第一篇MakerBridge的fastwithdraw做區隔,不過本文會用transfer/withdraw代指一樣的事情Recap:Relaytransfer資料

為什么要relaytransfer資料?

因為transfer資料是客觀的資料,Hop合約不能隨便相信流動性提供者說他替誰先墊付了某筆transfer就撥款給Bonder,Hop合約只會認transfer資料來確認實際上transfer是否發生,所以Hop合約只有等到transfer資料真的抵達RollupB時才會撥款給Bonder。

對使用者來說,如果Bonder幫他墊付了,則他完全不需擔心transfer資料的relay過程。但如果Bonder下線了,使用者就要自己把transfer資料relay到RollupB來向Hop合約證明并取回自己應得的代幣。

注:Hop把transfer資料從Rollup送到L1的過程叫做commit。

Scroll在Sepolia推出Beta測試網:8月18日消息,Layer2解決方案Scroll宣布在Sepolia測試網面向開發人員和用戶推出Scroll Beta測試網。新功能或改進包括zkEVM升級、橋升級和基礎設施升級。

其中,zkEVM升級方面,通過預編譯升級改進了 EVM 兼容性,通過證明壓縮和聚合進行高效的鏈上驗證以及增強電路完整性;橋升級方面,Gas 成本可降低最高50%,并在L1和L2之間引入了無需信任消息中繼功能,消除了對可信中繼者的依賴;基礎設施升級方面,引入用于無信任消息傳遞的EIP-2718事務類型 L1MessageTx,擺脫了受信任的集中式中繼器,此外,簡化的電路容量檢查器可防止證明溢出,還增強了協調器功能。[2023/8/18 18:07:41]

Recap:BatchTransfer

HopProtocol第一部分有提到為了節省Bonder的成本,Hop設計讓transfer可以以batch的方式一次commit回L1,不需每一筆都commit一次。而batch的條件分別是(1)累積512筆transfer或(2)離上一次該Bondercommit的時間已經過了一天。

注1:條件(2)是為了在不打擾Bonder前提下讓使用者能夠自己完成relay的條件:當Bonder下線太久時,使用者可以自己把transfer資料commit到L1,再relay到RollupB。

注2:Bonder自己來commit時可以不受(1)限制,不管累積幾筆transfer,隨時都可以commit。

而batchtransfer也不會真的把batch里面所有transfer資料都commit進去,而是把transfer資料組成一個MerkleTree,然后只commitMerkleRoot。當要使用到transfer資料時,再提供MerkleProof來證明transfer存在于該MerkleTree里。

Layer2跨Rollup橋Orbiter Finance新增支持Scroll測試網:11月18日,據官方消息,Layer2 跨 Rollup 橋 Orbiter Finance 新增支持 Scroll 測試網。用戶可通過該跨鏈橋對 Scroll 測試網進行測試體驗。[2022/11/18 13:20:51]

注:實際上commit的函式名稱為commitTransferRoot。這里看到Hop用的是transfer的字眼,而待會可以看到在RollupB上的操作Hop會用withdraw,但其實兩個指的是一樣的。

接下來會搭配圖示介紹使用者和Bonder的操作流程及challenge機制。

使用者視角的運作流程

對使用者來說,使用Hop會有兩種結果:(一)Bonder為你在RollupB上墊付,或是(二)Bonder沒有墊付,導致使用者必須自己完成把transfer資料從RollupArelay到RollupB的旅程。

結果一:Bonder有墊付

Happycase:Bonder完成墊付

1stTx

使用者發起withdraw,他有兩個選擇:如果使用者有hUSDT,則他直接觸發L2_Bridge合約的send函式;如果他沒有hUSDT,則觸發AMM_Wrapper合約的swapAndSend函式,先用USDT去換成hUSDT。L2_Bridge合約會銷毀hToken,表示資產從RollupA離開,并emitevent,讓Bonder知道。

2ndTx

接著Bonder執行墊付,如果使用者要收hUSDT,則合約會直接鑄造hUSDT給使用者,如果使用者要收USDT,則會多一步,把鑄造的hUSDT去換成USDT再給使用者。

擴容方案Cartesi Rollups已準備好用于測試網,未來幾周會有序推出:基于Layer2Linux的基礎架構平臺Cartesi開發的擴容方案CartesiRollups已準備好用于測試網,未來幾周會有序推出。智能合約可以借助CartesiRollups在CartesiMachine(Cartesi虛擬機)上脫鏈運行,并且能改進智能合約的可擴展性和編程環境。Cartesi稱CartesiRollups能將底層每秒的交易數量提高至少100倍(在啟動分片時能達到1萬倍),同時團隊也表示CartesiRollups的缺點為沒有提供快速的最終性保證,在計算結果受到質疑的罕見情況下,交易在區塊鏈上最終確定結果可能需要更長的時間。另外團隊在開發CartesiRollups時開發的組件,包括狀態折疊、交易管理器、鏈上Rollups、Cartesi節點等,Cartesi將在開源許可下將它們作為獨立軟件組件發布。[2021/7/2 0:22:18]

結果二:Bonder沒有墊付

Unhappycase:使用者要自己relaytransfer資料到RollupB來領取資產

這邊的步驟是接續在使用者已經透過L2_Bridge合約申請withdraw并銷毀hToken之后。

1stTx

如果使用者的withdraw剛好是第512筆withdraw,則會直接觸發commitTransferRoot函式,將TransferRoot送到L1。

如果不是的話,則他需要等到離Bonder上次commit時間的一天后才能自己去執行commitTransfer,commitTransfer會去觸發commitTransferRoot函式,將TransferRoot送到L1。

imToken錢包負責人阿樹:哪個Rollup會勝出要看市場和用戶選擇:金色財經現場報道,由金色財經主辦的“2021共為·創新大會”4月11日在上海舉行,本次大會以“DeFi的創新進階”為主題。imToken錢包負責人阿樹在“探路:2021ETH 2.0的星辰大海”圓桌上表示,zk-Rollep沒有通用合約支持能力,zkSync目前主要是支付、轉賬功能,其最新路線圖是在5月份發布通用合約支持能力,8月份主網上線。 樂觀Rollup提款周期時間長。哪個Rollup會勝出要看市場和用戶選擇。Layer2發展的一個重點是交易所支持,但他們有智能鏈,是一個矛盾的地方。[2021/4/11 20:07:28]

2ndTx

接著就要等到RollupA的挑戰期過后,才能完成TransferRoot到L1的寫入。假設今天該TransferRoot已經經過了七天挑戰期,則任何人都可以去把TransferRoot的跨鏈訊息relay到L1_Bridge合約,這筆交易會同時把TransferRootrelay到RollupB。

3rdTx

通常等個五到十分鐘,TransferRoot就會被relay到RollupB上的L2_Bridge合約。等到TransferRoot被寫進L2_Bridge合約后,使用者就可以觸發合約的withdraw函式,提供MerkleProof去證明自己的withdraw存在在這個MerkleTree里,這時合約就會直接鑄造hUSDT給使用者,完成withdraw。

Bonder視角的運作流程

第一步:流動性提供者先墊付

第一步是Bonder發現使用者在RollupA上申請withdraw后,他在RollupB去觸發bondWithdrawalAndDistribute函式,墊付給使用者。

V神:Rollups預計在短期和中長期成為以太坊擴容的基石:以太坊創始人V神發布《不完全的Rollups指南》一文,其中介紹了Rollups技術、原理及其發展。他在最后說道:Rollups是強大的二層擴容范例,預計在短期和中期(也可能是長期)將成為以太坊擴容的基石。

Rollups已經看到了以太坊社區的巨大熱情,因為與之前的二層擴容嘗試不同,Rollups可以支持通用EVM代碼,允許現有的應用程序輕松遷移。為了做到這一點,Rollups做出了一個關鍵的妥協:不嘗試完全脫離鏈,而是把每個交易的少量數據留在鏈上。有很多類型的Rollup,在設計空間中也有很多選擇。

他指出Rollups仍處于發展早期,開發仍在快速進行中,但確實有效,其中一些(特別是Loopring、ZKSync和DeversiFi)已經運行了幾個月。在未來的幾年里,Rollup領域將會出現更多令人興奮的工作。[2021/1/5 16:27:16]

你可能會以為墊付是Bonder將自己的hToken轉給使用者。但實際上的過程是:合約會鑄造新的hToken給使用者,然后在合約的帳本上記錄下該Bonder因為這筆墊付所新增的負債。

第二步:等待TransferRoot被commit

Bonder可以等待湊滿512個withdraw再開始relaywithdraw資料。或是提前去RollupA的L2_Bridge合約觸發commitTransfer,開始relaywithdraw資料。當Bonder在RollupB的負債多到他沒辦法再墊付后,他就可能會提前去觸發commitTransfer。

第三步:在TransferRoot被寫進L1_Bridge合約前,先為該TransferRoot做擔保

因為等待RollupA挑戰期結束才能relayTransferRoot的時間可能太久了,會影響Bonder的資本效率,所以Hop做了一個trade-off:引入一個challenge機制。

Bonder可以為自己的TransferRoot擔保:不需要等到RollupA挑戰期結束并把TransferRoot寫入L1_Bridge合約,就可以直接去觸發bondTransferRoot,把TransferRootrelay到L2的合約。等待五到十分鐘TransferRoot寫進L2_Bridge合約后,Bonder就可以觸發settleBondedWithdrawal,將之前墊付所累積的負債抵銷。

Bonder在執行bondTransferRoot時要順便抵押TransferRoot總金額的110%。因此當一個Bonder擔保一個假的TransferRoot,意圖在RollupB抵銷負債被抓到時,他在L1會被沒收的金額會是他在RollupB抵銷負債金額的110%,所以想要造假是有風險在的。

注:TransferRoot總金額指的是這一批withdraw金額的加總。

但如同其他challenge機制,challenge也是有時效性的。目前如果Bonder觸發bondTransferRoot后,經過一小時都沒有人challenge的話,則該TransferRoot就會被視為合法,不能再被challenge。

第四步:Bonder完成TransferRoot的relay,將TransferRoot寫進L1_Bridge合約

等到RollupA挑戰期過后,Bonder就可以將TransferRoot的跨鏈訊息relay到L1_Bridge合約。但如果Bonder沒有被challenge的話,其實他沒有動機要完成relay。不過只要Bonder擔保的是正確的TransferRoot或是Bonder造假TransferRoot都有被抓到的話,沒有完成TransferRootrelay不會影響系統的安全性。

當TransferRoot被challenge

第一步:bondTransferRoot

首先,從BonderbondTransferRoot開始。

第二步:challenger抵押TransferRoot總金額10%來挑戰TransferRoot

如果challenger發現Bonder產生的TransferRoot不合法,例如里面偷偷夾帶了不存在的withdraw,則challenger可以透過抵押TransferRoot總金額的10%來進行challenge。

Challenge被申請后,L1_Bridge合約會把Bonder擔保的金額新增到Bonder的負債。

注:如果沒有被challenge,系統就會放行,不以增加Bonder負債的方式來扣住Bonder資產。

如果challenge成功,則負債會保留,表示Bonder的錢被系統沒收;如果challenge失敗,系統會從Bonder負債中減去原本擔保的金額,表示系統將錢還給Bonder。

第三步:等待RollupA挑戰期結束,將真正的TransferRoot寫進L1_Bridge合約

等到RollupA挑戰期過后,Bonder或Challenger就可以將TransferRootrelay到L1_Bridge合約。但還不能resolvechallenge,Hop有設定一個challengeResolutionPeriod來確保challenge可以resolve時,Rollup挑戰期已經結束,意即確保TransferRoot已經被寫入L1_Bridge合約里了。

注:目前challengeResolutionPeriod是十天。

第四步:等待challengeResolutionPeriod結束

真正的TransferRoot訊息抵達后就可以驗證Bonder當初擔保的TransferRoot是不是對的,決定challenge是否成立。

如果challenge不成立,系統會從Bonder負債中減去原本擔保的金額,表示系統將錢還給Bonder。而Challenger的抵押則會被沒收。

如果challenge成立,則Bonder的負債會保留,表示Bonder的錢被系統沒收。Challenger除了拿回自己的押金,還會獲得Bonder擔保金額當作challenge獎金的那10%。

注:獎金其中有一半會被銷毀,目的是避免Bonder自己challenge自己,同時拿回完整的押金和獎金。

風險評估

使用者風險

如果Bonder有墊付給使用者,則使用者成功完成withdraw,皆大歡喜。

如果Bonder沒有墊付給使用者,則使用者必須要自行完成TransferRoot的relay,這會需要訊息能夠正確地從RollupA->L1->RollupB傳遞。

不過只要Hop合約和RollupL1<->L2messegebridge都有順利接上,且Rollup都正常運作,就能夠達成,這是一個相對可靠的安全假設。所以對使用者來說,風險是相對小很多的。

Bonder風險

因為Bonder們的錢都鎖在同一個合約,所以假設有challenge沒被抓到,則代表攻擊者可以憑空降低自己的負債、提走不該提走的錢,這對所有Bonder都會造成損失。

而目前一小時的challengewindow其實是相對短暫的,再加上一個withdraw可以是從任意?Rollup轉任意資產到任意其他Rollup,要假設整個系統內所有的withdraw都能被監控會是一個具有挑戰性的要求。

風險提示:本文內容均不構成任何形式的投資意見或建議。imToken對本文所提及的第三方服務和產品不做任何保證和承諾,亦不承擔任何責任。數字資產投資有風險,請謹慎評估該等投資風險,咨詢相關專業人士后自行作出決定。

Tags:TRATRANSRANFERBgogo TradingTransferChainTRANS價格Make A Difference Token

SOL
Bitfinex 項目周報(0411-0417)_INE:bit幣最新價格

Bitfinex一周重要信息。Bitfinex希望薩爾瓦多的「比特幣債券」只是其平臺上眾多代幣化產品之一金色財經消息,Bitfinex希望薩爾瓦多的「比特幣債券」只是其平臺上眾多代幣化產品之一.

1900/1/1 0:00:00
歐易上線Nym (NYM) ,同時將開啟高息活動的公告_NYM:BTC

尊敬的歐易用戶: 歐易上線Nym(NYM),具體時間如下:NYM充值:4月15日10:00(HKT)NYM/USDT的開盤時間:4月15日12:00(HKT)NYM提現:4月18日18:00(H.

1900/1/1 0:00:00
BKEX 關于\"GDDY充值福利\"活動的公告_KEX:BAL

親愛的用戶: 為回饋廣大用戶,BKEX現開展"GDDY充值福利"活動詳情如下: 一、活動時間 2022年4月16日18:00-4月21日18:00BKEX Global將于今日18:30新增LO.

1900/1/1 0:00:00
《雪梨迎新節》活動獎勵發放完畢_PEAR:Paragon Capital

親愛的PEARCOIN用戶:雪梨交易所《“雪梨迎新節”,一起瓜分100,000U》活動已結束,雪梨已經對滿足活動要求并申請領取獎勵的全部有效用戶發放獎勵,您可在贈金賬戶查看獎勵明細.

1900/1/1 0:00:00
Gate.io Daily HODL GT & Earn USDG No.389, up to 6% APR_THE:比特兒官網gate.io

Gate.ioDailyHODLGT&EarnUSDG#389willlaunchat4:00UTConApr16atGate.io''s“HODL&Earn”.

1900/1/1 0:00:00
明星項目周報 | 四大Layer2之一或將于下個月發幣;Uniswap Labs成立風投部門(4.11-4.17)_ETH:3WEB價格

4月11日-4月17日一周時間內,明星項目進展中值得關注的事件有:彭博社:AvaLabs將以52.5億美元估值融資3.5億美元;Cosmos開發公司Ignite推出1.5億美元Web3加速器;E.

1900/1/1 0:00:00
ads