使用跨分户账转账的在分布式分户账和系统之间跨分户账转账的方法和装置

文档序号:1205597 发布日期:2020-09-01 浏览:1次 >En<

阅读说明:本技术 使用跨分户账转账的在分布式分户账和系统之间跨分户账转账的方法和装置 (Method and apparatus for cross-ledger transfer between distributed ledgers and system using cross-ledger transfer ) 是由 吴致青 李家欣 吴陵 于 2018-01-16 设计创作,主要内容包括:本公开的解决方案提供了分布式分户账之间的跨分户账转账,以实现高可缩放交易吞吐量。公开了方法和指令代码,用于以有效地将价值从源分布式分户账(200S)转账到目标分布式分户账(200T)同时防止价值的两次花费的方式来写入跨分户账转账(400)。这导致了分户账的转换,其中源分户账中的总价值减少了转账的价值,而目标分户账中的总价值增加了相同的量。还公开了系统架构(500和700),利用多个分布式分户账之间的跨分户账转账来实现高可缩放交易吞吐量。还公开了计算机装置(510和610),被配置为在分布式分户账之间实施跨分户账转账。还公开了其他实施例和特征。(The solution of the present disclosure provides cross-ledger transfers between distributed ledgers to achieve high scalable transaction throughput. Methods and instruction code are disclosed for writing a cross-ledger transfer (400) in a manner that efficiently transfers value from a source distributed ledger (200S) to a destination distributed ledger (200T) while preventing two costs of value. This results in a conversion of the ledgers, where the total value in the source ledger reduces the value of the transfer and the total value in the target ledger increases by the same amount. System architectures (500 and 700) are also disclosed that utilize cross-ledger transfers between multiple distributed ledgers to achieve high scalable transaction throughput. Computer apparatus (510 and 610) configured to effect cross-ledger transfers between distributed ledgers are also disclosed. Other embodiments and features are also disclosed.)

使用跨分户账转账的在分布式分户账和系统之间跨分户账转 账的方法和装置

本申请要求于2017年12月19日提交的题为“使用多区块链和跨链交易来实现高可缩放交易吞吐量的区块链生态系统”的美国临时专利申请号62/607,453的优先权,其公开内容通过引用合并于此。本申请还要求于2018年1月9日提交的题为“分布式分户账之间的跨分户账转账”的美国专利申请号15/866,266(代理方案卷号10062.000110)的优先权,其公开内容通过引用合并于此。本申请还要求于2018年1月9日提交的题为“使用跨分户账转账以实现高可缩放交易吞吐量的多分布式分户账系统”的美国专利申请号15/866,280的优先权,其公开内容通过引用合并于此。本申请还要求于2018年1月9日提交的题为“用于在分布式分户账之间跨分户账转账的计算机装置”的美国专利申请号15/866,290(代理方案卷号10062.000130)的优先权,其公开内容通过引用合并于此。

技术领域

本公开总体上涉及计算机和网络技术。更具体地,本公开涉及区块链和其他分布式分户账技术。

背景技术

区块链是由区块链网络访问和验证的区块数据结构(区块)的链。区块链的一个示例就是比特币区块链,比特币区块链用作比特币交易的分布式分户账,其中比特币是一种具体的加密货币。比特币区块链中的每个区块对比特币的多个交易进行编码。

在比特币区块链中,每个区块包括区块头和包括在区块中的交易的哈希值的默克尔树的根。每个区块由区块哈希(这是区块头的哈希值)标识。区块头包括区块的默克尔树的根、链中的上一区块的区块哈希和当前区块的区块哈希。新的区块可以由比特币网络中的矿工添加到比特币区块链中。矿工可以访问区块链并且接收新交易的广播。当矿工验证了预期区块中的交易并且满足任务时,新区块可以添加到区块链中。共识协议可以保护比特币区块链的一致性和完整性。

发明内容

传统的分布式分户账技术的交易吞吐量具有相当的限制,并且不容易可缩放。例如,由于延迟和带宽问题以及区块大小限制,比特币区块链网络的吞吐量限制问题非常严重。非常需要解决分布式分户账技术的吞吐量可缩放性问题。

本公开的解决方案提供了分布式分户账之间的跨分户账转账以实现高可缩放交易吞吐量。公开了方法和指令代码,用于以有效地将价值从源转账转账到目标分布式分户账同时防止价值的两次花费的方式来写入跨分户账转账。还公开了系统架构,利用多个分布式分户账之间的跨分户账转账来实现高可缩放交易吞吐量。还公开了计算机装置,被配置为在分布式分户账之间实施跨分户账转账。

本公开的解决方案的跨分户账转账导致分户账的变换或修改,其中源分户账中的总价值减少了转账的价值,而目标分户账中的总价值增加了相同的量。在示例性实施中,可以使用源分户账中的锁定交易以及目标分户账中的发起交易和完成交易来实现源分户账中的转账价值的消除和目标分户账中的转账价值的重新创建。锁定交易引用发起交易,并且完成交易引用锁定交易和花费发起交易的交易输出。

本公开的发明的一个实施例涉及一种执行跨分户账转账的方法,以防止该价值的双重花费的方式将数字表示的经济价值从源分布式分户账转账到目标分布式分户账。发起交易将被写入目标分布式分户账,并且锁定交易将被写入源分布式分户账。锁定交易将现有交易的交易输出花费在源分布式分户账中,并且引用目标分布式分户账中的发起交易。然后可以将完成交易写入目标分布式分户账。完成交易花费发起交易的交易输出并且引用源分布式分户账中的锁定交易。

另一个实施例涉及一种具有计算机可读代码以执行跨分户账转账的非暂时性有形介质。跨分户账转账以防止两次花费价值的方式,将以数字表示的经济价值从源分布式分户账转账到目标分布式分户账。

另一个实施例涉及使用分布式分户账之间的跨分户账转账来实现高可缩放交易吞吐量的第一系统架构。第一系统架构包括多个分布式分户账网络,每个分布式分户账网络包括用于系统中其他分布式分户账的多个支付验证节点。

另一个实施例涉及使用分布式分户账之间的跨分户账转账来实现高可缩放交易吞吐量的第二系统架构。第二系统架构包括多个分布式分户账网络。第二系统架构还包括由多个分布式分户账网络共享的共享节点组。除了其他服务外,共享节点还提供交易的分户账间验证。

另一个实施例涉及一种用于在多个分布式分户账之间进行跨分户账转账的第一计算机装置。第一计算机装置包括用于多个分布式分户账中的本地分布式分户账的本地节点堆栈的计算机可读代码和用于多个分布式分户账中的外部分布式分户账的外来支付验证节点堆栈的计算机可读代码。本地节点堆栈被配置为在本地和外部分布式分户账之间的数字表示的经济价值的跨分户账转账期间,使用外来支付验证节点堆栈来验证外部分布式分户账中的交易。

