皇冠体育寻求亚洲战略合作伙伴,皇冠代理招募中,皇冠平台开放会员注册、充值、提现、电脑版下载、APP下载。

首页科技正文

三公大吃小玩法规则教程(www.eth108.vip):以太坊彩票网(www.326681.com)_金色考察|Spartan Labs研报:基础SBT以及隐私性SBT的实现

admin2022-09-242

足球博彩平台www.hg108.vip)是皇冠体育官网线上直营平台。足球博彩平台面向亚太地区招募代理,开放皇冠信用网代理申请、皇冠现金网代理会员开户等业务。足球博彩平台可下载皇冠官方APP,皇冠APP包括皇冠体育最新代理登录线路、皇冠体育最新会员登录线路。

文/ 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、结论

1、SBT实现思绪

在本小节内容中,我们将讨论SBT的实现及其利弊权衡。

1.1 SBT与NFT的对照

既然NFT和SBT听起来确实很相似,那么在详细实现方面,这些数据结构之间的要害区别是什么呢?

不能转移性

与被设计为可生意的NFT差异,SBT在本质上应该与灵魂绑定在一起,应该是不能转移的。

隐私珍爱

NFT的数据是果然的。然而,SBT项目可能希望保留其数据的私有性。

隐私可以通过种种差异方式实现。

可组合性

SBT的数据应该很容易被其他链上或链下项目读取。

以SBT特征为指导原则,我们在Solidity中实现了SBT。(https://github.com/SpartanLabsXyz/spartanlabs-contracts/tree/main/contracts/SoulBoundToken)

我们将在下面小节内容中讨论我们的实现。

1.2 基础SBT

基础SBT可以作为模板供其他希望在SBT上构建的项目使用。基础实现不涉及隐私方面的讨论,隐私相关内容将在本文的第2节中睁开。

1.2.1 铸造和销毁

合约是这样设计的:铸造应由项目所有者把关。这是为了防止用户可以铸造任何SBT信息带来的潜在破绽,好比用户会铸造一个优越的信用评分,但这并不是项目的意图。这个想法是,项目应该确定、验证和铸造与SBT相关的准确数据。

同样,对于与地址相关联的SBT的销毁,我们也以为用户不应该具备容易删除其数据的能力,稀奇是当该数据包罗某个负面属性时。用户应该能够提议销毁他们的SBT,但销毁的执行应该由项目所有者决议。

那些希望允许用户选择删除数据的项目可以实现销毁。例如,若是一个用户出于与项目的目的纷歧致,想要从项目中删除所有信息,那么他应该拥有这样的选项。

另一个需要思量的问题是,项目可能希望治理他们的SBT社区,并在用户违反他们的社区治理条款、条件时删除用户。例如,在一个公布SBT的社区中,也许会有用户不遵守规则并显示出不适当的行为。因此,社区可以决议是否从其项目中删除用户的SBT。这样的社区可能希望进一步实现一个建议机制,以允许删除数据的自燃建议或销毁其他人SBT的建议。

1.2.2 链下存储

数据可以存储在链上或链下。在我们的实现中,我们假设SBT的数据存储在链下,由IPFS作为供应方。在我们的实现中,链下存储的URI可以与数据结构“Struct Soul”中的标识符相连系。

项目能够凭证他们是想在链下照样链上存储SBT属性来调整提议结构。

1.2.3 SBT属性验证

其他生意对手项目应该能够轻松检索SBT数据。

这对于想要验证用户SBT属性的生意对手来说很有用。其他项目将能够检验一个地址是否绑定了灵魂,并验证该灵魂所包罗的属性。

这对于SBT与差异项目的可组合性异常主要,其他项目可能希望举行交互并验证用户的属性。然则,用户和项目可能不希望果然数据,有一些方式是可以珍爱数据隐私的。

1.2.4 SBT数据的更新

我们不希望用户或其他方更新灵魂,我们希望由经允许的权威方来更新,由于我们希望对数据的更改能获得验证。

由项目来实现合约,这样用户可以在链下提议对灵魂的更改,再由项目来验证更改是否有用并更新链上更改内容。

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数据,恶意行为者可以从灵魂中还原用户的真实身份。

,

以太坊高度数据

,

三公大吃小玩法规则教程www.eth108.vip)(三公大吃小)是用以太坊区块高度哈希值开奖的棋牌游戏,有别于传统三公开船(三公大吃小)棋牌游戏,三公开船(三公大吃小)绝对公平,结果绝对无法预测。三公开船(三公大吃小)由玩家PK,平台不参与。

,

www.326681.com采用以太坊区块链高度哈希值作为统计数据,联博以太坊统计数据开源、公平、无任何作弊可能性。联博统计免费提供API接口,支持多语言接入。

,

例如,若是人性证实获得更普遍的应用,珍爱隐私将变得加倍要害,由于另一种情景是,我们所做的一切都将在链上直接与一张人脸相连。

