灵魂通证就是可验证凭据

SBT

今年(2022年)年初,Vitalik的博客文章,首次提出了灵魂通证(Soulbound Token,简写为SBT)的概念,简单来说,就是不可转让的NFT。从以太坊进化的角度,我们可以梳理SBT概念的历史。

首先,Token或者Fungible Token(FT)是可以和现实世界的钱类比,而且从比特币和altcoin的这些说法中,直接就有“coin”,表明FT是某个账号所拥有的的一种数量属性最重要的财产证明。fungible的字面意思是可替换,以比特币为例,假设A拥有1个比特币而B拥有2个比特币,那么我们可以说,A在比特币财产上不如B富有。当A从B那里因为某种原因获得0.5个比特币时,A和B就都拥有了1.5个比特币了(技术上,因为手续费,可能有数千聪的差异,这里忽略)。而且,我们一般是可以忽略A和B的1.5个比特币的来源,认为它们在信用上等价。这里的fungible的意思是:

  1. 原来A拥有的1个比特币和B拥有的2个比特币中的1个可以等价互换
  2. 当支付行为发生后,人们关心的是最后的余额不能出错就好
  3. 在后续的使用时,A和B花出去的同样数量的比特币有相同的功能,比如某个服务标价0.005个比特币,那么无论是A还是B,只要支付这0.005个比特币,就可以得到这个服务 可以看出,比特币和法币在功能上基本一致,假设我们从概念上把上文中的1个比特币换成10万元,那么结论没有任何变化。

假设A拥有10万元而B拥有20万元,那么我们可以说,A在人民币财产上不如B富有。当A从B那里因为某种原因获得5万元时,A和B就都拥有了15万元了。而且,我们一般是可以忽略A和B的15万元的来源,认为它们在信用上等价。这里的fungible的意思是:

  1. 原来A拥有的10万元和B拥有的20万元中的10万元可以等价互换
  2. 当支付行为发生后,人们关心的是最后的余额不能出错就好
  3. 在后续的使用时,A和B花出去的同样数量的人民币有相同的功能,比如某个服务标价500元,那么无论是A还是B,只要支付这500元,就可以得到这个服务

其次,NFT可以和现实世界的财产权类比,NFT是某个账号拥有某种独一无二可转让权益证明。一个人可以拥有一栋房子,而每两个房子都不会相同:因为物理空间就使得房子具有天然的排他性,即使两个房子从结构上一模一样,从使用者或拥有者角度,无法替换。在以太坊社区,比较早期的NFT应用是加密锚,每只猫都有不同的特点,每个账号可以购买不同的猫,也可以卖出,还可以配对孵化出新的猫,但关键是,每只猫都独一无二,加密猫最火的时候以太坊区块链过于拥堵,手续费暴涨,以至于很多其他的应用都付不起手续费了。NFT概念引入国内后,现在在数字藏品方面有类似的应用。

最后,就到了SBT。SBT是某个账号某种独特的不可转让的属性。Vitalik举例说,参与证明协议(简称POAP)用了NFT来标记某个账号是否参与了某个活动,但用NFT有一个问题,就是NFT是可转让的。A参加了一个会议,获得了一个独特的NFT,本来这是用来证明A参加了这个会议,但A把NFT转让给B,岂不是变成了证明B参加了会议?所以仅仅是NFT是不合适的,应该让这个NFT不可转让,因为本来这个场景的用途就是让某个特定的属性和关联账号进行强绑定,可转让这个特点不适用于这个场景。Vitalik的灵感,居然来自于魔兽世界游戏中的绑定装备,需要一个角色独特的经历才能获得:例如组队打副本。获得后,绑定装备可以给角色增加技能点数,但不可赠与他人。而现实世界中,SBT对应的是一个人的属性,或者说是他人对某个人的评价。比如说A现在超过了20岁,那么超过了20岁在这个例子中就是用来描述A的特点,这个特点与A相关,A不能直接将这个属性赠送给B(B有没有超过20岁需要独立评估,与A无关);比如说A富有同情心,那么“富有同情心”就是用来评价A这个人的,对这个评价,A不可以转让给B的。

Vitalik因为在以太坊社区或者说整个Web3社区的巨大影响力,发明了一个SBT的概念被很多人所了解,其实没什么特别的,从数字身份社区看来,就是可验证凭据(Verifiable credentials,简称VC)。只不过对于可验证凭据的概念,了解的人可能没那么多,或者和以太坊社区的人不同而已。

VC

可验证凭据的概念从现实中的凭据而来,表示一个账号拥有某种特征,而这种特征可以用密码学的方式来证明其来自某个特定的发行方。最直观的例子是学位证明,学位证明是特定的学校发给特定的学生的、完成特定学位的证明,从验证者的角度,验证学位证明的真伪是3个问题:

  1. 该学位证明持有者与现在需要关注的人(例如求职者)为同一人
  2. 该学校确实是真的
  3. 该学校确实颁发过这个学位证明,且没有撤回这个学位

如果把学位证明数字化,就是可验证凭据。把数字学位证的场景抽象一下,VC的验证者关注的是

  1. VC的持有者和某个具体的人(或者机构,或者物)相同
  2. VC的颁发者本身可验证
  3. VC的颁发者确实颁发过这个VC,且没有撤回这个VC

SBT = VC

我们把场景切换到上面说描述的POAP,看看VC的概念是否成立。我前天(2022年10月29日的)参与了某场Web3线上研讨会,那么该研讨会的组织方可以给我发一个参与证明(Proof of attendance, 简称POA),以后我可以把这个POA给其他的人或者组织(Relying party,简称RP)看,他们需要了解

  1. 我和POA持有者(某个账号)确实为同一人
  2. 确实由OpenMPC社区、CSDN Meetup、TBI联合在2022年10月29日举办了"Web3.0前瞻:开放互联,智引未来”的主题沙龙
  3. 沙龙的组织者确实给POAP持有者账号发了一个POA,该POA无法被撤回 这3个问题搞清楚了,RP就能确信,昨天参会的组织者给我发了参会证明。RP还能进一步推理,如果参会组织者还比较靠谱的话,大概率是我确实参会了。

事实上,POAP的设计就是用来解决RP验真这个问题的,因此和VC的特点完全吻合。当我们说可验证凭据(VC)时,其实就隐含了不可转让的概念:凭据只是颁发者颁发给凭据拥有者的,后者显然不能转让给第三方。

POAP是Vitalik用于解释SBT的例子,而套到VC上完全适用,所以

SBT = VC
灵魂通证就是可验证凭据

不同的社区,一个来自公有区块链(以太坊),一个来自数字身份,独立发明的两个概念,其本质完全相同,为我们指明了未来Web3世界的一个重要组件:灵魂通证或者可验证凭据。