另一个实施例涉及用于在多个分布式分户账之间进行跨分户账转账的第二计算机装置。第二计算机装置包括用于多个分布式分户账的节点堆栈的计算机可读代码。每个节点堆栈被配置为执行数字表示的经济价值从源分布式分户账到目标分布式分户账的跨分户账转账。

还公开了其他实施例和特征。

附图说明

图1是描绘根据本发明实施例的单个分布式分户账网络的结构的图。

图2是描绘根据本发明实施例的在源分布式分户账和目标分布式分户账之间的数字表示的经济价值的单个交易跨分户账转账的数据组成部分的图。

图3是描绘根据本发明实施例的两笔交易跨分户账转账的图,涉及引用准予源分布式分户账中交易的铸币许可证的目标分布式分户账中的铸币交易。

图4是描绘根据本发明实施例的数字表示的经济价值从源分布式分户账到目标分布式分户账的三笔交易跨分户账转账的图。

图5A是描绘根据本发明实施例的使用外来支付验证(PV)节点来执行跨分户账转账的系统架构的图。

图5B是描绘根据本发明实施例的用于图5A的系统架构中的节点的计算机装置的图。

图5C是描绘根据本发明实施例的由外来PV节点使用的区块头和区块签名的链的图。

图6A是描绘根据本发明实施例的由多个分布式分户账网络使用共享节点来执行跨分户账转账的系统架构的图。

图6B是描绘根据本发明实施例的用于图6A的系统架构中的共享节点的计算机装置的图。

图7是根据本发明实施例的用于源分布式分户账上的数字表示的经济价值的所有者将数字表示的经济价值转账到目标分布式分户账上的实体的方法的流程图。

图8示出了根据本发明实施例的用于分户账间交易验证的过程。

图9示出了根据本发明实施例的可以被执行以发起从源分布式分户账到目标分布式分户账的跨分户账交易的程序的伪码。

图10示出了根据本发明实施例的在调配发起交易或锁定交易之后可以被执行的程序的伪码。

图11示出了根据本发明实施例的可以被执行以在外来分布式分户账上调配交易的程序的伪码。

图12示出了根据本发明实施例的可以被执行以将交易提交到分布式分户账的程序的伪码。

图13示出了根据本发明实施例的在达成对交易区块的共识之后可以由分布式分户账的节点执行的程序的伪码。

图14示出了根据本发明实施例的可以由分布式分户账的节点执行以在未调配的区块中索引未花费交易输出的程序的伪码。

图15示出了根据本发明实施例的包括跨分户账引用交易输入的标准交易的通常结构。

图16示出了根据本发明实施例的用于三笔交易跨分户账转账的发起交易的结构。

图17示出了根据本发明实施例的用于三笔交易跨分户账转账的锁定交易的结构。

图18示出了根据本发明实施例的用于三笔交易跨分户账转账的完成交易的结构。

图19是示出根据本发明实施例的计算的每个分户账的交易吞吐量与系统中分布式分户账的数量的函数的曲线图。

图20是示出根据本发明实施例的计算的总计交易吞吐量与分布式分户账的数量的函数的图表。

图21是以较高级别描绘了根据本发明实施例的计算机系统的组成部分的图。

在不同附图中使用相同的附图标记表示相同或相似的组成部分。

具体实施方式

介绍

通常,机构依靠中央清算所来处理金融交易的清算和结算。这种传统的清算和结算是有问题的,因为它既费时又昂贵,特别是对于国际交易而言。

然而,近年来,已经可获得清关和结算的替代方式。此替代方式通常使用分布式分户账来清算和结算以加密货币进行的交易。这种加密货币的显著示例是比特币,比特币由比特币区块链网络来维护。加密货币的其他示例包括LITECOIN、NOVACOIN、NAMECOIN、DOGECOIN、PEERCOIN、以太坊和RIPPLE。

图1是描绘根据本发明实施例的单个分布式分户账网络100的结构的图。分布式分户账网络100可以用于维护交易的分布式分户账。分布式分户账的一个示例是比特币区块链。然而,分布式分户账网络100通常可以是任何区块链网络或者可以是另一种类型的分布式分户账网络,诸如使用有向无环图(DAG)算法提供的基于DAG分户账的网络。本公开的解决方案通常适用于(兼容)使用交易区块实施的分布式分户账,其中每个区块头具有包含在区块中的交易的默克尔根。

分布式分户账网络100包括多个节点102,多个节点102之间具有通信连接104。为了便于说明的目的,在图中仅示出了几个节点102,但是分布式分户账网络100可以具有非常大量的节点,节点之间具有各种互连104。

节点102通常各自包含分布式分户账的数据的完整且最新的副本,因此可以称为完全节点。在比特币网络的示例中,这种完全节点可以作为比特币区块链的矿工,其中以比特币的数字货币支付成功的矿工。然而,根据本发明实施例,分布式分户账可能不需要以数字货币支付成功的矿工,并且此外,可以更通常地处理不需要使用加密货币的数字表示的资产(或负债)。

多个客户端106可以通信地连接到数字分户账网络100。这些客户端106是轻量级节点,因为它们不维护分布式分户账的完整且最新的副本,但是它们仍然具有验证分布式分户账中的交易的能力。

例如,客户端106可以被实施为可以使用支付验证方法来验证交易的支付验证(PV)节点。PV节点可以是连接到分布式分户账网络的非完全节点,并且持有证明分布式分户账中交易的有效性所需的数据。PV节点处的数据通常缺少单独的交易记录,因此PV节点可以被视为分布式分户账网络的客户端。在示例性实施中,当分布式分户账是区块链时,PV节点可以是简单支付验证(SPV)节点,并且所需的数据包括区块中交易的默克尔根、上一区块哈希和由区块验证器创建的区块签名列表。

客户端106可以被视为形成核心分布式分户账网络之外的扩展网络的部分。尽管为了便于说明仅示出了少数客户端106,但是可以将大量客户端106连接到分布式分户账网络100。

如上所述,分布式分户账的著名示例是区块链。区块链由运行对等(P2P)协议的节点的对等(P2P)网络维护,以在交易的区块上达成串行共识。本公开的解决方案通常可以应用于区块链技术或者其他分布式分户账技术。

分布式分户账中的交易可以包括输入列表和输出列表。可以通过对交易中的所有数据进行哈希来构造交易哈希。交易哈希可以用于引用交易(即,作为交易标识符或txid)。

交易输出(TXO)可以通过其交易的哈希(其索引在交易中)和TXO接收者的标识来进行标识。TXO可以持有任何数字表示的资产。TXO不被转账;TXO内数字表示的经济价值被转账。接收者可以由接收者(具有对应的私钥)的公钥的哈希来标识。

交易输入引用TXO。对于传统的分户账内交易,交易输入通过交易哈希和TXO的输出索引来引用TXO。如本公开所教导的,用于跨分户账交易的交易输入210可以如以下关于图2所描述的。

交易吞吐量限制

诸如比特币网络的传统分布式分户账网络具有相当的交易吞吐量限制。这些限制是由于延迟和带宽问题以及对区块大小的限制。

