使用区块链技术的身份管理应用,MongoDB Stitch & MongoDB Atlas
当今世界,我们的物理身份和数字身份有无数种方式交织在一起。如何从合作伙伴以及第三方厂商那里分享和采集信息,并在简化业务流程的同时保持信息的安全性和真实性是一个挑战。
2017是区块链技术的大年。在众多的应用场景中,区块链技术开启了利用自身可信性、分布性和不可变性在不同实体间发布身份信息,并保持清晰的加密总账。敏感信息会经过严格的审批流程并被加密,只有通过特定方式才能访问。不过,区块链的核心概念并不在本篇博客的讨论范围之内。如希望了解区块链的更多内容,请浏览MongoDB 博客。
应用实例
作为一种概念验证,我们搭建了一个区块链身份管理应用。我们使用区块链的结构和概念为一个虚拟的银行网络保存和发布数字身份。我们利用NodeJS搭建了一个节点网络,网络中的不同合作伙伴均参与网络运行,在区块链内部推送和管理区块的生产。
图1-银行端应用展示了通过区块链进行登录验证的方式(对用户透明)
图2-将身份信息发布到区块链
图3-区块链网络上的节点批准信息签名和加密签名。信息被批准后,其他被认可方才可使用该信息
主要理念是:数据可以被银行A推送到区块链网络(如图2所示),数据被网络的多数实体批准和使用,并作为可信信息呈现给银行B和银行C(如图3所示)。无论信息是加密方式还是明文方式,银行B和银行C均可以基于区块链网络信息,将相关信息推送或推荐给客户,而无需一个集中化的注册机构。
在这里,我们介绍了一个应用:将数字身份存储于区块链中,将重点放在应用场合和建议的系统架构上。接下来,我们将介绍实施细节和关键要点。
实 施
为了支持流线化的开发方式以及随着网络扩展快速伸缩的能力,现代化的分布式应用需要一个现代的、分布式的数据平台。在本地存储数据并不可靠,性能和扩展能力也不好,而这正是MongoDB Atlas云数据库和MongoDB Stitch无服务器架构平台的优势和闪光点,二者可以成为搭建全球部署应用的佳基础。
MongoDB Stitch
MongoDB Stitch是MongoDB的无服务器架构平台,我们可利用它的若干主要功能提升我们的开发速度、安全性,以及可伸缩性。具体如下:
身份验证模型:多种安全认证和用户管理特性允许我们在区块链网络中方便地对分散节点进行身份验证(使用匿名认证)。另一方面,网络用户可以利用先进的安全机制完成认证,从而确保其数据访问安全。简单起见,我们以电子邮件和口令验证为例:
Stitch的规则:支持灵活、便捷地定义授权规则,将其应用于采集、字段和文档中,让我们能够以非常精细、可控的方式管理数据访问。吸引人的能力之一就是:只有拥有查看某些字段权限的用户才能对这些字段进行设计,例如:“credit_score”和“assets_range”。Stitch角色支持基于用户偏好的数据过滤。
Stitch的功能:实施托管式的服务器端逻辑,这些逻辑可以监管过程的准确性并对在数据访问规则范围内使用的数据进行验证。例如:如果某区块确实拥有来自参与的区块链节点的多数表决,“多数认证”校验就会返回一个真值:
-
Stitch触发器与第三方服务:一旦用户身份通过验证,Stitch触发器就会根据区块链中的数据将供应和推广信息通知相关方。通过与第三方服务的集成,我们可以方便地将信息和安全采集服务集成到业务流程中。
MongoDB Atlas
注意:Atlas集群必须是3.6或更高版本。
MongoDB Stitch由Atlas集群提供支持,它为我们提供以下四项核心能力:
Atlas为数据接入和管理提供可伸缩性、弹性和全球分布能力,并确保符合相关的隐私政策,例如:《通用数据保护条例》 (GDPR) 和 《健康保险流通与责任法案》 (HIPAA)。
-
丰富的查询和分析语言,内置混合连接串。特别是,我们利用了基于$graphLookup 聚合操作的MongoDB视图,提供对诸如区块链的数据结构进行遍历和验证的关键能力。
-
对于事件驱动型应用来说,变更流特性极大地改变了游戏规则。任何发生数据变化的事件均能在Atlas内部被过滤,只有相关通知会被发送给应用监视器。主要的应用场合是:某个节点收到了由某一网络矿工发出的关于新区块生成的通知。如下所示, MongoDB Stitch触发器使事件变得更容易被处理。
内置的TLS(传输层安全)和企业安全特性允许我们实施额外的访问控制、审计、加密级别,奠定了MongoDB Stitch的治理特性和区块链自身能力。
结论 & 要点
数字系统的区块链世界有着巨大的发展潜力,我们将看到一些极具创新内容的想法冲出加密货币的范畴。针对本文介绍的应用及其他很多应用,MongoDB可对快速创新、提升开发人员生产率以及应用扩展赋能,这些应用均将从去中心化的数据控制、可信性和不可变性中获益。
相关文章