经由区块链网络进行的事件通信和验证的制作方法

文档序号:22400434发布日期:2020-09-29 18:12阅读:106来源:国知局
经由区块链网络进行的事件通信和验证的制作方法

相关申请交叉引用

本申请是2018年1月19日提交的美国临时申请第62/619,679号的国际申请并要求其提交日的权益,所述临时申请出于所有目的以全文引用的方式并入本文中。



技术实现要素:

本发明的实施例提供用于经由多个链接的区块链记录条目跟踪和记录事件状态的系统和方法。例如,首次可以在区块链中记录事件提案或承诺,然后第二次可以在区块链中记录事件可完成的验证,然后第三次可以在区块链中记录事件完成。各个记录都可以链接到单个事件,例如经由事件标识符。

另外,实施例允许将验证系统并入区块链网络中,其中验证系统能够验证事件是否可以完成。因此,验证系统可以检测事件何时提出,可以分别基于事件信息验证事件是否可以完成,然后发布可完成事件的更新到区块链。

因此,实施例允许创建与事件相关的连续不可改变记录,使得可以通知相关方事件的状态以及事件将完成的可能性。

本发明的一个实施例涉及一种方法。所述方法包括从区块链网络中的计算机接收事件的第一数据包和与所述第一数据包相关联的第一数字签名。

第一数据包包括事件标识符和事件信息。所述方法还包括使用公钥验证第一数字签名,并且生成由验证系统存储的区块链的第一块。第一块包括第一数据包和第一数字签名。所述方法还包括基于事件信息验证事件是否可以完成,并响应于验证事件可以完成,生成事件的第二数据包并使用与验证系统相关联的私钥生成第二数据包的第二数字签名。第二数据包包括指示事件已被验证的事件标识符和信息。所述方法还包括生成区块链的第二块,并将所述第二数据包和所述第二数字签名传送到所述区块链网络中的一个或多个计算机。第二块包括第二数据包和第二数字签名。

本发明的另一实施例涉及一种被配置成执行上述方法的验证系统。

关于本发明的实施例的其它细节可见于具体实施方式和附图。

附图说明

图1示出根据本发明的实施例的系统的框图。

图2示出根据本发明的实施例的对等计算机的实例框图。

图3示出根据本发明的实施例的适配器计算机的实例框图。

图4示出根据本发明的实施例的区块链中的块的实例。

图5a到5g示出示出根据本发明的实施例的用于经由多个区块链记录条目验证事件并记录事件状态的方法的流程图。

图6示出示出根据本发明的实施例的用于预授权过程的方法的流程图。

图7示出现有系统的框图。

具体实施方式

本发明的实施例提供了用于验证事件是否可以在事件发生之前完成的系统和方法。实施例提供了事件处理网络,其经重新结构化以包括验证计算机,并向各方分发通信。

例如,验证实体(例如结算银行)的验证计算机可以并入事件处理网络中,以辅助事件处理。当某个事件(例如支付交易)首次向网络提出时,验证计算机可以接收有关事件的信息,并且可以确定事件是否可以按描述完成。例如,结算银行可以确定支付发送方是否在结算账户中拥有足够的资金来支持所提出的支付交易。然后,验证计算机可以通知网络事件是否已被验证为能够完成。

因此,可以通知网络中的参与者关于在事件实际发生之前所提出的事件可或将完成的几率。这为网络参与者(例如,支付接收方)提供保证,在过去,除非事件实际完成,否则无法保证事件,这使得网络参与者能够采取进一步的措施,如同事件已完成那样。

本发明的实施例还允许网络参与者经由区块链网络进行通信连接。因此,可经由区块链记录更新和共识过程在整个网络中分发事件处理通信。这简化了通信和效率,因为可以将不可改变的记录和分布式记录作为分发事件信息的副产品来创建。

本发明的实施例允许在分布式区块链记录中记录事件状态的变化或有关事件的任何合适信息。可以由包括唯一事件标识符将各种事件相关记录链接到同一事件。因此,可以快速通知网络参与者新事件提案、事件验证、事件完成以及事件处理的任何其它合适方面。

国际申请us2017/046364、国际申请us2017/059744和国际申请us2018/027455中描述了可以包括于本发明的实施例中的额外特征,所述申请中的每一个出于所有目的以全文引用的方式并入本文中。

在论述本发明的特定实施例之前,可详细地描述一些术语。

“事件”可以包括发生的事情。事件实例包括正在执行的服务(例如,施工项目或医疗程序)、正在发生的价值转移(例如,支付交易或访问权限转移)以及新成就(例如,学术成就)。

事件可以由“事件信息”描述。事件信息可以包括事件类型(例如,交易、新成就、服务、会议、表演等);事件时间(例如,日期、开始时间、结束时间、星期几、交易时间等);事件地点;与事件相关联的人员或组织;交易金额或任何其它合适的信息。可以由在数据库中存储事件信息来记录事件。

“事件标识符”可以是用于标识事件的字符序列。例如,事件标识符可以包括字母数字代码、图形表示或可以表示事件的任何合适符号。

“数据包”可以是数字信息的集合。例如,数据包可以是以二进制格式存在的信息。在一些实施例中,数据包可以包括关于记录中可描述的任何内容(例如事件)的信息。例如,数据包可以包括任何合适类型的数字事件信息和事件状态更新信息,例如交易数据、活动数据、所有权数据、验证数据、事件完成数据、产品状态数据和更新数据等。

术语“对等体”可以是连接点。在一些实施例中,对等体可以是物理电子装置,其能够创建、接收、验证、存储或传送数据。在其它实施例中,对等体可以是计算装置上的软件模块,所述软件模块是通信网络中的连接点。在一些实施例中,对等体可以是记录保存网络内的计算装置。对等体可以接收数据包、验证数字签名、向区块链记录添加数据包、从适配器或其它对等体接收数据包、验证数据包和/或执行任何其它合适的功能。不同类型的对等体可能够执行记录网络内的不同功能集合。在一些实施例中,对等体可与金融机构计算机(例如银行)、支付处理器计算机、验证系统、第三方计算机或任何其它合适的实体相关联和/或由它们操作。

术语“交易分类账”可以是来自先前交易的数据汇编。交易分类账可以是数据库或其它相当的文件结构,其可以被配置成存储来自所有先前交易的数据,包括交易的日期和时间、交易金额,以及交易的参与者的标识信息(例如,交易金额的发送方和接收方)。在一些实施例中,交易分类账可以呈电子分类账(例如,区块链)的形式,其中已经存储在电子分类账中的数据是不可更改的。

“区块链”可以是数据库,其维护不断增长的记录列表,以防篡改和修订。区块链可以包括由一个或多个对等体记录的数个事件记录块。区块链中的每个块还可以包括时间戳和与前一块的链接。举例来说,每个块可包括前一块的散列。换句话说,区块链中的事件记录可存储为一系列“块”或包括在给定时间段内发生的数个事件的记录的永久性文件。在完成块且验证块之后可以由适当对等体将块附加到区块链。在本发明的实施例中,区块链可以是分布式的,且可以在区块链网络中的每一对等体处维护区块链的副本。

“密钥对”可以包括一对链接的加密密钥。例如,密钥对可以包括公钥和对应的私钥。在密钥对中,第一密钥(例如,公钥)可以用于加密消息,而第二密钥(例如,私钥)可以用于解密加密的消息。另外,公钥可能够验证用对应的私钥创建的数字签名。公钥可以分布在整个网络中,以便能够验证使用对应私钥签名的消息。公钥和私钥可以是任何适当格式,包括基于rsa或椭圆曲线密码学(ecc)的格式。在一些实施例中,可以使用非对称密钥对生成算法来生成密钥对。然而,如所属领域的普通技术人员所理解,也可以使用其它手段来生成密钥对。

术语“数字签名”可以是消息的电子签名。数字签名可以是数字数据值、字母数字数据值或任何其它类型的数据。在一些实施例中,数字签名可以是使用加密算法从消息(或数据包)和私钥生成的唯一数据值。在一些实施例中,可以使用使用公钥的验证算法来验证签名。

“服务器计算机”可包括功能强大的计算机或计算机集群。举例来说,服务器计算机可以是大型主机、小型计算机集群或像单元一样工作的一组服务器。在一个实例中,服务器计算机可以是耦合到网络服务器的数据库服务器。服务器计算机可以耦合到数据库,并可以包括用于服务于来自一个或多个客户端计算机的请求的任何硬件、软件、其它逻辑或前述内容的组合。

