不可逆到可逆的機制,誰能發起?如何凍結?誰能仲裁?

作者:十四君

原用標題:【前沿解讀】斯坦福研究員論文-以太坊可逆交易標準 ERC20/721R 的機制、創新與局限

封面: Photo by GuerrillaBuzz Crypto PR on Unsplash

區塊鏈交易的不可逆特性,一度被形容為是唯一的人類對上帝’ 時間’ 的低劣仿製品,然而也正是因為不可逆,導致大量黑客攻擊資金被盜無處解決,也被趣稱為 web2 向 web3 最成功的轉型:黑客。

而斯坦福大學研究員(kkwang@cs.stanford.edu 等 3 人)於最近 9.9 號最新發布的論文,便是實現了兩種可逆交易的標準命名為 ERC20R/ERC721R。其引入了一個 “去中心化法庭” 機制,資產被盜時受害者可申請凍結資產,而” 去中心化法庭 “可通過投票來決定是否凍結,凍結資產後 “法庭” 將基於雙方的證據來決定資產歸屬,以解決糾紛。

然而不可逆到可逆,伴隨的是大量複雜的問題

  • 誰能發起?惡意誣告阻塞資金怎麼辦
  • 如何凍結?資金高速流轉,涉事廣泛,惡意投毒如何公證?
  • 誰能仲裁?惡意法官,賄賂法官怎麼辦?

本文通過解讀 ERC20/721R 的實例代碼,以及對其算法實現探討可逆交易的探索挑戰。

本文 4000 字,閱讀需 8 分鐘

1、可逆交易的發展簡史

在 2020 年區塊鏈上合計 78 億美元被盜,到 2021 年則合計 140 億美元被盜,在過去一年裡也有超過 1 億美元的 NFT 受到釣魚等問題被盜。

由此可見一旦真正能解決這樣的問題,其標準的價值將有多大。

其實早在 2015 年就有讓交易可逆的討論提案了,這些年裡既有部分項目嘗試使用,也有 Vitalik 乃至 ERC20 的原作者之一也參與其中。

2015 年,Reversecoin 是世界上第⼀個具有可逆交易的加密代幣,它在交易發起和確認之間引⼊了⼀個超時時間。每個帳⼾都有⼀個離線密鑰對,使所有者能夠撤銷交易或⽴即確認交易。但其實這並不能阻⽌許多現代黑客攻擊:攻擊者要么竊取確認密鑰,要么欺騙⽤⼾使⽤確認密鑰來再次確認惡意交易。

2018 年,ERC-20 標準的共同創建者之⼀ (Dean Eigenmann) 提出了可逆 ICO 的概念,投資者可以獲得與最近投資時間成反⽐的退款⾦額。儘管這可以防⽌單個 token 在發佈時的騙局,但它不能防⽌ token 後續惡意交易。

而 2022 年也出現有 refunds-for-nfts(可退款的 ERC721r 標準)

而本論文中最重要思想是藉鑑了 2018 年 vitalik 提出的設想,基於 Dao 治理的可逆 ERC20 標準

2、ERC20/721R 的實現原理

論文實現理念的核心是:基於” 去中心化法庭 “治理的 Token

基於 ERC20/721R 標準實現的 token,其交易在鏈上發布後都有資格在短時間內撤銷。但是爭議期過後,交易不能再撤銷。而在短暫的爭議期內,發送方可以通過說服一組離散抽取的法官來首先凍結有爭議的資產,然後再說服他們撤銷交易來請求撤銷交易。

看似一段話就描述完了,但其實中間存在非常多的風險性問題

  • 決策前:誰能提案,誰能凍結?隨意的凍結將會斷絕信任也將阻塞資金
  • 決策中:誰能參與,鏈上鍊下?法官可能被賄賂,法官的公正動機
  • 決策後:幣種跨越,如何歸還?資金可能很離散,也可能殃及無辜

而 20/721R 的架構實現細節中,也帶有對其不少困境的答案。

2.1、ERC20/721R 標準的參與角色

