掌桥专利:专业的专利平台
掌桥专利
首页

用于控制分布式系统的处理步骤的计算机实现的系统和方法

文献发布时间:2023-06-19 10:03:37


用于控制分布式系统的处理步骤的计算机实现的系统和方法

技术领域

本公开大体涉及分布式计算系统,更具体地,涉及与分布式系统的节点相关联的处理步骤的控制和协调,包括使用区块链网络来指导和控制有序处理步骤。

背景技术

在分布式计算系统中,充当分布式系统中的节点的各种计算设备可以通过网络进行通信。可以在这些节点之间进行消息交换。这类消息交换可以例如允许节点协作以执行计算任务。这类任务可能涉及分布在各个节点上的处理。这类分布式处理可能需要控制和协调与各个节点相关联的步骤。例如,可以执行特定的处理顺序。

分布式系统的一个示例可能出现在飞机信息系统的背景下。例如,飞机信息系统可以包括各种子系统,其中每个子系统由子组件组成。每个子系统都可以负责执行特定的处理,例如执行飞行前检查。为了执行那些步骤,每个子系统可以要求子组件执行特定的处理步骤。

发明内容

在这类分布式系统中,可能需要或期望能够执行处理中的步骤顺序和/或形成特定处理的步骤顺序。例如,子系统可能需要按顺序执行其各自的处理。另外,与子组件相关联的节点可能需要按顺序执行其各自的处理步骤。

另外,可能期望提供一种防篡改的审计跟踪,用于记录处理步骤或特定处理的输出。这类审计跟踪可以在各种场景中具有应用。例如,以飞机为例,这可以例如允许诸如在事故发生之后对事故进行法证调查。在一个特定的例子中,这类系统可以允许将故障归因于飞机的特定子系统,例如,以确定根本原因。

在本文中,术语“区块链”涵盖所有形式的基于计算机的电子分布式分类账。这些分类账包括基于共识的区块链和交易链技术、许可和非许可的分类账、共享分类账,及其变体。虽然已提出并开发了其他区块链实施方案,但是区块链技术最广为人知的应用是比特币分类账。为了方便和说明的目的,在本文中可能会提及比特币。但应注意,本公开不限于与落入本公开范围内的比特币区块链以及替代的区块链实施方案和协议一起使用。

区块链是一种点对点的电子分类账,其实现为基于计算机的去中心化的分布式系统,其中所述系统由区块组成,而区块又由交易组成。每个交易都是一种数据结构,所述数据结构对所述区块链系统参与者之间的数字资产控制权的转移进行编码,并且包括至少一个输入和至少一个输出。每个区块都包含前一个区块的哈希值,因此区块被链接在一起,以创建自所述区块链创建以来写入其中的所有交易的永久性的不可更改的记录。交易包括嵌入到其输入和输出中的小程序,称为脚本,这些脚本指定如何以及由谁访问所述交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。

为了将交易写入所述区块链,必须对其进行“验证”。网络节点(矿工)进行工作以确保每个交易均有效,而无效交易则被网络拒绝。安装在所述节点上的软件客户端通过执行其锁定和解锁脚本对未花费的交易输出(UTXO)执行此验证工作。如果所述锁定和解锁脚本的执行评估为真,则所述交易有效,将所述交易写入所述区块链。因此,为了将交易写入所述区块链,所述交易必须:i)由接收所述交易的第一个节点进行验证—如果所述交易通过验证,则此节点将其中继到网络中的其他节点;ii)添加到由矿工建造的新区块中;iii)已挖掘,即被添加到历史交易的公共分类账中。

虽然区块链技术最广为人知的是用于加密货币实现,但数字企业家已经开始探索如何利用比特币所基于的加密安全系统和可以存储在区块链上的数据来实现新的系统。如果区块链可以用于不限于加密货币领域的自动任务和过程,则会非常有利。这类解决方案将能够发挥区块链的优势(例如,永久及防篡改的事件记录、分布式处理等),同时其应用将更加广泛。

2018年4月20日提交的名称为“计算机实现的方法和系统”的共同拥有的第1806448.5号英国专利申请中公开了一种用于控制和协调分布式系统中的处理步骤的方法、系统和计算机可读存储介质,所述分布式系统可以由参与区块链网络的节点组成的循环有序集的节点来实现。该申请的主题包括协议的描述,该协议可以称为多因素相关决策(MDD)协议。该申请的主题可用于提供分布式系统的节点之间的步骤的排序。例如,它可以用于提供系统内的处理步骤的排序。