一旦创建了新区块,就必须将其传播到整个分布式分户账网络。然而,在世界不同地区的权威网络节点(即,验证器节点)之间存在相当的最小延迟。这些延迟为传播速度提供了下限,并且因此限制了交易吞吐量。

另外,为了增加交易吞吐量,增加区块大小以适合每个区块更多的交易是可能的,和/或增加区块频率以处理更多的区块是可能的。然而,分布式分户账网络内的带宽限制通常限制了通过区块大小和/或区块频率的这种增加可达到的吞吐量增长。

具有跨分户账转账的多分布式分户账系统

本公开提供了一种创新的解决方案,以克服传统分布式分户账技术的上述交易吞吐量限制。公开了一种技术,该技术提供了具有跨分户账转账的多分布式分户账系统。跨分户账转账使得数字表示的经济价值能够从一个分布式分户账转账到另一个分布式分户账。

数字表示的经济价值的一个示例是加密货币,诸如比特币区块链中的比特币。更通常地,在源分布式分户账和目标分布式分户账之间转账的数字表示的经济价值可以是任何数字表示的资产(诸如传统货币、加密货币、有价值物品或其他财产)或负债(诸如债务)。在一个实施例中,数字表示的经济价值可以是货币的量。在另一个实施例中,数字表示的经济价值可以是加密货币的量。在另一个实施例中,数字表示的经济价值可以是有价值物品的量。

实际上,跨分户账交易可以用于将系统的多分布式分户账链接在一起。这样,每个分布式分户账中交易的完整性取决于其他链接的分布式分户账中交易的完整性。

当通过跨分户账交易将多个分布式分户账有效地链接在一起时,链接在一起的分布式分户账网络的系统可以称为多分布式分户账系统或分布式分户账“生态系统”。由多分布式分户账系统维护的分布式分户账彼此协作,并且可以被称为“联合分户账”。

尽管联合分户账是同一整体系统的部分,但是相对于其他联合分户账,每个联合分户账是一个单独的或“外来”的分布式分户账。每个联合分户账维护自己的交易分户账,并且其分户账不包括其他联合分户账的交易。然而,一个联合分户账中的交易可以引用不同联合分户账中的交易。

有利地,如本文所公开的,可以应用具有可缩放数量的联合分户账的多分布式分户账系统,以克服单个分布式分户账网络的上述吞吐量限制。

可以克服延迟限制,因为当两个验证器节点之间具有长延迟时,它们可能被分离为系统内不同的分布式分户账网络。由于两个节点验证不同的分户账,因此它们之间的长延迟将不影响任何一个分户账的共识时间。因此,本公开的解决方案可以用于大量的减少或消除对节点之间长延迟的性能的影响。

可以克服带宽限制,因为可以通过使用多联合分户账而不是单个分布式分户账来有效地减小区块大小。可以使用具有N个联合分户账的结构来有效地将区块大小减小到1/N倍。

因此,通过将节点划分到区域(或组)中,使得跨分户账交易相对稀少,添加联合分户账所增加的吞吐量将是单独运行的整个链的全部吞吐量的很大部分。这可能导致吞吐量随联合分户账的数量成近似线性缩放。

联合分户账之间的跨分户账交易

根据本发明实施例,两个分布式分户账(即,两个“联合分户账”)之间的跨分户账交易有效地消除了源分布式分户账200S上现有的未使用交易输出(UTXO)并且在目标分布式分户账200T中创建了一个或多个新的UTXO(具有与消除的UTXO相等的总价值)。图2描绘了根据本发明实施例的写入到目标分布式分户账200T中的跨分户账交易205的组成部分。

如图2所描绘的,跨分户账交易205(将被写入目标分布式分户账200T)包括提供对源分布式分户账200S的引用的交易输入210以及交易输出(或输出)220,将价值(或多个价值)转账给目标分布式分户账200T中的接收者(或多个接收者)。

更具体地,交易输入210可以包括源分布式分户账200S的链标识符211、所引用的现有交易的区块的区块头212(包括区块的默克尔树的默克尔分支哈希214)、所引用的现有交易213、以及输出索引215,输出索引215包括指示现有交易的具体输出的数字。

注意,所需的默克尔分支哈希214的数量大于或等于区块中交易的数量的以2为底的对数。因此,如果区块中有1000(一千)笔交易,则需要10(十)个默克尔分支哈希。

还注意,交易哈希(可以称为交易标识符或tx id)是通过将哈希函数应用于所引用交易的内容而从所引用交易213得到的哈希值。可以使用默克尔分支哈希对交易哈希进行哈希,以形成默克尔根。该默克尔根可以与源分布式分户账200S内的区块的默克尔根匹配,以证明交易213存在于源分布式分户账200S中。

一个或多个交易输出220提供从源分布式分类帐200S(由交易213和输出索引215指定)中的UTXO获得的用于花费的数据。每个交易输出220提供已转账到接收者的数字表示的经济价值和接收者的公钥的哈希。

防止在源分布式分户账中花费的两笔交易跨分户账转账

为了理解所公开的用于执行数字表示的经济价值的跨分户账转账的方法的操作机制,考虑通过图3所描绘的所引用交易来铸币。在图3中,通过源分布式分户账(例如,源区块链)中所引用交易来执行目标分布式分户账(例如,目标区块链)中的数字表示的经济价值的铸币。然而,如下所述,所描绘的数字表示的经济价值的这种铸币不包括防止转账价值的两次(多次)花费的机制。

考虑到所引用交易中的交易输出(TXO)可以保证过去曾经存在过,但不能保证仍未被花费(在当前时间或在将来)。这意味着在源链中引用TXO不足以支持跨分户账交易,因为仅一个未花费TXO(即,UTXO)必须被引用。

在图3所描绘的跨分户账转账中,铸币许可证准予源分布式分户账中的交易302是永远不会通过定义被准予给源分布式分户账中的另一个铸币商的交易。因此,来自铸币许可证准予交易302的TXO在源分布式分户账中基本上是不可花费的。在这种情况下,使用默克尔证明304以证明在源链中铸币许可证准予交易的存在足够证明TXO在源分布式分户账中是未花费的(因为它是不可花费的)。

这样,在源分布式分户账中存在铸币许可证准予交易的事实为铸币交易306提供了基础,以在目标分布式分户账中铸币数字表示的经济价值。此后,在目标分布式分户账中可以正常使用308铸币的价值。

然而,尽管图3的两笔交易跨分户账转账安全地避免了当使用系统的所有实体都被信任时的两次花费,但是其不足以防止当不被信任的实体可以使用系统时的两次花费。这是因为图3的两笔交易跨分户账转账不防止源分布式分户账中未花费TXO被花费在多于一个的目标分布式分户账中。

防止两次花费的三笔交易跨分户账转帐