合計有 4 種角色參與其中,受害人、治理合約、法官群體、資產合約

  • victim 是某受害者,即其 Token 的某個歷史持有者,可以向治理合約發起請求凍結。
  • Governance 是治理合約去中心化法庭的實現,可以兼任多個 20/721R 的治理。
  • Judges 是法官群體,每次隨機抽取法官投票,對資產合約發起凍結/解凍/歸還資金等操作
  • ERC20/721R 必須使用此標準,才能記錄下歷史資金流轉記錄並實現了凍結對象的追溯算法
  • Governance 則是吃瓜群眾,可以清理合約中無效的歷史數據,從而減少 gas 費消耗

通過核心流程角色可以看出

基本上,只要 Victim 受害人發起,滿足一定的治理合約的開庭條件(比如金額/手續費達標)就可以發起凍結,導致資金無法流動,所以,治理合約中的經濟模型獎懲機制是非常需要設計的,否則要么是法官疲於奔命,要么是惡意凍結中的阻塞資金可拓展閱讀:資金阻塞對系統運作的影響
【合約解讀】CryptoPunk 世界上最早的去中心化 NFT 交易市場

其次可逆交易在實現中還有 2 個核心的問題需要特別關注

  1. 如何確保仲裁後可靠的歸還
  2. 如何防止惡意的法官和決策

2.2、ERC20/721R 標準的判決流程

從論文的流程圖中可以看出,主要 5 大環節

  1. 失竊:黑客盜竊後可能快速洗錢轉移到多地址,兌換流轉,乃至銷毀
  2. 申訴:發起凍結是需要支付挑戰保證金的,也將成為治理合約的收益來源
  3. 抽法官:其組成從法官庫中隨機挑選,這可沿用 POS 類似的質押參與出塊思路
  4. 凍結:一旦法官決議凍結,則由智能合約來計算應該被凍結的地址與金額
  5. 決斷:最終等待雙方提交證據以待法官決策,完成後法官分割評判收益

3、風控與博弈機制

3.1、如何應對惡意法官?

從上述運作流程中可以看出

法官決策有著極高的權利,因此如何選擇法官,如何對法官進行補償,如何阻⽌行為不端惡意的法官,例如收受賄賂或對有爭議的交易做出錯誤決定的法官,就是治理的難題

首先,法官的行為只能通過治理合約進行,其行為是受限的,雖然此合約並未真正實現但也提及了些設計思路,基本是參照 POS 質押出塊的流程

  • 秘密投票原則:在投票數量⾜夠多之前不公開法官成員,用以規避主動找法官賄賂。
  • 動態法官原則:隨著有爭議交易的⼤⼩⽽增加法官需要的數量,提高賄賂法官範圍和成本。
  • 法官 SBT 原則:採用鏈下現實世界中真實身份參與法官池,讓錯誤判決影響其真實身份
  • 決策分離原則:採用法官的決策無論是同意還是不同意,都可以收益瓜分提案手續費。
  • 工作監察原則:法官如果多次無法及時投票,則罰沒質押金以及清退

在十四君看來,這種理想中的法官管理方式,可能需要較高的收益做激勵以及錯判的 2 次復審,防止陷入有提案難決斷的中間狀態。

3.2、如何做到可靠凍結?

通過上文的描述,可以看出法官依賴於現實與去中心化投票的決斷,但他們行為的基石是該資金已經被凍結,從而有時間讓他們進行分析決斷。

因此 20/721R 如何做到有效找到該凍結的對象和金額,就是本文最難,也是該論文最多筆墨創新的部分了。

3.2.1、針對 ERC721R

這種邏輯相對簡單,因為資金的流轉是不可分的,只有地址可能多樣。

當然即使是 721 也不簡單,因為我作為歷史持有者可能不是馬上發現資金損失的,而即使是 1 分鐘,也有可能導致該 NFT 被轉移到其他無辜的用戶手中。

所以 ERC721R 他定義了一套專門用於記錄交易歷史記錄的合約數據存儲,

針對凍結:定義了 frozen[tokenId]   對象來鎖定 Id 繼續轉移

針對受害地址:依據歷史交易記錄(合約內存儲)來確定資金損失方

綜合來看,721R 與傳統的 721 對比,則是記錄如下的數據,總是能得知 NFT 流轉方

  1. tokenID0 → (owner0, bn0),(owner1, bn1), . . .
  2. tokenID1 → (owner0, bn0),(owner1, bn1), . . .
  3. tokenID2 → (owner0, bn0),(owner1, bn1), . . .

