CN111666332B - 自动演进的数据库背书策略 - Google Patents

自动演进的数据库背书策略 Download PDF

Info

Publication number
CN111666332B
CN111666332B CN202010142343.7A CN202010142343A CN111666332B CN 111666332 B CN111666332 B CN 111666332B CN 202010142343 A CN202010142343 A CN 202010142343A CN 111666332 B CN111666332 B CN 111666332B
Authority
CN
China
Prior art keywords
blockchain
transaction
endorsement
data
peer
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.)
Active
Application number
CN202010142343.7A
Other languages
English (en)
Other versions
CN111666332A (zh
Inventor
S·克瓦特拉
J·伊拉扎巴尔
E·A·Z·杜兰
R·M·努内兹
S·K·莱科施特
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 CN111666332A publication Critical patent/CN111666332A/zh
Application granted granted Critical
Publication of CN111666332B publication Critical patent/CN111666332B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4016Transaction verification involving fraud or risk level assessment in transaction processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • 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/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • 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/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/405Establishing or using transaction specific rules
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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
    • G06Q2220/00Business processing using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Technology Law (AREA)
  • Marketing (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)

Abstract

示例操作可包括以下中的一个或多个:根据交易日志计算与欺诈企图有关的历史模式,根据公共数据预测未来欺诈企图,使历史模式与所预测的未来欺诈企图相关,基于相关性修改一个或多个背书策略,以及将所修改的一个或多个背书策略添加到智能合约中。

Description

自动演进的数据库背书策略
技术领域
本申请总体上涉及分析和修改区块链系统的智能合约中的背书策略,并且更具体地涉及自动演进(auto-evolving)的数据库背书策略。
背景技术
集中式数据库在位于一个位置的单个数据库(例如,数据库服务器)中存储和维护数据。该位置通常是中央计算机,例如,台式中央处理器(CPU),服务器CPU,或大型计算机。通常可以从多个不同点访问存储在集中式数据库中的信息。例如,基于客户端/服务器配置,多个用户或客户端工作站可以在集中式数据库上同时工作。集中式数据库易于管理,维护和控制,特别是出于安全目的,因为它位于单个位置。在集中式数据库中,由于所有数据的单个存储位置也暗示给定的一组数据仅具有一个主记录,因此数据冗余被最小化。
然而,集中式数据库遭受重大缺陷。例如,集中式数据库具有单点故障。特别是,如果没有容错性的考虑,并且发生硬件故障(例如,硬件,固件和/或软件故障),则数据库中的所有数据都将丢失,并且所有用户的工作都会中断。此外,集中式数据库高度依赖于网络连接。结果,连接速度越慢,每次数据库访问所需的时间量就会增加。另一个缺点是当集中式数据库由于单个位置而遇到高流量时,会出现瓶颈。此外,由于数据库仅维护数据的一个副本,因此集中式数据库提供了对数据的有限访问。结果,多个设备无法同时访问同一段数据而不造成严重的问题或产生覆盖已存储数据的风险。此外,由于数据库存储系统的数据冗余很小甚至没有,因此,除了通过手动操作从备份存储中恢复之外,很难恢复意外丢失的数据。在某些情况下,背书策略可能没有意识到欺诈活动,而继续背书应适当被拒绝或无效的交易。因此,需要一种克服这些缺点和局限性的解决方案。
发明内容
一个示例实施例提供了一种包括区块链网络的系统,该区块链网络包括共享账本,智能合约,和区块链节点或对等体。共享账本包括交易日志,智能合约包括背书策略。区块链节点或对等点被配置为执行以下中的一个或多个:根据交易日志计算与欺诈企图有关的历史模式,根据公共数据预测未来欺诈企图,使历史模式与所预测的未来欺诈企图相关,基于相关性修改一个或多个背书策略,以及将所修改的一个或多个背书策略添加到智能合约中。
另一示例实施例提供了一种方法,该方法包括以下中的一个或多个:根据交易日志计算与欺诈企图有关的历史模式,根据公共数据预测未来欺诈企图,使历史模式与所预测的未来欺诈企图相关,基于相关性修改一个或多个背书策略,以及将所修改的一个或多个背书策略添加到智能合约中。
另一示例实施例提供了一种包括指令的非暂时性计算机可读介质,当指令被处理器读取时,该指令使处理器执行以下中的一个或多个:根据交易日志计算与欺诈企图有关的历史模式,根据公共数据预测未来欺诈企图,使历史模式与所预测的未来欺诈企图相关,基于相关性修改一个或多个背书策略,以及将所修改的一个或多个背书策略添加到智能合约中。
另一示例实施例提供了一种系统,该系统包括区块链网络,该区块链网络包括共享账本,智能合约,以及区块链节点或对等体。共享账本包括交易日志,智能合约包括状态部分。状态部分包括:被配置为提供对指定背书节点或对等体的读取或写入访问的第一背书策略,以及被配置为提供只读访问的第二背书策略。区块链节点或对等点被配置为执行以下中的一个或多个:根据交易日志计算与欺诈企图有关的历史模式,根据公共数据预测未来欺诈企图,使历史模式与所预测的未来欺诈企图相关,基于相关性修改一个或多个第一背书策略,不修改第二背书策略,以及将所修改的一个或多个第一背书策略添加到智能合约中。
另一示例实施例提供了一种方法,该方法包括以下中的一个或多个:根据交易日志计算与欺诈企图有关的历史模式,根据公共数据预测未来欺诈企图,使历史模式与所预测的未来欺诈企图相关,基于相关性修改一个或多个第一背书策略,防止修改一个或多个第二背书策略,该一个或多个第二背书策略提供只读访问,以及将所修改的一个或多个第一背书策略添加到智能合约中。
另一示例实施例提供了一种包括指令的非暂时性计算机可读介质,当指令被处理器读取时,该指令使处理器执行以下中的一个或多个:根据交易日志计算与欺诈企图有关的历史模式,根据公共数据预测未来欺诈企图,使历史模式与所预测的未来欺诈企图相关,基于相关性修改一个或多个第一背书策略,防止修改一个或多个第二背书策略,以及将所修改的一个或多个第一背书策略添加到智能合约中。该一个或多个第二背书策略提供只读访问。
附图说明
图1A示出了根据示例实施例的用于改善区块链中的背书策略的系统的逻辑网络图。
图1B示出了根据示例实施例的用于基于标准和分析来制定特定动作的示例性相关表。
图2A示出了根据示例实施例的示例区块链架构配置。
图2B示出了根据示例实施例的区块链交易流程。
图3A示出了根据示例实施例的许可网络。
图3B示出了根据示例实施例的另一许可网络。
图4示出了根据示例实施例的用于在区块链中执行背书策略修改的系统消息图。
图5A示出了根据示例实施例的在区块链中修改和利用经修订的背书策略的示例方法。
图5B示出了根据示例实施例的将交易链接到区块链中的私有验证身份的示例方法。
图6A示出了根据示例实施例的被配置为执行本文所述的一个或多个操作的示例系统。
图6B示出了根据示例实施例的被配置为执行本文所述的一个或多个操作的另一示例系统。
图6C示出了根据示例实施例的被配置为利用智能合约的另一示例系统。
图6D示出了根据示例实施例的被配置为利用区块链的又一示例系统。
图7A示出了根据示例实施例的用于将新区块添加至分布式账本的过程。
图7B示出了根据示例实施例的新数据区块的内容。
图7C示出了根据示例实施例的用于数字内容的区块链。
图7D示出了根据示例实施例的可以表示区块链中的区块结构的区块。
图8示出了支持一个或多个示例实施例的示例系统。
具体实施方式
容易理解的是,如在本文附图中一般描述和说明的示例组件可以以各种不同的配置来布置和设计。因此,如附图中所示的方法、装置、非暂态计算机可读介质和系统中的至少一个的实施例的以下详细描述并非旨在限制所要求保护的本申请的范围,而是仅代表所选实施例。
贯穿本说明书描述的示例特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或移除。例如,贯穿本说明书,短语“示例实施例”、“一些实施例”或其它类似语言的使用是指结合该实施例描述的特定特征、结构或特性可包括在至少一个实施例中的事实。因此,贯穿本说明书出现的短语“示例实施例”、“在一些实施例中”、“在其它实施例中”或其它类似语言不一定是指相同的一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或移除。
另外,尽管在实施例的描述中可能已经使用术语“消息”,但是本申请可应用于许多类型的网络和数据。此外,尽管在示例性实施例中可描绘某些类型的连接,消息和信令,但是本申请不限于特定类型的连接,消息和信令。
示例实施例提供了方法,系统,组件,非暂时性计算机可读介质,设备,和/或网络,其提供了自动演进的数据库背书策略。
在一个实施例中,本申请利用作为分布式存储系统的分散式数据库(例如,区块链),该分布式存储系统包括彼此通信的多个节点。分散式数据库包括类似于分布式账本的仅附加(append-only)的不可篡改数据结构,其能够维持互不信任的各方之间的记录。不受信方在本文中称为对等体或对等节点。每个对等体都维持数据库记录的副本,并且在分布式对等体之间未达成共识的情况下,没有任何单个对等体可以修改数据库记录。例如,对等体可执行共识协议以使区块链存储交易生效(validate),将存储交易分组为区块,以及在这些区块上构建散列链。为了保持一致性,此过程通过对存储交易进行排序来形成账本。在各种实施例中,可以使用经许可的(permissioned)和/或无需许可的(permissionless)区块链。在公共或无需许可的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链通常涉及本机加密货币,并基于各种协议(例如,工作量证明(PoW))使用共识。另一方面,经许可的区块链数据库在一组共享共同目标但彼此之间并不完全信任的实体(例如交换资金,商品,信息等的企业)之间提供安全的交互。
本申请可以利用如下区块链,该区块链可操作任意可编程逻辑,针对分散式存储方案量身定制,并称为“智能合约”或“链码”。在某些情况下,可能存在用于管理功能和参数的专用链码,其称为系统链码。本申请可进一步利用如下智能合约,该智能合约是受信任的分布式应用程序,其利用了区块链数据库的防篡改属性和节点之间的基础协议,这被称为背书或背书策略。与该应用程序相关联的区块链交易可以在提交给区块链之前被“背书”,而未被背书的交易则被忽略。背书策略允许链码以背书所必需的一组对等节点的形式指定交易的背书者(endorser)。当客户向背书策略中指定的对等体发送交易时,将执行交易以使交易生效。生效之后,交易进入排序阶段,在该阶段中,使用共识协议来生成被分组为区块的所背书的交易的有序序列。
本申请可利用作为区块链系统中的通信实体的节点。在不同类型的多个节点可在同一物理服务器上运行的意义上,“节点”可执行逻辑功能。节点在信任域中分组,并与以各种方式控制它们的逻辑实体相关联。节点可包括不同类型,诸如客户端或提交客户端节点,其向背书者(例如,对等体)提交交易调用,并且向排序服务(例如,排序节点)广播交易提议(proposal)。另一种类型的节点是对等节点,其可接收客户端提交的交易,提交交易并维持区块链交易的账本的状态和副本。对等体也可扮演背书者的角色,尽管这不是必需的。排序服务节点或排序者是针对所有节点运行通信服务的节点,并且该节点实现投递保证,诸如,当提交交易和修改区块链的世界状态时对系统中的每个对等节点的广播,这是针对初始区块链交易的另一个名称,初始区块链交易通常包括控制和设置信息。
本申请可以利用如下账本,该账本是区块链的所有状态转变的有序防篡改记录。状态转变可由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(即,交易)产生。每个参与方(诸如对等节点)可维持账本的一个副本。交易可导致一组资产密钥值(key-value)对被提交给账本作为一个或多个操作数,诸如创建、更新、删除等。账本包括区块链(也称为链),其用于以区块为单位存储不可篡改的顺序记录。账本还包括状态数据库,该数据库维持区块链的当前状态。
本申请可以利用作为交易日志的链,该交易日志被构造为散列链接区块,并且每个区块包含具有N个交易的序列,其中N等于或大于1。区块头包括区块的交易的散列,以及前一区块的头的散列。通过这种方式,在账本上的所有交易都可被排序并以加密方式链接在一起。因此,不可能在不破坏散列链接的情况下篡改账本数据。最近添加的区块链区块的散列表示在其之前的链上的每个交易,使得可确保所有对等节点处于一致且可信的状态。链可被存储在对等节点文件系统(即,本地、附加存储、云等)上,有效地支持区块链工作负载的仅附加性质。
不可篡改账本的当前状态表示链交易日志中包括的所有密钥的最新值。因为当前状态表示信道已知的最新密钥值,所以它有时被称为世界状态。链码调用针对账本的当前状态数据来执行交易。为了使这些链码交互有效,密钥的最新值可被存储在状态数据库中。状态数据库可以仅仅是链的交易日志的索引视图,因此可以随时从链中重新生成。在对等节点启动后以及在接受交易之前,状态数据库可自动恢复(或在需要时生成)。
本文描述和描绘的示例解决方案的一些好处包括背书策略(即,可靠性保证)不是固定的而是动态调整的,可在不影响可扩展性的情况下提高可靠性,自动演进的背书策略不需要完全智能合约升级,并且背书策略可被提供给如下的任何平台,在该平台中,交易由一组节点/对等体生成,同时由更广泛的区块链网络维护。
本申请描述了提供灵活和自动化的方式来定义区块链交易的背书需求的方法和系统。由于不受信任的各方就每笔交易的结果达成协议,因此背书需求在区块链中变得高度相关。属于不同方的对等体可背书交易结果,并且所公开的方法可用于基于上下文和历史信息来动态地适应此类需求。
本申请通过提供基于上下文和历史数据来定义背书需求的灵活和自动化的方式来创建功能上的改进。该方法不仅基于区块链网络的拓扑,智能合约需求,参与方等来启用对背书策略(背书需求)的指定,而且还提供了一种自动调整此类需求的方法。
基于上下文和历史数据来更新智能合约的背书需求的功能将更新智能合约的背书需求。智能合约可包括附加信息,例如评论员功能,多区域背书等。此类信息可被存储在共享账本中,然后被用作对背书需求的自动调整的输入。
基于欺诈预测,区块链系统生成基于动态规则的背书策略,该背书策略将要被添加到自动演进的智能合约框架中,以用于确保针对已启用区块链的交易系统中的欺诈企图的保护。允许自动且实时测量的触发(可能超过欺诈或不稳定交易的数量或百分比的阈值)的基于动态规则的背书策略将运行过程(procedure)以根据从经训练的机器学习模型获取的数据来演进或修改一个或多个背书策略。
智能合约是在某些条件下直接控制各方之间的数字货币或资产的转移的计算机程序。智能合约不仅以传统合约所采用的相同方式定义围绕协议的规则和处罚,而且还可以自动执行这些义务(obligation)。智能合约将信息作为输入,通过合约中规定的规则向该输入分配值,并执行这些合约条款所要求的操作。在针对交易编写任何智能合约时,可能存在错过一个或多个未来的上下文情境或模式的机会。基于各种上下文情境下的欺诈企图,或者新技术的变更或演进,一个或多个智能合约规则可能变得无效,或者在智能合约中可能需要附加的生效规则。智能合约中此类变更的模式可以基于对各种上下文情况下的欺诈企图的历史分析来识别。因此,有机会使用机器学习技术来使智能合约能够基于变化的需求和要求而自我演进。
图1A示出了根据示例实施例的用于改善区块链中的背书策略的系统的逻辑网络图。参考图1A,该系统包括区块链网络100。区块链网络100可以是公共或经许可的区块链网络100。
区块链网络100包括一个或多个区块链节点或对等体104和一个或多个背书者节点或对等体124。区块链节点或对等体104包括确定智能合约或链码108的一个或多个背书策略112是否应被修改的逻辑,以减少或减轻欺诈交易的可能性。背书者节点或对等体124接收区块链交易140,并使用智能合约108中指定的背书策略112响应地背书交易140。背书策略112可包括第一背书策略和第二背书策略112二者。第一背书策略112允许选择或指定背书节点或对等体124以修改背书策略112的写入集,而第二背书策略112不允许未指定的节点或对等体(包括提交者节点或对等体)来修改背书策略112的写入集。因此,第二背书策略112仅允许未指定的节点或对等体(包括提交者节点或对等体)访问背书策略112的读取集。
区块链网络100的共享账本116存储所有已提交交易的交易日志120。区块链节点或对等体104连续或定期从共享账本116中读取交易日志128,以建立与那些交易日志128相关联的历史模式。区块链节点或对等体104还从一个或多个公共数据源108接收公共数据132,以便预测可包括一个或多个区块链交易140的未来欺诈活动。
基于历史模式和对未来欺诈活动的预测,区块链节点或对等体104生成新的和/或修改的背书策略136。区块链节点或对等体104生成区块链交易以将新的和/或修改的背书策略136存储到智能合约108中。在该新的和/或修改的背书策略被存储到智能合约108之后,背书者节点或对等体124使用它们来背书新的区块链交易140。
本申请生成并训练机器学习模型以确定欺诈阈值。为了提供机器学习模型,可针对智能合约108和交易140收集大量的元数据。该元数据具有使用多个维度的多维特征,这些维度诸如是:智能合约标识符,交易的时间/日期,以及可以由任何维度进行合计的交易计数。收集并分析有关交易140和智能合约108的元数据,以馈入机器学习模型,该模型用于识别应更新背书策略的哪些属性以及如何更新。智能合约108通过其背书策略定义了一组背书者124。有效交易140必须被背书144,以履行背书策略112中指定的内容。
本申请能够通过使用机器学习模型并触发更新背书策略112的过程,来识别出背书者124的减少或固定子集是可疑的,不稳定的或不便的。机器学习模型也可尝试最好地选择其它背书者124。因为背书者124可能会变得缺乏抵抗力(compromised),因此强制在一组背书者124中的更改可避免提交欺诈交易(即,不缺乏抵抗力的背书者124将不同意其它背书者124)。提交给区块生成器的所有交易140都包含在共享账本116中。但是,在提交之前,对等体124将使背书策略112生效,并且由于更改交易140已生效的状态的所提交的另一个交易140而导致的无效被生成(例如,在超级账本结构(Hyperledger Fabric)中的读取集生效)。动态演进的背书策略112将有助于阻止无效交易140。
呈现两个说明性场景以促进理解:在第一场景中,客户端可使用背书者124的减少或固定子集来生成非预期数量的交易140。背书策略112可被调整为要求来自该客户端的交易140由该客户端之前未使用的至少一个背书者124来背书144。在第二场景中,在特定位置由对等体124背书的交易140被无效。背书策略112可被调整为要求来自另一位置的至少一个对等体124的背书144。例如,如果客户正在从位于一个国家中的给定主机提供商处的对等体124接收交易背书144,则背书策略112可被调整为要求来自位于不同国家中的对等体124的背书144。该位置可被包括在背书对等体124的证书中。智能合约/链码108可被修改为用在不同位置的新对等体124来背书交易144。背书策略112已被演进,因为模式在无效交易中被动态检测到,并且经训练的机器学习模型可检测到针对该模式的“原因”是位置。
关于量子计算领域,处理能力迅速提升。在某些情况下,存在通过反向工程加密逻辑可被跟踪的机会。因此,可能需要在已启用区块链的交易系统100中实施更强的加密逻辑。关于“磁性安全转移”(MTS)技术的引入,新型的交易系统已被引入。类似类型的交易可能需要额外的生效才能被引入系统100。
图1B示出了根据示例实施例的用于基于标准和分析来制定特定动作的示例性相关表。参考图1B,表150包括标准154,分析158,和动作162,其用于突出显示用于对不同模式进行分类的标准。专家将提供问题模式的分类,并将其添加到模型的训练集中。
标准154可包括以下中的一个或多个:交易中涉及的人员名称或公司,交易类型,行业,地域,或技术类型。分析158可包括用于评估标准154的一个或多个项。在交易140中涉及的人员名称或公司的情况下,分析158可确定所涉及的名称或公司是否存在于与欺诈有关的任何新闻或公共数据项中。在交易类型的情况下,分析158可确定这种类型的交易是否存在于与欺诈有关的任何新闻或公共数据项132中。在行业的情况下,分析158可确定针对这些类型的交易该行业是否存在于与欺诈有关的任何新闻或公共数据项132中。在地理的情况下,分析158可确定针对该类型的交易该地域中是否存在任何欺诈趋势。在技术类型的情况下,分析158可确定针对该类型的交易该技术类型是否正被用于欺诈。
在分析158提供肯定指示的情况下,动作162可包括由区块链网络100采取的一个或多个动作。例如,对于标准154和分析158中的任何一个,动作162可包括:如果需要的话,识别风险并且更新一个或多个背书策略112。
在一个实施例中,为了识别可能的欺诈企图的模式和触发,系统可建立标准154,其允许区块链系统相应地识别任何风险。例如,该系统可在报纸上对名为交易相关人员的人员进行一些研究。例如,如果系统100识别出具有特定名称的人员正在执行交易,则可能存在涉及具有该名称的人员的具有欺诈的新闻数据项。作为响应,系统100可触发和阻止交易,直到执行用于减轻欺诈风险的确认或授权为止。
图2A示出了根据示例实施例的区块链体系结构配置200。参考图2A,区块链体系结构200可包括某些区块链元素,例如,一组区块链节点202。区块链节点202可包括一个或多个节点204-210(仅通过示例描述这四个节点)。这些节点参与多个活动,诸如区块链交易添加和生效过程(共识)。区块链节点204-210中的一个或多个可基于背书策略来背书交易并且可为体系结构200中的所有区块链节点提供排序服务。区块链节点可发起区块链身份验证(authentication)并且寻求写入存储在区块链层216中的区块链不可篡改账本,该账本的副本也可存储在基础物理基础设施214上。区块链配置可包括一个或多个应用程序224,该应用程序链接到应用编程接口(API)222以访问和执行所存储的程序/应用程序代码220(例如,链码、智能合约等),其可根据参与者寻求的定制配置来创建,并可维持他们自己的状态,控制他们自己的资产,以及接收外部信息。这可被部署为交易,并通过附加到分布式账本上来安装在所有区块链节点204-210上。
区块链基础或平台212可包括区块链数据、服务(例如,加密信任服务、虚拟执行环境等)以及基础物理计算机基础设施的各种层,该基础物理计算机基础设施可用于接收和存储新交易并提供对正在寻求访问数据条目的审计者的访问。区块链层216可曝露接口,该接口提供对处理程序代码和参与物理基础设施214所必需的虚拟执行环境的访问。加密信任服务218可用于验证诸如资产交换交易的交易并保持信息私密。
图2A的区块链体系结构配置可经由由区块链平台212所曝露的一个或多个接口以及由区块链平台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可使该交易生效。例如,对等体可检查背书策略以确保指定对等体的正确分配(allotment)已经对结果进行了签名并且针对交易有效载荷293认证了签名。
再次参考图2B,客户端节点260通过构造并向作为背书者的对等节点281发送请求来发起交易291。客户端260可包括利用支持的软件开发工具包(SDK)的应用程序,其利用可用的API来生成交易提议。该提议是调用链码功能的请求,使得数据可被读取和/或写入账本(即,为资产写入新的密钥值对)。SDK可用作填充程序(skim)以将交易提议打包成适当的体系结构格式(例如,远程过程调用(RPC)上的协议缓冲区)并且获取客户端的加密证书以产生用于交易提议的唯一签名。
作为响应,背书对等节点281可验证(a)交易提议已良好形成,(b)过去尚未提交交易(重放-攻击保护),(c)签名是有效的,以及(d)提交者(在该示例中为客户端260)被适当授权以在该信道上执行所提议的操作。背书对等节点281可将交易提议输入作为被调用的链码功能的参数。然后针对当前状态数据库执行链码以产生包括响应值、读取集和写入集的交易结果。然而,此时没有对账本进行更新。在292中,将该组值与背书对等节点281的签名一起作为提议响应292传递回客户端260的SDK,该客户端260解析有效载荷以供应用程序使用。
作为响应,客户端260的应用程序检查/验证背书对等体签名并比较提议响应以确定提议响应是否相同。如果链码仅查询账本,则应用程序将检查查询响应并且通常不将该交易提交给排序节点服务284。如果客户端应用程序打算将该交易提交给排序节点服务284以更新账本,则应用程序确定在提交之前指定的背书策略是否已被满足(即,交易所需的所有对等节点是否都背书该交易)。这里,客户可仅包括交易的多方中的一方。在该情况下,每个客户端可拥有自己的背书节点,并且每个背书节点都需要背书该交易。该体系结构使得即使应用程序选择不检查响应或以其它方式转发未经背书的交易,该背书策略仍将由对等体强制执行并在提交生效阶段维持。
在成功检查之后,在步骤293中,客户端260将背书组装到交易中,并将交易消息内的交易提议和响应广播到排序节点284。交易可包含读取/写入集,背书对等体签名和信道ID。排序节点284不需要检查交易的整个内容以便执行其操作,而是排序节点284可简单地从网络中的所有信道接收交易,按时间顺序按信道排序,并按照信道创建交易区块。
交易区块从排序节点284传递到信道上的所有对等节点281-283。使区块内的交易294生效以确保任何背书策略被满足并确保读取集变量的账本状态没有变化,因为读取集由交易执行生成。区块中的交易被标记为有效或无效。此外,在步骤295中,每个对等节点281-283将该区块附加到信道的链,并且对于每个有效交易,将写入集提交给当前状态数据库。发出事件,通知客户端应用程序交易(调用)已不可篡改地附加到链,以及通知交易是否已生效或被无效。
图3A示出了经许可的区块链网络300的示例,其特征为分布式、分散的对等体系结构。在该示例中,区块链用户302可向经许可的区块链304发起交易。在该示例中,交易可以是部署、调用,或查询,并且可通过利用SDK的客户端侧应用程序直接通过API等发布。网络可提供对监管者306(诸如审计者)的访问。区块链网络运营商308管理成员许可,诸如将监管者306登记为“审计者”,并将区块链用户302登记为“客户端”。审计者可仅限于查询账本,而客户端可被授权部署、调用和查询特定类型的链码。
区块链开发者310可编写链码和客户端侧应用程序。区块链开发者310可通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源312的证书,开发者310可使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点314连接到经许可的区块链304。在继续任何交易之前,对等节点314从证书机构(certificate authority)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使用到该数据的带外连接。
图4示出了根据示例实施例的用于在区块链中执行背书策略修改的系统消息图400。参考图4,系统图400包括区块链节点或对等体410,智能合约或链码420,以及共享账本430。
区块链节点或对等体410实时地或周期性地从共享账本430取得交易日志411。作为响应,区块链节点或对等体410从交易日志411计算历史模式415。区块链节点或对等体410还从来自公共数据源108的一个或多个公共数据库中获取公共数据425。
接下来,区块链节点或对等体410使历史模式与基于公共数据435的预测的欺诈企图相关,并根据相关数据435创建新的或修改的背书策略440。
区块链节点或对等体410然后创建区块链交易以将新的或修改的背书策略441传递到智能合约或链码420,并且作为响应,智能合约或链码420用新的或修改的背书策略441来修改现有的智能合约445。
新的交易450可能需要智能合约420中指定的背书策略。如果要求背书交易450,则区块链节点或对等体410从智能合约420取得最新的背书策略451,并背书交易455。然后,将所背书的交易456提供给共享账本430,并将该交易提交给交易日志460。
图5A示出了根据示例实施例的在区块链中修改和利用修订的背书策略的示例方法的流程图500。参考图5A,方法500可包括以下步骤中的一个或多个。
该系统涉及无监督(unsupervised)机器学习系统的使用,其分析交易日志以便发现欺诈企图的历史模式。同时,系统分析公共领域数据132,其中包括博客,报纸,技术期刊等,以便评估未来欺诈和/或欺诈企图等的各种可能性。因此,系统将确定类似类型的欺诈是否可在已启用区块链的交易系统100中被预测。
基于预测的欺诈企图或相似类型的已启用区块链的交易系统100中的欺诈企图的模式,智能合约自动演进框架将向智能合约108添加附加规则,以确保预测的欺诈企图受保护。
智慧型智能合约自动演进框架还将分析任何技术增强,并且将评估技术增强可能如何要求加密逻辑中的改变。例如,如果对加密逻辑中的改变的要求请求改变,则智能合约自动演进框架可能会引入新的加密逻辑。
在步骤504中,计算历史模式。无监督机器学习系统可从已启用区块链的交易系统中收集交易日志,并因此可识别系统中不同类型的欺诈企图。所生成并经训练的模型将确定什么是欺诈或有问题的模式。它可能包含表格数据,如图1B所示,其突出显示了用于对不同模式进行分类的标准。专家可提供对问题模式的分类,并将它们添加到机器学习模型的训练集中。例如,在什么上下文情况下欺诈企图被识别,例如交易金额,交易地点,交易涉及方等。
在步骤508,预测未来的欺诈企图。从公共信息源获取的上下文信息或众包信息可被存储在知识数据库中。产品文献,文档,博客,其它共享账本中的信息异常等可识别内容和上下文,以了解新特征,交易功能和计算能力。同一区块链网络100中的对等体可维护此类信息,或者外部系统可同时从区块链网络100中的其它对等体收集信息。
相关的相关联活动和内容可在一个目标输出集中采用活动的相应信息/关键字/要点来分类。例如,将对收集到的数据进行分析,并据此识别关键字,并根据位置,上下文情况,共享账本等对关键字进行分类,并将关键字存储在知识库中。多组此类关系可被创建并可被存储在一个或多个云数据库中。数据处理引擎可利用从这些来源获取的非结构化数据,并执行无监督学习,即,K-均值聚类(作为一个实施例)以对数据进行分类-从而将重复数据和习惯对齐以确保准确性和一致性。
与先前已知的模型和档案相比,匹配算法可用于检测交易或用户的行为中的异常。还需要一些技术来消除错误警报,估计风险,以及预测当前交易或用户的未来。也可使用可以从样本中学习可疑模式并随后用于检测它们的神经网络。
对于已经实施了基于区块链的交易的商业应用,系统可识别在系统中可发生什么类型的新识别或预测的欺诈企图,其将基于商业功能需求来识别。基于对当前智能合约能力(capability)的分析(逆向工程或代码分析),系统可识别当前智能合约是否可保护新型威胁或欺诈企图。
在步骤512,开发新的或修改的背书策略136。基于定义的规则和新识别的欺诈企图的所识别的属性,新的智能联系规则被写入新的或修改的背书策略中,并将被添加到智能合约中。
在步骤516中,将新的或修改的背书策略136添加到智能合约或链码108。在写入新的智能联系人逻辑之后,智慧型智能合约自动演进框架的一个或多个规则也将被更新,以便下一更新可以适当的方式进行。在智能合约108自动演进之后,任何新的交易140将由新演进的智能合约逻辑执行。这样,智能合约108将基于所识别的上下文场景而自动演进,并且将使未来的交易140更加安全。
智能合约108封装逻辑和状态。优选实施例将智能合约状态分成两个不相交的部分。状态(元(meta)状态)的分区之一只能通过定义为元方法的方法来修改。涉及元方法的交易仅由执行智能合约的对等体(又名背书对等体124)提交,而提交方仅限于在其自己的共享账本116副本上维持交易,但不能维持他们自己的链码元状态。在一个优选实施例中,交易140的内容被加密,并且只有背书对等体124可解密它并处理交易140的写集。从智能合约108的其它方法中元状态是只读的。当部署智能合约108时,可指定两个不同的背书策略112:一个背书策略用于修改元状态的方法(元方法),而另一个背书策略用于对元状态具有只读访问权限的方法。具有元状态的概念的优点之一是避免了对智能合约108升级的需求,这可能意味着编译和编排(orchestration)非常复杂的过程(例如,构建docker容器等)。元状态的改变与正常的区块链交易140一样有效。下面我们描述利用元状态和业务逻辑级别状态的智能合约108的说明性示例。
smartContract aSmartContractWithMetastate{
meta int minThreshold,maxThreshold
meta int threshold
int minMeasurement,maxMeasurement
meta method init(args[]int){
minThreshold=args[0]
maxThreshold=args[1]
}
method init(args[]int){
maxMeasurement=0
minMeasurement=maxInt
}
meta method updateThreshold(newThreshold int){
if newThreshold>minThreshold&&newThreshold<maxThreshold
{
threshold=newThreshold
}else{
error“Invalid new threshold”
}
}
method registerMesurement(value int){
if value>threshold{
error“Invalid measurement”
}
if value<minMeasurement{
minMeasurement=value
}
if value>maxMeasurement{
maxMeasurement=value
}
}
}
拆分智能合约状态可能是有利的,因为链码的元状态的改变可能需要不同的背书策略,例如更严格的策略。以同样的方式,智能合约108可不与提交方对等体共享,在采用元状态的情况下拥有这种可能性是合理的,因为该元状态可影响智能合约108处理交易的方式。
在步骤520中,使用新的或修改的背书策略112对一个或多个交易进行背书144。
在步骤524中,将背书交易144提交给区块链网络100的共享账本116。
图5B示出了根据示例实施例的将交易链接到区块链中的私有验证身份的示例方法的流程图550。参考图5B,方法550可由被配置成使用私有和/或公开可用的区块链交易信息源(例如,通过分析区块链本身)来接收和分析交易消息以及接收和验证区块链交易的任何实体执行,例如发行者。例如,如下所述,由处理服务器的组件执行的过程550的步骤可由发行者的相应组件在由发行者执行过程550时执行。
在步骤554中,处理服务器的接收单元可接收交易消息。交易消息可基于诸如ISO8583标准的一个或多个标准来格式化,并且可包括多个数据元素。数据元素可至少包括:被配置为存储个人账户号码的第一数据元素,被配置为存储商户标识符的第二数据元素,以及被配置为至少存储与区块链网络100相关联的区块链网络标识符的第三数据元素。在一些实施例中,包括在每个数据元素中的数据可被包括在单个数据元素中,诸如保留供私人使用的数据元素。
在步骤558中,处理服务器的处理单元可识别存储在账户数据库中的账户档案,该账户档案与在相关联的支付交易中涉及的实体相对应。例如,处理服务器可识别与付款人相关联的第一账户档案,该第一账户档案包括在被配置为存储个人账户号码的第一数据元素中包括的账户标识符,并且处理服务器可识别与收款人相关联的第二账户档案,该第二账户档案包括在被配置为存储商家标识符的第二数据元素中包括的账户标识符。在某些情况下,账户标识符可以是地址标识符,例如使用与相应实体相关联的密钥对中的公钥生成的。
在步骤562中,处理单元可生成欺诈分数。例如,诸如在其中在处理相应的区块链交易之前处理服务器接收到交易消息的情况下,与付款人相关联的发行者或与收款人相关联的受让者可请求欺诈分数。处理单元可将欺诈规则(例如,如存储在存储器中)应用于包括在所接收的交易消息中的数据,并且在某些情况下,应用于所识别的账户档案,以生成欺诈分数。处理服务器的发送单元可向适当的实体(诸如,发行者和/或受让者)发送欺诈分数。
在步骤566中,处理单元可接收与所接收的交易消息相关联的区块链交易。交易可以是:(1)基于从区块链网络100或从被配置为发起区块链交易的实体(例如,发行者)对交易通知的接收;(2)在处理服务器发起区块链交易的情况下,对处理服务器是固有的;或者(3)基于通过对区块链本身的分析对区块链交易进行的验证(例如,使用收款人地址,交易金额,以及交易消息中包括的其它信息)。
处理服务器的接收单元可接收与区块链交易相关联的交易通知。交易通知可由例如区块链网络100,发行者,受让者,付款方,收款方,或被配置为使用诸如支付网络或第三方的区块链来验证区块链交易的实体(例如,使用处理单元)来提供。交易通知可至少包括交易标识符和地址标识符。交易标识符可以是与区块链交易相关联的唯一值。地址标识符可包括与收款人相关联的地址。在某些情况下,交易通知还可包括与付款人相关联的付款人地址,以及任何附加信息,例如交易金额。在某些情况下,处理单元可从所接收的交易消息中识别这种信息。
在步骤570中,处理单元可基于包括在所接收的交易通知中的信息来识别任何适用的链接。例如,处理单元可基于所包括的账户和/或地址标识符与包括在所接收的交易通知中的地址标识符的对应关系,识别区块链交易与在与交易的收款人相关联的步骤中识别的第二账户档案之间的链接。在交易通知可包括付款人地址的情况下,处理单元可使用付款人地址来识别在步骤558中识别的第一账户档案与区块链交易之间的链接。
在步骤574中,处理单元可将链接数据存储在处理服务器中。例如,链接数据可作为每个适用账户档案与交易标识符之间的链接存储在存储器中,可存储在与区块链交易相关联的交易数据库中的交易数据条目中(例如,作为链接的账户档案的账户标识符),或者,可存储在被识别为已链接到交易的账户档案中,该链接例如通过在账户档案中存储链接交易的交易标识符来进行。在一些情况下,链接数据的存储可包括:由发送单元将链接数据发送给外部实体以进行存储,例如发送给发行者以存储在账户档案中以供在未来的区块链交易中使用。
图6A示出了根据示例实施例的包括被配置为执行各种操作的物理基础设施610的示例系统600。参考图6A,物理基础设施610包括模块612和模块614。模块614包括区块链620和智能合约630(其可驻留在区块链620上),其可执行(模块612中的)操作步骤608中的任何操作步骤,该操作步骤被包括在任何示例实施例中。步骤/操作608可包括所描述或描绘的实施例中的一个或多个实施例,并且可表示从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。物理基础设施610,模块612,以及模块614可包括一个或多个计算机,服务器,处理器,存储器和/或无线通信设备。此外,模块612和模块614可以是相同的模块。
图6B示出了根据示例实施例的被配置为执行各种操作的另一示例系统640。参考图6B,系统640包括模块612和模块614。模块614包括区块链620和智能合约630(其可驻留在区块链620上),其可执行(模块612中的)操作步骤608中的任何操作步骤,该操作步骤被包括在任何示例实施例中。步骤/操作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可随时从链中重新生成。状态数据库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,时期(epoch),有效载荷可见性,链码路径(部署tx),链码名称,链码版本,输入(链码和功能),客户端(创建者)标识(诸如公钥和证书),客户签名,背书者的身份,背书者签名,提议的散列,链码事件,响应状态,名称空间,读取集(交易所读取的密钥和版本的列表等),写入集(密钥和值的列表等),开始密钥,结束密钥,密钥列表,默克尔树查询摘要(Merkeltree query summary)等。可针对N个交易中的每一个存储交易数据。
在一些实施例中,区块数据750还可存储新数据762,该新数据762将附加信息添加到区块链722中的区块的散列链接的链。附加信息包括本文描述或描绘的以下中的一个或多个:步骤,特征,过程和/或动作。因此,新数据762可存储在分布式账本720上的区块的不可篡改日志中。存储这种新数据762的一些益处反映在本文公开和描绘的各种实施例中。虽然在图7B中,新数据762被描绘在区块数据750中,但是也可位于区块头740或区块元数据760中。
区块元数据760可存储元数据的多个字段(例如,作为字节阵列等)。元数据字段可包括在区块创建时的签名,对最后一个配置区块的引用,识别区块内的有效交易和无效交易的交易过滤器,对区块进行排序的排序服务的所持续的最后偏移等。签名,最后一个配置区块,和排序者元数据可由排序服务710添加。同时,区块的提交者(例如区块链节点712)可基于背书策略,读取/写入集的验证等,来添加有效性/无效性信息。交易过滤器可包括大小等于区块数据750中的交易数量的字节阵列和标识交易是否有效/无效的验证码。
图7C示出了根据本文所述实施例的用于数字内容的区块链770的实施例。数字内容可包括一个或多个文件和相关联的信息。文件可包括媒体,图像,视频,音频,文本,链接,图形,动画,网页,文档,或其它形式的数字内容。区块链的不可篡改,仅附加的方面可作为保护数字内容的完整性,有效性和真实性的保障,使其适用于应用可采性规则的法律程序或考虑证据或以其它方式使数字信息的展示和使用受关注的其它设定。在这种情况下,数字内容可被称为数字证据。
区块链可以以各种方式形成。在一个实施例中,数字内容可被包括在区块链自身中并且可从区块链自身访问。例如,区块链的每个区块可沿着相关联的数字内容存储引用信息的散列值(例如,头,值等)。然后散列值和相关联的数字内容可被加密在一起。因此,可通过解密区块链中的每个区块来访问每个区块的数字内容,并且每个区块的散列值可被用作引用前一区块的基础。这可被描述为如下:
在一个实施例中,数字内容可不被包括在区块链中。例如,区块链可存储每个区块的内容的加密散列,而无需任何数字内容。数字内容可与原始文件的散列值相关联地存储在另一存储区域或存储器地址中。其它存储区域可以是用于存储区块链的同一存储设备,或者可以是不同的存储区域,或者甚至是单独的关系数据库。可通过获得或查询感兴趣的区块的散列值,以及然后在存储区域中查找具有与实际数字内容相对应地存储的值的散列值,来引用或访问每个区块的数字内容。该操作例如可由数据库关守(gatekeeper)执行。这可被描述为如下:
在图7C的示例实施例中,区块链770包括在有序序列中以密码链接的多个区块7781、7872,……,778N,其中N≥1。用于链接块7781、7872,……,778N的加密术可以是多个有密钥散列函数或无密钥散列函数中的任一个。在一个实施例中,区块7781、7872,……,778N服从散列函数,该散列函数从基于区块中的信息的输入中产生n位字母数字输出(其中n是256或另一个数字)。此类散列函数的示例包括但不限于:SHA型(SHA代表安全散列算法)算法,Merkle-Damgard算法,HAIFA算法,默克尔树(Merkle-tree)算法,基于随机数(nonce-based)的算法,和非抗冲突PRF算法。在另一实施例中,可通过与散列函数不同的函数来以密码链接区块7781、7872,……,778N。为了说明的目的,参考诸如SHA-2的散列函数进行以下描述。
区块链中的每个区块7781、7872,……,778N包括头,文件版本,和值。由于区块链中的散列法(hashing),每个区块的头和值都不同。在一个实施例中,值可被包括在头中。如下面更详细描述的,文件的版本可以是原始文件或原始文件的不同版本。
区块链中的第一个区块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中的区块的结构的区块的实施例。区块(区块i)包括头772i,文件774i,和值776i
头772i包括前一区块(区块i-1)的散列值和附加引用信息,该附加引用信息例如可以是本文讨论的任何类型的信息(例如,头信息包括引用,特性,参数等)。当然,除创始区块外,所有区块都引用前一区块的散列。前一区块的散列值可以仅是前一区块中头的散列,或者是前一区块中所有或部分信息的散列,包括文件和元数据。
文件774i包括多个数据,例如依次是数据1,数据2,……,数据N。数据被标记有元数据元数据1,元数据2,……,元数据N,这些元数据描述了与数据相关联的内容和/或特征。例如,每个数据的元数据可包括指示数据的时间戳,处理数据的信息,指示人员或数据中描述的其它内容的关键字,和/或有助于作为整体建立文件的有效性和内容的其它特征,以及特别地,例如,如以下结合实施例所描述的,其使用数字证据。除元数据外,每个数据可被标记有对前一数据的引用REF 1,REF 2,…,REF N,以防止篡改,文件中的空白,以及通过文件的顺序引用。
在元数据被分配给数据(例如,通过智能合约)之后,不能在不改变散列的情况下改变元数据,其可以针对无效性容易地识别。因此,元数据创建信息的数据日志,该数据日志可被访问以供区块链中的参与者使用。
值776i是散列值或基于先前讨论的任何类型的信息计算的其它值。例如,对于任何给定区块(区块i),该区块的值可被更新以反映对该区块执行的处理,例如,新的散列值,新的存储位置,相关联文件的新元数据,控制权或访问权的转移,标识符或将要添加的其它动作或信息。尽管示出了每个区块中的值与文件和头的数据的元数据分离,但是在另一实施例中,该值可部分或全部基于该元数据。
在形成区块链770之后,在任何时间点,可通过向区块链查询跨区块的值的交易历史来获得文件的不可篡改的监管链。该查询或追踪过程可从解密最近包括的区块的值(例如,最后一个(第N个)区块)开始,然后继续解密其它区块的值,直到达到创始区块为止,并且恢复原始文件。解密还可涉及在每个区块处解密头和文件以及相关联的元数据。
基于在每个区块中发生的加密的类型来执行解密。这可涉及私钥,公钥,或公钥-私钥对的使用。例如,当使用非对称加密时,网络中的区块链参与者或处理器可使用预定算法来生成公钥和私钥对。公钥和私钥通过某种数学关系相互关联。可公开分布公钥,以用作接收来自其它用户的消息的地址,例如,IP地址或家庭地址。私钥是保密的,并用于对发送给其它区块链参与者的消息进行数字签名。签名被包括在消息中,以便收件人可以使用发件人的公钥进行验证。这样,收件人可确定只有发件人可以发送此消息。
生成密钥对可类似于在区块链上创建账户,但是不必实际在任何地方进行注册。此外,在区块链上执行的每个交易由发送者使用其私钥进行数字签名。该签名确保只有账户所有者可追踪和处理(如果在智能合约确定的许可范围内)区块链中的文件。
图8示出了示例系统800,该示例系统800支持本文描述和/或描绘的一个或多个示例实施例。系统800包括计算机系统/服务器802,其可与许多其它通用或专用计算系统环境或配置一起操作。可适于与计算机系统/服务器802一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统,以及包括任何上述系统或设备的分布式云计算环境等。
计算机系统/服务器802可在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述。通常,程序模块可包括执行特定任务或实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器802可在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可位于包括存储器存储设备的本地和远程计算机系统存储介质二者中。
如图8所示,云计算节点800中的计算机系统/服务器802以通用计算设备的形式表现。计算机系统/服务器8022的组件可以包括但不限于:一个或者多个处理器或者处理单元804,系统存储器806,连接不同系统组件(包括系统存储器806和处理单元804)的总线。
总线表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器802典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器802访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。在一个实施例中,系统存储器806实现为其它附图的流程图。系统存储器806可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)810和/或高速缓存存储器812。计算机系统/服务器802可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统814可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线相连。存储器806可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块818的程序/实用工具816,可以存储在例如存储器806中,这样的程序模块818包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块818通常执行本发明所描述的实施例中的功能和/或方法。
如所属领域的技术人员将了解的,本申请的各方面可体现为系统、方法,或计算机程序产品。因此,本申请的各方面可采用完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或者组合软件和硬件方面的实施例的形式,这些实施例在此通常可被称为“电路”、“模块”或“系统”。此处,本申请的各方面可采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有体现在其中的计算机可读程序代码。
计算机系统/服务器802也可以与一个或多个外部设备820(例如键盘、指向设备、显示器822等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器802能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口824进行。并且,计算机系统/服务器802还可以通过网络适配器826与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器826通过总线与计算机系统/服务器802的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器802使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
尽管在附图中示出了系统、方法和非暂态计算机可读介质中的至少一个的示例性实施例,并且在前面的详细描述中对其进行了描述,但是应该理解,本申请不限于所公开的实施例,而是能够进行如下权利要求所述和定义的许多重排、修改和替换。例如,各种附图中的系统的能力可由在此描述的一个或多个模块或组件来执行或以分布式体系结构来执行,并且可包括发射机、接收机或两者的对。例如,由各个模块执行的全部或部分功能可由这些模块中的一个或多个执行。此外,在此描述的功能可在不同时间并且与模块或组件内部或外部的各种事件相关地执行。此外,在各个模块之间发送的信息可经由以下中的至少一个在模块之间发送:数据网络、因特网、语音网络、因特网协议网络、无线设备、有线设备和/或多个协议。此外,可直接和/或经由一个或多个其它模块发送或接收由任何模块发送或接收的消息。
本领域技术人员将理解,“系统”可被体现为个人计算机、服务器、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、智能手机或任何其它合适的计算设备,或设备的组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个示例。实际上,在此公开的方法、系统和装置可以以与计算技术一致的本地化和分布式形式实现。
应当注意,本说明书中描述的一些系统特征已经作为模块呈现,以便更具体地强调它们的实现独立性。例如,模块可被实现为硬件电路,该硬件电路包括:定制的超大规模集成(VLSI)电路或门阵列,诸如逻辑芯片的现成半导体、晶体管,或其它分立组件。模块还可在可编程硬件设备中实现,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等。
模块还可至少部分地以软件实现,以由各种类型的处理器执行。所识别的可执行代码单元可例如包括计算机指令的一个或多个物理或逻辑块,其可例如被组织为对象、过程或功能。然而,所识别的模块的可执行文件不需要物理地位于一处,而是可包括存储在不同位置的不同指令,当该指令在逻辑上连接在一起时,该指令包括模块并实现针对模块的所述目的。此外,模块可被存储在计算机可读介质上,该计算机可读介质可以是例如硬盘驱动器、闪存设备、随机存取存储器(RAM)、磁带,或用于存储数据的任何其它此类介质。
实际上,可执行代码的模块可以是单个指令或多个指令,并且甚至可以分布在多个不同的代码段上,分布在不同的程序中,以及跨多个存储器设备分布。类似地,操作数据可在此在模块内被识别和示出,并且可以以任何合适的形式体现并且被组织在任何合适类型的数据结构内。操作数据可作为单个数据集收集,或者可分布在不同位置上(包括分布在不同存储设备上),并且可以至少部分地仅作为系统或网络上的电子信号存在。
容易理解的是,如在本文附图中一般描述和说明的,本申请的组件可以以各种不同的配置来布置和设计。因此,实施例的详细描述不旨在限制所要求保护的本申请的范围,而仅仅代表本申请的所选实施例。
本领域普通技术人员将容易理解,可以以不同顺序的步骤和/或使用与所公开的配置不同的配置中的硬件元件来实践上述内容。因此,尽管已经基于这些优选实施例描述了本申请,但是对于本领域技术人员来说显而易见的是,某些修改、变化和替代构造将是显而易见的。
虽然已经描述了本申请的优选实施例,但是应该理解,所描述的实施例仅是说明性的,并且当用所附权利要求的等同物和修改(例如,协议、硬件设备、软件平台等)的整个范围来考虑时,本申请的范围仅由所附权利要求限定。

Claims (20)

1.一种由区块链网络中的区块链节点执行的用于在所述区块链网络中修改背书策略的方法,包括:
读取在所述区块链网络的区块链账本上的交易日志中存储的历史区块链交易数据;
在所述历史区块链交易数据上执行机器学习模型,以训练所述机器学习模型以识别欺诈企图的历史模式;
从公共数据源接收公共数据;
通过在所述公共数据上执行经训练的机器学习模型来预测未来欺诈企图;
基于所预测的未来欺诈企图,自动修改所述区块链网络的背书策略;以及
将所修改的背书策略添加到所述区块链网络的智能合约中。
2.根据权利要求1所述的方法,还包括:
基于所修改的背书策略来背书交易;以及
将所背书的交易添加到所述交易日志中。
3.根据权利要求1所述的方法,其中,所修改的背书策略包括对更强的加密逻辑的需求。
4.根据权利要求1所述的方法,其中,所述公共数据包括以下中的一个或多个:新闻源数据,博客数据,产品资料,一个或多个技术期刊,专利文献,以及共享账本数据。
5.根据权利要求4所述的方法,还包括:
分析所述公共数据;
从所述公共数据中识别一个或多个加密改进;以及
基于一个或多个加密改进,修改一个或多个背书策略。
6.根据权利要求1所述的方法,其中,所述方法还包括:执行语义解析和匹配算法。
7.根据权利要求1所述的方法,其中,所述预测包括以下中的一个或多个:识别威胁类型,预测欺诈场景,识别计算能力,或识别计算特征。
8.一种区块链系统,包括:
区块链网络,所述区块链网络包括:
包括交易日志的共享账本;
包括背书策略的智能合约;
区块链节点或对等体,其被配置为实现根据权利要求1-7中任一项所述的方法。
9.一种包括指令的非暂时性计算机可读介质,所述指令在被处理器读取时使所述处理器执行根据权利要求1-7中任一项所述的方法。
10.一种区块链节点,包括用于实现根据权利要求1-7中任一项所述的方法中的步骤的装置。
11.一种由区块链网络中的区块链节点执行的用于在所述区块链网络中修改背书策略的方法,包括:
读取在所述区块链网络的区块链账本上的交易日志中存储的历史区块链交易日志;
在所述历史区块链交易日志上执行机器学习模型,以训练所述机器学习模型以识别欺诈的历史模式;
从公共数据源接收公共数据;
通过在所述公共数据上执行经训练的机器学习模型来预测未来欺诈企图;
基于所预测的未来欺诈企图,自动修改所述区块链网络的第一背书策略;
防止修改所述区块链网络的一个或多个第二背书策略,所述一个或多个第二背书策略提供只读访问;以及
将所修改的第一背书策略添加到所述区块链网络的智能合约中。
12.根据权利要求11所述的方法,还包括:
基于所修改的第一背书策略来背书交易;以及
将所背书的交易添加到所述交易日志中。
13.根据权利要求12所述的方法,还包括:
将所背书的交易提交到所述交易日志,
其中,指定的提交对等体被配置为向共享账本提交由第二背书策略背书的其它交易。
14.根据权利要求12所述的方法,其中,所述交易包括加密的内容,其中,所述方法还包括:
对加密的交易内容进行解密,以获得解密的交易内容;以及
根据所述解密的交易内容处理所述交易的写入集。
15.根据权利要求12所述的方法,还包括:
背书非预期数量的交易,以及作为响应:
添加新的背书对等体以背书未来的交易。
16.根据权利要求11所述的方法,还包括:
使交易无效,其中,所述区块链节点位于第一位置,以及作为响应:
添加新的背书对等体以背书未来的交易,其中,所述新的背书对等体位于与所述第一位置不同的第二位置。
17.根据权利要求11所述的方法,其中,为了修改一个或多个背书策略,不要求替换智能合约。
18.一种区块链系统,包括:
区块链网络,所述区块链网络包括:
包括交易日志的共享账本;
包括状态部分的智能合约,所述状态部分包括:
第一背书策略,其被配置为提供对指定背书节点或对等体的读取或写入访问;以及
第二背书策略,其被配置为提供只读访问;
区块链节点或对等体,其被配置为实现根据权利要求11-17中任一项所述的方法。
19.一种包括指令的非暂时性计算机可读介质,所述指令在被处理器读取时使所述处理器执行根据权利要求11-17中任一项所述的方法的步骤。
20.一种区块链节点,包括用于实现根据权利要求11-17中任一项所述的方法中的步骤的装置。
CN202010142343.7A 2019-03-05 2020-03-04 自动演进的数据库背书策略 Active CN111666332B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/292507 2019-03-05
US16/292,507 US11790368B2 (en) 2019-03-05 2019-03-05 Auto-evolving database endorsement policies

Publications (2)

Publication Number Publication Date
CN111666332A CN111666332A (zh) 2020-09-15
CN111666332B true CN111666332B (zh) 2024-03-15

Family

ID=72336475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010142343.7A Active CN111666332B (zh) 2019-03-05 2020-03-04 自动演进的数据库背书策略

Country Status (2)

Country Link
US (1) US11790368B2 (zh)
CN (1) CN111666332B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11538031B2 (en) 2017-03-31 2022-12-27 Vijay Madisetti Method and system for identity and access management for blockchain interoperability
CN111949315A (zh) * 2019-05-16 2020-11-17 富士通株式会社 用于区块链账本数据的管理装置和方法
US11138328B2 (en) * 2019-05-30 2021-10-05 Bank Of America Corporation Controlling access to secure information resources using rotational datasets and dynamically configurable data containers
US11544665B2 (en) 2019-10-17 2023-01-03 International Business Machines Corporation Upstream visibility in supply-chain
US11341457B2 (en) * 2019-10-17 2022-05-24 International Business Machines Corporation Upstream visibility in supply-chain
CN112131236B (zh) * 2020-09-21 2022-07-05 中国电子科技网络信息安全有限公司 一种新型区块链并行处理性能优化方法
US20230206348A1 (en) * 2021-12-28 2023-06-29 Highradius Corporation Autonomous accounting anomaly detection engine

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314114B1 (en) * 1998-06-23 2001-11-06 Oracle Corporation Distributed resource management
CN108572986A (zh) * 2017-03-13 2018-09-25 华为软件技术有限公司 一种数据更新的方法及节点设备
CN109118214A (zh) * 2017-06-26 2019-01-01 华为技术有限公司 运行智能合约的方法和装置
CN109246179A (zh) * 2018-06-30 2019-01-18 华为技术有限公司 维护区块链的方法和装置、服务器和计算机可读存储介质

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7403922B1 (en) * 1997-07-28 2008-07-22 Cybersource Corporation Method and apparatus for evaluating fraud risk in an electronic commerce transaction
US7248855B2 (en) 1998-09-15 2007-07-24 Upaid Systems, Ltd. Convergent communications system and method with a rule set for authorizing, debiting, settling and recharging a mobile commerce account
US7881209B2 (en) 2006-07-27 2011-02-01 Cisco Technology, Inc. Method and system for protecting communication networks from physically compromised communications
US7506001B2 (en) 2006-11-01 2009-03-17 I3Solutions Enterprise proposal management system
US9690820B1 (en) * 2007-09-27 2017-06-27 Experian Information Solutions, Inc. Database system for triggering event notifications based on updates to database records
US20100179930A1 (en) * 2009-01-13 2010-07-15 Eric Teller Method and System for Developing Predictions from Disparate Data Sources Using Intelligent Processing
US20120158586A1 (en) * 2010-12-16 2012-06-21 Verizon Patent And Licensing, Inc. Aggregating transaction information to detect fraud
US9058607B2 (en) * 2010-12-16 2015-06-16 Verizon Patent And Licensing Inc. Using network security information to detection transaction fraud
US10225249B2 (en) * 2012-03-26 2019-03-05 Greyheller, Llc Preventing unauthorized access to an application server
US10984913B2 (en) * 2012-04-27 2021-04-20 Netspective Communications Llc Blockchain system for natural language processing
US20160004979A1 (en) 2012-11-29 2016-01-07 Verizon Patent And Licensing Inc. Machine learning
US20160071017A1 (en) * 2014-10-15 2016-03-10 Brighterion, Inc. Method of operating artificial intelligence machines to improve predictive model training and performance
US20160283920A1 (en) * 2015-03-28 2016-09-29 Justin Fisher Authentication and verification of digital data utilizing blockchain technology
US20160342989A1 (en) * 2015-05-21 2016-11-24 Mastercard International Incorporated Method and system for processing blockchain-based transactions on existing payment networks
US10963881B2 (en) 2015-05-21 2021-03-30 Mastercard International Incorporated Method and system for fraud control of blockchain-based transactions
WO2017131975A1 (en) 2016-01-25 2017-08-03 Acalvio Technologies, Inc. Detecting security threats by combining deception mechanisms and data science
WO2017153495A1 (en) * 2016-03-08 2017-09-14 Appii Pty Ltd A system and method for creating a database of independently validated educational and work experience profiles (curricula vitae) using blockchain smart contracts
US11829998B2 (en) 2016-06-07 2023-11-28 Cornell University Authenticated data feed for blockchains
US10542015B2 (en) * 2016-08-15 2020-01-21 International Business Machines Corporation Cognitive offense analysis using contextual data and knowledge graphs
JP6827327B2 (ja) * 2017-01-05 2021-02-10 株式会社日立製作所 分散コンピューティングシステム
US10375105B2 (en) 2017-03-03 2019-08-06 International Business Machines Corporation Blockchain web browser interface
US10452998B2 (en) * 2017-03-19 2019-10-22 International Business Machines Corporation Cognitive blockchain automation and management
US20180285996A1 (en) * 2017-04-03 2018-10-04 FutureLab Consulting Inc. Methods and system for managing intellectual property using a blockchain
US10388039B2 (en) * 2017-05-31 2019-08-20 International Business Machines Corporation Accelerating data-driven scientific discovery
US20190050855A1 (en) * 2017-07-24 2019-02-14 William Martino Blockchain-based systems, methods, and apparatus for securing access to information stores
US10452776B2 (en) * 2017-07-28 2019-10-22 International Business Machines Corporation Cognitive mediator for generating blockchain smart contracts
US10671723B2 (en) 2017-08-01 2020-06-02 Sap Se Intrusion detection system enrichment based on system lifecycle
US10719586B2 (en) * 2017-10-12 2020-07-21 International Business Machines Corporation Establishing intellectual property data ownership using immutable ledgers
US10691827B2 (en) * 2017-12-18 2020-06-23 International Business Machines Corporation Cognitive systems for allocating medical data access permissions using historical correlations
US10423726B2 (en) * 2018-01-10 2019-09-24 International Business Machines Corporation Machine learning to integrate knowledge and natural language processing
US11257073B2 (en) * 2018-01-31 2022-02-22 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment
CN110163004B (zh) * 2018-02-14 2023-02-03 华为技术有限公司 一种区块链生成的方法、相关设备及系统
CN108376368A (zh) * 2018-03-07 2018-08-07 物数(上海)信息科技有限公司 背书策略确定方法、装置、电子设备、存储介质
US10673626B2 (en) * 2018-03-30 2020-06-02 Spyrus, Inc. Threshold secret share authentication proof and secure blockchain voting with hardware security modules
US10938817B2 (en) * 2018-04-05 2021-03-02 Accenture Global Solutions Limited Data security and protection system using distributed ledgers to store validated data in a knowledge graph
US10542046B2 (en) * 2018-06-07 2020-01-21 Unifyvault LLC Systems and methods for blockchain security data intelligence
WO2019237126A1 (en) * 2018-06-08 2019-12-12 Gcp Ip Holdings I, Llc Blockchain overwatch
US10171992B1 (en) * 2018-06-22 2019-01-01 International Business Machines Corporation Switching mobile service provider using blockchain
US11169985B2 (en) 2018-07-27 2021-11-09 Oracle International Corporation System and method for supporting SQL-based rich queries in hyperledger fabric blockchains
US12111918B2 (en) 2018-09-18 2024-10-08 Visa International Service Association Microservice adaptive security hardening
US20200090188A1 (en) * 2018-09-18 2020-03-19 Myndshft Technologies, Inc. Autonomous data exchange marketplace system and methods
US10944770B2 (en) 2018-10-25 2021-03-09 EMC IP Holding Company LLC Protecting against and learning attack vectors on web artifacts
US10868667B2 (en) * 2018-11-06 2020-12-15 GM Global Technology Operations LLC Blockchain enhanced V2X communication system and method
US10693643B2 (en) 2018-11-07 2020-06-23 Pitt Ohio Methods and systems for distributed cryptographically secured data validation
US20200177373A1 (en) * 2018-11-14 2020-06-04 Royal Bank Of Canada System and method for storing contract data structures on permissioned distributed ledgers
US10810042B2 (en) * 2019-01-18 2020-10-20 Rubrik, Inc. Distributed job scheduler with intelligent job splitting

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314114B1 (en) * 1998-06-23 2001-11-06 Oracle Corporation Distributed resource management
CN108572986A (zh) * 2017-03-13 2018-09-25 华为软件技术有限公司 一种数据更新的方法及节点设备
CN109118214A (zh) * 2017-06-26 2019-01-01 华为技术有限公司 运行智能合约的方法和装置
CN109246179A (zh) * 2018-06-30 2019-01-18 华为技术有限公司 维护区块链的方法和装置、服务器和计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Hyperledger Fabric Chaincode for Operators——实操智能合约;Aberic;《http://www.cnblogs.com/aberics/p/8394714.html》;第1-3页 *
Hyperledger Fabric Read-Write set semantics——读写集;Aberic;《https://www.cnblogs.com/aberic/p/8384170.html》;第1-2页 *

Also Published As

Publication number Publication date
US11790368B2 (en) 2023-10-17
US20200286084A1 (en) 2020-09-10
CN111666332A (zh) 2020-09-15

Similar Documents

Publication Publication Date Title
CN111666332B (zh) 自动演进的数据库背书策略
US11200260B2 (en) Database asset fulfillment chaincode deployment
CN111881099A (zh) 数据库私有文档共享
US11809896B2 (en) Anomalous transaction commitment prevention for database
US20200285631A1 (en) Database endorsement architecture
CN111831739B (zh) 数据库复合背书
US11354198B2 (en) Snapshot for world state recovery
US11645268B2 (en) Database world state performance improvement
US11251938B2 (en) Blockchain verification using non-consecutive blocks
US11664973B2 (en) Trust-varied relationship between blockchain networks
CN112241919A (zh) 具有数据流控制的多域区块链网络
CN112035291B (zh) 快照恢复
US20200371832A1 (en) Anomalous transaction detection for database
CN112084186B (zh) 拆分和合并存储
US11507535B2 (en) Probabilistic verification of linked data
CN111881109A (zh) 数据库可合并分类账
CN111797426B (zh) 一种用于去信任通知服务的方法和系统
CN112052474A (zh) 蓝光拷贝服务
US11792022B2 (en) Resolution of conflicting data
AU2021253009B2 (en) Contextual integrity preservation
CN112084187B (zh) 存储的拆分和合并
US20210314155A1 (en) Trusted ledger stamping
US11249949B2 (en) Batch processing
US11526467B2 (en) Document storage and verification
US20210248271A1 (en) Document 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
GR01 Patent grant
GR01 Patent grant