作者: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。
OP Labs:EIP-4844將大幅降低Rollup費用,使以太坊能夠在保持去中心化的情況下擴容:7月30日消息,OP Labs推特發文稱,EIP-4844將大幅降低Rollup費用,使以太坊能夠在不犧牲去中心化的情況下擴容。近期來自OP Labs、Coinbase和ConsenSys的研究人員和開發人員參與了社區第二次會議,討論了公共開發網絡、收費市場設計和同步架構等話題。今年3月,以太坊創始人V神(Vitalik Buterin)在推特上分享了關于其和幾位開發者共同提出的EIP-4844提案,該提案建議用proto-danksharding代替擴容解決方案Danksharding。該提案致力于在尚未實際實施任何分片的情況下,部署構成完整Danksharding規范的大部分邏輯和交易格式及驗證規則。Proto-danksharding引入的主要特性是新的交易類型,稱之為攜帶blob的交易。攜帶blob的交易引入一種新的交易格式,其中包含大量數據,EVM執行無法訪問,但其提交可以訪問。提案提議每30天自動刪除blob數據,以防止網絡對數據和內存存儲的要求過大。Proto-danksharding部署后,所有驗證者和用戶仍須直接驗證完整數據的可用性。[2022/7/31 2:49:01]
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。
Layer 2 Rollup高性能框架Godwoken上線主網測試版本:據官方消息,Nervos 上完全兼容以太坊的Layer 2 Rollup高性能框架Godwoken上線主網測試版本,目前已開放Godwoken白名單計劃,開發者可申請參與主網測試。
Godwoken 為CKB提供了擴展能力以及基于賬戶的編程模型,使得以太坊系的DApp均可以接入到Nervos的Layer 2中來。[2021/11/4 21:25:57]
注2:Bonder自己來commit時可以不受(1)限制,不管累積幾筆transfer,隨時都可以commit。
而batchtransfer也不會真的把batch里面所有transfer資料都commit進去,而是把transfer資料組成一個MerkleTree,然后只commitMerkleRoot。當要使用到transfer資料時,再提供MerkleProof來證明transfer存在于該MerkleTree里。
注:實際上commit的函式名稱為commitTransferRoot。這里看到Hop用的是transfer的字眼,而待會可以看到在RollupB上的操作Hop會用withdraw,但其實兩個指的是一樣的。
接下來會搭配圖示介紹使用者和Bonder的操作流程及challenge機制。
使用者視角的運作流程
對使用者來說,使用Hop會有兩種結果:(一)Bonder為你在RollupB上墊付,或是(二)Bonder沒有墊付,導致使用者必須自己完成把transfer資料從RollupArelay到RollupB的旅程。
結果一:Bonder有墊付
跨Rollup轉賬應用HopProtocol已支持L2擴容方案Arbitrum:9月17日消息,跨Rollup轉賬應用HopProtocol已支持L2擴容方案Arbitrum,目前僅支持USDT與USDC轉賬,將在下周開放對ETH的支持。用戶可向hUSDC/USDC和hUSDT/USDT流動性池添加流動性,并通過HopProtocol的橋接合約在L1上鎖定USDC或USDT,在Arbitrum上鑄造hUSD或hUSDT。目前HopProtocol支持的網絡包括以太坊主網、Polygon、xDai、Optimism以及Arbitrum,用戶已經可以通過Hop進行USDC、USDT在Arbitrum與其他支持的擴容網絡之間的轉賬。[2021/9/17 23:31:34]
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再給使用者。
結果二:Bonder沒有墊付
Unhappycase:使用者要自己relaytransfer資料到RollupB來領取資產
ZKSwap開發負責人 Alex Lee:構建支持通用 EVM 的 rollup 擴容解決方案 ZKSwap在路上:據官方消息,2021年04月12日晚,由Gate.io主辦的直播專訪節目《酒局幣赴》邀請到ZKSwap開發負責人 Alex Lee直播分享近期最新發展。直播期間Alex與Gate.io合伙人酒兒就面對市場競爭格局產生變化后,ZKS將如何把握機遇與挑戰進行了探討與交流。
Alex 表示,目前,Layer2賽道已經是一片繁榮了,技術上不斷創新,各種產品也層出不窮。ZKSwap推出的 Zkspeed 擴容方案兼顧了 ZK-Rollup、Validium 和 Optimistic rollup 方案的特點。即實現所有與 Layer1 交互的交易數據全部上鏈(ZK-Rollup),把單純 Layer2 的交易數據存放在鏈下(Validium),交易 hash 數據上鏈,同時 ZKSpeed 也會提供一個完全上鏈的版本,這樣可以實現更高的安全性,并提供零知識證明保證狀態轉換的有效性。雖然目前 ZKSwap 的方案還不兼容 EVM,但ZKSwap 團隊的愿景正是構建一個支持通用 EVM 的 rollup 擴容解決方案,使得其他應用無需重新編寫智能合約就能實現快速遷移,目前 ZKSwap 團隊已經投入研究,并取得了一些進展。[2021/4/12 20:12:00]
這邊的步驟是接續在使用者已經透過L2_Bridge合約申請withdraw并銷毀hToken之后。
1stTx
如果使用者的withdraw剛好是第512筆withdraw,則會直接觸發commitTransferRoot函式,將TransferRoot送到L1。
V神:ZK Rollup和Optimistic Rollup均取得巨大進展:以太坊創始人V神剛剛發推表示,Rollups(包括ZK Rollup和Optimistic Rollup)已經存在并繼續取得巨大進展。雖然分片(sharding)仍在快速發展,但我們并不依賴于分片來實現1000+的鏈上TPS。在eth2中,分片和Rollups的縮放增益將成倍增加。[2020/5/21]
如果不是的話,則他需要等到離Bonder上次commit時間的一天后才能自己去執行commitTransfer,commitTransfer會去觸發commitTransferRoot函式,將TransferRoot送到L1。
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函式,墊付給使用者。
你可能會以為墊付是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:TRARANTRANSANSUltraNote CoinBrankTransaction Service feeAnswerly
本文來自TheBlock,原文作者:LucyHarley-McKeownOdaily星球日報譯者|余順遂游戲開發商和發行商BisonicInc.和MagicMachine周三宣布已經完成一輪土地.
1900/1/1 0:00:00最新消息,虎符交易所將于4月12日15:00(UTC+8)上線穩定幣項目USN。與此同時,虎符將在HooPool同步開啟USN專場活動,支持質押USN收獲BOX農耕收益.
1900/1/1 0:00:00一、項目介紹 Etermon是一款基于區塊鏈的多人策略游戲,目的是在NFT場景中創建一個真正的游戲社區.
1900/1/1 0:00:00親愛的CCFOXer:近日CCFOX合約交易量再創新高,為感謝新老用戶的支持,平臺將于新加坡時間2022年04月20日上線充值返利和USDT本位合約交易賽等系列活動.
1900/1/1 0:00:00公告編號2022041301各位關心ZBG的投資者們和項目方:Cosmos(ATOM)?網絡升級已完成,ZBG平臺現已恢復ATOM的充提幣.
1900/1/1 0:00:00ThePortugueseTelegramchannel,Gate.iohaschangeditsname.TheformerPortuguesegroupwaschangedtoGate.io.
1900/1/1 0:00:00