ArcBlock 如何利用 AWS QLDB 构建去中心化身份解决方案
2021-12-02
作者: Robert Mao,ArcBlock创始人
插画: Moon Cao,ArcBlock设计师
身份技术正在从传统的集中式身份解决方案演变为分布式身份解决方案。去中心化身份是一种新兴技术,它将身份控制权交还给用户,用户可以自主决定将哪些信息共享给第三方。
成立于 2017 年的ArcBlock 正在构建一种新型的去中心化应用平台,可简化 dApp、DID 和区块链应用的开发。我们开发实现了 DID:ABT 协议,该协议遵循 W3C 凭证社区组和 DIF 的建议,它在我们的架构中起着关键作用,是整个平台的基础。 ArcBlock 于 2019 年成为 AWS 合作伙伴网络 (APN) 的成员,并利用 EC2、QLDB、OpenSearch 等多项 AWS 服务来构建底层基础设施,包括我们在本文中讨论的去中心化身份技术。
(图:典型的 DID 信息架构)
作为一个应用开发平台,ArcBlock 允许任何人通过 DID 功能轻松实现和部署他们的应用程序。我们还创建了一整套即用型工具和框架,例如 DID:Wallet(一种移动和网络钱包应用程序,可帮助用户管理其数字身份、凭证、NFT 和其他数字资产)、DID:Connect(一种可扩展协议)、Blocklet框架 和 SDK 以促进身份验证、可验证的凭证呈现、验证、加密支付、数字资产交换等。)除此之外,开发人员可以获得构建其应用程序所需的一切,充分利用去中心化身份技术。
什么是去中心化身份
去中心化标识符 (DID) 是个人、组织、物联网设备等的自主数字标识。随着我们越来越多地使用个人信息并将我们的个人信息提供给各种在线服务,我们经常受到数据泄露和隐私的影响损失。基于标准的去中心化身份系统可以提供更大的隐私和对个人信息和私人数据的控制。
DID 由带有加密签名的私钥保护,因此只有私钥所有者才能证明他们拥有并控制它。一个人可以(并且也被推荐)拥有任意数量的 DID,这使得在不同服务中的多个活动中进行跟踪变得更加困难。例如,一个人可以有一个与金融账户相关联的 DID,另一个完全独立的 DID 与他们的社交网络相关联。
每个 DID 通常与其他 DID 颁发的一系列可验证凭证 (VC) 相关联,以证明该 DID 的特定声明(例如,位置、年龄、文凭、免疫证书等)。这些凭证由其发行者进行加密签名,这使得它们可以独立于签名者进行私下验证,它们被设计为可在其原始上下文之外进行解释,并且还包含用于独立重构和解释该上下文的机制。 DID 所有者自己存储这些凭据,而不是依赖某个提供商。
(图:DID 和 VC 在高层是如何工作的)
可验证数据注册表 (VDR) 是数据可验证注册方式的通用术语。原则上,VDR 不一定必须采用区块链、云、网络或其他任何形式,但最常见的 VDR 是通过区块链或分类账实现的。在 ArcBlock 的解决方案中,我们利用 QLDB 为我们的 DID 架构实施基于高性能区块链协议的 VDR。
为什么 DID 如此重要?
DID 技术为个人用户和组织都带来了好处。 DID 让最终用户拥有和控制他们的身份,并以高度安全的方式保护隐私。对于商业组织,欧盟 GDPR(通用数据保护条例)等法规加强了需要现代身份解决方案的身份标准,DID 使组织能够进行电子数据验证,并提高透明度和可审计性。
今天,许多人使用术语可验证凭证 (VC) 来指代此类加密证明附带的数字凭证。很多那些“企业区块链”用例,可以被认为是可验证凭证的典型用例,在 W3C 文档“可验证凭证用例”中,它列出了 7 个不同领域的 30 多个典型用例,例如教育、零售、金融、医疗、法律身份、物联网设备等。 由于最近广泛的 COVID-19 大流行,对“免疫证书”和技术要求提出了需求,DID 和 VC 似乎是有前途的技术解决方案之一。
“ 去中心化数字身份 (DDID) 不仅仅是一个技术流行语:它承诺将当前中心化的物理和数字身份生态系统完全重组为去中心化和民主化的架构。”
-- 为去中心化数字身份做准备:安全 SWOT,2020 年 1 月 21 日,Forrester Research
ArcBlock 如何利用 QLDB 实现 DID
ArcBlock 构建了一个高性能区块链协议,该协议针对 dApp 进行了优化,内置了对代币经济、NFT(非同质代币)、DID(去中心化身份)等的支持。 Amazon QLDB 为区块链第 2 层扩展解决方案提供了一个透明、不可变且可加密验证的分类帐后端,并且是一种非常经济高效的托管服务,可以满足我们的需求。
下面的高级图显示了 ArcBlock 平台的分层架构。我们利用 W3C 的推荐和 DID 和 VC 的最佳实践,并将其设计为基础——我们使用 DID 作为一种“本机标识符”——系统中的每个对象,例如用户,区块链账户,智能合约,...,有一个 DID。
(图:ArcBlock 平台高级概述)
尽管 Amazon QLDB 本身具有内置的加密验证功能,但去中心化身份和可验证凭证技术需要可移植且独立于平台,并且可以在不同供应商之间互操作,因此我们在 QLDB 之上独立实施了 DID 和 VC 级别的验证。 ArcBlock 的开放链访问协议(OCAP)层是一个中间层协议,用于封装底层账本和存储,并提供通用和高级区块链协议和工具(例如交易、智能合约、区块浏览器、钱包等)。
在下图概述的 ArcBlock 平台架构中,我们利用 Amazon QLDB 并将其用作原始交易的“状态存储”,来自应用程序的所有交易,包括源自“钱包”的最终用户交易都存储在 Amazon QLDB 中首先,在交易执行后,区块链的“状态”也会更新并存储在 Amazon QLDB 中,同时,系统使用 Amazon QLDB 流将交易流式传输到 Amazon Kinesis 以获取额外的索引和存储在 Amazon Elastic Search 中的数据用于快速复杂的搜索和查询。 Amazon Lambda 为在此过程中处理事件数据提供了灵活性。我们使用高性能远程过程调用 (RPC) 框架 gRPC 构建这些事务协议,并支持 GraphQL 作为标准查询语言。
(图:系统架构)
DID 是架构的基础,自然所有区块链交易都与 DID 绑定。我们还在区块链系统中定义了高级数字资产,例如FT(Fungible Tokens)和NFT(Non-fungible Tokens),都以DID为标识符,并利用VC(可验证凭证)作为可变数据格式。使用 DID 作为整个系统的唯一标识符,即使不同的组件可能由不同的供应商开发,也可以更容易地使不同的组件相互集成。
ABT Node 是“Blocklets”的容器和运行时环境,这是一个高度可重用的软件组件框架。 ArcBlock 的所有应用程序、组件,包括区块链协议实现本身都是 Blocklets,它们在 Amazon EC2 实例内运行的 ABT 节点内进行管理。在生产设置中,Amazon Elastic Load Balancing 可用于对多个 ABT 节点实例进行负载平衡。我们还使用 Amazon SNS 为用户订阅的某些事件发送推送通知,例如加密支付已结算,或关键个人数据即将共享,因此可以通知用户并获得实时体验。
值得注意的是,我们独立于 Amazon QLDB 本身构建加密验证,同时利用 Amazon QLDB 对内部数据的可验证能力,这使得我们的 DID 和 VC 可与其他系统互操作,客户不一定需要了解 Amazon QLDB 验证的工作原理.由于 Amazon QLDB 的内置验证功能,状态存储中的交易和状态数据具有额外的可验证性。
今天即可使用
由 Amazon QLDB 提供支持的 ArcBlock 平台可以释放区块链技术的全部潜力,为我们的 SAAS 云客户带来最增值的功能,例如智能合约、代币、NFT 和 DAO 等。
完整可行的解决方案正在生产中,并且可以立即使用。访问 ArcBlock 网站以了解更多关于演示、示例、开发者文档等的信息。 值得注意的是,ArcBlock 的所有网站和服务都已经在使用上述 DID 技术并作为 dApp 运行,AWS 客户可以轻松地在本地下载所需的组件或从 AWS Marketplace 启动实例并立即开始使用 DID 进行构建。
参考
- 去中心化标识符 (DID) 1.0 https://www.w3.org/TR/did-core/
- DID 规范注册表 https://www.w3.org/TR/did-spec-registries/
- ArcBlock 开发者文档 https://www.arcblock.io/en/developer-portal
- NIST:了解新兴区块链身份管理系统的分类方法 https://csrc.nist.gov/publications/detail/white-paper/2020/01/14/a-taxonomic-approach-to-understanding-emerging-blockchain-idms/final