CN110741599A - 基于有序智能合约创建多个记录的***和方法 - Google Patents
基于有序智能合约创建多个记录的***和方法 Download PDFInfo
- Publication number
- CN110741599A CN110741599A CN201880039205.7A CN201880039205A CN110741599A CN 110741599 A CN110741599 A CN 110741599A CN 201880039205 A CN201880039205 A CN 201880039205A CN 110741599 A CN110741599 A CN 110741599A
- Authority
- CN
- China
- Prior art keywords
- node computer
- event
- interaction
- computer
- smart contract
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3297—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0635—Risk analysis of enterprise or organisation activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Business processing using cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
公开了一种用于创建详细描述一组有序事件的智能合约的方法。智能合约可以包括关于多个事件和针对每一事件的响应的信息。所述事件和响应可以以预定义顺序布置。所述响应可以包括将新记录添加到区块链。
Description
相关申请交叉引用
本申请是2017年6月14日提交的美国临时申请第62/519,802号的国际申请并要求其提交日的权益,所述临时申请出于所有目的以全文引用的方式并入本文中。
背景技术
区块链记录***设计成安全地记录信息。当计算机向区块链提交新信息时,信息会不变地存储下来。
通常,区块链记录***允许任何人向区块链添加新数据。此开放访问可以是有用的,因为它允许多个用户而非仅一个用户对记录作出贡献。然而,区块链记录***中的开放访问可能会造成接收到不正确的数据和/或记录混乱的漏洞。
为了说明,考虑涉及三个不同输送分段的实际运输过程。第一分段可以是从点A输送到点B,第二分段可以是从点B输送到点C,且第三分段可以是从点C输送到点D。当输送分段完成时,可以创建新的区块链记录以便监测运输进展。然而,在典型的区块链记录***的情况下,有可能在记录第一输送分段已完成之前记录第二输送分段已完成。这会使记录不可理解且不准确,因为第二分段实际上无法在第一分段之前完成。
无论此类记录条目是欺诈性的还是意外创建的,都会导致区块链记录变得混乱且可能不正确。此种错误无法校正,因为一旦信息被添加到区块链,就无法改变。
最多,第一输送分段可能已完成,但尚未报告。可以稍后报告所述分段。然而,区块链现将仍示出第二分段在早于第一分段的时间完成。
本发明的实施例个别地和共同地解决了这些问题和其它问题。
发明内容
本发明的实施例提供用于创建智能合约的***和方法,所述智能合约指定一组事件,以及将响应于事件而创建的新记录的特定顺序。由此,智能合约实现对提交到区块链记录的新记录的过滤。如果事件似乎是无序发生,或新记录条目以其它方式无序提交,则可以拒绝所述记录并不将其添加到区块链。结果,能以有条理和顺序方式创建并维护区块链记录。
本发明的一个实施例涉及一种方法。所述方法包括接收指示将响应于一组有序事件而发生一组有序交互的智能合约,和响应于所述一组有序事件中的第一事件,向第二节点计算机传输生成所述一组有序交互中的第一交互的第一数据包的指令。智能合约指示将响应于第一事件而发生第一交互。所述方法还包括从第二节点计算机接收第一交互的第一数据包,和生成区块链的第一区块。第一区块包括第一交互的第一数据包。所述方法还包括响应于所述一组有序事件中的第二事件,向第二节点计算机传输生成所述一组有序交互中的第二交互的第二数据包的指令。智能合约指示将响应于第二事件而发生第二交互。所述方法还包括从第二节点计算机接收第二交互的第二数据包,和生成区块链的第二区块。第二区块包括第一交互的第二数据包。
本发明的另一实施例涉及一种配置成执行上述方法的管理节点计算机。
本发明的另一实施例涉及一种方法,其包括生成指示将响应于一组有序事件而发生一组有序交互的智能合约,和响应于所述一组有序事件中的第一事件而生成所述一组有序交互中的第一交互的第一数据包。智能合约指示将响应于第一事件而发生第一交互。所述方法还包括向管理节点计算机传输第一数据包。管理节点计算机生成区块链的第一区块,且第一区块包括第一数据包。所述方法还包括响应于所述一组有序事件中的第二事件而生成所述一组有序交互中的第二交互的第二数据包。智能合约指示将响应于第二事件而发生第二交互。所述方法还包括向管理节点计算机传输第二数据包。管理节点计算机创建区块链的第二区块,且第二区块包括第二数据包。
本发明的另一实施例涉及一种被配置成执行上文所描述方法的第二节点计算机。
关于本发明的实施例的其它细节可见于具体实施方式和附图。
附图说明
图1示出根据本发明的实施例的***的框图。
图2示出根据本发明的实施例的管理节点计算机的框图。
图3示出根据本发明的实施例的第二节点计算机的框图。
图4示出根据本发明的实施例的智能合约的实例。
图5A到5G示出说明根据本发明的实施例的用于基于有序智能合约创建记录的方法的流程图。
具体实施方式
本发明的实施例提供用于创建有序智能合约的***和方法。智能合约可以包括关于一系列预期未来事件的细节,且可以指定事件预期发生的顺序。智能合约可以进一步包括关于将响应于事件而创建的一系列记录的细节。每一事件可能具有一个或多个对应记录。
智能合约可以由管理节点计算机执行。管理节点计算机还可以生成区块链记录,且因此可以充当网守,以确保仅按照智能合约的指定来创建所述记录。结果,能以有条理和可理解的方式创建区块链记录。
在一些实施例中,当不同事件完成时,各种节点计算机可以向管理节点计算机发送通知。每一节点计算机可能先前已经由与管理节点计算机的通信向记录保存网络登记,且管理节点计算机可能已为每一节点计算机提供唯一私钥以供未来通信。结果,每一事件通知都可以使用私钥进行数字签名,使得管理节点计算机可以验证通知的真实性。通知可以充当后续记录创建的触发事项(例如,基于智能合约)。
在一些实施例中,事件可以是服务,且新记录可以表示针对服务提供的支付交易。例如,可以创建具有定义支付交易的信息的数据包,且可以将数据包记录在区块链中。因此,智能合约可以确保仅在预定义顺序内完成对应服务或任务时才能进行支付。
实施例还适用于其它类型的事件和记录。例如,事件可以包括涉及例如手术的医疗程序的任务,且新记录可以表示对手术日志或患者医疗数据的更新。作为另一实例,事件可以包括建筑项目内的特定任务(例如,建立地基、安装管道、安装电线等),且新记录可以表示项目状态更新。因此,实施例可以适用于事件或活动应以特定顺序发生,和/或事件或活动由不同实体执行的任何合适过程。
国际申请US2017/046364、国际申请US2017/059744和国际申请US2018/027455中描述了可以包括于本发明的实施例中的额外特征,所述申请中的每一个出于所有目的以全文引用的方式并入本文中。
在论述本发明的特定实施例之前,可以详细地描述一些术语。
“事件”可以包括发生的事情。更具体来说,事件可以是由参与者执行的动作、活动或任务。事件的实例包括在运输的包装或在检查的包装、在创建的保险单、在挖掘的建筑地基、在执行的医疗检查和任何其它合适类型的工作完成。
“交互”可以包括交换或通信。实例交互包括价值转移(例如,支付交易或访问权限转移)和提供更新的信息(例如,医疗记录、学术记录等)。
“智能合约”可以是被配置成使得处理器能够执行策略、协议或承诺的计算机可执行指令。智能合约可以用于表示两方或更多方之间的协议,其中智能合约的术语以计算机语言记录为一组指令。智能合约可以包括必须执行以便完成两方或更多方之间的交易的数个策略。智能合约可以分布在区块链网络的一个或多个节点上,从而可以自动以执行智能合约。
在一些实施例中,单个智能合约可以包括被配置成使得处理器能够执行多个(例如,两个或更多个)策略、协议或承诺的计算机可执行指令。此智能合约可以用于表示两组或更多组的两方或更多方之间的协议。在具有多个策略的智能合约内,每一策略都可以包括事件完成。当事件完成时,可以触发对应的交互。因此,智能合约可以指定一组(例如,两个或更多个)事件,以及当特定事件完成时将进行的一组交互。此类型的智能合约可以包括指定事件(和/或对应交互)将以特定顺序完成的信息。如果事件未根据预定义顺序完成,则可能并不触发一个或多个交互。
“数据包”可以指数字信息的集合。例如,数据包可以是以二进制格式存在的信息。在一些实施例中,数据包可以包括关于记录中可以描述的任何内容的信息。例如,数据包可以包括任何合适类型的数字信息,例如所有权数据、产品状态数据、项目更新数据、支付交易数据等。
术语“节点”可以指连接点。在一些实施例中,节点可以是物理电子装置,其能够创建、接收或传输数据。在其它实施例中,节点可以是计算装置上的软件模块,所述软件模块是通信网络中的连接点。在一些实施例中,节点可以是记录保存网络内的计算装置。节点可能够创建数据包、转移数据包、接收数据包、验证数据包、访问中心记录和/或执行任何其它合适的功能。不同类型的节点可能够执行记录网络内的不同功能组。在一些实施例中,节点可以与金融机构计算机(例如,银行)、支付处理器计算机、第三方计算机或任何其它合适的实体相关联和/或由它们操作。
“记录”可以指一个或多个交互的证据。数字记录可以是交互的电子文档。记录可以包括记录标识符和记录信息。例如,记录信息可以包括描述一个或多个交互的信息和/或与交互相关联的信息(例如,数字签名)。记录信息可以包括多个不同的数据包,每一数据包具有描述不同交互的不同数据。记录标识符可以是用于标识记录的数字、标题或其它数据值。记录标识符可能是非描述性的,因为它可能不会提供关于记录中的记录信息的任何有意义的信息。记录的实例包括医疗记录、学术记录、交易分类账中的交易记录等。记录的另一实例是区块链中的区块。个别区块可以是个别记录,且区块链可以是一系列记录。区块链标头是记录标识符的实例,且区块链主体是记录信息的实例。
术语“交易分类账”可以指来自先前交易的数据汇编。交易分类账可以是数据库或其它相当的文件结构,其可以被配置成存储来自所有先前交易的数据,包括交易的日期和时间、交易金额,以及交易的参与者的标识信息(例如,交易金额的发送方和接收方)。在一些实施例中,交易分类账可以呈电子分类账(例如,区块链)的形式,其中已经存储在电子分类账中的数据是不可更改的。
“区块链”可以是数据库,其维护不断增长的记录列表,以防篡改和修订。区块链可以包括记录在一个或多个节点上的数个交互记录区块。区块链中的每一区块还可以包括时间戳和到前一区块的链接。例如,每一区块可以包括或附加到前一区块的散列。换句话说,区块链中的交互记录可以存储为一系列“区块”,或包括在给定时间周期内发生的数笔交易的记录的永久性文件。在完成区块且验证区块之后可以由适当节点将区块附加到区块链。在本发明的实施例中,区块链可以是分布式的,且可以在区块链网络中的每一节点处维护区块链的副本。
“密钥对”可以包括一对链接的加密密钥。例如,密钥对可以包括公钥和对应的私钥。在密钥对中,第一密钥(例如,公钥)可以用于加密消息,而第二密钥(例如,私钥)可以用于解密加密的消息。另外,公钥可能够验证用对应私钥创建的数字签名。公钥可以分布在整个网络中,以便能够验证使用对应私钥签名的消息。公钥和私钥可以呈任何合适的格式,包括基于RSA或椭圆曲线密码学(ECC)的格式。在一些实施例中,可以使用非对称密钥对算法来生成密钥对。然而,如所属领域的普通技术人员所理解,也可以使用其它手段来生成密钥对。
术语“数字签名”可以指消息的电子签名。数字签名可以是数字数据值、字母数字数据值或包括图形表示的任何其它类型的数据。数字签名可以是使用加密算法从消息和私钥生成的唯一数据值。在一些实施例中,可以使用采用公钥的验证算法来验证签名。
“企业标识符”可以包括用户的标识符。例如,企业标识符可以是向记录保存网络中的节点提交新记录信息的终端用户的全局唯一标识符,或从节点接收关于新记录信息(例如,价值转移)的信息的终端用户的全局唯一标识符。在一些实施例中,企业标识符还可以指示与用户相关联的特定节点。企业标识符可以包括字母数字字符、特殊字符和任何其它合适的符号。
“地址标识符”可以包括参与者的标识符。例如,地址标识符可以表示网络中的节点或服务提供商。在一些实施例中,通信可以通过包括特定节点的地址标识符而定向到所述节点。地址标识符可以包括一串字符,例如字母、数字等。例如,地址标识符可以是一串5个、10个、15个或任何其它合适数目个字符。在一些实施例中,与参与者相关联的公钥可以用作参与者的地址标识符。
“类别标识符”可以包括表示特定类型的记录的数据值。类别标识符可以用于标识可记录信息的任何合适类别。例如,类别标识符可以配置成标识医疗信息类型记录、学历类型记录、产品标识符类型记录、员工数据类型记录、活动类型记录(例如,建筑活动、管道施工活动等)、各种类型的价值转移记录(例如,美元支付、英磅支付、人民币支付、数字版权数据转移、财产契约转移、活动门票转移、游戏积分转移、能源税收抵免转移、手机通话时间转移等)或任何其它合适类型的记录。类别可以以任何合适的方式划分。在一些实施例中,类别标识符还可以指示特定参与者被授权创建和/或接收所述类型的记录的数据包。类别标识符可以包括一串字符,例如字母、数字等。例如,地址标识符可以是一串5个、10个、15个或任何其它合适数目个字符。
“服务器计算机”可以包括功能强大的计算机或计算机集群。例如,服务器计算机可以是大型主机、小型计算机集群或作为一个单元运作的一组服务器。在一个实例中,服务器计算机可以是耦合到网络服务器的数据库服务器。服务器计算机可以耦合到数据库,且可以包括用于服务于来自一个或多个客户端计算机的请求的任何硬件、软件、其它逻辑或前述内容的组合。
图1示出包括数个部件的***100。***100包括由管理节点计算机150管理的记录网络。第一节点计算机165、第二节点计算机145、第三节点计算机123、第四节点计算机124、第五节点计算机125、第六节点计算机126、第七节点计算机127、第八节点计算机128、第九节点计算机129以及任何其它合适数目个节点计算机参与所述网络。由第一用户(未示出)操作的第一用户计算机110可以经由第一节点计算机165提交记录更新指令,由第二用户(未示出)操作的第二用户计算机130可以经由第二节点计算机145提交记录更新指令,且其它用户计算机(例如,第三用户计算机133、第四用户计算机134、第五用户计算机135、第六用户计算机136、第七用户计算机137、第八用户计算机138、第九用户计算机139)也可以经由其相关联节点计算机提交记录更新指令。另外,各种节点计算机可以向相关联用户计算机告知已提交的记录更新。
***100中示出的所有计算机都可以通过任何合适的通信信道或通信网络彼此进行操作性通信。合适的通信网络可以是下列中的任一个和/或组合:直接互连;因特网;局域网(LAN);城域网(MAN);作为因特网上节点的运行任务(OMNI);安全定制连接;广域网(WAN);无线网络(例如,采用例如但不限于无线应用协议(WAP)、I-模式等等的协议)等等。
可以使用安全通信协议,例如但不限于:文件传输协议(FTP)、超文本传输协议(HTTP)、安全超文本传输协议(HTTPS)、安全套接层(SSL)、ISO(例如,ISO 8583)等等来传输计算机、网络与装置之间的消息。
***100可以配置成创建并维护任何合适类型的记录。管理节点计算机150可以通过提供数个服务来管理记录保存过程。例如,管理节点计算机150可以为区块链建立新的区块,所述新的区块包括更新后的记录信息。管理节点计算机150还可以登记节点和终端用户,以及调节参与节点的行为以便使得记录安全且可靠。管理节点计算机150可以进一步验证新的数据包,并向参与节点告知新的交互和区块。
另外,管理节点计算机150可以促进按照一个或多个智能合约的定义创建顺序上有序的记录。例如,管理节点计算机150可以接收并执行智能合约。这可以包括监测何时已满足智能合约,并基于满足的策略触发新记录的创建。
在管理节点计算机150可以建立并维护一组有序记录时,各种节点计算机可以向管理节点计算机150提交新信息以供记录。例如,第一节点计算机165和第二节点计算机145可以创建并提交描述各种类别的交互的数据包。可以基于从第一用户计算机110和/或第二用户计算机130接收到的交互指令,或基于如智能合约中定义的触发事件来创建并提交这些数据包。
另外,一个或多个节点计算机可能够生成和/或提交智能合约。例如,第二节点计算机145可以创建智能合约,所述智能合约定义未来可能发生的一个或多个事件,以及所述事件的预期顺序。另外,智能合约可以定义将响应于事件而创建的一个或多个记录。第二节点计算机145可以将智能合约传输到管理节点计算机150,其可以管理并执行智能合约。例如,在发生某一触发事件之后,管理节点计算机150可以指示第二节点计算机145创建并提交表示特定交互的数据包。结果,可以按预定义顺序建立(例如,交互的)记录。
虽然具体来说,图1说明九个不同的节点计算机,但***100可以包括任何合适数目个节点计算机。另外,每一节点计算机可以与多于仅一个用户计算机通信。例如,第一节点计算机165可以与第一用户计算机110以外的其它用户计算机通信。此外,***100可以包括超过一个管理节点计算机150来管理记录网络。
***100可以用于处理、批准并记录任何合适类型的信息。例如,***100可以用于记录关于新交互的信息,例如新项目和活动、新价值转移、新医疗患者数据、新学业成就等。
图2中示出根据本发明的一些实施例的管理节点计算机150的实例。管理节点计算机150包括处理器150A、网络接口150B、记录数据库150C、节点数据库150D、用户数据库150P、密钥数据库150Q、智能合约数据库150R,以及计算机可读介质150E。
记录数据库150C可以存储记录。例如,从网络中的节点接收到的交互数据可以***到记录中并存储在记录数据库150C中。在一些实施例中,记录可以呈具有区块记录的区块链的形式,每一区块包括表示一个或多个交互的一个或多个数据包。
节点数据库150D可以包括关于节点的信息,所述节点例如第一节点计算机165、第二节点计算机145,以及图1中示出的其它节点计算机。例如,节点数据库可以包括与第一节点计算机165相关联的标识符,例如地址标识符和一个或多个类别标识符。节点数据库150D还可以包括关于限制的信息,例如与不同节点相关联的支出限值。
用户数据库150P可以包括关于例如第一用户、第二用户的所登记终端用户,以及与用户相关联的装置(例如,第一用户计算机110、第二用户计算机130,以及图1中示出的其它用户计算机)的信息。这可以包括企业标识符,以及关于与用户相关联的节点的信息。例如,第二用户计算机的企业标识符可以与第二节点计算机的地址标识符以及特定类别标识符相关联。
密钥数据库150Q可以存储加密密钥。例如,密钥数据库150Q可以包括每一节点的公钥,以及与管理节点计算机150相关联的私钥。在一些实施例中,密钥数据库150Q可以呈硬件安全模块(HSM)的形式。
智能合约数据库150R可以存储一个或多个智能合约。例如,智能合约数据库150R可以存储由节点计算机提交的智能合约的副本,所述智能合约定义一个或多个事件和一个或多个对应交互。智能合约数据库150R可以进一步存储描述给定智能合约的完成的信息,例如已完成哪些事件和/或交互,和下一预期事件的指示。此外,可以存储与给定智能合约相关联的一个或多个数字签名。
计算机可读介质150E可以包括登记模块150F、验证模块150J、签名模块150K、记录更新模块150L、结算模块150M、智能合约模块150N以及任何其它合适的软件模块。计算机可读介质150E还可以包括可由处理器150A执行以用于实施如下方法的代码,所述方法包括:接收到指示一组有序交互将响应于一组有序事件而发生的智能合约;响应于所述一组有序事件中的第一事件,向第二节点计算机传输生成所述一组有序交互中的第一交互的第一数据包的指令,其中智能合约指示第一交互将响应于第一事件而发生;从第二节点计算机接收第一交互的第一数据包;生成区块链的第一区块,第一区块包括第一交互的第一数据包;响应于所述一组有序事件中的第二事件,向第二节点计算机传输生成所述一组有序交互中的第二交互的第二数据包,其中智能合约指示第二交互将响应于第二事件而发生;从第二节点计算机接收第二交互的第二数据包;以及生成区块链的第二区块,第二区块包括第一交互的第二数据包。
登记模块150F可以包括使处理器150A登记加入记录网络的节点计算机的代码。例如,登记模块150F可以含有逻辑,所述逻辑使处理器150A评估实体是否可以登记,以及向新实体分配什么风险等级。风险等级可能受以下影响:实体是否为众所周知且可靠的组织;它是否已建立结算账户或其它结算过程;它是否位于风险国家等。除了分配风险等级之外,管理节点计算机150还可以基于风险概况发行所述节点的活动限值。活动限值可以包括例如最大交易阈值限值和/或速度限值,例如关于在某一时间段(例如,一天、一周或一个月)内可以提交的支付交易次数或总交易价值的限值。
登记模块150F还可以包括用于为新登记的节点生成并分配唯一地址标识符的指令。另外,可能存在用于生成密钥并将密钥分配给新登记的节点的指令。例如,管理节点计算机150可以为节点生成密钥对。管理节点计算机150可以存储公钥并向节点计算机提供私钥。
登记模块150F可以进一步包括用于登记终端用户的指令。例如,管理节点计算机150可以从节点接收关于新用户的信息(例如,姓名、地址、账号、电话号码、企业的公司概况等)、存储用户信息,且接着向用户分配唯一企业标识符。在一些实施例中,企业标识符可以包括指示相关联的(一个或多个)节点的地址标识符的字符的子集。
验证模块150J可以包括使处理器150A验证新的数据包从而使得可以在记录中输入数据包的代码。例如,验证模块150J可以含有逻辑,所述逻辑使处理器150A检查包括地址标识符和类别标识符的数据包均有效且与同一节点计算机相关联,并且检查新数据包尚未超出且目前不会超出与所提交的类别标识符相关联的限值。
验证模块150J可以进一步含有逻辑,所述逻辑使处理器150A验证与数据包相关联的所有实体(例如,一个或多个节点和一个或多个用户)已向网络注册且已经筛选符合条件者。管理节点计算机150还可以评估交易风险,例如通过评估所涉及的一方或多方的交易速度,或通过确定提交节点是否已发出任何警告。
验证模块150J可以进一步包括使处理器150A验证一个或多个数字签名的真实性的代码。例如,验证模块150J可以含有逻辑,所述逻辑使处理器150A使用节点计算机的公钥来验证与所述节点计算机相关联的数字签名的真实性。
签名模块150K可以包括使处理器150A生成数字签名的代码。例如,签名模块150K可以含有逻辑,所述逻辑使处理器150A使用管理节点私钥生成数据包和/或智能合约的数字签名。管理节点计算机的数字签名可以用于指示数据包的真实性,且可以提供转移有效且可信的保证。
记录更新模块150L可以包括使处理器150A维护并更新一组记录的代码。例如,记录更新模块150L可以含有逻辑,所述逻辑使处理器150A记录关于新交互(例如,如新数据包中所指示)的信息。在一些实施例中,记录更新模块150L可以包括用于在下一区块链区块中包括新数据包的指令。
记录更新模块150L可以进一步包括用于在新数据包创建时,告知与数据包中描述的交互相关联的各方的指令。例如,当对新支付交易进行验证并签名时,管理节点计算机150可以向接收节点(例如,第二节点计算机145)和/或用户计算机发送关于新支付交易的信息。
在一些实施例中,参与节点计算机可以并不维护单独的一组记录,而是实际上可以引用管理节点计算机150的集中维护记录。例如,第一节点计算机165和第二节点计算机145可以各自为轻节点。在此情况下,管理节点计算机150可以向这些节点提供对中心记录的实时访问,或管理节点计算机150可以提供有规律的记录更新(例如,可以每10秒、每1分钟、每5分钟等发送更新)。结果,其它节点可以在记录交互之后立即或很快知道新的交互。
在一些实施例中,参与节点计算机可能无法看到所有记录信息,而是实际上可能只能查看过滤后的记录或在准许的情况下查看记录。例如,在访问管理节点计算机150处的记录时,第一节点计算机165、第二节点计算机145、第一用户计算机110和/或第二用户计算机130可能只能查看与它们相关联的交互记录(例如,它们是其中一方的交易)。例如,第二节点计算机145可能够查看所有区块标头,但可能仅能够查看与它相关联的区块主体和交互记录。
在一些实施例中,可能存在多个管理节点计算机150,每一管理节点计算机接收并处理具有关于不同交互的信息的不同数据包,且接着更新它们自身的记录。这些不同的管理节点计算机可以彼此通信,以共享新记录并确认它们的记录包括相同的交互。
结算模块150M可以包括使处理器150A在账户之间结算承诺价值的代码。例如,结算模块150M可以含有逻辑,所述逻辑使处理器150A在中心银行处从第一节点的结算账户借记交互记录中指示的金额,并将所述相同金额(或减少了评估费用的金额)贷记到第二节点的结算账户。
在一些实施例中,结算可以按多个步骤进行(例如,由于使用多个基本交易来转移价值)。例如,第一结算可以包括从第一节点的结算账户借记第一金额,并将所述相同的第一金额贷记到管理节点结算账户。接着,第二结算可以包括从(相同或不同的)管理节点结算账户借记第二金额,且接着将所述相同的第二金额贷记到第二节点的结算账户。结果,经由管理节点将价值从第一节点转移到第二节点。
智能合约模块150N可以包括使处理器150A接收、验证、存储和/或执行智能合约的代码。在一些实施例中,智能合约可以添加到区块链记录或存储在智能合约数据库中。智能合约模块150N可以含有逻辑,所述逻辑使处理器150A获得由智能合约指示的每一责任方(例如,承诺支付的每一方)的数字签名,并使用对应公钥验证每一数字签名。在一些实施例中,管理节点计算机150可以基于智能合约中的支付来保留结算账户(例如,节点在中央银行处的结算账户)中的资金。此外,智能合约模块150N可以含有逻辑,所述逻辑使处理器150A在智能合约生效时,向与智能合约相关联的每一方传输消息。
智能合约模块150N可以另外包括使处理器150A确定智能合约中指示的事件是否已发生的代码。这可以包括接收事件发生的通知消息(例如,从引发事件的参与者),并验证附加的数字签名。此外,智能合约模块150N可以含有逻辑,所述逻辑使处理器150A根据智能合约来基于事件起始响应。这可以包括向节点计算机发送生成用于更新记录数据库的数据包的指令。
返回参考图1,如上文所提及,第二节点计算机145可以通过创建并提交具有新交互数据的新数据包来参与记录网络,以便代表一个或多个用户更新记录。另外,第二节点计算机145可以创建智能合约并将其提交到记录网络,使得其它节点可以相信将创建未来数据包。
图3中示出根据本发明的一些实施例的第二节点计算机145的实例。第二节点计算机145包括处理器145A、网络接口145B、标识符数据库145C、密钥数据库145E,以及计算机可读介质145F。
标识符数据库145C可以存储关于第二节点计算机的标识符的信息,例如地址标识符和一个或多个类别标识符。标识符数据库145C还可以包括关于一个或多个用户的信息,例如企业标识符、相关联的类别类型和/或用户账户。
密钥数据库145E可以存储加密密钥。例如,密钥数据库145E可以包括与第二节点计算机145相关联的私钥,以及与管理节点计算机150相关联的公钥。在一些实施例中,密钥数据库145E可以呈硬件安全模块(HSM)的形式。
计算机可读介质145F可以包括登记模块145G、用户登记模块145K、数据包模块145L、节点查找模块145M、价值分析模块145N、签名模块145P、记录提交模块145Q、智能合约模块145R、验证模块145T,以及任何其它合适的软件模块。计算机可读介质145F还可以包括可由处理器145A执行以用于实施如下方法的代码,所述方法包括:生成指示一组有序交互将响应于一组有序事件而发生的智能合约;响应于所述一组有序事件中的第一事件,生成所述一组有序交互中的第一交互的第一数据包,其中智能合约指示第一交互将响应于第一事件而发生;向管理节点计算机传输第一数据包,其中管理节点计算机生成区块链的第一区块,第一区块包括第一数据包;响应于所述一组有序事件中的第二事件,生成所述一组有序交互中的第二交互的第二数据包,其中智能合约指示第二交互将响应于第二事件而发生;以及向管理节点计算机传输第二数据包,其中管理节点计算机创建区块链的第二区块,第二区块包括第二数据包。
登记模块145G可以包括使处理器145A向管理节点计算机150登记参与记录网络的代码。例如,登记模块145G可以含有逻辑,所述逻辑使处理器145A发送包括关于第二节点的信息的登记请求消息,例如地址、银行标识符、结算账户和/或任何其它合适的信息。登记模块145G还包括从管理节点计算机150接收并存储地址标识符、管理节点公钥、第二节点私钥、一个或多个类别标识符以及任何其它合适的登记信息的指令。
用户登记模块145K可以包括使处理器145A便于登记终端用户的代码。例如,用户登记模块145K可以含有逻辑,所述逻辑使处理器145A向管理节点计算机150提供用户信息(例如,姓名、住宅和/或企业地址、出生日期、电话号码、账号、账户用户名、账户密码、电子邮件地址、政府颁发的标识号,如驾照号码、护照号码或社会保障号码等)。第二节点计算机145还可以从管理节点计算机150接收并存储第二用户计算机130的企业标识符,并向第二用户计算机130提供企业标识符。
数据包模块145L可以包括使处理器145A生成新的数据包的代码。例如,数据包模块145L可以含有逻辑,所述逻辑使处理器145A从第二用户计算机130和/或管理节点计算机150接收指令,并基于指令创建交互的数据包。数据包可以包括将新记录输入到分类账中的任何合适信息。在支付交易的实例中,数据包可以包括关于发送账户、接收账户、发送货币类别类型、接收货币类别类型、货币兑换率和/或任何其它合适信息的信息。
节点查找模块145M可以包括使处理器145A基于用户而标识节点的代码。例如,节点查找模块145M可以含有逻辑,所述逻辑使处理器145A基于第三用户计算机133被指示为交易接收方而标识第三节点计算机123。例如,可以基于包括于第三用户的企业标识符中的字符子集标识第三节点的地址标识符,或地址标识符可以与数据库(例如,在管理节点计算机150处访问的数据库)中的第三用户的企业标识符相关联。节点查找模块145M还可以包括向新数据包添加标识出的地址标识符的指令。
价值分析模块145N可以包括使处理器145A确定交互的价值的代码。例如,价值分析模块145N可以含有逻辑,所述逻辑使处理器145A确定将从第二用户收取以便向第三用户交付呈第二货币形式的第二金额的呈第一货币形式的第一金额。此确定可以包括查找当前汇率并计算转账费用(例如,当前汇率和转账费用均可以由管理节点计算机150提供)。以第一货币借记的金额、关于以第二货币贷记的金额的信息、货币兑换率和/或评估费用可以包括在新数据包中。
签名模块145P可以包括使处理器145A创建数字签名的代码。例如,签名模块145P可以含有逻辑,所述逻辑使处理器145A将私钥和数学算法应用到数据包,使得生成所述数据包的数字签名。第二节点计算机的数字签名可以充当证明它确实是创建并提交数据包的第二节点计算机145的证据。
记录提交模块145Q可以包括使处理器145A提交具有新交互的新数据包以供记录的代码。例如,记录提交模块145Q可以含有逻辑,所述逻辑使处理器145A向管理节点计算机150发送新数据包、相关联的数字签名和/或任何其它合适的信息。
智能合约模块145R可以包括使处理器145A生成智能合约的代码。智能合约可以包括关于一系列有序事件和一系列有序响应(例如,交互)的信息。智能合约模块145R还可以含有逻辑,所述逻辑使处理器145A与相关联于智能合约的其它方(例如,第一节点计算机165)通信,以达成关于智能合约细节的共识、以数字方式签署智能合约并将智能合约传输到中央管理员。在一些实施例中,智能合约模块145R可以包括使处理器145A执行与新的智能合约相关联的任务的代码,例如基于智能合约中定义的支付来保留账号资金。
除了创建并发送数据包(例如,以用于将支付发送到第三节点计算机)之外,第二节点计算机145还可能够验证由其它节点提交的数据包的真实性。例如,第一节点计算机165可以向管理节点计算机150提交数据包(例如,以用于将支付发送到第二节点计算机),且第二节点计算机145可以验证数据包是真实的。
例如,计算机可读介质可以包括验证模块145T,其可以包括使处理器145A验证新数据包的代码。第二节点计算机145可以一种或多种方式验证新数据包是真实的。例如,第二节点计算机145可以针对所述数据包,验证发送节点计算机的数字签名和管理节点计算机的签名均为真实的(例如,使用其相应公钥)。在一些实施例中,第二节点计算机145可以通过访问中心记录(例如,区块链记录),并确认交互和/或数据包已被添加到记录来验证交互和/或数据包的真实性。第二节点计算机145还可以向第二用户计算机130告知数据包中的新交互数据。
在一些实施例中,第二节点计算机145可以向用户提供与记录网络通信以外的额外服务。例如,第二节点计算机145可以是与金融机构、医院、政府机构、学术机构、移动电话服务提供商或任何其它合适的服务提供商相关联的计算机。因此,在一些实施例中,第二节点计算机145可以代表用户维护账户。账户可以取决于服务提供商的类型而存储标识信息、医疗记录、学术记录、财务信息或任何其它合适的细节。
在第二节点计算机145与金融机构相关联的实施例中,第二节点计算机145可以代表用户存储价值。第二节点计算机145还可能够代表用户提供价值(例如,提供支付)和/或接收价值(例如,接收支付)。金融机构的实例是发行方,其通常可以指为用户发行和维护账户(例如,银行账户)的企业实体(例如,银行)。金融机构的另一实例是收单方,其通常可以是与特定资源提供商或其它实体具有业务关系的企业实体(例如,商业银行)。一些实体可以执行发行方和收单方两者的功能。一些实施例可以涵盖此类单实体发行方-收单方。
在一些实施例中,当第一节点计算机165(或其它节点)向第二节点计算机145发送用于支付的数据包时,第二节点计算机145可能具有将交付承诺价值的高信任水平。例如,由于两个有效的数字签名、因为交互数据包括于区块链记录中、因为数据包包括若干相关联的标识符(例如,类别标识符和/或地址标识符)和/或由于任何其它合适的证据,第二节点计算机145可以确保所述价值。结果,第二节点计算机145可以使在所接收数据包中指示的价值在第二用户的账户中立即可用(例如,可取出),即使所述价值尚未结算和接收也如此。另外,由于管理节点可以是大型的、受信任中央实体,因此第二节点可以在管理节点中具有高信任水平。
在一些实施例中,第二节点计算机145可以表示多个相关联的计算机。例如,上文对于网络参与所描述的功能性和与银行服务相关联的功能性可以在若干协作计算机当中划分。
返回参考图1,如上文所提及,其它节点计算机(例如,第一节点计算机165、第三节点计算机123、第四节点计算机124、第五节点计算机125、第六节点计算机126、第七节点计算机127、第八节点计算机128、第九节点计算机129)可以参与记录网络。例如,每一节点计算机都可以登记到记录网络中,每一节点计算机都可以与唯一地址标识符相关联,且每一节点计算机都可以与不同的私钥相关联。类似地,每一用户(对于每一用户计算机)都可以被登记并与唯一企业标识符相关联。
在一些实施例中,其它节点计算机中的一个或多个可以包括上文关于第二节点计算机145所描述的功能性中的一些或全部。例如,节点计算机中的一个或多个可以被配置成代表相关联的用户计算机接收关于新交互的信息(例如,经由数据包)。另外,节点计算机中的一个或多个可以代表相关联的用户计算机向记录网络提交具有新交互数据的数据包。此外,每一节点计算机都可以使用私钥以数字方式签署消息。
类似于第二节点计算机145,其它节点计算机可以各自与不同的银行或其它合适的服务提供商相关联。结果,每一节点计算机可以代管用户账户,并且可以代表用户存储并接收价值,以及代表用户发送价值。
用户可以是个人、企业、组织的记录更新管理员或任何其它合适类型的用户。例如,第一用户可以是个人,且第二用户可以是参与交易的资源提供商(例如,商家),并且可以销售商品或服务或提供对商品或服务的访问。此外,第三用户到第九用户可以各自是促进国际运输的各方面的不同服务提供商,例如货运服务、海关、保险合同开发商、港口服务、存储服务或任何其它合适的实体。此类用户可以完成商品运输中涉及的任务。
图4中示出智能合约400的实例。如所示出,智能合约400可以包括智能合约标识符401,例如字母数字代码等。智能合约400可以包括关于一系列预定义触发事件403和一系列预定义响应404的信息。在一些实施例中,每一响应可以与特定触发事件配对,使得所述响应在触发事件之后发生。另外,智能合约400可以指定触发事件403和响应404的顺序402。如果某一触发事件无序地发生,则可能并不发生对应响应,和/或可能取消任何剩余响应。
本发明的实施例允许将具有有序事件的智能合约应用于任何合适的过程和/或记录保存情境。在此实例中,触发事件403包括一系列活动,每一活动由不同的参与者(例如,不同的用户或用户计算机)执行。并且,在此实例中,响应404包括生成一系列数据包。数据包可以包括用于输入到记录(例如,区块链记录)中的信息。
如下文更详细地描述,触发事件可以包括接收到活动完成的通知。例如,预定义参与者可以发送活动完成的通知消息,且如果通知消息附有与参与者(例如,参与者的计算机)相关联的数字签名,则所述通知消息可以被视为有效(且由此触发响应)。
如上文所提及,在一些实施例中,记录***可以利用区块链。区块链中的每一区块可以包括关于一个或多个交互的信息(例如,来自一个或多个数据包)。区块链分类账可能只能在检测到的情况下更改。这确保了对与交易相关的信息进行的任何篡改都会被察觉到,例如试图将交易价值重新分配给不当的实体。区块标头和包括交易信息(例如,和任何其它合适的信息)的区块主体可以一起构成一区块。
本发明的实施例通过引入有序的智能合约改进了创建和组织区块链的过程。智能合约可以有效地充当新区块链条目的网守,从而确保不当的(例如,无序的)记录不会被输入区块链。这种预防措施很有用,因为一旦将数据输入到区块链中,通常就无法删除它。
可以关于图5A到5G来描述根据本发明的实施例的方法500。还参考其它附图中的一些要素。在本发明的实施例中,可以按顺序或以任何合适的顺序执行方法500中所示的步骤。在一些实施例中,所述步骤中的一个或多个可以是任选的。
下文描述的各种消息可以使用任何合适形式的通信。在一些实施例中,请求或响应可以呈电子消息格式,例如电子邮件、短消息服务(SMS)消息、多介质消息服务(MMS)消息、超文本传输协议(HTTP)请求消息、传输控制协议(TCP)包、网页表单提交。请求或响应可以指向任何合适的位置,例如电子邮件地址、电话号码、互联网协议(IP)地址或统一资源定位符(URL)。在一些实施例中,请求或响应可以包括例如电子邮件消息和SMS消息两者的不同消息类型的混合。
第一用户(例如,买方)和第二用户(例如,供应商)可能同意交互。交互可以包括第一用户向第二用户提供支付(例如,1,500,000美元)以交换商品。第一用户和第二用户可以位于不同位置(例如,不同国家)中,且因此第二用户可以安排将商品交付给第一用户。
商品交付过程可能涉及数个服务提供商,例如国内交付服务、国际运输服务、国外交付服务、保险合同准备服务、国内外海关检查服务等。这些服务提供商中的每一个可以执行其服务以从第二用户交换支付,且因此可能需要数个额外交互(例如,第二用户与每一服务提供商之间)才能完成第二用户与第一用户之间的原始交互。
在一些实施例中,第二用户(例如,经由第二用户计算机130)可以确切地确定将使用哪些服务提供商来交付商品,以及它们将执行其服务的顺序。第二用户还可以与每一服务提供商就交换其服务将要提供的支付金额和货币类型达成协议(例如,第一服务提供商为人民币35000、第二服务提供商为人民币12000、第三服务提供商为人民币57000、第四服务提供商为3400美元、第五服务提供商为6850美元等)。
接着,第二用户可以(例如,经由第二用户计算机130)向第二节点计算机145提供支付和运输信息中的一些或全部,使得第二节点计算机145可以代表第二用户协调支付过程。这可以包括向第二节点计算机145提供每一用户(例如,第一用户和每一服务提供商)的企业标识符。
接着,第二节点计算机145可以确定与每一企业标识符相关联的节点计算机(例如,节点计算机的地址标识符)。例如,第一节点计算机165可以与第一用户的企业标识符相关联、第三节点计算机123可以与一个服务提供商的企业标识符相关联、第四节点计算机124可以与另一服务提供商的企业标识符相关联等。在一些实施例中,第二节点计算机145可以与管理节点计算机150通信,以查询哪些节点与每一企业标识符相关联。在一些实施例中,第二节点计算机145可以使用本地存储的查找表来标识与每一企业标识符相关联的节点。在其它实施例中,第二节点计算机145可以解析每一企业标识符以确定每一节点计算机的地址标识符。
在已获得关于每一交易(例如,每一支付提供方、每一支付接收方、每一支付金额)、将执行以交换每一支付的每一运输服务和与之通信的节点计算机的信息的情况下,第二节点计算机145可以继续建立管理整个过程的智能合约。
在步骤S101处,第二节点计算机145可以生成智能合约。智能合约可以指定预期发生的一组有序事件(例如,运输相关服务)。智能合约还可以包括指定将响应于所述一组有序事件而发生的一组有序交互的信息。在此情况下,每一交互可以是发送账户与接收账户之间的支付交易。每一不同交易可以指示不同的接收账户。智能合约可以指定每一交互应仅在其对应事件按正确顺序发生时才触发。
虽然可以基于有序事件系列和/或有序交互系列来标识智能合约,但在一些实施例中,第二节点计算机145可以将智能合约标识符(例如,字母数字值)分配给智能合约。在其它实施例中,管理节点计算机150可以在稍后的时间点将智能合约标识符分配给智能合约。
另外,第二节点计算机145可以对第二用户账户进行保留。例如,可以计算出将由第二用户支付的总金额。这可以通过求和第二用户为支付提供方的所有支付的金额来完成。第二节点计算机145可以验证第二用户具有充分的可用资金来完成所有这些支付,且可以进一步保留每一支付所需的资金,使得在进行支付时资金是可用的。
在步骤S102处,第二节点计算机145可以生成智能合约的数字签名。可以使用与第二节点计算机145相关联的私钥来创建数字签名。在一些实施例中,数字签名可以充当第二节点计算机145批准智能合约,和/或第二节点计算机145已保留第二用户承诺的每一支付所需的资金的指示。
在步骤S103处,第二节点计算机145可以将智能合约和/或数字签名传输到管理节点计算机150。结果,管理节点计算机150可以接收智能合约,所述智能合约指示一组有序交互将响应于一组有序事件而发生。
在步骤S104处,管理节点计算机150可以将智能合约的副本传输到第一节点计算机165,以获得第一节点计算机对智能合约的批准。例如,管理节点计算机150可以分析智能合约,以确定哪些实体被指示为负责发送一个或多个支付。接着,管理节点计算机150可以从每一支付发送方寻求确认。在此情况下,支付发送方包括第二节点计算机145(代表第二用户)和第一节点计算机165(代表第一用户)。由于第二节点计算机145可能已提供数字签名,因此管理节点计算机150可能仅从第一节点计算机165寻求额外数字签名。
另外,管理节点计算机150可以例如使用与第二节点计算机145相关联的公钥来验证第二节点计算机的数字签名。此外,管理节点计算机150可以以数字方式存储智能合约和/或第一节点计算机的数字签名(例如,在智能合约数据库中)。
在步骤S105处,第一节点计算机165可以确定是否同意智能合约。例如,第一节点计算机165可以向第一用户告知(例如,经由第一用户计算机110)将从第一用户的账户提取的支付、运输细节(例如,将提供的商品和交付时间线),以及由智能合约指示的任何其它合适的细节。
如果第一用户批准了智能合约的细节,则第一节点计算机165可以例如使用与第一节点计算机165相关联的私钥来生成智能合约的数字签名。另外,第一节点计算机165可以在第一用户的账户上保留向第二用户支付商品的金额(以及第一用户负责的任何其它支付金额)。
接着,第一节点计算机165可以向管理节点计算机150传输数字签名,连同指示第一节点计算机165批准智能合约的消息。
管理节点计算机150可以例如使用与第一节点计算机165相关联的公钥来验证第一节点计算机的数字签名。此外,管理节点计算机150可以以数字方式存储第一节点计算机的数字签名(例如,连同智能合约和第二节点计算机的数字签名)。在已从由智能合约指示的两支付发送方获得批准和/或已确认支付金额可用且保留所述支付金额的情况下,管理节点计算机150可以考虑验证并操作智能合约。
在步骤S106处,管理节点计算机150可以向每一节点计算机传输关于新创建的智能合约的通知。例如,管理节点计算机150可以向第三节点计算机123传输消息,所述消息告知第三节点计算机123如果第三用户执行特定任务,则第二用户将向第三用户提供(特定金额的)支付。第三用户可以是国内交付服务,且任务可以是从第二用户仓库收集商品并将商品交付到运输港。第三节点计算机123继而可以将此信息提供给第三用户计算机133。可以将类似消息发送给每一其它节点计算机和用户计算机。结果,可以向每一用户告知其相应的运输相关任务,且可以确保其在完成任务时将接收到支付。
在一些实施例中,仅向每一节点计算机和用户计算机告知与其相关联的交互和/或事件。例如,第三用户计算机133可能未接收到关于由第四用户计算机134所接收的支付或由所述第四用户计算机执行的运输任务的任何信息。另外,在一些实施例中,节点计算机可能够与管理节点计算机150通信,以查看生效的智能合约(的所述节点计算机部分)。
在步骤S107处,第二用户(例如,经由第二用户计算机130)可以响应于智能合约的建立而起始过程。例如,第二用户可以包装商品,并将商品提供给第三用户(例如,国内交付服务)。这可以起始交付过程,并使有序事件系列生效。
在步骤S108处,第三用户可以进行第一事件。例如,第三用户可以执行第一动作或任务,例如将商品从第二用户仓库输送到运输港。
在完成第一事件之后,第三用户可以(例如,经由第三用户计算机133)报告任务已完成。第三用户计算机133可以将事件完成消息传输到第三节点计算机123。
在步骤S109处,第三节点计算机123可以生成指示第一事件已发生(例如,任务完成)的事件通知消息。所述消息可以包括描述事件和事件何时完成的信息,以及事件完成的任何合适证据(例如,收据、照片等)。消息可以另外包括智能合约标识符。
在一些实施例中,如由智能合约所指示,消息还可以包括关于将响应于第一事件而发生的第一交互的信息。以此方式,通过提供关于支付金额、支付提供方(例如,第二用户)和支付接收方(例如,第三用户)的信息,事件完成通知也可以或实际上充当支付请求消息。
另外,第三节点计算机123可以例如使用与第三节点计算机123相关联的私钥来生成事件通知消息的数字签名。此外,第三节点计算机123可以将事件通知消息和/或数字签名传输到管理节点计算机150。
在一些实施例中,为了确保仅在第一事件已发生时才发送事件完成消息(和事件通知消息),可以响应于技术触发事项而发送事件完成消息。例如,可以在第三用户(例如,服务人员或交付卡车)到达交付目的地(例如,运输港)时发送事件完成消息。可以通过装备有位置跟踪技术(例如,GPS)的移动装置、车辆或其它装置来跟踪和确定第三用户的位置。第三用户移动装置可以与第三用户计算机133、第三节点计算机123和/或管理节点计算机150通信,以便传输当前位置数据。结果,在第三用户到达交付目的地之前,可能并不传输事件完成。
在其它实施例中,代替第三用户计算机133和第三节点计算机123,第四用户计算机134和/或第四节点计算机124可以报告第一事件已完成。这样,仅当第四用户可以验证第三用户完成其任务时(例如,第三用户向第四用户提供商品)才报告事件完成。
管理节点计算机150可以接收事件通知消息,且接着可以标识与所述消息相关联的智能合约(例如,从存储在智能合约数据库中的其它智能合约当中)。例如,可以基于通知消息中包括的智能合约标识符,或基于通知消息中描述的事件和/或交互来标识存储的智能合约。
在步骤S110处,管理节点计算机150基于智能合约验证事件通知消息。例如,管理节点计算机150可以根据智能合约验证事件通知消息中报告的事件匹配下一预期事件。在第一事件的情况下,管理节点计算机150可以验证所报告的事件应该在智能合约的所述一组有序事件中首先发生(例如,在所有其它事件之前)。
管理节点计算机150还可以通过验证第三节点计算机的数字签名(例如,使用与第三节点计算机相关联的公钥)来验证第三节点计算机123正报告所述事件完成。
在一些实施例中,管理节点计算机150可能不认为由第三节点计算机123发送的事件完成通知是有效的,直到第四用户计算机134和/或第四节点计算机124确认其已从第三用户接收到商品和/或确认事件已完成为止。
一旦管理节点计算机150确定第一事件已发生,管理节点计算机150就可以将第一事件标记为完成。例如,可以将通知消息或其它完成指示连同智能合约存储在智能合约数据库中。
另外,管理节点计算机150可以响应于第一事件的完成而确定将发生的第一交互。这可以包括分析智能合约以标识与事件相关联的交互,和/或分析通知消息以标识所请求的交互。在此实例中,交互是第二用户向第三用户进行支付。由此,管理节点计算机150可以针对所述交互,标识负责发送支付的用户和节点计算机(例如,第二节点计算机145)。
在步骤S111处,管理节点计算机150可以生成记录指令消息,并将其传输到第二节点计算机145。在此情况下,记录指令可以是创建表示第一交互(例如,从第二节点到第三节点的支付)的数据包的指令,使得可以将数据包记录到交易分类账中。在一些实施例中,管理节点计算机150还可以或实际上向第二节点计算机145告知第一事件已发生,且第二节点计算机145可以基于智能合约确定执行哪个支付。
在步骤S112处,第二节点计算机145生成表示所述一组有序交互中的第一交互的数据包。可以对数据包进行格式化,使得可以将数据包并入到可能是区块链记录的交易分类账中。在此情况下,数据包可以包括详细描述支付交易的任何合适信息,例如约定的交易金额、货币类型、标识发送账户(例如,第二用户的账户)的信息、标识接收账户(例如,第三用户的账户)的信息、第二用户计算机的企业标识符、第三用户计算机的企业标识符、第二节点计算机的地址标识符和/或类别标识符、第三节点计算机的地址标识符和/或类别标识符,和/或任何其它合适的信息。
在一些实施例中,数据包还可以包括智能合约标识符,使得稍后可以使用智能合约标识符来标识数据包(例如,在区块链记录内)。
另外,第二节点计算机145可以生成数据包的第一数字签名。例如,第二节点计算机145可以使用数据包中的一些或全部信息来生成单向散列,且接着使用私钥对散列进行加密。散列数据值和/或数字签名可以被附加到数据包,由此使得数据包的数据篡改显而易见。
在步骤S113处,第二节点计算机145将第一交互的数据包和第一数字签名传输到管理节点计算机150,以用于验证并输入到区块链记录中。
在步骤S114处,管理节点计算机150可以验证第二节点计算机的数字签名和/或散列值。例如,管理节点计算机150可以执行散列值的检查和程序。这可以包括基于数据包生成第二散列值以及检查第二散列值匹配接收到的散列值。管理节点计算机150可以使用第二节点计算机的公钥来验证数字签名。如果散列或数字签名无法被验证,则管理节点计算机150可以拒绝数据包。
管理节点计算机150还可以验证第二节点计算机的类别标识符和地址标识符都是有效的、与第二节点计算机145相关联且被适当地使用。如果这些和任何其它合适的验证步骤被成功完成,则管理节点计算机150可以认为数据包有效,且管理节点计算机150可以生成数据包的第二数字签名(例如,使用与管理节点计算机150相关联的密钥)。
在步骤S115处,管理节点计算机150可以将关于第一交互(和/或整个数据包)的信息添加到记录。例如,管理节点计算机150可以创建区块链的新区块,所述区块包括第一交互的数据包和数字签名。所述区块还可以包括在类似时间范围内接收到的其它不相关数据包(例如,所述区块可以包括在10分钟周期内接收到的所有数据包)。
在步骤S116处,管理节点计算机150可以将数据包的副本传输到第三节点计算机123(例如,向第三节点计算机123告知交易)。管理节点计算机150还可以使第三节点计算机123可以访问区块链记录。
在步骤S117处,第三节点计算机123可以验证数据包的真实性。例如,第三节点计算机123可以确认数据包已被输入到区块链记录中(例如,通过访问管理节点计算机150处的区块链记录)。第三节点计算机123还可以验证数据包包括两个数字签名;一个来自第二节点计算机145,且一个来自管理节点计算机150。第三节点计算机123还可以验证数字签名(例如,使用适当的公钥)。所有这些验证组合起来可以产生对数据包真实性的高信任水平,以及对将完成所承诺的交互的高信任水平。
另外,第三节点计算机123可以基于数据包来更新其本地记录。例如,第三节点计算机123可以将承诺的交易价值(例如,如数据包中所指示)贷记到第三用户的银行账户。
如上文在步骤S108到S117中所描述的、用于完成事件并响应于事件而执行交互(例如,支付)的过程可以在步骤S118到S127中以类似的方式针对另一事件和交互重复进行。例如,当第三用户完成第一事件时(在步骤S108中),第三用户可能已将商品包装提供给第四用户。第四用户可能在智能合约中被标识为将引发涉及商品的第二事件的服务提供商,且智能合约还可以将第二事件标识为第二交互的触发事项。
例如,在可以类似于步骤S108的步骤S118处,第四用户可以进行第二事件。例如,第四用户可以是国内海关检查员,且第四用户可以执行检查商品和清算出口商品的任务。第四用户也可以(例如,经由第四用户计算机134)向第四节点计算机124报告任务已完成。在一些情况下,第二事件可能在第一事件的数小时或数天之后发生。
在可以类似于步骤S109的步骤S119处,第四节点计算机124可以生成指示第二事件已发生(例如,第二任务完成)的事件通知消息,以及生成所述消息的数字签名(例如,使用与第四节点计算机124相关联的私钥)。第四节点计算机124可以将事件通知消息和/或数字签名传输到管理节点计算机150。
在可以类似于步骤S110的步骤S120处,管理节点计算机150基于智能合约来验证事件通知消息。例如,管理节点计算机150可以根据智能合约验证事件通知消息中报告的事件是下一预期事件。在第二事件的情况下,管理节点计算机150可以验证所报告的事件应该在智能合约的所述一组有序事件中第二个发生(例如,在第一事件之后且在所有其它事件之前)。这可以包括验证之前的事件(在此情况下,仅为第一事件)已被标记为完成。
管理节点计算机150还可以验证第四节点计算机的数字签名(例如,使用与第四节点计算机相关联的公钥),且管理节点计算机150可以将第二事件标记为完成。
另外,管理节点计算机150可以响应于第二事件的完成而确定将发生的第二交互。在此实例中,交互是第二用户向第四用户进行支付。
在可以类似于步骤S111的步骤S121处,管理节点计算机150可以生成记录指令消息,并将其传输到第二节点计算机145。在此情况下,记录指令可以是创建表示第二交互(例如,从第二节点到第四节点的支付)的数据包的指令,使得可以将数据包记录到交易分类账中。
在可以类似于步骤S112的步骤S122处,第二节点计算机145生成表示所述一组有序交互中的第二交互的第二数据包。在此情况下,第二数据包可以包括详细描述支付交易的任何合适信息,例如约定的交易金额、货币类型、标识发送账户(例如,第二用户的账户)的信息、标识接收账户(例如,第四用户的账户)的信息、第二用户计算机的企业标识符、第四用户计算机的企业标识符、第二节点计算机的地址标识符和/或类别标识符、第四节点计算机的地址标识符和/或类别标识符,和/或任何其它合适的信息。另外,第二节点计算机145可以生成第二数据包的数字签名。
在可以类似于步骤S113的步骤S123处,第二节点计算机145将第二交互的第二数据包和随附的数字签名传输到管理节点计算机150,以用于验证并输入到区块链记录中。
在可以类似于步骤S114的步骤S124处,管理节点计算机150可以验证第二节点计算机的数字签名和/或散列值。如果此步骤和任何其它合适的验证步骤成功完成,则管理节点计算机150可以生成第二数据包的第二数字签名。
在可以类似于步骤S115的步骤S125处,管理节点计算机150可以将关于第二交互(和/或整个数据包)的信息添加到记录。例如,管理节点计算机150可以创建区块链的新区块,所述区块包括第二交互的第二数据包和相关联的数字签名。所述区块还可以包括在类似时间范围内接收到的其它不相关数据包(例如,用于其它不相关的运输过程)(例如,所述区块可以包括在10分钟周期内接收到的所有数据包)。在步骤S115与S125之间经过的时间期间可能已创建了额外区块。结果,区块链可以在步骤S115中创建的区块与步骤S125中创建的区块之间包括多个中间区块。
在可以类似于步骤S116的步骤S126处,管理节点计算机150可以将数据包的副本传输到第四节点计算机124。
在可以类似于步骤S117的步骤S127处,第四节点计算机124可以验证数据包的真实性。另外,第四节点计算机124可以基于数据包来更新其本地记录。例如,第四节点计算机124可以将承诺的交易价值(例如,如第二数据包中所指示)贷记到第四用户的银行账户。
因此,两个单独的事件和两个单独的对应交互可以按照智能合约中预定义的那样发生。此事件和交互过程(如步骤S108到S117中针对第一事件和第一交互所描述,和步骤S118到S127中针对第二事件和第二交互再次描述)可以针对智能合约中指定的每一事件-交互对重复进行。
例如,运输过程可能涉及额外的输送分段、额外的海关检查、创建保险单的步骤等,且这些额外任务中的每一个都可以由额外的服务提供商执行。图1示出七个此类服务提供商(由第三用户计算机133到第九用户计算机139表示),但可能存在任何合适数目个服务提供商和对应的智能合约条目。因此,对于额外的服务提供商,可能存在事件和交互过程的另外一个、三个、五个或更多个迭代(例如,如上文针对步骤S108到S117所描述)。
最后的运输事件可能是将商品交付给第一用户(例如,第一用户仓库)。这可以触发第二用户进行最后支付,所述支付可以被发送到最终交付服务。另外,第二节点计算机145可以确定(或被通知)商品已成功交付。结果,第二用户可能已有效地完成将商品包装发送给第一用户的原始任务。因此,除了最后交付触发第二用户进行最后支付之外,还可以触发由第一用户(例如,商品的买方)向第二用户(例如,商品的供应商)发送最终支付。
在可以类似于步骤S109的步骤S128处,第二节点计算机145可以生成指示最终事件已发生(例如,运输过程完成)的事件通知消息,以及生成所述消息的数字签名。第二节点计算机145可以将事件通知消息和/或数字签名传输到管理节点计算机150。
在可以类似于步骤S110的步骤S129处,管理节点计算机150基于智能合约来验证事件通知消息。例如,管理节点计算机150可以根据智能合约验证事件通知消息中报告的事件是下一预期事件。在最终事件的情况下,管理节点计算机150可以验证所有事件均已完成,且智能合约指示当所有事件都已确认完成时应进行额外交互(例如,除了可能已针对最后服务提供商进行的交互之外)。
另外,管理节点计算机150可以确定响应于最终(例如,第三或更后的)事件的完成将发生的最终(例如,第三或更后的)交互。在此情况下,交互是由第一用户向第二用户进行支付。
在可以类似于步骤S111的步骤S130处,管理节点计算机150可以生成记录指令消息,并将其传输到第二节点计算机145。在此实例中,记录指令可以是创建表示最终交互(例如,从第一节点到第二节点的支付)的数据包的指令,使得可以将数据包记录到交易分类账中。
在可以类似于步骤S112的步骤S131处,第一节点计算机165生成表示所述一组有序交互中的第三交互的最终(例如,第三或更后的)数据包。在此情况下,第三数据包可以包括详细描述支付交易的任何合适信息,例如约定的交易金额(例如,2,000,000美元)、货币类型、标识发送账户(例如,第一用户的账户)的信息、标识接收账户(例如,第二用户的账户)的信息、第一用户计算机的企业标识符、第二用户计算机的企业标识符、第一节点计算机的地址标识符和/或类别标识符、第二节点计算机的地址标识符和/或类别标识符,和/或任何其它合适的信息。另外,第一节点计算机165可以生成最终数据包的数字签名。
在可以类似于步骤S113的步骤S132处,第一节点计算机165将最终交互的最终数据包和随附的数字签名传输到管理节点计算机150,以用于验证并输入到区块链记录中。
在可以类似于步骤S114的步骤S133处,管理节点计算机150可以验证第一节点计算机的数字签名和/或散列值。如果此步骤和任何其它合适的验证步骤成功完成,则管理节点计算机150可以生成最终数据包的额外数字签名。
在可以类似于步骤S115的步骤S134处,管理节点计算机150可以将关于最终交互(和/或整个数据包)的信息添加到记录。例如,管理节点计算机150可以创建区块链的新区块,所述区块包括最终交互的最终数据包和相关联的数字签名。所述区块还可以包括在类似时间范围内接收到的其它不相关数据包(例如,所述区块可以包括在10分钟周期内接收到的所有数据包)。
在可以类似于步骤S116的步骤S135处,管理节点计算机150可以将数据包的副本传输到第二节点计算机145。
在可以类似于步骤S117的步骤S136处,第二节点计算机145可以验证数据包的真实性。另外,第二节点计算机145可以基于数据包来更新其本地记录。例如,第二节点计算机145将承诺的交易价值(例如,如第二数据包中所指示)贷记到第二用户的银行账户。
稍后,可以基于存储在区块链分类账中的数据包记录(例如,在步骤S115、S125和S134处),来采取步骤结算每一支付交易的交易金额(例如,在每对节点的结算账户之间)。在一些实施例中,可以在一天结束时进行批量结算,且可以在网络上进行多边结算。在一些实施例中,可以使用两个基本结算步骤来结算每一交易(例如,从发送方账户转移到中央银行账户,且接着从中央银行账户转移到接收方账户)。
因此,单个智能合约可以指导可以包括多个顺序事件,且包括响应于事件而创建表示多个顺序交互的多个记录条目的整个过程(例如,运输过程)。
本发明的一些实施例可以包括上文所描述方法的一些方面的额外或替代细节。例如,在步骤S104处,管理节点计算机150可以任选地将智能合约添加到区块链(例如,通过创建包括智能合约的新区块)。然而,其它实施例可能不会在区块链中存储智能合约,例如因为区块链可能仅用于存储交互数据。智能合约可能已充分可执行且可信,而无需将其添加到区块链(例如,基于控制智能合约和保留的账户价值的受信任中央管理员)。
另外,在一些实施例中,代替管理节点计算机150与第一节点计算机165通信以获得智能合约的数字签名(例如,在步骤S104处),第二节点计算机145可以出于所述目的与第一节点计算机165通信。例如,第二节点计算机145和第一节点计算机165可以通信以就智能合约的细节达成协议,第一节点计算机165可以向第二节点计算机145提供数字签名,且接着第二节点计算机145可以将智能合约和两数字签名传输到管理节点计算机150(例如,在步骤S103处)。
此外,在一些实施例中,如果第二节点计算机145已经由智能合约同意交易,则管理节点计算机150可以代表第二节点计算机145创建交易的数据包。因此,代替发送记录指令(例如,在步骤S111处),管理节点计算机150可以生成数据包并直接执行交易。
如上文所提及,实施例允许第一节点计算机165执行由第二节点计算机145执行的一些或全部功能。例如,第一节点计算机165可以代替第二节点计算机145生成智能合约,第一节点计算机165可以代替第二节点计算机145向其它节点计算机中的每一个提供支付等。术语“第一”和“第二”用于解释性目的,且可以以任何合适的方式进行切换或修改。
上文将方法500描述为用于向参与运输过程的服务提供商发送支付的方法。然而,本发明的实施例也可以应用于其它过程和其它类型的记录保存。例如,实施例可以应用于商品和服务的其它交易类型,和例如医疗环境和建筑环境的其它环境。本发明的实施例可以用于确保以正确的顺序执行医疗程序或处理中的步骤,确保以指定的顺序完成建筑项目或制造项目中的步骤,和/或确保执行任何其它合适的有序过程或***。
本发明的实施例具有数个优点。例如,在本发明的实施例中,智能合约可以指定将响应于多个触发事件而创建多个记录(例如,用于交互)。此外,智能合约可以指定事件和记录的顺序,且中央管理节点可以确保事件以正确的顺序发生。结果,新记录以预定义的顺序(例如,根据智能合约)被添加到区块链。这使得区块链能够以有序、有条理且逻辑的方式建立。这也使得查看者能够通过区块链跟踪顺序记录,由此实现查看已完成的过程。此智能合约应用对于区块链记录***尤其有用,因为在添加信息之后通常无法修改区块链,因此在添加信息之前对其进行过滤是有价值的。
本发明的实施例还有利地为每一参与节点计算机提供唯一的私钥。结果,由节点计算机提交的通知消息可以被数字签署且是可验证的。在一些实施例中,由来自节点计算机的事件通知触发智能合约,且数字签名增大了此事件触发过程的安全性和可靠性。
现将描述可以用于实施本文中所描述的实体或组件中的任一个的计算机***。计算机***中的子***经由***总线互连。额外子***包括可以耦合到显示器适配器的打印机、键盘、固定磁盘和监视器。***装置和可以耦合到输入/输出(I/O)控制器的I/O装置可以通过所属领域已知的任何数目个构件连接到计算机***,所述构件例如串行端口。例如,串行端口或外部接口可以用于将计算机设备连接到例如互联网的广域网、鼠标输入装置或扫描器。经由***总线的互连允许中央处理器与每一子***通信,且控制来自***存储器或固定磁盘的指令的执行,以及子***之间的信息交换。***存储器和/或固定磁盘可以体现计算机可读介质。
如所描述,本发明的服务可以涉及实施一个或多个功能、过程、操作或方法步骤。在一些实施例中,由于由适当编程的计算装置、微处理器、数据处理器等执行指令集或软件代码,可以实施功能、过程、操作或方法步骤。指令集或软件代码可以存储在由计算装置、微处理器等访问的存储器或其它形式的数据存储元件中。在其它实施例中,功能、过程、操作或方法步骤可以由固件或专用处理器、集成电路等实施。
本申请中描述的任何软件组件或功能可以实施为使用任何合适的计算机语言(例如Java、C++或Perl),使用例如传统的或面向对象的技术由处理器执行的软件代码。软件代码可以作为一系列指令或命令存储在计算机可读介质上,例如随机存取存储器(RAM)、只读存储器(ROM)、例如硬盘驱动器的磁介质或软盘、或例如CD-ROM的光学介质。任何此类计算机可读介质可以驻存在单个计算设备上或内,且可以存在于***或网络内的不同计算设备上或内。
虽然已详细描述并在附图中示出某些示范性实施例,但应理解,此类实施例仅仅是对本发明的说明,而不意图限制本发明,且本发明不限于示出和描述的特定布置和构造,因为所属领域的普通技术人员可以想到各种其它修改。
如本文中所使用,除非具体指示有相反的意思,否则使用“一(a/an)或“所述”意图表示“至少一个”。
Claims (16)
1.一种方法,其包括:
由管理节点计算机接收智能合约,所述智能合约指示将响应于一组有序事件而发生一组有序交互;
响应于所述一组有序事件中的第一事件,由所述管理节点计算机向第二节点计算机传输生成所述一组有序交互中的第一交互的第一数据包的指令,其中所述智能合约指示将响应于所述第一事件而发生所述第一交互;
由所述管理节点计算机从所述第二节点计算机接收所述第一交互的所述第一数据包;
由所述管理节点计算机生成区块链的第一区块,所述第一区块包括所述第一交互的所述第一数据包;
响应于所述一组有序事件中的第二事件,由所述管理节点计算机向所述第二节点计算机传输生成所述一组有序交互中的第二交互的第二数据包的指令,其中所述智能合约指示将响应于所述第二事件而发生所述第二交互;
由所述管理节点计算机从所述第二节点计算机接收所述第二交互的所述第二数据包;以及
由所述管理节点计算机生成所述区块链的第二区块,所述第二区块包括所述第一交互的所述第二数据包。
2.根据权利要求1所述的方法,其中所述智能合约指示所述一组有序交互中的每一交互对应于所述一组有序事件中的事件,且其中所述智能合约指示仅当对应事件以特定事件顺序发生时,每一交互将响应于所述对应事件而发生。
3.根据权利要求1所述的方法,其进一步包括:
由所述管理节点计算机接收所述第一事件已发生的通知;
由所述管理节点计算机基于所述智能合约验证所述第一事件应该在所述一组有序事件内首先发生;
由所述管理节点计算机基于所述智能合约确定将响应于所述第一事件而发生所述第一交互;
由所述管理节点计算机接收所述第二事件已发生的通知;
由所述管理节点计算机基于所述智能合约验证所述第二事件应该在所述一组有序事件内第二个发生;以及
由所述管理节点计算机基于所述智能合约确定将响应于所述第二事件而发生所述第二交互。
4.根据权利要求3所述的方法,其进一步包括:
响应于接收到所述第一事件已发生的所述通知,由所述管理节点计算机将所述第一事件标记为完成;以及
在传输生成所述第二交互的所述第二数据包的所述指令之前,由所述管理节点计算机验证所述第一事件被标记为完成。
5.根据权利要求3所述的方法,其中所述第一事件已发生的所述通知是从第三节点计算机接收到,其中所述第一交互是所述第二节点计算机与所述第三节点计算机之间的交互,其中所述第二事件已发生的所述通知是从第四节点计算机接收到,且其中所述第二交互是所述第二节点计算机与所述第四节点计算机之间的交互。
6.一种管理节点计算机,其包括:
处理器;以及
计算机可读介质,所述计算机可读介质包括能够由所述处理器执行以用于实施包括以下操作的方法的代码:
接收智能合约,所述智能合约指示将响应于一组有序事件而发生一组有序交互;
响应于所述一组有序事件中的第一事件,向第二节点计算机传输生成所述一组有序交互中的第一交互的第一数据包的指令,其中所述智能合约指示将响应于所述第一事件而发生所述第一交互;
从所述第二节点计算机接收所述第一交互的所述第一数据包;
生成区块链的第一区块,所述第一区块包括所述第一交互的所述第一数据包;
响应于所述一组有序事件中的第二事件,向所述第二节点计算机传输生成所述一组有序交互中的第二交互的第二数据包的指令,其中所述智能合约指示将响应于所述第二事件而发生所述第二交互;
从所述第二节点计算机接收所述第二交互的所述第二数据包;以及
生成所述区块链的第二区块,所述第二区块包括所述第一交互的所述第二数据包。
7.根据权利要求6所述的管理节点计算机,其中所述智能合约指示所述一组有序交互中的每一交互对应于所述一组有序事件中的事件,且其中所述智能合约指示仅当对应事件以特定事件顺序发生时,每一交互将响应于所述对应事件而发生。
8.根据权利要求6所述的管理节点计算机,所述方法进一步包括:
接收所述第一事件已发生的通知;
基于所述智能合约验证所述第一事件应该在所述一组有序事件内首先发生;
基于所述智能合约确定将响应于所述第一事件而发生所述第一交互;
接收所述第二事件已发生的通知;
基于所述智能合约验证所述第二事件应该在所述一组有序事件内第二个发生;以及
基于所述智能合约确定将响应于所述第二事件而发生所述第二交互。
9.根据权利要求8所述的管理节点计算机,其中所述第一事件已发生的所述通知是从第三节点计算机接收到,其中所述第二事件已发生的所述通知是从第四节点计算机接收到,且所述方法进一步包括:
从所述第三节点计算机接收所述第一事件已发生的所述通知的第一数字签名;
使用与所述第三节点计算机相关联的第一公钥验证所述第一数字签名,其中响应于验证所述第一数字签名而传输生成所述第一数据包的所述指令;
从所述第四节点计算机接收所述第二事件已发生的所述通知的第二数字签名;以及
使用与所述第四节点计算机相关联的第二公钥验证所述第二数字签名,其中响应于验证所述第二数字签名而传输生成所述第二数据包的所述指令。
10.根据权利要求6所述的管理节点计算机,所述方法进一步包括:
响应于接收到所述智能合约,向与所述一组有序交互相关联的每一计算机传输消息,所述消息指示如果发生某一事件,则将发生交互。
11.一种方法,其包括:
由第二节点计算机生成智能合约,所述智能合约指示将响应于一组有序事件而发生一组有序交互;
响应于所述一组有序事件中的第一事件,由所述第二节点计算机生成所述一组有序交互中的第一交互的第一数据包,其中所述智能合约指示将响应于所述第一事件而发生所述第一交互;
由所述第二节点计算机将所述第一数据包传输到管理节点计算机,其中所述管理节点计算机生成区块链的第一区块,所述第一区块包括所述第一数据包;
响应于所述一组有序事件中的第二事件,由所述第二节点计算机生成所述一组有序交互中的第二交互的第二数据包,其中所述智能合约指示将响应于所述第二事件而发生所述第二交互;以及
由所述第二节点计算机将所述第二数据包传输到所述管理节点计算机,其中所述管理节点计算机创建所述区块链的第二区块,所述第二区块包括所述第二数据包。
12.根据权利要求11所述的方法,其中所述智能合约指示所述一组有序交互中的每一交互对应于所述一组有序事件中的事件,且其中所述智能合约指示仅当对应事件以特定事件顺序发生时,每一交互将响应于所述对应事件而发生。
13.根据权利要求11所述的方法,其进一步包括:
由所述第二节点计算机向所述管理节点计算机传输所述智能合约,其中所述管理节点计算机向与所述一组有序交互相关联的每一计算机传输消息,所述消息指示如果发生某一事件,则将发生交互。
14.根据权利要求11所述的方法,其进一步包括:
由所述第二节点计算机从所述管理节点计算机接收生成所述第一交互的所述第一数据包的指令,其中所述管理节点计算机响应于所述第一事件已发生的通知而发送所述指令;以及
由所述第二节点计算机从所述管理节点计算机接收生成所述第二交互的所述第二数据包的指令,其中所述管理节点计算机响应于所述第二事件已发生的通知而发送所述指令。
15.根据权利要求11所述的方法,其进一步包括:
由所述第二节点计算机使用私钥生成所述智能合约的数字签名;以及
由所述第二节点计算机将所述智能合约的所述数字签名传输到所述管理节点计算机,其中所述管理节点计算机从第一节点计算机获得所述智能合约的额外数字签名,其中所述第一节点计算机使用额外私钥生成所述额外数字签名。
16.一种第二节点计算机,其包括:
处理器;以及
计算机可读介质,所述计算机可读介质包括代码,所述代码能够由所述处理器执行以实施根据权利要求11到15中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762519802P | 2017-06-14 | 2017-06-14 | |
US62/519,802 | 2017-06-14 | ||
PCT/US2018/037408 WO2018232036A1 (en) | 2017-06-14 | 2018-06-13 | Systems and methods for creating multiple records based on an ordered smart contract |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110741599A true CN110741599A (zh) | 2020-01-31 |
Family
ID=64660498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880039205.7A Pending CN110741599A (zh) | 2017-06-14 | 2018-06-13 | 基于有序智能合约创建多个记录的***和方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10762217B2 (zh) |
EP (1) | EP3639470A4 (zh) |
CN (1) | CN110741599A (zh) |
CA (1) | CA3064499A1 (zh) |
WO (1) | WO2018232036A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857892A (zh) * | 2020-09-22 | 2020-10-30 | 支付宝(杭州)信息技术有限公司 | 通过区块链进行业务处理的方法及装置 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11232466B2 (en) * | 2015-01-29 | 2022-01-25 | Affectomatics Ltd. | Recommendation for experiences based on measurements of affective response that are backed by assurances |
CN110832826B (zh) | 2017-06-30 | 2023-01-13 | 区块链控股有限公司 | 区块链网络中概率中继的流量控制的方法和*** |
US20190026672A1 (en) * | 2017-07-24 | 2019-01-24 | One Network Enterprises, Inc. | System and computer program for implementing an improved blockchain for use a value chain |
US10742399B2 (en) * | 2017-12-28 | 2020-08-11 | Intel Corporation | Context-aware image compression |
US20190333030A1 (en) * | 2018-04-30 | 2019-10-31 | Bank Of America Corporation | Blockchain-based digital token utilization |
US11374738B2 (en) * | 2018-06-18 | 2022-06-28 | Make Great Sales Limited | Methods and systems for generating, recording and retrieving digital transaction records |
GB201811263D0 (en) * | 2018-07-10 | 2018-08-29 | Netmaster Solutions Ltd | A method and system for managing digital using a blockchain |
CN109102299A (zh) * | 2018-08-01 | 2018-12-28 | 腾讯科技(深圳)有限公司 | 资源转移数据管理方法、装置及存储介质 |
US10917244B1 (en) * | 2018-08-23 | 2021-02-09 | CallFire, Inc. | Blockchain network communication management |
US10936552B2 (en) * | 2018-09-06 | 2021-03-02 | International Business Machines Corporation | Performing bilateral negotiations on a blockchain |
CN109327528B (zh) * | 2018-10-31 | 2020-10-20 | 创新先进技术有限公司 | 一种基于区块链的节点管理方法和装置 |
US11044074B2 (en) * | 2019-01-22 | 2021-06-22 | Mastercard International Incorporated | Method and system for state associated device identification for digital payments using blockchain technology |
CN110008720B (zh) * | 2019-03-19 | 2020-10-30 | 周口师范学院 | 基于联盟链的物联网动态数据溯源方法及装置 |
US11316841B2 (en) * | 2019-03-25 | 2022-04-26 | Micron Technology, Inc. | Secure communication between an intermediary device and a network |
JP6650157B1 (ja) * | 2019-05-08 | 2020-02-19 | 株式会社モールサービス | 情報管理システム、情報管理方法及び情報管理プログラム |
CN111736963B (zh) * | 2020-06-08 | 2022-10-11 | 中国科学院计算技术研究所 | 一种用于无主链多分片区块链的事务处理***及方法 |
US11606346B2 (en) | 2020-06-29 | 2023-03-14 | Rockwell Automation Technologies, Inc. | Method and apparatus for managing reception of secure data packets |
US11599649B2 (en) * | 2020-06-29 | 2023-03-07 | Rockwell Automation Technologies, Inc. | Method and apparatus for managing transmission of secure data packets |
US20230137574A1 (en) * | 2021-11-04 | 2023-05-04 | Visa International Service Association | System, method, and computer program product for processing an electronic payment transaction having a custom interchange rate |
US11775904B1 (en) * | 2023-03-02 | 2023-10-03 | Sybal Enterprises Inc. | System and method for managing digital governance in digital ecosystem |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150379510A1 (en) * | 2012-07-10 | 2015-12-31 | Stanley Benjamin Smith | Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain. |
US10853592B2 (en) * | 2015-02-13 | 2020-12-01 | Yoti Holding Limited | Digital identity system |
US20170011460A1 (en) | 2015-07-09 | 2017-01-12 | Ouisa, LLC | Systems and methods for trading, clearing and settling securities transactions using blockchain technology |
EP3329440A1 (en) | 2015-07-31 | 2018-06-06 | British Telecommunications public limited company | Controlled resource provisioning in distributed computing environments |
WO2017066431A1 (en) | 2015-10-13 | 2017-04-20 | TransActive Grid Inc. | Use of blockchain based distributed consensus control |
US20170132621A1 (en) | 2015-11-06 | 2017-05-11 | SWFL, Inc., d/b/a "Filament" | Systems and methods for autonomous device transacting |
US20170140408A1 (en) * | 2015-11-16 | 2017-05-18 | Bank Of America Corporation | Transparent self-managing rewards program using blockchain and smart contracts |
US9992028B2 (en) * | 2015-11-26 | 2018-06-05 | International Business Machines Corporation | System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger |
US20170178127A1 (en) * | 2015-12-18 | 2017-06-22 | International Business Machines Corporation | Proxy system mediated legacy transactions using multi-tenant transaction database |
US9849364B2 (en) * | 2016-02-02 | 2017-12-26 | Bao Tran | Smart device |
US10693658B2 (en) * | 2016-02-12 | 2020-06-23 | Visa International Service Association | Methods and systems for using digital signatures to create trusted digital asset transfers |
US10715531B2 (en) | 2016-02-12 | 2020-07-14 | Visa International Service Association | Network topology |
US10720232B2 (en) * | 2016-04-13 | 2020-07-21 | Accenture Global Solutions Limited | Distributed healthcare records management |
US11373183B2 (en) | 2016-05-06 | 2022-06-28 | Mastercard International Incorporated | Method and system for instantaneous payment using recorded guarantees |
US10067810B2 (en) * | 2016-07-28 | 2018-09-04 | Cisco Technology, Inc. | Performing transactions between application containers |
US10700861B2 (en) * | 2016-07-29 | 2020-06-30 | Workday, Inc. | System and method for generating a recovery key and managing credentials using a smart blockchain contract |
US20180123779A1 (en) * | 2016-11-01 | 2018-05-03 | Jiangang Zhang | Flexible Blockchain Smart-Contract Deployment |
EP3535659A4 (en) | 2016-11-03 | 2020-02-12 | Visa International Service Association | SYSTEM AND METHOD FOR CREATING A UNIVERSAL DATA SET |
WO2018094297A2 (en) * | 2016-11-19 | 2018-05-24 | COSTANZ, Mario A | System and method for interaction object reconciliation in a public ledger blockchain environment |
US20180165612A1 (en) * | 2016-12-09 | 2018-06-14 | Cognitive Scale, Inc. | Method for Providing Commerce-Related, Blockchain-Associated Cognitive Insights Using Blockchains |
FR3070077A1 (fr) * | 2017-08-09 | 2019-02-15 | Orange | Procede et serveur de certification d'un document electronique |
EP3740922A4 (en) | 2018-01-19 | 2021-03-17 | Visa International Service Association | EVENT COMMUNICATION AND VERIFICATION THROUGH A BLOCKCHAIN NETWORK |
CN112805694A (zh) * | 2018-08-30 | 2021-05-14 | 神经技术有限公司 | 用于改进的实施区块链的智能合约的***和方法 |
-
2018
- 2018-06-13 WO PCT/US2018/037408 patent/WO2018232036A1/en unknown
- 2018-06-13 EP EP18816544.3A patent/EP3639470A4/en active Pending
- 2018-06-13 US US16/618,776 patent/US10762217B2/en active Active
- 2018-06-13 CN CN201880039205.7A patent/CN110741599A/zh active Pending
- 2018-06-13 CA CA3064499A patent/CA3064499A1/en not_active Abandoned
-
2020
- 2020-07-14 US US16/928,832 patent/US11468441B2/en active Active
-
2022
- 2022-09-01 US US17/901,641 patent/US11734682B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857892A (zh) * | 2020-09-22 | 2020-10-30 | 支付宝(杭州)信息技术有限公司 | 通过区块链进行业务处理的方法及装置 |
US11381383B2 (en) | 2020-09-22 | 2022-07-05 | Alipay (Hangzhou) Information Technology Co., Ltd. | Methods and apparatuses for processing service using blockchain |
Also Published As
Publication number | Publication date |
---|---|
US20200134206A1 (en) | 2020-04-30 |
WO2018232036A1 (en) | 2018-12-20 |
RU2020100461A3 (zh) | 2022-01-24 |
EP3639470A1 (en) | 2020-04-22 |
US20220414653A1 (en) | 2022-12-29 |
US11468441B2 (en) | 2022-10-11 |
US11734682B2 (en) | 2023-08-22 |
CA3064499A1 (en) | 2018-12-20 |
US20200342120A1 (en) | 2020-10-29 |
US10762217B2 (en) | 2020-09-01 |
RU2020100461A (ru) | 2021-07-14 |
EP3639470A4 (en) | 2020-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110741599A (zh) | 基于有序智能合约创建多个记录的***和方法 | |
AU2022202133B2 (en) | Systems and methods for creating a universal record | |
CN110546939B (zh) | 用于记录表示多个交互的数据的***和方法 | |
CN108604344B (zh) | 用于使用数字签名创建可信数字资产转移的方法和*** | |
EP3676849B1 (en) | Layered recording networks | |
CN111727450A (zh) | 经由区块链网络进行的事件通信和验证 | |
RU2772232C2 (ru) | Системы и способы создания множества записей на основе упорядоченного смарт-контракта | |
US20240104620A1 (en) | Use of a distributed ledger system for monitoring goods deliveries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200131 |