图1示出包括多个部件的系统100。系统100包括记录网络,其包括多个参与实体。由第一用户(未示出)操作的第一用户计算机110可以提交关于操作第二用户计算机140的第二用户(未示出)的事件的新记录信息。验证计算机120验证事件可以完成,并且协调器计算机130致使事件得以执行。

第一用户计算机110、第二用户计算机140、验证计算机120和协调器计算机130可被称为端点计算机。每个端点计算机都可以与相应的适配器计算机和对等计算机相关联。对等计算机150a-d和适配器计算机160a-d可用作每个端点计算机的网络网关和节点。实施例允许端点计算机、相应的适配器计算机和相应的对等计算机组合成一个计算机。然而,它们单独示于图1中以示出可以执行的不同过程。例如,端点计算机可以执行例如订购、验证和执行交易等功能,适配器计算机可执行例如创建和签名数据包等功能,并且对等计算机可执行例如创建块并将新块和/或数据包分发到其它对等计算机等功能。

如上所述,对等计算机150a-d可以互相通信,以便分发和存储新记录。适配器计算机160a-d可以创建新数据包以提交到对等计算机150a-d,并且可以监控对等计算机150a处的记录以将事件报告回第一用户计算机110、第二用户计算机140、验证计算机120和协调器计算机130。系统100中所示的所有计算机都可经由任何合适的通信通道或通信网络与彼此进行操作性通信。合适的通信网络可以是下列中的任一个和/或组合:直接互连;互联网;局域网(lan);城域网(man);作为因特网上节点的运行任务(omni);安全定制连接;广域网(wan);无线网络(例如,采用例如但不限于无线应用协议(wap)、i-模式等的协议)等。

可以使用安全通信协议,例如但不限于:文件传输协议(ftp)、超文本传输协议(http)、安全超文本传输协议(https)、安全套接层(ssl)、iso(例如,iso8583)等来传送计算机、网络与装置之间的消息。

系统100可以用于记录任何合适类型的信息。例如,系统100可用于记录有关所提出事件、事件验证和/或事件完成的信息。可以记录有关任何合适类型的事件,例如项目、活动、支付交易、新医疗患者数据和学术成就的信息。

如图1所示,系统100包括区块链网络170,其包括第一对等计算机150a、第二对等计算机150b、第三对等计算机150c和第四对等计算机150d。实施例允许区块链网络170包括任何合适数量的对等计算机。对等计算机150a-d可以创建记录并向彼此分发信息。

对等计算机150a-d还用于通信地连接系统100内的一个或多个参与系统和端点。例如,系统100示出经由第一对等计算机150a连接到区块链网络170的提案系统111、经由第二对等计算机150b连接到区块链网络170的验证系统121、经由第三对等计算机150c连接到区块链网络170的协调系统131,和经由第四对等计算机150d连接到区块链网络170的观察系统141。

这些系统中的每一个都包括端点计算机(例如,第一用户计算机110、验证计算机120、协调器计算机130和第二用户计算机140)。适配器计算机160a-d可用作相应的端点计算机与对等计算机150a-d之间的接口。对等计算机150a-d和适配器计算机160a-d在下文中相对于图2到3详细讨论。

除了记录信息以外,系统100允许各个端点计算机经由区块链网络170传达事件。例如,第一用户计算机110可以提出新事件以供经由区块链网络170记录到端点计算机的其余部分。其它端点可以经由区块链网络170接收有关所提出事件的信息,可以执行额外功能,然后可以经由区块链网络170传达额外事件相关信息。

第一用户计算机110可以指令第一适配器计算机160a和第一对等计算机150a创建、记录和分发新数据包,其具有所提出事件的事件信息,例如第一用户计算机110与第二用户计算机140之间的支付交易。因此,第一用户计算机110、第一适配器计算机160a和第一对等计算机150a可以联合向系统100的其余部分提出新事件。因此,第一用户计算机110、第一适配器计算机160a和第一对等计算机150a可以联合被称为提案系统111。

在一些实施例中,第一用户计算机110可以提供额外的服务,除在系统110内发起新事件以外。例如,第一用户计算机110可以是与金融机构、医院、政府机构、学术机构、移动电话服务提供商或任何其它合适的服务提供商相关联的计算机。因此,在一些实施例中,第一用户计算机110可以代表一个或多个个人或组织维护账户。此账户可以取决于服务提供商的类型而存储身份信息、医疗记录、学术记录、财务信息或任何其它合适的细节。

在其中第一用户计算机110与金融机构相关联的实施例中,第一用户计算机110可以维护具有货币价值的账户。第一用户计算机110还可向其它金融机构发送(和/或接收)价值。金融机构的实例是发行方,其通常可以是为个人或组织发行和维护账户(例如,银行账户)的企业实体(例如,银行)。

验证系统121可以包括验证计算机120、第二适配器计算机160b、第二对等计算机150b和/或验证api125。验证系统121可以被配置成验证是否可以完成事件。例如,第二适配器计算机160b可被配置成通知验证计算机120何时已提出新事件(例如,基于第二对等计算机150b接收和存储的新记录)。验证计算机120然后可以确定第一用户计算机110是否已分配足够的资源(例如,货币资金、人员、保留空间、工作时间)来完成事件。验证计算机120还可以致使额外信息得以记录,例如是否已验证事件(例如,是否可以完成事件)的信息。

在一些实施例中,验证计算机120可以是与结算银行相关联的结算计算机。结算银行可代表第一用户、第二用户和/或任何其它实体维护结算账户。因此,结算计算机可以确定结算账户是否已具有足够资金来完成第一用户计算机110提出的支付交易。在其它实施例中,验证计算机120可以与一个或多个外部银行通信,并且可以由此确定账户资金是否足够。

验证api125可被配置成与协调器计算机130直接通信,使得验证系统121和协调器系统131可以在不经由区块链网络170的情况下进行通信。例如,验证api125可以在第二适配器计算机160b与第三适配器计算机160c之间传送通信。或者,在一些实施例中,验证api125可以直接在验证计算机120与协调器计算机130之间传送通信。

协调系统131可以包括协调器计算机130、第三适配器计算机160c和/或第三对等计算机150c。协调系统131可被配置成协调事件的执行。例如,第三适配器计算机160c可被配置成通知协调器计算机130新事件何时已被验证(例如,基于第三对等计算机150c接收和存储的新记录)。协调器计算机130然后可以采取一个或多个行动来致使事件得以执行。例如,协调器计算机130可以向一个或多个计算机传送消息,从而指令事件的执行。协调器计算机130还可以致使额外信息得以记录,例如是否已完成事件的信息。

在一些实施例中,协调器计算机130可以是与交易处理网络相关联的交易处理计算机。交易处理网络可以是指用于接受、传送或处理由支付装置进行的交易以获得资金、商品或服务的电子支付系统。处理网络可以在授权实体(例如发行方)、收单方、商家和支付装置用户之间传送信息和资金。在协调器计算机130是交易处理计算机的实施例中,协调器计算机130可以向结算银行发送交易消息,以触发两个账户之间所提出交易的结算。因此,在一些实施例中,协调器计算机130可以将消息传送到验证计算机120并由此致使验证计算机120执行事件(例如,在两个账户之间结算价值)。

在一些实施例中,协调器计算机130可协调并监督系统100中的记录保存过程。例如,协调器计算机130可监控和调整网络中发生的活动。协调器计算机130可以定义通道规则,例如共识策略、建立智能合同、确定网络中可包括哪些实体。协调器计算机130也可以使用第三对等计算机150c调整参与对等体的行为,以便确保交易记录安全可靠。

在一些实施例中,区块链网络170可以表示单个区块链网络通道,并且可以存在额外网络通道(例如,具有不同的对等计算机集)。“网络通道”可以包括对等计算机、适配器计算机和/或端点计算机的集合。网络通道可以是更大网络的分区,其中网络通道被预留用于特定实体集之间的交互。例如,图1中所示的对等计算机可以构成为第一用户计算机110与第二用户计算机140之间的交易创建的一个网络通道。可以为第一用户计算机110与第三用户计算机(未示出)之间的交互创建另一网络通道,并且此网络通道可以代替第四对等计算机150d包括第五对等(未示出)计算机。不同的网络通道可以由不同规则来调整以用于交互和创建记录,并且可以其它方式自定义。

协调器计算机130和/或协调系统131可以参与多个区块链网络通道,监督每个网络通道的活动。另外,在一些实施例中,协调器计算机130可以创建新的网络通道,并协调对等计算机、端点计算机和用户入组新网络通道。

