CN112084255A - 机器学习应用的有效验证 - Google Patents

机器学习应用的有效验证 Download PDF

Info

Publication number
CN112084255A
CN112084255A CN202010498520.5A CN202010498520A CN112084255A CN 112084255 A CN112084255 A CN 112084255A CN 202010498520 A CN202010498520 A CN 202010498520A CN 112084255 A CN112084255 A CN 112084255A
Authority
CN
China
Prior art keywords
transaction
training
gradient
blockchain
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010498520.5A
Other languages
English (en)
Inventor
V.S.加纳帕瓦拉普
K.萨帕特瓦
K.闪穆加姆
R.瓦库林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN112084255A publication Critical patent/CN112084255A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • G06F18/2178Validation; Performance evaluation; Active pattern learning techniques based on feedback of a supervisor
    • G06F18/2185Validation; Performance evaluation; Active pattern learning techniques based on feedback of a supervisor the supervisor being an automated module, e.g. intelligent oracle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Accounting & Taxation (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Biology (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Databases & Information Systems (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Finance (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

示例操作可以包括以下一项或多项:由训练参与者客户端生成多个事务提议,多个事务提议中的每一个对应于用于与随机梯度下降有关的机器学习模型训练的训练迭代,机器学习模型包括多个训练迭代,事务提议包括由训练参与者客户端执行的梯度计算,将多个事务提议传送到每个包括验证梯度智能合约的一个或多个背书者节点或对等方,由每个背书者节点或对等方验证梯度智能合约;向训练参与者客户端提供与多个事务提议相对应的背书。

Description

机器学习应用的有效验证
技术领域
本申请总体上涉及机器学习应用的共识(consensus)过程,并且更具体地,涉及机器学习应用的有效验证。
背景技术
集中式数据库在一个位置的单个数据库(例如,数据库服务器)中存储和维护数据。该位置通常是中央计算机,例如,台式中央处理器(CPU)、服务器CPU或大型计算机。通常可以从多个不同点访问存储在集中式数据库中的信息。多个用户或客户端工作站可以例如基于客户端/服务器配置在集中式数据库上同时工作。因为位于单个位置,集中式数据库易于管理、维护和控制,特别是出于安全目的。在集中式数据库中,由于所有数据的单个存储位置意味着给定的一组数据仅具有一个主记录,最大程度地减少了数据冗余。
然而,集中式数据库会遭受重大缺陷。例如,集中式数据库只有一个故障点。特别是如果没有容错性的考虑,并且发生硬件故障(例如,硬件、固件和/或软件故障),数据库中的所有数据都将丢失,并且所有用户的工作都会中断。此外,集中式数据库高度依赖于网络连接。作为结果,连接速度越慢,每次数据库访问所需的时间就会增加。另一个缺点是当集中式数据库由于单个位置而遇到高流量时会出现瓶颈。此外,由于数据库仅维护数据的一个副本,因此集中式数据库提供了对数据的有限访问。作为结果,多个设备无法同时访问同一条数据而不会造成严重问题或存在覆盖已存储数据的风险。此外,由于数据库存储***的数据冗余很小甚至没有,因此,除了通过手动操作从备份存储中恢复之外,很难恢复意外丢失的数据。因此,需要克服这些缺点和局限性的解决方案。
发明内容
一个示例实施例提供了一种包括训练参与者客户端的***,包括训练数据集并且被配置为执行以下一项或多项:生成多个事务提议,每个事务提议对应于用于与随机梯度下降有关的机器学习模型训练的训练迭代,机器学习模型训练包括多个训练迭代,事务提议包括由训练参与者客户端执行的梯度计算,和区块链网络,包括一个或多个背书者(endorser)节点或对等方,每个节点或对等方均包括验证梯度智能合约并配置为执行以下一项或多项:接收多个事务提议,执行验证梯度智能合约,以及向训练参与者客户端提供与多个事务提议相对应的背书。
另一示例实施例提供了一种方法,包括以下一项或多项:由训练参与者客户端生成多个事务提议,每个事务提议对应于用于与随机梯度下降有关的机器学习模型训练的训练迭代,机器学习模型训练包括多个训练迭代,事务提议包括由训练参与者客户端执行的梯度计算,将多个事务提议传送到一个或多个背书者节点或对等方,每个节点或对等方均包括验证梯度智能合约,由每个背书者节点或对等方执行验证梯度智能合约;向训练参与客户提供与多个事务提议相对应的背书。
另一示例实施例提供了一种包括指令的非暂时性计算机可读介质,当指令被处理器读取时,使处理器执行以下一项或多项操作:由训练参与者客户端生成多个事务提议,每个事务提议对应于用于与随机梯度下降有关的机器学习模型训练的训练迭代,机器学习模型训练包括多个训练迭代,事务提议包括由训练参与者客户端执行的梯度计算,将多个事务提议传送到一个或多个背书者节点或对等方,每个节点或对等方均包括验证梯度智能合约,由每个背书者节点或对等方执行验证梯度智能合约;向训练参与客户提供与多个事务提议相对应的背书。
附图说明
图1A示出了根据示例实施例的在区块链中验证梯度事务背书的框图。
图1B示出了根据示例实施例的训练参与者网络的框图。
图1C示出了根据示例实施例的训练参与者网络的框图。
图2A示出了根据示例实施例的示例区块链架构配置。
图2B示出了根据示例实施例的区块链事务流。
图3A示出了根据示例实施例的被许可网络。
图3B示出了根据示例实施例的另一被许可网络。
图3C示出了根据示例实施例的无许可(permission-less)网络。
图4示出了根据示例实施例的用于验证区块链中的梯度计算的***消息图。
图5A示出了根据示例实施例的在区块链中验证机器学习计算的示例方法的流程图。
图5B示出了根据示例实施例的在区块链中验证训练聚合器计算的示例方法的流程图。
图5C示出了根据示例实施例的用于在区块链中验证模型更新的流程图。
图6A示出了根据示例实施例的配置为执行本文描述的一个或多个操作的示例***。
图6B示出了根据示例实施例的配置为执行本文描述的一个或多个操作的另一示例***。
图6C示出了根据示例实施例的配置为利用智能合约的另一示例***。
图6D示出了根据示例实施例的配置为利用区块链的又一示例***。
图7A示出了根据示例实施例的用于将新块添加至分布式账本的过程。
图7B示出了根据示例实施例的新数据块的内容。
图7C示出了根据示例实施例的用于数字内容的区块链。
图7D示出了根据示例实施例的可以表示区块链中块的结构的块。
图8A示出了根据示例实施例的存储机器学习(人工智能)数据的示例区块链。
图8B示出了根据示例实施例的示例量子安全区块链。
图9示出了支持一个或多个示例实施例的示例***。
具体实施方式
将容易地理解,如本文附图的一般性描述和示出的,即时组件可以以多种不同的配置来布置和设计。因此,如附图所示,对方法、设备、非暂时性计算机可读介质和***中的至少一个的实施例的以下详细描述并非旨在限制所要求保护的本申请的范围,而仅仅是代表所选实施例。
在整个说明书中描述的即时特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或去除。例如,在整个说明书中短语“示例实施例”、“一些实施例”或其他类似语言的使用是指以下事实:结合该实施例描述的特定特征、结构或特性可以包括在至少一个实施例中。因此,在整个说明书中短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言的出现不一定全部指代同一组实施例,并且在一个或多个实施例中,所描述的特征、结构或特性可以以任何合适的方式组合或去除。此外,在图中,即使所示元件之间的连接是单向或双向箭头,也可以允许单向和/或双向通信。而且,附图中描绘的任何设备可以是不同的设备。例如,如果示出了移动设备正在发送信息,则有线设备也可以用于发送信息。
另外,尽管实施例的描述中可能已经使用了术语“消息”,但是本申请可以应用于多种类型的网络和数据。此外,尽管在示例性实施例中可以描绘某些类型的连接、消息和信令,但是本申请不限于某种类型的连接、消息和信令。
示例实施例提供了方法、***、组件、非暂时性计算机可读介质、设备和/或网络,提供对机器学习应用的有效验证。
在一个实施例中,应用利用作为分布式存储***的去中心化数据库(例如,区块链),分布式存储***包括彼此通信的多个节点。去中心化数据库包括类似于分布式账本的只能追加的不可变数据结构,能够维护互不信任的各方之间的记录。不信任方在本文中称为对等方或对等节点。每个对等方都维护数据库记录的副本,并且在分布式对等方之间未达成共识的情况下,没有任何一个对等方可以修改数据库记录。例如,对等方可以执行共识协议以验证区块链存储事务,将存储事务分组为块,并在这些块上构建哈希链。为了保持一致性,此过程通过对存储事务进行排序来形成帐本。在各种实施例中,可以使用被许可和/或无许可区块链。在公共或无许可区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链可以涉及本机加密货币,并可以基于各种协议(例如工作量证明(PoW))使用共识。另一方面,被许可区块链数据库在一组拥有共同目标但彼此之间并不完全信任的实体之间提供安全的交互,例如交换资金、商品、信息等的企业。
应用可以利用区块链,可任意操作针对去中心化存储方案量身定制并称为“智能合约”或“链码”的可编程逻辑。在某些情况下,可能存在用于管理功能和参数的专用链码,称为***链码。应用可以进一步利用受信任的分布式应用的智能合约,利用区块链数据库的防篡改属性和节点之间的基础协议,称为背书或背书策略。与应用相关联的区块链事务可以在提交给区块链之前被“背书”,而未被背书的事务则被忽略。背书策略允许链码以背书所必需的一组对等节点的形式指定事务的背书者。当客户将事务发送给背书策略中指定的对等方时,将执行事务以验证事务。验证之后,事务进入排序阶段,其中使用共识协议来生成分组为区块的已背书事务的有序序列。
应用可以利用作为区块链***的通信实体的节点。在不同类型的多个节点可以在同一物理服务器上运行的意义上来说,“节点”可以执行逻辑功能。节点在信任域中分组,并与以各种方式控制它们的逻辑实体相关联。节点可以包括不同类型,例如客户端或提交客户端节点,向签约者(例如,对等方)提交事务调用,并且将事务提议广播到订购服务(例如,订购节点)。另一类节点是对等节点,可以接收客户提交的事务,提交事务并维护状态和区块链事务账本的副本。尽管不是必需的,对等方也可以充当背书者的角色。订购服务节点或订购者是为所有节点运行通信服务的节点,并实现交付保证,例如在提交事务和修改区块链的世界状态时向***中的每个对等节点广播,这是通常包含控制和设置信息的初始区块链事务的另一个名称。
应用可以利用作为区块链所有状态转换的有序、防篡改记录的共享账本。状态转换可以由参与方(例如,客户端节点、订购节点、背书者节点、对等节点等)提交的链码调用(即,事务)引起。每个参与方(例如对等节点)都可以维护账本的副本。事务可能导致一组资产键值对作为一个或多个操作数(例如创建、更新、删除等)被提交到账本。账本包括一个区块链(也称为链),用于将不可变、有序的记录存储在块中。共享账本还包括一个状态数据库,用于维护区块链的当前状态。
应用可以利用作为事务日志的链,被构造为哈希链接的块,并且每个块包含N个事务的序列,其中N等于或大于1。块头部包括块事务的哈希值,以及前一个块头部的哈希值。以这种方式,账本上的所有事务都可以被排序并密码地链接在一起。因此,在不破坏哈希链接的情况下不可能篡改帐本数据。最近添加的区块链块的哈希表示链上之前发生的每笔事务,从而可以确保所有对等节点处于一致且受信任的状态。链可以存储在对等节点文件***(即本地、附加存储、云等)上,从而有效地支持区块链工作负载的仅附加性质。
不可变账本的当前状态表示链事务日志中包括的所有密钥的最新值。由于当前状态表示通道已知的最新键值,因此有时将其称为世界状态。链码调用针对账本的当前状态数据执行事务。为了使这些链码交互有效,可以将密钥的最新值存储在状态数据库中。状态数据库可能只是链中事务日志的索引视图,因此可以随时从链中重新生成。状态数据库可以在对等节点启动时以及在接受事务之前自动恢复(或根据需要生成)状态数据库。
本文描述的解决方案的一些益处包括以下内容。所公开的协议为机器学习和人工智能(随机梯度下降计算及其变体)中最流行的算法提供了有效可验证的共识机制。基于近似和可证明的正确验证而不是重新计算流程,事务提议的验证比常规验证要快几个数量级(小时数与秒数)。公开的实施例使得能够在不同种类的机器学习和人工智能过程中进行验证,包括但不限于流行的机器学习训练、优化、深度神经网络和支持向量机(SVM)。通过从通过重新计算的“后处理审核”转变为实时计算保证,所公开的实施例还提供了比常规方法更高的效率,并且实现了实时审核。
本申请使得能够对区块链本机机器学习和人工智能过程进行高效(实时)验证。例如,训练深层神经网络涉及多个梯度下降更新。本申请解决的问题涉及当前的区块链共识过程。当前的区块链共识过程通过每个背书对等方的“重新计算和比较”方法来验证任何计算。在超账本结构(Hyperledger Fabric)区块链网络中,共识机制涉及多个“背书对等方”,它们与提交事务的参与者/对等方执行相同的计算,然后比较结果。只有当指定数目的背书者节点或对等方同意结果时,他们才达到“共识”。如果使用传统的区块链流程,则梯度计算将作为区块链上智能合约的一部分执行。多个背书者将为每次迭代重复梯度计算,然后比较并验证结果。这是一种浪费并且效率很低的方法。当前的区块链共识过程仅适用于简单轻量级的计算(例如简单的财务操作)。对于复杂计算,例如机器学习和人工智能过程中的梯度计算,需要的是一种效率更高,计算量更轻的方法。
本申请通过使得能够快速验证机器学习训练过程为区块链技术添加能力。尽管可以在没有区块链的情况下使用,但所公开的验证协议的主要好处是旨在加快区块链上的机器学习训练。如果存在一个所有其他参与者都完全信任的完全受信的一方运行数据库并且所有验证者都是诚实并且可以信任的,则可能会实现类似的结果。但在许多(甚至大多数)实际设置中情况并非如此。
本申请提高了区块链网络中的处理速度和资源消耗,同时在区块链上训练机器学习模型。新颖的协议旨在帮助区块链应用有效地验证机器学习/人工智能训练更新。在没有公开协议的情况下,如果将机器学习训练过程发布为智能合约,则它们将在背书者上触发这些过程的重复,从而延迟了共识步骤。公开的实施例提供了不重复训练过程的新颖且有效的验证机制。该验证机制可以代表机器学习训练过程作为智能合约发布。
本申请提出了伴随机器学习训练过程的新型智能合约。为此,智能合约事务将具有有关部分训练数据和模型更新的相关详细信息。改进恰好在背书者使用此元数据验证训练计算时。它不需要再次执行模型训练步骤(此步骤计算上昂贵)。所公开的实施例描述了一种协议,针对区块链网络中的背书者节点或对等方的有效验证步骤。
图1A示出了根据示例实施例的在区块链中验证梯度事务背书的框图。参照图1A,网络100包括训练参与者客户端104。训练参与者客户端104是负责训练机器学习模型的区块链客户端。由于常见的区块链对等方上有限的计算资源,由区块链对等方进行的梯度计算可能难以处理,因此梯度计算仅由训练参与者客户端104完成。有效的梯度计算可能需要包括图形处理单元(GPU)在内的高级计算资源,这些资源更经济地部署在直接处理高级计算的区块链客户端104中。
训练参与者客户端104可以是包括其他训练参与者客户端104的训练参与者网络112的一部分。训练参与者客户端104包括训练数据集108。区块链网络100可以是公共或被许可的区块链网络100。然而,所公开的过程主要旨在用于被许可的区块链网络100。
随机梯度下降是用于训练机器学习模型的标准优化技术。该技术涉及计算在训练数据集108以及所涉及的模型的类型上定义的特定损失函数的所谓“梯度”。用技术术语来说,梯度表示可以在当前迭代中对模型进行的最佳改进。在典型的机器学习训练过程中,从初始模型(旨在进行预测)开始并逐步(即迭代地)更新模型,从而朝着每一步的可能最佳改进的方向进行指导。在过程的最后,期望找到一种在用于训练模型的数据集108上运行得很好的模型。此逐步更新过程称为迭代。
所公开的过程为最流行的随机梯度下降协议和变体提供了可有效验证的共识机制和协议。这些过程基于近似且可证明的正确验证提供了几个数量级的更快计算速度(秒数与小时数)。它们可在不同类型的机器学习和人工智能过程中实现可验证性(例如,流行的机器学习训练、优化等,包括深度神经网络和支持向量机(SVM))。所公开的过程还提供了实时可审计性,从而从“后处理审计”通过重新计算转变为实时计算保证。
在机器学习中,在训练期间,模型更新过程可能需要非常昂贵的过程计算梯度。在测试期间,只需要根据当前模型进行预测即可。该预测步骤非常快。所公开的新颖方法使用一些快速预测步骤以在单个训练步骤中验证梯度计算。
在一些实施例中,训练参与者网络112可以包括受信区块链节点或对等方(未示出),直接与提供背书、订购服务和块提交者的区块链节点或对等方对接。区块链网络100包括各种背书者节点或对等方116,每个背书者节点或对等方116包括验证梯度智能合约120。区块链网络100中可以有任意数量的背书者节点或对等方116。图1A示出了N个背书者节点或对等方116,从背书者节点或对等方116A(包括验证梯度智能合约120A)到从背书者节点或对等方116N(包括验证梯度智能合约120N)。
训练参与者客户端104在训练数据集108上执行梯度计算,并且训练参与者网络112将验证梯度事务提议124中的结果提供给背书者节点或对等方116。背书者节点或对等方116在验证梯度事务提议124上执行验证梯度智能合约120。被批准的验证梯度事务提议124作为背书128返回到训练参与者网络112。否则,拒绝失败的验证梯度事务提议124。在区块链上下文中,背书者116通常验证智能合约中的计算。然而,位于训练参与者客户端104的精确训练过程不能被包括在智能合约中,因为它将触发计算上昂贵的训练过程的重复,从而导致区块链网络100内的显着延迟。
作为示例,考虑具有数据D的单个训练参与者客户端104使用随机梯度下降或相关过程训练模型M。目的是通过在每个步骤或迭代中验证梯度来确保正确训练模型。在第一步骤中,训练参与者客户端104使用先前的模型参数Wt和批次B从D访问批次B并计算损失函数L上的最新梯度gt。数据D和模型参数Wt属于负责训练模型的训练参与者客户端104。这些存储在区块链之外,并且只有与验证相关的属性存储在区块链上。训练过程中的典型步骤(迭代)采用当前模型参数Wt,并使用来自训练数据集108的一小部分样本更新它们。随后,使用其他一些样本子集对新模型参数进行进一步更新。步骤中使用的这些样本小子集中的任何一个都称为批次B。先前的模型参数Wt是先前训练步骤或迭代的输出模型的参数。
梯度计算可以表示为:gt=Σ(x∈Β)▽L(Wt;x)。将结合参照图1C讨论验证梯度智能合约描述上面的参数。
权重计算可以表示为:Wt+1=Wt-ηgt。η是决定步长的标量值(在机器学习中也称为学习速率),它是当前模型在梯度方向上应更新的量。
区块链验证(API调用)是验证梯度(Wt,gt,B)。在第二步骤中,将具有先前模型参数Wt,梯度gt和批次B的新的验证梯度事务提议124提交给区块链网络100。在第三步骤中,一个或多个背书者节点或对等方116执行验证梯度智能合约120,以验证训练参与者客户端104进行梯度计算的正确性,并返回背书128。
图1B示出了根据示例实施例的训练参与者网络112的框图。参照图1B,训练参与者网络112可以包括一组训练参与者客户端104,每个训练参与者客户端包括训练数据集108。训练参与者网络112可以包括任意数量的训练参与者客户端104,并且图1B示出了训练参与者网络112中的M个训练参与者客户端104。训练参与者客户端104A包括训练数据集108A,训练参与者客户端104B包括训练数据集108B,训练参与者客户端104M包括训练数据集108M。
在一个实施例中,例如Google的联合学习可能需要协作过程,其中训练参与者104会训练一个通用模型。训练聚合器132从训练参与者104收集梯度计算136,并将其组合以创建聚合模型。训练聚合器132可以是特殊类型的训练参与者104,负责收集来自不同训练参与者104的输入(例如,梯度)并将它们应用于正被集体训练的模型。期望使得能够在分布式机器学习设置中验证更新,以确保没有训练参与者104在作弊。模型参数136以数学术语指定/描述模型。在预测期间使用这些参数136。在协作机器学习应用中,可能会有多个训练参与者104贡献自己的个人数据集108。
每个训练参与者客户端104向训练聚合器132提供梯度计算136。梯度计算136由每个训练参与者客户端104对其自身的训练数据集108进行。在一个实施例中,训练聚合器132是一个区块链客户端,并且在其他实施例中,可以包括受信区块链节点或对等方。所示实施例假设训练聚合器132也是受信区块链节点或对等方。训练聚合器响应于接收到的梯度计算136而生成验证梯度事务提议124。
图1C示出了根据示例实施例的梯度计算验证***150的替代实施例的框图。参照图1B,训练参与者网络150可以包括可能不包括验证梯度智能合约120的背书者节点或对等方116。相反,背书者节点或对等方116可以访问受信的独立审计方154。独立审计方154是负责验证机器学习训练过程进度的审计实体(例如政府机构)。背书者节点或对等方116可以参考独立审计方154以执行验证梯度智能合约120和验证梯度计算步骤。响应于从训练参与者网络112接收到梯度计算事务提议124,背书者节点或对等方116将梯度计算事务提议162转发给独立审计方154。
独立审计方154对接收到的转发的梯度计算事务提议162执行验证梯度智能合约120。验证结果166可以包括背书或被拒绝的事务提议,并返回到背书者节点或对等方116,验证结果166最终被包括在梯度计算验证***150的共享账本128中。每个背书者节点或对等方116包括共享账本158的副本,背书者节点或对等方116A包括共享账本158A,背书者节点或对等方116N包括共享账本158N。
验证梯度智能合约120执行以下步骤:
首先,验证梯度智能合约120选择随机标量β和随机单位矢量μ。接下来,验证梯度智能合约120使用以下公式来验证梯度的正确性:
验证梯度函数(Wt,gt,β,B)=|Σ(x∈Β)L(Wt+βμ;x)–L(Wt;x)-|B|β(gTμ)|<τ
Wt指模型参数(权重参数)
gt指计算到第t次迭代的梯度g
Σ指以下各项的总和
x指批次B中用于启动智能合约的一个样本
B代表批次,用于计算模型更新的样本子集
L是损失函数,代表与机器学习算法尝试优化的预测准确性相关的成本度量。在训练过程中优化的损失函数L有两个输入参数--一个是当前模型参数Wt,另一个是样本x。“;”是分隔符,用于分隔损失函数的两个参数。
由于B是一组点,|B|指B中的点数(B的基数)
gt是指计算到第t次迭代的梯度g
gT是指向量转置运算,用于计算两个向量的逐事务乘积
τ是一个小的合适阈值参数。τ可以设置为β2*平滑度参数。平滑度参数是损失函数L的平滑度参数,取决于应用。平滑度参数是损失函数L的Hessian特征值的绝对值的上限。
为了验证梯度计算的正确性,验证梯度智能合约120使用当前模型参数并且在模型参数沿选择的随机方向和选择的随机步长的较小扰动下,对损失函数L施加泰勒展开。较小扰动反映出模型参数值的较小变化。随机方向是指随机单位矢量μ。这由验证梯度智能合约120选择。步长是随机标量β,也由验证梯度智能合约120选择。假定步长β很小,则上述公式成立。小步长意味着标量β的大小必须与其他参数相比足够小。
图2A示出了根据示例实施例的区块链架构配置200。参照图2A,区块链架构200可以包括某些区块链单元,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅以示例的方式示出)。这些节点参与多种活动,例如区块链事务添加和验证过程(共识)。区块链节点204-210中的一个或多个可以基于背书策略来背书事务,并且可以为架构200中的所有区块链节点提供订购服务。区块链节点可以发起区块链背书并且试图向区块链层216中存储的区块链不可变账本中写入也可以存储在基础物理基础设施214上的副本。区块链配置可以包括一个或多个应用224,链接到应用编程接口(API)222以访问和执行存储的可以根据参与者寻求的定制配置创建并且可以维持自己状态、控制自己的资产、并接收外部信息的程序/应用程序代码220(例如,链码、智能合约等)。可以将其部署为事务并通过附加到分布式账本中安装在所有区块链节点204-210上。
区块链基础或平台212可以包括区块链数据、服务(例如,密码信任服务、虚拟执行环境等)的各个层,以及可用于接收和存储新事务并向正在寻求访问数据条目的审核方提供访问的物理基础设施的基础。区块链层216可以暴露接口,提供对处理程序代码和使用物理基础设施214所必需的虚拟执行环境的访问。密码信任服务218可以用于验证诸如资产交换事务之类的事务并保持信息私有。
图2A的区块链架构配置可以经由区块链平台212暴露的一个或多个接口以及提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和传输数据,并且可以由节点204-210以智能合约和相关链码的形式由具有其执行条件或其他代码单元执行。作为非限制性示例,可以创建智能合约以执行提醒、更新和/或其他更改、更新等的通知。智能合约本身可以用于标识与授权和访问要求及账本使用相关的规则。例如,信息226可以包括来自一个或多个训练参与者客户端的梯度计算,并且可以由区块链层216中包括的一个或多个处理实体(例如,虚拟机)进行处理。结果228可以包括通过执行验证梯度智能合约而背书的事务提议。物理基础设施214可以用于检索本文描述的任何数据或信息。
可以通过高级应用和编程语言创建智能合约,然后将其写入区块链中的块。智能合约可以包括可执行代码,被区块链(例如,区块链对等方的分布式网络)注册、存储和/或复制。事务是可以响应于与智能合约相关联的条件得到满足而执行的智能合约代码的执行。智能合约的执行可以触发对数字区块链账本状态的可信修改。由智能合约执行引起的对区块链账本的修改可以通过一个或多个共识协议在整个区块链对等方的分布式网络中自动复制。
智能合约可以以键值对的格式将数据写入区块链。此外,智能合约代码可以读取存储在区块链中的值,并将其用于应用操作中。智能合约代码可以将各种逻辑操作的输出写入区块链。代码可用于在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公开的和/或可以加密并保持为私有。智能合约使用/生成的临时数据由提供的执行环境保存在内存中,一旦识别出区块链所需的数据便将其删除。
链码可以包括具有附加特征的智能合约的代码解释。如本文所述,链码可以是部署在计算网络上的程序代码,共识过程中与链验证器一起在链上执行并验证链码。链码接收哈希,并从区块链中检索与使用先前存储的特征提取器创建的数据模板关联的哈希。如果哈希标识符的哈希值与从存储的标识符模板数据创建的哈希值匹配,则链码将授权密钥发送到请求的服务。链码可以将与密码详细信息关联的数据写入区块链。
图2B示出了根据示例实施例的在区块链的节点之间的区块链事务流250的示例。参照图2B,事务流可以包括由应用客户端节点260发送到背书对等节点281的事务提议291。背书对等节点281可以验证客户端签名并执行链码功能以发起事务。输出可能包括链码结果、在链码中读取的一组键/值版本(读取集)以及以链码写入的一组键/值(写入集)。如果得到批准,则将提议响应292与背书签名一起发送回客户端260。客户端260将背书组装成事务有效载荷293,并将其广播到订购服务节点284。订购服务节点284然后将订购的事务作为块传递给信道上的所有对等方281-283。在提交到区块链之前,每个对等方281-283可以验证事务。例如,对等方可以检查背书策略,以确保指定对等方的正确分配已经对结果进行了签名并针对事务有效负载293验证了签名。
再次参考图2B,客户端节点260通过构造请求并将其发送给作为背书者的对等节点281来发起事务291。客户端260可以包括利用支持的软件开发工具包(SDK)的应用,利用可用的API来生成事务提议。该提议是调用链码功能的请求,以便可以读取数据和/或将数据写入帐本(即,为资产写入新的键值对)。SDK可以充当填充程序,将事务提议打包为适当的架构格式(例如,远程过程调用(RPC)上的协议缓冲区),并采用客户的加密凭据为事务提议生成唯一的签名。
作为响应,背书对等节点281可以验证(a)事务提议的格式正确,(b)过去尚未提交过事务(重放攻击保护),(c)签名是有效,(d)提交者(在此示例中为客户端260)已被适当授权在该信道上执行提议的操作。背书对等节点281可以将事务提议输入作为所调用的链码功能的参数。然后针对当前状态数据库执行链码以产生包括响应值、读取集和写入集的事务结果。然而,此时尚未对账本进行任何更新。在292中,将值的集合与背书对等节点281的签名一起作为提议响应292传递回客户端260的SDK,客户端260的SDK解析应用消费的有效载荷。
作为响应,客户端260的应用检查/验证背书的对等方签名,并比较提议响应以确定提议响应是否相同。如果链码仅查询帐本,则应用将检查查询响应并通常不将事务提交至订购节点服务284。如果客户端应用打算将事务提交至订购节点服务284以更新帐本,则应用在提交之前确定指定的背书策略是否已实现(即,事务所需的所有对等节点是否都对事务进行背书)。在此,客户端可以仅包括事务的多方之一。这种情况下,每个客户端可能有自己的背书节点,并且每个背书节点都需要对事务背书。该体系结构使得即使应用选择不检查响应或以其他方式转发未背书的事务,背书策略仍将由对等方强制执行并在提交验证阶段得到维护。
在成功检查之后,在步骤293中,客户端260将背书组装成事务,并在事务消息内向订购节点284广播事务提议和响应。事务可以包含读/写集、背书对等方签名和信道ID。排序节点284不需要为了执行其操作而检查事务的全部内容,而是排序节点284可以简单地从网络中的所有信道接收事务,将信道按时间顺序对它们进行排序并创建每个信道的事务块。
事务的块从排序节点284传递到信道上的所有对等节点281-283。验证块内的事务294以确保满足任何背书策略并确保自事务执行生成读取集以来,读取集变量的账本状态没有变化。块中的事务被标记为有效或无效。此外,在步骤295中,每个对等节点281-283将块附加到信道的链上,并且对于每个有效事务,将写入集提交给当前状态数据库。发出一个事件以通知客户端应用事务(调用)已被不可变地附加到链上,并通知事务是通过验证还是无效。
图3A示出了被许可区块链网络300的示例,其特征在于分布式、去中心化的对等架构。在这个例子中,区块链用户302可以发起到被许可区块链304的事务。在这个例子中,事务可以是部署、调用或查询,并且可以通过利用SDK的客户端应用直接发布。网络可以提供对诸如审计方306的调节器的访问。区块链网络运营商308管理成员许可,例如将监管方306注册为“审计方”,并且将区块链用户302注册为“客户端”。审计方可能只限于查询帐本,而客户端可以被授权部署、调用和查询某些类型的链码。
区块链开发人员310可以编写链码和客户端应用。区块链开发者310可以通过接口将链码直接部署到网络。为了将来自传统数据源312的凭证包括在链码中,开发人员310可以使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点314连接到被许可区块链304。在进行任何事务之前,对等节点314从管理用户角色和许可的证书颁发机构316检索用户的注册和事务证书。在某些情况下,区块链用户必须拥有这些数字证书以便在被许可区块链304上进行事务。同时,可能要求尝试使用链码的用户在传统数据源312上验证其凭据。为了确认用户的授权,链码可以通过传统处理平台318使用对此数据的带外连接。
图3B示出了被许可区块链网络320的另一个示例,其特征在于分布式、去中心化的对等架构。在该示例中,区块链用户322可以将事务提交至被许可区块链324。在该示例中,事务可以是部署、调用或查询,并且可以通过利用SDK的客户端应用直接通过API等发布。网络可以提供对诸如审计方的调节器326的访问。区块链网络运营商328管理成员许可,例如将监管方326注册为“审计方”,并且将区块链用户322注册为“客户端”。审计方可能只限于查询帐本,而客户端可以被授权部署、调用和查询某些类型的链码。
区块链开发人员330编写链码和客户端应用程序。区块链开发者330可以通过接口将链码直接部署到网络。为了将来自传统数据源332的凭证包括在链码中,开发人员330可以使用带外连接来访问数据。在该示例中,区块链用户322通过对等节点334连接到网络。在进行任何事务之前,对等节点334从证书颁发机构336检索用户的注册和事务证书。在某些情况下,区块链用户必须拥有这些数字证书以便在被许可区块链324上进行事务。同时,可能要求尝试使用链码的用户在传统数据源332上验证其凭据。为了确认用户的授权,链码可以通过传统处理平台338使用对此数据的带外连接。
在一些实施例中,本文的区块链可以是无许可区块链。与需要许可加入被许可区块链相反,任何人都可以加入无许可区块链。例如,要加入无许可区块链,用户可以创建个人地址并通过提交事务并因此向账本添加条目来开始与网络进行交互。此外,所有各方都可以选择在***上运行节点并采用挖掘协议来帮助验证事务。
图3C示出了由包括多个节点354的无许可区块链352正在处理的事务的过程350。发送者356希望通过无许可区块链352将支付或某种其他形式的价值(例如,契约、病历、合同、商品、服务或可以封装在数字记录中的任何其他资产)发送给接收方358。在一个实施例中,发送方设备356和接收方设备358中的每一个都可以具有提供用户界面控件和事务参数显示的数字钱包(与区块链352关联的区块链)。作为响应,事务在整个区块链352中广播到节点354。根据区块链352的网络参数,节点基于无许可区块链352创建者建立的规则(可以是预定义的或动态分配的)来验证360事务。例如,可以包括验证所涉各方的身份等。可以立即验证事务,或者可以将其与其他事务放在队列中,并且节点354基于一组网络规则确定事务是否有效。
在结构362中,有效事务形成一个块并用锁(哈希)密封。该过程可以由节点354之间的挖掘节点来执行。挖掘节点可以利用专门用于挖掘和创建用于无许可区块链352的块的附加软件。每个块可以由使用网络同意的算法创建的哈希(例如256比特数等)标识。每个区块可能包括头部、指向链中前一个块头部的哈希的指针或引用,以及一组有效的事务。对上一个块哈希的引用与安全独立区块链的创建相关。
在可以将块添加到区块链之前,必须对块进行验证。对无许可区块链352的验证可以包括工作量证明(PoW),它是对从块头部中得出的难题(puzzle)的解决方案。尽管在图3C的示例中未示出,但是用于验证块的另一过程是权益证明(proof-of-stake)。与工作量证明不同的是,该算法通过权益证明来奖励解决数学问题的矿工,根据其财富(也称为“权益”)以确定性方式选择新区块的创建者。然后,由选择的节点执行类似的证明。
通过挖掘364,节点尝试通过对一个变量进行增量改变来解决该块,直到解决方案满足网络范围的目标为止。这将创建PoW,从而确保正确答案。换句话说,一个潜在的解决方案必须证明在解决问题上消耗了计算资源。在某些类型的无许可区块链中,矿工可能会因正确开采块而获得价值(例如硬币等)的奖励。
这里,PoW过程连同块的链,使得对区块链的修改极其困难,因为攻击者必须修改所有随后的块以便接受对一个块的修改。此外,随着新块的挖掘,修改区块的难度增加,后续块的数量也增加。通过分发366,通过无许可的区块链352分发成功验证的块,并且所有节点354将块添加到作为无许可的区块链352的审计账本的多数链。此外,由发送方356提交的事务中的值被存入或以其他方式转移到接收方设备358的数字钱包中。
图4示出了根据示例实施例的用于验证区块链中的梯度计算的***消息图。参照图4,***图400包括训练客户端410、训练聚合器420和背书者节点或对等方430。在所示的实施例中,假设训练聚合器420也是同一区块链网络的可信节点或对等方。然而,在其他实施例中,训练聚合器420可以是客户端,并通过单独的受信任节点或对等方与背书者节点或对等方430通信。
训练客户端410首先从训练聚合器420接收当前模型参数411。每个训练客户端410对本地数据集进行训练并执行梯度计算415并将梯度计算和元数据416传送给训练聚合器420。反过来,训练聚合器420为每个接收到的梯度计算和元数据416生成事务提议425。事务提议426接下来被发送到区块链网络的背书者节点或对等方430。
背书者节点或对等方430接收事务提议426并执行验证梯度智能合约435。验证梯度智能合约435从事务提议426获取参数并通过尝试批准梯度计算416来批准或拒绝事务提议426。如果验证梯度智能合约能够批准事务提议426,则它将背书436返回给训练聚合器420,否则返回拒绝。训练聚合器420从背书者节点或对等方430收集背书436,并生成区块链事务440,然后将其提交441到区块链网络。
训练聚合器420通过组合背书的梯度445来创建新的聚合机器学习模型,然后生成新的事务提议450。
图5A示出了根据示例实施例的在区块链中验证机器学习计算的示例方法的流程图500。参照图5A,方法500可以包括以下步骤中的一个或多个。
在框502,训练参与者客户端计算机器学习或人工智能模型训练步骤的梯度。
在框504,训练参与者客户端向区块链网络提交梯度计算事务提议。在一个实施例中,训练参与者客户端向区块链网络的受信任节点或对等方提交用于待验证的梯度计算的请求。可信节点或对等方接收请求,并将相应的事务提议提交到区块链网络。
在框506,区块链网络的一个或多个背书者节点或对等方接收事务提议并执行验证梯度智能合约。验证梯度智能合约评估事务提议的内容以确定事务提议是否有效。在一实施例中,背书者节点或对等方不包括验证梯度智能合约。在这种情况下,背书者节点或对等方将事务提议转发给区块链网络外部的一个或多个独立审计方。独立承包商包括验证梯度智能合约,并根据事务提议执行合约以提供背书。在这种情况下,背书者节点或对等方会将背书的事务提议提供给训练参与者客户端或处理背书的受信区块链节点或对等方。
在框508,背书者节点或对等方为批准的事务提议提供背书。
在框512,背书者节点或对等方拒绝未批准的事务提议。
图5B示出了根据示例实施例的在区块链中验证训练聚合器计算的示例方法的流程图520。参考图5B,方法520可以包括以下步骤中的一个或多个。
在框522,一组训练参与者客户端计算用于机器学习或人工智能训练计算的梯度。
在框524,一组训练参与者客户端提交从训练聚合器接收到的原始模型参数Wt,其上计算的新梯度以及用于训练聚合器的本地数据的子集。
在框526,训练聚合器将梯度计算转换为事务建议并将事务提议提交给区块链网络。
在框528,一个或多个背书者节点或对等方接收事务提议并执行验证梯度智能合约以验证事务提议。在一实施例中,背书者节点或对等方不包括验证梯度智能合约。在这种情况下,背书者节点或对等方将事务提议转发给区块链网络外部的一个或多个独立审计方。独立承包商包括验证梯度智能合约并根据事务提议执行合约以提供背书。在这种情况下,背书者节点或对等方将背书的事务提议提供给训练聚合器。
在框530,背书者节点或对等方为批准的事务提议提供背书。
图5C示出了根据示例实施例的用于在区块链验证模型更新的流程图540。参照图5C,方法540可以包括以下步骤中的一个或多个。
在框542,生成模型更新数据。在各种实施例中,区块链节点可以各自加载有被配置为执行各种机器学习和人工智能操作的一个或多个计算模型。在各种实施例中,计算模型的初始设置、安装、配置等可以改变并且可以使用任何合适的技术来完成。例如,可以基于定义的证书列表来限制***的参与(其中证书是为加入***的新节点生成的)、可以基于专用网络配置来限制、可以基于发布的区块链地址来限制或者类似。
节点可以检测模型更新事件。例如,节点可以在通过传输(例如,将更新发送到节点)等操作计算模型的同时检测模型更新事件。模型更新事件可以包括预测误差、新模型需求、定制事件等。例如,预测误差可以与使用计算模型的不正确识别有关,或者可以与任何其他合适或期望的误差相关联。新模型要需求可以涉及计算模型所需的新标识。例如,在计算模型被配置为识别商店中的库存的情况下,新模型需求可以响应于作为商店中的库存提供的新商品(例如苏打水等)。
节点基于模型更新事件生成模型更新数据。模型更新数据可以包括训练数据(例如,将由节点摄取以“训练”计算模型以纠正预测误差、检测新模型需求等的数据)、模型更新(例如,用于与计算模型合并以纠正预测误差、检测新模型需求等)和/或新的计算模型。节点将模型更新数据发送到验证节点。
在框544,验证模型更新数据。在各种实施例中,验证节点可以基于分布算法等来发送模型更新数据。例如,并且根据各种实施例,可以经由委托的权益证明***来控制或建立对有限数量的验证节点的委托。作为另一示例,可以通过智能合约(例如,发布和订阅模型)来控制委托,其中,通过一个或多个验证节点来执行验证和模型更新。作为另一示例,可以通过用于在节点之间建立关系的签名授权来控制委托。在各种实施例中,对验证节点的委托也可以是静态的并且被定义,其中每个节点可以包括详述向其发送模型更新数据的一个或多个验证节点的指令。在各种实施例中,一个或多个验证节点还可以发布合约并提供付款等以验证和/或更新模型更新数据。节点可以根据发布的合约选择一个或多个验证节点。
在各个实施例中,响应于验证节点(和/或多个验证节点)同时、即将或类似接收多个模型更新数据传输,可以基于时间戳(例如,模型更新数据中存在的时间戳或验证节点何时收到模型更新数据的时间戳)更新计算模型的顺序。在各种实施例中,还可以使用平均模型或算法将接收到的多个模型更新数据一起聚合和/或平均。
响应于接收模型更新数据,验证节点验证模型更新数据。验证节点可以将模型更新数据广播到验证网络中的一个或多个其他验证节点。验证节点可以使用任何合适或所需的共识方法或算法来建立对模型更新数据的共识,例如工作量证明、权益证明、实际的拜占庭容错、委托的权益证明或任何其他合适的共识算法。验证节点还可被配置为通过本地测试模型更新数据以确定模型更新数据是否纠正了预测误差,检测到新模型需求等来验证模型更新数据。例如,验证节点可以在本地实施测试数据和/或模型更新,并且可以使用计算模型来处理数据以确定预测误差是否仍然是问题、是否可以检测到新模型需求等。作为另一示例,验证节点可以测试模型更新数据以标识假阳性、假阴性等。测试也可以由人执行以识别新的场景和/或验证模型更新数据。验证节点将模型更新数据写入模型区块链。
验证节点可以配置为将模型更新数据与任何其他合适的数据一起写入模型区块链,例如,模型更新数据的哈希、日期或时间戳,发送模型更新数据的节点的识别信息(例如,IP地址、区块链地址等)和/或任何其他合适的数据或元数据。验证节点将写入传播到验证网络。例如,验证节点可以向验证网络中的一个或多个验证节点广播写入数据(例如,与写入模型区块链的块相关的数据、模型更新数据等)。每个验证节点可以配置为将模型更新数据写入相关联的本地模型区块链。
在框546,生成更新的计算模型。在各个实施例中,验证节点基于模型更新数据来生成更新的计算模型。例如,验证节点可以配置为通过将先前存在的计算模型与模型更新数据合并来生成更新的计算模型。例如,可以使用新的训练数据来重新计算或重新训练预先存在的计算模型,或者可以基于模型更新数据来改变预先存在的计算模型的参数。
在框548,验证更新的计算模型。验证节点验证更新的计算模型。验证节点可以将更新的计算模型广播到验证网络中的一个或多个其他验证节点。验证节点可以使用任何合适或期望的共识方法或算法来建立对更新的计算模型的共识,例如,工作量证明、权益证明、实际的拜占庭容错、委托的权益证明或任何其他合适的共识算法。验证节点还可被配置为通过本地测试更新的计算模型来确定更新的计算模型以确定更新的计算模型是否纠正了预测错误、检测到新模型需求等。例如,验证节点可以在本地实现更新的计算模型并且可以使用该计算模型处理数据以确定是否仍然产生预测误差、检测是否检测到新模型需求等。验证节点将更新的计算模型写入模型区块链。验证节点可以配置为将更新的计算模型与任何其他合适的数据一起写入模型区块链,例如,更新的计算模型的哈希、日期或时间戳,发送模型更新数据的节点的识别信息(例如IP地址,区块链地址等)和/或任何其他合适的数据或元数据。
在框550,传播更新的计算模型。验证节点将写入传播到验证网络。例如,验证节点可以向验证网络中的一个或多个验证节点广播写入数据(例如,与写入模型区块链的块相关的数据、更新的计算模型等)。每个验证节点可以配置为将更新的计算模型写入相关联的本地模型区块链。验证节点将更新的计算模型广播到节点。在各种实施例中,验证节点可以将验证的模型更新数据而不是更新的计算模型广播到一个或多个节点。在各种实施例中,验证节点可以基于分发算法等来广播更新的计算模型。
图6A示出了根据示例实施例的包括配置为执行各种操作的物理基础设施610的示例***600。参照图6A,物理基础设施610包括模块612和模块614。模块614包括区块链620和智能合约630(可以驻留在区块链620上),可以执行包括在任何示例实施例中包括的任何操作步骤608(模块612中)。步骤/操作608可以包括描述的一个或多个实施例,并且可以表示从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是相同的模块。
图6B示出了根据示例实施例的配置为执行各种操作的另一示例***640。参照图6B,***640包括模块612和模块614。模块614包括区块链620和智能合约630(可以位于区块链620上),可以执行在示例实施例中包括的任何操作步骤608(模块612中)。步骤/操作608可以包括描述的一个或多个实施例,并且可以表示从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是相同的模块。
图6C示出了根据示例实施例的配置为利用缔约方之间的智能合约配置的示例***以及配置为在区块链上强制执行智能合约条款的中介服务器。参照图6C,配置650可以表示由智能合约630驱动的通信会话、资产转移会话或过程,智能合约630明确地标识一个或多个用户设备652和/或656。智能合约执行的结果可以由服务器654管理。智能合约630的内容可能需要由作为智能合约事务当事方的实体652和656中的一个或多个的数字签名。智能合约执行的结果可以作为区块链事务被写入区块链620。智能合约630驻留在区块链620上,区块链620可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图6D示出了根据示例实施例的包括区块链的***660。参照图6D的示例,应用编程接口(API)网关662提供用于访问区块链逻辑(例如,智能合约630或其他链码)和数据(例如,分布式账本等)的公共接口。在该示例中,API网关662是用于通过将一个或多个实体652和656连接到区块链对等方(即服务器654)来在区块链上执行事务(调用、查询等)的公共接口。在此,服务器654是区块链网络对等组件,持有世界状态的副本和分布式帐本,允许客户端652和656查询有关世界状态的数据并将事务提交到区块链网络中,其中具体取决于智能合约630和背书策略,背书对等方将运行智能合约630。
以上实施例可以以硬件、处理器执行的计算机程序、固件或上述的组合来实现。计算机程序可以体现在诸如存储介质的计算机可读介质上,例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存、只读存储器(“ROM”)、可擦可编程只读存储器(“EPROM”)、电可擦可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移动磁盘、光盘只读存储器(“CD-ROM”)或本领域已知的任何其他形式的存储介质。
示例性存储介质可以被耦合到处理器,使得处理器可以从该存储介质读取信息,并且可以向该存储介质写入信息。或者,存储介质可以与处理器集成在一起。处理器和存储介质可以驻留在专用集成电路(“ASIC”)中。在替代方案中,处理器和存储介质可作为分立组件驻留。
图7A示出了根据示例实施例的用于将新块添加至分布式账本720的过程700,并且图7B示出了根据示例实施例的用于区块链的新数据块结构730的内容。参照图7A,客户端(未示出)可以向区块链节点711、712和/或713提交事务。客户端可以是从任何来源接收的用于在区块链720上制定活动的指令。作为示例,客户端可以是代表请求者(例如设备、个人或实体)为区块链提出事务的应用。多个区块链对等方(例如,区块链节点711、712和713)可以维持区块链网络的状态和分布式账本720的副本。在区块链网络中可以存在不同类型的区块链节点/对等方,包括对客户端提出的事务进行模拟并背书的背书对等方和验证背书、验证事务并将事务提交到分布式账本720的提交对等方。在此示例中,区块链节点711、712和713可以充当背书者节点,提交者节点或两者兼有的角色。
分布式帐本720包括以块为单位存储不可变的、顺序记录的区块链以及保持区块链722当前状态的状态数据库724(当前世界状态)。每个信道可以存在一个分布式帐本720,并且每个对等方为其所属的每个信道维护各自的分布式账本720的副本。区块链722是事务日志,被构造为哈希链接的块,其中每个块包含N个事务的序列。块可包括图7B所示的各种组件。块的链接(图7A中的箭头所示)可以通过在当前块的块头部中添加先前块头部的哈希值来生成。以这种方式,对区块链722上的所有事务进行排序并将其密码链接在一起,以防止在不破坏哈希链接的情况下篡改区块链数据。此外由于链接,区块链722中的最新块代表在其之前的每个事务。区块链722可以存储在对等文件***(本地或附加存储)上,对等文件***支持仅追加的区块链工作负载。
区块链722的当前状态和分布式账本722可以存储在状态数据库724中。这里,当前状态数据表示区块链722的链事务日志中曾经包括的所有密钥的最新值。链码调用针对状态数据库724中的当前状态执行事务。为了使这些链码交互非常高效,所有密钥的最新值都存储在状态数据库724中。状态数据库724可以将索引视图包含到区块链722的事务日志中,因此可以随时从链中重新生成。状态数据库724可以在接受事务之前在对等方启动时自动恢复(或在需要时生成)。
背书节点从客户端接收事务,并基于模拟结果对事务背书。背书节点持有模拟事务提议的智能合约。当背书节点对事务背书时,背书节点创建作为从背书节点到客户端应用的签名响应的事务背书,指示模拟事务的背书。对事务背书的方法取决于可以在链码中指定的背书策略。背书策略的一个示例是“大多数背书对等方必须对事务背书”。不同的信道可能有不同的背书策略。客户端应用将背书的事务转发到订购服务710。
排序服务710接受已背书的事务,将其排序为一个块,并将这些块传递给提交对等方。例如,当已经达到事务的阈值、计时器超时或其他条件时,订购服务710可以发起新的块。在图7A的示例中,区块链节点712是已经接收到新数据新数据块730以用于存储在区块链720上的提交对等方。区块链中的第一块可以被称为起源块,包括关于区块链、其成员、存储在其中的数据等的信息。
订购服务710可以由订购者集群组成。订购服务710不处理事务、智能合约或维护共享帐本。而是,订购服务710可以接受经背书的事务,并指定将这些事务提交给分布式帐本720的顺序。区块链网络的体系结构可以被设计为使得“订购”(例如,Solo,Kafka,BFT等)成为可插拔组件。
事务以一致的顺序被写入分布式账本720。建立事务的顺序以确保对状态数据库724的更新在提交给网络时有效。与通过解决密码难题或挖掘进行排序的加密货币区块链***(例如,比特币等)不同,在此示例中,分布式帐本720的当事方可以选择最适合该网络的排序机制。
当订购服务710初始化新数据块730时,新数据块730可被广播到提交对等方(例如,区块链节点711、712和713)。作为响应,每个提交对等方通过检查以确保读取集和写入集仍与状态数据库724中的当前世界状态相匹配来验证新数据块730中的事务。具体而言,提交对等方可以确定背书者模拟事务时存在的读取数据是否与状态数据库724中的当前世界状态相同。当提交对等方验证事务时,将事务写入分布式帐本720上的区块链722,状态数据库724使用读写集中的写入数据更新。如果事务失败,即,如果提交对等方发现读写集与状态数据库724中的当前世界状态不匹配,则排序为块的事务仍将包括在该块中但它将被标记为无效,并且状态数据库724将不被更新。
参照图7B,存储在分布式帐本720的区块链722上的新数据块730(也称为数据块)可以包括多个数据段,例如块头部740、块数据750和块元数据760。应该理解,图7B中所示的描绘的各种块及其内容,例如新数据块730及其内容仅是示例,并不意味着限制示例实施例的范围。新数据块730可以在块数据750内存储N个事务(例如,1、10、100、500、1000、2000、3000等)的事务信息。新数据块730还可以包括:链接到块头部740内的先前块(例如,在图7A中的区块链722上)。特别地,块头部740可包括先前块头部的哈希。块头部740还可以包括唯一的块号,新数据块730的块数据750的哈希等等。新数据块730的块号可以是唯一的,并且可以以各种顺序分配,例如从零开始的增量/顺序。
块数据750可以存储记录在新数据块730内的每个事务的事务信息。例如,事务数据可以包括以下一种或多种:事务的类型、版本、时间戳、分布式帐本720的信道ID、事务ID、时期、有效载荷可见性、链码路径(部署TX)、链码名称、链码版本、输入(链码和功能)、客户端(创建者)等标识公钥和证书、客户签名、背书者的身份、背书者签名、提议哈希、链码事件、响应状态、名称空间、读取集(事务记录读取的密钥和版本等)、写入设置(键和值的列表等)、开始键、结束键、键列表、默克尔树查询摘要等。可以针对N个事务中的每一个存储事务数据。
在一些实施例中,块数据750还可存储新数据762,新数据762将附加信息添加到区块链722中哈希链接的块链。附加信息包括步骤、特征、过程和/或此处描述动作的一个或多个。因此,新数据762可以存储在分布式帐本720上的块的不可变日志中。存储这种新数据762的一些益处反映在本文公开和描绘的各种实施例中。尽管在图7B中,新数据762被描述在块数据750中,但是也可以位于块头部740或块元数据760中。
块元数据760可以存储元数据的多个字段(例如,作为字节阵列等)。元数据字段可以包括在块创建时的签名、对最后一个配置块的引用、标识块内有效事务和无效事务的事务过滤器、对块进行排序的订购服务的最后偏移持续时间等。签名、最后的配置块和订购者元数据可以由订购服务710添加。同时,块的提交者(例如区块链节点712)可以基于背书策略,读取/写入集的验证等来添加有效性/无效性信息。事务过滤器可以包括大小等于块数据750中事务数量的字节阵列和标识事务是否有效/无效的验证码。
图7C示出了根据本文描述实施例的用于数字内容的区块链770的实施例。数字内容可以包括一个或多个文件和相关信息。文件可以包括媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链不可变、仅追加的方面可作为保护数字内容的完整性、有效性和真实性的保障,使其适用于适用可受理性规则的法律程序中,或在考虑证据的情况下或在其他方面希望展示和使用数字信息的其他场合。在这种情况下,数字内容可以被称为数字证据。
区块链可以以各种方式形成。在一个实施例中,数字内容可以被包括在区块链中并且可以从其本身访问。例如,区块链的每个块可以沿着相关联的数字内容存储参考信息的哈希值(例如,头部、值等)。然后可以将哈希值和关联的数字内容一起加密。因此,可以通过解密区块链中的每个块来访问每个块的数字内容,并且每个块的哈希值可以用作参考先前块的基础。可以说明如下:
Figure BDA0002523788490000221
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储每个块的内容的加密哈希而无需任何数字内容。数字内容可以与原始文件的哈希值相关联地存储在另一存储区域或存储器地址中。其他存储区域可以是用于存储区块链的相同存储设备,也可以是不同的存储区域,甚至是单独的关系数据库。可以通过获得或查询感兴趣的块的哈希值,然后在与实际数字内容相对应地存储的存储区域中查找具有值的值来引用或访问每个块的数字内容。例如,可以执行数据库网守(gatekeeper)。可以说明如下:
Figure BDA0002523788490000222
Figure BDA0002523788490000231
在图7C的示例实施例中,区块链770包括多个以有序序列密码链接的块7781、7782、...、778N,其中N≥1。用于链接块7781、7782、...、778N的加密可以是许多键控或非键控哈希函数中的任何一个。在一个实施例中,对块7781、7782、...、778N用哈希函数进行处理,哈希函数基于块中的信息从输入产生n位字母数字输出(其中n是256或另一个数字)。此类哈希函数的示例包括但不限于SHA型(SHA代表安全哈希算法)算法、Merkle-Damgard算法、HAIFA算法、Merkle-tree算法、基于随机数的算法和非防碰撞PRF算法。在另一个实施例中,可以通过与哈希函数不同的函数来密码地链接块7781、7782、…、778N。为了说明的目的,参考诸如SHA-2的哈希函数进行以下描述。
区块链中的每个块7781、7782、...、778N包括头部、文件版本和值。由于区块链中的哈希运算,每个块的头部和值都不同。在一个实施例中,该值可以被包括在头部中。如下面更详细描述的,文件的版本可以是原始文件或原始文件的不同版本。
区块链中的第一个块7781被称为起源块并包括头部7721、原始文件7741和初始值7761。用于起源块以及实际上在所有后续块中的哈希方案可以变化。例如,可以将第一块7781中的所有信息一次哈希在一起,或者可以分别对第一块7781中的每个信息或一部分信息进行哈希处理,然后可以对分别哈希的部分进行哈希处理。
头部7721可以包括一个或多个初始参数,例如,可以包括版本号、时间戳、随机数、根信息、难度级别、共识协议、持续时间、媒体格式、源、描述性关键字和/或与原始文件7741和/或区块链相关的其他信息。头部7721可以自动地(例如,通过区块链网络管理软件)生成,或者可以由区块链参与者手动生成。与区块链中其他区块7782至778N中的头部不同,起源区块中的头部7721并不引用先前的区块,仅仅是因为没有先前的区块。
起源块中的原始文件7741可以是例如由设备捕获的数据,在将设备包括在区块链中之前对其进行处理或不进行处理。通过***的接口从设备、媒体源或节点接收原始文件7741。原始文件7741与元数据相关联,例如,元数据可以由用户、设备和/或***处理器手动或自动生成。元数据可以与原始文件7741相关联地包括在第一块7781中。
起源块中的值7761是基于原始文件7741的一个或多个唯一属性生成的初始值。在一个实施例中,一个或多个唯一属性可包括原始文件7741的哈希值、原始文件7741的元数据以及与该文件相关联的其他信息在一种实施方式中,初始值7761可以基于以下唯一属性:
1)SHA-2计算原始文件的哈希值
2)始发设备ID
3)原始文件的开始时间戳
4)原始文件的初始存储位置
5)用于当前控制原始文件和相关元数据的软件的区块链网络成员ID
区块链中的其他块7782至778N也具有头部、文件和值。然而,与第一块7721不同,其他块中的头部7722至772N中的每一个均包括紧接在前的块的哈希值。前一个块的哈希值可以只是前一个块的头部的哈希,也可以是整个前一个块的哈希值。通过在剩余的每个块中包括前一个块的哈希值,可以逐个块地从第N个块返回到起源块(以及关联的原始文件),如箭头所示780,建立可审计且不可改变的监管链。
其他块中的头部7722至772N中的每个还可以包括其他信息,例如版本号、时间戳、随机数、根信息、难度级别、共识协议和/或其他参数或与对应文件相关联的信息和/或一般的区块链。
其他块中的文件7742至774N可以等于原始文件,或者可以是起源块中原始文件的修改版本,例如,取决于执行的处理类型。所执行的处理类型可能因块而异。处理可以包括例如在先前的块中对文件的任何修改,诸如编辑信息或以其他方式改变文件的内容、从文件中取走信息或向文件添加或附加信息。
附加地或可替代地,处理可以包括仅从先前的块复制文件、改变文件的存储位置、从一个或多个先前的块分析文件、将文件从一个存储或存储器位置移动到另一位置或相对于区块链文件和/或其关联的元数据执行操作。涉及分析文件的处理可以包括例如附加,包括或以其他方式关联与文件相关联的各种分析、统计或其他信息。
其他块中的每个其他块7762至776N中的值是唯一值,并且由于执行的处理而全都不同。例如,任何一个块中的值都对应于前一个块中值的更新版本。更新反映在为其分配了值的块的哈希中。因此,块的值提供了对在块中执行了哪些处理的指示,并且还允许通过区块链追溯回到原始文件。这种跟踪确认了整个区块链中文件的托管链。
例如,考虑对前一个块中的文件的部分进行编辑、屏蔽或像素化以保护文件中显示的人的身份的情况。在这种情况下,包括已编辑文件的块将包括与已编辑文件相关联的元数据,例如,如何执行编辑、执行编辑的人员、进行编辑的时间戳等。可对元数据进行哈希处理以形成值。由于该块的元数据与经过哈希处理以形成前一个块中的值的信息不同,因此这些值互不相同,并且在解密时可以恢复。
在一个实施例中,当以下任何一个或多个发生时,可以更新前一个块的值(例如,计算新的哈希值)以形成当前块的值。在该示例实施例中,可以通过对以下所述的全部或部分信息进行哈希处理来计算新的哈希值。
a)新SHA-2计算的哈希值,如果以任何方式处理文件(例如,如果文件已被编辑、复制、更改、访问或已采取其他措施)
b)文件的新存储位置
c)确定与文件相关联的新元数据
d)将文件的访问或控制权从一个区块链参与者转移到另一个区块链参与者
图7D示出了根据一个实施例的可以表示区块链790中块的结构的块的实施例。块Blocki包括头部772i、文件774i和值776i
头部772i包括先前块Blockii-1的哈希值和附加参考信息,附加信息例如可以是本文讨论的信息的任何类型(例如,头部信息包括参考、特征、参数等)。当然,除起源块外,所有块均引用前一个块的哈希。前一个块的哈希值可以仅仅是前一个块头部的哈希,也可以是前一个块中所有或部分信息的哈希,包括文件和元数据。
文件774i依次包括多个数据,例如数据1、数据2、…、数据N。数据用元数据元数据1、元数据2、…、元数据N标记,这些元数据描述了与数据关联的内容和/或特征。例如,每个数据的元数据可以包括指示数据时间戳、处理数据、指示人物或数据中描述的人或其他内容的关键字,和/或可能有助于确定整个文件的有效性和内容,尤其是使用数字证据的其他特征,例如,如以下讨论的实施例所描述的。除元数据外,每个数据都可以使用参考REF1、REF2、…、REFN标记到先前的数据以防止篡改、文件中的空白以及通过文件的顺序参考。
一旦将元数据分配给数据(例如,通过智能合约),就不能在不改变哈希的情况下改变元数据,可以容易地将其识别为无效。因此,元数据创建信息的数据日志,供区块链中的参与者访问以供使用。
值776i是哈希值或基于先前讨论的任何类型的信息计算出的其他值。例如,对于任何给定的块Blocki,可以对该块的值进行更新以反映对该块执行的处理,例如,新的哈希值、新的存储位置、关联文件的新元数据、控制权或访问权的转移、标识符或其他要添加的操作或信息。尽管示出了每个块中的值与用于文件和头部的数据的元数据分离,但是在另一实施例中,该值可以部分或全部基于该元数据。
一旦形成区块链770,在任何时间点,可以通过向区块链查询跨块的值的事务历史来获得文件的不可变的托管链。查询或跟踪过程可以从解密当前包括的块的值(例如,最后(第N个)块)开始,然后继续解密其他块的值,直到达到起源块并恢复原始文件为止。解密还可以包括在每个块解密头部和文件以及相关联的元数据。
基于在每个块中发生的加密的类型来执行解密。这可能涉及私钥、公钥或公钥-私钥对的使用。例如,当使用非对称加密时,网络中的区块链参与者或处理器可以使用预定算法来生成公钥和私钥对。公钥和私钥通过某种数学关系相互关联。可以公开分配公钥,以用作从其他用户接收消息的地址,例如,IP地址或家庭地址。私钥是保密的,用于对发送给其他区块链参与者的消息进行数字签名。签名包含在消息中,以便收件人可以使用发件人的公钥进行验证。这样,收件人可以确定只有发件人可以发送此消息。
生成密钥对可以类似于在区块链上创建账户,但是不必实际在任何地方进行注册。此外,发送者使用私钥对在区块链上执行的每个事务进行数字签名。签名可确保只有帐户所有者才能跟踪和处理(如果在智能合约确定的许可范围内)区块链文件。
图8A和8B示出了可以在此处合并和使用的区块链用例的其他示例。特别地,图8A示出了存储机器学习(人工智能)数据的区块链810的示例800。机器学习依靠大量的历史数据(或训练数据)来建立预测模型以对新数据进行准确的预测。机器学习软件(例如神经网络等)通常可以筛选数百万条记录以挖掘非直观模式。
在图8A的示例中,主机平台820构建并部署用于资产830的预测监视的机器学***台820可以是云平台、工业服务器、Web服务器、个人计算机、用户设备等。资产830可以是任何类型的资产(例如,机器或设备等),例如飞机、机车、涡轮机、医疗机械和设备、石油和天然气设备、船、轮船、车辆等。作为另一示例,资产830可以是非有形资产,例如股票、货币、数字硬币、保险等。
区块链810可以用于显着改善机器学***台820需要的收集时间。例如,使用智能合约,可以直接且可靠地将数据直接从其来源地点直接传输到区块链810。通过使用区块链810以确保所收集数据的安全性和所有权,智能合约可以直接从智能合约发送数据。使用这些数据来构建机器学习模型的个人资产。这允许在资产830之间共享数据。
可以基于共识机制将收集的数据存储在区块链810中。共识机制引入(允许的节点)以确保所记录的数据得到验证并准确。记录的数据带有时间戳、加密签名并且是不可变的。因此,它是可审计、透明和安全的。在某些情况下(例如供应链、医疗保健、物流等),添加直接写入区块链的IoT设备可以提高记录数据的频率和准确性。
此外,通过主机平台820对收集的数据进行机器学***台820可以将不同的训练和测试步骤(以及与其相关联的数据)存储在区块链810上。机器学***台820已经获得最终训练的模型时,所得模型可以存储在区块链810上。
在训练了模型之后,可以将其部署到实际环境中,可以基于最终训练后的机器学***台820执行机器学***台820存储在区块链810上。在一个实施例中,本文描述和/或描绘的特征和/或动作可以在区块链810上或相对于区块链810发生。
可以将用于区块链的新事务一起收集到一个新块中,并添加到现有的哈希值中。然后将其加密以为新块创建一个新的哈希。加密后添加到下一个事务列表中,依此类推。结果是一个块链,每个块都包含所有先前块的哈希值。存储这些块的计算机会定期比较其哈希值以确保它们都一致。任何不同意的计算机都将丢弃导致问题的记录。这种方法对于确保区块链的防篡改很有用,但并不是完美的。
游戏该***的一种方法是让不诚实的用户以他们的喜好更改事务列表,但是要保持哈希值不变。这可以通过蛮力来完成,换句话说,可以通过更改记录、加密结果以及查看哈希值是否相同来实现。如果没有,则一次又一次尝试,直到找到匹配的哈希值为止。区块链的安全性是基于这样的信念,即普通计算机只能在完全不切实际的时间范围内(例如宇宙的年龄)执行这种暴力攻击。相比之下,量子计算机要快得多(快几千倍),因此构成更大的威胁。
图8B示出了量子安全区块链852的示例850,实现量子密钥分配(QKD)以保护免受量子计算攻击。在此示例中,区块链用户可以使用QKD来验证彼此的身份。它使用诸如光子之类的量子粒子发送信息,如果不破坏它们,窃听者就无法复制它们。这样,通过区块链的发送者和接收者可以确保彼此的身份。
在图8B的示例中,存在854、856、858和860四个用户。成对的用户中的每一个可以在他们之间共享秘密密钥862(即QKD)。由于在此示例中存在四个节点,因此存在六对节点,因此使用了六个不同的私钥862,包括QKDAB,QKDAC,QKDAD,QKDBC,QKDBD和QKDCD。每对都可以通过使用量子粒子(例如光子)发送信息来创建QKD,如果不破坏它们,窃听者就无法复制它们。这样,一对用户就可以确定彼此的身份。
区块链852的操作基于两个过程(i)创建事务,和(ii)构建聚合新事务的区块。可以创建类似于传统区块链网络的新事务。每个事务可以包含有关发送者、接收者、创建时间、要转移的金额(或价值)、证明发送者有足够的操作资金的参考事务列表等信息。然后将此事务记录发送到所有其他节点,并将其输入未确认事务池中。在此,两方(即,854-860中的一对用户)通过提供他们的共享密钥862(QKD)来认证事务。该量子签名可以附加到每笔事务中,因此很难进行篡改。每个节点相对于区块链852的本地副本检查其条目,以验证每个事务具有足够的资金。但是,事务尚未确认。
不是在块上执行传统的挖掘过程,而是可以使用广播协议以分散的方式创建块。在预定的时间段(例如,秒、分钟、小时等),网络可以将广播协议应用于任何未确认的事务,从而实现关于事务的正确版本的拜占庭协议(共识)。例如,每个节点可能拥有私有值(该特定节点的事务数据)。在第一轮中,节点之间相互传递私有值。在随后的回合中,节点将它们在上一回合中从其他节点接收到的信息进行通信。在这里,诚实节点能够在新区块内创建完整的事务集。新块可以被添加到区块链852。在一个实施例中,本文描述和/或描绘的特征和/或动作可以在区块链852上或相对于区块链852发生。
图9示出了支持本文描述和/或描绘的一个或多个示例实施例的示例***900。***900包括计算机***/服务器902,可与许多其他通用或专用计算***环境或配置一起操作。可能适用于计算机***/服务器902的众所周知的计算***、环境和/或配置的示例包括但不限于个人计算机***、服务器计算机***、瘦客户端、胖客户端、手持或便携式设备、多处理器***、基于微处理器的***、机顶盒、可编程消费电子产品、网络PC、小型计算机***、大型计算机***以及包括上述任何***或设备的分布式云计算环境,等等。
可在由计算机***执行的计算机***可执行指令(例如程序模块)的一般上下文中描述计算机***/服务器902。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。可以在分布式云计算环境中实践计算机***/服务器902,在分布式云计算环境中,任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括内存存储设备的本地和远程计算机***存储介质中。
如图9所示,以通用计算设备的形式示出了云计算节点900中的计算机***/服务器902。计算机***/服务器902的组件可以包括但不限于一个或多个处理器或处理单元904、***存储器906以及将包括***存储器906的各种***组件耦合到处理器904的总线。
总线表示几种类型的总线结构中的任何一种或多种,包括使用各种总线体系结构中的任何一种的存储器总线或存储器控制器、***总线、加速图形端口以及处理器或本地总线。作为示例而非限制,此类体系结构包括行业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和***组件互连(PCI)总线。
计算机***/服务器902通常包括各种计算机***可读介质。这样的介质可以是计算机***/服务器902可访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质。在一个实施例中,***存储器906实现其他附图的流程图。***存储器906可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)910和/或高速缓冲存储器912。计算机***/服务器902可以进一步包括其他可移动/不可移动、易失性/非易失性计算机***存储介质。仅作为示例,可以提供存储***914以用于读取和写入不可移动的非易失性磁性介质(未示出并且通常称为“硬盘驱动器”)。尽管未示出,但是用于读取和写入可移动非易失性磁盘(例如“软盘”)的磁盘驱动器以及用于读取或写入可移动非易失性光盘的光盘驱动器可以提供CD-ROM、DVD-ROM或其他光学介质之类的磁盘。在这种情况下,每一个都可以通过一个或多个数据媒体接口连接到总线。如将在下面进一步描绘和描述的,存储器906可以包括具有一组(例如,至少一个)程序模块的至少一个程序产品,该程序模块被配置为执行本申请的各种实施例的功能。
具有一组(至少一个)程序模块918的程序/实用程序916以及操作***、一个或多个应用程序、其他程序模块和程序数据可以通过示例而非限制的方式存储在存储器906中。操作***、一个或多个应用程序、其他程序模块以及程序数据或它们的某种组合中的每一个可以包括联网环境的实现。程序模块918通常执行本文所述的本申请的各种实施例的功能和/或方法。
如本领域技术人员将理解的,本申请的各方面可以体现为***、方法或计算机程序产品。因此,本申请的各方面可以采取以下形式:完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或结合了通常可以全部提及的软件和硬件方面的实施例。本文中称为“电路”、“模块”或“***”。此外,本申请的各方面可以采取体现在其上体现有计算机可读程序代码的一个或多个计算机可读介质中体现的计算机程序产品的形式。
计算机***/服务器902还可以与一个或多个外部设备920通信,诸如键盘、指示设备、显示器922等、使用户能够与计算机***/服务器902交互的一个或多个设备和/或使计算机***/服务器902与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这样的通信可以经由I/O接口924发生。然而,计算机***/服务器902仍然可以通过网络适配器926与一个或多个网络通信,诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,Internet)。如图所示,网络适配器926通过总线与计算机***/服务器902的其他组件进行通信。应当理解,尽管未示出,但是其他硬件和/或软件组件可以与计算机***/服务器902结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动器、阵列、RAID***、磁带驱动器和数据档案存储***等。
尽管在附图中示出了***、方法和非暂时性计算机可读介质中的至少一个的示例性实施例,并且在前面的详细描述中进行了描述,但是应当理解,本申请不限于公开的实施例,而是能够进行如所附权利要求所阐述和定义的许多重新布置、修改和替换。例如,各个附图的***的能力可以由本文描述的模块或组件中的一个或多个或以分布式架构来执行,并且可以包括发射机、接收机或两者。例如,由各个模块执行的全部或部分功能可以由这些模块中的一个或多个来执行。此外,本文描述的功能可以在模块或模块或组件内部或外部的各种时间并且与各种事件相关地执行。而且,可以经由以下各项中的至少一项在各个模块之间和/或通过多种协议发送各种模块之间发送的信息:数据网络、互联网、语音网络、互联网协议网络、无线设备、有线设备。而且,可以直接和/或经由一个或多个其他模块来发送或接收由任何模块发送或接收的消息。
本领域的技术人员将意识到,“***”可以体现为个人计算机、服务器、控制台、个人数字助理(PDA)、手机、平板计算设备、智能手机或任何其他形式合适的计算设备或设备组合。将上述功能呈现为由“***”执行并不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个示例。实际上,本文公开的方法、***和装置可以以与计算技术一致的局部和分布式形式来实现。
应该注意的是,在本说明书中描述的一些***特征已经作为模块呈现以便更具体地强调它们的实现独立性。例如,模块可以被实现为硬件电路,包括定制的超大规模集成电路(VLSI)电路或门阵列,诸如逻辑芯片、晶体管或其他分立组件的现成半导体。模块也可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等的可编程硬件设备中实现。
模块也可以至少部分地以软件实现以由各种类型的处理器执行。所标识的可执行代码单元可以例如包括计算机指令的一个或多个物理或逻辑块,计算机指令可以例如被组织为对象、过程或功能。然而,所标识的模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当这些指令在逻辑上结合在一起时,包括模块并实现模块的所述目的。此外,模块可以存储在计算机可读介质上,该计算机可读介质可以是例如硬盘驱动器、闪存设备、随机存取存储器(RAM)、磁带或用于存储数据的任何其他此类介质。
实际上,可执行代码的模块可以是单个或多个指令,并且甚至可以分布在多个不同的代码段上、不同的程序之间以及多个存储设备上。类似地,操作数据可以在这里在模块内被识别和示出,并且可以以任何合适的形式体现并且可以在任何合适的类型的数据结构内组织。操作数据可以作为单个数据集收集,或者可以分布在包括不同存储设备的不同位置上并且可以至少部分地仅作为***或网络上的电子信号存在。
将容易地理解,如本文的附图中总体上描述和示出的,本申请的组件可以以多种不同的配置来布置和设计。因此,实施例的详细描述不旨在限制所要求保护的本申请的范围,而仅代表本申请的所选实施例。
本领域普通技术人员将容易地理解,可以以不同顺序的步骤和/或以与所公开的配置不同的配置的硬件元件来实践以上内容。因此,尽管已经基于这些优选实施例描述了本申请,但是对于本领域技术人员显而易见的是,某些修改、变型和替代构造将是显而易见的。
尽管已经描述了本申请的优选实施例,但是应当理解,所描述的实施例仅是示例性的,并且当考虑全部等价物和修改(例如,协议、硬件设备、软件平台等)的范围时,本申请的范围仅由所附权利要求书限定。

