Arbitrum Rollup是一種由鏈上以太坊合約管理的鏈下協議。 dApp開發者有一組用Solidity編寫的合約,開發者將合約編譯到一個Arbitrum 虛擬機(VM)中,以便在Arbitrum Rollup上運行。我們希望他們跑得快。

Rollups的基礎

讓我們從基礎開始。 VM的狀態組織為默克爾樹,因此可以計算VM狀態的加密哈希。在協議的任何一點上,VM的某些狀態都是被完全確認。它的哈希存儲在鏈上。

協議的參與者可以做出一個有爭議的斷言(DA),該斷言聲稱以某種狀態哈希開始,在一些技術前提下,VM可以執行指定數量的計算步驟,從而產生指定的新狀態哈希,並且VM在該計算期間進行指定的付款並發出指定的日誌事件。 DA可能是有效的(即真實的)或無效的。制定DA 的一方將被要求為DA 的有效性押金。

一個有爭議的斷言為協議創建一個決策點

如左側所示,有爭議的斷言創建了協議最終必須解析的邏輯決策點。如果DA有效,系統將在右上角輸入一個新的狀態,帶有一個新的狀態哈希,以及DA中指定的副作用(支付和日誌)。或者在另一個分支中,DA是無效的;它被拒絕了,狀態保持不變。

之前的Arbitrum協議

原來的Arbitrum協議一次處理一個爭議斷言。 DA將會被某些人聲明,然後一個挑戰期就會過去,在此期間任何人都可以挑戰DA 。如果沒有異議,DA將得到確認;否則將運行爭議協議並取消DA。

這很簡單,但有兩個缺點。首先,因為一次只能有一個DA是處於活動狀態的,所以VM的進程速度將受到限制。從本質上講,進程必須在每個挑戰期間停止。第二,惡意行為者可以通過故意挑戰該VM創建的所有DA來凍結VM。這將使攻擊者付出一系列代價,但如果他們願意支付這種費用,至少在某些情況下,他們可以在很長一段時間內拖延進展。

新的,已經改進的Arbitrum協議

新Arbitrum Rollup協議解決了這兩個缺點。多個DA可以被“流水線化”,這樣VM就可以像驗證節點模擬VM的計算一樣快速地進行。第二,正如我們將在下面看到的,一個“惡意行為者不能減緩進展,他們只能暫時推遲鏈上對結果的識別,對於誠實行為者來說,這些結果已經是“去信任的結果” 。

這是怎麼做到的呢?

每個狀態最多可以有一個DA跟隨它。如果一個DA沒有跟隨狀態,那麼任何人都可以創建一個跟隨它的DA,從而創建一個新的分支點。其結果可能將會是一棵可能的未來樹。

可能的未來樹

質押

協議的另一個重要部分是質押。任何人都可以在樹上的一個方盒子上質押。通過對一個方格進行質押,用戶可以斷言這個方格最終會被協議確認。用戶斷言在從當前狀態到自己所放置的方格的路徑上的每個DA 處都採用了正確的分支。如果錯了,用戶可能會失去你的質押保證金。

質押操作不能被撤銷。用戶可以把自己的保證金移到右邊——在每個分支點選擇上或下——但是不能移到左邊,因為那將等於撤銷自己之前做出的質押承諾。

提出爭議主張的一方必須在該DA 的“DA 有效”繼任者上進行質押。通常,他們可以通過將現有的移到右邊,以將其放到所需的後繼方塊上來滿足這一要求。 (在極少數情況下,他們無法做到這一點,他們可以在所需的方格上押下額外保證金。但請注意,他們將被押在兩條不一致的路徑上,因此他們最終將不得不失去至少兩個質押中的一個——自相矛盾並非明智之舉。)

關於質押的另一個細節是:如果用戶所質押的方塊被確認並成為被接受的歷史記錄,用戶可以選擇收回自己的質押保證金。這意味著,如果用戶是正確的,就可以保持自己的本金,並等待系統“追上”自己,然後用戶就能夠收回自己的本金。

一個更典型的狀態樹-一系列真實的斷言

此時,用戶可能會擔心可能性樹可能變得非常大和其分支。這種情況在實踐中不太可能發生,因為它需要多方在相互不一致的結果上進行質押。只有一個可能是正確的,其他所有人都會失去他們的質押保證金。更有可能的是,“樹”實際上是一個有效的DA鏈,一個接一個,所有的質押都在相同的結果上。

質押的截止日期

我們需要係統在時間過長之前對每個爭議斷言做出決定。因此,當一個DA被添加到鏈中,創建一個分支點時,一個截止日期就與這個DA相關聯。在未來,當截止日期足夠長時,每個人都有時間檢查DA是否有效,如果他們選擇這樣做,就可以在DA的結果上獲得鏈上交易。如果任何人想要承擔支持或反對該DA有效性,他們必須在截止日期之前這樣做。 (截止日期後仍然可以引入質押保證金,但他們不參與決定是否支持該DA。)一旦截止日期到了,所有與決定DA有關的質押保證金都將被知曉。

爭議

如果Alice和Bob被押在不同的方格上,那麼兩件事之一將是真的。要么會有一條向右移動的路徑,從它們中的一個到另一個——這意味著它們的主張相互一致——要么就沒有這樣一條路徑。如果沒有一條向右移動的路徑連接Alice和Bob的方格,那麼它們一定在某些方面存在分歧。它們之間總會有一個獨特的爭議點——一個獨特的DA,其中一個被質押在此DA是有效的,而另一個被質押在它上是無效的。

Alice和Bob正準備爭議

當雙方發生爭議時,系統可以在雙方之間啟動一個交互式的爭議解決協議。