根据本发明实施例,图4中所描绘的方法400将数字表示的经济价值在联合分户账之间转帐。执行跨分户账转账的方式是,通过将源分布式分户账中未花费的价值花费在多于一个的目标分布式分户账中,经由一系列握手确保价值不会无处不在地被创建。

如图4所示,这种跨分户账转账的示例性实施可以生成一系列三次单独的交易并且将其调配给系统的分布式分户账。这些交易包括目标分布式分户账中的发起交易、源分布式分户账中的锁定交易、和目标分布式分户账中的完成交易。

在方法400的第一阶段中,在联合分户账之间转账数字表示的经济价值在源分布式分户账200S中找到或标识现有交易402的未花费交易输出(UTXO)。源分布式分户账中的此UTXO将被花费在目标分布式分户账200T中。

在方法400的第二阶段中,生成发起交易404并将其调配给目标分布式分户账200T。发起交易404创建与所标识的现有交易402的UTXO相同的数字表示的经济价值。然而,根据本发明实施例,发起交易404具有特殊的财产,因为其输出不能以正常的方式被花费。(更具体地,如下所述,发起交易404的UTXO只能由引用锁定交易406的完成交易408花费,锁定交易406引用发起交易404并花费所标识的现有交易402的UTXO)。

在方法400的第三阶段,在将发起交易404调配给目标分布式分户账200T之后,生成锁定交易406并将其调配给源分布式分户账200S。锁定交易406的交易输入是源分布式分户账200S中所标识的现有交易402的UTXO。这样,锁定交易406花费所标识的现有交易402的UTXO,使得输出变为源分布式分户账200S中已花费的TXO(并且因此不再可花费)。然而,通过锁定交易的定义,其输出是不可花费的(即,其输出永远不能被花费)。实际上,锁定交易406锁定所标识的现有交易402的UTXO,使得它永远不被花费在源分布式分户账200S中。

此外,锁定交易406引用目标分布式分户账200T中的发起交易404(例如,通过提供整个发起交易和用于验证目标区块中存在发起交易的默克尔根和分支哈希)。从锁定交易406到发起交易404的该“默克尔引用”用于防止所标识的UTXO的价值被多于一次的花费。

在方法400的第四阶段中,在将锁定交易406调配给源分布式分户账200S之后,生成完成交易408并将其调配给目标分布式分户账200T。有效的完成交易408花费由发起交易404创建的UTXO。

为了是有效的,完成交易408必须引用花费所标识的UTXO的锁定交易406(例如,通过提供整个锁定交易和可以用于验证源区块中锁定交易存在的默克尔根哈希和分支哈希)。因为不能花费锁定交易406的输出,所以源分布式分户账200S中锁定交易406的存在提供了所标识的UTXO实际上已在源分布式分户账200S中消除的保证。

不能调配多于一笔的完成交易408。这是因为完成交易408仅在其花费(通过其交易输入)了由锁定交易406引用的发起交易404的UTXO时才是有效的。因此,如果由完成交易408花费的输出不是由锁定交易406引用的发起交易404的输出,则完成交易408是无效的并且因此防止被调配给目标分布式分户账200T。

有效的完成交易408的一个或多个交易输出(TXO或多个TXO)表示向目标分布式分户账200T中一个或多个接收者的数字表示的经济价值跨分户账转账的完成。完成交易408的一个或多个TXO可以由一个或多个接收者在目标分布式分户账200T内被正常地花费。换句话说,一旦将完成交易调配给目标分布式分户账,就可以在目标分布式分户账内花费完成交易的TXO,而无需进一步引用源分布式分户账中的任何交易。

系统架构

可以用于支持跨分户账转账的一种系统架构可以使源分布式分户账的每个完全节点也成为目标分布式分户账的完全节点。尽管这种完全重叠的系统架构将支持跨分户账转账,但是在每个节点处都将需要大量的额外资源。

本文公开的是支持跨分户账转账同时比完全重叠的系统架构需要更少资源的示例性系统架构。第一示例性系统架构将外来支付验证(PV)节点嵌入到分布式分户账网络中。第二示例性系统架构利用共享完全节点组,而不是使每个节点都是共享节点。

第一个示例性系统架构:联合定位的“本地”完全节点和“外来”PV节点

在图5A中所描绘的第一示例性系统架构500中,其他(即,外来)联合分户账的支付验证(PV)节点位于多分布式分户账系统的每个分布式分户账网络中的所有节点或部分节点处。联合定位的PV节点用于支持跨分户账支付验证。

为了减少实施系统所需的资源,PV节点可以是非完全节点。在示例性实施中,每个PV节点可以实施为简单支付验证(SPV)节点。此外,尽管在图5A中描绘了具有四个联合分户账的多分布式分户账系统,但是多分布式分户账系统可以包括任何数量的联合分户账。

在图5A所示的示例中,第一分布式分户账A由第一分布式分户账网络100A维护,第二分布式分户账B由第二分布式分户账网络100B维护,第三分布式分户账C由第三分布式分户账网络100C维护,并且第四分布式分户账D由第四分布式分户账网络100D维护。这些分布式分户账网络(100A、100B、100C和100D)中的每个包括其自己的节点102,节点102之间具有互连104,如以上关于图1所描述的。另外,根据本发明实施例,在不同共识网络中的一些节点102之间存在另外的通信互连502,以便通信地互连共识网络(100A、100B、100C和100D)。

然而,仅将联合分户账的分布式分户账网络通信地互连是不够的,因为还需要分户账间交易提交和验证来支持跨分户账转账。由于该原因,每个分布式分户账网络中的至少一些节点102可以配置为针对其自己的分布式分户账运行“本地”完全节点堆栈并且针对与其交互的联合分户账运行“外来”PV节点堆栈。

分布式分户账的完全节点堆栈包括在分布式分户账网络的完全节点处的软件例程组或程序组。软件例程组或程序组执行与分布式分户账有关的任务和/或功能,包括(如果适用):将API(应用程序接口)请求转换为分布式分户账交易;管理用户密钥;签署交易;当调配交易时通知其他系统;将交易提交到分布式分户账;以及提供包含交易的证明。分布式分户账的PV节点堆栈包括位于客户端处的与分布式分户账网络进行通信的简化的软件例程组或程序组。简化的软件例程组或程序组执行任务和/或功能,包括:提供包含交易的证明;以及将交易提交到分布式分户账。

在图5A的示例中,第一网络100A中的至少一些节点102已被配置为还运行第二、第三和第四网络(100B、100C和100D)中的每个的PV节点(PV-B、PV-C和PV-D)。类似地,第二网络100B中的至少一些节点102已被配置为还运行第一、第三和第四网络(100A、100C和100D)中的每个的PV节点(PV-A、PV-C和PV-D)。而且,第三网络100C中的至少一些节点102已被配置为还运行第一、第二和第四网络(100A、100B和100D)中的每个的PV节点(PV-A、PV-B和PV-D)。最后,第四网络100D中的至少一些节点102已被配置为还运行第一、第二和第三网络(100A、100B和100C)中每个的PV节点(PV-A、PV-B和PV-C)。

