本文內容僅供參考學習,非投資建議。
推薦:點擊此處加入PANews Discord 學習交流區塊鏈知識。
原文標題:從NFT1.0到NFT2.0:靈魂綁定SBT、NFT防盜、NFT租賃和NFT借貸協議設計機制
ERC721QS:Make NFT Bigger,Make Web3 Bigger
獻給Jessie,她曾因自己的NFT被盜而傷心不已,於是我們對此進行了深入研究,以防止此類事情再次發生。同時,隨著我們對ERC721QS研究的深入,加之E. Glen Weyl、Puja Ohlhaver和Vitalik Buterin的最新論文帶給我們的靈感,我們發現,它的應用場景大大超出了我們的想像,甚至解決了Web3行業的巨大難題。范老師和0007.eth也為我們提供了靈感,在此一併致謝。謝謝他們!
優點
讓NFT持有者更加安全,保護持有人的利益,並在賬戶被盜時挽回損失。
減少黑客獲益,使他們能夠回到正常軌道上來,和我們一起推動行業更快進步。
新的NFT項目可以採用這套機制,減少用戶NFT被盜風險,提升自身安全性。
原有的NFT項目可以考慮升級智能合約,降低用戶的不安全感(建議)。
適用於NFT租賃場景。
找到了Web3的靈魂,解決了SBT的設計機制問題。
解決的核心問題
讓黑客不再因盜竊行為而獲益。
不僅是防止NFT被盜,還要在NFT出現可能被盜的情況時採用安全且對他人無害的方式找回NFT。
在協議層考慮了對NFT租賃的支持。
提出了SBT的設計機制。
NFT防盜協議ERC721QS-1P
ERC721QS-1是我們的基礎版本,但認為不是最優,我們不再展示。後來我們又進行了進一步改進,提出了ERC721QS-1P。
角色或者地址設置
Ward :被監護人。 NFT的持有者,一般為NFT所在的錢包地址。當Guardian地址和數量為空時,Ward可以進行NFT的轉移操作,也可以設置Guardian地址和數量。但NFT已存在Guardian地址時,不經Guardian允許,Ward無法修改Guardian地址和數量,且無法對NFT進行轉移操作。
Guardian : 監護人。 NFT的監護人,一般為NFT所有者的冷錢包地址,或者是NFT所有者信任的地址。 Guardian可以自行解除自己的Guardian身份,或者在NFT Ward地址出現異常時,調用NFT智能合約,銷毀原有NFT,並重新鑄造具有相同Token ID的NFT到指定的地址。
兩個角色可能涉及的操作
Mint NFT :由Ward進行操作。
轉移NFT :由Ward進行操作,但在NFT無Guardian條件下才可以進行轉移操作。 NFT在發生轉移行為前,智能合約會驗證NFT是否具有Guardian地址,如果有,則拒絕發起轉移;如果無,則可以進行轉移。
設置Guardian :由Ward設置。請注意,Ward只可以在Guardian地址為空時,設置Guardian地址和個數。在NFT已有Guardian情況下,Ward不可以對Guardian的地址和數量進行更改。只有當NFT不具有任何Guardian時,Ward才可以進行設置。當具有Guardian時,Ward不能夠對NFT進行轉移操作。
取消Guardian :由Guardian完成操作。當Ward地址想要轉移NFT時,需要所有Guardian都取消自己的Guardian身份。
銷毀在ward地址中的原來的NFT並重新鑄造新的NFT(新舊兩個NFT具有相同的Token ID):由Guardian完成操作。當Ward設置好Guardian後,如果很不幸,Ward地址私鑰發生洩露或丟失,由於此時原來的NFT無法被Ward轉移,不會出現因NFT轉移對任何人造成損失的可能。此時,Guardian調用智能合約,智能合約將原來的NFT從原地址進行銷毀,並鑄造新的NFT,同時指定新的NFT的接收地址,新的NFT將轉移到指定的地址。新舊兩個NFT的Token ID相同,新的NFT的元數據指向原有的NFT的元數據。因此,新的NFT具有與原NFT相同的屬性。當新的NFT生成後,原有NFT的Guardian可能失去了價值,新NFT的Ward可以重新設置Guardian(亦可在新NFT生成時,保留原Guardian設置)。
某NFT設置Guardian地址後,幾種場景下的使用。
Ward對不安全智能合約進行了授權或者被黑客盜取了私鑰:由於此時NFT具有Guardian,當黑客在Ward的地址發起轉移NFT要求時,該舉動會被智能合約拒絕,黑客無法盜取該NFT。當NFT所有者意識到自己的授權存在危險或者自己的私鑰洩露後,可以有時間取消對不安全智能合約的授權或直接通過Guardian地址銷毀原有NFT,並生成新的具有相同的Token ID的NFT。
轉移NFT :Guardian需解除自身Guardian身份,當NFT的Guardian的地址和數量為空時,Ward可以進行NFT轉移。
補充
ENS已經使用類似方法,設計了到期的ENS的重新註冊機制。我們也從中找到了靈感,改進了ERC721QS-1P。下面是一個實例。
https://etherscan.io/tx/0xf5a4f4039c7e5690f220d2752fe83efd5ca37e61137b5334ea968e0c859a8483
NFT防盜及NFT租賃協議:ERC721QS-2
角色或者地址設置
Ward :被監護人地址。 NFT持有者,一般為NFT所在的錢包地址。當Guardian地址和數量為空時,Ward可以進行NFT的轉移操作,也可以設置Guardian地址和數量。但NFT已存在Guardian地址時,不經Guardian允許,Ward無法修改Guardian地址和數量,且無法對NFT進行轉移操作。
Guardian : 監護人地址。 NFT的監護人,一般為NFT持有者的冷錢包地址,或者是NFT持有者信任的地址。 Guardian可以自行解除自己的Guardian身份,或者在NFT所在的Ward地址出現異常後,調用NFT智能合約,將NFT轉移到指定的地址。
兩個角色可能涉及的操作
Mint NFT :由Ward進行操作。
轉移NFT :
1,由Ward進行操作,但在NFT無Guardian條件下才可以進行轉移操作。 NFT在發生轉移行為前,智能合約會驗證NFT是否具有Guardian,如果有,則拒絕發起轉移;如果無,則可以進行轉移。
2,由Guardian操作。當NFT有Guardian條件下,經所有Guardian同意,將NFT轉移到指定的地址。
設置Guardian :由Ward設置。請注意,Ward只可以在Guardian地址為空時,設置Guardian地址和個數。在NFT已有Guardian情況下,Ward不可以對Guardian的地址和數量進行更改。只有當NFT不具有任何Guardian時,Ward才可以進行設置。當具有Guardian時,Ward不能夠對NFT進行轉移操作。
移除Guardian :由Guardian完成操作。當Ward想要轉移NFT時,需要所有Guardian都移除自己的Guardian身份。
Ward地址不可用,需要轉移NFT :由Guardian進行操作。當Ward設置好Guardian後,如果很不幸,Ward地址私鑰發生洩露或丟失,由於此時NFT無法被Ward轉移,不會出現因NFT轉移對任何人造成損失的可能。此時,Guardian調用智能合約將NFT轉移到新的地址。
某NFT設置Guardian地址後,幾種場景下的使用。
Ward對不安全智能合約進行了授權或者被黑客盜取了私鑰:由於此時NFT具有Guardian,當黑客在Ward地址發起轉移NFT要求時,該舉動會被智能合約拒絕,黑客無法盜取該NFT 。當用戶意識到自己的授權存在危險或者自己的私鑰洩露後,可以有時間取消對不安全智能合約的授權或直接通過Guardian將NFT轉移到指定的安全地址。
轉移NFT (特別是需要轉移給他人的情況,如通過OpenSea賣出):Guardian地址需解除自身Guardian身份,當NFT的Guardian的地址和數量為空時,Ward可以進行NFT轉移。
一個比喻:當NFT需要轉移給其他人或者被賣出時,我們理解為NFT這個孩子長大了,它需要組建新的家庭了,所以當前監護人就應該放手了。
進一步改進:
Ward在設置Guardian時,可以對Guardian設置有效期(expires),到期後Guardian的設置可自動解除,Ward可以進行NFT轉移。避免因Guardian私鑰丟失等問題導致NFT損失。
部分Guardian同意亦可轉移NFT,如設置了4個Guardian,只需3個Guardian同意即可轉移NFT。
NFT租賃和NFT抵押借貸
這種機制為NFT租賃市場的開啟打通了渠道。將持有權與轉移權進行分離,則實際擁有者可以設置若干個Guardian地址來控制轉移權,當存在租賃需求時,實際擁有者可以將NFT轉移至租賃者地址(更進一步的,Guardian可以設置轉移時間間隔,比如3個月,此時,三個月內,Guardian不能夠調用智能合約轉移NFT,以保障租賃者的權益)。同時,為了和以後潛在的NFT租賃平台用例相結合,Guardian角色既可以授予個人,也可以授予智能合約,或兩者綜合形式。
同時,它還提出了一種新的NFT抵押借貸模型。
說明
Guardian的地址設置非常靈活,這使得它能使得協議導向不同的應用方向和場景,同時也能兼容未來的NFT的一些應用場景。我們有一篇不那麼嚴肅的《Guardian地址的一百種玩法》,將不斷完善,僅供參考。例如,我們想了一種很有意思的場景:如果你想成為某個NFT的鑽石手,你也可以對Guardian設置期限,並將Guardian設置為一些特殊地址,那麼,在期限之內,你就不會因市場波動導致的心理壓力而賣出自己的NFT。
https://mirror.xyz/5660.eth/0TKe6Ere091ZuGWN1QEzyB6FFyjun42c0BYVSLrsHWQ
在不具有Guardian情況下,遵循ERC721QS協議的NFT的操作與目前普通的NFT操作沒有任何不同。
設置Guardian確實增加了用戶資金成本和操作步驟。但這需要持有者自行權衡考慮,比如對於高價值的NFT,持有者如果傾向於長期持有(多簽也是一種保存NFT的方式,但它的可操作性更差,對用戶更加不友好,且滿足不了NFT的某些使用場景,比如NFT租賃、NFT抵押借貸等),那麼用戶就可以設置Guardian。對於低價值的NFT,也許用戶不願意設置Guardian。但是,我們不能單從價格來判斷NFT對一個持有者的價值,也許某個沒有市場價值的NFT,對持有者也非常重要,比如他一生中重要時刻的照片或錄像做成的NFT,持有者也可以對此NFT設置Guardian。同時,由於NFT大部分時間都處於靜止狀態,發生轉移的頻率並不高,因此在需要轉移NFT時解除Guardian身份設置即可,相較於資產安全性的大幅提升,操作便利性的降低影響不大。
可能出現的一種新型詐騙手段:即不道德的Guardian與購買者達成線下交易,將NFT轉入購買者的地址,收款之後將NFT再次轉出,從而達到了詐騙目的。
對此的解決方案:在協議層或NFT智能合約中,可以考慮對有Guardian設置的和無Guardian設置的NFT在顯示上作以明顯區分和提示;對於行業參與者,比如NFT查看平台或者NFT交易平台,可以將上述兩者分為不同的類別進行顯示和進行操作。此外,目前NFT交易的主要途徑仍然是通過NFT交易平台,在NFT交易平台完成的交易,不會出現此類被詐騙的情況。我們認為線下交易本身對雙方信任程度要求就比較高,詐騙者想通過這種方式獲得不法收入的難度較高。但出於對用戶利益的考慮,我們需要將預防詐騙納入到我們的考慮當中。
該協議通常建議寫進NFT自身智能合約中,也建議已發行的NFT考慮升級智能合約。
其他幾種方案(但認為目前不夠好)
抵押申訴方案:一旦持有者的NFT被盜,他可以向某組織(比如項目方設置的DAO組織)提起被盜申訴,但這需要抵押一定資金。如果該組織認定原持有者申訴成功,則該持有者取回自己的NFT或獲得新的具有相同屬性的NFT,且退還押金(某組織可以從申訴者那裡收取一定的服務費用,用來激勵那些參與對申訴的評判的人們),如果該組織認定申訴失敗,則該持有者的押金將會被全部沒收。
區塊鏈警察DAO或審判官DAO:如果未來Web3形成了此類比較具有公信力的組織,則可以將NFT智能合約接入該組織的預言機,由該組織判定是否存在被盜情況且對被盜資產進行一定程度的限制和處理。
Challenger Research觀點
區塊鍊是去中心化的,但不是去正義化的。維護人們的安全需要,是促進更多人加入區塊鏈、使用區塊鏈的關鍵。
Web2是通過行政和法律手段治理黑客,但目前往往收效不佳。 Web3實際上缺乏有效方式治理黑客,但我們可以將黑客獲益降低。實際上黑客們組成非常強大的安全團隊和開發組織,我們通過賞金計劃或者讓他們滿意的靈活的招聘方式,也能夠吸引他們做出對區塊鏈行業有益的事,而不是只做出傷害行業利益的事。
本協議發布後,迎來了很多技術方面的討論。希望大家不僅站在技術的角度考慮問題,也需要切換一下身份,從不同區塊鏈行業參與者角度,思考這套協議的必要性。
SBT設計機制:ERC721QS-3
QS-3建立在QS-2的改進上,實際上,由於Guardian地址的設置非常靈活,實現所謂的SBT(我們實際更願意稱之為身份證明NFT,但似乎SBT應用更廣,在QS-3中不再進行具體區分),只需要對QS-2的機製做一些調整即可。調整如下
1,SBT發行時就可以帶有Guardian角色,同一系列的SBT可以具有相同的Guardian。此時Ward可以mint SBT,但mint SBT後無轉移權。或者Ward不需要mint SBT,直接由Guardian分發SBT。
2,Guardian可以合謀重設新的Guardian(引入新成員,比如公司管理層擴張),或者取消某Guardian身份(剔除某成員,比如某成員去世或者不盡職)。
3,不同Guardian的履職期限可以不同,且不必立即開始,某Guardian可以在未來才起作用(比如,議會選舉出的新議員身份已經確定,但尚未進入履職週期)。
4,可選的。關閉Ward的轉移權限。即,即使所有Guardian都自行取消了身份(比如公司破產解散),Ward也無法轉移該NFT或者SBT。
舉個應用例子。比如哈佛大學學士學位SBT。當一個哈佛學生順利通過答辯並畢業後,學校的Guardian就向他的地址轉移具有唯一編碼的學位SBT,這樣就證明他從該學校畢業並獲得學士學位了。他能夠通過驗證自己錢包的所有權,證明自己獲得了哈佛大學學士學位,進而可以用於求職、社交等場景。如果他的地址私鑰洩露或丟失了,他可以向學校提起申請,學校Guardian可以將他的學位SBT轉移到他的新地址。如果該學生後續被查出學術不端或者存在違背哈佛大學宗旨的行為,學校Guardian也可以收回他的學位SBT。對於該SBT,學生只有使用權,而沒有轉移權或者交易權,因為該學位SBT的價值來源於哈佛大學的背書,所以哈佛大學對它的分發和轉移有著重要權利。
角色或者地址設置
Ward :被監護人。 SBT(比如某大學學位證書、某公司CEO身份證明、某國總統身份證明或者某銀行信貸承諾額度證明)持有者,一般為SBT所在的錢包地址。當SBT已存在Guardian地址時,不經Guardian允許,Ward無法修改Guardian地址和數量,且無法對SBT進行轉移操作。當Guardian地址和數量為空時,Ward可以進行SBT的轉移操作,也可以設置Guardian地址和數量。
Guardian:監護人。 SBT的監護人,一般為相應社會組織或個人的若干地址(比如某大學、某公司董事會、比如某國家的議會、某銀行、某DAO組織),或者是SBT持有者信任的地址(比如信貸擔保人)。 Guardian可以自行解除自己的Guardian身份(比如,辭職),經規定數量的Guardian同意,SBT可以增加或者移除Guardian。在SBT所在的Ward地址出現異常後,Guardian可調用SBT智能合約,將SBT轉移到指定的地址。
兩個角色可能涉及的操作
Mint SBT :由Ward進行操作。或者Ward無需mint。智能合約生成SBT後,SBT直接由Guardian支配並分發。
轉移SBT :
1,由Guardian操作。當SBT有Guardian條件下,經所有或部分Guardian同意,將SBT轉移到指定的地址。
2,由Ward進行操作,但在SBT無Guardian條件下才可以進行轉移操作。 Ward在發起轉移行為前,智能合約會驗證SBT是否具有Guardian地址,如果有,則拒絕發起轉移;如果無,則可以進行轉移(可選的,此權限可以關閉)。
設置Guardian :
SBT初始發行時,由智能合約設定Guardian。或者在SBT轉移至Ward地址後,由Ward設置。
增加或移除Guardian :
經規定數量的Guardian同意,SBT可以增加Guardian,或者移除Guardian。
此外,不同Guardian可以具有不同履職時間區間,也不必在當前時間節點就進行履職,某一Guardian可能在未來才進行履職。
移除Guardian :由Guardian自行完成操作。
Ward地址不可用,需要轉移SBT至新的地址:由Guardian進行操作。如果很不幸,Ward地址私鑰發生洩露或丟失,由於此時SBT無法被Ward轉移,不會出現因SBT轉移對任何人造成損失的可能(但需要謹慎,可能存在SBT被冒用的可能)。此時,Guardian調用智能合約將SBT轉移到新的地址。
對SBT進行升級
如果Guardian需要對原有的SBT智能合約進行升級,發行新的SBT(例如,更換身份證或使得大學畢業證書更加美觀)。 Guardian無需通知和要求Ward進行一些複雜操作。 Guardian只需對原有SBT持有的地址進行快照,然後再向他們發放新的SBT即可。對於原來的SBT,如果Guardian認為有必要,也可以從Ward地址中收回。或者不進行收回,作為Ward的紀念品。
Challenger Research觀點
Guardian越多,成員組成成分越複雜,操作難度越大,成本越高。設計上確實如此,但這不值得詬病,因為符合社會學理論。對於越高價值的SBT(比如,“總統身份SBT”),Guardian將該SBT轉移給特定地址這一行為,應該是愈發謹慎的,gas支出也是必要的治理成本,以免SBT被濫用和濫發。如果僅僅是比較低價值的SBT,比如你的一場非正式聚會的邀請函的發放,你可以只設置一個Guardian。如果目標集中在降低操作成本,我們也可以將其建立在layer2上,甚至可以建立layer3上(此概念最早由StarkNet提出。不同於layer2,layer3更加靈活,可僅用於比較廣泛或者比較重要的特定用途和滿足特殊需求,比如SBT以後可能的隱私需求)。或者,也可以考慮新的公鏈。但目前我們認為使用Layer2、Layer3或者建立新的公鏈的需求,可以研究,但並不急迫。原因有兩點:一是市場對SBT的需求尚未充分擴展,對SBT的功能需求也需要進一步研究;二是隨著ETH2.0的實現,ETH主網的性能也有所提升。
QS-3對Guardian賦予了更大權限,這對Guardian組織本身的治理提出了更高要求,這個組織可以是議會、公司,也可以最新興起的DAO。對於Guardian的治理,是個值得深入研究的問題。也有很多Web3的治理方式被提出,比如我們利用博弈論理論提出的“三角形架構”和“相互確保摧毀機制”。行業可以在這方面展開更深層次的討論和研究。
通過進一步設計,在某種機制下,只有使用權的SBT自身所在的地址,也可以成為另一種SBT的Guardian。比如,某國家的公民身份認證機關Guardian對公民授出了“公民身份SBT”,但在總統直接選舉上,持有公民身份SBT的地址就可以成為選民Guardian。選民可以將自己的選票投給某一個總統候選人(調用智能合約,要求將“總統身份SBT”或“候任總統SBT”轉移給某個候選人的地址),當某個候選人的地址獲得足夠的選民Guardian支持後,“總統身份SBT”將自動轉移到他的地址。而該候選人持有“總統身份SBT”後,將憑藉“總統身份SBT”解鎖一系列相關權限,比如軍隊指揮權、核武器使用授權(如果SBT將來可能具有這種權限,你就應該理解,將某些SBT轉移至指定地址的操作,即使是再复雜再謹慎,也是不過分的)等。
對於SBT的製作和發行,我們應該設計出更簡單更便利的方式。比如設計一個網站,當一個晚會發起者想要做一個SBT作為自己的晚會邀請函時,他只需要登錄網站,連接自己的錢包地址,輸入Guardian地址,輸入要生成SBT的的名稱、內容和數量等,他就可以生成自己想要的SBT了。如果他想將SBT轉移給某個晚會參與者,他也可以在這個網站進行操作;或者他想認識一些新朋友,就取消自己的Guardian身份,讓SBT可以自由轉移。技術的先進性和技術的普及性不具有必然聯繫,兩者之間的紐帶是可用性和便利性。
增強隱私保護和安全QS-X
在QS-1P、QS-2和QS-3中,Guardian的身份是公開的,且他們的操作行為是公開的,這可能不利於保護Guardian的隱私和安全。比如在社會輿論和強權壓力下,Guardian可能做出不符合自己意願的選擇。如果Guardian有隱私保護和安全方面的需求,進一步的我們可以採用MPC或零知識證明之類的技術完善它。這可以用於無記名投票,匿名億萬富翁俱樂部慈善基金的使用等場景。
補充
相較於QS-1P,QS-2和QS-3的設計更符合現實生活中的實例,且智能合約執行中更加節省gas費用。
需要注意的是, 在ERC721QS中,由於增加了NFT租賃、NFT抵押借貸和SBT等使用場景的支持,NFT的持有者不一定就是NFT的所有權的擁有者,持有者可以是承租人、貸款人和使用者等。
我們注意到有些EIPS(以太坊改進提案)致力於解決NFT租賃問題,但研究後認為它們並不符合現實社會中的慣例。比如一種做法是,利用NFT租賃智能合約,owner將NFT質押進入租賃智能合約地址,然後給租賃者賦予user這一身份。從技術上看當然是行的通的,但不符合現實中的租賃和使用關係。舉個例子,這相當於是租客和房東簽了一個租賃合同(通過智能合約),我們可以通過房產證證明房東身份(owner),也可以通過租賃合同證明租客身份(user)。但是,我們卻沒有把房子的鑰匙交給租客,租客證明自己有對房子使用權的方式,是拿著租賃合同告訴大家,我簽了一份租賃合同,並付了款。而房子呢,既不在房東那裡,也不在租客手裡,卻在中介(NFT租賃智能合約地址)手裡。這聽起來十分奇怪。
有人提出了一種簡單的SBT設計方式,即利用現有的ERC721協議,生成SBT,但將owner對SBT的轉移權關閉(卻沒有QS-3中提到的,Guardian可以轉移SBT的設計)。這種方式也不滿足現實中的某些應用場景,比如前文提到的哈佛大學學士學位SBT,如果一名哈佛大學學生被查出了學術不端行為,理論上是應該收回他的學士學位的,但上面的方式是做不到的,因此這名學術不端的哈佛畢業生,仍然可以拿著哈佛大學學士學位SBT繼續招搖撞騙,這對哈佛大學的聲譽會造成不良影響。
研究支持:By Challenger Research, Epochs Labs,Web3技術小組
附:Vitalik參與的Soulbound Tokens論文:《去中心化社會:尋找web3的靈魂》
英文原文:
https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4105763
中文翻譯:
https://www.panewslab.com/zh/articledetails/1652665746121864.html
本文中文版原文鏈接:
https://mirror.xyz/5660.eth/I99gut-t6POHiY2kp4uQoqJuLaOLqJEHBNagQtCBsME
英文版:
https://mirror.xyz/5660.eth/x3B-VnEmEem0soMVyd1Nueob7jYnaqTxghOs58drzlc