观察系统141可以包括第二用户计算机140、第四适配器计算机160d和/或第四对等计算机150d。观察系统141可以被配置成响应于完成事件而更新本地记录。例如,第四适配器计算机160d可被配置成通知第二用户计算机140何时完成新事件(例如,基于第四对等计算机150d接收和存储的新记录)。第二用户计算机140然后可以基于已完成的事件更新本地记录。例如,第二用户计算机140可以更新本地账户,例如个人或组织的账户(例如,由将交易价值计入账户)。

由参与区块链网络170,观察系统141可以接收有关在整个网络中不可改变地存储的事件状态和进度的信息。这使得能够快速通知第二用户计算机140事件提案、事件验证和事件完成情况。验证计算机120的报告可以向第二用户计算机140提供所提出事件可以并将按照提案中所指定完成的保证。因此,第二用户计算机140可以主动监控每个连续数据包所指示的事件的状态和进度。在一些实施例中,第二用户计算机140可以在事件完成之前更新本地记录,例如响应于事件由验证计算机120验证。

类似于第一用户计算机110,第二用户计算机140还可以与例如银行的服务提供商相关联。因此,第二用户计算机140可以维护一个或多个账户(例如,代表个人和组织),并且第二用户计算机140可以存储和接收此类账户的价值。例如,第二用户计算机140可与收单方相关联,收单方通常可以是与特定商家或其它实体有业务关系的企业实体(例如,商业银行)。一些实体可以执行发行方和收单方两者的功能。一些实施例可以涵盖此类单实体发行方-收单方。

第一用户计算机110在本文中主要描述为提交事件提案和交易价值。另外,第二用户计算机140在本文中主要描述为监控事件状态和接收交易价值。然而,在一些实施例中,第二用户计算机140可包括上文关于第一用户计算机110所描述的一些或全部功能,且第一用户计算机110可包括关于第二用户计算机140所描述的一些或全部功能。

此外,每个对等计算机150a-d和适配器计算机160a-d在本文中主要描述为执行某组任务。然而,实施例允许任何对等计算机执行本文相对于任何其它对等计算机描述的任何功能,并且实施例允许任何适配器计算机执行本文相对于任何其它适配器计算机描述的任何功能。此外,对等计算机和/或适配器计算机可以参与多于一个区块链网络通道,并且可以跨不同网络通道执行不同的功能和角色。

在一些实施例中,区块链网络170的架构和系统100的其它方面可使用hyperledgerfabric、hyperledgercomposer和/或任何其它合适的区块链网络工具实施。

根据本发明的一些实施例的对等计算机250的实例示于图2中。对等计算机250包括处理器250a、网络接口250b、记录数据库250c、对等数据库250d、密钥数据库250q和计算机可读介质250e。

记录数据库250c可以存储记录。例如,从适配器计算机和/或网络中的其它对等计算机接收到的数据包可以插入记录中并存储在记录数据库250c中。在一些实施例中,记录可采取具有块记录的区块链的形式,每个块包括一个或多个数据包。跨越多个块的多个数据包可以与单个事件相关联。例如,单个事件可以与具有事件信息的第一数据包、具有事件验证数据的第二数据包以及具有事件完成数据的第三数据包相关联。

对等计算机250可以参与多个区块链网络通道,并且事件可以基于事件发生的网络通道而分离。因此,可以为每个网络通道构建单独的区块链,且对等计算机250可以为对等计算机250参与的每个网络通道维护每个区块链的同步副本。例如,如图2所示,记录数据库250c可以包括第一网络通道的第一区块链250x、第二网络通道的第二区块链250y、第三网络通道的第三区块链250z,以及任何其它合适数量的额外区块链。

对等数据库250d可以包括有关网络通道和每个网络通道内的对等计算机的信息。例如,对等数据库250d可以包括对等计算机250参与的网络通道的列表和与每个相应的网络通道相关联的其它对等计算机的列表。对等数据库250d还可以包括每个网络通道和每个相关联的对等计算机的唯一标识符。

密钥数据库250q可以存储加密密钥。例如,密钥数据库250q可以为网络通道中的每个不同参与者(例如,对等计算机和/或系统)存储不同的公钥。在一些实施例中,密钥数据库250q可以呈硬件安全模块(hsm)的形式。

计算机可读介质250e可以包括验证模块250j、记录更新模块250l、记录分发模块250m以及任何其它合适的软件模块。计算机可读介质250e还可以包括代码,所述代码由处理器250a执行以用于实施方法,所述方法包括从区块链网络中的计算机接收事件的第一数据包和与所述第一数据包相关联的第一数字签名,所述第一数据包包括事件标识符和事件信息;使用公钥验证所述第一数字签名;生成由验证系统存储的区块链的第一块,所述第一块包括第一数据包和第一数字签名;基于事件信息验证事件是否可以完成;响应于验证事件可以完成,生成事件的第二数据包,所述第二数据包包括指示事件已被验证的事件标识符和信息;使用与验证系统相关联的私钥生成第二数据包的第二数字签名;生成区块链的第二块,所述第二块包括第二数据包和第二数字签名;以及将第二数据包和第二数字签名传送到区块链网络中的一个或多个计算机。

验证模块250j可以包括使处理器250a验证一个或多个数字签名的真实性的代码。例如,验证模块250j可以含有逻辑,所述逻辑使处理器250a使用某一对等计算机的公钥来验证与所述对等计算机和/或相关联系统相关联的数字签名的真实性。

验证模块250j可能进一步含有致使处理器250a以其它方式验证新数据包是否是真实的,并且可以在记录中输入的逻辑。例如,对等计算机250可以验证数据包是否与已知网络通道相关联,并验证与数据包相关联的所有实体是否已在网络中注册并且已经过了合规性筛选。对等计算机250也可以验证数据包中的事件信息不会超过速度阈值或者以其它方式违反特定网络通道规则。

记录更新模块250l可以包括使处理器250a维护并更新记录集的代码。例如,记录更新模块250l可以含有逻辑,所述逻辑使处理器250a记录有关新事件(例如,如新数据包中所指示)的信息。在一些实施例中,记录更新模块250l可以包括用于将新数据包(例如,和相关联的数字签名)包括在下一个区块链块中的指令。一个或多个数据包可以包括在块中,且对等计算机250可以为新块创建标头和/或数字签名。

记录分发模块250m可包括致使处理器250a将有关事件的信息分发给区块链网络通道中的其它对等计算机的代码。例如,记录分发模块250m可含有逻辑,其致使处理器250a向一个或多个其它对等计算机传送消息,所述消息含有一个或多个数据包、数字签名和/或块。因此,对等计算机网络可以通知彼此何时更新交易状态。

记录分发模块250m可进一步含有逻辑,其致使处理器250a与区块链网络通道中的其它对等计算机通信,以达成有关更新的区块链内容和结构的共识。例如,两个或更多个对等计算机可以通信以便确定将数据包包括在新块中和/或将新块的结构和/或标头添加到区块链。

实施例允许对等计算机使用任何合适的共识算法,例如实用的拜占庭容错算法(pbft)、工作证明算法(pow)、利益证明算法(pos)或委派的利益证明算法(dpos)来达成有关记录变化的共识。并且,可以针对特定网络通道定制最低共识级别。例如,网络通道可能需要100%共识,或者网络通道可能需要至少与协调器计算机130和验证计算机120相关联的对等计算机达成共识。

根据本发明的一些实施例的适配器计算机360的实例示于图3中。适配器计算机360包括处理器360a、网络接口360b、对等数据库360p、密钥数据库360e和计算机可读介质360f。

密钥数据库360e可以存储加密密钥。例如,密钥数据库360e可以包括与适配器计算机360和/或相关联的对等计算机和端点计算机相关联的一个或多个私钥。在一些实施例中,密钥数据库360e可以针对与适配器计算机360相关联的每个网络通道包括不同私钥。例如,如图3所示,密钥数据库360e可以包括用于签名与第一网络通道相关联的数据包的第一私钥360x、用于签名与第二网络通道相关联的数据包的第二私钥360y、用于签名与第三网络通道相关联的数据包的第三私钥360z,以及任何其它合适数量的额外私钥。在一些实施例中,密钥数据库360e可以呈硬件安全模块(hsm)的形式。

对等数据库360c可以包括有关网络通道和每个网络通道内的对等计算机的信息。例如,对等数据库360c可以包括与适配器计算机350相关联的网络通道的列表以及与每个相应的网络通道相关联的对等计算机的列表。对等数据库360c可以进一步包括有关用户计算机(和其它端点计算机)和相关联的对等计算机的信息。对等数据库360c可以包括每个网络通道和每个相关联的对等计算机的唯一标识符。

计算机可读介质360f可以包括数据包模块360l、对等体查找模块360m、价值分析模块360n、签名模块360p、记录提交模块360q、记录监控模块360r以及任何其它合适的软件模块。

