本文内容仅供参考学习,非投资建议。
推荐:点击此处加入 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