首页 / 专利库 / 银行与财务事项 / 货币 / 数字货币 / 加密货币 / 比特币 / 安全链外区块链交易

安全链外链交易

阅读:39发布:2020-05-19

专利汇可以提供安全链外链交易专利检索,专利查询,专利分析的服务。并且提供了一种计算机实现的方法。该方法可以使用比方说例如 比特币 网络之类的 区 块 链 网络来实现。计算机实现的方法包括:i)通过以下方式将第一方的数字资产附着于交换平台:a)使用第一方的密钥和交换平台的第一密钥来计算与数字资产相关联的第一共享密钥;以及b)通过以下方式将数字资产存放到区块链网络:1)使用第一共享密钥从数字资产生成可支付给任何一方的资金交易;以及2)将资金交易广播到区块链网络;以及ii)通过以下方式将数字资产从第一方重新关联到第二方:a)使用第二方的密钥来计算交换平台的第二密钥,使得:1)第一方的密钥变为无效的;以及2)根据第二方的密钥和交换平台的第二密钥计算出的与数字资产相关联的第二共享密钥等于与数字资产相关联的第一共享密钥;以及b)用交换平台的第二密钥替换交换平台的第一密钥。,下面是安全链外链交易专利的具体信息内容。

1.一种计算机实现的方法,所述方法包括:
使用与第一实体相关联的密钥和与交换平台相关联的第一密钥来计算第一共享密钥;
使第一链交易通过至少下述方式被记录到区块链:
将所述第一区块链交易生成为可由具有对所述第一共享密钥的访问的任何计算机系统;以及
将所述第一区块链交易广播到区块链网络;以及
使第二区块链交易通过至少下述方式被记录到所述区块链:
使用与第二实体相关联的密钥来计算与所述交换平台相关联的第二密钥,使得:
与所述第一实体相关联的所述密钥变为无效的;以及
根据与所述第二实体相关联的所述密钥来计算第二共享密钥,并且与所述交换平台相关联的所述第二密钥等于所述第一共享密钥;以及
用与所述交换平台相关联的所述第二密钥替换与所述交换平台相关联的所述第一密钥。
2.根据任一前述权利要求所述的计算机实现的方法,所述方法还包括:
使用所述第一共享密钥从数字资产生成可支付给所述第二实体的第二区块链交易,所述第二区块链交易至少部分地基于资金交易;
将所述第二区块链交易广播到所述区块链网络。
3.根据任一前述权利要求所述的计算机实现的方法,其中,将所述第一实体的所述数字资产附着于所述交换平台还包括:
使用第一退款密钥生成可支付给所述第一实体的第一退款交易;
在第一时间段之后将所述第一退款交易广播到所述区块链网络。
4.根据任一前述权利要求所述的计算机实现的方法,其中,所述第一退款交易由所述交换平台和所述第一实体使用双方椭圆曲线数字签名算法来协作地签署。
5.根据任一前述权利要求所述的计算机实现的方法,其中,使所述第二区块链交易被记录到所述区块链还包括:
使用第二退款密钥生成可支付给所述第二实体的第二退款交易;
在第二时间段之后将所述第二退款交易广播到所述区块链网络。
6.根据权利要求5所述的计算机实现的方法,其中,所述第二退款交易由所述交换平台和所述第二实体使用双方椭圆曲线数字签名算法来协作地签署。
7.根据任一前述权利要求所述的计算机实现的方法,其中,计算所述第一共享密钥包括:
通过至少下述方式来计算第一候选共享密钥:
使用椭圆曲线密码术来计算同与所述交换平台相关联的所述第二密钥相对应的第一公钥;
向所述第二实体提供所述第一公钥;以及
使用椭圆曲线密码术根据所述第一公钥和与所述第二实体相关联的所述密钥来计算所述第一候选共享密钥;
通过至少下述方式来计算第二候选共享密钥:
使用椭圆曲线密码术来计算同与所述第二实体相关联的所述密钥相对应的第二公钥;
向所述交换平台提供所述第二公钥;以及
使用椭圆曲线密码术根据所述第二公钥和与所述交换平台相关联的所述第二密钥来计算所述第二候选共享密钥;以及
验证所述第一候选共享密钥与所述第二候选共享密钥相同。
8.根据任一前述权利要求所述的计算机实现的方法,其中,所述第二共享密钥通过至少下述方式来计算:
通过至少下述方式来计算第一候选共享密钥:
使用椭圆曲线密码术来计算同与所述交换平台相关联的所述第一密钥相对应的第一公钥;
向所述第一实体提供所述第一公钥;以及
使用椭圆曲线密码术根据所述第一公钥和与所述第一实体相关联的所述密钥来计算所述第一候选共享密钥;
通过至少下述方式来计算第二候选共享密钥:
使用椭圆曲线密码术来计算同与所述第一实体相关联的所述密钥相对应的第二公钥;
向所述交换平台提供所述第二公钥;以及
使用椭圆曲线密码术根据所述第二公钥和与所述交换平台相关联的所述第一密钥来计算所述第二候选共享密钥;以及
验证所述第一候选共享密钥与所述第二候选共享密钥相同。
9.根据任一前述权利要求所述的计算机实现的方法,其中,使所述第二区块链交易被记录到所述区块链包括:使所述第二区块链交易可由所述第二实体解锁。
10.根据任一前述权利要求所述的计算机实现的方法,其中,用与所述交换平台相关联的所述第二密钥替换与所述交换平台相关联的所述第一密钥包括:
将与所述交换平台相关联的所述第一密钥乘以随机值,以产生与所述交换平台相关联的盲式第一密钥;
向所述第二实体提供与所述交换平台相关联的所述盲式第一密钥;
将与所述交换平台相关联的所述盲式第一密钥乘以与所述第二实体相关联的密钥的乘法逆元,以产生第一中间密钥;
向所述第一实体提供所述第一中间密钥;
将所述第一中间密钥乘以与所述第一实体相关联的所述密钥,以产生第二中间密钥;
向所述交换平台提供所述第二中间密钥;以及
将所述第二中间密钥乘以所述随机值的乘法逆元,以生成与所述交换平台相关联的所述第二密钥。
11.根据任一前述权利要求所述的计算机实现的方法,其中,用与所述交换平台相关联的所述第二密钥替换与所述交换平台相关联的所述第一密钥使与所述交换平台相关联的所述第一密钥无效。
12.根据任一前述权利要求所述的计算机实现的方法,其中:
与所述第一实体相关联的所述密钥是由所述第一实体安全地维护的私钥;
与所述交换平台相关联的所述第一密钥是由所述交换平台安全地维护的私钥;
与所述第二实体相关联的所述密钥是由所述第二实体安全地维护的私钥;以及与所述交换平台相关联的所述第二密钥是由所述交换平台安全地维护的私钥。
13.根据任一前述权利要求所述的计算机实现的方法,其中,所述交换平台包括可信执行环境,所述可信执行环境:
存储与所述交换平台相关联的所述第一密钥;
存储与所述交换平台相关联的所述第二密钥;以及
提供由所述交换平台正在遵循与所述交换平台相关联的交换协议的远程证明。
14.一种系统,包括:
处理器;以及
存储器,其包括可执行指令,所述可执行指令因由所述处理器执行而使所述系统执行任一前述权利要求所述的计算机实现的方法。
15.一种非暂时性计算机可读存储介质,在所述非暂时性计算机可读存储介质上已经存储有可执行指令,所述可执行指令因由计算机系统的处理器执行而使所述计算机系统至少执行任一前述权利要求所述的计算机实现的方法。

说明书全文

安全链外链交易

技术领域

[0001] 本发明总体上涉及区块链技术和交易,并且更具体地涉及经由中间计算机系统在各方之间的链外交易。本发明特别适合于但不限于经由被信任以实现和操作交易协议的交换平台在非受信方之间创建链外交易,而无需存储攻击者可能用来危及交易的任何信息。可以创建交易以使得能够广播到区块链网络以在区块链上进行记录。因此,本发明提供了用于将交易记录到区块链的更安全的解决方案。

背景技术

[0002] 在本文献中,我们使用术语“区块链”来包括所有形式的电子的、基于计算机的分布式账本。这些包括基于共识的区块链和交易链技术、许可及未许可的账本、共享账本及其变型。尽管已经提出并开发了其他区块链实施方案,但是区块链技术的最广为人知的应用是比特币账本。尽管出于方便和说明的目的,比特币可以被称为本文中所描述的技术改进的有用应用,但应当注意的是,比特币仅提供了该技术的有用应用。本发明不限于与比特币区块链一起使用,并且替代性的区块链实施方案和协议(包括涉及非商业应用的实施方案和协议)落入本发明的范围内。例如,本发明在对区块链的验证和/或对作为比特币的加密货币交易的验证具有相似的约束的其他区块链实施方案中可能是有用的。作为示例,本公开的技术可应用于涉及计算机间协商的其他方面,而与是否发生加密货币的交换无关。
[0003] 区块链是基于共识的电子账本,该账本被实现为由区块构成的基于计算机的去中心化的分布式系统,而该区块又由交易构成。区块链也称为点对点电子账本,因为不存在用于管理账本的集中式系统,并且在分布式系统的节点之间使用共识协议来证实账本的交易。在一些示例中,“区块链交易”是指对包括数据和一组条件的字段值的结构化集合进行编码的输入消息,满足该组条件是将一组字段写入区块链数据结构的前提条件。在比特币的情况下,每个交易均是对区块链系统中的参与者之间的数字资产的控制的转移进行编码的数据结构,并且包括至少一个输入和至少一个输出。每个区块均包含先前区块的散列,使得这些区块变为链接在一起,以创建对自区块链起始已被写入区块链的所有交易的永久的不可更改的记录。交易包含嵌入其输入和输出中的被称为脚本的小程序,这些小程序指定了可以如何以及由谁访问交易的输出。在比特币平台上,这些脚本使用基于栈的脚本语言来写入。
[0004] 为了将交易(Tx)写入区块链,必须对交易进行“证实”。有效性由节点基于具有区块生成能的大多数节点所使用的一组通用规则来确定。例如,在比特币协议中,一些网络节点充当矿工并执行工作以通过从网络中拒绝无效交易来确保每个交易都是有效的。矿工执行工作以通过从网络中拒绝无效交易来确保每个交易都是有效的。例如,安装在节点上的软件客户端通过执行相关联的定和解锁脚本来对引用未花费的交易输出(UTXO)的交易执行此证实工作。如果锁定及解锁脚本的执行评估为真(TRUE),并且如果某些其他条件被满足,则交易是有效的,并且交易被写入区块链。因此,为了将交易写入区块链,交易必须i)由接收交易的节点证实(即,如果交易被证实,则节点将该交易中继至网络中的其他节点);ii)添加至由矿工构建的新区块;并且iii)被挖矿(即,添加至过去交易的公共账本)。
[0005] 尽管区块链技术最广为人知的是使用加密货币实施方案,但是数字企业家已经开始探索使用比特币所基于的加密安全系统以及可以存储在区块链上的数据来实现新系统。如果区块链可以用于不限于加密货币领域的自动化任务和过程,则这将是非常有利的。这些解决方案将能够在其应用中更多样化的同时利用区块链的益处(例如,事件的永久的防篡改记录、分布式处理等)。
[0006] 诸如比特币系统之类的DLT技术提供了一种抗审查方法,用以在中心化机构中不要求信任的情况下交换资产或价值。然而,比特币的去中心化和分布式性质是以有限的可缩放性和交易花费大量时间来进行处理的事实为代价的。例如,大约每十分钟证实新区块,并且通常推荐在交易的顶部上生成至少六个区块,以便认为交易被可靠地确认。在一些示例中,为了可靠的确认,交易必须等待得比此显著更长。在许多应用中,特别是在销售点处的零售或者在诸如货币交换那样以高频率交易资产的情况下,这些用于链内交易的相当大的延迟可能导致不可接受的冲突。
[0007] 加密货币交换可以在数字货币生态系统的运作中发挥作用。加密货币交换提供了将法定货币转换为数字资产(以及将数字资产转换为法定货币)的主要方法,促进了比特币与其他替代币的交易并提供了链外支付特征。为了高效地操作,交换必须使参与者能够以最小的冲突来转移资产,这与链内交易确认是基本不兼容的。因此,大多数加密货币交换平台保留了对客户存款(以及对应的私钥)的控制,以与行相同的方式行动,并且客户账户的余额被保存在私有内部数据库上。这使得与特定交换进行交互的双方之间的任何交易能够仅要求对该内部数据库的改变,这可以即时地执行。通过保持客户存款,加密货币交换可以以与传统银行处理账户之间的支付相同的方式来促进链外交易。然而,这种加密货币交换可能被限制为由具有注册到交换的存款(及对应密钥)的客户使用。

发明内容

[0008] 因此,期望提供在这些方面中的一个或更多个方面中改进区块链技术的方法和系统。
[0009] 因此,根据本发明,提供了一种如所附权利要求中所限定的方法。
[0010] 如将在下面更详细地描述的,计算机实现的方法和电子设备被配置成经由被信任以实现和操作交易协议的交换平台在计算机系统(例如,相互不信任的计算机系统,也称为“各方”)之间实现即时的链外交易而无需链内交易。链外交易使一个计算机系统能够生成可在不同情形下记录到区块链的多个交易,以可以确保取决于多个交易中涉及的另一计算机系统如何在交易的生成之后操作将适当的交易记录到区块链。
[0011] “链外”可能意味着该操作不是经由区块链执行的。为了保持安全,平台可以仅被信任以遵循指定的算法,而不存储来自先前状态的信息。由交换部存储的信息可以由恶意行动者获得而不危及链外交易的有效性,因为由交换部存储的信息可能不被用于获得基于链外交易生成附加交易所需的完整密钥。另外,即使倘若交换部的灾难性故障(例如,交换部永久离线或失去密钥共享),链外交易中的至少一些链外交易对于记录在区块链上也仍是有效的。
[0012] 如下所述,通过使用椭圆曲线密码术,可以在任意时间证明完整私钥(并且因此证明数字资产的所有权)。被配置成经由本文中所描述的交换平台系统实现相互非受信方之间的数字资产的即时链外交易的计算机实现的方法和电子设备使得能够在保持参与者的自主性的同时近乎即时创建链外交易。应当注意的是,“即时”可以意指“基本上即时”或包括某程度的变化。根据本发明的领域的上下文,该术语将为本领域技术人员所理解。
[0013] 因此,根据本发明,可以提供一种如所附权利要求书中所限定的计算机实现的方法(及对应的系统)。
[0014] 该方法可以被描述为即时链外交易(Tx)(其比如在加密货币应用中可以被称为转移)。附加地或替代性地,该方法可以被描述为用于保护或控制特定交易记录到区块链的保护或控制方法。作为说明性示例,第一计算机系统和第二计算机系统的操作可以是相互依赖的,以使得一个计算机系统的操作取决于另一计算机系统的操作。例如,第一计算机系统可以触发第二计算机系统的操作,但是如果第二计算机系统执行操作则可以执行第一逻辑,并且如果第二计算机系统不执行操作则可以执行第二逻辑。本文中所描述的技术使第一计算机系统能够取决于第二计算机系统做什么而具有能够执行第一逻辑或第二逻辑的加密保证。第一逻辑可以例如导致对区块链的第一交易的记录,而第二逻辑可以例如导致对区块链的第二交易的记录。在实施例中,第二计算机可以(1)确保其操作的执行使得能够将第一交易记录到区块链;或者(2)确保该操作的执行防止第二交易记录到区块链;或者(3)确保其操作的执行使得能够将第一交易记录到区块链并且确保该操作的执行防止第二交易记录到区块链两者。
[0015] 因此,本文中所描述的方法以下述方式允许相互依赖的计算机系统操作:经由区块链交易使得用于实现期望状态的能力成为可能,而不管参与者(与其他计算机系统或交换平台)是否合适地操作。
[0016] 如以上所指出的,本文中所描述和建议的技术可应用于多种上下文。一些上下文利用区块链来管理数字资产。数字资产可以由在区块链上的交易中记录的值来表示。数字资产的记录(或聚集到该值的各记录的聚集)可以是在区块链上输入特定交易(比如被称为数字资产的“转移”或“转移控制”的交易)的先决条件。在一些示例中,数字资产是其转移使得能够执行特定计算机系统逻辑的值。例如,计算机系统的编程可能取决于数字资产的记录,该数字资产在区块链中的出现是由另一计算机引起的。在一些示例中,数字资产(以及与一组区块链交易中的数字资产相对应的值)代表计算机系统要执行的工作量、要由计算机系统处理的数据、或对由计算机系统执行的算法的其他输入。在一些示例中,数字资产是加密货币的一部分或金额,尽管本公开的范围广泛地适用于通常不涉及支付或加密货币的其他上下文。
[0017] 在实施例中,交易(Tx)经由交换平台方法处于相互非受信方之间。所述计算机实现的方法可以包括:i)通过以下方式将第一方(其可以是计算机系统或其他此实体)的数字资产附着于交换平台:a)使用第一方的密钥或另外与第一方相关联的密钥以及交换平台的第一密钥或另外与交换平台相关联的第一密钥来计算与数字资产相关联的第一共享(密码)密钥;以及b)通过以下方式将数字资产存放到区块链网络:1)使用第一共享密钥从数字资产生成可支付给任何一方的资金交易;以及2)将资金交易广播到区块链网络;以及ii)通过以下方式将数字资产从第一方重新关联到第二方(其可以是计算机系统或其他此实体):a)使用第二方的密钥或另外与第二方相关联的密钥来计算交换平台的第二密钥,使得:1)第一方的密钥变为无效的;以及2)根据第二方的密钥和交换平台的第二密钥计算出的与数字资产相关联的第二共享密钥等于与数字资产相关联的第一共享密钥;以及b)用交换平台的第二密钥替换交换平台的第一密钥。
[0018] 根据本发明,可以提供一种电子设备。该电子设备包括接口设备、耦接至接口设备的处理器、和耦接至处理器的存储器。存储器可以在其上存储计算机可执行指令,该计算机可执行指令当执行时将处理器配置成执行本文中所描述的方法。
[0019] 根据本发明,可以提供一种计算机可读存储介质。计算机可读存储介质包括计算机可执行指令,该计算机可执行指令当执行时将处理器配置成执行本文中所描述的方法。
[0020] 根据本发明,可以提供一种包括椭圆曲线数字签名算法(ECDSA)脚本的计算机可读存储介质,该脚本包括计算机可执行指令,该计算机可执行指令当执行时将处理器配置成执行本文中所描述的椭圆曲线数字签名算法的功能。
[0021] 根据本发明,可以提供一种包括双方椭圆曲线数字签名算法(双方ECDSA)脚本的计算机可读存储介质,该脚本包括计算机可执行指令,该计算机可执行指令当执行时将处理器配置成执行本文中所描述的双方椭圆曲线数字签名算法的功能。
[0022] 根据本发明,可以提供一种包括加密安全伪随机数生成器(CSPRNG)脚本的计算机可读存储介质,该脚本包括计算机可执行指令,该计算机可执行指令当执行时将处理器配置成执行本文中所描述的加密安全伪随机数生成器的功能。
[0023] 根据本发明,可以提供一种计算机实现的方法,包括:使用第一方的密钥和交换平台的第一密钥来计算与数字资产相关联的第一共享密钥;将数字资产通过至少下述方式存放到区块链网络:使用第一共享密钥从数字资产生成可付给任何一方的资金交易;以及将资金交易广播到区块链网络;以及将数字资产通过至少下述方式从第一方重新关联到第二方:使用第二方的密钥来计算交换平台的第二密钥,使得:第一方的密钥变为无效的;以及根据第二方的密钥和交换平台的第二密钥计算出的与数字资产相关联的第二共享密钥等于与数字资产相关联的第一共享密钥;以及用交换平台的第二密钥替换交换平台的第一密钥。
[0024] 根据本发明,可以提供一种如上所述计算机实现的方法,该方法还包括:将数字资产通过至少下述方式与交换平台分离:使用第一共享密钥从数字资产生成可付给第二方的第二资金交易,第二资金交易至少部分地基于资金交易;向区块链网络广播第二资金交易;以及挖掘第二资金交易以向第二方提供数字资产。
[0025] 根据本发明,可以提供一种如上所述的计算机实现的方法,其中,将第一方的数字资产附着于交换平台还包括:使用第一退款密钥从数字资产生成可支付给第一实体的第一退款交易;在第一时间段之后将第一退款交易广播到区块链网络;以及挖掘第一退款交易,以将数字资产返还给第一方。
[0026] 根据本发明,可以提供一种如上所述的计算机实现的方法,其中,第一退款交易由交换平台和第一方使用双方椭圆曲线数字签名算法来协作地签署。将数字资产从第一方重新关联到第二方可以包括:使用第二退款密钥从数字资产生成可支付给第二方的第二退款交易;在第二时间段之后将第二退款交易广播到区块链网络;以及挖掘第二退款交易,以将数字资产返还给第二方。第二退款交易由交换平台和第二方使用双方椭圆曲线数字签名算法协作地签署。
[0027] 根据本发明,可以提供一种如上所述的计算机实现的方法,其中,计算第一共享密钥包括:通过至少下述方式来计算第一候选共享密钥:使用椭圆曲线密码术来计算与交换平台的第二密钥相对应的第一公钥;向第二方提供第一公钥;以及使用椭圆曲线密码术根据第一公钥和第二方的密钥来计算第一候选共享密钥;通过至少下述方式来计算第二候选共享密钥:使用椭圆曲线密码术来计算与第二方的密钥相对应的第二公钥;向交换平台提供第二公钥;以及使用椭圆曲线密码术根据交换平台的第二公钥和第二密钥来计算第二候选共享密钥;以及验证第一候选共享密钥与第二候选共享密钥相同。
[0028] 根据本发明,可以提供一种如上所述的计算机实现的方法,其中,与数字资产相关联的第二共享密钥通过至少下述方式来计算:通过至少下述方式来计算第一候选共享密钥:使用椭圆曲线密码术来计算与交换平台的第一密钥相对应的第一公钥;向第一方提供第一公钥;以及使用椭圆曲线密码术根据第一公钥和第一方的密钥来计算第一候选共享密钥;通过至少下述方式来计算第二候选共享密钥:使用椭圆曲线密码术来计算与第一方的密钥相对应的第二公钥;向交换平台提供第二公钥;以及使用椭圆曲线密码术根据第二公钥和交换平台的第一密钥来计算第二候选共享密钥;以及验证第一候选共享密钥与第二候选共享密钥相同。
[0029] 根据本发明,可以提供一种如上所述的计算机实现的方法,其中,将数字资产从第一方重新关联到第二方包括:将数字资产的一部分从第一方重新关联到第二方。
[0030] 根据本发明,可以提供一种如上所述的计算机实现的方法,其中,用交换平台的第二密钥替换交换平台的第一密钥包括:将交换平台的第一密钥乘以随机值,以产生交换平台的盲式第一密钥;向第二方提供交换平台的盲式第一密钥;将交换平台的盲式第一密钥乘以第二方的密钥的乘法逆元,以产生第一中间密钥;向第一方提供第一中间密钥;将第一中间密钥乘以第一方的密钥,以产生第二中间密钥;向交换平台提供第二中间密钥;以及将第二中间密钥乘以随机值的乘法逆元,以生成交换平台的第二密钥。
[0031] 根据本发明,可以提供一种如上所述的计算机实现的方法,其中,用交换平台的第二密钥替换交换平台的第一密钥使交换平台的第一密钥无效。
[0032] 根据本发明,可以提供一种如上所述的计算机实现的方法,其中:第一方的密钥是由第一方安全地维护的私钥;交换平台的第一密钥是由交换平台安全地维护的私钥;第二方的密钥是由第二方安全地维护的私钥;以及交换平台的第二密钥是由交换平台安全地维护的私钥。
[0033] 根据本发明,可以提供一种如上所述的计算机实现的方法,其中,交换平台包括可信执行环境,该可信执行环境:存储交换平台的第一密钥;存储交换平台的第二密钥;以及提供交换平台正在遵循与交换平台相关联的交换协议的远程证明。
[0034] 根据本发明,可以提供一种系统,包括:处理器;以及存储器,其包括可执行指令,该可执行指令因由处理器执行而使系统执行如上所述的计算机实现的方法。
[0035] 根据本发明,可以提供一种非暂时性计算机可读存储介质,在该非暂时性计算机可读存储介质上已经存储可执行指令,该可执行指令因由计算机系统的处理器执行而使该计算机系统至少执行如上所述的计算机实现的方法。附图说明
[0036] 本发明的这些和其他方面将从本文中所描述的实施例中变得明显并参照这些实施例而得以阐明。现在将仅通过示例的方式且参照附图对本发明的实施例进行描述,在附图中:
[0037] 图1示出了示例区块链网络的框图
[0038] 图2示出了可以用作区块链网络中的节点的示例电子设备的框图;
[0039] 图3示出了用于使用交换平台来执行非受信方之间的链外加密货币交易的示例过程的流程图
[0040] 图4示出了示例环境的框图,在该示例环境中,使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段;
[0041] 图5示出了用于使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段的示例过程的流程图;
[0042] 图6示出了用于使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段的数据流程图;
[0043] 图7示出了示例环境的框图,在该示例环境中,使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段;
[0044] 图8示出了用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的示例过程的流程图;
[0045] 图9示出了用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的数据流程图的第一部分;
[0046] 图10示出了用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的数据流程图的第二部分;
[0047] 图11示出了示例环境的框图,在该示例环境中,使用交换平台来执行非受信方之间的链外加密货币交易的多次转移;
[0048] 图12示出了示例环境的框图,在该示例环境中,使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段;
[0049] 图13示出了用于使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段的示例过程的流程图;
[0050] 图14示出了示例环境的框图,在该示例环境中,使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段;
[0051] 图15示出了用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程的流程图;以及
[0052] 图16示出了可以实现各种实施例的示例环境的框图。