数据包模块360l可以包括使处理器360a生成新数据包的代码。例如,数据包模块360l可含有逻辑,其致使处理器360a从端点计算机(例如,第一用户计算机110、验证计算机120或协调器计算机130)接收指令,并创建与事件相关联的数据包。数据包可以包括用于输入到新纪录中的任何合适信息。例如,数据包可以包括有关所提出事件的事件信息、指示事件是否可完成的验证信息,和/或指示事件已成功完成的完成信息。数据包还可以包括事件标识符、相关联网络的标识符、相关联用户计算机的标识符、相关联对等计算机的标识符,和/或任何其它合适的信息。在支付交易的实例中,具有事件信息的数据包可以包括关于发送账户、接收账户、交易金额、发送货币、接收货币、货币汇率、费用信息、发票号(例如,由第二用户计算机140发送到第一用户计算机110的发票)、采购订单号、时间戳的信息和/或任何其它合适的信息。

对等体查找模块360m可包括致使处理器360a基于数据包标识一个或多个对等计算机的代码。例如,对等体查找模块360m可含有致使处理器360a基于数据包中的事件信息标识网络通道和/或一个或多个相关联的对等计算机的逻辑。例如,第二用户计算机140和/或第四对等计算机150d可基于第二用户的身份来标识,如数据包中所指示。在另一实例中,可以基于支付发送方和支付接收方的身份来标识网络通道和对等计算机集,如数据包中所指示。对等体查找模块360m还可以包括向数据包添加一个或多个已确定标识符的指令。

价值分析模块360n可以包括使处理器360a确定交易价值的代码。例如,价值分析模块360n可以含有逻辑,所述逻辑使处理器360a确定将从第一用户计算机110扣除以便向第二用户计算机140交付呈第二货币形式的第二金额的呈第一货币形式的第一金额。此决定可包括查找当前的外汇汇率并计算转让费用。以第一货币借记的金额、以第二货币贷记的金额、货币汇率和/或评估的费用可以包括在新数据包中。

签名模块360p可以包括使处理器360a创建数字签名的代码。例如,签名模块360p可以含有逻辑,所述逻辑使处理器360a将私钥和数学算法应用到数据包,使得生成所述数据包的数字签名。

记录提交模块360q可包括使处理器360a提交新数据包以供记录的代码。例如,记录提交模块360q可以含有逻辑,所述逻辑使处理器360a向对等计算机(例如与适配器计算机360相关联的对等计算机)传送新数据包、相关联的数字签名和/或任何其它合适的信息。

记录监控模块360r可包括致使处理器360a监控新数据的记录的代码。例如,记录提交模块360r可含有逻辑,其致使处理器360a定期扫描和解析在相关联的对等计算机上存储的新数据包的记录。记录监控模块360r还可以包括检测和报告某些类型的数据包到相关联端点计算机的指令。例如,适配器计算机360可以专门被配置成检测和报告具有新提出事件的事件信息的数据包、具有指示已被验证事件能够完成的信息的数据包和/或具有指示事件已完成的信息的数据包。

对等计算机和其相关联的适配器计算机在本文中主要描述为单独计算机。然而,实施例允许对等计算机、适配器计算机和/或端点计算机组合成单个计算机,并且允许组合式计算机包括用于上述每个功能的软件模块。例如,图1中所示的验证系统121的一些或全部部件可以体现为单个计算机。

如上所述,返回参考图1,区块链网络170可以表示较大网络内的单个网络通道。可存在其它网络通道,其包括不同的对等计算机和参与者的集合。实施例允许在较大网络内存在任何其它合适数量的单独网络通道。可为每种用户对用户(例如,银行对银行)关系建立具有单独分类账、定制智能合同和其它专门规则(例如,隐私规则)的单独网络通道。另外,两个用户(例如,银行)可以具有单独网络通道,其具有不同规则以在不同的区域或地区与不同规则进行交互(例如,用于欧洲的交互的第一网络通道和用于北美的交互的第二网络通道)。

每个网络通道都可以包括发送和接收实体(例如,第一用户计算机110和第二用户140)以及处理交易的其它必要参与者(例如,验证计算机120和协调器计算机130)。因此,只有参与交易处理的实体可以访问交易记录,从而由限制访问来保护敏感信息。

如上文所提及,在一些实施例中,记录系统可以利用区块链。区块链中的每一块可以包括关于一个或多个事件的信息(例如,来自一个或多个数据包、数字签名等)。区块链分类账可能只能在检测到的情况下更改。这确保了对与交易相关的信息进行的任何篡改都会被察觉到,例如试图将交易价值重新分配给不当的实体。块标头和包括交易信息(例如,和任何其它合适的信息)的块主体可以一起构成一块。

图4示出了存储在区块链块中的信息的实例。示出并扩展块a、块b和块c以展现块和数据包中可包括的一些信息。此实例区块链示出了三个块。然而,可以在块a之前并在块c之后包括额外块,且额外块可以在块a、b,和c之间。另外,图4中的每个块包括一个数据包、对应的数字签名和块的散列标头。然而,块可以包括额外数据包(例如,具有与其它事件相关的信息)。

每个块都可以包括块标头、数据包和数据包的数字签名。每个数据包都包括与事件和/或事件状态相关的信息。例如,在块a中的数据包a可以包括有关新事件的事件信息以及对应的事件标识符。此外,数据包a可以包括有关提交数据包的系统、对等计算机和/或端点计算机的信息。这可以包括一个或多个提案系统标识符以及对应的公钥。数据包a还可以包括有关与事件和数据包相关联的另一系统、对等计算机和/或端点计算机,例如支付接收方的信息。这可以包括一个或多个观察系统标识符。数据包还可以包括其它合适的信息,例如网络通道标识符(或对应的区块链标识符)和/或上述其它数据。

后续块中的后续数据包可以包括有关同一事件的额外信息,例如更新的事件状态。例如,在块b中的数据包b可以包括有关同一事件的验证信息,如由同一事件标识符所指示。此外,数据包b可以包括有关提交数据包的系统、对等计算机和/或端点计算机的信息。这可以包括一个或多个验证系统标识符以及对应的公钥(例如,用于验证也包括在块b中的数字签名)。数据包b还可以包括有关与事件和数据包相关联的其它系统、对等计算机和/或端点计算机的信息,例如网络通道标识符(或区块链标识符)。数据包b还可以包括其它合适的信息,例如数据包a的副本(例如,或来自数据包a的某些数据)。

另一后续块中的另一后续数据包可以包括有关同一事件的额外信息,例如另一更新的事件状态。例如,在块c中的数据包c可以包括相同事件的完成信息,如由同一事件标识符所指示。此外,数据包c可以包括提交数据包的系统、对等计算机和/或端点计算机的信息。这可以包括一个或多个协调系统标识符,以及对应的公钥(例如,用于验证数字签名,也包括在块c中)。数据包c还可以包括关于与事件和数据包相关联的其它系统、对等和/或端点计算机的信息,例如网络通道标识符(或区块链标识符)。数据包c还可以包括其它合适的信息,例如数据包a和/或数据包b的副本(例如,或来自数据包a和/或数据包b的某些数据)。

实施例允许块包括数据包之外的额外信息,例如对前一块的引用(例如,前一块标头)、时间戳、随机数、记录信息散列等。举例来说,每个块可包括或附加到前一块的散列。在一些实施例中,块标头可以包括数据元素,其包括版本号、前一块散列、merkle根和时间戳。例如,在一些实施例中,标头可以是来自当前块的信息(例如,数据包)、来自上一块的信息(例如,数据包和/或标头)和/或任何其它合适的信息的散列。散列对区块链上的所述块条目可能是唯一的,使得其它条目不会与所述散列相关联。

在一些实施例中,可以将来自多个不同网络通道的数据包记录到单个区块链中。因此,在这样的组合式区块链内,数据包中包括的网络通道标识符(和/或区块链标识符)可以展现数据包与哪一网络通道相关联。

可以关于图5a到5g来描述根据本发明的实施例的方法500。还参考其它附图中的一些元素。在本发明的实施例中,可以按顺序或以任何合适的次序执行方法500中所示的步骤。在一些实施例中,所述步骤中的一个或多个可以是任选的。

下文描述的各种消息可以使用任何合适形式的通信。在一些实施例中,请求或响应可以呈电子消息格式,例如电子邮件、短消息服务(sms)消息、多介质消息服务(mms)消息、超文本传输协议(http)请求消息、传送控制协议(tcp)包、网页表单提交。请求或响应可以指向任何合适的位置,例如电子邮件地址、电话号码、互联网协议(ip)地址或统一资源定位符(url)。在一些实施例中,请求或响应可以包括例如电子邮件消息和sms消息两者的不同消息类型的混合。