每个PV-A节点维护联合分户账A的区块头和签名的链(即,区块头/签名链)。类似地,每个PV-B节点维护联合分户账B的区块头/签名链,每个PV-C节点维护联合分户账C的区块头/签名链,每个PV-D节点维护联合分户账D的区块头/签名链。

图5B描绘了根据本发明实施例的用于图5A的系统架构内分布式分户账网络100A中节点102A的计算机系统510的示例性实施。例如,可以使用包括一个或多个中央处理单元(CPU)和一个或多个图形处理单元(GPU)的多个处理器来实施计算机系统510。

如图所示,计算机系统510包括本地分布式分户账A的完全节点堆栈A 512-A。完全节点堆栈A 512-A包括本地分布式分户账A的完整副本。

另外,计算机系统510包括外来分布式分户账B的SPV节点堆栈B 514-B、外来分布式分户账C的SPV节点堆栈C 514-C和外来分布式分户账D的SPV节点堆栈D 514-D。SPV节点堆栈B 514-B包括外来分布式分户账B的区块头/签名链。SPV节点堆栈C 514-C包括外来分布式分户账C的区块头/签名链。SPV节点堆栈D 514-D包括外来分布式分户账D的区块头/签名链。

在图5C中描绘了可以在PV节点(特别是被实施为SPV节点的PV节点)处维护的区块头/签名链的结构。如图5C所示,区块头/签名链520包括相关的分布式分户账的区块头522和区块签名524,其中区块签名是相关的分布式分户账网络的区块验证器的签名,其指示验证器接受已签名的区块是有效的。

现在考虑构造以上关于图5A所描述的第一示例性多分布式分户账系统500,以实现例如每秒100,000个交易以及每个联合分户账能够每秒单独处理333个交易的目标。为了实现每秒100,000个交易,图5A的多分布式分户账系统500需要具有100,0000/333=300个联合分户账的量级。如果存在300个联合分户账,则每个参与者节点必须维护约300个其他分布式分户账的SPV节点。(分布式分户账中的参与者节点或验证器是允许对区块的有效性进行投票的节点。分布式分户账中验证器的绝大多数(例如三分之二或更多)通常必须同意区块的有效性以将其调配给链。)

可以估计,每个分布式分户账每秒将产生由该分户账的SPV节点维护的约7KB的数据。数据包括该分布式分户账的区块头和区块签名。每个联合分户账每秒7KB的估计假设:对于每个联合分户账我们的共识参与者不超过100个,并且所需的投票阈值为三分之二(2/3),以及每个签名有100字节。

这导致大约300个分布式分户账×7KB/秒/分户账=2,100KB/秒的附加调配存储,以将“外来”SPV节点联合定位在每个参与的“本地”完全节点处。该估计的附加存储需求大约是不具有联合定位外来SPV节点的存储需求的两倍。

除了该附加的存储需求以外,和SPV节点一起可能提供区块头/签名链中的区块哈希到区块头的索引。索引可以用于图4所描绘的默克尔树引用,以便执行分户账间验证。

由于PV节点的附加存储需求是可管理的,因此所有其他联合分户账的“外来”PV节点可以联合定位在联合分户账的一些、或全部参与的“本地”节点处。此外,使用与每个PV节点一起提供的索引,参与的节点可以有效地找到相关的默克尔根,以便容易地验证交易引用。

第二示例性系统架构:共享节点组

在图6A中所描绘的第二示例性系统架构600中,多分布式分户帐系统中的所有分布式分户帐网络共享一组节点。这些共享节点中的每个可以用作多分布式分户账系统的所有联合分户账的完全节点,以便有效地支持跨分户账转账。注意,尽管在图6A中描绘了具有三个联合分户账的多分布式分户账系统,但是系统可以包括任何数量的联合分户账。

在图6A所示的示例中,第一分布式分户账A由第一分布式分户账网络100A维护,第二分布式分户账B由第二分布式分户账网络100B维护,并且第三分布式分户账C由第三分布式分户账网络100C维护。这些分布式分户账网络(100A、100B和100C)中的每个包括节点102,节点102之间具有互连104,如以上关于图1所描述的。

根据本发明实施例,存在共享完全节点组(100ABC)。共享组100ABC中的每个节点用作三个分布式分户账网络(100A、100B和100C)中的每个的完全节点。这样,共享组100ABC中的每个节点包含三个分布式分户账(A、B和C)中的每个分户账的副本。注意,三个分布式分户账(A、B、C)仍然是单独的分布式分户账,每个分户账记录单独的交易分户账。

根据本发明实施例,系统中每个分布式分户账的区块哈希到区块头的索引可以由分布式分户账数据来创建,并且将其提供给共享完全节点组(100ABC)中的每个节点。索引可以用于图4中所描绘的默克尔树引用(从锁定交易406到发起交易404,以及从完成交易408到锁定交易406),以便执行分户账间验证。

任何参与者节点可以通过网络将查询发送到共享完全节点组(100ABC)中的节点,以验证跨分户账交易。这意味着对中央实体或其他受信任实体的信任,以保证或证实所提供的联合分户账的完全节点不在联合分户账的所包含者周围。

图6B描绘了根据本发明实施例的用于图6A的系统架构内的共享节点组100ABC中的节点102ABC的计算机系统610的示例性实施。如图所示,计算机系统610包括本地分布式分户账A的完全节点堆栈A 512-A、本地分布式分户账B的完全节点堆栈B 512-B、以及本地分布式分户账C的完全节点堆栈C 512-C。完全节点堆栈A 512-A包括本地分布式分户账A的完整副本。完全节点堆栈B 512-B包括本地分布式分户账B的完整副本。完全节点堆栈C512-C包括本地分布式分户账C的完整副本。

示例性跨分户账转账的流程图

图7是根据本发明实施例的方法700的流程图,方法700用于源分布式分户账上的数字表示的经济价值的所有者将数字表示的经济价值转账到目标分布式分户账上的实体。在所描绘的具体示例中,要被转账的价值为一百万美元(USD)。

方法700使用的组成部分可以包括以下内容:源分布式分户账L_A;目标分布式分户账L_B;第一网络节点,其具有L_A的完全节点堆栈(N_A),并且还被配置为至少用作L_B的SPV节点(S_B)(并且因此至少包括L_B的区块头);第二网络节点,其具有L_B的完全节点堆栈(N_B),并且还被配置为至少用作L_A的SPV节点(S_A)(并且因此至少包括L_A的区块头)。

节点堆栈N_A可以具有以下数据和能力:使用L_A的每个实体的资产上的UTXO索引;利用那些UTXO构造交易的能力;侦听从L_A所调配的交易的能力;将要被调配给外来分布式分户账(例如,L_B)的交易提交到外来节点堆栈(例如,N_B)的能力;侦听从外来节点堆栈(例如,N_B)所调配的交易的能力,其中交易是由其自己提交的;接受和索引由外来节点堆栈(例如,N_B)提交的交易的能力;如果所调配的交易是由其自己提交的则将所调配的交易从L_A推送到外来节点堆栈(例如,N_B)的能力。

