CN112020727A - 用于控制参与区块链网络的循环排序节点集所实施任务的计算机实现方法与系统 - Google Patents

用于控制参与区块链网络的循环排序节点集所实施任务的计算机实现方法与系统 Download PDF

Info

Publication number
CN112020727A
CN112020727A CN201980027203.0A CN201980027203A CN112020727A CN 112020727 A CN112020727 A CN 112020727A CN 201980027203 A CN201980027203 A CN 201980027203A CN 112020727 A CN112020727 A CN 112020727A
Authority
CN
China
Prior art keywords
node
nodes
value
values
transaction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980027203.0A
Other languages
English (en)
Inventor
丹尼尔·约瑟夫
西尔维亚·巴托鲁奇
波林·贝尔纳特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nchain Holdings Ltd
Original Assignee
Nchain Holdings Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of CN112020727A publication Critical patent/CN112020727A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/29Payment schemes or models characterised by micropayments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Finance (AREA)
  • Power Engineering (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开了一种控制及协调分布式系统中的处理步骤的方法。所述方法可由参与区块链网络的循环排序节点集中的节点实施。所述方法包括自紧接在后的节点接收对应于与自所述节点至紧接在监督节点前的节点的节点相关的处理步骤的可能最终结果之组合的值。所述值为基于对应于可能输出的与所述节点相关的公钥及监督节点的公钥。状态值基于所述值及对应于关于所述节点的处理步骤的所述可能最终结果的所述公钥产生,且与所述监督节点及紧接在前的节点共享。准备区块链交易以在供应对应于接收值的解除锁定值组中的其中一个后,将对资源的控制自所述节点传输至所述紧接在后的节点。

Description

用于控制参与区块链网络的循环排序节点集所实施任务的计 算机实现方法与系统
技术领域
本申请总体上涉及去中心化计算系统。具体而言,本发明涉及与分布式计算系统的节点相关联的处理步骤的控制及协调,包括使用区块链网络来导向和控制经排序的处理步骤。本发明还涉及分布式计算系统及网络内的资源分配,以及使用密码技术和机制实施和实行此类资源控制和分配,并对系统内部实体/节点进行分层组织和配置。
背景技术
分布式系统优点众多,包括抵抗潜在攻击、共享资源和成果等。在分布式计算系统中,充当分布式系统中的节点的各种计算装置可通过网络进行通信。此类节点之间可互换消息。(例如)通过消息互换,节点之间可相互协作,以执行计算任务。此类任务可涉及跨越各种节点进行分布式处理。此类分布式处理可能需要控制和协调与各种节点相关联的步骤。例如,可实行特定处理次序。
分布式系统的示例之一为无人驾驶汽车。例如,无人驾驶汽车可包括各种模块,各模块均具有其自身的传感器数据。这些模块各自负责执行特定处理步骤。此外,无人驾驶汽车可与一个或多个内部节点或外部节点进行商议,以执行某些(例如与车辆控制相关的)处理。例如,外部节点可基于网络或云端。
在此类分布式系统中,对处理任务中的步骤进行排序可能是必要的或更可取的。例如,节点可能需要按次序执行处理步骤。这些处理步骤随后可组合成该任务的众多可能的结果之一。关于分布式系统常见的其他技术挑战包括:网络或系统内的资源分配的困难,以及如何以高效且可靠的方式组织作用因素(即节点)及其间的通信。分布式系统内节点的组织和分层考虑因素也同样存在挑战。采用数学及密码技术实行和判定分布式系统内的分层配置和控制流程是有利的。这将提供与程序的安全和自动化相关的益处。
通常,在构建提供在线表决或决策制定协议的尝试时,通常遵循“防止滥用,但依赖于中央授权单位”的方式,以证实和考虑表决或反馈。中央授权单位可使用诸如盲签及同态加密等的不同加密基元,以便在投票表决中添加保密性及适用性的验证——参见R.Riemann和S.Grumbach的《为获取可信的在线表决而实施的救援模式的分布式协议》,其经由arXiv预印本arXiv:1705.04480可得。例如,D.L.Chaum(1981)在《ACM通讯》24(2)第84至90页上发表的《不可追溯的电子邮件、回信地址和数字假名》中所述的中心化的表决协定。在Chaum所述的协定中,参与者将其表决发送至中心化混合授权单位,该中心化混合授权单位在其广播之前使用混合网络设置来对表决进行重新配置和加密处理,以便伪装表决-表决者链路。
其他早期工作免除了对中央可信授权单位的依赖,而依赖于参与者间的协作。例如,A.C.Yao(1982年11月)在《计算机科学导论》(1982年SFCS'08)第23届年度研讨会(第160-164页)上发表的《安全计算的协议》。
文中描述了安全多方计算协议,旨在使一组用户能够在不需要可信的第三方的前提下,计算其想要保密的联合私用输入功能。安全多方计算允许各方私密且安全地联合计算其平均表决,但相应地依赖于各方之间的协作。
从根本上讲,各项前述早期工作旨在用于独立选择,而不是非独立选择,更不必说用于以规定次序执行处理步骤以达成结果。
鉴于以上内容,所面临的技术问题之一为如何提供一个解决方案,以允许并实行由分布式系统中的节点进行的处理步骤排序。另一技术问题可能是如何为分布式系统中此排序处理生成的结果提供防篡改或抗篡改记录。其他技术问题可能是如何使用密码技术来实行分布式系统内的控制和/或分层和许可(例如,存取许可)。
解决前述一个或多个技术问题的方案可能涉及区块链的使用。本文所用“区块链”一词涵盖所有形式的基于计算机的电子分布式总账。此等总账包括基于共识的区块链及交易链技术、许可和未经许可的总帐、共享总账及其变化。区块链技术在目前最广为人知的用途为比特币总账,但已提议并开发出其他区块链实施方案。尽管本文仅出于方便和阐述的目的而提及比特币,但应注意本申请的主题不限于使用比特币区块链,且替代区块链实施方案及协议属于本申请的范围内。
区块链为同级间电子总账,其实施为由区块组成的基于计算机的去中心化系统,而区块又由交易组成。各交易均为数字结构。此数字结构对数字资产在区块链系统中的地址间的控制传送进行编码,且包括至少一个输入和至少一个输出。各区块均含先前区块的散列,可使区块链接在一起,以便为一开始就写入区块链的所有交易生成不可变更的永久记录。
区块链可适用于广泛应用中。例如,区块链可用于提供反映一个或多个商品的所有权的总账。比如,在比特币区块链中,总账反映比特币及相关部分的所有权。一些此类商品可表示底层单元,诸如计算资源的单元。
发明内容
根据本申请,提供了如在随附权利要求中所述的方法及系统。
本发明可提供一种用于分布式控制的计算机实现方法。该方法可包括由参与区块链网络的循环排序节点集中的某一特定节点从紧接在特定节点后的节点接收对应于处理步骤的可能最终结果的组合的值。这些处理步骤与位于“紧接在后的节点到紧接在监督节点前的节点”范围内的节点相关联。这些值即可基于与节点关联的公钥(每个公钥对应于与该节点关联的处理步骤的可能最终结果),也可基于监督节点的公钥。该方法可能包括由特定节点根据接收值和与特定节点关联的处理步骤的可能最终结果对应的公钥来生成状态值。该方法可包括特定节点与监督节点和紧接在该特定节点前面的节点共享状态值。该方法可包括由特定节点使用状态值准备区块链交易,该区块链交易经配置后将对与特定节点相关的源地址的资源的控制传输至紧接的后续节点的接收地址,所述后续节点响应满足执行条件,包括提供任何一个与接收值对应的一组(多个)解除锁定值。
在一些实施方案中,节点可对应于与系统相关联的模块,且与给定节点相关联的处理步骤的可能最终结果可对应于该系统的控制系统的相关模块。
在一些实施方案中,各接收值可通过将与监督节点关联的公钥和处理步骤的可能最终结果的相应组合之一所对应的公钥中的多个公钥进行结合来判定。其中,所述处理步骤与位于“紧接在后的节点到紧接在监督节点前的节点”范围内的节点相关联。
在一些实施方案中,给定的某一接收值可通过对与监督节点相关联的公钥和与可能最终结果的相应组合之一的最终结果相对应的公钥中的多个公钥进行求和来判定。
在一些实施方案中,可通过结合接收值和与特定节点相关的处理步骤的可能最终结果相对应的公钥,以得出状态值。
在一些实施方案中,可通过对接收值之一和与特定节点相关联的处理步骤的可能最终结果相对应的公钥之一进行求和,以得出状态值。
在一些实施方案中,可对另一区块链交易进行配置,以便在满足退回条件时将对第二资源的控制退还至特定节点。在一些实施方案中,该方法还可进一步包括等待区块链交易执行,以及从交易中获取用于解锁交易的第一解除锁定值,所述第一解除锁定值显示与位于“紧接在后的节点到紧接在监督节点前的节点”范围内的节点相关的处理步骤的输出,且基于与此等节点相关联的公钥中的多个公钥相对应的私钥,以及与输出相对应的私钥。
此方法可包括识别与特定节点相关联的处理步骤的可能最终结果的其中之一。此方法可包括通过特定节点来判定第二解除锁定值,所述判定根据与识别的最终结果和解除锁定值相对应的公钥所对应的私钥来进行。该第二解除锁定值可与其中一个状态值相对应,且可显示与位于“从特定节点到紧接监督节点的前一个节点”范围之内的节点相关的处理步骤的输出。此方法可包括使用第二解除锁定值,执行另一区块链交易。
在一些实施方案中,另一区块链交易可通过紧接在前的节点来准备,该区块链交易经配置后将与紧接的前一节点相关的源地址的第二资源的控制传输至特定节点的接收地址,此特定节点响应满足执行条件,包括提供任何一个与状态值之一相对应的第二组(另一组)解除锁定值。可在准备另一区块链交易之后准备“经配置后将与特定节点相关的源地址的资源的控制传输至紧接的后一节点的接收地址”的区块链交易。
在一些实施方案中,第二组(另一组)解除锁定值中的各个解除锁定值可对应于各个状态值,且可基于状态值所基于的公钥所对应的私钥。
在一些实施方案中,解除锁定值可以为以下私钥的总和:与位于“从紧接的下一个节点到紧接监督节点的前一个节点”范围内的节点相关的处理步骤的输出相对应的私钥,和与监督节点相关的公钥所对应的私钥。
在一些实施方案中,第二解除锁定值可以为以下私钥的总和:与位于“从特定节点到紧接监督节点的前一个节点”范围内的节点相关的处理步骤的输出相对应的私钥,和与监督节点相关的公钥所对应的私钥。
在一些实施方案中,该资源与该第二资源可完全相同。
在一些实施方案中,各公钥及其对应私钥可形成椭圆曲线密码术公-私钥对。
本发明还可提供一种可实行上述方法的计算机实现系统。
本发明还可提供一种非暂时性计算机可读存储介质,存储用于使计算机系统适应执行上述方法的指令。
附图说明
所述与本发明的某一方面或实施例有关的任何特征亦可用于一个或多个其他方面/实施例。通过下文中对本发明实施例的具体介绍,本发明的以上和其它方面将显而易见。下文仅以示例形式参考附图详细地描述本发明的实施例,其中:
图1展示用于支付通道中的交易;
图2为说明如何根据图1创建支付通道的流程图;
图3为说明本申请实例操作环境的简化示意图;
图4为说明本申请另一实例操作环境的简化示意图;
图5为实例计算装置;
图6为说明由节点构成的循环排序集的图;
图7展示了与实例处理任务相对应的决策树;
图8说明了与图7的决策树的特定边缘相关联的私钥;
图9说明与图8的私钥相关且与图7的决策树的特定边缘相关联的公钥值;
图10为说明由图6中特定节点执行的操作的流程图;
图11为说明本申请的实例支付通道的图;
图12为说明如何创建图1的支付通道的流程图;
图13为说明由图6的节点执行的操作的流程图;以及
图14为说明由图6的特定节点执行的操作的流程图。
图中的类似参考编号用于指示类似组件及特征。
具体实施方式
在本申请中,“和/或”旨在涵盖所列元素的所有可能的组合和子组合,包括仅单独一项所列元素、任何子组合以及全部元素,且未必排除其他元素。
在本申请中,词组「至少……或……之一」旨在涵盖所列元素中的任何一个或多个,包括仅单独一项所列元素、任何子组合或全部元素,且未必排除任何其他元素、未必需要所有元素。
本文中描述了一项体现本发明的协议,用于供一组协作节点各自以排序方式制定决策。该协议所依据的概念是:要求节点提交计算资源的单元,所述计算资源仅可通过这些节点利用累加秘密值来恢复,而所述秘密值源自于处理任务中的先前步骤的输出。
本文所述协议基于现有比特币相关技术建立的支付通道(参见http:// super3.org/introduction-to-micropayment-channels/中的《微支付通道介绍》),该技术专为两名参与者之间的比特币交易而设计,尤其是纳入了退款交易的使用。
支付通道
如上文所述,下文描述中涉及支付通道,因此为便于读者理解,提供了关于支付通道的综述。
支付通道技术旨在使各方能够进行多个加密货币交易,且不向区块链提交所有交易。在典型的支付通道实施方案中,可进行几乎不限量的支付,但仅需要向区块链添加两个交易。
除减少向区块链添加的交易数量以及降低关联成本外,支付通道在速度方面亦有优势,更重要的是,若交易未能按照计划进行、或任一参与方决定交易不得超过一定支付集合时,支付通道还能使各方获得退款单元。下文提供了有关支付通道实施方案的概述。
考虑爱丽丝(Alice)需将区块链资源传送至鲍勃(Bob)的情景。在该场景下,可能需要Alice在一段时间向Bob进行多次付款。Alice在可能的交换集合中预计将(例如)至多15个BTC(共计)传送给Bob。为便于达成此目的,在Alice与Bob之间建立支付通道,并按如下操作:
首先,由Alice创建一个2/2多重签名支付至指令码散列(P2SH)交易Tc,该交易由Alice和Bob两人管控,并提交Alice发出的15个BTC。此时,交易不会提交至比特币网络(此多重签名地址需要2个人(Alice和Bob)对在此地址进行消费的任何交易以密码方式进行签名);
接下来,Alice创建独立的退款交易Tr,0,该退款交易可将多重签名控制资金的所有单元返还给Alice。此交易包括100个区块的nLockTime值(nLockTime为一项比特币交易参数,该参数使比特币交易仅能在超过指定时间后执行)。Bob对该交易进行签名。若Alice与Bob之间的交换出问题,则此退款交易允许Alice在nLockTime过后得到退款。
接下来,Alice对原始交易Tc进行签名。
此时,Alice和Bob可继续创建新的退款交易,以反映由Alice对Bob进行的(区块链外)传送。此些退款交易将反映出Alice需要在该时间点传送给Bob的净资源量。例如,若Alice将传送给Bob 5个BTC,则将创建新退款交易Tr,i,,该交易的输出会将5个BTC发送至Bob,并将10个BTC退还给Alice。若Alice需将另外5个BTC传送至Bob,则创建新退款交易Tr,i+1,该交易中的输出会将10个BTC发送至Bob、并将5个BTC发送给Alice。对于各项新退款交易,如交易双方同意细节,则对交易进行签名,但未必将交易提交至网络。
应注意,所创建的各后继退款交易具有比在先退款交易小的nLockTime——即,nLockTime(Tr,i+1)<nLockTime(Tr,i)。
若参与者拒绝对任何Tr,i进行签名,则因此受侵害的参与者可以仅提交Tr,i-1。在最差情况下,Alice对Tr,0进行签名,并将其提交至网络,从而收回所有其单元(在nLockTime到期之后)。
所建构的最终退款交易代表从Alice传送至Bob的单元的净和。将此交易提交至网络。
图1显示了用于支付通道中的交易Tc 100A和Tr,n 100D。M表示可从Alice发送至Bob的最大金额。xi为Alice需向Bob支付的单元的当前净和。Sstop为关于初始退款交易的nLockTime。n为发生在Alice与Bob之间的进行中(区块外)传送所创建的退款交易的数目(此数目排除初始退款交易)。s为分派给参与双方(Alice和Bob)的时间,以便在其中一方冒着另一方提交先前退款交易的风险之前同意退款交易,从而有效地结束Alice与Bob之间的交换。
应注意:t+n*s<Sstop,其中,t为当前时间,且(Sstop–n*s)≥s。
图1中的交易Tc 100A、Tr,0 100B、Tr,1 100C和Tr,n 100D是可能出现于区块链上的交易。
图2的流程图200中显示了用于建构Alice与Bob之间的支付通道的操作。操作210及向前的操作由一个或多个计算装置的一个或多个处理器执行,该一个或多个处理器执行包含可存储于计算机可读存储介质上的计算机可执行指令的软件。
在进行操作210时,与Alice相关联的计算装置的处理器根据上文所述的方式创建2/2多重签名支付至指令码散列(P2SH)交易Tc
自操作210起,控制流程继续进行至操作212。在进行操作212时,与Alice相关联的计算装置的处理器根据上文所述的方式创建独立退款交易Tr,0,以便将多重签名控制资金的所有单元退回至与Alice相关联的帐户。
自操作212起,控制流程继续进行至操作214。在进行操作214时,与Alice相关联的计算装置的处理器对上述退款交易进行签名。
自操作214起,控制流程继续进行至操作216。在进行操作214时,与Bob相关联的计算装置的处理器亦可对上述退款交易进行签名。若交易经此方式签名,则控制流程推进至操作218。若交易未经此方式签名,则创建支付通道被中止。
在进行操作218时,与Alice相关联的计算装置的处理器对Tc进行签名,并将其提交至区块链。随后,控制流程推进至操作220。
在进行操作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。
图3所示为本申请的实例操作环境。
如图所示,多个节点300通过计算机网络310进行通信。每个节点300均为一台计算装置,并参与区块链,且具有一个或多个相关联地址。在这些地址中,区块链反映出单元的数量,诸如计算资源的单元。
各种节点300均可执行分布式处理中的处理步骤,该步骤的输出组合形成最终结果(outcome)。
如后文中进一步描述,本申请的主题可应用于多种情形中。举例而言,图4展示在系统且更特定而言,在自动驾驶车辆400的情况下本申请的特定实例操作环境。
自动驾驶车辆400进行分布式处理可依赖于多个模块。举例而言,分布式处理可涉及多种节点,诸如地图模块410、招待模块420、天气模块430和交通模块440。如图所示,模块410至440经由网络450通信。
该等节点中的一些节点可整合到自动驾驶车辆400中,且该等节点中的其他节点可基于网络或云端。举例而言,如图所示,地图模块410和招待模块420整合到自动驾驶车辆400中,而天气模块430和交通模块440远离自动驾驶车辆400。
地图模块410可为用以找到最短路线的模块。举例而言,地图模块410可基于距离选择最佳路线。
招待模块420可基于招待可用性选择路线。举例而言,招待模块420可基于餐馆和酒店可用性选择最佳路线。
天气模块430可基于天气选择路线。举例而言,天气模块430可基于避免严酷或恶劣天气选择最佳路线。
交通模块440可基于交通状况选择路线。举例而言,交通模块440可基于避免交通拥塞选择最佳路线。
便利地,可应用本申请的主题以允许模块410至440共同执行与任务相关的处理步骤,该任务与自动驾驶车辆400的路线选择相关,该等步骤的输出产生特定结果,即选定路线。还值得注意的是,如下文进一步描述,因为区块链用于记录各种处理步骤的输出并在节点之间传输该等输出,所以可按允许未来审计和审查(诸如,用于在涉及自动驾驶车辆400的事故之后的故障判定)的方式记录模块410至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至440中的一个或多个模块。
如下文进一步描述,在本文所述协议中,节点负责执行总体分布式计算任务的处理步骤。参照图6,在特定实例中,节点600可负责按顺序执行处理任务。节点中的一个节点充当监督节点-—例如,节点600中的一个节点(节点U0)可为该监督节点—且节点中的其他节点负责选取选项。任务中处理步骤的顺序可用以实现由节点形成的循环排序集。该循环排序集可被视为环,其中每个节点具有作为该节点的紧接在后的节点(immediatelysuccessive node)和紧接在前的节点(immediately previous node)的另两个节点。举例而言,节点600的循环排序集可描绘为如图6所示的导向环610。
为方便参考起见,向导向环610中节点600的各个非监督节点指派标签Ux,其中x根据处理任务中步骤的预期顺序对应于字母顺序中的字母。
预计监督节点U0为给定监管协议执行之责的节点。如下文进一步描述,监督节点充当协议发起者和协调者。在一个实例中,监督节点与提供资源的一方相关联,该资源将基于决策程序的结果进行分配。
节点600(监督和/或非监督)可为节点300和/或模块410至440中的节点。另外,可从节点300中选取监督节点U0。此选取可按多种方式进行。举例而言,节点300中的各个节点可执行操作或参与协议,从而导致节点中的特定节点被选取为监督节点。替代地,可藉由某中央授权单位将节点300中的一个节点选取为监督节点。
本文所述协议促进藉由参与节点600来执行分布式计算任务,其中任务中的处理步骤对应于决策树的结构。此决策树的实例见图7,该图示出了决策树700。在决策树700中,该树的各个层级表示藉由参与本文所述协议的节点且特定而言,节点300中一个节点进行处理的结果。换言之,决策树700的各个层级对应于由节点600形成的分布式系统所进行处理的最终结果中的“因子”。决策树700给定层级处节点600中的各个节点对应于由该树较高层级(即,更接近于根的层级)表示的处理步骤特定输出的组合。从节点出现的边缘中的各个边缘表示一方可相对于由该节点表示的决策而进行的与该节点相关联/由该节点执行的处理(一“选择”)的可能结果。
决策树700中有参与处理的n=3个步骤(和3个节点),其中与处理相关联的各个节点产生各自m=2个选项中的一个选项。
一般而言,决策树700的各节点Ua,i表示一个节点、一个处理步骤和先前输出(即,对应于该树较高层级之处理输出的特定组合),其中a表示由特定节点执行的处理步骤,i表示该树中先前处理步骤的输出。在特定实例中,UB,2表示在一方UA识别处理步骤A的特定输出后执行处理步骤B的节点。
决策树700的叶节点表示各种处理步骤之输出的特定组合产生的可能最终结果集合。换言之,与节点中各个节点相关联的任务的输出形成决策树中朝向分布式处理结果的路径。值得注意的是,在目前的协议中,不同于大多数表决判定获胜者的决策或表决协议。各种处理步骤输出的组合判定选取哪一结果。更特定而言,特定处理步骤的输出不是对特定结果的表决,而是将分布式处理的可能结果缩小为可能结果集合(即,沿对应于选定输出的分支的决策树700对应节点之子节点的所有结果)。因此,预定步骤序列中的每个处理步骤减少可能结果集合,直至仅剩余一个可能结果——分布式处理的输出。
在特定实例中,在决策树700中,可经由用较粗箭头指示的特定路径到达可能结果O212。首先,如图所示,若UA选择选项2,则将可能结果集合限制为{O211,O212,O221,O222}。接下来,若UB选择选项1,则将可能结果集合限制为{O211,O212}。接下来,若UC选择选项2,则将可能结果集合限制为{O212}。
由节点进行处理存在时间顺序方面的问题,符合由本文所述协议实行的任务中步骤之间的依赖关系。特定而言,节点各自以预定顺序执行其相应的处理步骤。举例而言,在决策树700中,该树层级中反映的预定顺序对应于图6所示的排序,其中UA在UB之前执行其相关联的处理步骤,UB又在UC之前执行其相关联的处理步骤。
当然,决策树700为实例,与本文所述协议的给定部署相关联的决策树可以变化。举例而言,不要求处理步骤与节点之间存在1:1的对应关系。在特定实例中,可呼叫一方UA以执行处理步骤B和处理步骤A。另外或替代地,该等步骤中的一些或全部步骤可具有更多(即,多于2个)可能输出。另外或替代地,不同步骤可具有不同数量的可能选项。另外,可存在更多或更少的步骤或节点。
在本文所述协议中,对于与特定节点相关联的各处理步骤,该节点将产生对应于给定节点可针对该处理步骤而具有的各可能最终结果的私钥集。特定而言,要求一方选取对应于节点可在已进行的先前处理步骤的各个可能输出组合的情况下选取的各选项的私钥。
示出决策树700的图8所说明的此情况实例藉由与决策树700各个边缘相关联的各种私钥来扩充。如图所述,私钥可藉由下标来指示,下标编码早期处理步骤输出以及在与特定私钥相关联的层级处的处理(即,“当前”处理步骤)输出。举例而言,在图8中,由UB进行的处理具有对应于四个可能最终结果的两个可能输出。在特定实例中,UB的一个选择是在UA选择选项2之后选择选项1。该选择对应于私钥k21
在此阶段,节点将其各自的私钥k保密。
使用普通技术人员已知的技术可产生私钥k。另外,可使用各种公钥密码系统。举例而言,可使用椭圆曲线密码术(ECC)。在特定实例中,可使用椭圆曲线密码术,且k及其对应公钥P可为椭圆曲线密码术公-私钥对,使得P=kG,其中G为椭圆曲线上具有阶q:q×G=0的基点,其中q为大素数且0<k<q。在特定实例中,可使用文件“高效密码术标准2(SEC 2)”(Certicom公司,2010年1月27日)定义的椭圆曲线secp256k1。换言之,各公钥及其对应私钥可形成椭圆曲线密码术公-私钥对。
在生成私钥之后,基于对应公钥生成值。
首先,监督节点生成公/私钥对并与参与本文所述协议的所有节点共享该对被指示为Qs的公钥。
接下来,参与节点中的各个节点又生成对应于其先前生成的私钥中各个私钥的公钥值。此说明见例如图9,该图示出了对应于决策树700但经扩充以显示与特定边缘相关联的公钥值的决策树900。
特定而言,藉由组合对应于先前所生成私钥中多个私钥的各个公钥来生成公钥值或状态值,该等私钥与从树的根到给定边缘的边缘相关联。换言之,藉由组合与所生成私钥中给定私钥相关联(即,在从节点引出的边缘上)的公钥与树中早期者(即,在引入该节点的边缘上)的公钥值来生成状态值中的各个状态值。在基本状况下(在监督节点之下的树的第一层级处),可藉由组合Qs与和该层级处私钥相关联的公钥中的各个公钥来生成状态值。
在椭圆曲线密码系统的情况下,可藉由加上公钥来生成组合。举例而言,可将给定公钥加至先前选择值。前文曾提及,在ECC中,对应于私钥k的公钥P由P=k×G定义。因此,参照图9,当使用ECC时,有可能Q2=Qs+k2G。在另一实例中,有可能Q21=Q2+k21G。
监督节点与参与本文所述协议的其他节点中的各个节点共享其公钥Qs。类似地,非监督节点中的各个节点与循环排序集中紧接在该节点先前的节点以及监督节点共享其状态值。另外,非监督节点中的各个节点与循环排序集中紧接在该节点先前的节点以及监督节点共享该等值(即,其对应的最终结果)的语义含义。
值得注意的是,表决序列中最终表决者(例如,图6中的UC)的状态值对应于本文所述协议的可能结果(Ox)。监督节点可将与各结果直接相关联的新公钥/地址Sx传达至参与本文所述协议的其他节点。这相当于对集(set of pairs){(Ox,Sx)},其中集{Ox}与集{Sx}一一对应。公钥Sx有可能不属于监督节点本身(即,监督节点可能不知晓对应私钥),而该等私钥可能为独立实体所知,其中独立实体的任务是进行与特定结果相关联的工作。便利地,以这种方式,可藉由可拥有对应于公钥Sx的私钥的第三方执行后续步骤。
秘密值svx对应于状态值中的各个状态值(且因此对应于各可能结果)。
便利地,在使用ECC的情况下,对应于给定选择值的秘密值svx与选择值相关,如下所示。首先,前文曾提及,根据椭圆曲线加法的同态性质,E(m+n)=E(m)+E(n),其中E为函数E(x)=xG。另外,前文曾提及,在使用ECC的情况下,给定选择值QX由QX=ksG+kAG+…+kxG定义,其中ks为监督节点之对应于其公钥Qs的私钥(即,Qs=ksG)。换言之,对应于选择值Qx的私钥svx为私钥之和ki+ki+1+...+kx。在与决策树700相关的特定实例中,sv21=ks+k2+k21且Q21=G×sv21
本文所述协议涉及参与节点600之间的支付通道回路。特定而言,如下文进一步描述,在节点600中的各个节点与其紧接在前的节点之间建立支付通道,以将计算资源从该节点传送至其紧接在前的节点。举例而言,在图6中,支付通道将在节点600中的各个节点与其紧接在前的节点之间,如节点之间所描绘边缘的方向所示。支付通道被配置为可藉由对应于紧接在前的节点的状态值的秘密值中任一秘密值解除锁定。当本文所述协议相对于比特币区块链操作时,通过支付通道传送的计算资源可为,例如比特币或其一部分。
支付通道的使用需要将计算资源的单元提交至该通道。举例而言,在支付通道回路中,计算资源将藉由各支付通道从节点传送至其紧接在后的支付通道。
由于值的传送对本文所述协议并不重要,因此此量可为标称量。但是,显而易见的是,需要节点参与在其提交至支付通道之值的没收惩罚下选取结果。因此,亦可能需要节点将大量足够的计算资源提交至支付通道以阻止轻率参与及/或违反本文所述协议。提交至支付通道中的计算资源量可相同,或换言之,提交至支付通道中的资源可相同,其中资源为可替代资源。
在构建回路的支付通道之前,结合参与本文所述协议的其他节点,节点及特别是监督节点必须符合以下两个值:时间点S及时间跨度s。
首先,选择时间跨度s,其表示参与本文所述协议的节点完成下文进一步描述之某些操作所需的时间量,即,构建节点与紧接在前的节点之间的支付通道;检索对回路中的先前支付通道进行解除锁定的秘密值;选取与节点相关的处理步骤的其中一个可能最终结果;以及将有利于该节点的另一支付通道之支付交易提交至区块链。如其他使用者达成共识,则任一节点可选择时间s。在一些实施方案中,监督节点可选择可简化协议的s。可用诸如秒或区块数目的合适单位来表达时间s。
其次,将值S选择为提交至区块链网络的节点之第一传送的开始时间。如其他节点达成共识,任一节点可选择S。在一些实施方案中,发起者选择可简化协议实施的S。
值得注意的是,S表示时间点,此时间点可,例如,以Unix时间或区块高度指定,而s则表示时间跨度。
以监督节点与其紧接在后的新节点(即,负责作出最终选择的节点)之间的支付通道开始,采用顺时针方式构建支付通道。举例而言,参照图6,待构建的第一支付通道为U0与UC之间的支付通道,且待建构的最终支付通道为UA与U0之间的支付通道。
此排序序列向节点保证:在节点将资源提交至有利于其紧接在后的节点的支付通道之前,存在有利于它的支付通道。然而,监督节点不接收此保证,因为其私钥ks为可对各种支付通道中的每个来进行解除锁定的所有秘密值的分量。然而,由于ks通过监督节点在此阶段维持为秘密,因此监督节点可在缺乏对有利于其的支付通道的保证情况下安全地创建回路中的第一支付通道。具体而言,若未创建有利于监督节点的支付渠道,则监督节点可简单地充分等待一段时间来提交其创建的支付通道之退款交易。
现将参考图10、图13及图14中示出的一系列流程图来论述由参与本文所述协议的节点执行的实例操作。在这些流程图及其以下描述中,将参与协议之循环排序集的n个节点识别为U0…Un-1,按构建各种支付通道的次序(亦即,与预期处理中的步骤之次序相反的次序)自监督节点U0起且经由循环排序集之节点直至紧接在该监督节点之前(亦即,紧接在前)的节点。举例而言,若处理步骤的预期次序描述为在如图6中所示的逆时针方向上,则如图10、图13及图14中所参考的节点U0…Un-1按顺时针方向排序。在特定实例中,根据此编号,若图6中标记为UB的节点识别为Ui,则UA(图6)为Ui+1且UC(图6)为Ui-1。换言之,出于图10、图13及图14中所示流程图的目的,将图6中标记为UB的节点视为紧接在节点UA之前的节点,且将标记为UB的节点视为紧接在节点UC之后的节点。
现在讨论图10。图10为流程图1000,其说明了与参与本文所述协议的特定节点在准备创建,随后创建从该节点至其紧接在前的节点的支付通道中的操作相关的操作。多种非监督参与节点可在创建上述支付通道回路时执行对应于流程图1000中所述操作的操作。操作1010及向前的操作均由参与节点中的特定非监督节点的一或多个处理器执行。因而,操作1010及向前的操作均由计算装置的一个或多个处理器执行,诸如实例计算装置500的适当配置例的处理器510(图5),该一或多个处理器执行包含如可存储于诸如内存520的存储器的计算机可读存储介质上的计算机可执行指令的软件。
在操作1010处,特定节点将自循环排序集中紧接在特定节点后的节点接收与紧接在后的节点相关的状态值。因而,由于状态值的定义及循环有序集中的节点排序,特定节点接收对应于处理步骤的可能最终结果之组合的值,该处理步骤与循环排序集(例如,导向环610)中自紧接在后的节点至紧接在监督节点之前节点的节点相关。如上所述,状态值基于与节点相关的公钥,且公钥中对应于与该节点相关的处理步骤的可能输出。举例而言,在使用ECC的情况下,可通过对与监督节点相关的公钥及对应于特定最终结果之公钥中的多个公钥求和来确定接收状态值,如上文所述。
在操作1010之后,控制流程前进至操作1020。
在操作1020处,特定节点将产生该节点的状态值。换言之,特定节点产生对应于可由特定节点选取之输出的状态值。状态值是基于接收状态值及与该节点相关的公钥(其对应于与该节点相关的私钥kx,如上文所述)而产生。因而,状态值是基于接收值及对应于与特定节点相关的处理步骤的可能最终结果的公钥而产生。
在操作1020之后,控制流程继续进行至操作1030。
在操作1030处,与监督节点且与循环排序集中紧接在特定节点前的节点共享状态值,如上文所述。
自操作1030起,控制流程继续进行至操作1040。
在操作1040处,特定节点可等待由紧接在前的节点创建有利于其的支付通道。为创建前述支付通道,准备多种交易,如上文所述。举例而言,使用该支付通道的锁定值准备交易Tpay。将该交易设置为将例如计算资源之x个单元或x个BTC的资源自与紧接在前的节点相关的源地址传输至特定节点的接收地址。根据该交易,将响应于满足执行条件而传输对资源的控制,该执行条件包括供应对应于任一锁定值(即,任一状态值)的解除锁定值(svx)。具体而言,解除锁定值对应于相应的状态值,且为以对应于该选择值基于的公钥的私钥为基础。举例而言,在使用ECC的情况下,解除锁定值可为这些私钥及对应于监督节点的公钥Qs的私钥ks的总和。因而,特定节点可等待创建区块链交易,该区块链交易由紧接在前的节点准备且设置为将对资源的控制自与紧接在前的节点相关的源地址传输至特定节点的接收地址。
接下来,特定节点使用状态值准备第二支付通道,且由特定节点创建第二支付通道以有利于紧接在后的节点。举例而言,特定节点可在创建有利于其支付通道之后准备第二支付通道。准备该支付通道与上文对第一支付通道的描述类似,包括准备设置为将对第二资源的控制自与特定节点相关的源地址传输至紧接在后的节点的接收地址的区块链交易。该支付通道用于响应于满足执行条件而传输对资源的控制,该执行条件包括供应对应于接收值的任一(第二)多个解除锁定值。
图11提供诸如可对应于前述第一及第二支付通道的Ua→Ub支付通道的展示1100。
如图所示,该通道包括Tc、Tpay及Tr这三个交易。应注意,σ(Ux)表示Ux的加密签名。
该Tc交易表示支付通道的提交分量。此处,通过该交易,Ub发送/提交待由以下签名管控的指定数目个单元:2/2多重签名(Ub,Ua)或了解多个秘密值{sv}(a)中的任一个及Ua的加密签名。
该Tr交易表示将指定数目个单元(来自提交交易)退至Ub以在指定时间已到期之后变得适用于提交至区块链的退款。因而,Tr设置为在满足时间到期之退回条件后将对资源的控制退回给特定节点Ub。出于成功执行该交易的目的,其需要Ua及Ub的加密签名。
该Tpay交易为将来自Ub的提交资金的指定数目个单元传送至Ua。为成功执行该交易,需要多个秘密值{sv}(a)(与决策树相对应的因子/层级相关的状态值)中的任一个及Ua的加密签名。
在区块链为比特币区块链的情况下,Tc、Tr及Tpay均可为比特币交易。
图12为流程图1200,其说明如可由节点Ub创建自该节点至另一节点Ub的支付时执行的操作,在如上文所述。操作1210及向前的操作均由节点Ub执行。因而,操作1210及向前的操作由计算装置的一个或多个处理器执行,诸如实例计算装置500的适当配置例的处理器510(图5),该一或多个处理器执行包含如可存储于诸如内存520的存储器之计算机可读存储介质上的计算机可执行指令的软件。
在操作1210处,Ub创建提交交易TC。交易TC如上文所述。
自操作1210起,控制流程继续进行至操作1220。
在操作1220处,创建退款交易Tr。交易Tr如上文所述。Tr创建为具有指定到期时间S+(a+1)s,其中对于回路中的第一支付交易(例如,自U0至UC)a是0,且对于回路中的支付交易之后的支付通道递増(例如,a=0、1、2、3...)。
自操作1220起,控制流程继续进行至操作1230。
在操作1230处,Ub对退款交易进行签名。
自操作1230起,控制流程继续进行至操作1240。
如上文所述,支付通道中的另一参与者Ua亦对退款交易Tr进行签名。在操作1240处,确定Ua是否对退款交易Tr进行签名。若其未进行签名,则创建支付通道已失败且中止。或者,若Ua对退款交易Tr进行了签名,则控制流程继续进行至操作1250。
在操作1250处,Ub创建支付交易Tpay。交易Tpay如上文所述。
自操作1250起,控制流程继续进行至操作1260。
在操作1260处,Ub对支付交易TC进行签名且将其提交至区块链。
在操作1260之后,控制流程终止,且支付通道已创建。
在支付回路已完成之后,参与节点又可选取选项。通过概述,参与本文所述协议的节点又选取选项且接着基于其选择而兑现有利于该节点的Tpay交易。
图13为流程图1300,其说明如由参与本文所述协议的节点在选择结果时执行的操作1310及向前的操作。因而,操作1310及向前的操作均由计算装置的一个或多个处理器执行,诸如实例计算装置500的适当配置例的处理器510(图5),该一或多个处理器执行包含如可存储于诸如内存520的存储器之计算机可读存储介质上的计算机可执行指令的软件。
如上文所述,流程图1300及其描述采用与流程图1000的记法一致的记法。换言之,自监督节点U0起,以构建支付通道的次序对节点进行编号。
在操作1310处,进行检查以确保剩余时间足够完成本文所述协议中的必要步骤。具体而言,当前时间可与第一传送之开始时间S比较以确保拥有足够时间,使得可完成回路而任一支付通道皆不会超时。具体而言,确定是否t<S+s,其中t为当前时间。
若操作1310处的检查失败,则本文所述的协议中止。否则,控制流程前进至操作1320,在该操作中,监督节点提交有利于其的Tpay区块链交易。这具有如下副作用:在区块链上显示值ks,是因为其为用来锁定该特定支付通道的对应于Qs的值。
在操作1320之后,初始化计数器i以对应于与第一处理步骤相关的节点,Un-1—即,第一表决节点。控制流程接着继续进行至操作1330,在该操作中,回路检查确定参与协议的节点是否已完成其相关的处理步骤且已确定结果。若是,则控制流程终止。或者,若所有处理步骤尚未完成(例如,在通过操作1330的第一通路上),则控制流程继续进行至操作1340。
在操作1340处,从区块链,亦即从Ui至U(i+1)mod n的支付通道的支付交易,提取解除锁定值svprevious,该解除锁定值svprevious用于如将已在操作1320处或如下文所述在操作1350)处提交至区块链的支付通道的支付交易中。方便地,因为svprevious为提取自仅在紧接在后的节点(亦即,与先前处理步骤相关的节点)已识别输出之后提交的区块链交易,所以对处理步骤进行排序。
自操作1340起,控制流程前进至操作1350。
在操作1350处,节点Ui识别关于与该节点相关的处理步骤的其中一个可能最终结果。该节点随后通过组合值svprevious与对应于公钥的私钥(kijk)来确定对应的解除锁定值,其中该公钥对应于识别输出。举例而言,在使用ECC的情况下,Ui通过计算svijk=svprevious+kijk来确定秘密值svijk。值得注意的是,起作用的原因是锁定多种Tpay交易之多种状态值的定义及同态性质。
关于执行处理步骤,可通过节点300以多种方式执行步骤。举例而言,如节点300对应于自动驾驶汽车的模块,则处理步骤可诸如基于提供至该节点的输入数据而以规划方式选取输出。输入数据可包括经由一个或多个输入设备诸如从用户接收的数据。
自操作1350起,控制流程前进至操作1360。在操作1360处,确定是否有足够剩余时间来完成交易。具体而言,确定是否满足t<S+(n-i)s,其中t为当前时间且i为从监督节点进行计数的当前节点的索引,监督节点为0,紧接在监督节点后的节点(亦即,在最后处理步骤中相关的节点)具有索引1等等,直至与第一处理步骤相关的节点具有索引(n–1),如上文所述。
自操作1360起,若确定剩余时间足够,则控制流程前进至操作1380。或者,若确定剩余足够时间不够,则控制流程前进至操作1370。
在操作1370处,通过使Ui-1借助于退款交易触发本文所述协议的中止来处置缺乏足够剩余时间的情况。具体而言,Ui-1将有利于循环排序节点集中紧接在后的节点之退款交易提交至区块链,从而开始使至打算执行最终处理步骤的节点(亦即,紧接在监督节点后的节点)U1的节点将其退款交易提交至区块链的程序。
在操作1380处(在剩余时间足够时),节点Ui将有利于其之Tpay区块链交易提交至区块链,从而将svcurrent显示在区块链上。
在操作1380之后,计数器i递减以对应于选择序列中的下一节点,且接着控制流程返回至操作1330(如上文所述),从而执行循环以处置由序列的下一节点进行的选择。
流程图1300描述了执行跨越作为整体参与分布式计算任务的节点的处理步骤。图14为流程图1400,其说明了由参与本文所述协议的特定节点在进行与处理任务相关的操作时执行的操作。多种非监督参与节点可在创建上述支付通道回路时执行对应于流程图1400中所述操作的操作。操作1410及向前的操作均为由参与节点中的特定非监督节点的一个或多个处理器执行。因而,操作1410及向前的操作均为由计算装置的一个或多个处理器执行,诸如实例计算装置500的适当配置例的处理器510(图5),该一个或多个处理器执行包含如可存储于诸如内存520的存储器之计算机可读存储介质上的计算机可执行指令的软件。
如上文所述,流程图1400及其描述利用与流程图1000的记法一致的记法。换言之,自监督节点U0起,以构建支付通道的次序对节点进行编号。
首先,特定节点必须确保其等待紧接在后的节点作出其选择。因此,在操作1410处,特定节点等待与自特定节点至紧接在后的节点之支付通道相关的区块链交易Tpay执行,亦即,对该区块链交易进行解除锁定且将其提交至区块链。在将该交易提交至区块链之后,控制流程前进至操作1420。
在操作1420处,特定节点自区块链提取在操作1410处检测到的区块链交易Tpay进行解除锁定的解除锁定值svprevious。如上文所述,值svprevious表示输出与在特定节点之前选择的节点相关的处理步骤。因而,值svprevious表示输出与循环排序集中自紧接在后的节点至紧接在监督节点前的节点的节点相关的处理步骤。另外,如上文所述,值svprevious为基于私钥,其对应于与该节点相关的多个公钥且对应于先前由该节点选择或选取的前述选定选项。换言之,svprevious对应于紧接在后的节点的选择值。举例而言,如上文所述,在使用ECC的情况下,解除锁定值可为以下私钥的总和:对应于与循环排序集中自紧接在后的节点至紧接在监督节点前的节点之节点相关的处理步骤输出的私钥;以及对应于与监督节点相关的公钥(Qs)的私钥(ks)。
接下来,在操作1430处,特定节点以上文所述的方式识别关于与该节点相关的处理步骤的其中一个可能最终结果。如上文所述,节点可按多种方式识别输出,诸如根据与该节点相关的输入和/或状态以规划方式。举例而言,一些输入可经由输入接口诸如自使用者接收。
自操作1430起,控制流程前进至操作1440。
如前文所述,特定节点的公钥对应于与该节点相关的处理任务的所有可能最终结果。在操作1440处,基于在操作1420处提取的解除锁定值svprevious及对应于公钥的私钥确定解除锁定值,该公钥对应于经识别的最终结果。举例而言,在使用ECC的情况下,可通过上文所述的方式相加来组合该值。
自操作1440起,控制流程前进至操作1450。
在操作1450处,在操作1440处确定的解除锁定值用于执行与紧接在前的节点及特定节点之间的支付通道相关的交易。具体而言,特定节点可使用在操作1440处确定的解除锁定值将对应于Tpay交易进行解除锁定,且将解除锁定的交易提交至区块链。举例而言,可通过将解除锁定值提交至交易的解除锁定脚本中来对Tpay交易进行解除锁定。值得注意的是,如上文所述,用于在操作1440处确定的解除锁定值将交易解除锁定且将其提交至区块链具有将解除锁定值显示在区块链上的副作用。
在操作1450之后,完成由特定节点进行的选择。
本文所述的协议可广泛应用于多种应用中。举例而言,其可应用于自动驾驶车辆,诸如自动驾驶车辆400。在一些此类实施方案中,与参与本文所述的协议之给定节点相关的处理步骤的可能最终结果有可能可对应于车辆控制系统的相关模块的输出。举例而言,输出可为模块410至440的输出。
在将本文所述协议实施于给定区块链上时,可需要考虑各种实施细节。举例而言,在比特币区块链中,在交易保持有效时,交易的相关ID可发生改变是有可能的。这可被称作交易延展性问题。此可在依赖于支付通道的诸如本文所述协议的协议的实施中呈现问题,其中退款(Tr)及支付(Tpay)交易可按参考先前交易的识别符的方式实施。关于比特币中的交易延展性的更多信息,参见例如Aaron van Wirdum(2015年10月7日)在比特币杂志(Bitcoin Magazine)中发表的“The Who,What,Why and How of the OngoingTransaction Malleability Attack”。交易延展性可通过比特币的SegWit分叉消除,参见例如可自https://bitcoincore.org/en/2016/01/26/segwit-benefits/(于2016年10月19日更新)获取的“Segregated Witness Benefits”。
应当注意的是,上文提到的实施例说明而非限制本发明的主题,且本领域的技术人员将能够设计许多替代实施例而不脱离如由所附申请专利范围所定义之本发明的范围。在权利要求中,置于括号中的任何附图标记不得解释为对权利要求保护范围的限制。“包含”(comprising及comprises)等类似词语并不排除未在任何权利要求或整体说明书中列出的其它元件或步骤的存在。本说明书中使用的包含(comprises)指“包含或由...组成”。对元件的单数参考并不排除对此类元件的复数参考,且反之亦然。本发明之主题可通过包含若干不同元件的硬件且通过经合适规划的计算机来实施。在列举了若干构件的装置权利要求中,可由同一硬件项目来体现这些构件中的若干装置。在相互不同的附属权利要求中叙述某些措施的纯粹实情,并未说明这些方法的组合不能用于获利。

Claims (15)

1.一种用于分布式控制的计算机实现方法,包括:
通过参与区块链网络的循环排序节点集中的特定节点,从紧接在所述特定节点后的节点,接收与多个节点相关的多个处理步骤的可能最终结果的多个组合相对应的多个值,所述多个节点从所述紧接在后的节点直至紧接在监督节点前的节点,其中,所述多个值基于与所述多个节点相关的多个公钥,所述多个值中的每个值与所述节点相关的处理步骤之可能最终结果相对应,且所述多个值基于所述监督节点的公钥;
通过所述特定节点,基于所述接收的多个值及与所述特定节点相关的处理步骤的可能最终结果相对应的多个公钥产生多个状态值;
通过所述特定节点,与所述监督节点且与紧接在所述特定节点前的节点共享所述状态值;以及
通过使用所述状态值的所述特定节点,准备区块链交易,所述区块链交易设置为响应于满足执行条件而将对资源的控制从与所述特定节点相关的源地址传输至所述紧接在后的节点的接收地址,所述执行条件包括供应与所述接收的多个值相对应的一组解除锁定值中的任一值。
2.根据权利要求1所述的方法,其中,所述节点对应于与系统相关的模块,且与给定节点相关的处理步骤的所述可能最终结果对应于所述系统的控制系统的相关模块的输出。
3.根据前述权利要求中任一项所述的方法,其中,所述接收的多个值中的每个值是通过将与所述监督节点相关的公钥以及与多个处理步骤的可能最终结果的所述多个组合中的一个相应组合相对应的所述多个公钥中的多个公钥进行组合而确定的,所述多个处理步骤与从所述紧接在后的节点直至紧接在所述监督节点前的所述节点的多个节点相关。
4.根据权利要求3所述的方法,其中,所述接收的多个值中的一个给定的值是通过对与所述监督节点相关的所述公钥以及与可能最终结果的所述多个组合中的相应一个组合的所述最终结果相对应的所述多个公钥中的所述多个公钥进行求和来确定的。
5.根据前述权利要求中任一项所述的方法,其中,所述状态值是通过将所述接收的多个值以及对应于与所述特定节点相关的处理步骤的可能最终结果的所述公钥进行组合来形成的。
6.根据权利要求5所述的方法,其中,所述状态值是通过对所述接收的多个值中的一个值以及与所述特定节点相关的处理步骤的可能最终结果相对应的所述多个公钥中的一个公钥进行求和来形成的。
7.根据前述权利要求中任一项所述的方法,进一步包括:
等待所述区块链交易执行,且自所述交易获得用于对所述交易解除锁定的第一解除锁定值,所述第一解除锁定值表明多个处理步骤的输出与从所述紧接在后的节点至紧接在所述监督节点前的所述节点的多个节点相关、且基于与所述多个节点相关的所述多个公钥中的多个公钥相对应并与所述输出相对应的私钥;
识别与所述特定节点相关的处理步骤的多个可能最终结果中的一个;
通过所述特定节点基于对应于所述公钥的私钥及所述解除锁定值确定第二解除锁定值,所述公钥对应于所述经识别的最终结果,所述第二解除锁定值对应于其中一个所述状态值且表明与从所述特定节点至紧接在所述监督节点前的所述节点的多个节点相关的多个处理步骤的输出;以及
使用所述第二解除锁定值,执行另一区块链交易。
8.根据权利要求7所述的方法,其中,所述另一区块链交易是通过紧接在前的节点准备的,且用于响应于满足第二执行条件对第二资源的控制从与所述紧接在前的节点相关的源地址传输至所述特定节点的接收地址,所述第二执行条件包括供应对应于所述状态值的第二组解除锁定值的任一值,且其中在准备所述另一区块链交易之后,准备将对所述资源的控制从与所述特定节点相关的所述源地址传输至所述紧接在后的节点的所述接收地址的所述区块链交易。
9.根据权利要求8所述的方法,其中,所述第二组解除锁定值的每个解除锁定值对应于其中一个所述状态值且为基于对应于所述状态值所基于的所述公钥的私钥。
10.根据权利要求7至9中任一项所述的方法,其中,所述解除锁定值为对应于与从所述紧接在后的节点至紧接在所述监督节点前的所述节点的节点相关的处理步骤的所述输出的所述私钥及对应于与所述监督节点相关的所述公钥的私钥的总和。
11.根据权利要求7至10中任一项所述的方法,其中,所述第二解除锁定值为对应于与从所述特定节点至紧接在所述监督节点前的所述节点的节点相关的处理步骤的所述输出的所述私钥及对应于与所述监督节点相关的所述公钥的私钥的总和。
12.根据权利要求7至11中任一项所述的方法,其中,所述资源与所述第二资源相同。
13.根据前述权利要求中任一项所述的方法,其中,所述公钥及其对应的所述私钥形成椭圆曲线密码术公-私钥对。
14.一种计算机实现系统,用于执行根据权利要求1至13中任一项所述的方法。
15.一种非暂时性计算机可读存储介质,其存储用于使计算机系统适于执行根据权利要求1至13中任一项所述的方法的指令。
CN201980027203.0A 2018-04-20 2019-04-10 用于控制参与区块链网络的循环排序节点集所实施任务的计算机实现方法与系统 Pending CN112020727A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB1806448.5A GB201806448D0 (en) 2018-04-20 2018-04-20 Computer-implemented methods and systems
GB1806448.5 2018-04-20
PCT/IB2019/052946 WO2019202437A1 (en) 2018-04-20 2019-04-10 Computer-Implemented Methods and Systems For Controlling Tasks Implemented By A Cyclically-Ordered Set Of Nodes Participating In A Blockchain Network

Publications (1)

Publication Number Publication Date
CN112020727A true CN112020727A (zh) 2020-12-01

Family

ID=62236212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980027203.0A Pending CN112020727A (zh) 2018-04-20 2019-04-10 用于控制参与区块链网络的循环排序节点集所实施任务的计算机实现方法与系统

Country Status (9)

Country Link
US (2) US11831408B2 (zh)
EP (1) EP3782104A1 (zh)
JP (2) JP7326326B2 (zh)
KR (1) KR20210016338A (zh)
CN (1) CN112020727A (zh)
GB (1) GB201806448D0 (zh)
SG (1) SG11202008984VA (zh)
TW (1) TWI807014B (zh)
WO (1) WO2019202437A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111245857B (zh) * 2020-01-17 2021-11-26 安徽师范大学 一种区块链环境下通道网络稳态演化博弈方法
CN111539813B (zh) * 2020-07-10 2020-12-11 支付宝(杭州)信息技术有限公司 业务行为的回溯处理方法、装置、设备及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106331151A (zh) * 2016-09-19 2017-01-11 中国银联股份有限公司 基于区块链结构的资源文件处理系统及方法
US20170180211A1 (en) * 2015-12-18 2017-06-22 Convergent Technology Advisors Hybrid cloud integration fabric and ontology for integration of data, applications, and information technology infrastructure
CN107094148A (zh) * 2017-05-09 2017-08-25 电子科技大学 一种抗量子计算攻击的无人机区块链管控策略
CN107341702A (zh) * 2017-03-08 2017-11-10 阿里巴巴集团控股有限公司 一种业务处理的方法及装置
CN107392040A (zh) * 2017-04-28 2017-11-24 阿里巴巴集团控股有限公司 一种共识验证的方法及装置
GB201802063D0 (en) * 2018-02-08 2018-03-28 Nchain Holdings Ltd Computer-implemented methods and systems

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112018016822A2 (pt) * 2016-02-23 2018-12-26 Nchain Holdings Ltd método implementado por computador para realizar uma troca de entidades entre um primeiro usuário e um segundo usuário, processador e meio legível por computador
WO2017145019A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
LT3268914T (lt) * 2016-02-23 2018-11-12 nChain Holdings Limited Bendros paslapties, skirtos saugiems informacijos mainams, nustatymas ir hierarchiniai determinuoti kriptografiniai raktai
EP3420669B1 (en) 2016-02-23 2021-03-24 Nchain Holdings Limited Cryptographic method and system for secure extraction of data from a blockchain
EP3420507A1 (en) * 2016-02-23 2019-01-02 Nchain Holdings Limited Tokenisation method and system for implementing exchanges on a blockchain
US20170286951A1 (en) * 2016-04-04 2017-10-05 Moving Media GmbH Dynamic Delivery Authorization for Cryptographic Payments
GB201607477D0 (en) * 2016-04-29 2016-06-15 Eitc Holdings Ltd A method and system for controlling the performance of a contract using a distributed hash table and a peer to peer distributed ledger
US20170324711A1 (en) 2016-05-03 2017-11-09 The Real Mccoy, Llc Inc. Method for establishing, securing and transferring computer readable information using peer-to-peer public and private key cryptography
GB201611948D0 (en) 2016-07-08 2016-08-24 Kalypton Int Ltd Distributed transcation processing and authentication system
US10755327B2 (en) 2016-07-18 2020-08-25 Royal Bank Of Canada Distributed ledger platform for vehicle records
US10291627B2 (en) 2016-10-17 2019-05-14 Arm Ltd. Blockchain mining using trusted nodes
GB201706071D0 (en) 2017-04-18 2017-05-31 Nchain Holdings Ltd Computer-implemented system and method
SG11201910769WA (en) 2017-06-20 2020-01-30 Nchain Holdings Ltd System and method of multi-round token distribution using a blockchain network
US10944546B2 (en) * 2017-07-07 2021-03-09 Microsoft Technology Licensing, Llc Blockchain object interface
US10614253B2 (en) * 2018-02-14 2020-04-07 Fortune Vieyra Systems and methods for state of data management

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170180211A1 (en) * 2015-12-18 2017-06-22 Convergent Technology Advisors Hybrid cloud integration fabric and ontology for integration of data, applications, and information technology infrastructure
CN106331151A (zh) * 2016-09-19 2017-01-11 中国银联股份有限公司 基于区块链结构的资源文件处理系统及方法
CN107341702A (zh) * 2017-03-08 2017-11-10 阿里巴巴集团控股有限公司 一种业务处理的方法及装置
CN107392040A (zh) * 2017-04-28 2017-11-24 阿里巴巴集团控股有限公司 一种共识验证的方法及装置
CN107094148A (zh) * 2017-05-09 2017-08-25 电子科技大学 一种抗量子计算攻击的无人机区块链管控策略
GB201802063D0 (en) * 2018-02-08 2018-03-28 Nchain Holdings Ltd Computer-implemented methods and systems

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
李吉广;: "使用区块链的处理监督架构和随机授权", 信息安全研究, no. 08, 5 August 2017 (2017-08-05), pages 82 - 87 *
王毛路;陆静怡;: "区块链技术及其在政府治理中的应用研究", 电子政务, no. 02, 9 February 2018 (2018-02-09), pages 7 - 19 *
翟社平;段宏宇;李兆兆;高山;李婧;: "区块链技术:应用及问题", 西安邮电大学学报, no. 01, 10 January 2018 (2018-01-10), pages 5 - 17 *

Also Published As

Publication number Publication date
SG11202008984VA (en) 2020-11-27
JP2023145662A (ja) 2023-10-11
WO2019202437A1 (en) 2019-10-24
TWI807014B (zh) 2023-07-01
JP7326326B2 (ja) 2023-08-15
TW201946414A (zh) 2019-12-01
GB201806448D0 (en) 2018-06-06
JP2021521699A (ja) 2021-08-26
EP3782104A1 (en) 2021-02-24
US20210243022A1 (en) 2021-08-05
US11831408B2 (en) 2023-11-28
US20240163098A1 (en) 2024-05-16
KR20210016338A (ko) 2021-02-15

Similar Documents

Publication Publication Date Title
CN106899698B (zh) 一种区块链之间的跨链互操作方法
JP7395701B2 (ja) ブロックチェーン上でトランザクション・ミキシングを行うためのコンピュータで実施されるシステム及び方法
US20240163098A1 (en) Computer-implemented methods and systems for controlling tasks implemented by a cyclically-ordered set of nodes participating in a blockchain network
CN111464518A (zh) 一种跨链通信数据的发送、验证方法及装置
US20230368195A1 (en) System and method for transferring resources using a blockchain
CN110832807A (zh) 用于区块链网络上分层令牌分配的系统和方法
US20240179211A1 (en) Computer-implemented system and method for controlling processing steps of a distributed system
CN112950180A (zh) 一种基于联盟链的通证方法、系统、电子设备及存储介质
CN112438035B (zh) 用于控制分布式系统的处理步骤的计算机实现的系统和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination