你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

多方计算体系结构设计

Azure Blob 存储
Azure Kubernetes 服务 (AKS)
Azure SQL 数据库

多方计算或隐私保护计算允许业务关系中的各方共享数据、进行计算,以及在不泄露其私人数据的情况下达成共同结果。 Azure 服务可帮助你构建多方计算解决方案。 该解决方案可以包括基于云的资源和本地资源。

多方计算具有以下属性:

  • 涉及多个公司或组织。
  • 各方是独立的。
  • 各方不信任彼此的所有数据。
  • 各方都可访问通用的计算和数据存储平台。
  • 对于某些相关方来说,一些流程必须是私有的。

供应链是涉及多方工作流的一个示例。 原材料从原产地流向制造商。 制造商的货物通过运输合作伙伴到达配送中心。 货物从中心送往零售店。

图中以剪贴画图像的形式显示供应链成员的进度。

此过程需要多家公司合作。 相关各方包括原材料供应商、制造商、运输公司、仓库运营商和零售店。 产品在供应链中多次转手。 各方需要跟踪产品的各个阶段。

多方计算技术

多方计算包括不同的技术,这些技术使各方能够通过网络安全地进行交易。

图中显示了作为机密计算、Azure Kubernetes 服务、虚拟机或合作伙伴产品/服务实现的账本。

一种选项是分布式账本。 区块链就是一个例子。 区块链作为一种数据账本,可在独立的各方之间共享,其中所有各方都信任账本上的数据。 事务以块的形式进行收集,每个块链接到上一个块。 一些分布式账本不使用块。 每个事务都可以链接到账本上的上一个事务。

多方计算的另一种可能是使用 CPU 本身上受硬件保护的内存。 这些区域称为安全 Enclave,受到加密保护。 此方法意味着,即使是对服务器拥有完整访问权限的特权管理员也无法查看这些安全 Enclave 中的进程或数据。

由于安全 Enclave 能够向其他 Enclave 远程证明自己,因此你可以设计一个系统在其中通过 Enclave 运行的多组织网络。 此方法称为受信任的执行环境。

Azure 提供名为 Azure 机密账本的托管服务,用于在安全 Enclave 上运行区块链模型。

最后,你可选择一个提供不变性和可信度的集中式系统。 Azure SQL 数据库账本提供关系数据库中多方计算所需的信任。 你可能不需要去中心化共识,而只需要账本的不变性特性。

区块链网络模型

若要确定区块链是否适合业务流程,请考虑以下问题:

  • 此业务流程是否跨越信任边界?
  • 多方是否共享和更新数据?
  • 是否有任何中介控制可信单一数据源?
  • 该过程是否涉及低值手动验证步骤?

如果这些问题的答案是肯定的,则此业务流程很适合使用基于区块链的方法。 即使某些答案是否定的,区块链方法可能仍然可行。 在做决定之前,请仔细查看其他多方计算选项。

有多种区块链网络可满足业务需求。 一个特征是参与网络的标准。 如果网络对所有人开放,则称为“公共区块链网络”。 只需下载客户端并加入即可。 大多数加密货币都是这样工作的。

另一个选项是“具有权限的区块链网络”,需要网络现有成员提供的权限才能加入。 此模型适用于与已知组织打交道的企业。 例如,一家超市可能希望为其供应链参与者提供一个封闭且具有权限的区块链网络。

业务流程可能只需要防篡改数据,这种情况不需要区块链。 如果流程可以集中运行,或各方相互信任数据,则区块链也可能是不必要的。

Azure 多方计算

本部分介绍使用 Azure 服务提供的多方计算选项。

使用 Azure 虚拟机的区块链

可使用 Azure 虚拟机运行账本软件。 按需创建任意数量的虚拟机并将它们连接到区块链网络中。

部署自己的虚拟机可让你自定义解决方案。 此方法包括管理开销,例如更新、高可用性和业务连续性要求。 你可能有多个组织和多个云帐户。 连接各个节点可能会很复杂。

