在IPFS上存储经过身份验证和加密的数据是许多Web3应用程序的核心构建块,但是迄今为止,还没有标准化的方式来编码这种类型的数据。
没有标准,许多开发人员被迫为其签名和加密的数据创建自定义格式。通过将数据存储到IPFS的特定实现中,这已经阻碍了IPFS中存储的信息的开放性和互操作性。验证数据的另一种方法是将数据放入IPFS,并将数据的CID放入区块链的智能合约中。从本质上讲,这是在数据之上添加签名并将签名记录持久保存在区块链上的昂贵方法。
随着EIP-2844的引入,该标准允许钱包支持一些新的方法来基于DID和dag-joseIPLD编解码器对数据进行签名和解密,我们现在可以简单地将经过身份验证和加密的数据直接放入IPFS。
什么是DID和JOSE?
路透社:SBF欺诈指控回避了关于美国法律如何看待加密货币的争论:1月9日消息,Sam Bankman-Fried可能会发现很难辩诉应该撤销针对他的欺诈指控,因为美国法律如何对待加密货币存在不确定性,就像涉及数字资产的刑事案件中其他被告一样完成了。法律专家表示,这是因为曼哈顿联邦检察官对现已破产的加密货币交易所 FTX 创始人的指控在很大程度上回避了正在进行的关于加密货币是否应作为证券或商品进行监管的辩论。但据专家称,这种不确定性与针对SBF的大部分指控无关。虽然他面临一项串谋证券欺诈的指控,但该指控称他误导了FTX的股票投资者,并未涉及交易所交易资产的性质。[2023/1/9 11:02:36]
DID是用于分散标识符的W3C标准。
具体内容可以参考我们上一篇文章:Astral构建新世界。本文仅在这里简单介绍,DID指定了从字符串标识符到包含用于签名验证和密钥交换的公共密钥的DID文档的一般方法。在大多数DID方法中,出于安全原因旋转键时可以更新文档。
Terra 2.0 社区已启动就有关如何分配 0.5% 应急资金提案的投票:6月9日消息,Terra 2.0 社区已启动就有关如何分配 0.5% 应急资金提案的投票,该提案建议将这部分资金分配给在 Terra Classic 上推出过符合市场需求的产品,包括产生了一定量的 TVL 和没有产生 TVL 的项目以及尚未推出过符合市场需求产品的项目,并提议向以上三类项目分别分配 250 万枚 LUNA、100 万枚 LUNA 和 150 万枚 LUNA。此外,该提案建议组件一个由部分 Terra 社区的长期成员组成的理事会监督分配工作。[2022/6/9 4:13:09]
JOSE是IETF国际互联网工程任务组的标准,代表JSON对象签名和加密,几乎可以解释其含义。该标准有两个主要原语:JWS和JWE。这两种格式都允许多个参与者:在JWS中,有效负载上可以有一个或多个签名,而在JWE中,加密明文可以有一个或多个接收者。
央行回应非指定机构如何参与数字人民币运营:央行表示,需发挥其他商业银行及非银行支付机构作用,与指定运营机构一起,共同提供数字人民币流通服务,包括支付产品设计创新、系统开发、场景拓展、市场推广等服务。(一财)[2021/7/16 0:57:56]
使用dag-jose和EIP2844进行构建
当我们使用dag-jose和EIP-2844作为基本构建模块来构建Ceramic时,我们创建了一些底层工具,这些工具使我们可以更轻松地使用这些技术。
js-3id-did-provider是使用3ID作为DID方法的EIP-2844的实现。它可以单独用作DID提供程序,也可以在3IDConnect库中更方便地使用。3IDConnect允许用户使用其以太坊钱包来访问DIDProvider。
掌柜调查署 | 竞争之下平台币会如何发展?:4月14日16:00,AAX交易所CEO Thor Chan将携带新上线的平台通证AAB做客金色财经掌柜调查署,一起来看竞争之下,平台币会如何发展。更多详情点击原文链接查看。[2020/4/14]
key-did-provider-ed25519是使用KeyDID方法的EIP-2844的实现。它是同时支持签名和加密的最简单的DID提供程序。
js-did是一个库,允许开发人员以DID的形式表示用户。这是我们在本教程中将要看到的主要界面。它使我们能够与当前经过身份验证的用户签署数据,将数据加密给任何用户,以及与当前经过身份验证的用户解密数据。
IPFS中的签名数据
通过使用dag-joseIPLD编解码器,我们可以创建链接和签名的数据结构。这是通过创建包含指向其他数据链接的JSONWeb签名来完成的。dag-jose编解码器解决的主要问题之一是,传统上将JWS的有效负载编码为:base64url这意味着,如果其中包含IPLD链接,则您将无法遍历这些链接。
大咖零距离 | 胜率高达85%的趋势交易大神告诉您如何用趋势交易捕捉大行情:11月22日18:00,金色盘面邀请实盘大V J神做客金色财经《大咖零距离》直播间,将分享《胜率高达85%的趋势交易大神告诉您如何用趋势交易捕捉大行情》,敬请关注,欲进群观看直播扫描海报二维码报名即可![2019/11/22]
相反,我们对DagJWS所做的是将有效负载强制为CID的字节。然后,编解码器将有效负载转换为CID实例,并将其设置link为DagJWS的属性。这使我们可以轻松地遍历生成的DAG。
设置具有dag-jose支持的IPFS
由于dag-jose是新的IPLD编解码器,因此默认情况下它尚未包含在js-ipfs中。它还实现了新的IPLD编解码器API,js-ipfs尚不支持该API。因此,在创建IPFS实例时,需要执行以下操作:
importIPFSfrom'ipfs'importdagJosefrom'dag-jose'importmultiformatsfrom'multiformats/basics'importlegacyfrom'multiformats/legacy'multiformats
)\n//putthepayloadintotheipfsdag\nawaitipfs
)//LogtheDagJWS:console
//Logthepayload:ipfs
)
//Createanothersignedobjectthatlinkstothepreviousoneconstcid2=addSignedObject({hello:'gettingthehangofthis',prev:cid1})//Logthenewpayload:ipfs
)
//Logtheoldpayload:ipfs
)
请注意,由于有效负载将由您的DID签名,因此CID和JWS的值对您而言将有所不同。
验证签名的数据结构
验证JWS非常简单。只需检索JWS对象并将其传递给verifyJWS方法。如果签名无效,则此函数将引发错误。如果签名有效,它将返回用于签名JWS的DID。
constjws1=awaitipfs
。
一旦有了此功能,我们就可以创建一些加密的对象。在下面的示例中,我们首先创建一个简单的加密对象,然后创建一个链接到前一个对象的附加加密对象。
constcid3=awaitaddEncryptedObject({hello:'secret'},)constcid4=awaitaddEncryptedObject({hello:'cool!',prev:cid3},)
请注意,在上面的示例中,我们用于(<)将数据加密为当前已验证的DID。我们当然也可以将数据加密为未经本地身份验证的用户的DID!\"_src=\"http://did
//RetrivemultiplelinkedobjectsfollowSecretPath(cid4)//>{hello:'cool!',path:CID(bagcqceraqittnizulygv6qldqgezp3siy2o5vpg66n7wms3vhffvyc7pu7ba。//>{hello:'secret'}
CRV简介Curve是建立在以太坊上的一种新兴的去中心化金融协议之一,它不使用中央订单簿而是使用用户提供的加密货币池来进行交易,而用户可以通过其存款赚取收益.
1900/1/1 0:00:00BTC行情分析马师傅:BTC多头散户,你们试着切他中路看看;BTC多头散户:不行,他的拳太重,中路切不进去;BTC多头散户:卒。马师傅:让开,让我来.
1900/1/1 0:00:00即便比特币如今涨势惊人,除非发生极其戏剧性的波动,否则加密货币登上主流新闻头条的情况仍比较罕见。对于区块链应用来说,能被全球媒体报道更是非同寻常。Cryptokitties是这些罕见的例外之一.
1900/1/1 0:00:00Filecoin是基于区块链机制的分布式存储网络。Filecoin矿工可以为提供网络存储容量,通过定期生成证明来获得Filecoin加密货币.
1900/1/1 0:00:00今日,SpaceX、特斯拉汽车、PayPal联合创始人埃隆·马斯克(ElonMusk)将其推特主页简介部分变更为Bitcoin。此前,马斯克的个人推特简介为「Dogecoin前CEO」.
1900/1/1 0:00:00薪火回看了2010年比特币的价格,一枚比特币价值0.0025美元,换算成人民币,不到一毛钱;十年后,比特币价格,突破56000美元.
1900/1/1 0:00:00