身份是我们所有人每天(甚至是每时每刻)如何相互交互的关键部分。然而在忘记密码时,我们不得不一次次重复“找回密码”的步骤。无论如何,为用户控制的在线身份提供一条前进的道路是 dweb 成功的一项赌注要求。
但是,身份认证很难。
对于可互操作的分散式数字断言,没有简单的解决方案。隐私,安全性,有效性,访问控制,监视,GDPR,KYC,匿名。这就像《盗梦空间》,但是每个嵌套的梦境级别都是相同的雷区,而这些盘根错节的雷区影响着身份认证项目本身。
多年来,分散身份基金会一直在应对这一挑战,像 Rebooting the Web of Trust 这样的组织也是如此。还有一直努力在 IPFS,如上面构建分散的身份系统 IP-ID,Nomios.io,IPFS IDM,以及最近的 Ceramic Network。
但是,今天我们正在庆祝一个分散的身份协议和服务的发布是在一个不太可能的地方:微软。
在过去的几年中,微软在开放源代码工具和服务中的地位越来越高,并且现在已经启动了基于标准的分散式身份服务 ION。
ION 已经开发了一年多,它是在比特币区块链上运行的 Sidetree(与区块链无关的分布式 PKI 协议)的实例实现。
并将交易数据存储在 IPFS 上。
像 HTTP 一样,IPFS 也没有在协议中内置用户身份。但是,IPFS 提供了 HTTP 无法实现的弹性,验证和面向未来的功能:
IPFS 的内容可寻址性意味着从区块链或其他底层公共网络提取 cid 的离子节点不需要关心事务数据驻留在何处。这意味着它们可以交换服务器或数据中心,或者新的存储节点可以在线,而不需要更改任何代码或基础设施,也不需要更改地址。
ION 节点也不必担心数据被操纵或篡改,因为基于散列的寻址意味着数据的密码验证内置在网络请求本身中。
ION 实现是使用 JavaScript(特别是TypeScript)实现的,因此让他们使用 js-ipfs 作为 Node.js 服务是很有意义的。
ION 汇总了一批身份交易,并通过其 IPFS 节点将其发布,然后将该批次的地址(CID)写入比特币区块链。
为了满足微软将 js-ipfs 作为长期运行的过程的需求,我们向所有 API 添加了可取消的请求,以确保随着请求的生成和处理,基础对象,内存,文件句柄以及创建的其他资源以及向下的堆栈已正确清理。
非常感谢 Alex Potsides(@achingbrain)实现了这个长期需要的功能,该功能已在js-ipfs 0.44.0中提供。
对于开发人员来说,这看起来像是可以根据请求设置超时的功能:
const cid = new CID('QmWillNeverResolve')try { await ipfs.get(cid, { timeout: 1000// abort after 1000ms }) } catch (err) { console.err(err) // err is a TimeoutError }
这是 ION 的公开测试版,现已在比特币区块链上实时运行。
在发布会上,微软的 ION 项目负责人丹尼尔·布赫纳(Daniel Buchner)阐述了如何在今天的应用程序和服务中运行节点并使用分散式身份。
ION 项目是开源的,建立在开放标准的基础上,您可以运行自己的节点,因此请立即尝试或为该项目做出贡献!
End
非常感谢您对 IPFS&Filecoin 项目的持续支持。我们很高兴继续与您一起,为人类信息建立一个强大的,去中心化和高效的基础。
FilCloud 帮你迅速了解 IPFS 领域的热点技术和应用公众号:filcloud