首页 / 专利库 / 资料储存系统 / 分布式账本 / 用于基于交易的部分验证来更新分布式账本的系统和方法

用于基于交易的部分验证来更新分布式账本的系统和方法

阅读:742发布:2020-08-25

专利汇可以提供用于基于交易的部分验证来更新分布式账本的系统和方法专利检索,专利查询,专利分析的服务。并且本文所述的系统和方法涉及使用存储 分布式账本 的 计算机网络 来处理金融交易,并且特别地涉及基于从验证 服务器 接收的数据消息来更新分布式账本,所述验证服务器均存储对应于相应资产的账本的一部分。本文所述的系统和方法采用分布式账本来控制交易对一般市场的可见性,但仍提供交易的快速且有保证的完成以及针对监管者的可见性和审计能 力 。,下面是用于基于交易的部分验证来更新分布式账本的系统和方法专利的具体信息内容。

1.一种用于大体上实时地修改在存储多个数据账户的数据表中安全地存储的数据的方法,包括:
使用控制电路来接收修改从所述多个数据账户中选择的数据账户的请求,其中所选账户存储一种类型的资产的至少一个值;
基于接收的请求和至少一个资产而标识至少一个验证者,其中所述至少一个验证者将大体上实时地检查是否能够执行所述请求;以及
如果所述至少一个验证者将所述请求视为有效,则大体上实时地修改所述数据表。
2.根据权利要求1所述的方法,还包括:
对数据表中的多个数据账户不同地加密,使得由第一验证者用于访问第一类型的资产的数据的解密过程不能用于访问第二类型的资产的数据。
3.根据权利要求1所述的方法,其中:
所述数据表被修改成处理支付交易或存款交易;
所述至少一个资产对应于证券,诸如货币或债券;以及
所述验证者是证券的发行机关。
4.根据权利要求3所述的方法,其中证券的发行机关是对于发行货币的中央行或者发行债券的债券发行方的代理。
5.根据权利要求1所述的方法,其中所述验证者是第一验证者,并且所述至少一个资产包括第一和第二资产,所述方法还包括:
基于接收的请求而确定第二验证者的身份,其中第二验证者针对第二资产大体上实时地确认所述请求。
6.根据权利要求1所述的方法,其中接收的请求包括对多个账户中的若干账户的修改,所述验证者是多个验证者中的第一验证者,并且所述多个验证者中的每一个与不同的资产相关联,所述方法还包括:
基于接收的请求而确定针对多个验证者的多个身份,其中所述多个验证者中的每一个大体上实时地验证所述请求。
7.根据权利要求1所述的方法,其中所述验证者基于以下而确定是否验证所述请求:
从针对账户和至少一个资产的数据表检索发布的结余;
通过将发布的结余减少与未决和保留支付相关联的影子结余而计算可用结余;
当可用结余大于或等于所述请求的交易量时,批准所述请求;以及
当可用结余小于所述请求的交易量时,拒绝所述请求。
8.根据权利要求7所述的方法,其中所述验证者存储与未决和保留支付相关联的影子结余和数据表的冗余拷贝。
9.根据权利要求1所述的方法,其中所述验证者基于以下而确定是否验证所述请求:
核实与账户相关联的一方是否被授权执行所述请求。
10.根据权利要求1所述的方法,其中所述验证者存储数据表的冗余拷贝,所述方法还包括:
响应于修改数据表,将数据表的经修改的部分发送到验证者。
11.根据权利要求10所述的方法,其中数据表的冗余拷贝被加密以防止验证者访问针对与所述至少一个资产不同的资产的数据。
12.一种用于大体上实时地修改具有多个安全存储的数据账户的数据表的系统:
存储器,被配置成存储数据表;以及
控制电路,被配置成:
接收修改从所述多个账户中选择的账户的请求,其中所选账户包括至少一个资产;
基于接收的请求而确定至少一个验证者的身份,其中所述至少一个验证者被配置成大体上实时地核对;以及
如果验证者确认所述请求有效,则大体上实时地修改所述数据表。
13.根据权利要求12所述的系统,其中所述控制电路还被配置成:
对数据表中的多个账户不同地加密,使得由第一验证者用于访问第一资产的数据的解密过程不能用于访问第二资产的数据。
14.根据权利要求12所述的系统,其中:
所述数据表被修改成处理支付交易或存款交易;
所述至少一个资产对应于货币或债券;以及
所述验证者是货币或债券的发行机关。
15.根据权利要求14所述的系统,其中所述验证者是第一验证者,所述至少一个资产包括第一和第二资产,并且所述控制电路还被配置成:
基于接收的请求而确定第二验证者的身份,其中第二验证者针对第二资产大体上实时地验证所述请求。
16.根据权利要求15所述的系统,其中:
所述数据表被修改成处理外汇交易;
第一资产对应于第一货币,并且第二资产对应于第二货币;以及
第一验证者对应于第一货币的第一发行机关,并且第二验证者对应于第二货币的第二发行机关。
17.根据权利要求12所述的系统,其中接收的请求包括对多个账户中的若干账户的修改,所述验证者是多个验证者中的第一验证者,并且所述多个验证者中的每一个与不同的资产相关联,并且所述控制电路还被配置成:
基于接收的请求而确定针对多个验证者的多个身份,其中所述多个验证者中的每一个大体上实时地验证所述请求。
18.根据权利要求12所述的系统,其中所述验证者通过被配置成以下而确定是否验证所述请求:
从针对账户和至少一个资产的数据表检索发布的结余;
通过将发布的结余减少与未决和保留支付相关联的影子结余而计算可用结余;
当可用结余大于或等于所述请求的交易量时,批准所述请求;以及
当可用结余小于所述请求的交易量时,拒绝所述请求。
19.根据权利要求18所述的系统,其中所述验证者存储与未决和保留支付相关联的影子结余和数据表的冗余拷贝。
20.根据权利要求12所述的系统,其中所述验证者通过被配置成以下而确定是否验证所述请求:
核实与账户相关联的一方是否被授权执行所述请求。
21.根据权利要求12所述的系统,其中所述验证者存储数据表的冗余拷贝,并且所述控制电路还被配置成:
响应于修改数据表,将数据表的经修改的部分发送到验证者。
22.根据权利要求21所述的系统,其中数据表的冗余拷贝被加密以防止验证者访问与所述至少一个资产不同的资产的数据。

说明书全文

用于基于交易的部分验证来更新分布式账本的系统和方法

[0001] 对相关申请的交叉引用本申请要求2015年3月5日提交的美国发明专利申请号14/639,895的优先权,其通过引用以其整体并入本文。

背景技术