在2017年4月18日和2018年2月8日提交的名称为“计算机实现的方法和系统”的共同拥有的第1706071.6和1802063.6号英国专利申请中分别公开了用于在由参与区块链网络的节点组成的循环有序集形成的分布式系统中提供功能的其他方法、系统和计算机可读存储介质。前者包括与名为群随机交换(Group Random Exchange,GRE)的协议有关的公开内容,该协议可允许资金从一个地址转移到另一个地址,从而模糊实体关联的地址之间的关联,同时消除了该实体资源被挪用的可能性。总的来说,GRE建立在一个群的概念上,该群同意一群节点的每个成员将x个计算资源的单元转移到另一个成员,以便每个成员都可以接收x个计算资源的单元。它还包括与GRE协议的变体(即群随机交换更改秘密(GroupRandom Exchange Change Secret,GRECS))有关的公开内容,GRECS更改GRE协议以便在为每条支付通道使用不同的秘密值时提供相同的功能。特别地,参与GRECS协议的每个节点都将各自的秘密值发送到发起者节点,然后由发起者节点使用这些值来发起转移。后者包括涉及对GRE协议的改进的公开内容,更具体地,涉及GRECS协议的公开内容。这类改进的协议,即群随机交换延迟显示(Group Random Exchange Late Reveal,GRELR),通过避免使用公共秘密的方式来改进GRECS。

然而,值得注意的是,如上所述,可能期望不仅能够控制系统的组件之间(例如,子系统之间)的处理顺序,而且还期望能够控制组成特定子系统的子组件之间的处理顺序。另外,可能期望能够允许由特定子系统进行的处理可选地被跳过或省略。

现在已设计出这类改进的解决方案。

因此,根据本公开,提供了一种如所附权利要求中所限定的方法。

根据本公开,可以提供一种计算机实现的方法。该方法可以包括:由参与区块链网络的节点组成的第一循环有序集的第一发起者节点生成私钥。该方法可以包括:第一发起者节点为该第一集合的每个节点生成私钥的加密份额,并且将各自的加密份额分配给第一集合的其他节点。该方法可以包括:第一发起者节点基于与每个加密份额对应的公钥来确定第一锁定值。该方法可以包括:第一发起者节点准备交易,该交易被设置成从与第一发起者节点相关联的源地址向在第一集合中紧挨在第一发起者节点之后的节点的接收地址发送对资源的控制,以响应于满足包括提供对应于第一锁定值的第一解锁值的执行条件。该方法可以包括:第一发起者节点发起进一步交易的准备,以在第一集合中的每对相邻节点之间形成交易环路,每个进一步交易被设置成从与每对相邻节点中的第一节点相关联的地址向与该对相邻节点中的第二节点相关联的地址发送相应资源的控制,以响应于满足包括提供对应于相应锁定值的相应解锁值的执行条件。每对相邻节点中的第二节点在第一集合中可以紧挨在该对相邻节点中的第一节点之后。可以基于分配给给定对相邻节点中的第一节点的加密份额和从在第一集合中紧挨在该第一节点之前的节点接收到的值来确定相应的锁定值。

在一些实现方式中,该方法可以包括:第一发起者节点向发起者节点组成的循环有序集的主发起者节点发送对应于私钥的公钥。发起者节点集的每个发起者节点可以是多个循环有序节点集中的相应一个节点集的发起者节点。多个循环有序节点集可以包括第一集合。该方法可以包括:第一发起者节点从第二发起者节点接收基于包括从第一发起者节点到主发起者节点集合中与每个节点相关联的公钥的第一值。第二发起者节点在发起者节点集中可以紧挨在第一发起者节点之前。

在一些实现方式中,该方法可以包括:第一发起者节点基于第一值和与私钥对应的公钥来确定第二锁定值。该方法可以包括:第一发起者节点准备交易,该交易被设置成从与第一发起者节点相关联的源地址向第三发起者节点的接收地址发送对资源的控制,以响应于满足包括提供对应于第二锁定值的第二解锁值的执行条件。第三发起者节点在发起者节点集中可以紧挨在第一发起者节点之后。

在一些实现方式中,该方法可以包括:第一发起者节点基于与从第三发起者节点到主发起者节点组成的发起者节点集的每个节点相关联的公钥对应的私钥来获得第二值。

在一些实现方式中,第二值可以由第一发起者节点从区块链获得。

在一些实现方式中,第二值可以由第一发起者节点从第三发起者节点获得。

在一些实现方式中,该方法可以包括:第一发起者节点确定不应发起交易环路的执行。该方法可以包括:响应于确定不应发起交易环路的执行:第一发起者节点基于第二值和私钥确定第三解锁值;以及第一发起者节点使用第三解锁值执行由第二发起者节点准备的交易,其中所述交易被设置为将资源的控制从与第二发起者节点相关联的源地址发送到第一发起者节点的接收地址。可以发送对资源的控制,以响应于满足包括提供第三解锁值的执行条件。

在一些实现方式中,第一锁定值可以进一步基于第二值。

在一些实现方式中,该方法可以包括:第一发起者节点确定应发起交易环路的执行,并且响应于确定应发起交易环路的执行:第一发起者节点基于第二值和私钥的相应一个加密份额确定第四解锁值;以及第一发起者节点使用第四解锁值执行由第一循环有序节点集中紧挨在发起者节点之前的节点准备的交易,其中该交易被设置成将资源的控制从与紧挨在前的节点相关联的源地址发送到发起者节点的接收地址。可以发送对资源的控制,以响应于满足包括提供第四解锁值的执行条件。