爭議解決協議的結果是,將發現一方是不正確的。該方將失去他們的質押保證金。質押保證金將從它所在的方格上被清除。一部分將交給爭議的另一方,其餘的將被燒毀。

多個爭議可以同時進行,但每個要質押的人一次最多只能捲入一個爭議。因為輸家的質押保證金將被抹去,每一次爭議都會減少系統中分歧數量。失去質押保證金的當事人如果願意,可以重新質押,但新的質押保證金將無法影響已經過了質押期限的DA。這樣做的結果是,在DA的質押期限過去後,爭議將逐漸消除關於如何對待DA的任何分歧。

確認結果

一旦一個DA的質押截止日期已經過去,並且所有剩餘的及時(在定質押截止日期之前)的質押都位於該DA的同一分支上,系統就可以確認該DA的結果。 DA要么被接受,要么被拒絕,當前狀態移動到DA右側的適當方塊。如果DA被確認為有效,其副作用(例如付款)將在鏈上實現,這就是VM的狀態如何前進。

通常情況下,各方都會誠實行事,因為他們不想因為質押於虛假聲明而失去自己的利益。在單個鏈中,只有有效的DA將被斷言,沒有人將在任何DA的無效分支上質押。在這種情況下,每個DA都可以在其質押期限到期時立即被確認。

為什麼它是去信任的

Arbitrum Rollup的一個重要屬性是它是去信任的——誠實的一方可以迫使VM正確運行並取得進展。為什麼呢?想像一下,Alice總是在每個DA的真實分支上進行質押,如果樹是空的,她就斷言DA。

因為Alice被質押在了真正的分支上,她會贏得她加入的每一場爭議。如果其他人不同意Alice,他們(a)要么在與第三方不相關的糾紛中失去他們的質押保證金,(b)要么最終與Alice發生爭議,並將他們的保證金輸給她。不管怎樣,所有不同意Alice的人最終都將失去他們的質押保證金。只有認同Alice的才能存活下來,因此Alice 穿過樹的路徑最終將是唯一一個及時對其進行質押的人——Alice的路徑也將得到確認。

如果Alice是誠實的,不管其他人怎麼做,綠色方塊最終都會被確認

因為系統在這種情況下是去信任的,如果Alice質押在一個正方形上並且她知道到達那個正方形的路徑是真實的,Alice可以確定她所在的那個正方形最終會被確認。對Alice來說,這條路徑與最終路徑一樣好。

即使用戶沒有在一條路徑上質押,但如果看到有幾個人質押在這條路徑上,並且用戶本人相信這些人中至少有一個是誠實的——這條路徑與最終路徑一樣好。

去信任結果的好處

為什麼去信任的結果是有價值的?這個經典的例子來自以前關於其他rollup協議的討論。假設一個VM要向Alice支付一筆錢。支付事件是在誠實的路徑上進行的,但在支付發生的方格上進行鏈上確認還需要一段時間。

去信任的結果給了Alice可以立即拿到自己的錢。如果Bob有一筆沒有質押的錢,他可以立即把它給Alice,作為交換,Alice將未來尚未確認的款項分配給Bob(加上付給Bob一筆最低費用)。 Bob可以通過質押誠實的結果來確保這一點——然後他就會信心十足的等待付款最終會被確認。不只是Bob能這麼做。任何有保證金的人都可以以同樣的方式借給Alice和其他像她一樣的人。這些人可以通過提供更低的費用來相互競爭,降低Alice獲得保證金的成本。

關鍵在於,這種市場機制的可行性依賴於去信任的最終結果。如果“每個人”都已經知道某件事最終會被確認,那麼鏈上確認的延遲就不那麼麻煩了。

這不僅適用於支付,也適用於VM所做的其他事情。如果VM將發出一個日誌項,宣布發生了一些事情,那麼去信任的結果意味著任何人都可以確信該日誌項將在鏈上被識別。

延遲攻擊

因為這個系統是去信任的,惡意行為者不能強迫產生一個不正確的結果。他們所能做的就是減緩進程。這樣做需要他們犧牲質押保證金,如果質押保證金很大的話,這將付出昂貴的代價。

假設有人想要發起延遲攻擊,他們願意犧牲質押保證金。它們能造成的最嚴重傷害是什麼?

首先要注意的是,惡意行為者不能阻止誠實行為者繼續建立樹的誠實分支。他們也不能阻止誠實信任者在最終確認誠實的分支時獲得去信任的信任。

攻擊者所能做的就是在虛假分支上質押,以延遲對誠實路徑的鏈上確認。他們放置的每一質押都會對誠實行為者造成更多的爭議,誠實行為者會拿走攻擊者的一大部分質押保證金。一旦攻擊者的所有質押保證金都被拿走,鏈上進程將繼續。

如果攻擊者在錯誤的結果上設置多個風險怎麼辦?那麼這些質押保證金將在爭議中一個接一個地被拿走。如果有多個人參與到誠實的結果中,那麼這些人都可以與攻擊者展開爭議,並行地拿走攻擊者的質押保證金。請注意,每個人都將清楚地看到正在發生的事情,許多人將想要參與到行動中,把質押保證金放在真實的結果上,這樣他們就可以加入到人們利用爭議來搶奪攻擊者的質押保證金的狂熱之中。如果有K個人在誠實的一方質押,攻擊者將花費K個質押保證金來購買一段爭議延遲。如果攻擊者下了更多的質押保證金,這可能會吸引更多誠實的質押者。這對攻擊者來說是一個糟糕的動態。

優化

各種優化都有可能減少操作協議所需的鏈上記賬量,降低鏈上gas成本。