2、SBT数据的私有存储

V神在其研究文章中提出了一些可能实现的具有隐私性的SBT,可以通过链上存储和链下存储来实现。

在本节内容中,我们将讨论SBT数据私有存储的可能实现方式。

2.1 链上存储数据,但要“哈希”地址

(上图为若何在一个特定地址上举行用户隐私数据布署)

2.1.1 类型

例如,Bob希望使用基于信用的借贷dApp铸造一个SBT。

  • 部署地址是由Bob的客户ID、他的链上地址和他的名为“Peanut”的隐秘(隐私内容)天生的。

  • Bob的客户ID、地址和隐秘被哈希在一起,以获得一个用于数据部署地址的地址。

  • 然后在部署地址链上部署一个包罗Bob的KYC数据的SBT。

  • 除了知道Bob隐秘的人,没有人可以查看Bob的KYC数据。

  • 当一个项目想要查看Bob的KYC数据时,Bob需要做的就是提供他的隐秘“Peanut”,这样他们就能够获得Bob的所有KYC数据了。

2.1.2 关于SBT链上哈希的讨论

优点:

该方式允许与协议轻松互操作,由于我们所需要的只是检索数据项所需的隐秘、索引和地址。

瑕玷:

然而,将数据项部署到特定地址是件贫苦事,而且要消耗的大量的gas费。

此外,将所有与SBT相关的数据都存储在链上没有意义,有些数据可能更适合存储在链下。

更主要的是,用户的隐秘掌握在项目方手中;耐久使用可能会导致泄密,类似于现在常见的密码泄露。

2.2 使用第三方供应方如IPFS,链下存储数据项

正如上一节提到的,把大多数数据存储在链上成本太大。因此,更好的方式是将数据链下存储在第三方平台(如IPFS或其他云服务)上。这种在链下存储数据的方式异常类似于NFT,NFT的数据通常也是存储在链下的。

差异之处在于,为了确保隐私,我们首先必须使用加密哈希函数(如SHA256)对URI字符串举行哈希。URI数据的哈希应该在链下完成,由于区块链上的所有数据都是果然的,甚至是私有的状态变量也是云云。

为了防止暴力攻击识别包罗链下数据的链接,哈希值不应该仅仅是链接自己的哈希值。它可以是用户隐秘的函数,与链下数据存储链接,或者使用递归哈希或其他方式。这也被称为salting(加盐)。

下面是使用SHA256的Python实现示例:

这只是一个实现示例。尚有许多其他方式可以模糊URI,例如随机附加隐秘、天生随机隐秘、peppering(加胡椒),以及使用专门为平安存储密码而设计的其他算法。

然后使用数据的哈希值举行SBT的链上部署,而不是使用数据自己。

2.2.1 毗邻链下数据与链上哈希链接

我们怎样才气将链下数据与链上哈希链接毗邻起来呢?

对合约所有者来说,一种可能的方式是将存储在链下位置的数据结构尺度化。因此,SBT的所有者可以透露链下数据的链接,而项目(纷歧定与部署职员相同)可以哈希链接,以检查它是否与链上哈希值相同。若是哈希值相同,项目可以举行查询来检索存储在链下位置的数据。

为了珍爱用户的隐秘,对包罗用户数据的链接的验证必须由可信的、平安的第三方在链下完成。

2.2.2 链下隐秘风险

链下传输隐秘可能使用户露出于破绽和种种攻击之下。

项目必须确保隐秘传输的平安,并防止常见的攻击,如回放攻击、中央人攻击和许多其他常见攻击。

一旦处置SBT检索的第三方的平安性遭到损坏,小我私人的隐秘就会果然。

项目还应注重网络钓鱼攻击,由于用户可能会被提醒在复制原始密码的恶意网站上输入密码。

此外,证实用户具有某种属性的唯一方式就是果然隐秘。然则,为了确立SBT的匿名组合性,使差其余协议可以检索SBT数据,用户应该果然需要的最小数据量。

若是项目所需的只是验证某个属性,那么用户不应该透露所有隐秘。用户应该将他们的隐秘向尽可能少的项目披露。

因此,我们需要思量另一种方式,在这种方式中,项目能够验证用户具有某个属性,而用户则不会泄露他们的隐秘。

3、结论

在本文中,我们基于本系列第1篇文章中先容的设计指导原则,先容了SBT的实现。我们实现了基础SBT以及具有链上和链下私有存储的SBT。然而,链下存储可能并不是真正的私有,由于用户将不得不果然他们的隐秘,以证实他们拥有某种属性。

ZK(零知识证实)手艺的使用可以辅助我们削减用户的隐秘分享量,以保持他们的SBT数据真正的私有性。这就引出了本系列文章的第3篇内容,在第3篇文章中,我们将先容使用zk-SNARK实现的SBT,在这种实现中,用户的隐秘可以保持隐藏状态,防止受到种种方式的攻击。

查看更多

网友评论