在一些实现方式中,发起准备进一步交易以形成第一集合中的每对相邻节点之间的交易环路可以包括:第一发起者节点向在第一集合中紧挨在第一发起者节点之后的节点发送第一锁定值。

在一些实现方式中,每个资源可以与其他资源具有相同的量。

在一些实现方式中,每个公钥及其对应的私钥可以形成椭圆曲线加密公钥-私钥对。

在一些实现方式中,可以使用可公开验证的密码秘密共享算法来生成私钥的加密份额。

本公开还提供了一种系统,包括:处理器和存储器。存储器包括可执行指令,所述指令被处理器执行时,使系统执行本文描述的计算机实现的方法的任何实施例。

本公开还提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,其中所述指令被计算机系统的处理器执行时,使得计算机系统至少执行本文所述的计算机实现的方法的实施例。

附图说明

本公开的这些方面和其他方面将从本文所述的实施例中变得显而易见,并参考本文所述的实施例进行阐述。现将仅通过举例的方式并参考附图对本公开的实施例进行说明,其中:

图1是示出在支付通道中使用的交易的图;

图2是示出如何创建图1中的支付通道的流程图;

图3是示出本申请的示例性操作环境的简化示意图;

图4是示出本申请的另一示例操作环境的简化示意图;

图5示出了示例性计算设备;

图6是示出由节点构成的循环有序集的图;

图7是一个简化示意图,示出了一个二维结构,其可以概念性地对应于多个循环有序集;

图8是提供类似于图7所示的二维结构的更详细表示的图;

图9是示出图8的循环有序集的一个典型集的图;

图10是示出由图8的发起者节点形成的循环有序集的图;

图11是示出用于构造在发起者节点之间形成环路的支付通道的操作的流程图;

图12是示出用于构造在给定的循环有序节点集的节点之间形成环路的支付通道的操作的流程图;

图13提供了图8的示意图的版本,其被注释以示出与节点之间的支付通道相关联的解锁值;

图14是示出图11和图12的流程图中的操作的组合的流程图;

图15提供支付通道的调拨通道版本的表示;

图16示出了可以用作支付通道的调拨交易的示例性比特币交易;

图17示出了可以用作支付通道的退款交易的示例性比特币交易;

图18示出了可用作支付通道的支付交易的示例性比特币交易;

图19示出了可以如何将图19的调拨交易的各方面与图18的支付交易的各方面组合;以及

图20是示出在控制和执行有序处理中由各种循环有序集的节点执行的操作的流程图。

在附图中使用相同的附图标记来表示相同的元件和特征。

具体实施方式

本文描述了体现本公开的协议,用于一群协作节点,以便每个协作节点以有序方式进行决策。它是基于以下概念而建立的:通过要求节点调拨(commit)计算资源单元,该计算资源单元只能通过利用从处理任务中先前步骤的输出中得出的累积秘密值来恢复。

现在将通过背景技术来描述几个概念。

