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

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

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

  • 誰能發起?惡意誣告阻塞資金怎麼辦

  • 如何凍結?資金高速流轉,涉事廣泛,惡意投毒如何公證?

  • 誰能仲裁?惡意法官,賄賂法官怎麼辦?

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

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標準

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

2、ERC20/721R的實現原理

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

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

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

  • 決策前:誰能提案,誰能凍結?隨意的凍結將會斷絕信任也將阻塞資金

  • 決策中:誰能參與,鏈上鍊下?法官可能被賄賂,法官的公正動機

  • 決策後:幣種跨越,如何歸還?資金可能很離散,也可能殃及無辜

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

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

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

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

  • victim是某受害者,即其Token的某個歷史持有者,可以向治理合約發起請求凍結。

  • Governance 是治理合約去中心化法庭的實現,可以兼任多個20/721R的治理。

  • Judges 是法官群體,每次隨機抽取法官投票,對資產合約發起凍結/解凍/歸還資金等操作

  • ERC20/721R必須使用此標準,才能記錄下歷史資金流轉記錄並實現了凍結對象的追溯算法

  • Governance則是吃瓜群眾,可以清理合約中無效的歷史數據,從而減少gas費消耗

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

基本上,只要Victim受害人發起,滿足一定的治理合約的開庭條件(比如金額/手續費達標)就可以發起凍結,導致資金無法流動,所以,治理合約中的經濟模型獎懲機制是非常需要設計的,否則要么是法官疲於奔命,要么是惡意凍結中的阻塞資金

可拓展閱讀:資金阻塞對系統運作的影響

【合約解讀】CryptoPunk 世界上最早的去中心化NFT交易市場

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

  1. 如何確保仲裁後可靠的歸還

  2. 如何防止惡意的法官和決策

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

【前沿解讀】斯坦福研究員論文-以太坊可逆交易標準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流轉方

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

當然你可能會說,這不是看NFT合約的歷史記錄就可得知了嗎?

拓展閱讀鏈上數據分析:

抓完X2Y2十萬NFT訂單,分析版稅可以不收後多少用戶真這麼做了?

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

3.2.2、針對ERC20R

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

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

圖中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到底是什麼?

附錄
【ERC-20R 和ERC-721R:以太坊上的可逆交易】
https://arxiv.org/abs/2208.00543
【2022 年加密貨幣犯罪報告】
https://go.chainalysis.com/rs/503-FAP-074/images/Crypto-Crime-Report-2022.pdf
【Refunds For NFTs – The New ERC721R Standard】
https://geshet.io/refunds-for-nfts-the-new-erc721r-standard
【vitalik.eth twitter】
https://twitter.com/vitalikbuterin/status/987262267036184577
【Reversecoin:世界上第⼀個可逆交易的加密代幣】
https://docs.google.com/document/d/1hMCkEQUYm9oFCQpxtIWFqVpt66pTQn1zCDW8WX0b7hw/edit

歡迎你從後台提交web3行業問題探討

點贊關註十四,用技術視角帶給你價值