方法500涉及事件的记录、分发和验证。出于讨论目的,事件在下文中将主要描述为支付交易。然而,实施例允许提交、记录和验证任何其它合适类型的事件的信息。

在步骤s101处,第一用户计算机110与验证计算机120通信以为事件做准备。例如,第一用户计算机110可以通信,以便向验证计算机120处的结算账户提供资金,使得将来的交易可完成。验证计算机120可从第一用户计算机110接收资金,并可更新本地记录以指示与第一用户计算机110相关联的第一结算账户的资金达成一定平衡。

在步骤s102处,第一用户计算机110生成并将事件指令消息传送到第一适配器计算机160a。例如,第一用户计算机110可以提交向第二用户计算机140发送支付的指令。事件指令消息可以包括任何合适类型的事件信息,例如支付金额、原始货币类型、目标货币类型、第一用户计算机110是支付发送方的指示(例如,如由第一用户计算机标识符指示)、第二用户计算机140是支付接收方的指示(例如,由第二用户计算机标识符指示)、从其中提取资金的具体结算账户,和/或存入资金的具体结算账户。在一个实例中,第一用户可能希望向第二用户发送1000新加坡元的支付,但是第一用户可能希望从美元账户进行支付。基于汇率和/或费用,这可能需要779美元。

在步骤s103处,第一适配器计算机160a生成与事件相关联的第一数据包。第一数据包可以包括从第一用户计算机110接收的事件信息。第一数据包还可以包括额外事件信息,例如事件标识符。

事件标识符在当前网络通道内或所有网络通道内都可能是唯一的。在一些实施例中,第一适配器计算机160a可以生成事件标识符。在其它实施例中,第一适配器计算机160a可以从另一计算机(例如对等计算机)获得事件标识符(例如,网络通道的下一顺序事件标识符)。

第一数据包还可以包括有关网络通道的信息,例如网络通道中每个对等体的标识符,和/或网络通道标识符(或区块链标识符)。例如,第一适配器计算机160a可以基于支付发送方的身份(例如,第一用户计算机110)和/或支付接收方的身份(例如,第二用户计算机140)标识网络通道(例如,经由本地存储的查找表)。涉及第一用户计算机110和第二用户计算机140的网络通道可包括任何合适数量的对等计算机。在此实例中,网络通道包括与第一用户计算机110相关联的第一对等计算机150a、与验证计算机120相关联的第二对等计算机150b、与协调器计算机130相关联的第三对等计算机150c,和与第二用户计算机140相关联的第四对等计算机150d。因此,第一数据包可以包括第一对等计算机150a、第二对等计算机150b、第三对等计算机150c和第四对等计算机150d中的每一个的标识符。

在步骤s104处,第一适配器计算机160a生成第一数据包的第一数字签名。例如,第一适配器计算机160a可以使用数据包中的一些或全部信息生成第一单向散列,然后使用私钥(例如,与第一用户计算机110和/或第一适配器计算机160a相关联的第一私钥)对第一散列进行加密。第一散列值和/或第一数字签名可以被附加到第一数据包,由此使得第一数据包的数据篡改显而易见。第一数字签名的存在可以用作第一用户计算机110发起事件并同意第一数据包中的信息的证据。

在步骤s105处,第一适配器计算机160a将第一数据包、第一数字签名和/或第一散列值传送到第一对等计算机150a以供输入区块链记录并进行分发。

在步骤s106处,第一对等计算机150a验证第一数字签名。例如,第一对等计算机150a可使用与第一适配器计算机160a相关联的第一公钥验证第一数字签名。第一公钥也可以与第一对等计算机150a和/或第一用户计算机110相关联(例如,如在网络通道内共享的查找表中所指示)。另外,第一对等计算机150a可以基于数据包生成另一散列值,并检查新散列值是否匹配接收的散列值。如果散列或数字签名无法被验证,则第一对等计算机150a可以拒绝数据包。

在步骤s107处,第一对等计算机150a基于数据包标识网络通道和特定的对应区块链。在一些实施例中,网络通道和对应区块链可以基于数据包中的第二用户计算机的标识符、第一用户计算机的标识符和/或网络通道标识符来确定。第一对等计算机150a可以参与多个网络通道,并且可以存储多个区块链(例如,对应于不同网络通道)。因此,第一对等计算机150a可以标识当前数据包的正确网络通道和区块链,以便继续处理数据包。

在步骤s108处,第一对等计算机150a可以将第一数据包存储在记录中。例如,第一对等计算机150a可以生成区块链的第一块,所述块包括第一数据包、第一数字签名和/或第一散列值(例如,以及一个或多个其它新数据包和对应的数字签名)。

虽然被称为“第一”块,但这可能并不是整个区块链的第一块。相反,它可以被称为“第一”块,因为这是此方法中的第一块,其中与新事件相关的信息由第一用户计算机110提交。

在步骤s109处,第一对等计算机150a将第一数据包、第一数字签名和/或第一散列值的副本传送到网络通道中的其它对等计算机,以便将新事件通知其它对等计算机。例如,第一对等计算机150a可以将第一数据包和第一数字签名传送到第二对等计算机150b、第三对等计算机150c和/或第四对等计算机150d。从网络中的其它对等体的角度来看,此初始事件相关通信可以被视为事件提案。可以执行方法中的后续步骤,以评估并执行事件。

在一些实施例中,不是仅仅传送第一数据包,第一对等计算机150a可以将包括第一数据包和一个或多个其它数据包的新块的副本(例如,来自步骤s108)传送到其它对等计算机。在一些实施例中,网络通道中的其它对等计算机可以访问和读取在第一对等计算机150a处存储的区块链,以确定何时创建新数据包和/或区块链块。

第二对等计算机150b、第三对等计算机150c和/或第四对等计算机150d中的每一个可以构建和存储网络通道的区块链的匹配副本。因此,在从第一对等计算机150a接收到第一数据包(和/或第一块)后,每个其它对等计算机都可以更新自己的区块链副本以包括第一数据包(和/或第一块)。另外,对等计算机可与另一计算机通信,以达成有关新数据包和/或块的共识。

因此,可以通知每个对等计算机和其相关联端点已提出事件。通知可以经由不可改变的区块链记录进行,使得通知和记录构建可以同时经由同一过程进行。此外,区块链更新数据的分发可以触发事件过程中的后续步骤,例如如下所述的事件验证。

特别是有关第二对等计算机150b,在步骤s110处,第二对等计算机150b验证第一数字签名(例如,类似于步骤s106)。然后,在步骤s111处,第二对等计算机150b可以由在记录中存储第一数据包来更新其本地记录。例如,类似于步骤s107,第二对等计算机150b可以生成区块链本地副本的第一块的副本,第一块的所述副本包括第一数据包、第一数字签名和/或第一散列值。类似步骤也可以由第三对等计算机150c和/或第四对等计算机150d执行。

第二适配器计算机160b可监控在第二对等计算机150b处存储的区块链记录以确定何时已发起新事件。例如,第二适配器计算机160b可定期检查新数据包的区块链,所述数据包包括新事件的事件信息(例如,尚未验证的事件)。从第一适配器计算机160a和第一对等计算机150a接收的第一数据包可以是此数据包的实例。因此,在步骤s112处,第二适配器计算机160b确定已基于第二对等计算机150b处的第一数据包发起事件。

在步骤s113处,第二适配器计算机160b将包括第一数据包的消息传送到验证计算机120。验证计算机120然后可以验证是否可以完成如由第一数据包中的事件信息所描述的事件。例如,验证计算机120可以确定第一用户计算机110是否已经为事件预留了资源(例如,资金、人员、时间、设备)。

在支付交易的实例中,验证计算机120可以是与结算银行相关联的结算计算机。此结算计算机可以检查第一用户结算账户,以确定是否有足够的资金来完成支付交易。因此,在此实例中,在步骤s114处,验证计算机120标识与第一用户计算机110相关联的账户。实施例允许验证计算机120标识与第一用户标识符相关联的账户,或基于包括在第一数据包中的特定账户标识符来标识账户。然后,验证计算机120可以确定账户的资金是否已足以完成交易(例如,账户的价值高于支付交易金额)。因此,在步骤s115处,验证计算机120可以基于账户确定事件是否可以完成。

在步骤s116处,验证计算机120向第二适配器计算机160b传送事件确认消息。事件确认消息可以指示事件已经过验证并且可以完成。事件确认消息还可以用作生成第二数据包的指令。有关验证计算机120与第二适配器计算机160b之间的事件的通信可以包括事件标识符和/或第一数据包,使得消息可以清楚地指示一个特定事件。