类似地,节点堆栈N_B可以具有以下数据和功能:使用L_B的每个实体的资产上的UTXO索引;利用那些UTXO构造交易的能力;侦听从L_B所调配的交易的能力;将要被调配给外来分布式分户账(例如,L_A)的交易提交到外来节点堆栈(例如,N_A)的能力;侦听从外来节点堆栈(例如,N_A)所调配的交易的能力,其中交易是由其自己提交的;接受和索引由外来节点堆栈(例如,N_A)提交的交易的能力;如果所调配的交易是由其自己提交的则将所调配的交易从L_A推送到外来节点堆栈(例如,N_A)的能力。

在步骤1中,作为节点堆栈N_A的客户端的实体A是资产的所有者和转账源,发起从源分布式分户帐A(L_A)到目标分布式分户帐B(L_B)上的实体B的具体价值(在本示例中为一百万美元)的跨分户账转账。在图9的第1-2行中提供了要在完全节点堆栈中(例如,在节点堆栈N_A中)实施的有关步骤1的伪码。

在步骤2中,节点堆栈N_A对L_A中UTXO U_1中实体A的资产的具体价值进行标识。在图9的第3-4行中提供了要在完全节点堆栈中(例如,在节点堆栈N_A中)实施的有关步骤2的伪码。

在步骤3中,N_A构建具体价值的发起交易T_1。在图9的第5-6行中提供了要在完全节点堆栈中(例如,在节点堆栈N_A中)实施的有关步骤3的伪码。

在步骤4中,N_A将T_I提交到节点堆栈N_B。在图9的第11-14行中提供了要在完全节点堆栈中(例如,在节点堆栈N_A中)实施的有关步骤4的伪码。

在步骤5中,节点堆栈N_B将T_I提交到L_B。在图11的第5-6行中提供了要在完全节点堆栈中(例如,在节点堆栈N_B中)实施的有关步骤5的伪码。

在步骤6中,L_B调配T_I并在调配T_I后通知N_B。可以使用用于分布式分户账的传统代码来执行步骤6。

在已将T_I调配给L_B之后,然后,在步骤7a中,SPV节点S_B接收包含T_I的区块的SPV信息(即,头和签名)。此外,在步骤7b中,N_B通知N_A:T_I被调配。由图13和图14中的伪码提供了要在完全节点堆栈中(例如,在节点堆栈N_B中)实施的有关步骤7a和7b的伪码。

在步骤8中,N_A构造锁定交易T_L,锁定交易T_L引用T_I并且锁定U_1。在图10的第7-12行中提供了要在完全节点堆栈中(例如,在节点堆栈N_A中)实施的有关步骤8的伪码。

在步骤9中,N_A将T_I提交到L_A。在调用图12中伪码例程的图10的第13-14行中提供了要在完全节点堆栈中(例如,在分布式分户账L_A的节点堆栈N_B中)实施的有关步骤9的伪码。

在步骤10中,L_A与S_B进行检查以验证是否由L_B调配了T_I(在T_L中引用)。在图12中提供了要由分布式分户账(例如,分布式分户账L_A)实施的有关步骤10的伪码。用于验证交易在外来分布式分户账中被调配的示例性程序以下参考图8来描述。

在步骤11中,在成功验证之后,L_A调配T_L并在调配T_L后通知N_A。可以使用用于分布式分户账的传统代码来执行步骤11。

在T_L已被调配给L_A之后,然后,在步骤12a中,SPV节点S_A接收包含T_L的区块的SPV信息(即,头和签名)。另外,在步骤12b中,N_A构造完成交易T_C,完成交易T_C引用T_L并且具有由转账目标B拥有的具体价值的输出。由图13和图14中的伪码提供了要在完全节点堆栈中(例如,在节点堆栈N_A中)实施的有关步骤12a和12b的伪码。

在步骤13中,N_A将T_C提交到N_B。在图10的第27-30行和图11的伪码中提供了要在完全节点堆栈中(例如,在节点堆栈N_A中)实施的有关步骤13的伪码。

在步骤14中,N_B将T_C提交到L_B。由图12中的伪码提供了要在完全节点堆栈中(例如,在分布式分户账L_A的节点堆栈N_A中)实施的有关步骤14的伪码。

在步骤15中,L_B与S_A进行检查以验证是否由L_A调配了T_L(在T_C中引用),并且L_B还了检查以验证到T_C的输入是T_I(在T_L中引用)的输出。在图12中提供了要由分布式分户账(例如,分布式分户账L_B)实施的有关步骤10的伪码。用于验证交易在外来分布式分户账中调配的示例性程序以下参考图8来描述。

在步骤16中,在成功验证之后,L_B调配T_C并且在调配T_C后通知N_B。可以使用用于分布式分户账的传统代码来执行步骤16。

在步骤17中,N_B通知N_A:T_C被L_B调配。在图14中提供了要在完全节点堆栈中(例如,在节点堆栈N_B中)实施的有关步骤17的伪码。

最后,在步骤18中,N_B索引实体B的T_C的输出。在图10的第33-34行中提供了要在完全节点堆栈中(例如,在节点堆栈N_B中)实施的有关步骤18的伪码。

注意,以上描述的方法700特别适合与图5A所描绘的第一系统架构500一起使用。这是因为第一系统架构500将外来分布式分户账的SPV节点与本地分布式分户账的完全节点联合定位。

方法700可以容易地修改以与图6所描绘的第二系统架构600一起使用。第二系统架构600将外来分布式分户账的完全节点与本地分布式分户账的完全节点联合定位。这样,不需要方法700的步骤7a和12a。此外,L_A可以在步骤10中与N_B进行检查以验证T_1被调配,并且L_B可以在步骤15中与N_A进行检查以验证T_C被调配。

分户账间交易验证

为了验证外来分布式分户账中的交易引用,有必要对要被调配到这些其他分布式分户账中的内容具有可信赖的验证机制。传统分布式分户账技术不提供这种用于验证另一个分布式分户账中交易的机制。

在图8中示出了用于验证外来分布式分户账中交易的示例性过程800。例如,过程800可以被应用于图7的步骤10中以验证发起交易在目标分布式分户账中存在,并且应用于图7的步骤15中以验证锁定交易在源分布式分户账中存在。

在步骤801中,待验证交易的交易输入的引用数据在查询中从本地节点传递到一个或多个外来节点。本地节点是本地分布式分户账的节点,并且外来节点是外来分布式分户账的要在其中验证交易的节点。

802)(多个)外来节点在交易输入中使用分户账标识符(例如,链id)来找到正确索引以进行查询,正确索引是与分户账标识符相关联的索引。索引的输入是包含正在验证的交易的区块的区块哈希。

803)(多个)外来节点使用交易输入中的区块哈希来找到正确区块以进行检验。