[0002] 金融交易的处理,特别是关于外汇市场可能涉及大量结算险,因为这样的交易通常包括两个部分。例如,其中第一方从第二方购买某个数量的美元作为对欧元的兑换的交易可以在两个部分中处理,即(i)将欧元从第一方转移到第二方,以及(ii)将美元从第二方转移到第一方。在没有可信第三方的情况下,这样的外汇交易的两个部分由于不同的处理时间、时区差异或其他因素而在不同的时间处理。直到完成交易的两个部分之前,已经完成其交易部分但尚未从另一方接收到资金的一方遭受风险,这是因为另一方可能拖欠其义务。该风险称为“Herstatt(赫斯塔特)”风险。
[0003] 为了减轻与外汇交易关联的Herstatt风险,交易可以通过可信第三方(例如,CLS)结算。可信第三方从其成员机构(例如,商业行)接受交易,临时保存一方的资金,直到另一方也已经提供其资金为止,并且然后一起处理交易的所有部分。可信第三方从而确保交易以其整体被处理,或者根本不处理。另外,可信第三方可以保证资金为特定交易保留,并且不能在不相关的交易中使用。处理交易的这种“全或无(all-or-nothing)”方法称为“原子结算(atomic settlement)”或“支付对支付(payment-vs-payment)”。然而,可信第三方的使用不一定建立交易以其在给定营业日的进程内结算的预定次序。在FX市场中,当前实践是针对特定日安排的交易可以在该日的进程期间的任何时间结算,这要求各方维持足够的资金以确保无论交易被处理的次序如何,资金都将可用。对于最差情况场景的预算的需要可以要求留出大量资金以满足这所谓的日内流动性要求。
[0004] 可以通过近实时处理交易以使得交易在发起新交易之前结算而降低日内流动性要求。在常规银行业系统中,这是难以实现的(即使不是不可能的话),由于支付需要穿过多个私有账本并从而招致延迟。密码货币(诸如比特币或瑞波币(Ripple))在单个账本中为所有参与者维护交易记录,并且从而与常规银行业系统相比能够按次序且快速地处理交易。例如,瑞波币通常在几秒内处理交易,并且比特币在约几小时内处理交易。然而,这些系统在私有性方面遭受显著的缺点,因为它们在存储在分布式服务器上的公开可访问的账本中维护结余和交易记录。该透明性通过允许多方观察并批准应用于账本的改变而帮助维持记录的准确性。例如,虽然单个恶意行为者可能能够在若干服务器上伪造记录,但公开可用的账本的广泛传播可以防止这样的恶意行为者更改足够的账本拷贝。尽管账本的广泛分布对于记录准确性可能是合期望的,但这种公开可用性与大规模市场参与者支持受控的可见性的期望相反,因为它可能降低各方供应流动性的意愿。例如,与提供流动性关联的成本可能对于造市商增加,因为交易完全可见,并且这允许其他方在造市商已经对冲与交易关联的风险之前改变其行为。在实践中,这意味着,交易一公布,市场就将反对造市商。因为顾客和造市商二者都知道这一点,则预期附加成本从造市商传递到顾客。出于这种原因,大型交易中的购买者和销售者都对即时公开没有兴趣。大部分受监管的证券交易所具有允许至少一些贸易的延迟公布的规则。反对造市商的实践称为掠夺性贸易,并且在Markus K. Brunnermeier和Lasse H. Pedersen所著的、公开于2005年8月的“The Journal of Finance”第LX卷、4号中的期刊文章“Predatory Trading”中详细讨论,所述文章由此以其整体通过引用并入本文。
[0005] 虽然诸如比特币和瑞波币之类的密码账本(crypto-ledger)系统可以通过使用不易于归属于特定真实世界方的任意账号来混淆特定方的身份,但大型金融机构(例如,中央银行)不能单独依赖于这样的混淆,因为其交易的绝对规模和量可能向一般市场揭示其身份。此外,现有密码交易系统(例如,比特币或瑞波币)缺乏内部设计的身份核对,其帮助监管者监督反洗钱(AML)。
[0006] 像这样,存在对于可以与比特币或瑞波币一样快速地处理交易而不牺牲所涉及的各方的隐私性的新的系统和方法的需要。

发明内容

[0007] 所公开的系统和方法一般针对分布式计算机网络,其包括用于基于密码认证技术来维护和更新分布式账本的拷贝的多个服务器。更特别地,所述系统和方法跟踪大体上实时发生的兑换,诸如货币兑换或其他类型的兑换。为此,所述系统授权个体并且将个体与代表某个量的资产(例如,监管的货币)的账户相关联。所述系统通过调整分布式账本的冗余拷贝内维护的账户结余来执行以单种资产的支付或者大体上实时地在两个或更多的授权个体之间兑换两种或更多种资产。另外,所述系统以私有且安全的形式安排兑换以防止第三方在兑换过程之前或在兑换过程期间观察到兑换(或调整账本结余)。
[0008] 本文所述的系统和方法包括账本管理服务器,其控制账本以允许支付或外国货币兑换交易实时地或大体上实时地发生。所述系统创建数据表,其记录经验证的账户持有者以及由该相应账户持有者持有的每一种资产的结余。所述系统还记录资产发行机关。每一个资产发行机关是控制由一个或多个账户持有人所持有的特定资产的供应的机关(或针对该机关的代理)。所述系统包括验证过程,其向每一个资产发行机关提供对每一个账户持有人的账户的查看/批准访问,但将该访问限制到该账户的记录由该发行机关发行的资产中的结余的部分。
[0009] 所述系统在账本管理服务器和与资产发行机关相关联的资产验证服务器处存储数据表的冗余拷贝,其包括账户信息和账户结余。数据表的分布式存储提供了附加的保护,其保护免受伪造存储在账本的数据表中的信息的尝试之害,因为将需要兼顾多于一个服务器。所述系统使用认证技术来核实标识信息并且执行了解你的顾客(know-your-customer,KYC)核对或反洗钱(AML)核对。所述系统使用密码代码通过将电子签名与从用签名方的公共密钥处理数据消息而获得的散列(hash)相比较来认证附加到数据消息的电子签名。
[0010] 账户持有者可以通过客户端设备向系统提交交易,所述客户端设备诸如个人计算机、膝上型计算机、智能电话或其他合适类型的设备。响应于用户输入,客户端设备可以生成数据消息,所述数据消息包括例如从第一方转移到第二方的交易量。所述交易可以涉及单种资产或多种资产,如在外汇交易中的情况。客户端设备可以直接向控制交易的处理的账本管理服务器发送数据消息。客户端设备还可以向其他服务器(诸如由商业银行维护的服务器)发送数据消息,并且这些服务器可以进而将消息中继到账本管理服务器。所述数据消息可以包括由客户端设备附加的电子签名。这些电子签名可以被账本管理服务器处理以核实数据消息是从客户端设备发送的并且是由相应账户持有者授权的。响应于核实所述电子签名,账本管理服务器可以采用处理器来标识与交易相关联的资产,核对可用结余,以及执行KYC验证。例如,其中第一方作为对欧元的兑换而从第二方购买美元的外汇交易的数据消息可以包括分别以“美元”和“欧元”的交易量。除了确定与交易相关联的资产之外,账本管理服务器还可以采用处理器来标识对该交易进行验证的资产验证服务器的集合。例如,每一个资产验证服务器可以与该交易中涉及的特定资产的发行机关相关联。响应于标识资产验证服务器的集合,账本管理服务器基于交易数据来创建数据消息,并将其发送到每一个资产验证服务器。作为创建数据消息的部分,账本管理服务器可以附加电子签名,所述电子签名可以被每一个资产验证服务器用于核实数据消息已经被账本管理服务器发送。
[0011] 与给定资产相关联的资产验证服务器创建并存储针对该给定资产的账本中所包括的账户结余的冗余记录。冗余记录可以被资产验证服务器采用以独立于账本管理服务器而核实账户持有者的结余。响应于从账本管理服务器接收到对应于交易的数据消息,资产验证服务器可以采用处理器来将存储在其记录中的账户结余与数据消息中所提供的交易量相比较。如果账户结余大于交易量(即,足够的资金可用),则资产验证服务器可以继续交易的处理。否则,资产验证服务器可以将数据消息传输到账本管理服务器以指示交易应被拒绝。资产验证服务器可以将电子签名附加到数据消息,其可以被账本管理服务器用于核实数据消息的真实性。
[0012] 如果资产验证服务器确定账户结余大于或等于针对数据消息中所包括的所有账户持有者以及针对其负责的所有资产的交易量,则资产验证服务器修改存储在资产验证服务器处的账户结余以保留等于交易量的结余,而同时交易继续被处理。例如,资产验证服务器可以采用单独的数据结构来更新与当前或未决交易相关联的支付量。通过保留可用结余的一部分来获得“影子结余”,资产验证服务器可以减少“重复付款”或“重放”的可能性。这样的重复付款或重放可能在比更新可用结余更快地处理交易的系统中发生。在这样的系统中,单独地满足但累积地超过可用结余的欺诈性交易可能被批准,因为系统可能在交易之间不更新可用结余。资产验证服务器通过维护影子结余来帮助消除这样的重复付款,而同时交易继续被处理。
[0013] 账本管理服务器还可以根据监管要求来执行KYC核对。账本管理服务器可以编制并在查找表中存储这样的KYC认证的指示,例如,当从KYC验证者(诸如,商业银行)接收到签名的消息中的这样的指示时。在一些方面中,KYC认证可以基于信任链。例如,如果对应KYC验证者指示它信任客户端和账本管理服务器(或与交易中所涉及的资产相关联的资产验证者)进而信任KYC验证者,账本管理服务器可以确定要接受KYC认证。如果账本管理服务器确定交易的任何一方不与有效KYC认证相关联,则账本管理服务器可以拒绝交易并且向交易中涉及的各方提供对应的签名的消息。
[0014] 对于涉及多于一种资产的交易而言,账本管理服务器从交易中所涉及的每一种资产的资产验证服务器接收单独的数据消息。响应于接收到消息,账本管理服务器确定数据消息中的一个或多个是否包括交易应被拒绝的指示(例如,由于不足的资金)。如果至少一个数据消息包括这样的拒绝,则账本管理服务器拒绝整个交易,并且不更新交易中所涉及的任何方的账本账户结余。相反,如果从资产验证服务器接收到的所有数据消息都包括交易应被批准的指示,则账本管理服务器更新在其加密账本的拷贝中维护的账户结余。
[0015] 账本管理服务器以数据消息的形式向资产验证服务器发送经更新的账本的部分。发送到特定资产验证服务器的数据消息可以仅包括针对以特定资产验证服务器维护的资产中持有的账户的结余。例如,可以向对于美元的验证服务器仅发送对应于以美元的账户的经更新的账本的部分。所述数据消息还可以包括完成的交易的列表,所述完成的交易已经连同其相应唯一标识符和交易量一起被并入经更新的账本。响应于接收到数据消息,资产验证服务器可以通过修改保留的和未决的支付的记录和账户结余来基于完成的交易的列表而更新其记录。例如,资产验证服务器可以从影子结余中移除完成的交易的交易量,因为完成的交易现在反映包括在经更新的账本中的账户结余中。资产验证服务器还可以更新对应于交易的列表中包括的交易的状态指示以表示它们已经完成并且不再未决。从账本管理服务器到资产验证服务器的账户结余的周期性传输帮助确保加密账本的分布式且冗余的拷贝保持一致,所述拷贝分别在账本管理服务器和资产验证服务器处维护。
[0016] 总而言之,本文所述的系统和方法通过提供可以大体上实时地操作的系统架构而解决了在当前兑换过程中产生的显著时间延迟的问题。所述系统和方法进一步通过对兑换过程的成分进行可以满足KYC标准的身份核对而解决了缺乏对参与当前兑换过程的各方的身份核实的问题。所述系统和方法进一步解决了向不需要知道或以其他方式访问关于账户结余或交易的信息的第三方公开该信息的问题,并且从而与当前兑换过程相比可减少了进行交易的成本。
[0017] 根据本公开的实施例,提供了用于大体上实时地修改具有多个账户的数据表的系统和方法。所述系统和方法可以接收修改从多个账户中选择的账户的请求,其中所选的账户包括至少一种资产;以及基于接收的请求和所述至少一种资产而确定验证者的身份,其中所述验证者被配置成大体上实时地验证所述请求。所述系统和方法还可以在验证者验证了所述请求的情况下大体上实时地修改所述数据表。
[0018] 在一些实现方式中,所述验证者可以是第一验证者,并且所述至少一种资产可以包括第一和第二资产。所述系统和方法还可以包括基于接收的请求而确定第二验证者的身份,其中第二验证者针对第二资产大体上实时地验证所述请求。
[0019] 在一些实现方式中,所述数据表被修改成处理支付交易或存款交易,所述至少一种资产对应于货币或债券,并且所述验证者是货币或债券的发行机关。在一些方面中,货币或债券的发行机关是对于发行货币的中央银行或者发行债券的债券持有者的代理。在一些实现方式中,所述数据表被修改成处理外汇交易,以及第一资产对应于第一货币并且第二资产对应于第二货币。另外,第一验证者对应于第一货币的第一发行机关,并且第二验证者对应于第二货币的第二发行机关。在其他实现方式中,接收的请求包括对多个账户中的若干账户的修改,所述验证者是多个验证者中的第一验证者,并且所述多个验证者中的每一个与不同的资产相关联。另外,所述系统和方法包括基于接收到的请求而确定针对多个验证者的多个身份,其中所述多个验证者中的每一个大体上实时地验证所述请求。
[0020] 在一些实现方式中,所述系统和方法可以对数据表中的多个账户不同地加密,使得由第一验证者用于访问第一资产的数据的解密过程不能用于访问第二资产的数据。
[0021] 在一些实现方式中,所述验证者可以基于从针对账户和至少一种资产的数据表检索的公布的结余而确定是否验证了所述请求,以及通过使公布的结余减少与未决和保留的支付相关联的影子结余来计算可用结余。所述系统和方法还可以在可用结余大于或等于所述请求的交易量时批准所述请求,以及在可用结余小于所述请求的交易量时拒绝所述请求。在一些实现方式中,所述验证者存储与未决和保留的支付相关联的影子结余和数据表的冗余拷贝。
[0022] 在一些实现方式中,所述验证者基于核实与账户相关联的一方是否被授权来执行所述请求而确定是否验证了所述请求。
[0023] 在一些实现方式中,所述验证者存储数据表的冗余拷贝,并且所述系统和方法还包括响应于修改数据表而向验证者发送数据表的经修改的部分。在一些实现方式中,数据表的冗余拷贝被加密以防止验证者访问与所述至少一种资产不同的资产的数据。附图说明
[0024] 为了解释的目的,在以下各图中阐述若干实施例。
[0025] 图1是维护和更新分布式账本的分布式计算机系统框图;图2是图示了可见性约束的分布式账本的示图;
图3是账本管理网络的框图;
图4描绘了用于在分布式账本中存储账本结余和账户信息的示例性数据结构;
图5是用于基于从验证服务器接收到的数据消息而更新分布式账本的过程的流程图,所述验证服务器均存储账本的部分、冗余的拷贝;
图6是使用公共和私有密钥的认证方法的示意图;以及
图7是通过账本管理服务器702和两个资产验证服务器来处理交易的流程图。