在步骤s117处,第二适配器计算机160b生成与事件相关联的第二数据包。第二数据包可以包括事件已被验证并且可以完成的指示。在一些实施例中,第二数据包还可以包括置信度值(例如,在1到100之间),这表示事件将完成的可能性。

除了验证指示符之外,第二数据包还可以包括事件标识符。同一事件标识符可用作第一数据包与第二数据包之间的连接,使得可以确定第一数据包和第二数据包是否与同一事件相关联。

在一些实施例中,第二数据包还可以包括来自第一数据包的事件信息,使得所有信息均在一处。例如,第二数据包可以包括有关网络通道的信息,例如网络中的每个对等体的标识符。此网络信息可从第一数据包获得,或以与上述步骤s103类似的方式确定。

在步骤s118处,第二适配器计算机160b生成第二数据包的数字签名。此数字签名在本文中可以被称为“第二”数字签名,以便将其与上述第一数据包的第一数字签名区分开来。第二适配器计算机160b可以使用第二数据包中的一些或全部信息生成第二单向散列,然后使用私钥(例如,与验证计算机120和/或第二适配器计算机160b相关联的第二私钥)对第二散列进行加密)。第二散列值和/或第二数字签名可以被附加到第二数据包,由此使得第二数据包的数据篡改显而易见。第二数字签名的存在可作为验证计算机120真实地验证了事件并同意第二数据包中的信息的证据。

在步骤s119处,第二适配器计算机160b将第二数据包、第二数字签名和/或第二散列值传送到第二对等计算机150b以供输入区块链记录并进行分发。

在步骤s120处,第二对等计算机150b验证第二数字签名。例如,第二对等计算机150b可使用与第二适配器计算机160b相关联的第二公钥验证第二数字签名。第二公钥也可以与第二对等计算机150b和/或验证计算机120相关联(例如,如在网络通道内共享的查找表中所指示)。另外,第二对等计算机150b可以基于数据包生成另一散列值,并检查新散列值是否匹配所接收的散列值。如果散列或数字签名无法被验证,则第二对等计算机150b可以拒绝数据包。

在步骤s121处,第二对等计算机150b基于第二数据包标识网络通道和对应的通道特定区块链。在一些实施例中,第二对等计算机150b可以使用事件标识符来确定网络通道和对应的区块链(例如,经由包括事件标识符条目的查找表)。在其它实施例中,第二对等计算机150b可以基于包括在第二数据包和/或第一数据包中的信息,例如第二用户计算机的标识符、第一用户计算机的标识符和/或网络通道标识符(或区块链标识符)来确定网络通道和对应的区块链。第二对等计算机150b可以参与多个网络通道,并且可以存储多个区块链(例如,对应于不同的通道)。因此,第二对等计算机150b可以标识当前数据包的正确网络通道和区块链,以便继续处理数据包。

在步骤s122处,第二对等计算机150b可以将第二数据包存储在记录中。例如,第二对等计算机150b可以生成区块链的第二块,所述块包括第二数据包、第二数字签名和/或第二散列值(例如,以及一个或多个其它新数据包和对应的数字签名)。

虽然被称为“第二”块,但这可能不是整个区块链的第二块,且在区块链内所述块可能不会紧跟在来自步骤s111的第一块之后(例如,在当前事件正在验证时,可能已创建具有其它数据包的额外交互块)。相反,所述块可以被称为“第二”块,因为它是这种方法中的第二块,其中与新事件有关的信息由第一用户计算机110提交并由验证计算机120验证。

在步骤s123处,第二对等计算机150b将第二数据包、第二数字签名和/或第二散列值的副本传送到网络通道中的其它对等计算机,以便通知其它对等计算机所述事件已被验证。例如,第二对等计算机150b可以将第二数据包和第二数字签名传送到第三对等计算机150c、第四对等计算机150d和/或第一对等计算机150a。在一些实施例中,不是仅传送第二数据包,第二对等计算机150b可以将包括第二数据包和一个或多个其它数据包的新块的副本(例如,来自步骤s122)传送到其它对等计算机。在一些实施例中,网络通道中的其它对等计算机可以访问并读取存储在第二对等计算机150b处的区块链,以确定何时创建新数据包和/或区块链块。

如上所述,第一对等计算机150a、第二对等计算机150b、第三对等计算机150c和/或第四对等计算机150d中的每一个可以构建和存储网络通道的区块链的匹配副本。因此,在从第二对等计算机150b接收第二数据包(和/或第二块)后,每个其它对等计算机都可以更新自己的区块链副本以包括第二数据包(和/或第二块)。另外,对等计算机可与另一计算机通信,以达成有关新数据包和/或块的共识。

因此,可以通知每个对等计算机和其相关联端点事件已经过验证。通知可以经由不可改变的区块链记录进行,使得通知和记录构建可以同时经由同一过程进行。此外,区块链更新数据的分发可以触发事件过程中的后续步骤,例如如下所述的事件执行。

特别是有关第三对等计算机150c,在步骤s124处,第三对等计算机150c验证第二数字签名(例如,类似于步骤s120)。然后,在步骤s125处,第三对等计算机150c可以由在记录中存储第二数据包来更新其本地记录。例如,类似于步骤s121,第三对等计算机150c可以生成区块链的本地副本的第二块的副本,第二块的所述副本包括第二数据包、第二数字签名和/或第二散列值。类似步骤也可以由第一对等计算机150a和/或第四对等计算机150d执行。

第三适配器计算机160c可监控在第三对等计算机150c处存储的区块链记录,以确定事件何时已由验证计算机120验证。例如,第三适配器计算机160c可定期检查包括验证指示符的新数据包的区块链。从第二适配器计算机160b和第二对等计算机150b接收的第二数据包可以是此类数据包的实例。网络通道可以被配置成使得一旦事件被验证为能够完成,下一行动方就是协调器计算机130。例如,协调器计算机130可协调事件的执行。因此,第三适配器计算机160c可监控现在已准备好执行的已被验证事件。在本实例中,在步骤s126处,第三适配器计算机160c基于第三对等计算机150c处的第二数据包确定事件已被验证为能够完成。

在步骤s127处,第三适配器计算机160c向协调器计算机130传送包括第二数据包的消息。然后,在步骤s128处,协调器计算机130致使事件得以执行。协调器计算机130可以按照第一数据包中的事件信息所描述协调事件的执行,并在第二数据包中验证。例如,协调器计算机130可以执行事件或指令另一实体或计算机完成事件。

在支付交易的实例中,协调器计算机130可以将结算指令消息传送到实体,所述实体可以将支付价值从第一用户账户传输到第二用户账户,如第一数据包所指示。在一些实施例中,这些任务可以由验证计算机120执行(例如,由于验证计算机120可以是结算计算机)。因此,协调器计算机130可以将结算指令消息传送到验证计算机120,所述结算指令消息包括在第一数据包和/或第二数据包中提供的一些或全部事件信息。

在一些实施例中,协调器系统130与验证计算机120之间的此类通信可经由另一通信通道进行,而不是经由对等计算机进行。例如,协调器计算机130可致使第三适配器计算机160c将结算指令消息传送到验证api125,所述验证api然后可将结算指令消息转发到第二适配器计算机160b,所述第二适配器计算机然后可将结算指令消息提供给验证计算机120。

在已收到结算指令消息的情况下,验证计算机120(或其它合适的计算机)可以致使在第一用户结算账户与第二用户结算账户之间传输和结算交易金额。例如,第一用户结算账户可以借记779美元,而第二用户结算账户可以贷记1000新加坡元。支付交易结算后,验证计算机120可以将完成消息传送回协调器计算机130(例如,经由第二适配器计算机160b、验证api125和/或第三适配器计算机160c)。

在一些实施例中,可使用批量结算和/或多边结算技术。例如,协调器计算机130可以基于当天在第一用户与第二用户之间已进行的多个交易(例如,来自多个数据包)计算第一用户与第二用户之间的净头寸。然后,协调器计算机130可以基于一天结束时的净头寸发送一个结算指令消息。

在步骤s129处,协调器计算机130将事件完成消息传送到第三适配器计算机160c。事件完成消息可以指示事件已成功完成。事件完成消息也可以用作生成第三数据包的指令。有关协调器计算机130与第三适配器计算机160c之间的事件的通信可以包括事件标识符、第一数据包和/或第二数据包,使得消息清楚地指示一个特定事件。