Azure 上提供用于虚拟机的大多数区块链账本的部署模板。

Kubernetes 上的区块链

由于大多数区块链账本都支持部署到 Docker 容器中,因此你可使用 Kubernetes 来管理容器。 Azure 具有一个名为 Azure Kubernetes 服务 (AKS) 的托管 Kubernetes 产品/服务,可用于部署和配置区块链节点。

AKS 实现为支持 AKS 群集的虚拟机提供托管服务。 但是,组织仍必须管理 AKS 群集以及体系结构中的任何网络或存储选项。

Azure 上提供用于 AKS 的大多数区块链账本的部署模板。

区块链即服务

Azure 支持在 Azure 上运行账本软件的第三方服务。 服务提供商管理基础结构。 他们处理维护和更新。 该服务包括高可用性和联盟管理。

ConsenSys 在 Azure 上提供 Quorum。 Quorum 是一个开源协议层,支持基于 Ethereum 的应用程序。

将来可能会提供其他产品/服务。

Azure 机密账本

Azure 机密账本是一项基于机密联盟框架而构建的托管服务。 它可在 Azure 机密计算中实现节点的许可区块链网络。 机密账本建立在现有加密的基础上。

  • 现有加密
    • 静态数据。 加密存储在 Blob 存储或数据库中的非活动数据。
    • 传输中的数据。 加密在公共或专用网络之间流动的数据。
  • 机密计算
    • 使用中的数据。 在内存中和计算过程中加密正在使用的数据。

机密计算允许对主要内存中的数据进行加密。 通过机密计算,可以处理来自多个源的数据,而不会向其他方公开输入数据。 此类安全计算支持多方计算场景,在该场景中,每一步都必须保护数据,例如洗钱检测、欺诈检测和对医疗保健数据的安全分析。

存储在机密账本中的数据在仅追加账本中是不可变的和防篡改的。 账本也可独立验证。 机密账本将安全飞地用于去中心化的区块链网络,并且需要最小的受信任计算基础。

Azure SQL 数据库账本

Azure SQL 数据库账本允许参与者验证集中存储的数据的数据完整性,而无需区块链网络的网络共识。 对于一些集中式解决方案,信任很重要,但去中心化基础结构不是必需的。 此方法可避免此类基础结构的复杂性和性能影响。

显示数据库账本体系结构的示意图。

备注

Azure SQL 数据库账本目前以公共预览版提供。

账本为数据库提供防篡改功能。 这些功能允许以加密方式证明数据未被篡改。

账本有助于保护数据免受任何攻击者或高特权用户的攻击,包括数据库、系统和云管理员。 历史数据将被保留。 如果在数据库中更新了某个行,则其先前的值将保留在历史表中。 这无需任何应用程序更改即可提供保护。

账本是 Azure SQL 数据库的一项功能。 可在任何现有的 Azure SQL 数据库中启用该功能。

比较选项

机密账本和 Azure SQL 数据库账本

此表将机密账本与 Azure SQL 数据库账本进行了比较。

SQL 数据库账本 机密账本
需要篡改证据的集中式系统
要求数据必须防篡改的去中心化系统
保护关系数据不被篡改
保护非结构化数据不被篡改
在区块链中保护链数据的链外存储
保护从区块链引用的文件的链外存储
关系数据是可查询数据
非结构化存储数据是可查询数据

机密账本和 Azure Blob 存储

Azure Blob 存储的不可变存储功能可确保写入其中的数据可供读取,但永远不会更改。 此表将该技术与机密账本进行了比较。

机密账本 不可变存储
机密硬件飞地
仅追加数据完整性 是,仅限于间隔
正在使用的数据加密
区块链账本证明

多方计算决策

此图总结用于使用 Azure 服务进行多方计算的选项。

图中总结了选择多方计算选项的决策。

下载此体系结构的 Visio 文件

后续步骤