具体实施方式

[0026] 在以下描述中,为了解释的目的而阐述多个细节。然而,本领域普通技术人员将认识到本文所述的实施例可以在不使用这些具体细节的情况下实践。在其他实例中,熟知的结构和设备以框图的形式示出以免用不必要地细节使所述描述模糊。
[0027] 图1是维护和更新分布式账本的分布式计算机系统100的说明性框图。计算机系统100包括账本管理服务器102、账户操作者服务器120、资产验证服务器130、132和142、代理验证服务器140以及KYC验证服务器150。账本管理服务器102可以直接连接到客户端112-
116,并且可以通过账户操作者服务器120连接到客户端122-126。在一个示例中,计算机系统100的服务器可以是独立服务器,其通过合适的网络接口连接到彼此。在另一个示例中,计算机系统100可以实现在基于的计算环境中。在该情况下,计算机系统100的服务器可以均实现为在一个或多个物理服务器上运行的虚拟机
[0028] 客户端112-116(一般地,客户端112)和客户端122-126(一般地,客户端122)可以被账户持有者采用以访问存储在分布式账本中的结余。客户端112可以是个人计算机、膝上型计算机、智能电话或任何其他合适的计算设备。客户端112可以包括处理器和存储电路,所述存储电路存储使得客户端112能够与账户操作者服务器120或账本管理服务器102交换信息(例如,以数据消息的形式)的软件或其他指令。在一个示例中,通过账户操作者服务器120将客户端122耦合到账本管理服务器102可以改进系统100的可缩放性,因为可以存在比账户操作者多得多的客户端。
[0029] 客户端122可以存储针对与客户端122相关联的账户持有者的账户结余。可替代地或附加地,客户端122还可以使账户操作者服务器120存储账户结余。在一个示例中,客户端122可以在账户操作者服务器120上排他地存储账户信息,因为客户端122可能易受盗窃的伤害(例如,如果客户端122是移动设备),或者可能具有被非法访问(例如,通过黑客行为(hacking))或被篡改(例如,通过感染软件病毒)的较高机会。账户操作者服务器120可以包括处理器和存储电路,所述存储电路用于存储每个账户持有者的账户信息,并且将分布式账本中持有的账户结余与账户持有者所维护的常规银行账户(例如,支票账户或储蓄账户)相关联。例如,账户操作者服务器120可以是商业银行服务器。
[0030] 账本管理服务器102存储分布式账本的主拷贝,其包括针对系统100中的所有账户持有者的账户结余。每一个账户持有者的账户可以包括多种资产中的结余。账本管理服务器102可以采用处理器来处理以数据消息的形式从客户端122(可能地通过账户操作者服务器120)接收到的交易。交易可以涉及单种资产或多种资产(例如:在外汇交易的情况下,将存在二者都是货币的两种资产)。账本管理服务器102可以耦合到资产验证服务器130和132(一般地,资产验证服务器130),并且通过账本管理服务器102对交易的处理可以包括在账本管理服务器102和资产验证服务器130之间交换数据消息。
[0031] 资产验证服务器130可以包括处理器和存储电路,所述存储电路被配置成存储分布式账本的冗余拷贝。冗余拷贝的存储可以改进账本的鲁棒性、可靠性和安全性,因为为了伪造或以其他方式更改由加密分布式账本所存储的账户结余,将需要修改若干冗余拷贝。由于账本管理服务器102和资产验证服务器130独立于彼此来操作,因此使得兼顾两个服务器的任务更困难。
[0032] 为了避免账本的分布式拷贝使账户结余对一般市场可见,账本管理服务器102和资产验证服务器130还可以通过要求用户名和口令、两因素认证或其他合适形式的访问控制来获得对所存储的账本的读取或写入访问而控制到所存储的账本中的可见性。另外,虽然账本管理服务器102可以完全访问分布式账本,但资产验证服务器130可以仅被授予对账本的包括被资产验证服务器130验证的特定资产的账户结余的那些部分的访问。例如,每一个验证服务器130和132可以与资产(例如,诸如美元或欧元之类的法定货币、诸如比特币或瑞波币之类的密码货币或任何其他合适类型的资产,诸如债券)相关联,并且可以被该资产的发行机关(例如,针对该货币的中央银行或债券的债券发行方)所操作。在这样的场景中,资产验证服务器130可以确保存储在系统100的账本中的资产的每一个单元被由对应资产验证者所持有或控制的资产的“真实生活”单元所支持。因而,账本可以通过对监管者透明来维护顾客信心,所述监管者监督给定资产的供给而不向一般市场揭露机密交易信息。
[0033] 可能的是,不是所有资产发行机关都选择提供资产验证服务器,所述资产验证服务器大体上实时地与账本管理服务器102交换数据消息。对于这样的资产,代理可以借助于代理验证服务器140来验证交易。代理验证服务器140可以类似于资产验证服务器130和132;然而,因为代理验证服务器140不受资产发行机关控制,所以代理验证服务器140可能不能直接确保系统100的账本中存储的资产的每个单元被资产的“真实生活”单元支持。为了增加客户端信心,代理验证服务器140还可以连接到由相应资产发行机关控制的资产验证服务器142。虽然资产验证服务器142可能不存储或控制分布式账本,但资产验证服务器
142可以被配置成核实由代理验证服务器140维护的组合账本结余由第三者暂管账户中的对应“真实生活”资金所支持。资产验证服务器142可以实时地控制第三者暂管账户中持有的资金量,并且可以基于针对资产的需求和供给而持续地更新第三者暂管账户中的结余。
代理验证服务器140可以被配置成实时地将第三者暂管账户中的资金与账本中的账户结余相关联,以使得代理验证服务器140和资产验证服务器142的组合操作提供账本中的结余与相应资产的“真实生活”单元的类似一对一对应性。
[0034] 账本管理服务器102和资产验证服务器130可以耦合到账户操作者服务器120。账户操作者服务器120可以采用处理器和存储电路来代表客户端(例如,客户端122-126)将账本账户信息与顾客信息链接。账本管理服务器102还可以耦合到KYC验证服务器150。KYC验证服务器150可以创建和存储电子记录,所述电子记录包含KYC信息,诸如税标识号、支票账户号或储蓄账户号、护照或驾驶证号或者任何其他合适形式的个人标识。账本管理服务器102可以通过交换数据消息来访问由KYC验证服务器150所存储的KYC信息。例如,账本管理服务器102可以向KYC验证服务器150发送包括交易的各方的指示的消息连同核实数据消息的真实性的信息(例如,账本管理服务器102的电子签名)。响应于接收到所述消息,KYC验证服务器150可以基于在数据消息中包括的账户信息而访问顾客记录,并且可以检索KYC状态。KYC验证服务器150可以采用处理器来响应于从账本管理服务器102接收到的请求而准备数据消息,并且可以将其连同其电子签名一起发送到账本管理服务器102。重要的是要注意到,账本管理服务器102和资产验证服务器130不需要实时地或针对每一个交易访问KYC信息。例如,账本管理服务器102可以存储针对客户端112获得的KYC信息,并且使用该信息来执行KYC核对。因此,在KYC验证服务器150和账本管理服务器102之间交换的以上提及的数据消息不是对于每一个交易所必要的,这帮助减少处理交易所需的时间。
[0035] 图2示出了图示可见性约束的分布式账本200的示图。为了说明,账本200被示出为表,其包括包含每个客户端的账本账户结余的行210和对应于不同资产的列212。对于每一个客户端,账本200包含每个资产至少一个账本账户结余。例如,与客户端A相关联的账户持有者具有AUSD美元、AEUR欧元、AGBP英镑和AJPY日元的账户结余。一些客户端可以仅维持针对可用资产的子集的账户结余。账本200中存储的记录可以包括特定资产没有被使用的指示。例如,客户端B具有针对美元的账本账户结余,但没有针对欧元的账户结余。保留值可以被存储在账本200中,而不是关联零结余以指示客户端B一般不执行涉及给定资产的交易。在一些方面中,另一个保留值可以用于指示不准许客户端执行针对某个资产的交易(例如,由于监管或AML条例)。例如,可能不准许客户端C执行涉及日元的账本交易,其在账本的对应条目中由“X”表示。
[0036] 如关于图1所讨论的,系统100提供交易的快速处理,所述交易可以由监管者验证但是对市场不透明。账本200的组织说明了由系统100实施的可见性约束。例如,虽然账本管理服务器102可以访问账本200整体,但资产验证者可以受限访问关于由资产验证者所验证的特定资产的账本账户结余。例如,针对美元的资产验证者(例如,资产验证者130)可能仅可以访问账本部分202。类似地,针对日元的资产验证者(例如,资产验证者132)可能仅可以访问账本部分204。另一方面,对应于特定账户持有者的客户端可以访问与所述客户端关联的所有账本账户结余,诸如账本部分206,其包括以美元、英镑和日元的账本账户结余。
[0037] 在一些方面中,客户端A可以发起与客户端D的交易,诸如外汇交易。例如,客户端A可以从客户端D购买A'USD作为对D'JPY日元的兑换。该交易涉及两种货币,即美元和日元。账本管理服务器102可以从请求交易的客户端A和D接收单独的数据消息,并且可以控制交易的处理。这样,账本管理服务器102可以完整访问客户端A和D的账本账户结余。然而,资产验证服务器130和132可能仅可以访问账本的部分。例如,资产验证服务器130可以验证交易的美元部分,并且可以因此访问包括账本账户结余AUSD和DUSD的账本部分202。类似地,资产验证服务器132可以验证交易的日元部分,并且可以因此访问包括账本账户结余AJPY和DJPY的账本部分204。
[0038] 图3是账本管理网络300的框图。账本管理网络300包括账本管理服务器310、资产验证服务器330、账户操作者服务器340和KYC验证服务器360。账本管理服务器310和资产验证服务器330交换数据消息以便维护服从可见性约束的分布式账本200的冗余拷贝,所述可见性约束允许由监管者所要求的透明性而同时使账本账户结余以其他方式对一般市场不可访问。账本管理服务器310控制交易的处理并且与资产验证服务器330交换数据消息以核实交易的真实性和准确性。除非账本管理服务器310从资产验证服务器330接收到批准交易的数据消息,否则账本管理服务器310可能不批准该交易。在一些方面中,通过资产验证服务器330的该验证提供了账本账户结余具有与通过与资产验证服务器330关联的资产的发行机关控制的资产的单元的一对一对应性。类似地,账本管理服务器310可以向KYC验证服务器360发送数据消息以请求交易中所涉及的各方的KYC状态的验证。然而,账本管理网络300可能不要求针对每一个交易核实KYC信息。例如,KYC信息可以被存储在账本管理服务器
310处或资产验证服务器330处,并且可以仅在预定时间被更新(例如,通过与KYC验证服务器360交换数据)。KYC信息的更新可以由账本管理服务器310请求,或者它可以被KYC验证服务器360推送到账本管理服务器310。
[0039] 账本管理服务器310包括处理服务器324和网络接口316,二者都连接到总线326。网络接口316可以实现账本管理服务器310、资产验证服务器330、账户操作者服务器340和KYC验证服务器360之间的数据消息的交换。网络接口316还可以用于直接与客户端112交换数据消息。处理服务器324可以控制由账本管理服务器310执行的处理和数据交换。处理服务器324还可以包括认证和加密电路,以验证与数据消息相关联的签名,并且实施账本200服从的访问约束。总线326还耦合到资产验证者数据库320、KYC状态数据库322和访问控制电路318。访问控制电路318限制对钱包数据库312和结余数据库314的访问。
[0040] 在一些方面中,资产验证者数据库320直接耦合到总线326,因为账本管理服务器310使存储在资产验证者数据库320中的信息可访问而没有访问限制。相比而言,访问控制电路318可以控制对钱包数据库312和结余数据库314中存储的信息的访问。在一些方面中,资产验证者数据库320存储每个资产的指针列表、网络地址或资产验证服务器(例如,资产验证服务器330)的其他合适的标识。
[0041] 作为处理交易的部分,账本管理服务器310针对交易中涉及的每一种资产请求来自至少一个验证服务器的验证。然而,可以每个资产地提供多个资产验证服务器。当多个资产验证服务器可用时,资产验证服务器330可以在多个资产验证服务器之间分布交易的处理。多个资产验证服务器还可以存储分布式账本的较大量冗余拷贝。较大量账本拷贝还可以加强账本管理网络300针对恶意行为者或欺诈性交易的应变(resilience)。
[0042] 账本管理服务器310还包括钱包数据库312和结余数据库314,其被配置成存储由账本管理服务器310维护的账本账户结余的拷贝。在一些实施例中,钱包数据库312可以存储由给定客户端持有的所有资产连同诸如常规银行账户号以及密码代码(例如,客户端的公共密钥)之类的其他标识信息。每个资产的由客户端持有的账本结余可以存储在结余数据库314中,如将关于图4讨论的。在其他实施例中,钱包数据库312和结余数据库314可以被组合,并且可以在公共数据结构中每客户端地存储资产和对应账户结余二者。账本管理服务器310可以通过使用访问控制电路318来限制对存储在钱包数据库312和结余数据库314中的信息的访问。访问控制电路318可以限制特定客户端对由与特定客户端相关联的账户持有者所持有的账户的访问。访问控制电路318可以通过在提供对数据库的访问之前要求用户名和口令或两因素认证来提供这些访问限制。账本管理服务器310还可以完全访问钱包数据库312和结余数据库314。然而,访问控制电路318可以确保由钱包数据库312和结余数据库314存储的账本结余对一般市场不可访问。
[0043] 账本管理服务器310包括KYC状态数据库322。账本管理服务器可以采用处理服务器324来每客户端或每账户地存储KYC状态信息(例如,标识客户端的账户是有效的还是无效的信息)。账本管理服务器310可以利用KYC状态数据库322来避免每次处理交易时对于与KYC验证服务器360交换KYC数据的需要。确切地说,账本管理服务器310可以通过与KYC验证服务器360交换数据消息而在预定时间更新KYC状态数据库322,而是以其他方式作为处理交易的部分而大体上实时地从KYC状态数据库322检索KYC状态信息。在一些实施例中,资产验证服务器330可以以与账本管理服务器310类似的方式存储KYC状态信息。例如,资产验证服务器330可以采用处理服务器334来每客户端或每账户地存储KYC状态信息,并且可以在批准从账本管理服务器330接收的交易之前执行KYC状态核实。类似于账本管理服务器310,资产验证服务器330可以采用所存储的KYC状态信息(而不是针对每个交易与KYC验证服务器360交换数据消息)以便减少处理交易所花费的时间。
[0044] 类似于账本管理服务器310,资产验证服务器330包括网络接口332和处理服务器334,二者都连接到总线339。总线339还耦合到资产结余数据库336、未决结余数据库337和保留结余数据库338。类似于账本管理服务器310,网络接口332可以用于与账本管理服务器
310和账户操作者服务器340交换数据消息。在一些方面中,网络接口332可以连接到附加资产验证服务器。账本管理服务器310或资产验证服务器330可以控制附加资产验证服务器并且在附加资产验证服务器之间分布与交易关联的负载。附加资产验证服务器还可以提供免受未授权交易之害的附加保护,因为每一个附加资产验证服务器可以存储分布式账本的冗余拷贝。处理服务器334可以被采用来认证从账本管理网络300中的其他服务器接收的数据消息。
[0045] 资产结余数据库336、未决结余数据库337和保留结余数据库338可以存储账本200的部分拷贝,其包括针对由资产验证服务器330验证的资产的账本账户结余。例如,如果资产验证服务器330验证以美元的所有交易,资产结余数据库336、未决结余数据库337和保留结余数据库338将存储以美元的所有账本账户结余。然而,在该情况下,资产验证服务器330将不可以访问其他资产(诸如,欧元或日元)的账本账户结余。在一些方面中,资产结余数据库336可以存储针对之前已经被资产验证服务器330批准并且由账本管理服务器310报告了针对其的交易完成的交易的账本账户结余的拷贝作为账本更新的部分。此外,保留结余数据库338可以存储支付结余,所述支付结余已经由资产验证服务器330批准但尚未由账本管理服务器310报告为完整的。针对每个账户结余,可以仅记录支出支付而没有收入支付,并且因而未决结余数据库338中的结余可以是非负的。类似地,未决结余数据库337可以存储针对已经被资产验证服务器330验证并且被账本管理服务器310签名但尚未包括在经更新的资产结余数据库中的支付的结余。
[0046] 未决结余数据库337和保留结余数据库338一起帮助防止“重复付款”或“重放”。使用存储在未决结余数据库337和保留结余数据库338中的信息,资产验证服务器330可以使资产结余数据库336中维护的公布的账本结余减少存储在未决结余数据库337中的量(例如,未决支付的总和)以及减少存储在保留结余数据库338中的量(例如,保留支付的总和)。所得到的结余称为“影子结余”,并且计及已经由资产验证服务器330处理但尚未被账本管理服务器310在经更新的账本拷贝中报告为“完整”的交易。作为结果,防止对“重复付款”的尝试(例如,通过快速连续地提交多个交易),因为资产验证服务器330响应于验证每一个交易而更新“影子结余”。
[0047] 类似于账本管理服务器310,KYC验证服务器360可以包括网络接口362和处理服务器364,二者都连接到总线369。KYC验证服务器360可以使用网络接口362来与账本管理服务器310和资产验证服务器330交换数据消息。处理服务器344可以认证从账本管理网络300中的其他服务器接收或发送到所述其他服务器的数据消息。KYC验证服务器360还包括KYC数据库366,其可以存储顾客标识。在KYC数据库366中存储的信息可以用于确保依从KYC要求。例如,在预定时间,账本管理服务器310可以向KYC验证服务器360发送数据消息以核实一方的KYC状态。KYC验证服务器360可以在KYC数据库366中存储相关KYC状态。响应于来自账本管理服务器310的请求,KYC验证服务器360可以基于客户端标识符(例如,客户端的公共密钥)来搜索KYC数据库366并且检索客户端的当前KYC状态。KYC验证服务器360然后可以将数据消息传输回到账本管理服务器310。应注意的是,KYC状态不需要实时地针对每一个交易被核对。而是,账本管理服务器310和资产验证服务器330可以在预定时间访问KYC信息,并且使用本地存储的状态用于处理交易。
[0048] 类似于账本管理服务器310,账户操作者服务器340可以包括网络接口342和处理服务器344,二者都连接到总线349。账户操作者服务器340可以充当针对各方的账户处理器,所述各方偏好关于账本账户结余的信息在账户操作者服务器340上维护而不是在其相关联的客户端(例如,客户端112)上维护。在该场景中,账户操作者服务器340本质上代替客户端供应之前提及的过程。账户操作者服务器340可以在账户数据库346中存储关于账本账户结余的信息。在一些实施例中,账户操作者服务器340和KYC验证服务器360可以组合成在单个服务器架构中实现。
[0049] 在一些实施例中,由账本管理服务器310和资产验证服务器330存储的分布式账本的冗余拷贝可以以加密的形式存储。账本管理服务器310可以通过采用加密过程来控制到分布式加密账本中的可见性,所述加密过程对账本的各部分不同地编码,以使得允许对账本的第一部分的访问的解密过程不能用于访问账本的第二部分。例如,账本管理服务器310可以对与第一资产(例如,美元)相对应的结余进行加密,以使得只有由第一资产验证服务器(例如,美联储处的服务器)所使用的解密过程可以对结余进行解密。同时,账本管理服务器310可以对与第二资产(例如,欧元)相对应的结余进行加密,以使得由第一资产验证服务器(例如,美联储处的服务器)所使用的解密过程不能对第二资产的结余进行解密,而只能对与第一资产相对应的结余进行解密。在一些方面中,账本管理服务器310和资产验证服务器330可以交换分布式加密账本的拷贝以确保账本跨账本管理网络300中的服务器是一致的。尽管资产验证服务器可以仅能够访问分布式加密账本的部分,但可以合期望的是,以其整体交换账本的拷贝,例如为了记录保持或针对账本管理服务器310的故障的改进的鲁棒性。
[0050] 图4描绘了用于在分布式账本中存储账本结余和账户信息的示例性数据结构400。数据结构400包括钱包表410、KYC验证者表440和资产表450。钱包表410包括数据的列表,所述数据块中的每一个存储与特定客户端(诸如,客户端410a-410c)相关联的账本结余。针对具有钱包表410中的条目的每一个客户端,钱包表410的数据块(例如,客户端410c的数据块)可以包含公共密钥412、资产414、账户信息416、每账户结余418、KYC批准状态420和密码签名的KYC批准消息的拷贝以及针对任何附加签名列表的额外的签名字段422,所述附加签名可以被要求以处理针对账户416的交易。公共密钥412可以被服务器用来跨账本管理网络
300核实从客户端或服务器接收的消息的真实性。资产414可以指示一种或多种货币或其他资产,客户端维持针对所述资产的账本结余。账户信息416可以包括常规银行账户信息(例如,对应于支票账户或储蓄账户,或者针对抵押物的委托保管账户),并且每资产若干账户可以是可能的。货币可以包括诸如美元或欧元之类的法定货币,但是还包括其他类型的货币,诸如密码货币(例如,比特币或瑞波币),或者任何其他合适形式的货币或资产。数据块
410c可以存储与每一个账户416相关联的账本结余418。在一些方面中,单独的结余表可以在账本中维护,并且可能不被并入数据块410c中。在一些实施例中,与数据块410c分离地维护结余表可以是有益的,因为它提供更颗粒状的访问限制,诸如与数据块410c相比,针对结余表的更高隐私性级别。数据块410c还可以包括每账户KYC状态420,其包括账户416是否已经被在参考KYC验证者表440中列出的批准的KYC验证者444之一核实为KYC依从的指示以及还有针对参考KYC验证者表440的验证者的ID。例如,针对与数据块410c相关联的特定客户端,“花旗银行”可以是针对以美元的账户之一的KYC验证者,“德意志银行”可以是针对以欧元的账户之一的KYC验证者,等等。此外,数据块410c可以包括C.C.交易列表424,存储关于交易的需要被告知的(例如,抄送的(carbon copied))额外方的身份的字段。C.C.交易列表
424可以每客户端地存储,如在图4中示出的,在该情况下被通知关于交易的各方不依赖于在交易中涉及哪些客户端的账户。C.C.交易列表424还可以每账户地存储(例如,作为账户信息416的部分)。在该情况下,可以取决于在交易中涉及哪些客户端的账户而将交易通知不同方。C.C.交易列表424中的条目可以具体地标识要被通知的各方,并且可以包括与交易相关联的附加标识符。
[0051] 每账户KYC状态416可以由在KYC验证者表440中列出的KYC验证者444建立。另外,KYC验证者表440可以包括指针442,所述指针442可以标识在KYC验证者列表444中列出的每个KYC验证者。每个KYC验证者444可以被针对对应资产452的资产表450中的资产验证者454(例如,中央银行)批准。资产表450可以针对每个资产验证者454存储公共密钥455,所述公共密钥455可以被其他方采用来核实从资产验证者454接收的数据消息的真实性。另外,资产表450包括指针456的列表,所述指针456与指针442链接,以使得每个验证者454可以与针对资产452的KYC验证者444中的一组批准的KYC验证者链接。例如,对于美元,美联储可以充当资产验证者,并且美国银行和花旗银行可以在批准的KYC代理之中。在一些方面中,资产表450可以是全局数据结构,其不链接到特定客户端或数据块410c。KYC验证者表440可以针对每个资产验证者444存储公共密钥445,所述公共密钥445可以被其他方采用来核实从KYC验证者444接收的数据消息的真实性。
[0052] 图5示出用于基于从验证服务器接收到的数据消息而更新分布式账本的过程500的流程图,所述验证服务器均存储账本的部分、冗余的拷贝。过程500可以在步骤502处从交易中涉及的各方(例如,客户端112或122)接收输入,而过程500的剩余步骤可以由账本管理网络300执行。如关于图3所讨论的,交易的成功处理可以使账本管理服务器102接收来自资产验证服务器(例如,资产验证服务器330)的验证以及KYC核实(例如,来自KYC验证服务器360)。
[0053] 过程500可以在步骤502处通过从作为交易中的各方的客户端接收认证请求来开始。客户端对账本管理网络300的访问可以通过两因素认证机制或通过提供用户名和口令来保护。在一些方面中,用户名可以具体地标识客户端(例如,客户端112),并且可以链接到分布式账本中的客户端的账户。客户端用于提交具有其交易请求的数据消息的认证过程以及接口可以是特殊设计的应用程序接口(API)的部分。一旦客户端获得对账本管理网络300的访问,客户端用来访问账本管理网络300的API可以从客户端收集并且可以存储关于所请求的交易的信息,诸如交易中涉及的资产、要转移或交换的账本结余以及对于处理交易所需的任何其他相关信息。在一些方面中,诸如在外汇交易中,其中交易涉及多个客户端,所述客户端还可以输入关于其他方的信息(例如,其相应公共密钥或账户信息),所述其他方之前已经通过其他手段(例如,通过语音、通过电子邮件、或通过常规外汇贸易或处理平台)同意为交易的部分。交易中涉及的每一个客户端可以将其相应签名单独地附加到数据消息。签名标识与交易请求和交易细节相关联的各方。客户端可以通过对与由所述客户端请求的交易的细节相对应的数据散列化并且然后使用客户端的私有密钥对所得到的散列进行加密以获得加密的签名来生成其相应签名,如将更详细地关于图6所描述的那样。
[0054] 在步骤504处,过程500可以接收通过已经由账本管理服务器310认证的客户端的多个交易请求。账本管理服务器310和通过API访问账本管理服务器310的客户端设备之间的连接可以使用常规认证协议(例如,“Oauth”协议)来认证。在步骤506处,过程500可以验证与交易请求相关联的每一方的签名。过程500可以通过对签名进行解密以获得散列来确定每一个客户端的签名的有效性。然后可以将散列与从数据消息独立地获得的另一散列相比较,如将关于图6所描述的那样。
[0055] 如果过程500确定签名有效,则在步骤508处,过程500可以确定交易的处理是否要求任何附加签名。例如,针对给定客户端的KYC策略可以通过在数据块410c的额外签名字段422中添加额外签名来要求其他方确认被特定个体请求的交易,如关于图4所描述的那样。
如果要求附加签名,则在步骤510处账本管理服务器310可以在继续过程500之前收集并验证附加签名。账本管理服务器310还可以检查交易的任何方是否尚未提供其签名。例如,交易可以涉及多个客户端,并非其全部可能已经在步骤504处提供了签名的数据消息。因此,账本管理服务器310可以标识所请求的交易的类型,并且发送针对任何缺失的签名的请求。
例如,在外汇交易中,其中交易涉及多个客户端,由客户端使用API发送的交易信息还包含关于可能参与交易的其他方的信息。在一些实施例中,这些方之前已经通过其他手段(例如,通过语音、通过电子邮件或通过常规外汇贸易或处理平台)同意为交易的部分,并且在交易中对其他参与者是已知的。在步骤510处,账本管理服务器310可以在C.C.交易列表424中添加参与者的身份并且在额外签名422中添加其签名。当来自请求多方交易的第一客户端的数据已经在步骤504处被账本管理服务器310接收并且被认证时,这些数据表可以开始被填充。然后,额外签名表422被标记为不完整,当各方登录到系统中并提交针对相同交易的请求时,在C.C.交易列表424中列出的所述方的身份被核对并且一对一地匹配到额外签名表422。当所有方已经同意交易时,额外签名表422被标记为完整的,并且过程500继续到下一步骤。账本管理310可以使用硬件或软件控制来实现超时机制,所述硬件或软件控制设置用于步骤510的时间窗口,其中交易中的所有方同意为交易的部分。这样,过程500可以核实交易中涉及的所有方已经给出是交易的部分的授权,并且已经互相承认其他方参与相同的交易。
[0056] 在请求针对交易的所有所需签名之后,在步骤511处,过程500可以匹配各方之间的交易。例如,账本管理服务器310可以通过标识已经提交交易以出售第一资产作为对第二资产的交换的一方来处理外汇交易。账本管理服务器310可以处理该方的交易,并且将其与已经由另一方接收的另一交易匹配,从而寻求出售第二资产作为对第一资产的交换。在一些情况下,匹配各方之间的交易可能不是必要的,诸如为了支付交易,或为了其中两方或多方已经事先同意执行交易的交易。
[0057] 在步骤512处,过程500可以针对每一个客户端核对KYC状态。在一些方面中,这样的KYC核对可以依据法律来强制执行,并且账本管理服务器310可以被配置成在批准对分布式账本的任何修改之前执行这样的KYC核对。为了完成KYC核对,账本管理服务器310可以核对链接到账本中的每一个客户端账户的银行账户细节已经被KYC验证者核实和签名。批准的KYC验证者的列表可以存储在KYC状态数据库322(例如由账本管理服务器310维护)中。可以使用类似于资产表450和KYC验证者表440的数据结构,如关于图4讨论的那样。
[0058] 在步骤514处,过程500可以确定是否所有方的KYC状态有效。如果任何一方与无效KYC状态相关联,则过程500可以整体拒绝交易,并且可以防止任何一方的账本账户结余被更新。否则,过程500可以在步骤517处确定账本管理服务器310处存储的账本结余大于或等于交易的支付量。如果账本管理服务器310确定账本结余是足够的,则过程500使账本管理服务器310在步骤518处对交易进行签名,并且将具有交易细节的数据消息转发到资产验证者(例如,资产验证服务器330)。相反,如果账本管理服务器310确定账本结余小于支付量,则交易可以被拒绝。在一些方面中,账本管理服务器310可以确定交易需要被转发到哪些资产验证服务器。例如,账本管理服务器310可以包括存储资产验证者列表(例如,资产验证者表450)的数据库。账本管理服务310可以确定交易中所涉及的资产并且将具有交易细节的数据消息转发到从资产表450获得的资产验证者。
[0059] 在步骤520处,过程500可以从与交易关联的资产验证者接收批准或拒绝二者之一。通过资产验证者对交易的批准机制可以包括交易中涉及的两个客户端的签名的验证以及与账本管理服务器310相关联的签名的验证。在已经验证签名之后,资产验证服务器可以将所提出的交易量与每一个客户端的当前可用结余或“影子结余”相比较。针对给定资产的客户端的影子结余可以对应于针对该客户端的最后公开的资产账本结余量减去标记为“未决”或“保留”的所有支付的累积结余。未决支付可以对应于已经被包括在从账本管理服务器310接收的最近账本结余更新中的完全签名的、批准的支出支付。保留支付可以对应于已经部分签名并且尚未被账本管理服务器310批准的支出支付。如果该影子结余足以覆盖所请求的交易,则针对这样的交易所要求的量被添加到“保留”量以防止重复付款或“重放”。资产验证服务器还可以执行任何附加非公开核对,如由条例或法律所要求的。此外,资产验证服务器可以执行KYC验证的附加层。这时候,如果所有核对通过,则资产验证服务器对交易进行签名,并且将其转发到账本管理服务器310。
[0060] 在步骤522处,过程500可以确定任何资产验证服务器是否已经拒绝了交易或者任何KYC核对是否已经失败。如果是这样的话,则过程500可以在步骤524处确定交易应被拒绝。相反,过程500可以确定交易适合于批准。然后,过程500可以在步骤526处确定交易是否应被批准并且标记以供公布在账本中。
[0061] 账本管理服务器310可以采用共识过程,所述共识过程处理从资产验证服务器接收的完全批准的消息以便将其包括在账本的新版本中。账本管理服务器310可以周期地执行共识过程。在一个示例中,由账本管理服务器310执行的共识过程可以确定包括那些交易,如果从资产验证服务器接收的所有消息批准包括那些交易的话。否则,如果共识过程确定消息中的至少一个拒绝那些交易,则所提出的新账本可以整体被拒绝,并且过程以交易的更新集合重复。在另一个示例中,由账本管理服务器310执行的共识过程可以仅要求从资产验证服务器接收的数据的至少某部分批准新账本。例如,如果从针对该资产的资产验证服务器接收的消息的多于80%批准该交易,则共识过程可以确定针对每一个资产的新账本应被批准。在要包括在新账本中的交易的候选列表中,每一个交易可以具有相关联的“交易ID”,并且可以被列出在签名的交易消息的散列旁边。该散列可以被资产验证服务器使用以快速地与其已经批准的交易比较以便标识交易中的所有参与者(例如,客户端和验证者)以及交易的量和资产。在一个示例中,同意新账本的过程可以用于将更新合并到每一个资产验证者处的分布式账本,例如以便移除针对已完成交易的“未决”或“保留”状态并且更新资产结余数据表336。
[0062] 在步骤518和520之间,过程500还可以执行反洗钱(AML)核对。例如,资产验证服务器(例如,资产验证服务器330)可以采用处理服务器334来收集交易历史并且生成关于账户活动的统计数据。资产验证服务器330还可以使用检测过程来分析所收集的数据和标志活动,其匹配可疑模式或其他类型的不规则账户活动。响应于将活动标志为可疑的,资产验证服务器330可以生成警告消息。警告消息可以使受影响的账户的KYC状态被改变成“未批准”,从而阻止与该账户相关的交易被批准。
[0063] 过程500可以在需知(need-to-know)的基础上公布账本。本公开的重要方面是账本管理网络300维护分布式账本而不向一般市场显露敏感信息而同时向监管者提供必要透明性以验证交易的能力。在一些方面中,完全账本被账本管理服务器310存储,并且冗余部分拷贝被资产和KYC验证者保存。在存储在账本管理服务器310处和资产验证服务器处的分布式账本的冗余拷贝中包含的数据被保持同步,并且针对资产验证服务器与账本管理服务器之间的通信所要求的电路可以被设计成诸如避免账本中的交易公开之间的延迟,以及完全账本与验证者处保存的部分片段之间的交叉验证的过程。在一些实施例中,甚至账本的完全冗余拷贝可以被资产验证服务器和账本管理服务器存储,从而降低外部干扰或系统范围故障的风险。认证技术可以提供对账本结余的完全访问仅在账本管理服务器处可用,而资产验证服务器仅能够访问分布式账本的其相应部分。
[0064] 图6图示了联合地描述认证交易的过程的两个互相关的高级框图600和650。示图600详细描述用于由寻求认证的一方从第二认证方生成签名的数据的过程。示图600包括要被认证的原始数据602、处理原始数据以产生散列606的散列函数604,用私有加密密钥608生成的加密签名610、和从将加密签名610附加到原始数据602所得到的新的数据结构612。
[0065] 如示图600中描述的签名的数据的生成可以开始于对原始数据602散列化。散列化基于散列函数604来执行,所述散列函数604将交易细节作为输入数据,并且输出唯一数据串(散列)606。散列然后通过常规加密方法(例如,使用RSA加密)使用私有密钥608来加密,所述私有密钥仅对认证该交易的该方已知。使用私有密钥608,生成对应于加密签名610的数据串。签名610然后可以附加在原始数据602的末尾,或者其可以被包括作为头部。所得到的签名的数据612被发送到寻求认证数据612的起源的一方。
[0066] 示图650描述了由通过在示图600中描述的过程生成的签名的数据612的认证方遵循的认证过程。其包括接收的签名的数据652,其由交易的原始数据654和根据示图600生成的加密签名656构成。示图650还包括用于签名656的解密的公共密钥660、散列函数658和两个散列658和664,其由以下描述的两个替换机制生成。
[0067] 由认证方接收的签名的数据652被分离成两个片段。第一数据片段654对应于描述由寻求认证的该方征求的交易的原始数据。第二片段是加密签名656。一旦被隔离,交易数据654被散列函数658散列化,所述散列函数与示图600中用于生成加密签名610的散列函数604相同。这产生散列662。用认证方所拥有的公共密钥660根据与私有密钥608相链接的常规加密技术来对加密签名656进行解密。使用公共密钥对签名的解密产生第二散列664,其与散列662相比较。如果662和664相同,则认证是成功的。如果不是这种情况,则认证过程被标记为无效,并且拒绝所请求的交易。
[0068] 图7是通过账本管理服务器702和两个资产验证服务器、资产验证服务器704和706来处理交易的流程图700。这些验证服务器可以验证针对两个不同的资产的交易。例如,资产验证服务器704可以验证以美元的交易,并且资产验证服务器706可以验证以欧元的交易。资产验证服务器704和706可以通过核实交易已经被适当地认证以及通过确定交易量低于由未决或保留支付减少的账户中的可用结余来验证交易。流程图700图示了用于外汇贸易(例如,美元和欧元的)的过程。已经在图7中沿垂直轴并入时间(由箭头表示)以便图示账本管理网络中的服务器之间的数据交换的定时。在流程图700中描绘的步骤响应于验证在交易中涉及的各方的签名来执行,如关于图5中的步骤508和510所讨论的。
[0069] 在流程图700中,账本管理网络的服务器由账本管理服务器702、资产验证服务器704和资产验证服务器706来表示,其中每一个可以提供验证输入以确定对交易的处理和批准。过程700的不同服务器之间的消息的交换可以基于图3中图示的网络架构来实现。特别地,网络接口316、332和342的电路可以结合两阶段认证过程600来使用以用于账本管理服务器702和资产验证服务器704和706之间的消息的交换。网络接口的电路可以结合机器对机器认证协议(诸如“Oauth”)工作以防止与服务器之间的通信的外部干扰。给出账本管理服务器702、资产验证服务器704和资产验证服务器706的可能的大地理扩散,这可能是重要的。
[0070] 在已经执行过程500的步骤508和510之后,账本管理服务器702在步骤708处确定与交易相关联的资产。一旦已经标识出资产的此列表,则该列表与资产表450相比较以便确定针对要在交易中交换的每一个资产的资产验证服务器的身份。类似于关于图5讨论的步骤517,账本管理服务器702还可以确定在账本管理服务器702处存储的账本结余是否大于或等于交易所要求的支付量。如果账本管理服务器702确定该结余不足,则账本管理服务器702可以拒绝该交易。否则,在710处,账本管理服务器702可以对交易进行签名,将其标记为“未决验证”。如图6中描述的签名过程600可以由账本管理服务器702来执行。在该情况下的数据块602可以包含作为头部的签名的数据块652,其可以被在客户端用于请求交易的设备中运行的API发送。该数据块可以在步骤710处被账本管理服务器702签名,如通过图6中的过程600所描述的那样,并且交易可以被标记为“未决交易”。
[0071] 账本管理服务器702可以向资产验证者发送交易信息,其可以在步骤708处由账本管理服务器702根据在货币表450中规定的映射以及使用图3中描述的网络架构来内部地确定。在步骤712处,一旦由资产验证服务器704(例如,验证美元交易的服务器)接收到信息,则对客户端的签名和账本管理服务器702的签名进行解密和核实。签名的解密和验证以及描述交易的数据的完整性的核实可以遵循如图6中描述的过程650。
[0072] 然后,在步骤716处,资产验证服务器704计算针对客户端的给定资产的影子结余。每客户端、每资产的影子结余是在针对给定客户端的账本中的最后公布的资产结余的结余(其表示为“最近公布的账本结余”)减去针对“未决交易”的量(其是已经被批准、验证、完全签名但尚未被包括在最后公布的分布式账本中的支付),减去针对“保留”交易的量,其使尚未被标记为完成但已经部分签名的交易。未决和保留交易可以移动到本地账本结余,一旦包括最后交易ID的经更新的账本被账本管理服务器702公布的话。
[0073] 在步骤718处,资产验证服务器704确定在步骤716处计算的影子结余是否大于所请求的交易的量。在该情况下,资产验证服务器704允许交易继续。
[0074] 在步骤720处,如果影子结余大于或等于当前交易量,则资产验证服务器704更新本地资产账本以保留交易量并且更新影子结余。影子结余的快速或立即更新可以是针对“重复付款”或“重放”尝试的重要的保障。
[0075] 在步骤722处,在更新资产验证服务器707的本地账本(针对该示例是以美元的)之后,资产验证服务器704签名并发送验证批准消息到账本管理服务器702。批准消息可以包括确认标志,其将资产验证过程标记为成功的。
[0076] 在710处,第二消息被账本管理服务器702发送到资产验证服务器706,在该示例中,所述资产验证服务器706可以是验证交易的欧元部分的服务器。由资产验证服务器706执行的步骤724-730可以类似于由资产验证服务器704执行的步骤712-718。在该示例中,由资产验证服务器706执行的步骤730可以确定以欧元的客户端的影子结余小于所请求的交易的量。响应于该确定,资产验证服务器706可以签名和发送拒绝消息到账本管理服务器702。
[0077] 在接收到来自资产验证服务器704的批准消息和来自资产验证服务器706的拒绝消息之后,账本管理服务器702确定尚未达到共识,并且拒绝交易。在另一个场景中,其中所有资产验证服务器已经验证了所述交易,交易被标记为“未决交易”,如关于图5的讨论的步骤526处描述的那样。
[0078] 如将对计算机领域技术人员明显的,可以使用根据本文的教导编程的常规通用或专用数字计算机或微处理器来便利地实现本公开的一些实施例。,如将对软件领域技术人员明显的,可以通过编程者基于本文的教导而准备适当的软件编码。如将对本领域技术人员显而易见的,还可以通过准备专用集成电路或通过将常规组件电路的适当网络进行互连来实现一些实施例。本领域技术人员将理解,可以使用各种不同的科技和技术中的任一个来表示信息和信号。例如,可以遍及以上描述参考的数据、指令、请求、信息、信号、位、符号和芯片可以通过电压电流电磁波磁场或粒子、光场或粒子或其任何组合来表示。一些实施例可以使用现有并行、分布式计算机处理和分布式数据存储框架(例如,Hadoop)来实现。
[0079] 一些实施例包括计算机程序产品,所述计算机程序产品包括计算机可读介质(媒体),其上/其中存储有指令,并且所述指令当(例如,被处理器)执行时,实行本文所述的方法、技术或实施例,所述计算机可读介质包括用于实行本文所述的方法、技术或实施例的各种步骤的指令集。所述计算机可读介质可以包括其上/其中存储有指令的存储介质,所述指令可以被用于控制或使得计算机执行实施例的过程中的任何一个。所述存储介质可以包括但不限于包括软盘、迷你盘(MD)、光盘、DVD、CD-ROM、微驱动和磁光盘的任何类型的盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备(包括闪存卡)、磁卡或光卡、纳米系统(包括分子存储器IC)、RAID设备、远程数据储存/存档/保管或者适合于在其上/其中存储指令和/或数据的任何其他类型的介质或设备。此外,存储介质可以是跨不同类型的介质(诸如闪速介质和盘介质)存储数据的混合系统。可选地,不同介质可以被组织到混合存储聚合体中。在一些实施例中,不同介质类型可以相对于其他介质类型优先化,诸如闪速介质可以优先化以在硬盘存储介质之前存储数据或供应数据,或者不同的工作负载可以被不同介质类型支持,可选地基于相应工作负载的特性。此外,该系统可以被组织到模块中并在配置成执行本文所述的存储操作的刀片机上支持该系统。
[0080] 存储在计算机可读介质(媒体)的任一个上,一些实施例包括用于控制通用或专计算机或微处理器的硬件以及用于使得计算机或微处理器能够与人类用户交互和/或使用实施例的结果的其他机制两者的软件指令。这样的软件可以包括而不限于设备驱动程序、操作系统和用户应用。最终,这样的计算机可读介质还包括用于执行本文所述的实施例的软件指令。在通用/专门计算机或微处理器的编程(软件)中包括用于实现一些实施例的软件模块
[0081] 存储在计算机可读介质(媒体)的任一个上,一些实施例包括用于控制通用或专门计算机或微处理器的硬件以及用于使得计算机或微处理器能够与人类用户交互和/或使用实施例的结果的其他机制的软件指令。这样的软件可以包括而不限于设备驱动器、操作系统和用户应用。最终,这样的计算机可读介质还包括用于执行本文所述的实施例的软件指令。在通用/专门计算机或微处理器的编程(软件)中包括用于实现一些实施例的软件模块。
[0082] 技术人员还将意识到,本文所述的实施例的各种说明性逻辑块、模块、电路、技术或方法步骤可以实现为电子硬件、计算机软件或二者的组合。为了说明硬件和软件的这种可互换性,本文已经在其功能方面一般地描述了各种说明性组件、块、模块、电路和步骤。这样的功能实现为硬件还是软件取决于施加到整体系统的特定应用和设计约束。技术人员可以针对每一个特定应用以不同的方式实现所述功能,但这样的实现决策不应解释为使得背离本文所述的实施例。
[0083] 关于本文公开的实施例所述的各种说明性逻辑块、模块和电路可以用设计成执行本文所述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑设备、分立门或晶体管逻辑、分立硬件组件或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何常规处理器、控制器微控制器或状态机。处理器还可以实现为计算设备的组合,例如DSP和微处理器、多个微处理器、一个或多个微处理器结合DSP核的组合或任何其他这样的配置。
[0084] 关于本文公开的实施例描述的方法的技术或步骤可以直接以硬件、以由处理器执行的软件或以二者的组合来体现。在一些实施例中,本文所述的任何软件模块、软件层或线程可以包括引擎,所述引擎包括固件或软件和被配置成执行本文所述的实施例的硬件。通常,本文所述的软件模块或软件层的功能可以直接以硬件来体现,或体现为由处理器执行的软件,或体现为二者的组合。软件模块可以驻留在RAM存储器、闪速存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除盘、CD-ROM或本领域已知的任何其他形式的存储介质中。示例性存储介质耦合到处理器,以使得处理器可以从存储介质读取数据和向存储介质写入数据。在替换方案中,存储介质可以集成到处理器。处理器和存储介质可以驻留在ASIC中。ASIC可以驻留在用户设备中。在替换方案中,处理器和存储介质可以作为分立组件驻留在用户设备中。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