在步骤s130处,第三适配器计算机160c生成与事件相关联的第三数据包。第三数据包可以包括已成功完成事件的指示。在一些实施例中,第三数据包还可以包括有关事件如何以及何时完成的额外信息(例如,时间和批号)。

除了完成指示符之外,第二数据包还可以包括事件标识符。同一事件标识符可以用作第一数据包、第二数据包和第三数据包之间的连接,使得可确定第一数据包、第二数据包和第三数据包是否都与同一事件相关联。

在一些实施例中,第三数据包还可以包括来自第一数据包的事件信息和/或来自第二数据包的验证指示符,使得所有信息均在一处。例如,第三数据包可以包括有关网络通道的信息,例如网络中的每个对等体的标识符。此类网络信息可从第一数据包或第二数据包获得,或以与上述步骤s103类似的方式确定。

在步骤s131处,第三适配器计算机160c生成第三数据包的第三数字签名。此数字签名在本文中可以被称为“第三”数字签名,以便与上述第一数据包的第一数字签名和第二数据包的第二数字签名区分开来。第三适配器计算机160c可以使用第三数据包中的一些或全部信息生成第三单向散列,然后使用私钥(例如,与协调器计算机130和/或第三适配器计算机160c相关联的第三私钥)对第三散列进行加密。第三散列值和/或第三数字签名可以被附加到第三数据包,由此使得第三数据包的数据篡改显而易见。第三数字签名的存在可作为协调器计算机130真实地完成了事件并同意第三数据包中的信息的证据。

在步骤s132处,第三适配器计算机160c将第三数据包、第三数字签名和/或第三散列值传送到第三对等计算机150c以供输入区块链记录并进行分发。

在步骤s133处,第三对等计算机150c验证第三数字签名。例如,第三对等计算机150c使用与第三适配器计算机160c相关联的第三公钥验证第三数字签名。第三公钥也可以与第三对等计算机150c和/或协调器计算机130相关联(例如,如在网络通道内共享的查找表中所指示)。此外,第三对等计算机150c可以基于数据包生成另一散列值,并检查新散列值是否匹配所接收的散列值。如果散列或数字签名无法被验证,则第三对等计算机150c可以拒绝数据包。

在步骤s134处,第三对等计算机150c基于第三数据包标识网络通道和对应的通道特定区块链。在一些实施例中,第三对等计算机150c可以使用事件标识符来确定网络通道和对应的区块链(例如,经由包括事件标识符条目的查找表)。在其它实施例中,第三对等计算机150c可以基于第三数据包、第二数据包和/或第一数据包中包括的信息,例如第二用户计算机的标识符、第一用户计算机的标识符和/或网络通道标识符(或区块链标识符)来确定网络通道和对应的区块链。第三对等计算机150c可以参与多个网络通道,并且可以存储多个区块链(例如,对应于不同的通道)。因此,第三对等计算机150c可以标识当前数据包的正确网络通道和区块链,以便继续处理数据包。

在步骤s135处,第三对等计算机150c可以将第三数据包存储在记录中。例如,第三对等计算机150c可以生成区块链的第三块,所述块包括第三数据包、第三数字签名和/或第三散列值(例如,以及一个或多个其它新数据包和对应的数字签名)。

虽然被称为“第三”块,但这可能不是整个区块链的第三块,且在区块链内所述块可能不会紧跟在来自步骤s122的第二块之后(例如,在执行当前事件时,可能已创建具有其它数据包的额外交互块)。相反,所述块可以被称为“第三”块,因为它是这种方法中的第三块,其中与事件有关的信息由第一用户计算机110提出、由验证计算机120验证,并由协调器计算机130协调。

在步骤s136处,第三对等计算机150c将第三数据包、第三数字签名和/或第三散列值的副本传送到网络通道中的其它对等计算机,以便通知其它对等计算机事件已完成。例如,第三对等计算机150c可以将第三数据包和第三数字签名传送到第一对等计算机150a、第二对等计算机150b和/或第四对等计算机150d。在一些实施例中,不是仅传送第三数据包,第三对等计算机150c可以将包括第三数据包和一个或多个其它数据包的新块的副本(例如,来自步骤s135)传送到其它对等计算机。在一些实施例中,网络通道中的其它对等计算机可以访问和读取存储在第三对等计算机150c处的区块链,以确定何时创建新数据包和/或区块链块。

如上所述,第一对等计算机150a、第二对等计算机150b、第三对等计算机150c和/或第四对等计算机150d中的每一个可以构建和存储网络通道的区块链的匹配副本。因此,在从第三对等计算机150c接收到第三数据包(和/或第三块)后,每个其它对等计算机都可以更新自己的区块链副本以包括第三数据包(和/或第三块)。另外,对等计算机可与另一计算机通信,以达成有关新数据包和/或块的共识。

因此,可以通知每个对等计算机和其相关联端点事件已经执行并完成。完成通知可以经由不可改变的区块链记录进行,使得完成通知和记录构建可以同时经由同一过程进行。此外,区块链更新数据的分发可以触发事件过程中的后续步骤,例如如下所述的事件确认。

特别是有关第四对等计算机150d,在步骤s137处,第四对等计算机150d验证第三数字签名值(例如,类似于步骤s133)。然后,在步骤s138处,第四对等计算机150d可以由在记录中存储第三数据包来更新其本地记录。例如,类似于步骤s134,第四对等计算机150d可以生成区块链本地副本的第三块的副本,第三块的所述副本包括第三数据包、第三数字签名和/或第三散列值。类似步骤也可以由第一对等计算机150a和/或第二对等计算机150b执行。

第四适配器计算机160d可以监控第四对等计算机150d处存储的区块链记录以确定事件何时已由协调计算机130协调并完成。例如,第四适配器计算机160d可定期检查包括事件完成指示符的新数据包的区块链。从第三适配器计算机160c和第三对等计算机150c接收的第三数据包可以是此类数据包的实例。网络通道可以被配置成使得一旦事件被验证为能够完成,下一行动方就是第二用户计算机140。例如,第二用户计算机140可基于已完成的事件更新本地记录。因此,第四适配器计算机160d可监控现在可以在本地辨识的已完成事件。在本实例中,在步骤s139处,第四适配器计算机160d确定已基于第四对等计算机150d处的第三数据包成功完成事件。

在步骤s140处,第四适配器计算机160d向第二用户计算机140传送包括第三数据包的消息。然后,在步骤s141处,第二用户计算机140基于第三数据包更新本地记录。第二用户计算机140可以基于事件完成的新信息更新记录并执行任何有用的活动。例如,在已为第二用户完成建筑物的情况下,第二用户计算机140可以更新实际地址,并发起从之前的建筑物移动到新建筑物(例如,由通知员工和招聘专业人员)。

在支付交易的实例中,第二用户计算机140可基于第二用户的结算账户中新收到的值更新本地账户余额。在一些实施例中,这可以包括将支付交易价值贷记到特定账户持有人的账户(例如,在银行有账户的客户的账户)。

在一些实施例中,第二用户计算机140可以更早地更新本地记录。例如,第二用户计算机140可以充分保证在验证计算机120验证事件并致使第二数据包得以分发时将完成事件。因此,第二用户计算机140在第四对等计算机150d接收第二数据包(例如,而不是等待第三数据包)时可以更新本地记录(例如,贷记账户持有人的账户)。

实施例允许额外数据包创建并存储在记录中以供额外交易状态更改。例如,在第一用户计算机110为结算账户提供资金时,可以创建并记录数据包;在验证计算机120发起结算时,可以由其创建并记录数据包;和/或可以由第二用户计算机140创建并记录数据包以通知网络其已观察到交易并收到资金。

在一些实施例中,在方法500之前,可以采取步骤以对交易进行预授权。这些步骤包括在另一方法600中,所述方法可以根据本发明的实施例相对于图6描述。在本发明的实施例中,可以按顺序或以任何合适的次序执行方法600中所示的步骤。在一些实施例中,所述步骤中的一个或多个可以是任选的。

在步骤s601处,提案系统111可以准备事件预授权消息。例如,第一用户计算机110可以生成事件预授权消息,其具有所提出事件的事件信息。第一用户计算机110可以将事件预授权消息传送到第一适配器计算机160a,其可将事件预授权消息转发到第一对等计算机150a。提案系统111也可以标识用于预授权的网络通道(例如,基于事件信息中所标识的支付发送方和支付接收方)。

在步骤s602处,提案系统111可以将事件预授权消息传送到协调系统131(例如,基于已标识的网络通道)。例如,第一对等计算机150a可以将事件预授权消息传送到第三对等计算机150c。在一些实施例中,对等计算机可以不将事件预授权消息存储在区块链或其它记录中。因此,对等计算机可以用作消息传送节点,并且在事件预授权过程期间可能不用作记录分发器。

