文/ Yong Kang Chia和Jun Hao Yap,Spartan Labs,标题:The Construction of the Soul Part 2: Implementations of SBT
这是一个由三部分组成的系列文章,介绍SBT的基础知识、对SBT的愿景、其技术实施以及利用ZK技术的可能性。系列文章的目标是揭开SBT技术思想的神秘面纱,并提供一种实现来构建具有社会身份集成的Web3未来。第1部分讨论什么是SBT及其基本特征(参阅金色此前翻译文章“SBT基础知识和潜在案例全解析”)。第2部分讨论其基础实现以及如何使用SBT添加隐私。第3部分将讨论如何使用ZK技术来改善SBT隐私。
本文为其第2部分,将根据第一部分提出的设计指导原则谈一谈SBT的实现。
1、实现思路 1.1 与NFT的比较 1.2 基础SBT → 1.2.1 铸币和销毁 → 1.2.2 链下存储 → 1.2.3 验证SBT属性 → 1.2.4 更新 SBT 数据 → 1.2.5 基本使用SBT → 1.2.6 SBT对隐私的需求2、具有私有数据存储的SBT 2.1 将数据存储在链上但对地址进行散列 → 2.1.1 示例用法 → 2.1.2 讨论具有链上散列的 SBT 2.2 存储IPFS 等第三方提供商的链下项目 → 2.2.1 将链下数据与链上哈希链接连接 → 2.2.2 链下秘密的风险。3、结论
金色午报 | 9月18日午间重要动态一览:7:00-12:00关键词:哥伦比亚、Filecoin、微众银行、宁波银行
1. 外媒:哥伦比亚金融部门或将被允许进行加密交易。
2. Filecoin主网未上线 已有匿名团队推出分叉链“Filecoin Vision”。
3. 微众银行区块链开源WeDPR隐私保护核心技术。
4. SBF:将实行保证金交易 把大部分SUSHI空投保留一年以上。
5. 8687.4万UNI代币已被领取,占1.5亿空投总量的57.91%。
6. Cryptopia被盗资产的用户索赔流程将于年底前启动。
7. 宁波银行:需警惕数字货币投资局。
8. MicroStrategy首席执行官:为收购价值2.5亿美元BTC进行了将近8万笔场外交易。[2020/9/18]
在本小节内容中,我们将讨论SBT的实现及其利弊权衡。
既然NFT和SBT听起来确实很相似,那么在具体实现方面,这些数据结构之间的关键区别是什么呢?
不可转移性
与被设计为可交易的NFT不同,SBT在本质上应该与灵魂绑定在一起,应该是不可转移的。
隐私保护
NFT的数据是公开的。然而,SBT项目可能希望保留其数据的私有性。
隐私可以通过各种不同方法实现。
可组合性
SBT的数据应该很容易被其他链上或链下项目读取。
以SBT特性为指导原则,我们在Solidity中实现了SBT。(https://github.com/SpartanLabsXyz/spartanlabs-contracts/tree/main/contracts/SoulBoundToken)
我们将在下面小节内容中讨论我们的实现。
基础SBT可以作为模板供其他希望在SBT上构建的项目使用。基础实现不涉及隐私方面的讨论,隐私相关内容将在本文的第2节中展开。
金色财经行情播报丨BTC小幅震荡下行 行情较为疲弱:据火币行情显示,今日BTC行情小幅震荡下行,从昨日上冲高位9290USDT最低探至9170.33USDT,行情表现较为疲弱。日线图昨日突破平台上冲后承压均线MA10,今日下跌受均线MA5支撑。4小时图局部下行通道,MA10构成支撑,1小时图在9170USDT附近表现支撑力量,在未完全回吐昨日上冲利润前,多头或有机会再度发力。截至18:30,主流币的具体表现如下:[2020/7/2]
1.2.1 铸造和烧毁
合约是这样设计的:铸造应由项目所有者把关。这是为了防止用户可以铸造任何SBT信息带来的潜在漏洞,比如用户会铸造一个良好的信用评分,但这并不是项目的意图。这个想法是,项目应该确定、验证和铸造与SBT相关的正确数据。
同样,对于与地址相关联的SBT的烧毁,我们也认为用户不应该具备轻易删除其数据的能力,特别是当该数据包含某个负面属性时。用户应该能够提议烧毁他们的SBT,但烧毁的执行应该由项目所有者决定。
那些希望允许用户选择删除数据的项目可以实现烧毁。例如,如果一个用户出于与项目的目标不一致,想要从项目中删除所有信息,那么他应该拥有这样的选项。
另一个需要考虑的问题是,项目可能希望管理他们的SBT社区,并在用户违反他们的社区管理条款、条件时删除用户。例如,在一个发布SBT的社区中,也许会有用户不遵守规则并表现出不适当的行为。因此,社区可以决定是否从其项目中删除用户的SBT。这样的社区可能希望进一步实现一个建议机制,以允许删除数据的自燃建议或烧毁其他人SBT的建议。
1.2.2 链下存储
数据可以存储在链上或链下。在我们的实现中,我们假设SBT的数据存储在链下,由IPFS作为供应方。在我们的实现中,链下存储的URI可以与数据结构“Struct Soul”中的标识符相结合。
金色晨讯 | 4月10日隔夜重要动态一览:21:00-7:00关键词:国务院、发改委、富达、比特币基金
1.中共中央、国务院:培育数字经济新产业、新业态和新模式。
2.北京市发改委:要布局基于区块链等的全媒体建设。
3.欧盟成员国财长就5900亿美元的抗疫救助方案达成协议。
4.跨域审判辅助事务协作机制依据区块链工作原理。
5.CME比特币期货4月合约收跌0.61%。
6.富达集团拓展加密交易产品。
7.标普500指数创1974年以来最大单周涨幅。
8.加拿大3iQ公司申请的比特币基金已在多伦多证券交易所上市。
9.比特币夜间窄幅震荡,最低价为7232.06美元,最高价位7318.07美元。[2020/4/10]
项目能够根据他们是想在链下还是链上存储SBT属性来调整提议结构。
1.2.3 SBT属性验证
其他交易对手项目应该能够轻松检索SBT数据。
这对于想要验证用户SBT属性的交易对手来说很有用。其他项目将能够查验一个地址是否绑定了灵魂,并验证该灵魂所包含的属性。
这对于SBT与不同项目的可组合性非常重要,其他项目可能希望进行交互并验证用户的属性。但是,用户和项目可能不希望公开数据,有一些方法是可以保护数据隐私的。
1.2.4 SBT数据的更新
我们不希望用户或其他方更新灵魂,我们希望由经许可的权威方来更新,因为我们希望对数据的更改能得到验证。
由项目来实现合约,这样用户可以在链下提议对灵魂的更改,再由项目来验证更改是否有效并更新链上更改内容。
金色财经现场报道 Streamr宣布与诺基亚合作 允许将移动客户数据货币化并进行购买:金色财经现场报道,今日在Coindesk 2018共识会议上,区块链数据平台Streamr首席执行官Henri Pihkala宣布与诺基亚和加州软件公司OSIsoft合作,将允许移动客户将用户数据货币化并进行购买。Pihkala同时还表示推出了一个实时数据市场,用户可以通过该市场出售和订阅实时数据流。此外,该公司还推出了Streamr API,以帮助促进其服务被采用。[2018/5/17]
1.2.5 基础SBT用例
SBT的基础实现适用于希望将数据分配给非私有用户的项目。例如,想要奖励白名单对NFT收藏的支持的项目可以使用基础SBT。在未来,这类项目可以空投奖励到这些SBT地址。
在之前的文章中,我们提出了如何将SBT作为识别NFT Locker的潜在用例。
例如,当NFT在TimeLock.sol中被锁定时,Locker可能仍然希望“显示”他们确实拥有这样一个锁定的NFT。然而,从开发人员的角度来看,引用锁定的NFT是很奇怪的。因此,“灵魂绑定”代币可以表示出用户锁定NFT的时间,它们可以被允许进入“hall of fame”。在解锁时,一个不可转移的包装代币需要被“燃烧”来解锁NFT,并且Locker将不再具有“hall of fame”地位。
1.2.6 SBT的隐私需求
然而,上述的基础SBT并没有考虑到隐私方面的需求。
正如在前一篇文章中提到的,web3的未来必将要与你的真实身份进行一定程度的集成。因此,链上集成后保持个人身份的隐私是至关重要的,这样才能保护自己免受来自恶意行为者的伤害,比如,恶意行为者可查看区块链的公共数据,还原个人身份。
任何记录在链上的关系都可以立即被全世界的任何人看到,而不仅仅是参与者。通过关联SBT数据,恶意行为者可以从灵魂中还原用户的真实身份。
金色财经独家分析,越南发布数字货币监管框架有助于挤压数字货币泡沫:在这周周一,两家分别来自新加坡和迪拜的加密货币初创公司在越南涉嫌通过ICO6.6亿美元,此事发生之后,周三时,越南总理便签署关于“加强对比特币和其他数字货币管理的法律框架”指示,全球又增加一个对加密货币监管的国家。不过从越南总理的行动来看,此次越南选择建立加密货币监管框架,而不是通过一刀切来制止,这对于越南的数字货币发展是有着良好的促进作用,法律框架的出现让众多数字货币不再会像野草般疯长,而是将越南数字货币市场中泡沫挤压出去,让真正有价值的数字货币在法律的框架下生长。[2018/4/12]
例如,如果人性证明得到更广泛的应用,保护隐私将变得更加关键,因为另一种景象是,我们所做的一切都将在链上直接与一张人脸相连。
V神在其研究文章中提出了一些可能实现的具有隐私性的SBT,可以通过链上存储和链下存储来实现。
在本节内容中,我们将讨论SBT数据私有存储的可能实现方式。
将数据项存储在一个地址中,该地址是以下数据的哈希值:(1)索引、(2)收件人地址和(3)专属于收件人的秘密。
你可以向一个接口透露你的秘密,然后它会搜索属于你的所有可能的数据项,但没有人会知道哪些具体项是你的,除非你自己泄密。
用户提供的秘密将允许平台找到与用户的SBT相关的所有数据。
这种方法也称为密钥散列消息身份认证(HMAC)。它是通过对数据和共享密钥运行加密哈希函数获得的消息身份验证码。
为什么这个方法会奏效?以太坊地址由Keccak -256散列生成,并以十六进制数表示。Keccak -256散列的最后20个字节用于生成地址。
因为一个十六进制数是4位,所以我们将Keccak 256散列的最后40位作为我们的地址。我们可以在这个地址部署我们的项目。
但是,请注意,带有隐私数据的哈希应该在链外执行,因为区块链上的所有内容(包括私有状态变量)都是公共的。
因此,在进行部署或铸造时,应该只提供哈希值,而不提供隐私数据。
(上图为如何在一个特定地址上进行用户隐私数据布署)
2.1.1 范例
例如,Bob希望使用基于信用的借贷dApp铸造一个SBT。
借贷平台首先对Bob执行KYC验证。
部署地址是由Bob的客户ID、他的链上地址和他的名为“Peanut”的秘密(隐私内容)生成的。
Bob的客户ID、地址和秘密被哈希在一起,以获得一个用于数据部署地址的地址。
然后在部署地址链上部署一个包含Bob的KYC数据的SBT。
除了知道Bob秘密的人,没有人可以查看Bob的KYC数据。
当一个项目想要查看Bob的KYC数据时,Bob需要做的就是提供他的秘密“Peanut”,这样他们就能够获得Bob的所有KYC数据了。
2.1.2 关于SBT链上哈希的讨论
优点:
该方法允许与协议轻松互操作,因为我们所需要的只是检索数据项所需的秘密、索引和地址。
缺点:
然而,将数据项部署到特定地址是件麻烦事,而且要消耗的大量的gas费。
此外,将所有与SBT相关的数据都存储在链上没有意义,有些数据可能更适合存储在链下。
更重要的是,用户的秘密掌握在项目方手中;长期使用可能会导致泄密,类似于如今常见的密码泄露。
正如上一节提到的,把大多数数据存储在链上成本太大。因此,更好的方法是将数据链下存储在第三方平台(如IPFS或其他云服务)上。这种在链下存储数据的方法非常类似于NFT,NFT的数据通常也是存储在链下的。
不同之处在于,为了确保隐私,我们首先必须使用加密哈希函数(如SHA256)对URI字符串进行哈希。URI数据的哈希应该在链下完成,因为区块链上的所有数据都是公开的,甚至是私有的状态变量也是如此。
为了防止暴力攻击识别包含链下数据的链接,哈希值不应该仅仅是链接本身的哈希值。它可以是用户秘密的函数,与链下数据存储链接,或者使用递归哈希或其他方法。这也被称为salting(加盐)。
下面是使用SHA256的Python实现示例:
这只是一个实现示例。还有许多其他方法可以模糊URI,例如随机附加秘密、生成随机秘密、peppering(加胡椒),以及使用专门为安全存储密码而设计的其他算法。
然后使用数据的哈希值进行SBT的链上部署,而不是使用数据本身。
2.2.1 连接链下数据与链上哈希链接
我们怎样才能将链下数据与链上哈希链接连接起来呢?
对合约所有者来说,一种可能的方法是将存储在链下位置的数据结构标准化。因此,SBT的所有者可以透露链下数据的链接,而项目(不一定与部署人员相同)可以哈希链接,以检查它是否与链上哈希值相同。如果哈希值相同,项目可以进行查询来检索存储在链下位置的数据。
为了保护用户的秘密,对包含用户数据的链接的验证必须由可信的、安全的第三方在链下完成。
2.2.2 链下秘密风险
链下传输秘密可能使用户暴露于漏洞和各种攻击之下。
项目必须确保秘密传输的安全,并防止常见的攻击,如回放攻击、中间人攻击和许多其他常见攻击。
一旦处理SBT检索的第三方的安全性遭到破坏,个人的秘密就会公开。
项目还应注意网络钓鱼攻击,因为用户可能会被提示在复制原始密码的恶意网站上输入密码。
此外,证明用户具有某种属性的唯一方法就是公开秘密。但是,为了创建SBT的匿名组合性,使不同的协议可以检索SBT数据,用户应该公开必要的最小数据量。
如果项目所需的只是验证某个属性,那么用户不应该透露全部秘密。用户应该将他们的秘密向尽可能少的项目披露。
因此,我们需要考虑另一种方法,在这种方法中,项目能够验证用户具有某个属性,而用户则不会泄露他们的秘密。
在本文中,我们基于本系列第1篇文章中介绍的设计指导原则,介绍了SBT的实现。我们实现了基础SBT以及具有链上和链下私有存储的SBT。然而,链下存储可能并不是真正的私有,因为用户将不得不公开他们的秘密,以证明他们拥有某种属性。
ZK(零知识证明)技术的使用可以帮助我们减少用户的秘密分享量,以保持他们的SBT数据真正的私有性。这就引出了本系列文章的第3篇内容,在第3篇文章中,我们将介绍使用zk-SNARK实现的SBT,在这种实现中,用户的秘密可以保持隐藏状态,防止受到各种方式的攻击。
PANews
DeFi之道
成都链安
金色早8点
Bress
财经法学
链捕手
是陷阱?还是风口上的猪?自今年1月份以来,NFT以迅雷不及掩耳之势霸占着新闻头条、充斥着我们的朋友圈。昨日晚间11点左右,世界顶尖拍卖行佳士得首次拍卖的一则NFT作品竞拍结束,加密圈无眠.
1900/1/1 0:00:00虽然 NFT(非同质化代币)早在 2018 年初就出现了,但是它最开始只在小圈子(数字货币爱好者)里流行,用例也很小众(数字猫咪收藏品)。3 年后,我们看到艺术家、设计师、游戏开发者、音乐家和作家都开始使用 NFT 技术.
1900/1/1 0:00:00“NFT的Shopify”实际上就是Shopify。这家电子商务巨头正在为市场提供NFT支持,NHL的超级明星Alexander Ovechkin也进入了NFT市场,Lollapalooza音乐节给我们带来了不仅仅是通证,我们将从哪里.
1900/1/1 0:00:00金色财经现场报道,9月20日,由金色财经主办,水桥区块链总冠名的“共为·创业者大会”在厦门举办。数字文艺复兴基金会董事总经理曹寅做了主题为《波卡上的DeFi新大陆》的演讲.
1900/1/1 0:00:008月9日,38个钱包地址的USDC被冻结,这是USDC背后的Centre公司为了回应美国财政部对Tornado Cash的禁令。发生在现实世界的冻卡会影响加密市场,发生在链上的冻结带来的冲击只会更大.
1900/1/1 0:00:00在接受《链新》专访时,中国当代艺术行业独立策展人顾振清认为,NFT的出现,给了所有对艺术感兴趣的人一个无限宽广的舞台,由于NTF是一种程序正义和代码公平,可以让更多艺术家分得中心化体制的一杯羹,让更多艺术家在市场上及时分得利益.
1900/1/1 0:00:00