804)(多个)外来节点从所标识的区块(在步骤803中找到)中提取区块头。

805)(多个)外节点从所标识的区块中提取默克尔根哈希。

806)(多个)外来节点计算交易输入中的交易的交易哈希。

807)(多个)外来节点由交易哈希和提供的默克尔分支哈希计算默克尔根哈希。

808)(多个)外来节点将所计算的默克尔根哈希与所标识的区块中的默克尔根哈希进行比较。

809)如果哈希匹配,则(多个)外来节点向本地节点返回交易有效,如果哈希不匹配,则无效。

注意,如果在上述验证方法800中查询了多个外来节点,则只要外来节点中的一个返回交易有效,就可以将交易视为有效调配。

还注意,以上所描述的方法800可以用在图5A所描绘的第一系统架构500或者在图6所描绘的第二系统架构600中。对于第一系统架构500,外来节点可以对应于与本地完全节点堆栈联合定位的外来SPV节点堆栈。对于第二系统架构600,外来节点堆栈可以是与本地完全节点堆栈联合定位的外来完全节点堆栈。

图9至图14示出了为本发明实施例的示例性实施提供详细“蓝图”的伪码。伪码中的注释以//开头。

发起交易

当跨分户账交易被提交到节点堆栈时执行图9所示的伪码程序。为了构造交易,必须找到与要交易的资产相对应的UTXO。一旦找到UTXO,就应该从UTXO构造发起交易。应该索引此发起交易以及交易的源和交易的目标,以用于以后的查找。发起交易应由UTXO中资产的所有者签名。然后,定位目标节点堆栈,并且将发起交易与源的所知一起发送到目标节点堆栈。

通知所调配的交易

当节点堆栈被通知交易已被调配时执行图10所示的伪码程序。存在两种情况,取决于交易是发起交易还是锁定交易。

第一种情况是,调配的交易是否为发起交易。发生这种情况时,我们可以从图9所描述的索引中查找需要锁定的UTXO。然后,我们由该UTXO构建锁定交易。该交易需要由UTXO中资产的所有者签名,我们也使用图9所描述的索引进行查找。最后,我们将该交易提交到本地分户账。

第二种情况是,调配的交易是否为锁定交易。发生这种情况时,我们首先找到由锁定交易所引用的发起交易的目标。这可以从图9所描述的索引中获得。我们构建了引用锁定交易的完成交易。该完成交易需要转账资产所有者的签名;这可以在图9所描述的索引中查找。最后,我们找到目标的节点堆栈,并且将完成交易与源的所知一起发送到目标节点堆栈。

对于通知给节点堆栈的所有交易,需要更新可用的UTXO池。

调配外来交易

当节点堆栈从外来节点堆栈接收到交易时(诸如,当接收到发起交易或完成交易时)执行图11所示的伪码程序。将交易索引到被接收交易的源,然后将交易提交到本地分布式分户账。

将交易提交到分户账

当分布式分户账接收到所提交的交易时执行图12所示的伪码程序。采取了一些步骤以跨所有交易执行通用验证,在图中跳过(未显示)。对于那些包含SPV引用的交易(锁定交易和完成交易),我们将某些验证应用于其输入。

如果我们发现输入包含SPV引用(在锁定交易和完成交易的情况下),则可以通过调用SPV节点上的验证API来验证SPV引用有效。此外,如果我们发现输入包含SPV引用,SPV引用包含具有SPV引用的交易(如完成交易的情况),则我们检查所包含的交易的SPV引用交易ID是否与完成交易花费的发起交易匹配。如果所有验证均通过,则交易已准备好由分户账调配。

将区块调配给分户账

当分布式分户账调配包含交易的区块时执行图13所示的伪码程序。图未示出分布式分户账决定如何向区块添加交易以及分户账如何在区块上达成共识的过程,因为那些主题超出了本公开的范围。在所示的程序中,分户账将区块存储到一些持久存储中,将区块的SPV信息发送到SPV节点,然后通知本地节点堆栈区块已调配。

发送所调配的交易的消息

图14的伪码程序示出了本地节点堆栈如何分发关于所调配的交易的通知。对于发起交易和完成交易执行该程序。

对于区块中的所有交易,本地节点堆栈在外来索引(图11中定义)中寻找以确定交易是否具有外来源。如果交易具有外来源,则本地节点堆栈找到外来源的节点堆栈,并且将所调配的交易和所调配的交易的SPV信息发送到该外来节点堆栈。所有所调配的交易(无论源是本地还是外来的)都通知给本地节点堆栈。

交易结构

图15示出了根据本发明实施例的标准交易1500的一般结构,其可以包括跨分户账引用的交易输入。图15中的标准交易包括交易输入列表和交易输出列表。

在这种情况下,存在两种类型的交易输入。第一种类型的交易输入是分户账内(即,标准)交易输入1502。每个分户账内交易输入包括标识输入交易的字节和为输入交易提供输出偏移的整数。

第二种类型的交易输入是跨分户账引用的交易输入1504。每个跨分户账引用的交易输入包括标识外来分户账的字节、标识外来分户账内的区块的区块哈希的字节、所标识的区块中交易的默克尔分支哈希列表、所标识的区块内输入交易的交易字节、以及为给定交易字节内被引用的具体输出提供偏移的整数偏移。

每个交易输出1506包括标识正在输出的数字财产的字节和作为交易输出的编码锁的字节锁。通过提供来自匹配私钥的签名来解锁字节锁。

图16至图18示出了根据本发明实施例的一起提供跨分户账转账的三笔交易的结构。这三个结构可以用于实施图4所描绘的三笔交易跨分户账转账400。

图16示出了根据本发明实施例的用于三笔交易跨分户账转账的发起交易1600的具体结构。发起交易不包括交易输入和单个交易输出1606。

交易输出1606包括标识正在转账的数字财产的字节和字节锁。字节锁只能通过具有到锁定交易的引用(其引用该发起交易)的完成交易来被解锁。

图17示出了根据本发明实施例的三笔交易跨分户账转账的锁定交易1700的具体结构。锁定交易1700包括交易输入列表和交易输出列表。

交易输入包括一个或多个分户账内交易输入1702和单个跨分户账引用交易输入1704。

每个分户账内交易输入1702包括标识源分户账中的输入交易的字节和提供该交易的输出偏移的整数。每个输入交易对应于源分户账中的现有交易,并且输出偏移指示正在输入到锁定交易1700的现有交易的具体输出。

跨分户账引用交易输入1704用于引用目标分户账中的发起交易。跨分户账引用交易输入1704包括标识目标分户账的字节、标识目标分户账内的区块的区块哈希的字节、所标识的区块中交易的默克尔分支哈希列表、所标识的区块内发起交易的交易字节、以及为给定交易字节内被引用的具体输出提供偏移的整数偏移。