本文描述的协议基于现有的比特币相关技术即支付通道(例如,参见“微支付通道简介”

如上所述,在下文的描述中涉及支付通道,因此为了方便读者,下面概述支付通道。

支付通道是为各方设计的技术,用于进行多次加密货币交易,而不将所有交易调拨(commit)到区块链。在典型的支付通道实现方式中,可以进行几乎无限量的支付,但是仅需要向区块链添加两个交易。

除了减少了增加到区块链的交易的数量和降低相关的成本之外,支付通道还提供了速度的优点,并且重要的是,如果事情不是按计划进行的,或者任何一个参与者决定不进行超过某组支付,则各方具有将单元退还的能力。下面概述支付通道的实现。

考虑Alice(爱丽丝)需要将区块链资源转移到Bob(鲍勃)的情况。根据情况需要,这可能需要在一段时间内从Alice向Bob进行多次支付。Alice期望在可能的交换集中最多转移例如15个比特币(总共)给Bob。为方便起见,在Alice和Bob之间建立支付通道,并如下操作。

首先,Alice创建2-2(2-of-2)的多重签名支付到脚本哈希(P2SH)交易T

接下来,Alice创建单独的退款交易T

接下来,Alice对原始交易T

此时,Alice和Bob可以继续创建新的退款交易,以反映从Alice到Bob进行的(区块链外)转移。这些退款交易将反映Alice在该时间点需要转移给Bob的资源的净数量。例如,如果Alice要转移5个比特币给Bob,则创建新的退款交易T

应当注意,创建的每个连续退款交易的nLockTime均比前一个退款交易的nLockTime短,即nLockTime(T

如果参与者拒绝对任何T

所构造的最终退款交易表示从Alice转移给Bob的单元的净额。此交易被提交到网络。

图1示出了在支付通道中使用的交易T

应当注意:t+n*s

图1中的交易T

在图2的流程图200中示出了用于在Alice和Bob之间构造支付通道的操作。操作210及后续操作由一个或多个计算设备中的一个或多个处理器执行,该一个或多个计算设备执行包括可以存储在计算机可读存储介质上的计算机可执行指令的软件。

在操作210,与Alice相关联的计算设备的处理器以上述方式创建2-2多重签名支付到脚本哈希(P2SH)交易T

控制流程从操作210进行到操作212。在操作212,与Alice相关联的计算设备的处理器创建单独的退款交易T

控制流程从操作212进行到操作214。在操作214,与Alice相关联的计算设备的处理器对上述退款交易进行签名。

控制流程从操作214进行到操作216。在操作214,与Bob相关联的计算设备的处理器也可以对上述退款交易进行签名。如果交易被如此签名,则控制流程进行到操作218。或者,如果交易未被如此签名,则中止支付通道的创建。

在操作218,与Alice相关联的计算设备的处理器对T

在操作220,将上述退款交易识别为第一退款交易,以便稍后可以协商从Alice到Bob的进一步转移。

控制流程从操作220进行到操作222。在操作222,确定有充足的剩余时间来协商进一步的转移。如果剩余时间不足,则控制流程进行到操作224,在该操作中,最后退款交易被提交到区块链。或者,如果剩余时间充足,则控制流程进行到操作226。

在操作226,协商Alice和Bob之间的进一步转移。控制流程从操作226进行到操作228,在该操作中,确定协商是否成功。如果该协商不成功,则控制进行到上述操作224。或者,成功的协商将导致控制流程进行到操作230。

在操作230,以上述方式创建反映源于成功协商的协议的新退款交易。然后,控制流程进行到操作240,在该操作中,新退款交易被识别为当前退款交易。

控制流程从操作240进行到操作242,在该操作中,与Alice和Bob相关联的计算设备的处理器可以对当前退款交易进行签名。如果这样,则控制流程返回到上述操作222。或者,如果交易没有被如此签名,则在操作244处,当前退款交易的识别返回到先前退款交易。控制流程从操作244返回到上述操作222。

如下文进一步描述的,在本申请的主题中采用阈值秘密共享方案。

在一些示例中,阈值秘密共享协议可以由(t;n)阈值定义,其中n可以是参与节点的数量,并且t+1可以是重建秘密所需的最小节点数量。秘密共享方案可以是阈值密码系统的示例,其中秘密可以被划分为n个节点中的部分,从而要求至少t+1个节点参与以重建秘密。对任何t个部分的了解可能不会使秘密泄露。

Shamir(沙米尔)秘密共享

Shamir,A.1979年在《ACM通讯》22(11)第612-613页(“Shamir方法”)发表的题为“如何共享秘密”一文对示例性阈值秘密共享解决方案进行了描述。Shamir方法可以基于多项式插值,并且在不失一般性的前提下,将秘密假定为有限域F的元素。Shamir方法可以包括交易商方法或无交易商方法,并且可以包括一组n个节点U

p={(x

其中:

注意:b

在存在交易商节点的情况下,交易商节点可以选择被假定为大小为p(p为素数)的有限域F的元素的秘密a

在Shamir无交易商节点的份额分配阶段:

1.每个参与者U

2.每个参与者U

3.每个参与者U

4.每个参与者U

上述对Shamir方法的描述是阈值秘密共享解决方案的一个示例;然而,也可以考虑其他方法或阈值秘密共享解决方案。

在一些实现方式中,阈值签名计算可以基于k×G的确定,其中k是密钥,并且G是椭圆曲线上的点。

如果f(x)是t级多项式,则秘密k可以通过k=∑

-每个节点U

-π中的所有节点可以将他们的部分加在一起(通过拉格朗日插值法重建秘密k),得到:

b

上述计算Q=kG的过程可以被称为秘密共享加入。

可公开验证的秘密共享

本申请的主题中涉及的节点可能期望能够验证其秘密份额的正确性。验证密钥份额时,可以采用可公开验证的秘密共享(PVSS)协议或算法。密钥份额验证可以允许节点验证他们自己的份额以及其他节点的份额。

Stadler,M在1996年5月出版的《密码技术理论和应用国际会议(InternationalConference on the Theory and Applications of Cryptographic Techniques)》(由总部设在柏林和海德堡的施普林格出版社出版)中的“可公开验证的秘密共享”一文(第190至199页)对示例性PVSS协议进行了描述。

在示例PVSS协议中,每个节点U

K

加密的份额可以由感兴趣的节点进行公开验证。节点可以验证其密钥份额,并且可以校验其他节点是否接收到正确的密钥份额,即交易商节点是否诚实。

PVSS协议的主要(高级)组件包括:

(i)秘密共享:交易商节点可运行算法Share(k)=(k

(ii)重建:参与者节点可以通过运行Recover(恢复)算法来重建秘密,使得Recover({D

(iii)验证:可以使用算法PubVerify来验证加密的份额。如果一节点操作该算法PubVerify({K

在一些实施方式中,根据恢复阶段的需要,PVSS方案可以是交互式的或非交互式的。

可以考虑基于几个密码系统的PVSS协议的各种实现。为了说明,以下重点介绍了由Schoenmakers,B.在1999年8月出版的《年度国际密码学会议(Annual InternationalCryptology Conference)》(由总部设在柏林和海德堡的施普林格出版社出版)中的“一个简单的可公开验证的秘密共享方案及其在电子投票中的应用”一文(第148至164页)中描述的协议。

在初始化阶段,可以使用公共过程选择一个群G

然后,交易商节点可以选择至多具有t-1级的随机多项式

通过计算

可以使用上面引用的Stadler中的Fiat-Shamir密码技术来执行密钥份额的验证。非交互协议的主要步骤包括:

证明者(每个节点)可以选择一个随机变量w

-使用c=H(X

-给定r

并且可以证明X

必要时,参与者节点可以重建秘密s,而不必了解关于其他节点的份额f(x

其中,

本申请的主题的以上示例和以下描述利用交易商节点来计算和分配密钥份额。然而,可以想到,可以如Fiat-Shamir启发式技术(例如,参见“Fiat-Shamir启发式”,https://en.wikipedia.org/wiki/Fiat%E2%80%93Shamir_heuristic,于2018年6月13日访问)所描述的那样来实现秘密共享协议的无交易商实现方式。

现在参见图3,其示出了本申请的示例性操作环境。如图所示,多个节点300通过计算机网络310进行通信。每个节点300是计算设备并且参与区块链,并且具有一个或多个相关联的地址,与之相关联的区块链反映了一定数量的单元,例如计算资源单元。

节点300中的各个节点可以在分布式处理中执行处理步骤,其输出被组合以形成结果。

本申请的主题可以在多种情况下应用。例如,图4示出了在系统尤其是飞机信息系统400的背景下本申请的特定示例操作环境。

飞机信息系统400的分布式处理由控制计算机设备410控制,并且可以依赖于多个子系统。例如,分布式处理可以涉及各种节点,例如燃油子系统420、导航子系统430、除冰子系统440和起落架子系统450。这些子系统中的每一个可以包括子组件。例如,燃油子系统420可以包括油检查子部件422、温度子部件424、油压子部件426和燃油量子部件428。子系统可以作为飞行前检查的一部分以特定顺序进行检查,而给定子系统的子组件又可以按特定顺序进行检查。例如,可以按照图中箭头所示的顺序从燃油子系统420开始直到起落架子系统450进行子系统检查。在另一个示例中,燃油子系统420的子部件可以从油检查子部件422开始顺时针进行检查,直到检查完燃油量子部件428。如下文进一步描述的,本申请的主题可以用于以有序的方式控制这类处理。另外,如果情况合理,则可能跳过子系统,例如在热带气候中可以跳过除冰子系统440。附加地或可替代地,如果一个子系统发生故障,则仍然可以控制其他子系统以按顺序完成其处理。

回到图3,请记住,每个节点300是一个计算设备。图5是示例计算设备的高级操作图。示例性计算设备500可以是本文描述的一个或多个计算机系统的示例,包括例如一个或多个节点300。示例性计算设备500包括使其适于执行特定功能的软件。

示例性计算设备500包括各种模块。例如,如图所示,示例性计算设备500可以包括处理器510、存储器520和网络接口530。如图所示,示例性计算设备500的上述组件通过总线540进行通信。

处理器510是硬件处理器。处理器510例如可以是一个或多个ARM、Intel x86、PowerPC处理器等。

存储器520允许存储和检索数据。存储器520可以包括例如随机存取存储器、只读存储器和永久存储器。永久存储器可以是例如闪存、固态硬盘等。只读存储器和永久存储器是非瞬时性计算机可读存储介质。计算机可读介质可以使用文件系统来组织,例如可以由管理示例性计算设备500的整体操作的操作系统来管理。

网络接口530允许示例性计算设备500与其他计算设备和/或各种通信网络(例如计算机网络310(参见图3))进行通信。

包括指令的软件由处理器510从计算机可读介质执行。例如,软件可以从存储器520的永久存储器加载到随机存取存储器中。附加地或可替代地,可由处理器510直接从存储器520的只读存储器执行指令。

如下文进一步描述的,软件可以使示例性计算设备500的实例适于用作这里提到的各种计算机系统中的一个或多个,包括例如一个或多个节点300和/或一个或多个控制计算机设备410和/或子系统420-450和/或其子组件。

参见图6,如下文进一步描述的,在本文描述的协议中,负责执行整个分布式计算任务的处理步骤的节点可以形成按与任务中的处理步骤的顺序对应的方式排序的循环有序集600。循环有序集可以被认为是环,其中每个节点610具有其他两个节点作为紧挨在该节点之后的节点和紧挨在该节点之前的节点。例如,定向环可以由节点610的循环有序集形成,如图6所示。

如下文进一步描述的,在本申请的主题中,采用了一个以上这类循环有序节点集。

例如,节点组成的循环有序集的节点可以对应于由给定子系统(类似于MDD协议)执行的处理步骤,其中采用多个这类循环有序集,每个集对应于特定子系统。此外,子系统之间的关系,特别是在子系统之间的处理的排序也可以使用另一个循环有序节点集(特别是其每个节点都是从对应于给定子系统的循环有序集的一个特定循环有序集中抽取的另一个循环有序节点集)来表示。

作为背景技术,在上述共同拥有的第1706071.6、1802063.6和1806448.5号英国专利申请中讨论了类似的循环有序集,具体地,这些循环有序集与形成“环路”或“群交换环路”的一组支付通道相关联,并且成为上述MDD、GRECS和GRELR协议的一大特征。

在另一个示例中,除了控制处理集之外,或者作为控制处理集的替代,可以将节点组成的循环有序集的节点用于其他目的,例如,用于在GRECS或GRELR协议中的目的或与其相似的目的,这些集中的多个集被链接到另一循环有序节点集,所述另一循环有序节点集由分别从这些集之一提取的节点组成。

在任何情况下,如图7所示,这类循环有序节点集的二维结构可以可视化为连接到整个环710中的一组环700。在图7的简化示意图中,未示出形成每个环700和整个环710的各个节点。然而,箭头指示在对应于环700的每个循环有序节点集内并且在对应于整个环710的循环有序节点集内的排序的可能方向。

图8为这种二维结构的更详细的示意图。

如图所示,二维结构包括诸如可以对应于环700的ω个循环有序集C

如图所示,每个循环有序集可以包括n

另一个循环有序集,即发起者节点的循环有序集800,由每个循环有序集C

如下文进一步描述的,本申请的主题依赖于非对称密码技术。可以采用各种公钥密码系统。例如,可以采用椭圆曲线密码学(ECC)。在特定示例中,可以是采用椭圆曲线密码学并且采用各种私钥和相应的公钥,由此给定的私钥k及其对应的公钥P可以是椭圆曲线密码学公钥-私钥对,使得P=kG,其中G是椭圆曲线的基点,阶次为q:q×G=0,其中q是大素数,且0

现在将描述链接每个循环有序节点集的节点的支付通道的结构。

例如,考虑循环有序集C

参考示意图900,Cj的节点——

如图所示,密钥份额

值得注意的是,在使用椭圆曲线密码学(ECC)的情况下,私钥v

如下文进一步描述的,密钥份额用于在循环有序集C

图10是示出图8的发起者节点的循环有序集800的图。如上所述,发起者节点的循环有序集800提供了对应于整个环710(图7)的第二维度。

如图所示和如上所述,发起者节点的循环有序集800的发起者节点被排序以形成如发起者节点之间的箭头所示的循环或环。

如上所述,每个发起者节点I

现在将描述各种支付通道的创建。

首先,应当注意,使用支付通道需要将计算资源的单元调拨(commit)给该通道。例如,在支付通道的给定环路中,计算资源将由每条支付通道从节点转移到其直接支付通道。

由于节点之间的值转移可能不是此处描述的协议的某些应用的要求,因此该数量可能是标称数量。然而,显而易见的是,每个节点都需要参与选择结果,否则其调拨到支付通道的值将被没收。因此,可能还需要节点向支付通道贡献足够多的计算资源,以阻止轻率的参与和/或违反本文描述的协议。被调拨到每条支付通道的计算资源的量可以是相同的量,或者换言之,被调拨到每条支付通道的资源在资源是可互换的情况下可以是相同的。或者,这些值可以变化。例如,在几个不同环路中的一个给定环路中,同量的计算资源可以被调拨到每条支付通道,但是那些值在那些不同环路之间并不相同。

此外,为了解释清楚起见,采用以下符号来讨论在发起者节点组成的循环有序集的发起者节点之间形成环路的支付通道的创建以及在循环有序集C

首先,字母i被用作与发起者节点组成的循环有序集的元素(例如,发起者节点/其各自的循环有序集的每一个)相关的索引。

其次,字母j被用作与循环有序集C

接下来,对于循环有序集C

接下来,n

此外,对于给定的循环有序集C

此外,上面使用的涉及循环有序集C

接下来,应当注意,尽管存在ω个循环有序集(除了发起者节点组成的循环有序集之外),但是由于存在主发起者I

此外,对于发起者节点组成的循环有序集的索引i的任何引用应当被认为是对(ω+1)取模,这意味着,作为示例,I

接下来,应当注意,对发起者节点组成的循环有序集的任何引用可使用字母下标(a,b,c,d....)(例如,如图8和图10中所示),或者,可等同地使用数字对应的索引(0,1,2,3....)。例如,后者可以用于指代发起者节点组成的循环有序集上的迭代。

最后,要注意的是,在下面的描述中,使用了术语“紧挨在......之前”和“紧挨在......之后”,分别对应于图8、图9和图10所示的箭头的方向。例如,在图8中标记为I

现在将参考图11、12和14所示的一系列流程图来讨论由本文描述的协议中的节点执行的示例性操作。

首先,将结合图11讨论在发起者节点之间形成环路的支付通道的构造。图11示出了流程图1100,其示出了在准备创建支付通道的环路时执行由发起者节点组成的循环有序集的发起者节点执行的操作。由各个发起者节点中的每个节点的一个或多个处理器来执行操作1110及后续操作。这样,操作1110及后续操作由各种计算设备的一个或多个处理器执行。例如,示例性计算设备500的适当配置的实例的处理器510(图5)执行包括计算机可执行指令的软件,所述计算机可执行指令可以存储在计算机可读存储介质上,例如存储在存储器520上。

在操作1110,主发起者节点I

值得注意的是,该值对于协议的安全性至关重要,特别是对于仅主发起者节点I

另外,在操作1110,主发起者节点I

接下来,在操作1120,其他发起者节点(I

接下来,在操作1130,主发起者节点I

如下所述,将在I

建立支付通道需要进行迭代。迭代从i=0处开始,因此在主发起者节点处开始(请回忆,I

接下来,在操作1140,确定是否有充足的剩余时间来完成支付通道的建立。下文进一步描述确定是否有充足的剩余时间来完成支付通道的建立的方式。如果确定剩余时间不足,则建立终止(并且由于超时将发生所建立的任何支付通道的退款交易)。

如果剩余时间充足,则在操作1140之后,确定是否已经在发起者节点之间创建了所有支付通道。如果是,则创建结束。或者,如果仍然需要创建支付通道以便在发起者节点组成的循环有序集的节点之间形成环路,则下一步操作是操作1150。

在操作1150,节点I

从操作1150开始,如果成功地创建了支付通道,则递增名义迭代器(notionaliterator)i,然后进行操作1160。或者,如果存在故障,则下一步操作是操作1140,其中只要剩余时间充足,就可以尝试重建支付通道。

在操作1160,节点I

从操作1160开始,下一步操作是操作1140,其中只要剩余时间充足,则将创建(根据需要)另一条支付通道(并且可以成功创建)。

值得注意的是,在上述过程中,除主发起者节点I

首先,将结合图12讨论在给定的循环有序节点集C

首先,在操作1210,循环有序节点集C

接下来,在操作1220,发起者节点I

接下来,在操作1230,发起者节点基于密钥份额和

然后,发起者节点I

如下所述,将在I

建立支付通道需要进行迭代。迭代从j=0开始,因此在发起者节点处开始(请记住

接下来,在操作1240,确定是否有充足的剩余时间来完成支付通道的建立。下文进一步描述确定是否有充足的剩余时间来完成支付通道的建立的方式。

如果确定剩余时间不足,则建立终止(并且由于超时将发生所建立的任何支付通道的退款交易)。

或者,如果剩余时间充足,则在操作1240之后,确定是否已经在C

在操作1250,节点

从操作1250开始,如果成功地创建了支付通道,则递增名义迭代器j,然后进行操作1260。或者,如果存在故障,则下一步操作是操作1240,其中只要剩余时间充足,就可以尝试重建支付通道。

在操作1260,节点

从操作1260开始,下一步操作是操作1240,其中只要剩余时间充足,则将创建(根据需要)另一条支付通道(并且可以成功创建)。

图13提供图8的版本,其被注释为示出可以与根据前述建立的节点之间的支付通道相关联的解锁值。

最后,应当注意,流程图1100和1200中所示的操作由于所采用和生成的各种操作的共同值而必然相互依赖。图14提供了流程图1400,其示出了流程图1100和流程图1200中的操作可以如何组合。值得注意的是,流程图1400中以点画边框示出的操作可以并行进行。另外,应当注意,以阴影填充示出的操作对应于流程图1200的各种操作。

如下文进一步描述的,本申请的主题不需要使用支付通道进行多于一次的支付迭代。实际上,通道的主要焦点不是支付本身。相反,支付通道充当托管机制以强制遵守本文所述的协议。这样,可以采用可能不同于上述现有支付通道的支付通道版本,因为这类不同版本的支付通道中的重点可能在于托管资源和提供时间锁定的退款交易,而不是提供多次退款-支付交易的迭代。支付通道的这类变体可以被称为调拨通道(commitment channel)。

调拨通道是“单向”通道,因为资源的转移仅在一个方向上,类似于上述支付通道的示例实现。对于一对节点,使得U

图15提供U

如图所示,调拨通道包括三个交易:T

T

T

T

可以使用比特币区块链来提供调拨通道的实现。在这类实现方式中,T

图19提供了表格1900,该表格示出了如何使用操作码OP_ECPMULT来将调拨交易1600的与支付交易1800的组合以解锁所调拨的资源(比特币)。

现在将讨论确定是否有足够的时间来创建支付通道的方式。

考虑到支付通道是调拨通道的情况,这类“充足”或“充足时间”概念的核心是:当一对参与者创建支付通道U

1.每条调拨通道都有一个nTimeLocked退款交易T

2.必须为每个参与者U

3.创建U

a)相同循环有序集C

b)与其他循环有序集相关联的环路中的调拨通道,其中C

c)与发起者的循环有序集相关联的环路中的调拨通道U

4.当主发起者I

还应当注意,如果在开始时间T

a)从调拨通道U

b)从调拨通道U

考虑到由于计划的开始时间T

为此,可以如下定义值s

s

1.构建调拨通道

2.确定在区块链内找到的必要的秘密值,以及

3.向区块链网络提交支付

s

1.可以构建与循环有序集C

2.可以在区块链内找到与循环有序集C

3.可以将环路C

4.可以构建与发起者节点组成的循环有序集相关联的环路的调拨通道I

5.可以在区块链内找到调拨通道I

6.可以将I

值得注意的是,

利用如上所定义的值s

上面解释了如何为各种循环有序集建立支付通道的环路。现在将结合图20描述这些环路在控制系统组件的排序处理中的使用(例如,在与节点的每个ω循环有序集C

图20示出了流程图2000,其示出了由各个循环有序集的节点执行的操作,该操作用于控制各个循环有序集的节点之间以及构成每个集的节点之间的处理的顺序。由各个节点中的每个节点的一个或多个处理器来执行操作2010及后续操作。这样,操作2010及后续操作由各种计算设备的一个或多个处理器执行,例如,示例性计算设备500的适当配置的实例的处理器510(图5)执行包括计算机可执行指令的软件,所述计算机可执行指令可以存储在计算机可读存储介质上,例如存储在存储器520上。

图20所示的操作假定已经建立了支付通道以在每个循环有序节点集(包括发起者节点组成的循环有序集)的节点之间形成环路。

在考虑图20时,对于读者来说,参考图8或图13可能是有帮助的。记住,在那些附图所示的示例中,除了发起者节点组成的循环有序集(即ω=d=4)之外,还存在四个循环有序集,并且这四个循环有序集的每一个都恰好包括四个节点(即

在操作2010,主发起者I

I

需要迭代,以便处理可以在子系统之间进行(因此,通过与该子系统对应的循环有序集的节点,由该循环有序集的发起者触发)。迭代从i=ω开始,因此在循环有序节点集C

接下来,在操作2020,确定是否有充足的剩余时间来完成与还未完成处理的循环有序节点集(除了循环有序发起者节点集之外)相关联的环路的支付通道的提交,以及是否有充足的剩余时间来完成与循环有序发起者节点集相关联的环路的剩余支付通道的提交。

如果确定剩余时间不足,则处理进行到操作2030,在该操作,发起者节点I

或者,如果在操作2020确定剩余时间充足,则处理进行到操作2040。

在操作2040,发起者节点I

如果确定应当跳过与循环有序节点集C

因为,如下文进一步所述,给定循环有序节点集C

在操作2050,发起者节点I

处理从操作2050进行到操作2060。在操作2060,I

在操作2060之后,名义迭代器i递减,并且假设存在剩余的发起者节点(即i>0),则处理在操作2020处继续。或者,如果所有发起者节点都有机会执行,则处理终止。

请记住,I

在操作2070,发起者节点识别

在操作2070之后的操作2080,发起者节点I

需要迭代,以便处理可以在循环有序集C

迭代从j=n

处理从操作2080进行到操作2090。在操作2090,确定是否有充足的剩余时间来完成与循环有序节点集C

如果确定剩余时间不足,则处理进行到操作2100,在该操作,节点

或者,如果在操作2090确定剩余时间充足,则处理进行到操作2110。

在操作2110,与循环有序节点集Ci相关联的环路中的下一个节点

处理从操作2110进行到操作2120。在操作2120,节点

从操作2120开始,当处理进行到循环有序节点集C

在操作2050,如上所述,下一个发起者节点(I

上述实施例实际上涉及循环有序集的一个循环有序集,前者是指循环有序集C

应当注意的是,上述实施例是说明性的,而不是限制本公开,并且本领域技术人员能够在不脱离由所附权利要求书所限定的本公开的范围的前提下设计出多种替代实施例。在权利要求书中,括号中的任何附图标记都不应解释为对权利要求的限制。词语“包括”等不排除任一项权利要求或说明书中整体列出的元件或步骤之外的元件或步骤的存在。在本说明书中,“包括”是指“包含”或“由......组成”。元件的单数形式并不排除此类元件的复数形式,反之亦然。本公开可以通过包括几个不同元件的硬件以及通过适当编程的计算机来实现。在列举几个装置的设备权利要求中,这些装置中的几个装置可以由同一硬件来体现。在互不相同的从属权利要求中引用某些措施的事实并不意味着不能有利地使用这些措施的组合。

相关技术
  • 用于控制分布式系统的处理步骤的计算机实现的系统和方法
  • 用于控制多个类型的移动平台的数据处理系统、计算机实现的方法、计算机程序和存储介质
技术分类

06120112406123