天天看點

Rollup交易的固化流程1. 引言2. Sequencer’s Promise3. Transaction Order Finality4. Execution Settlement5. Rollup交易的固化流程小結參考資料

1. 引言

前序部落格有:

  • Rollup Decentralization
  • Rollup去中心化

Rollup交易的固化流程不同于PoW的eventual consistency最終一緻性,也不同于以太坊PoS協定的等待X個确認,two consecutive supermajority votes(epochs)之前的交易即已固化。

Rollup交易的固化流程1. 引言2. Sequencer’s Promise3. Transaction Order Finality4. Execution Settlement5. Rollup交易的固化流程小結參考資料

Rollup交易的固化需要經曆3個階段,才能認為該Rollup交易是settled、final and irreversible:

  • Sequencer’s Promise:Sequencer向使用者承諾其交易将被打包和執行。
  • Order Finality:使用者交易具有相對于其它交易的最終排序。
  • Execution Settlement:bridge合約信服某使用者交易的final execution。

本文讨論的Rollup交易固化适用于Optimistic Rollups和Validity Rollups。

2. Sequencer’s Promise

Rollup交易的固化流程1. 引言2. Sequencer’s Promise3. Transaction Order Finality4. Execution Settlement5. Rollup交易的固化流程小結參考資料

Sequencer為Rollup層唯一對鍊下資料庫的pending state具有知情權的一方,Sequencer有權來對pending交易進行排序。

交易生命周期始于:使用者在将交易傳給Sequencer之前,對該交易進行簽名。

Sequencer的響應可為:

  • 1)對交易的predicted execution
  • 2)promise當該交易settled as final(固化)時,該執行将維持

該promise是可能的,因為Sequencer為唯一具有所有pending交易list的一方。Sequencer有權決定交易的排序。是以,僅Sequencer對鍊下資料庫的pending state 知情。

稱其為promise,是因為Sequencer可向使用者傳回invalid response 并 忽略該交易。

Rollups有2種方式來對抗lying and malicious Sequencer:

  • 1)Signed receipts:Sequencer需傳回具有其簽名的receipt,可作為後續其撒謊的懲罰依據。
  • 2)Forced inclusion:使用者可跳過Sequencer,自己向bridge合約送出交易。

雖然Sequencer的角色是為決定交易執行的最終順序提供fast path,但Sequencer不具有的唯一決定權。最終由bridge智能合約決定所有pending交易的最終順序。

也就是說,隻要及時釋出(Arbitrum大約24小時),bridge就會優先考慮Sequencer提出的一批交易。

3. Transaction Order Finality

Rollup交易的固化流程1. 引言2. Sequencer’s Promise3. Transaction Order Finality4. Execution Settlement5. Rollup交易的固化流程小結參考資料

bridge合約決定交易的最終順序,并賦予任何人可重構出整個鍊下資料庫的能力。

bridge合約及其所在的L1鍊,實作了資料可用層的功能,進而可保證:

  • 資料可用性:A data item was published at a point in time and it was available for all online parties to fetch it。

對于Rollup場景來說,将batch transactions送出到bridge合約,使得任何誠實的使用者、Executors、Sequencers可擷取整個transaction list。

新的batch transactions将附加在Rollup的 canonical chain of transactions之後。任何人可在其本地的資料庫備份的基礎上執行新交易,并計算新的鍊下狀态。整個流程是确定性的,基于相同的交易所有人都獲得同樣的狀态。

隻要相信有“one honest party”會入場并enforce execution settlement,則可在bridge合約之上建構協定,僅依賴于最終順序。

注意:

有的Rollup方案會直接跳過本階段,由Sequencer将交易直接發送給Executors,這樣做的優劣勢本文不展開讨論。

4. Execution Settlement

Rollup交易的固化流程1. 引言2. Sequencer’s Promise3. Transaction Order Finality4. Execution Settlement5. Rollup交易的固化流程小結參考資料

最終目的是讓合約信服有序交易的執行結果。

execution settlement的唯一目的,是讓合約信服,而不是讓外部方或共識協定信服,有序交易的最終執行結果。

此時:

  • bridge已對所有執行交易 進行了排序
  • 任何人,包括使用者本人,都可據此計算出一個資料庫備份

不知道資料庫目前狀态的僅有bridge合約,因為bridge合約計算資源有限,無法重放處理所有pending交易。

由Executors來送出新的資料庫狀态 以及 相應的證據。Executors可決定處理一個或多個交易batch,唯一的限制是執行必須遵守交易的最終順序。證據可以是欺詐證明或有效性證明。

execution settlemen的唯一原因是授權bridge合約執行side-effecct,包括從鍊外系統向L1智能合約轉移資金或發送消息。隻有當bridge确信相關交易的執行時,才能執行side-effect。

換言之,隻要确信所有交易都是有效的,并且執行正确,bridge才會釋放資金。

5. Rollup交易的固化流程小結

Rollup交易的固化流程1. 引言2. Sequencer’s Promise3. Transaction Order Finality4. Execution Settlement5. Rollup交易的固化流程小結參考資料

Rollup最有趣的一點在于,其将交易排序和執行進行了分離:

  • 首先排序:所有方可确定完全相同的transaction list,并本地計算資料庫的新狀态。
  • 延遲執行:整個流程集中在:讓bridge合約信服,在該transaction list執行之後,的資料庫新狀态。

這樣分離的好處在于,在bridge合約 settle該執行之前,任何人都可确定性的計算出資料庫的将來狀态。

排序與執行之間的延遲可能很大,如樂觀證明Rollup中:

  • transaction batch送出的頻率為每30秒
  • order finality的确定時間小于10分鐘
  • 而execution settlement最少需要2周

本文的關鍵内容在于:

  • Transact after ordering & before settlement:隻要信任存在某honest party會入場 并 enforce eventual execution settlement with the bridge合約,則agents can act upon the unsettled database state once the ordering is final。

假設使用者需要從某樂觀Rollup中快速提款到以太坊,其需要3步:

  • 1)使用者發送 funds + fee:使用者選擇某liquidity provider(LP)并發起一筆交易将資金轉移給LP。該交易在Rollup上确認,并将會把資金發送給以太坊上某特殊仲裁合約。
  • 2)LP等待order finality:LP在決定在以太坊鍊上給使用者發送資金之前,将等待該Rollup交易達到order finality。
  • 3)LP或使用者獲得資金:當該Rollup交易execution is settled,使用者資金将到達“以太坊上某特殊仲裁合約”。若LP正常履約(已給使用者轉賬),則“以太坊上某特殊仲裁合約”會将資金給LP,否則,會将資金返還給使用者。

在上述例子中,使用者可從LP收到資金的樂觀用時為<10分鐘,且LP有信心其将在約2周内收回相應資金。若存在問題且LP無法履約,則使用者将在約2周後收回資金。

總結為:

  • 對于任意将交易資料發送到bridge合約的Rollup方案,都可實作order finality。

不僅Arbitrum 和 Optimism 這樣的樂觀Rollup方案支援order finality,Scroll、Polygon Hermez、zkSync等Validity Rollup方案 也支援order finality。

本節重點讨論了樂觀Rollup如何利用order finality來繞過execution settlement delay(約2周)。

但是對于Validity Rollup方案,一旦交易被ordered for execution,使用者就可認為該交易是final的。這為Executors提供了回旋的空間,讓Executors在整理validity proof并settling the execution之前,等待有序的交易堆積起來。

參考資料

[1] Patrick McCorry 2023年2月21日部落格 Tiers of Transaction Finality for Rollups

繼續閱讀