
本文属于老雅痞原创文章,转载规矩不变,给我们打声招呼~
转载请微信联系:yaoyaobigc,更多DAO、Web3、NFT、Metaverse资讯请关注老雅痞👇
导读
今日FastDaily共推送3篇文章。
灵魂绑定代币自V神提出后,热的嘞,大家都想抢先下手。灵魂绑定代币愿景、概念我们都懂,但是,设计原则、实现方式和示例,你能说出来多少?推荐阅读本文。
拍卖在加密世界随处可见。Web2对拍卖可没少研究,也总结出了很多经验结论。这些经验对Web3有没有参考价值?推荐阅读第一条,a16z关于链上拍卖的最新文章。
加密货币真的被绝大多数人知道,基本上就是在俄乌争端时期。加密货币的抗审查性,不可更改性,匿名性等特点,天然的成为了战争时期关于钱的最佳选择。推荐阅读第三条,给你捋清楚当时,都发生了写什么。
灵魂绑定代币愿景、设计原则、实现方式和示例
灵魂的构建第一部分:SBT的ABC

-
在NFT项目中验证艺术家的合法性 -
大多数NFT艺术家依靠OpenSea和Twitter这样的中心化平台来承诺稀缺性和初始出处。 -
如果艺术家能将他们的NFT项目与他们的SBT联系起来,SBT有助于提供出处 -
通过信誉释放担保不足的借贷市场 -
代表教育证书、工作历史和租赁合同的SBT可以作为信用相关历史的持久记录,使灵魂能够以有意义的声誉来避免抵押品要求并获得贷款。 -
减轻对DAO治理的攻击并改善其协调性 -
缓解Sybil攻击 -
动态领导权分配 -
治理的多样性 -
用可分解的、共享的权利和权限创建新的市场 -
衡量去中心化
-
如果可转让性的目标是为了使治理权力能够广泛分配,这将导致一个相反的效果,因为中心化的利益集团更倾向于从其他人那里获得治理权。 -
如果目标是将权力委托给有能力的领导人,那么可转让性就会产生反作用,因为没有什么能禁止有积极性但不熟练的人获得治理能力。
-
个人资料 -
医疗数据 -
财务数据 -
基于信誉的数据

-
哈希数据是一种相对简单的保持数据隐私的方法。 -
哈希是输入数据的固定长度的单向变换。 -
例如,如果我们可以将一个秘密的“Spartan Labs ”输入哈希函数。 -
哈希函数将把这个数据转换成一系列十六进制,如`ca9210da4bd8dda215176e8621b84f477da40ffa2158eeff7ef5d14613dfa695`。 -
这个十六进制是固定长度的,这意味着所有的散列结果都有相同的长度,从统计学上来说,不可能从中推断出 “Spartan Labs”。 -
这里使用的哈希函数是SHA-256。 -
如果散列的数据与链上的散列值一致,就可以验证用户的属性。 -
其他各方将无法查看SBT的链上数据,如果散列的结果相同,就可以证明数据的有效性。
-
项目可以向用户发放一个秘密密钥,然后他们可以对自己的数据进行加密,他们可以与其他可能需要验证其数据的项目分享。 -
然而,这不是一个简单的方法,它要求用户保持他们的对称密钥的私密性,而其他想要利用用户的SBT数据的Web3项目也要实现同样的解密过程。