具体实施方式

[0053] 首先参照图1,图1以框图形式示出了与区块链相关联的示例区块链网络100。运行区块链网络100进行操作服从的区块链协议的实例的分布式电子设备可以参与到区块链网络100中。这种分布式电子设备可以被称为节点102。区块链协议例如可以是比特币(Bitcoin)协议。
[0054] 运行区块链协议并形成区块链网络100的节点102的电子设备可以是各种类型的,包括例如诸如台式计算机、膝上型计算机、平板计算机、服务器、诸如智能电话的移动设备、诸如智能手表可穿戴计算机、或其他电子设备之类的计算机。
[0055] 区块链网络100的节点102使用合适的通信技术而彼此耦接,所述通信技术可以包括有线通信技术和无线通信技术。这种通信遵守与区块链相关联的协议。例如,在区块链是比特币区块链的情况下,可以使用比特币协议。节点102维护区块链上所有交易的全局账本。因此,全局账本是分布式账本。每个节点102均可以存储全局账本的完整副本或部分副本。由影响全局账本的节点102进行的交易由其他节点102进行验证,从而维护全局账本的有效性。当区块链是基于工作量证明的区块链时,还通过对与区块一起提交的工作量证明进行检查来验证区块。
[0056] 节点102中的至少一些节点作为区块链网络100的矿工104操作。图1的区块链网络100是工作量证明区块链,在该工作量证明区块链中,矿工104执行昂贵的计算以促进区块链上的交易。例如,工作量证明区块链可以要求矿工求解加密问题。在比特币中,矿工104求解出现时值(nonce),使得区块头通过双SHA-256散列到比由当前当前所定义的值小的数。
工作量证明算法所需的散列能力意味着:在已经在交易顶部挖掘了一定数量的区块之后,交易实际上被认为是不可逆的。求解加密问题的矿工104为区块链创建新区块并且将该新区块广播到其他节点102。其他节点102验证:矿工104实际上已经求解加密问题并且因此已经在接受区块应当被添加至区块链之前展示了足够的工作量证明。其他节点102还验证:在接受区块应当被添加至区块链之前区块本身是有效的(例如,区块的交易和区块头是有效的)。通过节点102的共识将区块添加至区块链(即,添加至分布式全局账本)。
[0057] 由矿工104创建的区块包括已由节点102广播到区块链的交易。例如,区块可以包括从与节点102中的一个节点相关联的地址至与节点102中的另一节点相关联的地址的交易。以这种方式,区块用作从一个地址至另一地址的交易的记录。请求将交易包括在区块中的一方通过使用与其公钥相对应的私钥对请求进行签署来证明他们被授权发起转移(例如,在比特币的情况下,“花费”比特币)。转移仅如果请求被有效签署则添加至区块。能够花费交易的一方(例如,计算机系统)也被称为能够“解锁”交易。
[0058] 在比特币的情况下,在公钥与地址之间存在一一对应关系。也就是说,每个公钥均与单个地址相关联。因此,本文中对将数字资产转移给公钥或者从该公钥转移数字资产(例如,支付到公钥)以及将数字资产转移给与该公钥相关联的地址或从该地址转移数字资产的任何引用是指共同操作。
[0059] 节点102中的一些节点可以不作为矿工操作,而是可以作为证实节点参与。交易的证实可以涉及检查签名或在锁定脚本中指定的其他条件,确认对有效UTXO的引用等。图1的示例包括六个节点102,所述六个节点102中的两个节点作为矿工104参与。在实践中,节点102或矿工104的数量可以是不同的。在许多区块链网络中,节点102和矿工104的数量可以远大于图1中示出的数量。
[0060] 图2以框图形式示出了示例电子设备200,该示例电子设备200可以用作区块链网络(比方说诸如结合图1示出的区块链网络100之类的区块链网络)中的节点(比方说诸如结合图1示出的节点102中的一个节点之类的节点)。示例电子设备200可以用作区块链网络(比如结合图1示出的区块链网络100)中的节点(比如结合图1示出的节点102中的一个节点)。在实施例中,区块链网络是点对点区块链网络。
[0061] 电子设备可以采取各种形式,所述各种形式包括例如台式计算机、膝上型计算机、平板计算机、服务器、诸如智能电话的移动设备、诸如智能手表的可穿戴计算机、或另一类型的形式。
[0062] 电子设备200包括处理器210、存储器220和接口设备230。这些部件可以直接或间接地彼此耦接并且可以彼此通信。例如,处理器210、存储器220和接口设备230可以经由总线240彼此通信。存储器220存储计算机软件程序,该计算机软件程序包括用于执行本文中所描述的功能的机器可读指令和数据。例如,存储器可以包括处理器可执行指令,该处理器可执行指令当由处理器210执行时使电子设备执行本文中所描述的方法。处理器可执行指令可以包括下述指令:该指令当由处理器210执行时使电子设备实现与区块链网络(例如,结合图1所描述的区块链网络100)相关联的协议。例如,指令可以包括用于实现比特币协议的指令。
[0063] 存储器220可以存储区块链网络(例如,结合图1所描述的区块链网络100)的全局账本或其一部分。也就是说,存储器220可以存储区块链的所有区块或区块的一部分,比如最近的区块、或一些区块中的信息的一部分。
[0064] 虽然图2中用单个框示出了存储器220,但是实际上电子设备200可以包括多个存储器部件。存储器部件可以是各种类型的,包括例如RAM、HDD、SSD、闪存驱动器等。不同类型的存储器可以适合于不同的目的。此外,虽然存储器220被示出为与处理器210分离,但是处理器210可以包括嵌入式存储器。
[0065] 如图2所示,处理器210可以包括诸如可信执行环境(TEE)的安全区域。TEE 250是向电子设备200提供附加安全性(比如隔离式执行、可信应用的完整性和资产机密性)的隔离式执行环境。TEE 250提供了下述执行空间:该执行空间保证了在TEE 250内部加载的计算机指令和数据在机密性和完整性方面受到保护。TEE 250可以用于保护重要资源(比如加密密钥)的完整性和机密性。TEE 250至少部分地在硬件级实现,从而保护TEE 250内执行的指令和数据免受来自电子设备200的其余部分以及来自诸如电子设备的所有者之类的外部各方的访问和操纵。TEE 250内的数据和计算受保护脱离包括TEE 250的节点(例如,结合图1描述的节点102)进行操作的一方。
[0066] TEE 250可以操作成例示安全执行环境(在本文中也称为“飞地”),并且然后在累积地对所添加的存储器的页面进行散列化的同时一次一个地添加存储器的页面。在实施例中,在远程机器(例如,开发者机器或另一机器)上执行存储器的页面的散列化,使得远程机器确定并存储期望的散列。因此,飞地的内容可以由任何远程机器验证,以确保飞地正在运行批准的算法。该验证可以通过对散列进行比较来执行。当飞地完全构建时,飞地将被锁定下来。可以在TEE 250中运行代码并且向代码发送秘密,但是一旦飞地被锁定下来就不能更改代码。最终散列可以由证明密钥来签署并且可以在数据所有者向飞地发送任何秘密之前使其可用于数据所有者验证它。
[0067] 如下所述,TEE 250可以用于保护交换中存储的共享密钥的机密性和完整性。例如,TEE 250可以用于生成并存储私钥共享。TEE 250旨在确保没有成员能够直接获得TEE 250飞地内持有的私钥共享或关于来自成员间通信或飞地间通信的其他私钥共享的信息。
该协议还对飞地的阈值的折衷是鲁棒的。此外,TEE 250可以使得能够实现远程证明,该远程证明可以由节点(比方说诸如结合图1示出的节点102中的一个节点之类的节点)用以向其他节点证明TEE 250是可信的并且正在运行用于由区块链网络100实现的协议的所批准的计算机可执行指令。TEE 250可以通过下述方式来提供远程证明:运行特定的代码段且发送由飞地的内部证明密钥签署的、位于飞地内部的代码的散列。
[0068] TEE 250可以配备有安全随机数发生器,安全随机数发生器位于TEE的飞地内部且可以用于生成私钥、随机质询或其他随机数据。TEE 250还可以被配置成从外部存储器读取数据并且可以被配置成将数据写入外部存储器。可以用仅在飞地内部持有的秘密密钥来对这样的数据进行加密。
[0069] TEE 250可以使用各种平台(比如可信平台模块(TPM)或Intel软件防护扩展(SGX))来实现。例如,SGX支持远程证明,这使得飞地能够从正在执行特定飞地的处理器获取已签署的声明,该特定飞地具有称为引用的给定成员。诸如Intel证明服务(IAS)的第三方证明服务可以确证这些签署的声明源自符合SGX规范的可信CPU。
[0070] 本发明可以提供布置成使用在另一交易的解锁脚本中提供的未确定的数据来对嵌入在区块链交易(Tx)的锁定脚本中的加密公钥进行修改的方法(及对应系统)。例如,当在例如使用交易字节码作为消息的比特币协议(例如OP_CHECKSIG)中结合签名检查操作码使用时,交易和数据两者都需要来自公钥的所有者的批准或授权。这样保护它们免于更改。
[0071] 本文中所描述的方法使用一个或更多个数字签名方案来验证各种交易。数字签名方案可以是椭圆曲线数字签名算法(ECDSA)方案。数字签名方案也可以是双方ECDSA方案。数字签名方案也可以是阈值ECDSA方案。方案可以用于在不必重构私钥且任何一方都不必向另一方透露其密钥共享的情况下构造有效签名。例如,在双方ECDSA方案中,存在两个方,并且这两方都需要重构私钥。然而,在ECDSA方案中,当创建与共享私钥相对应的签名时,可能不必重构私钥以生成签名。在实施例中,在不重构(即,重新生成)共享私钥的情况下生成与共享私钥相对应的签名。
[0072] 该ECDSA方案包括各种机制,这些机制可以被诸如结合图1所描述的节点102之类的节点用来识别恶意的或不协作的一方。例如,可验证的秘密共享(VSS)可以用于共享Shamir的秘密共享(SSS)所需的多项式。SSS是一种秘密共享的形式,其中秘密被分成多个部分并以其自己唯一的部分提供给每个参与者。这些部分可以用于重构秘密。如果不一致的共享被提供给不同的节点或者如果共享被秘密地发送至与被广播到所有节点的盲式共享不同的节点,则节点可以使用VSS来识别恶意节点或成员。不一致的共享可以由节点中的任何一个节点来标识。秘密的共享可以通过包括允许节点将其共享验证为一致的辅助信息而使得成为可验证的。
[0073] 向单个节点发送不正确共享(即,与被广播的盲式共享不同的共享)可以由该共享的预期接收节点来标识。可以使用可公开验证的秘密共享(PVSS)的技术使被秘密发送至节点的不正确共享的识别是可公开验证的。这样的技术可以避免在识别可能在未使用PVSS以及当不正确的共享被发送时不正确共享的接收者离线或切断于网络的实质性部分的情况下发生的欺骗发送方的方面的可能延迟。
[0074] 诸如向不同节点提供不一致的共享的不当行为可以由网络解决,以阻止恶意行为。例如,当节点被其他节点标识为恶意方时,多个节点可以协作以惩罚该恶意方。例如,节点可以采取涉及由恶意方存放到区块链网络的数字资产(比如数字货币、通证或其他权益或价值)的动作。例如,区块链网络可以通过将数字货币、通证、权益或价值转移给不可花费的地址来烧除数字货币、通证、权益或价值,或者区块链网络可以通过与其他节点达成共识以拒绝来没收这些数字资产。不是行为不当节点的节点还可以通过协作以排除行为不当节点(例如,通过有效地使密钥共享无效;例如,通过将节点排除在参与大会协议的范围之外,或者过重新共享私钥且不向行为不当节点分配共享)来阻止不当行为。
[0075] 可以通过使用TEE来增强上述ECDSA技术。例如,阈值ECDSA签名技术可以预期一种强形式的对手,本文中称为拜占庭对手(Byzantine adversary)。这种类型的对手可能任意地进行行为,例如,他们不仅拒绝参与签名过程或中途停止一方,而且还可能假装诚实地参与并发送不正确的信息。然而,通过使用TEE,并且产生用于在存储秘密私钥共享的TEE的飞地内进行签名的数据,可以提供额外的安全性,因为飞地可能以显著数量受危及是高度不可能的。例如,如果每个TEE被分配不超过一个密钥共享,假设n足够大,则可以合理地预期可能受危及的TEE的数量不接近对抗拜占庭对手的鲁棒性的阈值。如果协议对于相对于密钥共享的总数的小比例的恶意对手是容忍的,则这允许协议是安全的。
[0076] 例如,如果所有节点都具有TEE,假设TEE的制造商未被破坏,则仅通过对节点的物理访问并且仅以很大的努力和费用可以实现存储在飞地内的秘密的获取。这种制造商级破坏预期是可管理的。例如,如果制造商不实地声称多个公钥对应于真正的TEE,则他们可以赢得对私钥共享的直接访问,并潜在地发起攻击。然而,这种攻击将需要足够数量的密钥共享,以允许制造商在没有来自其他节点的帮助的情况下产生有效的签名。这将意味着累积总权益的大部分,这将是非常昂贵的。此外,通过实施攻击,将毁坏较大百分比的所持有权益的价值。
[0077] 当使用TEE时,考虑协议对“受破坏的节点”的鲁棒性是有用的。受破坏的节点是使得TEE外部的硬件被破坏但TEE的完整性不受到危及的节点。受破坏的节点可以具有针对飞地接收和不接收什么信息的控制。特别是,受破坏的节点可能停止(即,抑制)不参与协议。如果提供给协议的信息需要由在飞地中秘密持有的私钥签署(其中,相应的公钥在证明期间被认证),则私钥与飞地本身一样值得信任。因此,受破坏的节点不能向协议发送任意(经认证的)信息,并且可能仅通过停止或尝试欺骗飞地以不正确地行动(例如,通过向飞地提供过时信息)来尝试干扰。因此,对于受破坏的节点,成功的攻击将需要收集足够数量的部分签名以生成完整签名。
[0078] 在一个或更多个实施例中,可以使用包括非ECDSA签名方案的其他阈值方案。
[0079] 区块链网络中的节点可以基于所选的数字签名方案来实现交换协议。这样的节点可以包括存储在存储器220中的计算机可执行指令,该计算机可执行指令实现交换协议。这样的指令当由处理器210执行时使节点(比如电子设备200)执行交换协议的一个或更多个方法。这样的方法可以包括但可以不限于通过图3、图5、图8、图13和图15的过程300、500、800、1300或1500中的任一过程或组合而实现的方法。因此,交换协议可以包括图3、图5、图
8、图13和图15的过程300、500、800、1300或1500中的一个或更多个过程。过程可以由节点执行,或者可以与区块链网络的其他节点协作地执行。
[0080] 图3以流程图形式示出了用于使用交换平台来执行非受信方之间的链外加密货币交易的示例过程300。过程300可以由区块链网络(比如结合图1所描述的区块链网络100)的节点(比如结合图1所描述的节点102中的一个节点)来执行。也就是说,诸如结合图1所描述的节点102中的一个节点之类的节点可以执行示例过程300,该示例过程300用于使用结合图3所描述的交换平台来执行非受信方之间的链外加密货币交易。
[0081] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的示例过程300的步骤302中,一方将加密货币存款附着于交换平台并且使用共享密钥来创建资金和退款交易,如下面至少结合图4至图6所描述的那样。
[0082] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的示例过程300的步骤304中,所述一方使用创建新退款交易的滑动协议并使用新共享密钥将存款的所有权转移给第二方(即,将存款从第一方重新关联到第二方),如下面至少结合图7至图11所描述的那样。
[0083] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的示例过程300的步骤306中,确定是否将加密货币交易从交换平台分离(即,由当前所有者确定是否索赔加密货币存款)。
[0084] 如果在用于使用交换平台来执行非受信方之间的链外加密货币交易的示例过程300的步骤306中确定要将加密货币交易从交换平台分离,则在用于使用交换平台来执行非受信方之间的链外加密货币交易的示例过程300的步骤308中,存款的当前所有者使用当前共享密钥来将存款从交换部分离,如下面至少结合图12和图13所描述的那样。
[0085] 如果在用于使用交换平台来执行非受信方之间的链外加密货币交易的示例过程300的步骤306中没有确定要将加密货币交易从交换平台分离,则在用于使用交换平台来执行非受信方之间的链外加密货币交易的示例过程300的步骤310中,超时期满,并且当前受益人发出退款交易以将存款返还给先前所有者,如下面至少结合图14和图15所描述的那样。
[0086] 注意,图3中示出的示例过程300中执行的操作中的一个或更多个操作可以以各种顺序和组合(包括并行地)来执行。
[0087] 图4以框图形式示出了示例环境400,在该示例环境400中,使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段。以下结合图5和图6对示例环境400的框图的框中的每个框进行了详细描述。
[0088] 一方402可以通过将加密货币存款406附着于交换平台408来发起(404)非受信方之间的链外加密货币交易的附着阶段。在实施例中,所述一方402是诸如结合图1所描述的节点102中的一个节点之类的节点。加密货币存款406可以基于比特币,或者可以基于由交换平台408定义为可附着的一些其他这样的加密货币。
[0089] 所述一方402和交换部408随后协作以生成共享公钥410,所述一方402使用该共享公钥410来创建交易412,该交易412被广播(414)到区块链416,如本文中所描述的那样。在实施例中,交易412从加密货币存款406支付出,并且可支付给可以产生共享公钥410的任何一方(即,交易412从加密货币存款406向共享公钥410支付金额)。在实施例中,交易412从加密货币存款406支付出,并且可支付给可以提供同与共享公钥410相关联的私钥相对应的签名的任何一方(即,交易412从加密货币存款406向可以提供同与共享公钥410相关联的私钥相对应的签名的实体支付金额)。在实施例中,交易412支付出整个加密货币存款406。在实施例中,交易412支付出加密货币存款406的一部分,并且一个或更多个其他交易支付出加密货币存款406的其他部分。共享公钥410由所述一方402和交换平台408的私钥以及所述一方402和交换平台408的公钥生成,如本文中所描述的那样。
[0090] 所述一方402还创建退款交易418,退款交易418允许所述一方在某时间已经过去之后重新捕获加密货币存款406。在实施例中,退款交易418时间段(在本文中也称为“超时”并且表示为t0)基于诸如由一个或更多个计算机系统维持的时间之类的未来时间。在一个实施例中,退款交易时间段基于区块链416的未来区块高度(例如,大于区块链的区块的当前数量的区块链中的区块的数量)。应当注意的是,退款交易时间段可以显著长于附着的预期寿命。例如,如果预期的附着时段距附着开始的时间是三十天,则退款交易418的时间段可以是九十天。所述一方保存退款交易418而不是广播退款交易。所述一方可以当超时期满时广播退款交易418,如下所述。
[0091] 尽管未在图4中示出,但所述一方402和交换平台408协作以使用本文中所描述的双方ECDSA协议来利用共享公钥410签署退款交易418。
[0092] 应当注意的是,加密货币存款406的安全性是从与使用如本文中所描述的双方ECDSA结合的完整私钥的乘法分裂中得出的。共享公钥410是在附着期间计算出的,但是一方并不在任何点获知完整私钥,直到其在分离时被重新构造为止,如下所述。
[0093] 随着如下所述密钥共享被更新,先前方的密钥共享变为无效的。然而,所述先前方的密钥共享的无效取决于交换平台408替换密钥共享并消除密钥共享的先前值的所有记录。如果遵循此协议,则该方案倘若攻击那么是安全的,这是因为当前交换平台408密钥共享与除当前所有者以外的任何人串通都是无用的。因此,倘若交换平台408遵循替换密钥共享并消除密钥共享的先前值的所有记录的协议,那么交换平台408可能不需要被信任以维持加密货币存款406的安全性。
[0094] 如果交换平台408不诚实地行动并且保持密钥共享的先前迭代的记录,则交换平台408有可能与资金的先前所有者串通重新创建完整密钥。这种串通不太可能符合作为企业的交换平台408的长期利益。但是,恶意行为者可能潜在地取得交换平台系统的控制并且随着交易被处理而记录所有信息。在这种情况下,恶意行为者于是还必须与资金的先前所有者串通以重新创建完整密钥。因为攻击或者需要同时盗窃交换密钥和寄存器密钥两者,或者需要与资金的先前合法所有者串通,因此恶意攻击者危害交换平台408的机会受到限制。
[0095] 如上所述,在实施例中,交换平台408可以包括TEE。在这样的实施例中,甚至不需要交换平台替换密钥共享并消除密钥共享的先前值的所有记录以维持系统的安全性。通过在TEE内操作交换协议,TEE进一步保护了交换密钥共享。另外,TEE可以向其他参与者远程地证明TEE内正在遵循该协议,并且因此,交换平台408不可能发现或记录密钥共享。在这样的实施例中,交换平台408是在TEE中投资所需的仅一方。其他参与者将不需要TEE来实现交换协议。
[0096] 图5以流程图形式示出了用于使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段的示例过程500。过程500可以由区块链网络(比如结合图1所描述的区块链网络100)的节点(比如结合图1所描述的节点102中的一个节点)来执行。也就是说,诸如结合图1所描述的节点102中的一个节点之类的节点可以执行示例过程500,该示例过程500用于使用结合图5所描述的交换平台来执行非受信方之间的链外加密货币交易的附着阶段。
[0097] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段的示例过程500的步骤502中,一方开始将加密货币存款附着于交换部。
[0098] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段的示例过程500的步骤504中,所述一方生成附着私钥和退款私钥。在实施例中,所述一方使用诸如由密钥生成服务提供的伪随机数生成器之类的计算安全伪随机数生成器来生成附着私钥和退款私钥。
[0099] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段的示例过程500的步骤506中,所述一方计算与该附着私钥相对应的附着公钥并且将该附着公钥发送至交换部。在实施例中,所述一方使用椭圆曲线密码术(ECC)运算来计算与附着私钥相对应的附着公钥。
[0100] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段的示例过程500的步骤508中,交换部生成交换私钥。在实施例中,交换部使用诸如由密钥生成服务提供的伪随机数生成器之类的计算安全伪随机数生成器来生成交换私钥。
[0101] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段的示例过程500的步骤510中,交换部计算与交换私钥相对应的交换公钥并且将交换公钥发送至所述一方。在实施例中,交换部使用ECC来计算与交换私钥相对应的交换公钥。
[0102] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段的示例过程500的步骤512中,所述一方和交换部各自从其私钥以及从接收到的公钥生成共享公钥,如下所述。在实施例中,所述一方和交换部可以通过将其生成的共享公钥与另一方的生成的共享公钥进行比较来协作地验证该点的计算(例如,所述一方可以将所述一方的生成的共享公钥与交换部的生成的共享公钥进行比较,反之亦然)。值应当是相同的。在协作地验证此点的计算之前,所述一方的生成的共享公钥和交换部的共享公钥在本文中可以称为候选共享密钥。因此,例如,所述一方的生成的共享公钥在本文中可以称为第一候选共享密钥,而交换部的共享公钥在本文中可以称为第二候选共享密钥(或者交换部的共享公钥在本文中可以称为第一候选共享密钥,而所述一方的生成的共享公钥在本文中可以称为第二候选共享密钥),而所述一方和交换部可以通过验证第一候选共享密钥与第二候选共享密钥是相同的来协作地验证对此点的计算。
[0103] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段的示例过程500的步骤514中,所述一方使用共享公钥创建加密货币交易以支付加密货币的金额,如本文中所描述的那样。
[0104] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段的示例过程500的步骤516中,所述一方计算与退款私钥相对应的退款公钥并且将退款公钥发送至交换部。在实施例中,所述一方使用ECC来计算与退款私钥相对应的退款公钥。
[0105] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段的示例过程500的步骤518中,所述一方使用退款公钥创建具有超时值的退款交易,使得所述一方可以在约定的超时值之后使用退款私钥来索赔退款。
[0106] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段的示例过程500的步骤520中,所述一方和交换部协作以签署退款交易,所述一方将该退款交易保存以供将来使用,如下所述。在实施例中,所述一方和交换部协作以基于所述一方的附着私钥和交换部的附着私钥且使用双方ECDSA来签署退款交易。
[0107] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段的示例过程500的步骤522中,所述一方基于所述一方的附着私钥和交换部的附着公钥来证实退款交易的协作签名。
[0108] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的附着阶段的示例过程500的步骤524中,所述一方将加密货币交易广播到加密货币网络(例如,广播到比特币网络的区块链),如本文中所描述的那样。
[0109] 注意,图5中示出的示例过程500中执行的操作中的一个或更多个操作可以以各种顺序和组合(包括并行地)来执行。
[0110] 图6示出了用于使用交换平台来执行的非受信方之间的链外加密货币交易的附着阶段的数据流程图600。一方604开始链外加密货币交易的附着阶段并生成(608)附着私钥(S1)和退款私钥(Y1)。然后,所述一方604经由ECC计算(610)附着公钥(S1×G)并且将附着公钥发送至交换部602。
[0111] 交换部602生成(606)交换私钥(SE),并且响应于从所述一方604接收到附着公钥(S1×G)经由ECC计算(612)交换附着公钥(SE×G)并且将交换附着公钥发送至所述一方604。
[0112] 所述一方604通过(经由ECC)将所述一方的附着私钥(S1)乘以交换部的附着公钥(SE×G)来计算(616)共享公钥(A)。应当注意的是,所述一方604不具有对交换部的附着私钥(SE)的访问,而仅具有对如从交换部602接收的交换部的附着公钥(SE×G)的计算的结果的访问。
[0113] 交换部602通过(经由ECC)将交换部的附着私钥(SE)乘以所述一方的附着公钥(S1×G)来计算(614)共享公钥(A)。如本文所使用的,符号“×”(例如,在计算S1×G中)表示椭圆曲线乘法运算,在该椭圆曲线乘法运算中,整数(例如,S1)与椭圆曲线上的“点”(例如,G)相乘。应当注意的是,交换部602不具有对所述一方的附着私钥(S1)的访问,而仅具有对如从所述一方604接收的所述一方的附着公钥(S1×G)的计算的结果的访问。由于ECC的特性,交换部602的共享公钥(A)(SE×(S1×G))与所述一方604的共享公钥(A)(S1×(SE×G))相同,并且共享公钥(A)与如果通过从共享私钥(S)计算公钥而已经生成共享公钥相同,其中,共享私钥为(SE*S1)或(S1*SE)。如本文所使用的,符号“*”表示标准乘法(与如上所述由符号“×”表示的椭圆曲线乘法相反)。因此,A=S×G。
[0114] 如图6所示,所述一方604生成加密货币交易618(用Tx0表示)并且将加密货币交易618广播到加密货币网络620。在实施例中,所述一方604延迟将加密货币交易618广播到加密货币网络620,直到所述一方已经证实退款交易的签名且完成附着阶段为止,如结合图5所描述的那样。
[0115] 所述一方604经由ECC从退款私钥(Y1)计算622退款公钥(B1)(例如,B1=Y1×G),使用退款公钥(B1)创建具有t0的超时值的退款交易630(表示为Tx1),并且将退款公钥(B1)发送至交换部,使得如果退款交易630被广播到加密货币网络620则稍后可以使用退款公钥(B1),如下所述。
[0116] 所述一方604和交换部602协作以通过使用双方ECDSA来签署退款交易630,以基于交换部的附着私钥(SE)和所述一方的附着私钥(S1)计算(628)签名(Sig(SE,S1)),从而完成附着阶段。
[0117] 图7以框图形式示出了示例环境700,在该示例环境700中,使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段。第一方702(在图7中表示为“方一”)具有与用于加密货币存款706的交换平台704的共享密钥710,该加密货币存款706可以是附着于交换平台704的多个加密货币存款708中的一个加密货币存款,如本文中所描述的那样。第一方702具有带有超时t0的退款交易712。
[0118] 如果如下面图8至图10中所描述的那样第一方702将一些或全部加密货币存款706的所有权转移给第二方714(在图7中表示为“方二”),则第二方714和交换平台704将使用本文中所描述的技术来生成新共享密钥716,并且第二方714将生成具有超时t0–tc的退款交易718,其中,tc至少部分地基于期望的附着持续时间而被选择,如上所述。在实施例中,tc被选取为比用于比特币网络中的交易的预期确认时间更长。例如,如果用于比特币网络中的交易的预期确认时间为一小时(即,按每个的十分钟的六个区块),则tc被选取为大于一小时。
当第一方702将一些或全部加密货币存款706的所有权转移给第二方714时(例如,当第一方转移加密货币存款的至少一部分的所有权时),转移所有权的操作在本文中可以被称为“重新关联加密货币存款”或“重新关联数字资产”(例如,如同“将数字资产从第一方重新关联到第二方”或“将数字资产的一部分从第一方重新关联到第二方”)。
[0119] 例如,如果期望的附着持续时间是三十天并且t0被选取为大于期望的附着持续时间(例如,九十天),则可以选择tc以使在还允许在加密货币存款706的期满之前发生足够数量的所有权的转移的同时允许生成足够的时间来向特定方退款。例如,如果tc是三十分钟(或者,在实施例中,按每区块十分钟确认时间的三个区块),则在t0–n*tc(n=2880)少于三十天(例如,期望的附着持续时间)之前可以发生约2880次所有权的转移。换句话说,如果tc为三十分钟,则存在每天二十四小时的四十八个退款周期以及六十天中的2880个退款周期。
[0120] 当第二方714和交换平台704生成新共享密钥716并且新共享密钥716被证实(720)时,共享密钥710变为无效的(722)并且其将不再可用于索赔加密货币存款706。因此,在任何时间,仅一个共享密钥(例如,共享密钥710或新共享密钥716)是有效的,并且该有效共享密钥指示加密货币存款706的当前所有权。
[0121] 图8以流程图形式示出了用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的示例过程800。过程800可以由区块链网络(比如结合图1所描述的区块链网络100)的节点(比如结合图1所描述的节点102中的一个节点)来执行。也就是说,诸如结合图1所描述的节点102中的一个节点之类的节点可以执行示例过程800,该示例过程800用于使用结合图8所描述的交换平台来执行非受信方之间的链外加密货币交易的转移阶段。
[0122] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的示例过程800的步骤802中,第一方开始将附着于交换部的加密货币存款的所有权转移给第二方。
[0123] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的示例过程800的步骤804中,第二方生成新附着私钥和新退款密钥。在实施例中,第二方使用诸如由密钥生成服务提供的伪随机数生成器之类的计算安全伪随机数生成器来生成新附着私钥和新退款私钥。
[0124] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的示例过程800的步骤806中,交换部将当前交换私钥乘以随机值并且将结果发送至第二方。随机值是使得对所有各方(包括第一方和第二方)隐藏交换私钥的随机值(在本文中也称为随机盲化现时值)。在实施例中,使用诸如由密钥生成服务提供的伪随机数生成器之类的计算安全伪随机数生成器来生成随机值。
[0125] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的示例过程800的步骤808中,第二方将从交换部接收到的值乘以新附着私钥的倒数(即,第二方的附着私钥的倒数)并且将该相乘的结果发送至第一方。
[0126] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的示例过程800的步骤810中,第一方将从第二方接收到的值乘以第一方的附着私钥并且将该相乘的结果发送至交换部。
[0127] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的示例过程800的步骤812中,交换部将从第一方接收到的值乘以随机值的倒数并且将该结果存储为新交换私钥。通过将从第一方接收到的值乘以随机值的倒数,交换平台在步骤806中反转由交换部执行的随机盲化现时值的初始盲化。所得值是与第二方的附着私钥和第一方的附着私钥的倒数组合的交换附着私钥。该所得值变为用于交换部的新附着私钥,并且交换部的旧附着私钥被毁坏。
[0128] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的示例过程800的步骤814中,在用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的示例过程800的步骤812之后,第二方的附着私钥如本文所述的那样变为有效的,并且第一方的附着私钥变为无效的(即,第一方的附着私钥不再能够被用于分发加密货币存款)。因为第一方的附着私钥不再对应于交换附着私钥(例如,新交换附着私钥),所以第一方的附着私钥由于先前交换附着私钥的破坏而变为无效的。
[0129] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的示例过程800的步骤816中,第二方与交换部协作地证实新附着私钥,如以上结合图5的步骤512所述(例如,第二方和交换部两者都生成共享公钥,并且比较所生成的值以确保所生成的值是相同的)。
[0130] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的示例过程800的步骤818中,第二方根据新退款私钥计算新退款公钥并且将新退款公钥发送至交换部。在实施例中,第二方使用ECC根据新退款私钥计算新退款公钥。
[0131] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的示例过程800的步骤820中,第二方使用新退款公钥创建退款交易,该新退款公钥具有在第一方的退款交易超时值之前的新超时值,如本文所述。
[0132] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的示例过程800的步骤822中,第二方和交换部协作以签署新退款交易,第二方保存该新退款交易以供将来使用,如本文中所描述的那样。
[0133] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的转移阶段的示例过程800的步骤824中,第二方基于第二方的附着私钥和交换部的附着公钥来证实新退款交易的协作签名。
[0134] 注意,图8中示出的示例过程800中执行的操作中的一个或更多个操作可以以各种顺序和组合(包括并行地)来执行。
[0135] 图9示出了用于使用交换平台来执行的非受信方之间的链外加密货币交易的转移阶段的数据流程图的第一部分900。第一方904(在图9和图10中表示为“方一”)开始链外加密货币交易的转移阶段,以转移附着于交换部902的加密货币存款的所有权。在图9中示出的示例中,第一方904正在将加密货币存款的所有权从第一方904转移给第二方906(在图9和图10中表示为“方二”)。
[0136] 交换部902生成(908)随机值(R),并使用该随机值来计算(912)用于交换部的盲式附着私钥(RSE)。如上所述,随机值(在本文中也称为随机“盲化现时值”)确保用于交换部的附着私钥(SE)不能被任何一方或任何恶意攻击者确定。交换部902将用于交换部的盲式附着私钥(RSE)发送至第二方906。
[0137] 如上所述,第二方906生成(910)附着私钥(S2)和退款私钥(Y2)。第二方906通过将用于交换部的盲式附着密钥(RSE)乘以附着私钥的模数倒数(S2-1)来计算(914)中间密钥-1值。第二方906将该乘法的结果(RSES2 )发送至第一方904。
[0138] 第一方904通过将从第二方接收到的值(RSES2-1)乘以第一方904的附着私钥(S1)来计算(916)第二中间密钥值。第一方904将该乘法的结果(RSES2-1S1)发送至交换部902。
[0139] 交换部902通过将从第一方904接收到的值(RSES2-1S1)乘以随机盲化现时值(R)的-1 -1 -1倒数(R )来计算(918)新附着私钥(SES2 S1)。当交换部902用新附着私钥(SES2 S1)替换(920)先前附着私钥(SE)时,第一方904的附着私钥(S1)变为无效的(922),如本文中所描述的那样。
[0140] 应当注意的是,即使第一方904的附着私钥(S1)变为无效的(922),完整共享私钥(S)和对应共享公钥(A)也保持不变,但是仅可以由交换部902的新附着私钥(SEnew)和第二方906的附着私钥(S2)构造。这是因为:
[0141] Snew=SEnewS2=(SEoldS2-1S1)S2=(SEoldS1S2-1)S2=(SEoldS1)(S2-1S2)=(SEoldS1)=Sold[0142] 但是,如果交换部902正确操作协议,则Snew不等于SEnewS1,并且SEold不再存在。
[0143] 图10示出了用于使用交换平台来执行的非受信方之间的链外加密货币交易的转移阶段的数据流程图的第二部分1000。用于非受信方之间的链外加密货币交易的转移阶段的数据流程图的第二部分1000延续了图9中示出的数据流程图的第一部分900,其中,第一方904(其对应于图10中的第一方1004)正在将加密货币存款的所有权从第一方904转移给第二方906(其对应于图10中的第二方1006)。
[0144] 在用于使用交换平台来执行的非受信方之间的链外加密货币交易的转移阶段的数据流程图的第二部分1000中,第一方1004不参与。第二方1006使用ECC来计算(1008)与附着私钥(S2)相对应的附着公钥(S2×G),并且将附着公钥发送至交换部1002(其对应于结合图9所描述的交换部902)。
[0145] 交换部1002还计算(1010)与新交换附着私钥(SE)相对应的附着公钥(SE×G),并且将附着公钥发送至第二方1006。
[0146] 第二方1006通过(经由ECC)将第二方的附着私钥(S2)乘以交换部的附着公钥(SE×G)来计算(1014)共享公钥(A)应当注意的是,第二方1006不具有对交换部的附着私钥(SE)的访问,而仅具有对如从交换部1002接收的交换部的附着公钥(SE×G)的计算的结果的访问。
[0147] 交换部1002通过将交换部的附着私钥(SE)乘以第二方的附着公钥(S2×G)来计算(1012)共享公钥(A)。应当注意的是,交换部1002不具有对第二方的附着私钥(S2)的访问,而仅具有对如从第二方1006接收的第二方的附着公钥(S2×G)的计算的结果的访问。由于ECC的特性,交换部1002的共享公钥(A)(SE×(S2×G))与第二方1006的共享公钥(A)(S2×(SE×G))相同,并且共享公钥(A)与如果通过从共享私钥(S)计算公钥而已经生成共享公钥相同,其中,共享私钥为(SE*S2)或(S2*SE)。因此,如上所述,A=S×G。在实施例中,在转移阶段的操作之后,A和共享私钥S两者都保持不变。
[0148] 第二方1006经由ECC根据退款私钥(Y2)计算(1016)退款公钥(B2)(例如,B2=Y2×G),使用退款公钥(B2)创建具有如本文中所描述的t0–tc的超时值的退款交易1024(表示为Tx2),并且将退款公钥(B1)发送至交换部,使得如果退款交易630被广播到加密货币网络620则稍后可以使用退款公钥(B1),如下所述。
[0149] 第二方1006和交换部1002协作以通过使用双方ECDSA来签署退款交易1024,以基于交换部的附着私钥(SE)和第二方的附着私钥(S2)计算(1022)签名(Sig(SE,S2)),从而完成附着阶段。
[0150] 图11以框图形式示出了示例环境1100,在该示例环境1100中,使用交换平台来执行非受信方之间的链外加密货币交易的多个所有权转移。交换平台1102具有当前附着私钥(SE)1104,该当前附着私钥(SE)1104与随机盲化现时值(R)1106相乘,如本文中所描述的那样。结果(RSE)1108被提供给一方1110(在这种情况下,表示为“P4”的第四方)。在图11中示出的示例中,所述一方1110是所有权正被转移给的一方,而所述一方1116(在这种情况下,表示为“P3”的第三方)是所有权正被转移的一方。
[0151] 所述一方1110使用结果(RSE)1108生成如上所述的具有t0–3tc的超时值的退款交易1112(表示为Tx4)。所述一方1110将结果(RSE)1108与所述一方1110的附着私钥(S4)的乘法逆元(S4-1)组合,以生成如上所述的中间密钥值(RSES4-1)1114。
[0152] 中间密钥值(RSES4-1)1114被提供给所述一方1116,所述一方1116具有t0–2tc的超时值的先前退款交易1118(表示为Tx3)。所述一方1116使用中间密钥值(RSES4-1)1114通过将中间密钥值(RSES4-1)1114乘以所述一方1116的附着私钥(S3)来产生中间密钥值(RSES4-1S3)1120。
[0153] 所述一方1116将中间密钥值(RSES4-1S3)1120发送至交换部1102,交换部1102从中间密钥值(RSES4-1S3)1120提取新附着私钥(SES4-1S3)。交换部1102使用来自中间密钥值(RSES4-1S3)1120的新附着私钥(SES4-1S3)以替换(1122)旧附着私钥(SE)。
[0154] 当交换部1102使用来自中间密钥值(RSES4-1S3)1120的新附着私钥(SES4-1S3)替换(1122)旧附着私钥(SE)时,来自所述一方1116的附着私钥(S3)变为无效的(1136)。
[0155] 在图11中示出的示例中,在当交换部1102使用来自中间密钥值(RSES4-1S3)1120的-1新附着私钥(SES4 S3)替换(1122)旧附着私钥(SE)时之前,当前附着私钥(SE)1104与作为从一方1124(表示为“P2”)到所述一方1116的所有权转移的结果而生成的附着私钥(SES3-1S2)
1128相同。类似地,先前附着私钥(SES2-1S1)1134作为从一方1130(表示为“P2”)到一方1124的所有权转移(即,如上所述的第一所有权转移)的结果而生成。
[0156] 在图11中示出的示例中,所述一方1110的退款交易1112在从t0-3tc到t0-2tc是可使用的,所述一方1116的先前退款交易1118在从t0-2tc到t0–tc是可使用的,所述一方1124的退款交易1126在从t0–tc到t0是可使用的,并且所述一方1130(即,第一方)的退款交易1132在t0之后是可使用的。
[0157] 在图11中示出的示例中,每次SE被更新时,即使SE被随后揭示,先前密钥共享也变得无效并且不能被使用。转移的速度可能受到通信信道时延和/或本文中所描述的操作的执行时间限制。可以预期的是,算术运算的代价是可忽略的,并且可以在现代CPU上在几分之一微秒中计算出ECC操作。双方ECDSA是更低效的,并且可能花费若干秒钟来计算,然而,仅退款交易需要双方ECDSA。如果每一方都在线并且响应于与转移操作相关联的请求,则可以进行近乎瞬时的转移。
[0158] 在所有权的每次变更时,创建并签署具有设置为比先前发布的退款交易更早的tc的超时的新退款交易。为了成为有效的,必须在超时期满之后将退款交易广播到区块链网络,如下所述。在交换部不协作或无法协作的情况下,在超时期满之后将退款交易广播到区块链网络使先前备份无效。因此,对于第一所有者P1,将超时设置为t0,并且对于所有者Pn,将超时设置为t0–ntc。在实施例中,交换部的责任是为每个加密货币存款保留t0、值tc和当前n的记录。
[0159] 图12以框图形式示出了示例环境1200,在该示例环境1200中,使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段。在图12中示出的示例中,一方1202(表示为“方n+1”)发起附着于交换部1204的加密货币存款1206的分离1214。如上所述,加密货币存款1206可以是附着于交换部1204的多个加密货币存款1208中的一个加密货币存款。
[0160] 在实施例中,当例如先前交易已经如上所述转移了加密货币存款1206的一个或更多个部分的所有权时,所述一方1202可以发起小于加密货币存款1206的全部金额的分离1214。
[0161] 所述一方1202被当前共享密钥1210指定为加密货币存款1206的当前所有者,当前共享密钥1210由交换部的附着私钥(SE)和所述一方1202的附着私钥(Sn+1)生成,如本文中所描述的那样。在图12中示出的示例中,所述一方1202具有带有t0–ntc的超时的退款交易1212,并且由于所述一方1202是当前所有者,因此该退款交易超时是先前所有者的退款交易中的最早者。
[0162] 当所述一方1202发起一些或全部加密货币存款1206的分离1214时,生成交易1216,该交易1216将加密货币存款1206的收益提供给所述一方1202,并且加密货币存款
1206从交换部1204分离,使得不能执行使用加密货币存款1206的进一步的链外加密货币交易。在实施例中,交换部1204的附着私钥(SE)被粉碎或毁坏,以确保不能执行使用加密货币存款1206的进一步的链外加密货币交易。
[0163] 图13以流程图形式示出了用于使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段的示例过程1300。过程1300可以由区块链网络(比如结合图1所描述的区块链网络100)的节点(比如结合图1所描述的节点102中的一个节点)来执行。也就是说,诸如结合图1所描述的节点102中的一个节点之类的节点可以执行示例过程1300,该示例过程1300用于使用结合图13所描述的交换平台来执行非受信方之间的链外加密货币交易的分离阶段。
[0164] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段的示例过程1300的步骤1302中,一方请求从交换部分离,如上所述。
[0165] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段的示例过程1300的步骤1304中,确定所述一方是否是当前所有者(即,所述一方是否被授权分发加密货币存款)。在实施例中,通过根据交换部的附着私钥(SE)和所述一方的附着私钥(例如,用于第n方的Sn)计算共享密钥来确定所述一方是否为当前的。在实施例中,通过将当前所有者的附着公钥与交换部的附着私钥相组合并将结果与共享公钥进行比较以确保该结果与共享公钥是相等的,可以使用当前所有者的附着公钥来确认当前所有者。
[0166] 如果在用于使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段的示例过程1300的步骤1304中确定所述一方不是当前所有者,则在用于使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段的示例过程1300的步骤1306中,不允许分离。在实施例中,请求分离的所述一方从飞地接收指示不允许分离的消息。
[0167] 如果在用于使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段的示例过程1300的步骤1304中,确定所述一方是当前所有者,则在用于使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段的示例过程1300的步骤1308中,确定是否已达到第一超时(即,具有最早开始时间的超时),如本文中所描述的那样。例如,如果第四方是当前所有者并且第四方具有带有t0–3tc的超时的退款交易,如至少结合图11所描述的那样,那么如果当前时间在t0–3tc的超时之前,则尚未达到第一超时,而如果当前时间在t0–3tc的超时之后,则已达到第一超时。
[0168] 如果在用于使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段的示例过程1300的步骤1308中确定已经达到第一超时,则在用于使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段的示例过程1300的步骤1310中,针对加密货币存款的退款交易已经开始,并且因此,如示例过程1300的步骤1306中所描述的那样不允许分离。
[0169] 如果在用于使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段的示例过程1300的步骤1308中确定尚未达到第一超时,则在用于使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段的示例过程1300的步骤1312中,允许分离。
[0170] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段的示例过程1300的步骤1314中,交换部将当前交换私钥传送给请求分离的一方。
[0171] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段的示例过程1300的步骤1316中,所述一方使用交换私钥和所述一方的附着私钥来生成共享密钥(例如,共享密钥(S)是通过将交换部的附着私钥(SE)与所述一方的附着私钥(例如,第n方的Sn)相乘而生成的)。
[0172] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段的示例过程1300的步骤1318中,所述一方验证与交换部的共享密钥,如本文中所描述的那样。
[0173] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的分离阶段的示例过程1300的步骤1320中,所述一方使用共享密钥来生成交易,以从当前时间起从加密货币存款花费UTXO,直到达到最早的超时为止。也就是说,在达到最早的超时之前的任何时间,所述一方使用共享密钥来生成交易。如果所述一方在达到最早的超时之后等待使用共享密钥来生成交易,则交易可能由于介入退款而失败。“花费”UTXO从技术意义上讲意味着例如UTXO用作对下述交易的输入:该交易在区块链上的记录使UTXO被阻止用作区块链上另一交易的输入。
[0174] 注意,图13中示出的示例过程1300中执行的操作中的一个或更多个操作可以以各种顺序和组合(包括并行地)来执行。
[0175] 图14以框图形式示出了使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例环境1400。在图14中示出的示例中,当前时间1402是t0–ntc,其中,t0是第一超时周期,并且比附着周期更长(例如,对于三十天的附着周期,t0是九十天),并且tc是退款时间(例如,三十分钟或三个区块)。例如,如果存在481个方(或480个所有权转移),则当前时间1402为t0–480*tc,即九十天减去480乘以三十分钟,或者是附着加密货币存款之后的80天。
[0176] 在图14中示出的示例中,各方均尚未分离加密货币存款,并且退款阶段基于当前时间而开始。在第一退款周期1406期间,一方1408(例如,第481方)可以将其退款交易广播(1410)到区块链1412,以获得加密货币存款的退款。假设在第一退款周期1406期间,所述一方1408没有将其退款交易广播(1410)到区块链1412以获得加密货币存款的退款,那么在第二退款周期1414期间,一方1416(例如,第480方)可以将其退款交易广播(1418)到到区块链1412以获得加密货币存款的退款。正是在第二退款周期1414期间,交换协议可以从所有权的无效转移(例如,所有权从所述一方1416转移给所述一方1408)恢复。
[0177] 退款过程继续进行,直到各方之一在其退款周期期间成功地将其退款交易广播到区块链1412为止。如果退款周期1420期满并且一方1422(例如,第二方)没有将其退款交易广播(1424)到区块链1412,则一方1428(例如,第一方)可以在最后退款周期1426期间广播(1430)其退款交易。在实施例中,交换部将在最后退款周期1426的结束之后(例如,在达到时间t0之后)自动生成对第一方的退款交易。
[0178] 应当注意的是,可以在超时之后的任何时间(在比特币网络中也称为“锁定时间”)挖掘(即,在区块链上花费)退款交易。也就是说,一方不被限制在退款周期期间挖掘退款交易。一旦某一方的超时已经过去,交易就从该点起保持有效。通常,在所述一方的超时已经过去之后,具有最快超时的一方将首先提交他们的退款交易。一旦第一退款交易被确认,引用同一UTXO的所有其他退款交易就变为无效的。激励具有最快超时的一方最快地提交其退款交易,因为延迟该提交直到例如下一超时(例如,下一方的超时)造成所述下一方将挖掘退款交易的险。例如,在第二退款周期1414期间,一方1408和一方1416两者都可以将退款交易广播到区块链1412,以获得加密货币存款的退款。
[0179] 如本文中所描述的,最近的退款交易是可以最快挖掘到区块链中的交易。因此,较旧的退款交易(即,具有较晚超时的退款交易)变为多余的,因为较新退款交易更快变为有效的并且因此可以被首先花费。
[0180] 图15以流程图形式示出了用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500。过程1500可以由区块链网络(比如结合图1所描述的区块链网络100)的节点(比如结合图1所描述的节点102中的一个节点)来执行。也就是说,诸如结合图1所描述的节点102中的一个节点之类的节点可以执行示例过程1500,该示例过程1500用于使用结合图15所描述的交换平台来执行非受信方之间的链外加密货币交易的退款阶段。
[0181] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500的步骤1502中,已经达到第一超时周期,并且退款交易可以根据请求方的优先级开始(例如,较新的所有者具有优于较旧的所有者的退款优先权),如本文所描述的那样。
[0182] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500的步骤1504中,第一方(例如,最新的所有者)被选择。
[0183] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500的步骤1506中,至少部分地基于时间t0和已经使用的退款周期tc的数量来确定所选方的超时是否已经开始。
[0184] 如果在用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500的步骤1506中确定所选方的超时尚未开始,则在用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500的步骤1508中,在目前时间不允许退款交易。可以设想的是,如果最早一方的超时周期尚未开始,则任何较晚一方的超时周期也尚未开始,并且因此,任何一方不能寻求退款。
[0185] 如果在用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500的步骤1506中确定所选方的超时已经开始,则在用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500的步骤1510中,至少部分地基于时间t0和已经使用的退款周期tc的数量来确定是否已经达到下一超时(即,所选方的超时是否已经结束)。
[0186] 如果在用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500的步骤1510中确定已经达到下一超时(即,所选方的超时已经结束),则在用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500的步骤1512中,确定是否存在要选择的较早一方(例如,所有权链中处于较早的一方)。
[0187] 如果在用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500的步骤1512中确定存在要选择的较早一方,则如上所述在用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500的步骤1504中选择下一较早方。
[0188] 如果在用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500的步骤1512中确定不存在要选择的较早一方,则在用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500的步骤1514中,选择最早的一方,并且用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500在步骤1516继续,如下所述。
[0189] 如果在用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500的步骤1510中确定已经达到下一超时(即,所选方的超时已经结束),则在用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500的步骤1516中,具有在步骤1506和步骤1510中确定的当前退款周期的所选所有者将保存的退款交易广播到区块链。
[0190] 在用于使用交换平台来执行非受信方之间的链外加密货币交易的退款阶段的示例过程1500的步骤1518中,具有在步骤1506和步骤1510中确定的当前退款周期的所选所有者接收如本文中所描述的广播的退款交易的UTXO。
[0191] 注意,图15中示出的示例过程1500中执行的操作中的一个或更多个操作可以以各种顺序和组合(包括并行地)来执行。
[0192] 图16以框图形式示出了示例计算设备1600,在该示例计算设备1600中可以实现本发明的各种实施例。图16示出了可以用于实践本公开的至少一个实施例的示例计算设备1600的简化框图。在各种实施例中,示例计算设备1600可以用于实现本文中示出和上面所描述的任何系统或方法。例如,示例计算设备1600可以被配置成用作数据服务器、网络服务器、便携式计算设备、个人计算机或任何电子计算设备。如图16所示,示例计算设备1600可以包括一个或更多个处理器1602,所述一个或更多个处理器1602可以被配置成经由总线子系统1604与多个外围子系统通信并且可操作地耦接至所述多个外围子系统。处理器1602可以被用来实现交换协议,如本文中所描述的那样。这些外围子系统可以包括存储子系统
1606,该存储子系统1606包括存储器子系统1608和文件存储子系统1610、一个或更多个用户接口输入设备1612、一个或更多个用户接口输出设备1614、以及网络接口子系统1616。这样的存储子系统1606可以用于与本公开中所描述的交易或操作相关联的信息的临时或长期存储。
[0193] 总线子系统1604可以提供用于使示例计算设备1600的各个部件和子系统能够按预期彼此通信的机构。尽管总线子系统1604被示意性地示出为单个总线,但是总线子系统的替代性实施例可以利用多个总线。网络接口子系统1616可以提供到其他计算设备和网络的接口。网络接口子系统1616可以充当用于从示例计算设备1600接收数据和向其他系统发送数据的接口。例如,网络接口子系统1616可以使用户能够将该设备连接至无线网络或一些其他网络(比如本文中所描述的网络)。总线子系统1604可以用于经由网络接口子系统1616将与本公开中描述的交易或操作相关联的数据传输至一个或更多个处理器1602和/或传输至系统之外的其他实体。
[0194] 用户接口输入设备1612可以包括一个或更多个用户输入设备,所述一个或更多个用户输入设备比如为键盘、诸如集成鼠标轨迹球触摸板或图形平板之类的指示设备、扫描仪条形码扫描仪、结合在显示器中的触摸屏、诸如语音识别系统、麦克风之类的音频输入设备、以及其他类型的输入设备。通常,术语“输入设备”的使用旨在包括用于将信息输入到计算设备1600的所有可能类型的设备和机构。一个或更多个用户接口输出设备1614可以包括显示子系统、打印机或非视觉显示器(比如音频输出设备等)。显示子系统可以是阴极射线管(CRT)、诸如液晶显示器(LCD)、发光二极管(LED)显示器、或投影的平板设备、或其他显示设备。通常,术语“输出设备”的使用旨在包括用于从计算设备1600输出信息的所有可能类型的设备和机构。一个或更多个输出设备1614可以用于例如呈现用户接口,以当交互可能是适当的时促进与执行本文中所描述的过程及执行本文中的变型的应用的用户交互。
[0195] 存储子系统1606可以提供用于存储可以提供本公开的至少一个实施例的功能的基本编程和数据构造的计算机可读存储介质。应用(程序、代码模块、指令)——当由一个或更多个处理器执行时——可以提供本公开的一个或更多个实施例的功能并且可以存储在存储子系统1606中。这些应用模块或指令可以由一个或更多个处理器1602执行。存储子系统1606可以另外提供用于存储根据本公开使用的数据的存储库。存储子系统1606可以包括存储器子系统1608和文件/盘存储子系统1610。
[0196] 存储器子系统1608可以包括多个存储器,所述多个存储器包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)1618、以及可以存储固定指令的只读存储器(ROM)1620。文件存储子系统1610可以提供用于程序和数据文件的非暂时性持久(非易失性)存储(在本文中也称为非暂时性计算机可读存储介质),并且文件存储子系统1610可以包括硬盘驱动器、连同相关联的可移动介质的软盘驱动器、压缩盘只读存储器(CD-ROM)驱动器、光学驱动器、可移动介质盒、以及其他类似的存储介质。
[0197] 示例计算设备1600可以包括至少一个本地时钟1624。本地时钟1624可以是代表从特定开始日期已经发生的滴答数的计数器,并且可以整体位于示例计算设备1600内。时钟1624可以用于以特定的时钟脉冲同步示例计算设备1600和其中包括的所有子系统的处理器中的数据传送,并且可以用于协调示例计算设备1600与数据中心中的其他系统之间的同步操作。在一实施例中,本地时钟1624是原子时钟。在另一实施例中,本地时钟是可编程间隔计时器。
[0198] 示例计算设备1600可以是各种类型,包括便携式计算机设备、平板计算机、工作站、或任何其他本文中所描述的设备。另外,示例计算设备1600可以包括另一设备,该另一设备可以通过一个或更多个端口1626(例如,USB、机插孔、闪电连接器等)连接至示例计算设备1600。可以连接至示例计算设备1600的设备可以包括被配置成接受光纤连接器的多个端口。因此,可以连接至示例计算设备1600的设备可以被配置成将光信号转换为电信号以进行处理,所述电信号可以通过将设备连接至示例计算设备1600的端口进行发送。由于计算机和网络的不断变化的性质,因此对图16中所描绘的示例计算设备1600的描述仅旨在作为特定示例以便示出设备的实施例。具有比图16中所描绘的系统更多或更少的部件的许多其他配置是可能的。
[0199] 相应地,说明书和附图被看作是说明性而不是限制性意义。然而,将明显的是,在不脱离如权利要求中所阐述的本发明的更广泛的精神和范围的情况下,可以对其进行各种修改和改变。
[0200] 其他变型在本公开的精神内。因此,尽管所公开的技术易于进行各种修改和替代构造,但是其某些示出的实施例在附图中示出并且已经在上面进行了详细描述。然而,应当理解的是,无意将本发明限制为所公开的一种或多种特定形式,而是相反,其意图是涵盖落入如所附权利要求书中限定的本发明的精神和范围内的所有修改、替代构造和等同物。
[0201] 在描述所公开的实施例的上下文中(特别是在所附权利要求的上下文中)术语“一”、“一个”以及“该”的使用应解释为涵盖单数和复数,除非本文另有说明或与上下文明显矛盾。除非另有说明,否则术语“包括”、“具有”和“包含”应解释为开放式术语(即,意思是“包括但不限于”)。术语“连接”——当未修改且指物理连接时——应当理解为部分或全部包含在内、附接或连结在一起,即使有某些介入亦是如此。除非本文中另外指出,否则本文中列举的数值范围仅旨在用作单独地引用落入该范围内的每个单独的值的速记方法,并且每个单独的值被结合到说明书中,如同其在本文中被单独地列举一样。除非上下文另外指出或相抵触,否则术语“集合”(例如,“项目集合”)或“子集”的使用应被解释为包括一个或更多个成员的非空集合。此外,除非上下文另外指出或相抵触,否则对应集合的术语“子集”不一定表示对应集合的合适子集,而是该子集和对应集合可以相等。
[0202] 除非另有明确说明或与上下文明显矛盾,否则诸如“A、B、和C中的至少一者”或“A、B和C中的至少一者”的形式的短语的连接语言在如一般使用的上下文中被另外理解为呈现项目、术语等,可以是A或B或C、或者A和B和C的集合的任何非空子集。例如,在具有三个成员的集合的说明性示例中,连接短语“A、B、和C中的至少一者”和“A、B和C中的至少一者”指的是以下集合中的任何一个:{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}。因此,这种连接语言通常并非旨在暗示某些实施例需要A中的至少一个、B中的至少一个和C中的至少一个中的每一个都存在。
[0203] 除非本文另有说明或与上下文明显矛盾,否则本文中所描述的过程的操作可以以任何合适的顺序执行。本文中所描述的过程(或其变型和/或组合)可以在配置有可执行指令的一个或更多个计算机系统的控制下执行,并且可以通过硬件或其组合实现为在一个或更多个处理器上共同执行的代码(例如,可执行指令、一个或更多个计算机程序、或一个或更多个应用程序)。该代码可以例如以计算机程序的形式存储在计算机可读存储介质上,该计算机程序包括可由一个或更多个处理器执行的多个指令。该计算机可读存储介质可以是非暂时性的(即,可以是非暂时性计算机可读存储介质)。
[0204] 除非另外要求,否则本文中所提供的任何和所有示例或示例性语言(例如,“比如”)的使用仅旨在更好地阐明本发明的各实施例,并且不对本发明的范围构成限制。说明书中的任何语言都不应解释为指示任何未要求保护的要素对于实施本发明必不可少。
[0205] 本文中对本公开的各实施例进行了描述,包括发明人已知的用于实施本发明的最佳模式。通过阅读前述说明,那些实施例的变型对于本领域普通技术人员而言将变得明显。发明人期望本领域技术人员适当地采用这些变型,并且发明人意图以不同于本文具体描述的方式实践本公开的实施例。因此,本公开的范围包括适用法律所允许的所附权利要求中所记载的主题的所有修改和等同物。此外,除非本文另有说明或与上下文明显矛盾,否则本公开的范围涵盖其所有可能变型中的上述要素的任意组合。
[0206] 应当指出的是,在描述所公开的实施例的上下文中,除非另外指定,否则使用关于可执行指令(也称为代码、应用、代理等)的表述执行“指令”通常不执行独立操作(例如,数据传输、计算等)的操作表示指令正由机器执行,从而使得机器执行指定的操作。
[0207] 应当指出的是,上述实施例说明而非限制本发明,并且本领域技术人员将能够在不脱离由所附权利要求限定的本发明的范围的情况下设计许多替代实施例。在权利要求中,置于括号中的任何附图标记不应被解释为限制权利要求。用语“包括”和“包含”等不排除除了在任何权利要求或说明书中作为整体列出的要素或步骤之外的要素或步骤的存在。在本说明书中,“包括”表示“包括或由......构成”,并且“包含”表示“包含或由......构成”。要素的单数引用不排除这些要素的复数引用,反之亦然。本发明可以借助于包括若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的设备权利要求中,这些装置中的若干个装置可以由一个且同一个硬件项实现。在相互不同的从属权利要求中陈述特定措施的仅仅事实并不指示不能有利地使用这些措施的组合。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