以太坊上的可逆交易標準:ERC-20R和ERC-721R

語言: CN / TW / HK

作者: Kaili Wang

來源: mirror

區塊鏈交易的不可更改性是福也是禍。

BAYC釣魚網路攻擊。PolyNetwork黑客攻擊。Harmony Bridge黑客攻擊。Ronin被盜案。僅2021年就有 140億美元 的加密貨幣被盜。這些——以及更多——都是確鑿的盜竊行為,但沒有“撤銷按鈕”(例如,信用卡付款逆轉),也不是每個人都有一個Jump Crypto在需要時 拯救 他們。

但如果存在一種可逆型別的代幣呢?

這是我們斯坦福大學的幾個研究員(Dan Boneh, Qinchen Wang和我)在過去幾個月裡一直在努力回答的問題。我們設計了與ERC-20和ERC-721相近的選擇式代幣標準,並支援逆轉交易(當有足夠的證據支援它時),寫了一篇關於它們的 論文 ,也實現了一些 原型 。我們分別稱這些代幣標準為ERC-20R和ERC-721R。

現在,你可能在想:可逆代幣?這難道不是違背了區塊鏈的目的嗎?事實上沒有。它並不意味著要取代ERC-20代幣或使以太坊可逆——它只是允許在交易後的短時間內對盜竊行為提出質疑,並可能予以恢復。

注意,交易在變得不可逆之前只能凍結很短的一段時間(比如3天)。ERC-20R資金在大部分時間裡都是不可逆轉的。

交易中的可逆性

在交易中,兩個可逆代幣之間的交換是即時的;如果一方要求凍結,那麼無論可逆時間段是否已經過去,都有可能從另一方收回資金。然而,將可逆代幣換為不可逆代幣是可能的;為了保護自己不被逆轉,交易可能只在可逆時間段之後才最終完成交換。這意味著可逆→不可逆的交換將有延遲,直到資金不可逆轉。因此,一旦兩個主要的代幣變成可逆的,其他代幣也會有很大的壓力變成可逆的。

根據實施情況的不同,立即清算可逆時間段已過的資產(例如清算3天前你收到的資產)是有可能的。在這種情況下,你的可逆代幣和不可逆代幣之間將不需要有延遲。

工作原理

逆轉交易的過程

假設攻擊者從受害者那裡竊取了資金。資金可能被進一步轉移到其他地址,如下面的圖1所示。會發生以下情況:

1、受害者要求凍結被盜資金。受害者向治理合約提交凍結請求,同時提交相關證據和一些資金。有爭議的交易必須是最近發生的(有一個固定的可逆時間段)。

2、法官接受或拒絕凍結請求。去中心化的法官群體投票決定是否凍結資產。審議時間最多也就一兩天。如果他們拒絕了請求,程式就會停止,受害者就會失去他們的資金。如果他們接受請求,那麼治理合約將凍結ERC-20R/ERC-721R合約。

3、執行凍結。對於NFT,它只是阻止NFT被轉移。對於ERC-20R,它將追蹤被盜資金並禁止這些資金轉移。請注意,只要賬戶所有者的餘額高於被凍結金額,仍然可以與他人進行交易。

4、審判。然後,雙方都可以向去中心化的法官群體提交證據。最終,法官做出決定,然後指示治理合約呼叫受影響的ERC-20R或ERC-721R合約上的reverse或rejectReverse函式。如果呼叫rejectReverse,則解除對有爭議資產的凍結。審判時間可能會很長,可能持續幾周。

5、逆轉(如果適用的話)。reverse函式將被凍結的資產送回受害者。

圖1:交易示例圖

追蹤被盜資金

當資產被盜時,很少僅僅放在一個地方。攻擊者經常把它從一個賬戶轉移到另一個賬戶。在這種情況下,攻擊者甚至可以監視記憶體池(mempool),並在看到凍結請求傳入時,在搶先交易中移動資產。我們避免這種情況的解決方案是在單筆交易中執行完整的鏈上凍結(及其計算),這樣攻擊者就不能“跑過”凍結。

但我們不能直接禁用每個接觸過這些資產的賬戶,那我們怎麼決定凍結哪些賬戶?幸運的是,如果是NFT,凍結非常簡單:只需要檢視當前擁有該NFT的人,然後凍結該帳戶。然而,貨幣的可分割性使得凍結ERC-20更加複雜。這些資金可以被分割到幾十個賬戶中,轉移到像Tornado這樣的匿名混合器中,或者兌換成另一種數字貨幣。如果它經過很多賬戶,至少其中一些賬戶和黑客有關。但有些賬戶很可能是無辜的,或者是提供合法服務以換取付款的商家。我們不可能總是正確地辨別每個賬戶的罪責。因此,我們提供了一個預設的凍結程式來追蹤和鎖定被盜資金。我們的演算法確保:

1、假設沒有銷燬,就會有足夠的資產被凍結以彌補失竊的金額。(銷燬的資產將從歸還的金額中減去)

2、賬戶的資金只會在與竊賊有直接交易往來的情況下才會被凍結

3、就交易圖而言,該演算法的執行時間複雜度合理

我們在 論文 中討論了更多的演算法細節。

去中心化的司法系統

這個謎題中更模糊的部分是關於“去中心化的法官群體”。這些法官是誰?他們如何投票?他們如何獲得獎勵?

這些最終取決於治理,也就是建立ERC-20R/ERC-721R例項的人。在我們的論文中,我們探討了如何阻止法官的不誠實和賄賂,獎勵機制,等等。我們強調,法官不能增加交易或任意修改一個人的餘額值。