锁定交易1700不需要任何交易输出1706,并且因此可以具有零个或更多个交易输出1706。如果存在交易输出1706,则它包括标识正在输出的数字财产的字节和字节锁。交易输出1706的数字财产必须等于分户账内交易输入1702所指向的数字财产(来自一个或多个现有交易的一个或多个输出)与跨分户账引用交易输入1704所指向的数字财产(来自发起交易的具体输出)的差。如果数字财产的那些量相等,则没有交易输出1706。

图18示出了根据本发明实施例的用于三笔交易跨分户账转账的完成交易1800的具体结构。完成交易1800包括两个交易输入以及一个或多个交易输出。

两个交易输入包括单个分户账内交易输入1802和单个跨分户账引用交易输入1804。

分户账内交易输入1802包括标识目标分户账中的发起交易的交易ID的字节以及提供该交易的输出偏移的整数。输出偏移指示正在输入到完成交易1800的发起交易的具体输出。分户账内交易输入1802中的该交易ID必须与由锁定交易所指向的发起交易的交易ID相匹配;否则,完成交易将无效。

跨分户账引用交易输入1804用于引用源分户账中的锁定交易。跨分户账引用交易输入1804包括标识源分户账的字节、标识源分户账内的区块的区块哈希的字节、所标识的区块中的交易的默克尔分支哈希列表、所标识的区块内锁定交易的交易字节、以及为给定交易字节(如果有)内引用的具体输出提供偏移的整数偏移。

可能存在一个或多个交易输出1806。每个交易输出1806包括标识正在输出的数字财产的字节以及作为交易输出的编码锁的字节锁。通过提供来自匹配私钥的签名来解锁字节锁。

显示可缩放性增长的系统性能计算

该部分描述了可缩放性增长,如通过计算具有多分布式分户账(例如,多个区块链)的系统的系统性能所证明的。

用于计算的变量定义如下:

R=每个分户账每秒的汇款数量;

X=每个分户账每秒的分户账内交易数量;

Y=每个分户账每秒的分户账间交易数量;以及

N=系统中联合分户账的数量。

计算的假设如下:

1)假设跨N个分布式分户账的交易的最坏情况分布是分户账内交易与分户账间交易的比率为1到N-1;

2)区块大小为1兆字节(1MB);

3)分布式分户账的区块的处理速率为每秒1个区块;

4)分户账内交易大约占用1000字节=1千字节;

5)交易引用的最坏情况是log2(3000)*32字节+32字节=416字节;以及

6)转账数字表示的经济价值的分户账间交易各自构成5笔交易并且由于以下步骤共占用2814字节:a)订户发送交易占用大约333字节;b)发起交易占用大约200字节;c)锁定交易占用发起交易的大小+416字节+100字节=716字节;d)完成交易占用锁定交易的大小+416字节+100字节=1232字节;e)订户接收交易占用大约333字节。根据以上定义和假设,进行以下计算:

分户账内交易与分户账间交易的比率为1/(N-1)得到X/Y=1/(N-1)。

由1MB的区块大小以及分别为1000字节和2814字节的两种类型交易的大小得到106=1000X+2814Y。

因为每个分户账每秒的汇款额是每个分户账每秒的分户账内交易和每个分户账每秒的分户账间交易之和,所以R=X+Y。

以N的函数求解R,得到R=106N/(2814N-1814)。

如果针对系统总计我们的目标是N*R=105每秒汇款额(RPS),那么我们得到以下二次方程。

N2-281.4N+181.4=0

求解以上方程的根并且出于实际原因使结果必须大于1,得出联合分户账的数量N=281。该结果意味着,鉴于上述假设,必须运行281个联合分户账,281个联合分户账各自每秒调配1MB,以使系统的总计交易吞吐量为105RPS。

根据本发明实施例,计算的以RPS表示的每个联合分户账的交易吞吐量与系统中联合分户账的数量N的函数由图19中的曲线图示出。以RPS表示的总交易吞吐量等于每个分户账的RPS乘以联合分户账的数量N。如曲线图所示,在N=281处,每个分户账(当每个分户账是区块链时为每个联合链)的RPS是356,使得系统吞吐量大约为105

根据本发明实施例,计算的以RPS表示的系统的总计交易吞吐量与联合分户账(当每个分户账是区块链时为每个联合链)的数量的函数由图20中的曲线图示出。如图所示,总计交易吞吐量与系统中联合分户账的数量成线性缩放。

注意,以上给出的计算是基于系统中交易的最坏情况分布以及交易引用的最坏情况大小。至少在许多情况下,很有可能可以对系统中的各个共识网络进行节点分配,以使分户账内交易与分户账间交易的比率X/Y大大增加到大于一。换句话说,系统很可能是可配置的,以使得分户账内交易比分户账间交易多。相反,在上述计算中最坏情况的假设是分户账间交易比分户账内交易多。因此,实际系统的性能可能比上述计算中的系统性能好得多。

计算机系统

图21以较高级别描绘了计算机系统2100的组成部分,其可以用于例如实施分布式分户账网络的全部或部分节点。可以用比图中所示更少或更多的组成部分来实施计算机系统。例如,计算机系统可以包括一个或多个处理器2101(包括图形处理器)以及一个或多个耦合其各种组成部分的总线2103。计算机系统还可包括一个或多个用户输入设备2102(例如,键盘、鼠标)、一个或多个数据存储设备2106(例如,硬盘驱动器、光盘、固态存储磁盘)、一个或多个显示监视器2104(例如,液晶显示器、平板监视器)、一个或多个计算机网络接口2105(例如,网络适配器、调制解调器)、以及主存储器2108(即,随机存取存储器)。如图所示,计算机网络接口2105可以耦合到计算机网络2109,在这种情况下,计算机网络2109可以是分布式分户账网络。

计算机系统是用一个或多个软件模块编程的特定机器,包括以非暂时性方式存储在主存储器2108中以由处理器2101执行的计算机可读代码或指令。制品可以体现为包括指令的计算机可读存储介质,指令在由处理器2101执行时使计算机系统可操作的执行一个或多个软件模块的功能。

结论

本公开的解决方案使用多分布式分户账和跨分户账转账来实现高可缩放交易吞吐量。公开了方法和指令代码,用于以有效地将价值从源区块链转账到目标区块链同时防止价值的两次花费的方式写入跨分户账转账。还公开系统架构,利用多分布式分户账之间的跨分户账转账来实现高可缩放交易吞吐量。还公开了计算机装置,被配置为在分布式分户账之间实施跨分户账转账。

在本公开中,提供了许多具体细节,诸如系统、组成部分和方法的示例,以提供对本发明实施例的透彻理解。然而,本领域普通技术人员将认识到,可以在没有一个或多个具体细节的情况下实践本发明。在其他情况下,未示出或描述众所周知的细节,以避免使本发明的各个方面不清楚。

尽管提供了本发明的具体实施例,但是应当理解,这些实施例仅用于说明目的,而不是限制性的。对于本领域的普通技术人员而言,阅读本公开后,许多附加实施例将是显而易见的。

47页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种区块链构建方法及区块链节点

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类