零知识证明(zk-Proofs)允许人们证明任意的陈述,而不需要透露陈述本身以外的任何信息。
-
zk-Proofs可以在SBT上计算,以证明一个灵魂的特征(例如,它有某些成员资格),而不透露什么是特征。 -
这通常被用于使用ZK-Rollup技术的L2,如zkSync、Polygon Hermez和Scroll。
-
如果SBT存储在链外位置,应该有一个建议的标准,让其他项目如何根据链外存储的数据结构查询数据。 -
如果SBT有私人数据,应该有一个简单的方法来(1)验证用户提供的URI,或者(2)证明用户有某种属性而不透露URI,而只是秘密本身的哈希值。这是参考了ZK技术的使用。
-
用户提交他们的KYC信息,由现实世界的实体进行验证。一旦这些信息得到验证,该项目就会为用户开采SBT。用户提供的信息是加密的,并存储在链外。 -
其他对手方项目也可以验证用户是被KYC过的,并且有某些属性,但不知道用户的具体信息。这些链上KYC的属性通过加密是私有的。然而,用户可以向这些其他对手方项目提供秘密,这就为他们提供了读取和验证其链上私人信息的能力。 -
用户可以通过向负责的主要项目提出修改建议来更新他们的链外信息。
灵魂的构建第二部分:SBT的实施

-
不可伪造 -
不可转让 -
发放和验证灵魂的可组合性 -
隐私 -
用于SBT的链外数据存储



-
将项目存储在一个地址,该地址是(i)一个索引的哈希值,(ii)收件人地址,和(iii)属于收件人的秘密。 -
你可以将你的秘密透露给一个接口,然后它将搜索所有可能属于你的物品,但除非你透露你的秘密,否则没有人会知道哪些物品是你的。 -
用户提供的秘密将使平台能够找到与用户的SBT相关的所有数据。 -
这种方法也被称为消息认证的键合(HMAC)。它是通过对数据和共享秘密密钥运行加密散列函数而获得的消息认证码。 -
为什么会有这种效果?以太坊地址是由Keccak-256哈希值生成的,并以十六进制数字表示。Keccak-256散列的最后20个字节被用来生成地址。 -
由于一个十六进制数字是4位,我们将把Keccak 256哈希值的最后40位作为我们的地址。我们可以在这个地址上部署我们的项目。 -
然而,请注意,用秘密的散列应该在链外进行,因为区块链上的一切(包括私人状态变量)都是公开的。 -
因此,在部署或铸币时,只应提供哈希值而不是秘密。

-
借贷平台首先对Bob进行KYC。 -
部署地址由Bob的客户ID、他的链上地址和“ Peanut”--他想出的一个秘密产生。 -
Bob的客户ID、地址和秘密被散列在一起,得到一个地址,用于数据部署地址。 -
然后,一个包含Bob的KYC数据的SBT被部署到链上的部署地址。 -
除了知道Bob的秘密的人,没有其他人可以扫描Bob的KYC数据。 -
当一个项目想要查看Bob的KYC数据时,Bob只需要提供他的秘密 “Peanut”,他们就可以获得Bob的所有KYC数据。



灵魂的构建第 3 部分:使用 zk-SNARK 实现的灵魂绑定代币

-
零知识:在互动过程中,验证者除了知道声明的有效性外,什么都不知道。 -
简洁:证明很短,可以快速验证。 -
非交互式:没有或仅有少量的交互。对于zk-SNARKs,通常有一个设置阶段,在这之后,从证明者到验证者只有一个消息。此外,SNARKs通常具有所谓的 “公共验证者 ”属性,即任何人都可以自己验证证明。 -
争论:验证者只针对计算能力有限的证明者进行保护。具有足够处理能力的证明者可以生成关于不正确语句的证明/论证。这被视为“计算上的健全性”,与 “完全健全性 ”相对。 -
知识的:证明者如果不知道某个所谓的证人,就不可能构建一个证明/论证。






-
项目(验证者)将运行生成器来生成证明密钥和验证密钥。 -
然后,任何用户(验证者)可以使用证明密钥来生成链外证明。 -
用户可以通过运行具有以下输入的证明算法来做到这一点——证明密钥、公共输入和私人见证(由秘密的哈希值和秘密生成)。
-
智能合约内的一般验证算法可以用证明、秘密的哈希值和验证密钥作为公共输入参数运行。 -
然后,验证算法的结果可用于触发其他链上活动。


https://docs.circom.io/background/background/#zero-knowledge-proofs)


https://github.com/SpartanLabsXyz/zk-sbt/blob/master/contracts/Verifier.sol




