灵魂绑定代币或许将大放异彩,它探索的是社会结构问题。
撰文:0xNSHuman
编译:派蒙
这是一篇探索性质的文章,也是灵魂绑定代币(Soulbound Token,SBT)概念及其在去中心化社会中应用的早期试验结果报告。
Vitalik Buterin, E. Glen Weyl 和 Puja Ohlhaver 的论文,引导人们思考早期去中心化社会 DeSoc 的基本原理具体形式。本文灵感来源于一些实例,并将在 SBT 星座图上把这些实例可视化。
可视化图例后面附带了一些轻量智能合约接口和实例演示。
首先,我们定义几个概念和符号:
图片上的前两个概念已经在原论文中有了很好的解释:
「一个人可能有一个 Soul, 它储存了代表教育证书、就业历史、或其著作或艺术作品哈希值的 SBT。」
新引入的链上实体概念,则是用于区分个人与协议、DAO、去中心化机构等群体。我们将看到双方是如何相互依存,并在过程中建立信任并不断创新。
现在说说灵魂网络(Soulweb)本身。
或许大家已经了解到了一点,那就是 SBT 的「卖点」在于不可转让。关于这部分 @pastry 做了一个很好的总结。
我发现了一个更让自己感到兴奋的点,那就是图谱(Graph Theory)。
由于具备扩展性与实用性,图谱为我们带来的便利非常惊人。例如,为了传递这篇文章,互联网协议计算出了通过全球图谱上成千上万的路由器向你的设备发送电信号的最快方式。
Dijkstra’s algorithm—— 来自维基百科
用于寻找 a 和 b 之间的最短路径。通过选取距离最短的且未经访问的节点,计算其与其他未被访问的相邻节点直接的距离,取较小值更新相邻节点距离,并在处理完所有相邻节点后,将当前节点标记为已访问(红色)。
社交图谱(Social Graphs)是大多数社交网络依赖的一个重要子集。
我们都知道的最大的 web2 社交网络就是一个庞大的社交图谱。@LensProtocol 是最近一个去中心化的社交图谱架构的例子。
那么,灵魂绑定代币为什么如此重要呢?
有向图(Directed Graph)—— 一组通过有向线段连接的节点, 是一种可以有效保存且可便利的映射社会关系的最佳方式。
上图左侧显示了一个记录数组,其格式如下:
{FROM, TO, SBT}
这对任何人来说都是足够细致的有效信息,完全可以恢复右图中的结构。
现在,假设我们有一个代币空投计划要完成,这个图谱将如何协助我们呢?
我们要把它转化为加权有向图(Weighted Directed Graphs)。
如果你相信一些特定发行者的 SBT 是合法的,你可以根据对空投影响程度为每一种 SBT 分配或计算分数。
然后算出每个节点的总分。
上面的例子非常简单,因为前提假设是仅计算最近的节点,而在复杂的社会网络中不一定是这样 ——SBT 会不断产生 SBTs。
幸运的是,图论为我们提供了各种各样的搜索算法。
图形遍历(Graph traversal)—— 来自维基百科
在计算机科学中,图形遍历(也称为图搜索)是指访问(检查和 / 或更新)图中每个顶点的过程。这种遍历是按访问顶点的顺序来分类的。树形遍历是图形遍历的一个特例。
有了能够实现社交图谱遍历和有效载荷计算的工具加成,现在让我们想象一下去中心化社会(DeSoc)是什么样子。
上图是一个关联紧密的灵魂网络图谱的示例。
虽然在相邻的主题和关系之间有明显的 SBTs 发布集群,但整个社会从每个角落的存储数据的财富和深度中受益。
声誉和信任因此成为一种资源:
正如原文所提到的那样:
DeSoc 为 J.C.R.Licklider(APRANET 创始人)关于建立「星际间计算机网络」的远景提供了强力支持。这种愿景旨在信任的基础上增加社会活力,并让灵魂对社会关系进行「编码」,从而共同创造巨额资产。
诚然,这样强大的技术为乌托邦式的使用案例提供了可能性。
即使我们把「灵魂」根据情景分割成为独立身份,定位到图谱上的节点从而获取整体信息只是时间问题。幸运的事,灵魂图谱和区块链一样,有例如链外数据加密和迅速崛起的零知识证明(ZK)等隐私保护技术。
由于零知识证明能够让人们为社会提供所需要的答案,同时保持个人信息不被纳入图谱,ZK 与 SBT 非常适配。例如,一个 SBT 可以证明你在过去偿还了至少 5 个 ETH 的贷款,同时并不会透露具体的金额与债权人信息。
尽管下面的代码中有一个为了说明 ZK 在 SBT 用例中的简单例子,本文不会集中讨论 ZK,如果想要深入了解零知识证明,推荐 @pseudotheos 的解释。
这是一个有点技术性的问题,跳过代码也没关系。
这篇文章中使用截图而不是代码片段另有原因,下面附有 GitHub 完整代码链接。
代码实现了合同接口和图谱的重新计算,文章下一部分是关于这些想法的简单分享。
准则开始于定义一个通用的非转让代币的接口,这一代币具有以下特点:
声明:这个版本是次优且不安全的,作者仍在继续改进,因此不建议任何人采用
这一接口仅将 SBT 属性的更改权限赋予发行者以及类似「白名单」中的访问者身上。也可以说,一些 SBT 在发行期间作为基础单位,被设置了不可改变的属性。
无论如何,请注意「发行(Issue)」、「赎回(Revoke)」、「建立属性(SetAttribute)」等三个事件。
这一事件用于索引层,类似 @graphprotocol「写下」相关信息,这些信息可供链外算法用于遍历 DeSoc 图谱,并计算出所有需要的数值。
建立了普适性的准则后,我们创建一个 $LOAN 代币,可以由债权人发放给借款人,并具有诸如贷款金额和利率等属性。
为了抹去还清贷款后的历史记录,此处创建了另一个将被发放给灵魂的代币 ——$PAID。
贷款者可以选择保留或销毁原有的贷款代币,或者对调一个名为「isPaid」的布林值。
在这个例子中,持有人账户中的 $LOAN 被撤销,但合同中保留了该代币的历史属性。
链上数据的保留程度将由 SBT 开发者决定,这个通用的解决方案及可以作为内置值储存也可以作为外键存在。
最后的部分则是一个链上实体 —— 信用实体。借款人可以在整个贷款周期内调用此函数并获得 SBT。
上文中提到了,SBT 可以通过零知识证明来维护隐私。
在这种情况下,$ZKLOAN 和 $ZKPAID 灵魂绑定的代币将具有满足社会中任何特定行为者要求同时保护持有人隐私的属性。
零知识证明是将在不久之后投入使用的财富。
实例到此为止,作者仍在为 SBT 场景应用基础与用例方面进一努力,并且在那之后这些用例将被逐渐归纳为「准则」。
许多人已经感受到了与多年前 NFT 研究早期前沿的类似的气息,灵魂绑定代币或许将大放异彩。然而我们这次遇到的问题是社会结构。本文提到的简单概念,可能会变成强大的去中心化文明增长引擎,也可能被用作歧视、腐败、针对个人和其他乌托邦式的用例的工具。
一步一步地建立生态系统,引导社会的技术层,使其变得更好,这是一个令人兴奋的挑战。
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。