在步骤s603处,一个或多个对等计算机可以基于事件信息验证事件。例如,第三对等计算机150c可以确定所提出事件不会违反任何网络通道规则(例如,基于网络通道的已建立的智能合同)。

在步骤s604处,协调器计算机130可以基于事件信息验证事件。例如,协调器计算机130可以确定第一用户未超过任何交易开支或速度阈值。

在步骤s605处,第三对等计算机150c可以将指示交易已成功预授权的消息传送回第一对等计算机150a(和由此提案系统111)。在一些实施例中,第一对等计算机150a和/或第三对等计算机150c可创建和/或分发指示交易已经预授权的记录(例如,区块链块)。这有助于加快方法500中的交易提案过程。

本发明的实施例包括优于现有系统的若干优点。出于比较,在图7中示出常规系统700的实例。系统700示出支付交易过程中涉及的多个实体。

发送实体701可以是致使将支付发送到接收银行的发送银行。网络702可以是交易处理网络,或更具体地说是管理交易处理网络的一个或多个交易处理计算机。合并计算机703可以计算银行之间的净头寸,并且可能是网络702的一部分(例如,交易处理计算机中的模块)。有线连接计算机704可以涉及与一个或多个中介银行和/或接收银行相关联的一个或多个计算机,其中计算机可以将电汇通信互相发送(例如,使用swift消息传递)。结算实体705可以是管理发送银行结算账户和/或接收银行结算账户的结算银行。

例如,发送银行可以向交易处理网络发送支付指令,以从发送银行向接收银行(未示出)进行支付。支付指令可以更具体地说是来自从发送银行的第一用户账户到接收银行的第二用户账户的支付。

交易处理网络可以接收来自发送银行的支付指令消息,并处理支付(例如,由获得批准或以其它方式结清结算支付)。

交易处理网络可以在给定的时间段(例如,一天)内接收多个支付指令。交易处理网络可以将每个支付指令转发到合并计算机,其可以基于所述时间段内的支付组合计算发送银行与接收银行之间的净头寸。

在给定的时间段结束时(例如,一天结束时),合并计算机可以发送电汇消息来引起一个或多个交易的结算。例如,合并计算机可以向接收银行或单独的结算银行发送电汇消息,所述电汇消息包括发送银行与接收实体之间的净交易价值。在一些实施例中,电汇消息可以经由一个或多个中介银行发送。在这种情况下,每个中介银行都可以包括代理银行账户,并且所述价值可以在每个中介银行之间传输和结算,直到其到达接收银行。

然后,结算银行或接收银行可以使支付价值成为发送银行结算账户与接收银行结算账户之间的结算。

虽然系统700允许进行支付交易,但存在许多问题。例如,发送银行与接收银行之间有许多连接。并且,接收银行和/或结算银行不会参与此项支付,并且在过程结束时收到电汇消息之前,不会通知接收银行和/或结算银行此项支付。此外,接收银行无法登记以了解待定支付。这意味着,在计算净头寸之后(例如,在一天结束时),和/或在中介银行之间进行多次电汇通信和/或结算后(可能又需要几天时间),结算银行和/或接收银行才会收到特定支付价值以及任何有关支付的信息。因此,这是一个缓慢的支付过程,涉及许多通信和处理步骤。并且,如果中介银行或其它通信连接点中的任何一个被中断,则支付可能会进一步延迟或者支付可能失败。

相比之下,本发明的实施例具有数个优势。例如,在本发明的实施例中,验证系统(例如,结算银行)可以并入事件(例如,支付)处理网络。因此,可以在提出新事件之后立即通知验证系统,验证系统可以验证新事件是否可按所描述完成,然后可以通知网络验证结果。例如,结算银行可以验证支付发送方的结算账户的资金是否足以进行支付。在一些实施例中,将来自验证系统的更新以及其它事件处理相关的通信快速分发到与网络相关联的每一方。因此,当支付接收方和验证系统都包括在网络中时,可以通知(例如,实时)支付接收方支付将成功执行的可能性。因此,例如结算银行等中央实体现在可以与各个端点通信。这可以由移除中介银行并在发送银行、结算银行和/或接收银行之间创建更直接的通信线路而减少通信时间并节省计算机资源。除了跨多个中介银行发送多线(例如swift)消息外,发送银行、接收银行、结算银行和/或交易处理计算机还可以直接彼此通信。在常规系统中,中介银行引起发送银行与结算银行之间的多个分离步骤。这些步骤致使消息传递处理负载增大、通信较慢,且支付失败的几率更高(例如,如果中介银行遭遇中断)。相比之下,本发明的实施例移除一些或全部中介机构,从而改善支付成功率、改善通信速度并减小处理负载。

实施例进一步有利地允许支付接收方(和其它包括方)保证新提出的支付交易将在完成之前进行。这可以使某些实体(例如支付接收方)立即采取进一步的行动,而不是等待事件完成。例如,接收银行可在接收事件验证时贷记账户持有人的账户。

本发明的实施例还有利地经由区块链网络来传达事件(例如,支付交易)状态。例如,对事件状态(例如,初始事件提案、验证和完成)的任何更改都可以提交到区块链网络,并由网络中的一个或多个对等体存储。分发新记录和达成区块链共识的行为也可以用于传达有关新事件状态的更新。例如,新数据包的分发(例如,在区块链网络中)可以在事件处理时触发后续步骤的执行。因此,可以经由一个过程(例如,区块链更新通信)来达成两个结果(例如,通知其它网络方有关状态更新,和存储记录)。这改善了通信和网络效率。此外,与结算银行以及其它参与银行之间的通信可以经由网络进行而不使用电汇通信(例如swift)。

本发明的实施例还可以有利地以不可改变的方式存储事件状态更新。例如,各种事件状态更新可以存储在分布式区块链分类账中,所述分布式区块链分类账可以不可改变的格式体现。因此,网络参与者(例如,支付接收方)可以保证接收的事件状态数据可信任,且不会变更。

实施例进一步有利地允许将区块链网络划分成单独的网络通道。每个网络通道基本上都可以用作单独的私有区块链网络。这允许将交易记录在不可改变的分类账中,但是保持私密,使得只有涉及方才能查看分类账。这也在发送机构与接收机构之间打开直接通信线路,使得它们可以更直接地与彼此通信,而不是都经由例如中央管理员等中介机构通信。分离的网络通道还使每个通道都足够小,以便网络对等体可以传达交易处理更新并达成共识。

现将描述可用于实施本文中所描述的实体或部件中的任一个的计算机系统。计算机系统中的子系统经由系统总线互连。额外子系统包括可以耦合到显示器适配器的打印机、键盘、固定磁盘和监视器。外围装置和可以耦合到输入/输出(i/o)控制器的i/o装置可以由所属领域已知的任何数目个构件连接到计算机系统,所述构件例如串行端口。例如,串行端口或外部接口可以用于将计算机设备连接到例如互联网的广域网、鼠标输入装置或扫描器。经由系统总线的互连允许中央处理器与每一子系统通信,且控制来自系统存储器或固定磁盘的指令的执行以及子系统之间的信息交换。系统存储器和/或固定磁盘可以体现计算机可读介质。

如所描述,本发明的服务可涉及实施一个或多个功能、过程、操作或方法步骤。在一些实施例中,由于由合适编程的计算装置、微处理器、数据处理器等执行指令集或软件代码,故可以实施功能、过程、操作或方法步骤。指令集或软件代码可以存储在由计算装置、微处理器等访问的存储器或其它形式的数据存储元件中。在其它实施例中,功能、过程、操作或方法步骤可以由固件或专用处理器、集成电路等实施。

本申请中描述的任何软件部件或功能可使用任何合适的计算机语言实施为由处理器执行的软件代码,所述计算机语言例如使用常规的或面向对象的技术等的java、c++或perl。软件代码可以作为一系列指令或命令存储在计算机可读介质上,例如随机存取存储器(ram)、只读存储器(rom)、例如硬盘驱动器或软盘的磁介质、或例如cd-rom的光学介质。任何此类计算机可读介质可以驻存在单个计算设备上或内,且可以存在于系统或网络内的不同计算设备上或内。

虽然已详细描述并在附图中示出某些示范性实施例,但应理解,此类实施例仅仅是对本发明的说明而非限制,并且本发明不限于所示和描述的具体布置和构造,因为所属领域的一般技术人员可想到各种其它修改。

如本文中所使用,除非明确指示有相反的意思,否则使用“一(a/an)”或“所述”旨在表示“至少一个”。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1