Claims (16)

1.一种***,包括:
训练参与者客户端,包括训练数据集并配置为:
生成多个事务提议,多个事务提议的每一个对应于与随机梯度下降有关的机器学习模型训练的一个训练迭代,机器学习模型训练包括多个训练迭代,事务提议包括由训练参与者客户端执行的梯度计算;和
区块链网络,包括:
一个或多个背书者节点或对等方,每个节点或对等方包括一个验证梯度智能合约,并配置为:
接收多个事务提议;
执行验证梯度智能合约;和
向训练参与者客户端提供与多个事务提议相对应的背书。
2.根据权利要求1所述的***,其中,验证梯度智能合约不执行梯度计算,其中,验证梯度智能合约验证来自事务提议的梯度计算的结果。
3.根据权利要求2所述的***,其中,事务提议从训练数据集中指定批次、损失函数、当前参数权重和梯度计算。
4.根据权利要求3所述的***,其中,批次包括来自训练数据集的用于训练迭代的样本子集。
5.根据权利要求2所述的***,其中,与训练数据集相对应的数据和模型参数存储在区块链网络外部,其中,与验证相关的数据存储在区块链网络的区块链中。
6.根据权利要求2所述的***,其中,响应于训练参与者客户端接收到背书,训练参与者客户端将背书包括在事务中,并将事务提交给区块链网络。
7.根据权利要求2所述的***,其中,一个或多个背书者节点或对等方不包括验证梯度智能合约,其中,一个或多个背书者节点将事务提议转发给区块链网络外部的独立审计方,其中,独立审计方包括验证梯度智能合约并配置为:
接收多个事务提议;
执行验证梯度智能合约;和
将与多个事务提议相对应的验证结果提供给背书者节点或对等方。
8.一种方法,包括:
由训练参与者客户端生成多个事务提议,多个事务提议中的每一个对应于用于一个与随机梯度下降有关的机器学习模型训练的训练迭代,机器学习模型训练包括多个训练迭代,事务提议包括由训练参与者客户端执行的梯度计算;
将多个事务提议传送到一个或多个背书者节点或对等方,每个背书者节点或对等方包括验证梯度智能合约;
由每个背书者节点或对等方执行验证梯度智能合约;和
向训练参与者客户端提供与多个事务提议相对应的背书。
9.根据权利要求8所述的方法,其中,验证梯度智能合约不执行梯度计算,其中,验证梯度智能合约验证来自事务提议的梯度计算的结果。
10.根据权利要求9所述的方法,其中,训练参与者客户端包括训练数据集,其中,每个事务提议从训练数据集中指定批次、损失函数、当前参数权重和梯度计算。
11.根据权利要求10所述的方法,其中,批次包括来自训练数据集的用于训练迭代的样本子集。
12.根据权利要求10所述的方法,其中,与训练数据集相对应的数据和模型参数存储在区块链网络外部,其中,与验证相关的数据存储在区块链网络的区块链中。
13.根据权利要求9所述的方法,其中,响应于训练参与者客户端接收到背书,方法进一步包括:
由训练参与者客户端将背书包括在事务中;和
将事务提交给区块链网络。
14.根据权利要求9所述的方法,其中,一个或多个背书者节点或对等方不包括验证梯度智能合约,其中该方法进一步包括:
由一个或多个背书者节点将事务提议转发给区块链网络外部的独立审计方,其中,独立审计方包括验证梯度智能合约,其中方法进一步包括:
由独立审计方接收多个事务提议;
执行验证梯度智能合约;和
由独立审计方将与多个事务提议相对应的验证结果提供给背书者节点或对等方。
15.一种计算机程序产品,包括存储指令的计算机可读介质,指令在被处理器读取时使所述处理器执行根据权利要求8至14的任一个所述的方法的步骤。
16.一种设备,包括用于执行根据权利要求8至14的任一个所述的方法的步骤的模块。
CN202010498520.5A 2019-06-12 2020-06-04 机器学习应用的有效验证 Pending CN112084255A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/438,476 US11983608B2 (en) 2019-06-12 2019-06-12 Efficient verification of machine learning applications
US16/438,476 2019-06-12