當然你可能會說,這不是看 NFT 合約的歷史記錄就可得知了嗎?拓展閱讀鏈上數據分析:抓完 X2Y2 十萬 NFT 訂單,分析版稅可以不收後多少用戶真這麼做了?

不過論文中這種記錄交易歷史的做法,不只是為了找出爭議交易的區間,也能作為一種對惡意法官的限制,是的,面對極高的法官權利,一旦 NFT 過了爭議期,或者已經有往期評估審計後,那就無法發起撤銷交易指令。

3.2.2、針對 ERC20R

ERC-20 合約的凍結功能要復雜得多。問題在於,在盜竊和凍結請求之間,代幣可能已轉移到多個賬⼾,且各個賬號可能獲得資金都不同。如下圖

圖中 V 是 victim 是某受害者,a0 是黑客,a1-a11 則是在凍結請求之前的全部涉案地址。圖中表示了多種資金可能被操作的場景鏈路。

  • 場景 1:資金可能銷毀,例如 a8 通過跨鏈橋轉移到不同生態或者幣交所出金,這時自然無法找回
  • 場景 2:資金可能重疊, a1 可能是 a0 的長期存儲地址,因此多筆被盜資產都在這裡,在無法判別之前,只能凍結涉案金額,而非全部金額
  • 場景 3:資金可能循環,如 a4 又向 a0 轉賬,則需判斷該資金是否是乾淨的

最終整個 a1-11 多少金額應該被納入凍結計算,論文提出了一套算法來計算。

核心理念是依據上下資金傳輸來定義每個節點的鎖定義務,比如 V 損失 100,而 a0 中剛好有 50,則先凍結這 50,然後剩餘的 50 作為 a1,2,3 的義務,往下操作凍結。承擔的義務量由 a0 向 a123 轉賬的記錄中計算得出。因此即使被投毒比如轉 1 塊給幣交所,也不會凍結幣交所超出爭議資金承擔義務的部分。

具體實現算法論文和其代碼資源,通過十四君公眾號後台回复‘ERC20/721R’  可獲取

4、總結

到這兒,對其實現已經基本講述完畢,那這樣的方式真的好嗎?

從作者本身看

筆者認為這也是目前 web3 行業的一個大趨勢,越來越多 web2 高端人才在湧入這樣的時代熱潮中,並且爭相解決一些行業前沿協議層的問題,雖然是好事,但,整體人力投入不平衡,胖協議、瘦應用的現狀依舊有些頭重腳輕、避重就輕。尖端學者走前沿協議研究很好,那項目方是不是更應該拿了 ICO 後該好好做事呢?可拓展閱讀:協議與應用雙贏的案例一文講清-NFT 市場新秀 SudoSwap 的 AMM 機制-創新挑戰與局限

從論文目標看

筆者認為,最大的難題並不是單純的凍結算法精準度,而是有延遲的 Token 與無延遲的 Token 如何兼容兌換的問題,即可逆交易其實是有毒的,一旦爭議資金發生跨協議轉移,又被逆交易。那對於交易所而言,應該是等待資金度過爭議期才執行真正的轉移交換,這樣對基建的顛覆很有可能阻礙其上的應用發展。

從防黑效果看

首先本身協議能否被社會接受是挑戰,其次法官也將伴隨質押經濟的平衡設計,最終依舊存在賄賂部分礦工從而乾擾甚至阻礙重排序交易的風險,而且,最關鍵的是鏈上真正可信的數據是很難在鏈下實證出,這筆交易是被盜,而不是交易反悔。所以筆者對防黑效果上並不完全看好。

從合約實現看

確實,來自斯坦福大學研究員的手筆其合約算法設計高度精巧,且確實在智能合約中實現算法也是難得一見的奇觀,賦予算法信任的同時,帶來的問題則是高昂的代幣成本。

每次轉移本身只是 2 處標準的 NFTbalance 的修改,然而如今要記錄每次歷史記錄、凍結狀態,凍結執行時還涉及大量對子地址的餘額修改,都將導致其貴到無以復加。

對 Gas 計算原理可拓展閱讀:

【源碼解讀】你買的 NFT 到底是什麼?

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。本文內容僅用於信息分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。