詳解以太坊可逆交易標準ERC20/721R的機制、創新與局限
區塊鏈交易的不可逆特性,一度被形容為是唯一的人類對上帝'時間'的低劣仿製品,然而也正是因為不可逆,導致大量黑客攻擊資金被盜無處解決,也被趣稱為web2向web3最成功的轉型:黑客。
而斯坦福大學研究員(kkwang@cs.stanford.edu等3人)於最近9.9號最新發布的論文,便是實現了兩種可逆交易的標準命名為ERC20R/ERC721R。其引入了一個“去中心化法庭”機制,資產被盜時受害者可申請凍結資產,而”去中心化法庭“可通過投票來決定是否凍結,凍結資產後“法庭”將基於雙方的證據來決定資產歸屬,以解決糾紛。
然而不可逆到可逆,伴隨的是大量複雜的問題
誰能發起?惡意誣告阻塞資金怎麼辦
如何凍結?資金高速流轉,涉事廣泛,惡意投毒如何公證?
一級標題
一級標題
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標準)
一級標題一級標題

2、ERC20/721R的實現原理
論文實現理念的核心是:基於”去中心化法庭“治理的Token
基於ERC20/721R標準實現的token,其交易在鏈上發布後都有資格在短時間內撤銷。但是爭議期過後,交易不能再撤銷。而在短暫的爭議期內,發送方可以通過說服一組離散抽取的法官來首先凍結有爭議的資產,然後再說服他們撤銷交易來請求撤銷交易。
看似一段話就描述完了,但其實中間存在非常多的風險性問題
決策前:誰能提案,誰能凍結?隨意的凍結將會斷絕信任也將阻塞資金
決策中:誰能參與,鏈上鍊下?法官可能被賄賂,法官的公正動機
二級標題
二級標題
2.1、ERC20/721R標準的參與角色

合計有4種角色參與其中,受害人、治理合約、法官群體、資產合約
victim是某受害者,即其Token的某個歷史持有者,可以向治理合約發起請求凍結。
Governance 是治理合約去中心化法庭的實現,可以兼任多個20/721R的治理。
Judges 是法官群體,每次隨機抽取法官投票,對資產合約發起凍結/解凍/歸還資金等操作
ERC20/721R必須使用此標準,才能記錄下歷史資金流轉記錄並實現了凍結對象的追溯算法
Governance則是吃瓜群眾,可以清理合約中無效的歷史數據,從而減少gas費消耗
通過核心流程角色可以看出
基本上,只要Victim受害人發起,滿足一定的治理合約的開庭條件(比如金額/手續費達標)就可以發起凍結,導致資金無法流動,所以,治理合約中的經濟模型獎懲機制是非常需要設計的,否則要么是法官疲於奔命,要么是惡意凍結中的阻塞資金
可拓展閱讀:資金阻塞對系統運作的影響
【合約解讀】CryptoPunk 世界上最早的去中心化NFT交易市場
其次可逆交易在實現中還有2個核心的問題需要特別關注
二級標題
二級標題
2.2、ERC20/721R標準的判決流程

從論文的流程圖中可以看出,主要5大環節
失竊:黑客盜竊後可能快速洗錢轉移到多地址,兌換流轉,乃至銷毀
申訴:發起凍結是需要支付挑戰保證金的,也將成為治理合約的收益來源
抽法官:其組成從法官庫中隨機挑選,這可沿用POS類似的質押參與出塊思路
二級標題
一級標題
二級標題
3.1、如何應對惡意法官?
從上述運作流程中可以看出
法官決策有著極高的權利,因此如何選擇法官,如何對法官進行補償,如何阻⽌行為不端惡意的法官,例如收受賄賂或對有爭議的交易做出錯誤決定的法官,就是治理的難題
首先,法官的行為只能通過治理合約進行,其行為是受限的,雖然此合約並未真正實現但也提及了些設計思路,基本是參照POS質押出塊的流程
秘密投票原則:在投票數量⾜夠多之前不公開法官成員,用以規避主動找法官賄賂。
動態法官原則:隨著有爭議交易的⼤⼩⽽增加法官需要的數量,提高賄賂法官範圍和成本。
法官SBT原則:採用鏈下現實世界中真實身份參與法官池,讓錯誤判決影響其真實身份
決策分離原則:採用法官的決策無論是同意還是不同意,都可以收益瓜分提案手續費。
二級標題
二級標題
3.2、如何做到可靠凍結?
通過上文的描述,可以看出法官依賴於現實與去中心化投票的決斷,但他們行為的基石是該資金已經被凍結,從而有時間讓他們進行分析決斷。
因此20/721R如何做到有效找到該凍結的對象和金額,就是本文最難,也是該論文最多筆墨創新的部分了。
3.2.1、針對ERC721R
這種邏輯相對簡單,因為資金的流轉是不可分的,只有地址可能多樣。
當然即使是721也不簡單,因為我作為歷史持有者可能不是馬上發現資金損失的,而即使是1分鐘,也有可能導致該NFT被轉移到其他無辜的用戶手中。
所以ERC721R他定義了一套專門用於記錄交易歷史記錄的合約數據存儲,
針對凍結:定義了frozen[tokenId] 對象來鎖定Id繼續轉移
針對受害地址:依據歷史交易記錄(合約內存儲)來確定資金損失方
綜合來看,721R與傳統的721對比,則是記錄如下的數據,總是能得知NFT流轉方

當然你可能會說,這不是看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多少金額應該被納入凍結計算,論文提出了一套算法來計算。
一級標題
一級標題
4、總結
到這兒,對其實現已經基本講述完畢,那這樣的方式真的好嗎?
從作者本身看
筆者認為這也是目前web3行業的一個大趨勢,越來越多web2高端人才在湧入這樣的時代熱潮中,並且爭相解決一些行業前沿協議層的問題,雖然是好事,但,整體人力投入不平衡,胖協議、瘦應用的現狀依舊有些頭重腳輕、避重就輕。尖端學者走前沿協議研究很好,那項目方是不是更應該拿了ICO後該好好做事呢?
可拓展閱讀:協議與應用雙贏的案例
一文講清-NFT市場新秀SudoSwap的AMM機制-創新挑戰與局限
從論文目標看
筆者認為,最大的難題並不是單純的凍結算法精準度,而是有延遲的Token與無延遲的Token如何兼容兌換的問題,即可逆交易其實是有毒的,一旦爭議資金發生跨協議轉移,又被逆交易。那對於交易所而言,應該是等待資金度過爭議期才執行真正的轉移交換,這樣對基建的顛覆很有可能阻礙其上的應用發展。
從防黑效果看
首先本身協議能否被社會接受是挑戰,其次法官也將伴隨質押經濟的平衡設計,最終依舊存在賄賂部分礦工從而乾擾甚至阻礙重排序交易的風險,而且,最關鍵的是鏈上真正可信的數據是很難在鏈下實證出,這筆交易是被盜,而不是交易反悔。所以筆者對防黑效果上並不完全看好。
從合約實現看
確實,來自斯坦福大學研究員的手筆其合約算法設計高度精巧,且確實在智能合約中實現算法也是難得一見的奇觀,賦予算法信任的同時,帶來的問題則是高昂的代幣成本。
點贊關註十四,用技術視角帶給你價值
【源碼解讀】你買的NFT到底是什麼?
點贊關註十四,用技術視角帶給你價值
點贊關註十四,用技術視角帶給你價值