Publications (1)

Publication Number Publication Date
CN112084255A true CN112084255A (zh) 2020-12-15

Family

ID=73735015

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010498520.5A Pending CN112084255A (zh) 2019-06-12 2020-06-04 机器学习应用的有效验证

Country Status (2)

Country Link
US (1) US11983608B2 (zh)
CN (1) CN112084255A (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11569981B1 (en) * 2018-08-28 2023-01-31 Amazon Technologies, Inc. Blockchain network based on machine learning-based proof of work
US11481499B2 (en) * 2019-08-05 2022-10-25 Visa International Service Association Blockchain security system
US11306705B2 (en) * 2019-10-04 2022-04-19 City University Of Hong Kong System and method for monitoring a device
US20210250166A1 (en) * 2020-02-10 2021-08-12 swarmin.ai System and method for sharing an incrementally trained machine learning (ml) model from an edge device to one or more other edge devices in a peer to peer network
US11716379B2 (en) * 2020-02-18 2023-08-01 Subash Sundaresan System and method for concurrent training and updating of machine learning models at edge nodes in a peer to peer network
US20220318420A1 (en) * 2021-03-30 2022-10-06 Adobe Inc. Platform for unsupervised machine learning training on unseeable user generated assets
CN113364763B (zh) * 2021-06-02 2022-08-23 网易(杭州)网络有限公司 可验证声明生成方法、装置、电子设备及存储介质
JP7289588B1 (ja) * 2022-08-22 2023-06-12 connectome.design株式会社 ニューラルネットワーク学習過程記録システム、ニューラルネットワーク学習過程記録方法及びプログラム
CN116452199A (zh) * 2023-06-16 2023-07-18 江西五十铃汽车有限公司 基于区块链的vcu控制算法优化方法和程序产品

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108491266A (zh) * 2018-03-09 2018-09-04 联想(北京)有限公司 基于区块链的数据处理方法、装置及电子设备
US20180316502A1 (en) * 2017-04-27 2018-11-01 Factom Data Reproducibility Using Blockchains
US20190012595A1 (en) * 2017-07-07 2019-01-10 Pointr Data, Inc. Neural network consensus using blockchain
CN109615015A (zh) * 2018-12-18 2019-04-12 北京工业大学 一种基于区块链智能合约与机器学习的数据预处理方法
CN109670583A (zh) * 2018-12-27 2019-04-23 浙江省公众信息产业有限公司 去中心化的数据分析方法、***以及介质
CN109710691A (zh) * 2018-12-20 2019-05-03 清华大学 一种基于深度学习的混合区块链模型构建方法
US20200076884A1 (en) * 2018-08-31 2020-03-05 Nakamoto & Turing Labs Inc Methods and apparatus for performing distributed computing using blockchain

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150324690A1 (en) 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
US9984337B2 (en) 2014-10-08 2018-05-29 Nec Corporation Parallelized machine learning with distributed lockless training
US10521775B2 (en) 2016-04-18 2019-12-31 R3 Ltd. Secure processing of electronic transactions by a decentralized, distributed ledger system
US20180089587A1 (en) 2016-09-26 2018-03-29 Google Inc. Systems and Methods for Communication Efficient Distributed Mean Estimation
EP3503012A1 (en) 2017-12-20 2019-06-26 Accenture Global Solutions Limited Analytics engine for multiple blockchain nodes
US11315012B2 (en) 2018-01-12 2022-04-26 Intel Corporation Neural network training using generated random unit vector
US11249982B2 (en) 2018-01-19 2022-02-15 Acronis International Gmbh Blockchain-based verification of machine learning
US11216813B1 (en) * 2018-01-30 2022-01-04 United States Automobile Association (USAA) Business-to-business netting
US10365922B1 (en) * 2018-04-10 2019-07-30 Sap Se Distributed-ledger based enterprise application deployment and management
US11468345B2 (en) 2018-04-13 2022-10-11 Docusign International (Emea) Limited Managing information for model training using distributed blockchain ledger
WO2019209059A1 (en) 2018-04-25 2019-10-31 Samsung Electronics Co., Ltd. Machine learning on a blockchain
EP3564873B1 (en) * 2018-04-30 2022-11-30 Hewlett Packard Enterprise Development LP System and method of decentralized machine learning using blockchain
CN108712260B (zh) * 2018-05-09 2021-06-25 曲阜师范大学 云环境下保护隐私的多方深度学习计算代理方法
US10171992B1 (en) * 2018-06-22 2019-01-01 International Business Machines Corporation Switching mobile service provider using blockchain
CN109003185B (zh) 2018-06-29 2022-03-22 ***股份有限公司 一种智能合约的建立方法、装置、计算设备及存储介质
US11574234B2 (en) 2018-09-11 2023-02-07 Fair Isaac Corporation Blockchain for data and model governance
US11138598B2 (en) * 2018-12-17 2021-10-05 Mastercard International Incorporated Method and system for consent to time-bound queries in a blockchain
CN109800598A (zh) 2018-12-29 2019-05-24 中链科技有限公司 基于区块链的证照管理方法、装置、电子设备及存储介质
US20200218940A1 (en) 2019-01-08 2020-07-09 International Business Machines Corporation Creating and managing machine learning models in a shared network environment
US20200272945A1 (en) 2019-02-21 2020-08-27 Hewlett Packard Enterprise Development Lp System and method of decentralized model building for machine learning and data privacy preserving using blockchain
CN112166445A (zh) 2019-04-16 2021-01-01 华为技术有限公司 基于区块链网络的联合学习方法和联合学习设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180316502A1 (en) * 2017-04-27 2018-11-01 Factom Data Reproducibility Using Blockchains
US20190012595A1 (en) * 2017-07-07 2019-01-10 Pointr Data, Inc. Neural network consensus using blockchain
CN108491266A (zh) * 2018-03-09 2018-09-04 联想(北京)有限公司 基于区块链的数据处理方法、装置及电子设备
US20200076884A1 (en) * 2018-08-31 2020-03-05 Nakamoto & Turing Labs Inc Methods and apparatus for performing distributed computing using blockchain
CN109615015A (zh) * 2018-12-18 2019-04-12 北京工业大学 一种基于区块链智能合约与机器学习的数据预处理方法
CN109710691A (zh) * 2018-12-20 2019-05-03 清华大学 一种基于深度学习的混合区块链模型构建方法
CN109670583A (zh) * 2018-12-27 2019-04-23 浙江省公众信息产业有限公司 去中心化的数据分析方法、***以及介质

Also Published As

Publication number Publication date
US11983608B2 (en) 2024-05-14
US20200394470A1 (en) 2020-12-17

Similar Documents

Publication Publication Date Title
US11694110B2 (en) Aggregated machine learning verification for database
US11562228B2 (en) Efficient verification of machine learning applications
US11983608B2 (en) Efficient verification of machine learning applications
CN111951003A (zh) 用于管理对用户数据的同意的认知***
US20200382301A1 (en) Anonymous rating structure for database
US20200379977A1 (en) Anonymous database rating update
US11362826B2 (en) Endorsement process for non-deterministic application
US11489663B2 (en) Correlation-based hash tree verification
US11580098B2 (en) Multi-client transaction validation
US20220329436A1 (en) Token-based identity validation via blockchain
CN114450708A (zh) 基于现有链码的链码推荐
US11874804B2 (en) Load balancing based blockchain transaction submission
US11475365B2 (en) Verification of stochastic gradient descent
US11849046B2 (en) Freshness visibility in supply-chain
CN116941265A (zh) 区块链网络身份管理使用ssi
US11924348B2 (en) Honest behavior enforcement via blockchain
CN115004625A (zh) 用于区块链分类账的索引结构
CN112733159A (zh) 用于区块链的自由搭乘节点识别
CN111881109A (zh) 数据库可合并分类账
CN112052474A (zh) 蓝光拷贝服务
KR20230005353A (ko) 탈중앙화된 데이터베이스에서 허가된 이벤팅
CN116361823A (zh) 用于隐私保护的区块链的选择性审计处理
CN112019586B (zh) 用于区块链的验证的方法和***
US11314729B2 (en) Multi-candidate data structure for transaction validation
US20230245112A1 (en) Non-interactive token certification and verification

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination