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

用于跨计算机网络任务分配的基于累加器协议的计算机实现的系统和方法

文献发布时间:2023-06-19 10:22:47


用于跨计算机网络任务分配的基于累加器协议的计算机实现的系统和方法

技术领域

本发明总体涉及一种用于在多个计算节点内分配计算任务的协议,所述多个计算节点在本文中称为计算机网络中的工作节点(worker node,工人节点)。作为所述协议的一部分,分布式网络中的节点可通过生成数值(quantity)注册到成员群,所述数值至少部分得自参数由管理节点(manager node,管理人节点)定义的累加树。作为所述协议的一部分,所述管理节点可利用所述多个工作节点提供的数值从所述多个工作节点中无偏选择一个工作节点来执行计算任务(例如,执行计算机程序)。本发明尤其适合但不限于在区块链网络中使用。至少在某些情况下,所述管理节点无法根据所述工作节点提供的数值确定是否选择了特定工作节点来执行所述计算任务。

背景技术

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

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

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

在本文中,“区块链”一词涵盖所有形式的基于计算机的电子分布式分类账。这些分类账包括基于共识的区块链和交易链技术、许可和非许可的分类账、共享分类账及其变体。虽然已提出并开发了其他区块链实施方案,但是区块链技术最广为人知的应用是比特币分类账。尽管出于方便和说明的目的在本文中可能会提及比特币,但需要说明的是,本发明不限于与比特币区块链一起使用,其他的区块链实施方式和协议也属于本发明的范围。“用户”一词在本文中可指人员或基于处理器的资源。“比特币”一词可包括源自或基于比特币协议的任何版本或变体。

发明内容

因此,期望提供可计算验证的以下保证:在区块链网络等分布式网络中,在所述网络中的节点之间公平地分配计算任务(即,以无偏的方式分配计算任务)。例如,使用一个选择过程可能是有用和有利的,在所述选择过程中,在计算任务完成前,进行所述选择的节点无法基于多个工作节点提供的数值预见是否选择了特定节点执行所述计算任务。

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

根据本发明,可提供一种用于区块链网络中的节点的计算机实现的方法。所述方法可以以密码方式强制执行。所述计算机实现的方法可以包括:检测到区块链上的多个交易满足条件,其中,所述多个交易包括与第一公钥和第二公钥相对应的第一交易,所述第一公钥对分层数据结构的第一元素集合进行编码;基于所述分层数据结构的第二元素集合生成第三公钥;至少部分基于所述第一公钥、所述第二公钥和所述第三公钥生成第二交易,其中,所述第二交易对至少部分计算任务进行编码;以及,取决于与所述第二元素集合相匹配的第一元素集合,至少通过验证所述区块链的节点是否能够访问第一私钥和第二私钥使所述节点执行所述计算任务,其中,所述第一私钥和所述第一公钥形成第一密钥对,所述第二私钥和所述第二公钥形成第二密钥对。

所述方法可用于在分布式网络中的节点之间公平地和/或大体上均匀地分配计算任务,从而产生与效率和资源分配有关的技术优势。

优选地,所述验证所述节点是否能够访问所述第一私钥和所述第二私钥包括:验证所述第一私钥和所述第二私钥是否满足模数关系。

优选地,所述第一公钥、所述第二公钥和所述第三公钥是椭圆曲线上的点。在某些情况下,所述第一公钥、所述第二公钥和所述第三公钥中的一个或多个的组合代表椭圆曲线上的点。

同时期望的是,所述方法进一步包括提供可用于确定所述分层数据结构的结构的参数集合。区块链网络的节点可使用所述可用于确定所述分层数据结构的结构的参数集合。

优选地,所述层级数据结构是累加树,例如,双线性映射累加树。

优选地,所述条件是经过阈值时间,其中,所述参数集合指示所述阈值时间。

优选地,所述条件是所述多个交易达到最大阈值数量。

优选地,所述分层数据结构是累加树;至少部分基于所述多个交易中的两个或以上交易对同一元素集合进行编码的概率共同确定所述累加树的叶节点数量、所述第一元素集合中的元素数量和所述最大阈值数量。

优选地,所述第二交易限制一个数字资产集合,其中,至少部分基于所述多个交易中的每个交易所限制的数字资产确定所述数字资产集合;如果所述计算任务被执行,则转移至少部分所述数字资产集合的控制权。

所述方法还包括基于检测到满足所述条件,广播一个保证,以生成所述第二交易,其中,所述保证基于所述多个交易中的每个交易所限制的数字资产限制第二数字资产集合。

优选地,通过所述区块链的不同节点将所述多个交易中的交易广播到所述区块链。

在某些情况下,通过所述区块链的节点将所述多个交易中的至少两个交易广播到所述区块链。换句话说,特定区块链可以将所述多个交易中的至少两个交易广播到所述区块链。

有利地,所述计算任务将在规定时间段内执行。

还期望提供一种系统,包括:处理器;存储器,包括可执行指令,其中,所述处理器执行所述可执行指令时,使得所述系统执行所要求保护的任一个方法。

还期望提供一种非暂时性计算机可读存储介质,其上存储有可执行指令,计算机系统的一个或多个处理器执行所述可执行指令时,使得所述计算机系统至少执行所要求保护的任一个方法。

附图说明

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

图1示出了可实现各种实施例的区块链环境;

图2示出了至少一个实施例提供的工作节点构建公钥的计算环境;

图3示出了至少一个实施例提供的一种计算环境,包括工作节点和相应的工单,所述工作节点可以使用所述工单确认向成员群的注册;

图4示出了至少一个实施例提供的可与选择工作节点执行计算任务(例如,执行程序)的过程结合使用的计算环境;

图5示出了至少一个实施例提供的根据工作节点提交的工单构建公钥的计算环境;

图6示出了至少一个实施例提供的管理节点生成执行交易的计算环境;

图7示出了至少一个实施例提供的一种计算环境,其中,管理节点生成协议回退交易,所述协议回退交易用于从多个工作节点中无偏选择一个工作节点来执行任务(例如,执行程序);

图8示出了至少一个实施例提供的提交工单或交易请求以加入成员群的过程的说明性示例;

图9示出了至少一个实施例提供的在多个工作节点之间进行工作项(例如,执行程序)的无偏分配的过程的说明性示例;

图10示出了可实现各种实施例的计算机系统。

具体实施方式

本文所述的技术可用来实现一种协议,所述协议用于将多个工作节点注册到成员/联盟,并使用累加树作为从多个工作节点中无偏选择特定工作节点来执行计算任务的过程的一部分。在一实施例中,在区块链上确认执行交易之前,进行所述无偏选择的系统(例如,管理节点)无法基于所述工作节点(例如,经由区块链)提供的数值预见是否选择了特定工作节点来执行所述计算任务。使用所述协议,工作节点可以可计算验证的方式保证在达到期望的结果之前所述管理节点不能重复生成随机数值(例如,进行有偏选择,使特定的先验已知的工作节点执行所述计算任务)。相应地,本文所述的技术可以通过提供一种协议来改善计算机系统的操作,所述协议以可计算验证的方式保证在多个节点之间对计算任务进行无偏委派(例如,保证在分布式系统中对计算工作进行公正/无偏委派)。本文所述的技术还可以通过加强多个计算节点之间的信任保证来提高计算机网络的安全性,所述计算节点由不同的实体使用本公开所述的协议进行控制。

参考图1,图1示出了可实现本公开的各种实施例的示例计算环境100。本文所述的系统和方法可涉及一种协议,所述协议用于确保在多个工作节点104之间对来自管理节点102的计算任务进行无偏分配。例如,所述管理节点可将计算机程序执行无偏地委派给所述多个工作节点中的特定工作节点。为了说明,图1示出了一组工作节点104,其中,已选择特定工作节点116执行计算机程序。可使用所述协议以可计算验证的方式保证所述管理节点无法先验确定是否选择了特定工作节点P

管理节点102可指诸如计算机服务器之类的一个或多个存储可执行代码的计算设备,如果所述一个或多个计算设备的一个或多个处理器执行所述可执行代码,则使所述计算设备对群成员中的节点的注册和隶属关系、从多个工作节点中进行的无偏选择等进行管理。在一些实施例中,所述管理节点102可以包括任何适当的设备(例如,数据中心的服务器、客户端计算设备(例如,台式计算机、膝上型计算机、平板电脑、智能手机等)、计算资源服务提供商的分布式系统中的多个计算设备、或诸如图10中的计算设备1000之类的任何适当的电子客户端设备)。在一些实施例中,所述管理节点102使用输入接收代表拟议交易的数据消息或对象,例如,工单(work tickets)请求,可视为如本文所述的交易的示例。在一些实施例中,所述管理节点中可查询交易状态、成员群状态、可用于构建工单请求的参数等信息。

节点可通信地耦合到一个或多个其他节点。这种通信耦合可包括有线或无线通信中的一个或多个。本实施例中,每个节点维护所述区块链中所有交易的“分类账”的至少一部分。这样,所述分类账将会是分布式分类账。影响所述分类账的节点所处理的交易可由一个或多个其他节点进行验证,从而维护分类账的完整性。

至于哪些节点可与哪些其他节点进行通信,只要区块链网络中的每个节点都能与一个或多个其他节点进行通信,从而使节点之间传递的消息可以在整个区块链网络(或其重要部分)中传播即可,假设所述消息是区块链协议指示应转发的消息。此消息可能是拟纳入区块链中的新区块的发布。一般而言,本公开所述的所有节点都可用于实现部分或所有前述特征。

所述计算环境100可进一步示出一组工作节点104,其中,所述工作节点指可向所述管理节点102提供工单提交请求的计算机系统。例如,计算机系统P

在一实施例中,工作节点生成工单106。工作节点P

在各种实施例中,双线性映射累加树用于高效的数据存储和成员身份认证。根据协议,从累加树中提取的将所述累加树包含的信息进行压缩的数值,例如,局部和全局摘要,可用于表示隶属关系参与者做出的元素选择或组合。在此协议中,所述工作节点将其选定的组合包含在其工单请求中,作为所述工单公钥的一部分。所述管理节点负责根据所述协议至少部分基于最佳元素组合的选择对工作节点进行无偏选择,并建立包括计算机程序等计算任务的执行交易114。作为协议的一部分,所述管理节点102可利用所述累加树112选择特定工作节点执行所述计算任务。在一实施例中,在所述区块链上确认执行交易114且特定工作节点P

在一实施例中,所述计算机程序的成功执行可能导致数字资产的转移。作为所述计算任务成功执行的一部分,在所述区块链上确认所述执行交易114后,所述工作节点以密码验证的方式证明所述工作节点拥有所选组合,从而限制所述执行交易。作为示例,图1示出了选定的工作节点116能够执行所述计算任务(如复选标记所示),而其他工作节点无法成功执行所述任务(如标记“x”所示)。

在本公开范围内设想了各种实施例,例如,可以实施安全网机制,这样,如果未选择任何工作节点执行所述程序,则在所述区块链上确认所述执行交易后的一段时间过后,每个工作节点都可赎回其数字资产的初始转移。在一实施例中,在选定的工作节点未能或拒绝执行所述程序、错误地执行所述程序以及选定的工作节点未正确执行所述程序的其他此类变体中,也可以使用该安全网机制。此外,执行所述计算任务(例如,可以将至少部分编码在执行程序中的计算机程序的成功执行广播并确认到区块链分类账)之前,所述管理节点无法获知是否选择了特定工作节点。

图2示出了工作节点P

一般而言,加密累加器可用于在哈希表中提供数据存储并进行成员身份验证。在某些情况下,加密累加器是基于RSA的累加器或双线性映射累加器,可以是静态的(固定成员集合)或动态的(允许在集合中添加或删除成员)。下面对静态双线性映射累加器的框架进行更为详细的说明。例如,设G

·双线性:

·非退化性:(g

·可计算性:

下面将设置G

在一实施例中,累加树204是使用认证的数据结构高效存储数据的分层结构。所述累加树204可用于减少通信和验证成本和/或存储成本。所述累加树204可用于验证查询中涉及的子集的哈希值的正确性:所述集合的公共树摘要确保所述哈希值的正确性,而所述哈希值反过来验证所述集合。所述累加树204可表示为T(ε),其中,0<ε<1,T(ε)代表有根树,所述有根树配有存储集合E中的n个元素的n个叶子。所述累加树中的级别数可定义为

对于所述累加树T(ε)中存储元素e∈[e

ψ(v)=e

对于所述累加树T(ε)中位于级别1<i<l(此处l=2)的非叶节点v,所述累加值可如下定义:

其中,C(v)是节点v的子节点的集合,ψ(u)是节点u的双线性局部摘要。例如,对于图2所示的累加树,C(v=N

对属于集合E的给定元素x,隶属证明π(x)包括有序的证明序列,所述累加树的每一层包含一个证明,即,π(x)={π

π

因此,对于给定层i(其中,1<i<l),相应的证明元素包括两个成分:

·α

·β

在一些实施例中,所述证明通常由受信方计算并发送给用户/证明者。所述陷门信息s对于所述证明者来说是未知的。但是,数值g

整个累加树的双线性全局摘要为:

d=ψ(r)

其中,

ψ(r)=g

且r表示树根。因此,存在一个层次结构,其中,参与者(例如,工作节点)至少部分基于各自在所述层次结构中的位置来承担不同的角色,这可以反映所述工作节点选择的元素组合。

在验证阶段,用户将其证明π(x)提供给验证器。如果g

1.检查是否α

2.针对i=2,..,l,验证是否

利用双线性映射性质,第二个关系等同于验证以下相等性:

在此场景中,仅当以上所有关系均成立时,所述证明才被接受。

在一实施例中,使用累加树的局部和全局摘要生成公钥/私钥对,所述累加树使用所述工作节点提供的数据构建而成。这些密钥可用于表示本公开中提出的协议中的工作节点选择的元素组合。密钥对可指共同用于执行相关操作(例如加密/解密)的公钥和私钥。在某些情况下,私钥用于生成私钥的持有证明,其中,所述证明可使用相应的公钥进行计算验证。

在一实施例中,所述工作节点202在S中给出的N个元素中选择c个元素的组合。在一实施例中,所述工作节点P

R

其中,r

在一实施例中,图2示出了用于为工作节点202构建公钥的计算环境200。作为说明性示例,图2示出了9个元素的集合,但是可以基于各种因素(例如,工作节点的数量、所选择的集合中元素的数量及其组合)使用更大和更小的树。在一实施例中,第一工作节点P

在一实施例中,N

在一实施例中,工作节点P

OP_1 R

其中,R

在一实施例中,所述工作节点P

图3示出了计算环境300,包括工作节点302和相应的工单304,所述工作节点可用所述工单确认到成员群的注册。在一实施例中,管理节点在成员群中的工作节点之间委派执行计算机程序的任务。

在一实施例中,加入成员群的每个工作节点都生成并广播一个工单,所述工单可用于验证所述节点是否包含在成员群中。每个工单可包括工作节点生成的信息,所述管理节点可用所述信息选择工作节点执行工作(例如,计算机程序),其中,所述信息不揭示与其关联的特定工作节点的身份。在一实施例中,所述工作节点302用所述工单304建立群中的隶属关系,所述工单304包括数值(例如,R

每个工作节点(例如,图3所示的工作节点P

在一实施例中,工作节点P

在一实施例中,每个工作节点P

Q

T

其中,G是椭圆曲线的生成元(g=G)。所述两个私钥k

k

其中,z是所述管理节点选择并公开可用的大数。尽管z应该很大,但是需要验证是否z≤p,其中p是定义群的顺序的素数,所述椭圆曲线基于所述群进行定义。在一实施例中,被选择执行程序的工作节点可能会揭示(例如,广播到所述区块链网络)所述私钥,因此,所述密钥对是一次性密钥。所述第二临时公钥/私钥对{T

在一实施例中,所述工作节点P

图4示出了可与选择工作节点执行程序的过程结合使用的计算环境400。管理节点402可以是任何适当的计算机系统,并可根据本公开其他地方(如结合图1)所述的管理节点来实现。在一实施例中,所述管理节点402使用随机选择的元素构建累加树404,从而至少部分基于源自随机选择的所述累加树404的叶节点的数值生成公钥406。

所述管理节点402可随机选择c个元素的组合,使用先前选择并分配给所述工作节点的参数来构建图4所示的累加树404,并计算第一节点的局部摘要以及全局摘要。如图4所示,在一实施例中,所述管理节点获取新的公钥406,其计算公式为C

图5示出了根据加入成员群的工作节点提交的工单构建公钥的计算环境500。可根据本公开其他地方(如结合图1-4)所述的计算环境实现所述计算环境500。

在一实施例中,工作节点P

C

因此,所述管理节点504可根据所述公钥R

需要说明的是,在一实施例中,所述管理节点504无法预测是否针对给定的工作节点验证了该相等性。因此,在各实施例中,所述管理节点504缺乏可用于推导各工作节点选择的数值的附加知识,只能抽取包含c个元素的无偏组合。在一实施例中,在所述区块链上确认执行交易且特定工作节点P

图6示出了计算环境600,其中,管理节点602生成执行交易604,所述执行交易包括至少部分可由从成员群中的多个工作节点中选择的工作节点执行的计算机程序。所述执行交易604可包括来自成员群中的工作节点的一个或多个输入(例如,每个工作节点对应一个输入),以及包含锁定脚本的输出,所述锁定脚本限制计算机程序的执行,使得只有选定的工作节点才能成功执行所述程序。

所述计算环境600中示出的管理节点602可与结合图1、4和5所述的管理节点一致,并可以任何适当的方式实现。所述管理节点602可包括一个或多个计算机可读介质(例如,非暂时性计算机可读介质),所述计算机可读介质包括可由计算机系统的一个或多个处理器执行以使所述系统执行本文所述的各种技术的指令。所述管理节点602可以是区块链网络中的节点。

在一实施例中,所述管理节点602使用l个新公钥C

在一实施例中,所述管理节点广播协议回退交易,使得所述工作节点可以在ΔT

另一方面,如果没有工作节点执行所述程序,而且所述工作节点在所述协议回退交易中认领了UTXO,则所述管理节点应该能够解锁所述执行交易中限制的数字资产。因此,所述管理节点应在锁定所述执行交易604中UTXO限制的数字资产的脚本中加入所述选项,用于在经过某段时间ΔT

在一实施例中,所述管理节点602构建的锁定脚本606中的操作码可与基于比特币的网络中使用的操作码一致。此外,操作码OP_ECMUL指能够在所述椭圆曲线上进行点乘运算的操作码(所含的评论和注释前标记有“#”号,并不是必需的):

为简洁起见,以上所示的锁定脚本示例中考虑了l=3个工作节点,但可对其进行调整以支持其他工作节点。所述示例锁定脚本中的前两行检查赎回脚本中最后的输入的值:

-1→locking_script_rollback(锁定脚本回退):所述脚本需要另外两个输入,即,所述管理节点的签名和公钥(D)。经过时间ΔT

-Otherwise(否则)→locking_script_execution(锁定脚本执行):提供了另外两个输入;工作节点P

然后,将所述脚本分为IF和ELSE语句,以对转移数字资产的两个选项进行编码。

IF语句中的操作码块可称为锁定脚本回退(locking_script_rollback)子例程,包括在没有工作节点执行所述计算任务的情况下,针对所述管理节点的(所述协议回退交易中转移的数字资产的)回退选项。在一实施例中,用以下方式构建所述脚本:如果经过一定时间ΔT

所述锁定脚本的ELSE语句中的第二操作码块可称为锁定脚本执行(locking_script_execution)子例程,包括使工作节点执行所述计算任务(例如,计算机程序)的选项。假设工作节点P

-检查是否a×G=C

-检查是否b×G=T

-检查是否a=b mod z,用所述选定的工作节点提供的两个私钥验证所述模数关系,确保所述工作节点提供为该回合创建的两个原始私钥:k

在一实施例中,最后的检查(即,所述模数检查)确保工作节点P

所述锁定脚本的示例仅仅是在本公开范围内设想的众多变体中的一个。例如,在一实施例中,所述锁定脚本不包括检查所述第二公钥的指令和/或检查a=b mod z中包含的模数的指令。在存在其他保证(例如,其他信任协议)的实施例中,这些检查可能不是必要的,其中,所述其他保证可以确保工作节点是诚实可靠的,且当工作节点实际上没有选择所述最佳组合时,不会试图谎称自己已被选定执行所述程序。在一实施例中,所述ELSE语句中的操作码块的结构取决于所述脚本中考虑的密钥的数量。在图6所示的形式中,所述ELSE语句中的脚本(仅第一子部分,即,验证所述第一私钥)可以如下扩展:

在一实施例中,所述管理节点使用所述区块链上确认的工单

在一实施例中,在t>ΔT

在一实施例中,一个工作节点(例如,工作节点P

在一实施例中,根据所述协议,l个工作节点以区块链交易的形式提交工单,其中,每个交易都有输出,如果作为计算机程序的一部分执行,则将数字资产的控制权转移到所述管理节点,所述工单包括对c个元素的组合进行编码的信息,所述c个元素的组合是工作节点从为给定任务(例如,执行程序)选择的N个元素的集合中选择出来的。所述执行交易的脚本锁定的构建使得在提供正确信息的情况下,最多只有一个工作节点可以将其赎回。

根据概率原理,一个工作节点被选中的机会由二项式系数的倒数给出:

其中,

例如,如在结合图2所考虑的例证中那样,给定N=9,c=3,则有84种可能的组合。因此,一个工作节点被选中的概率约为1.2%。

在一实施例中,将完整的元素集合给到每个工作节点,并允许每个工作节点从所述N个元素的集合中自由选择c个元素的任意组合。相应地,两个工作节点P

例如,如在各种实施例中考虑的例证中那样,给定N=9,c=3,则两个工作节点选择相同组合的概率约为0.01%。

相应地,两个或以上工作节点选择相同组合的概率由以下公式给出:

其中,前导项是两个工作节点选择相同组合的概率。

在一实施例中,选择参数(N,c)和n(每轮的最大工作节点数),使得P(c

图7示出了计算环境700,其中,管理节点702生成协议回退交易704,用于根据协议从多个工作节点中无偏地选择一个工作节点执行任务(例如,执行程序)。在一实施例中,所述管理节点702在时刻T

所述工作节点选择最佳组合并建立所述执行交易之前,所述管理节点可以向工作节点保证其将遵循所述协议。实际上,在ΔT

在一实施例中,所述管理节点702使用每个注册的工作节点T

#检查输入格式是“sig sig 1”(管理节点的选项)还是“sig PubKey 2”(工作节点的选项)

以上代码可视为锁定脚本的各种实现方式中的一种,其中有两个执行路径:管理节点选项和工作节点选项。在一实施例中,可以通过提供两个输入解锁管理节点选项的执行,其中,所述两个输入为所述交易关联的签名和两个公钥:公钥D和所述工作节点生成的任意公钥T

在一实施例中,如图7所示,所述脚本包括多重签名子脚本。各种区块链网络的上下文中可能包括多重签名输出中允许的最大数量的公钥。为了在可能需要检查更多公钥(例如,工作节点的数量超过多重签名操作码支持的最大密钥数量)的情况下扩展脚本,所述管理节点可构建包含嵌入if-else语句中的几个多重签名脚本的锁定脚本、创建几个协议回退交易等等。

两个选项都需要两个输入,因此使用第三输入来区分这两个执行路径:1表示管理节点选项,2(或任何其他数字)表示工作节点选项。为了生成与交易和公钥相关联的签名,用户必须知道所述公钥关联的私钥。尽管所述管理节点可以在知道工作节点P

因此,在一实施例中,所述协议中为所述管理节点留了一个时间窗口[ΔT

图8示出了实施例提供的提交工单(也称为工单或交易请求)以加入成员群的过程800的说明性示例。所述过程800(或本文所述的任何其他过程,或其变形和/或组合)的部分或全部可在配置有计算机可执行指令的一个或多个计算机系统的控制下执行,并可以硬件、软件或两者结合的形式实现为在一个或多个处理器上共同执行的代码(例如,计算机可执行指令、一个或多个计算机程序或一个或多个应用程序)。如本公开所述,例如,如结合图1所述,所述过程800可以由工作节点执行。所述代码可以计算机程序等形式存储在计算机可读存储介质上,所述计算机程序包括多个可由一个或多个处理器执行的计算机可读指令。所述计算机可读存储介质可以是非瞬时性计算机可读介质。在一些实施例中,至少一些可用于执行所述过程800的计算机可读指令不仅仅是用瞬时性信号(例如,传播的瞬态电或电磁传输)来存储的。非瞬时性计算机可读介质可以在瞬时性信号的收发器内包含非瞬时性数据存储电路(例如,缓冲器、高速缓存和队列)。

所述系统可提交(802)加入成员群的请求。所述请求可提交给管理节点,所述管理节点协调所述成员群中的多个工作节点之间的任务(例如,执行程序)分配。在一实施例中,所述管理节点(例如,通过区块链网络或其他任何适当的机制)广播以下内容:所述管理节点正在接受加入成员群的请求,并且可以包括附加信息,例如,注册期限和注册关闭前可加入所述成员群的工作节点的最大数量(在某些实施例中,所述附加信息会加速所述协议的实施)。

在一实施例中,所述系统接收(804)来自所述管理节点的陷门信息s和公钥D,其中,所述管理节点协调工作节点的隶属关系注册。在一实施例中,所述管理节点使用本公开其他地方所述的技术(例如,结合图2所述的技术)生成所述陷门信息s和公钥D。

所述系统可接收(806,与步骤804分开或共同执行)累加树的参数集合。加密累加器可用于在哈希表中提供数据存储并进行成员身份验证。在一实施例中,群成员注册中的一个或多个工作节点使用的加密累加器是静态双线性映射累加器。在一实施例中,G

在一实施例中,所述系统通过从所述元素集合中给定的N个元素中选择c个元素的组合并构建表示所选的c个元素的局部摘要来构建(808)公钥,并获取至少部分基于局部和全局摘要计算出的椭圆曲线上的点Ψ。在一实施例中,所述工作节点P

R

其中,r

在一实施例中,所述系统生成第二公钥T

图9示出了至少一个实施例提供的在多个工作节点之间进行工作项(例如,执行程序)的无偏分配的过程900的说明性示例。在某些情况下,所述过程900至少部分由结合图1-7所述的管理节点来执行。

在一实施例中,所述管理节点以发布或其他方式使请求工作节点注册为群成员的指示公开可用。可以从群成员中选择工作节点执行各种任务,例如,执行计算机程序。在一实施例中,提交工单请求的任何工作节点都可以加入群成员并被选定执行任务。在一实施例中,提交工单请求包括数字资产的转移(例如,数字资产的控制权从工作节点转移到所述管理节点)。

所述系统可以在预定的时间段内和/或接收到最大数量的工作节点和/或工单之前才开放群成员注册。

在一实施例中,所述系统接收(902)加入群成员的请求。在一实施例中,所述请求包括所述群关联的标识符(例如,所述管理节点正同时协调跨多个群成员的工作项执行)。如上所述,所述系统可以提供(904)陷门信息s和公钥D。所述系统还可以提供(906)参数集合,包括:N个元素的集合{e

所述系统可在另一个时间点接收工单请求,包括特定节点正在进行注册以加入成员群并希望被选定执行任务(例如,执行计算机程序)的指示。在一实施例中,每个工单请求包括针对工作节点P

所述系统还可以检查(910)注册窗口是否已关闭。所述注册窗口可以是指示何时选择节点执行任务的时间。在某些情况下,例如,当群成员已满时,可以在最初确定的注册截止日期之前关闭所述注册窗口(例如,所述截止日期仅仅是所述协议要进入工作节点选择阶段的最新时间)。在一实施例中,可以以并行或非确定性的顺序确定是否已达到最大工作节点数以及注册窗口是否已关闭。

在确定所述注册阶段已结束之后(例如,因为所述注册窗口已超时或已经注册了最大数量的节点),所述系统可进入选择阶段,选择工作节点执行计算任务(例如,执行计算机程序)。所述系统可创建(912)协议回退交易并将其广播到区块链,如图7所示。在一些实施例中,所述协议回退交易必须在特定时间ΔT

在一实施例中,根据结合图4-6所述的技术创建(914)执行交易并对其进行广播。所述工作节点可在时间窗口[ΔT

所述系统可以在预定时间确定(916)所述程序是否已执行。在一实施例中,如果所述程序已执行,则所述管理节点认领(918)所述协议回退交易中限制的数字资产。如果所述程序没有在规定的时间前执行,则所述系统可收集(920)所述工单限制的数字资产,且作为回退机制,每个工作节点都可认领一部分所述协议回退交易中限制的数字资产。在一实施例中,例如,在没有协议回退交易的实施例中,未执行所述程序的情况可能导致每个工作节点都改而认领一部分所述执行交易中限制的数字资产。

图10是可用于实现本公开的至少一个实施例的计算设备1000的示意性简化框图。在各种实施例中,所述计算设备1000可用于实现以上示出和说明的任何系统。例如,所述计算设备1000可配置为用作数据服务器、网络服务器、便携式计算设备、个人计算机或任何电子计算设备。如图10所示,所述计算设备1000可包括一个或多个处理器1002。在一实施例中,所述处理器1002配置为通过总线子系统1004与多个外围子系统进行通信并可操作地耦合到所述多个外围子系统。在一些实施例中,这些外围子系统包括存储子系统1006,所述存储子系统1006包括存储器子系统1008、文件/磁盘存储子系统1010、一个或多个用户界面输入设备1012、一个或多个用户界面输出设备1014以及网络接口子系统1016。该存储子系统1006可用于临时或长期存储信息。

在一些实施例中,所述总线子系统1004提供了一种机制,使所述计算设备1000的各种组件和子系统按预期进行通信。所述总线子系统1004被图示为单个总线,但在替代实施例中,所述总线子系统可使用多个总线。在一些实施例中,所述网络接口子系统1016提供到其他计算设备和网络的接口。在一些实施例中,所述网络接口子系统1016作为接口用于从其他系统接收数据并将所述计算设备1000的数据发送给其他系统。在一些实施例中,所述总线子系统1004用于传递细节信息、搜索项等数据。

在一些实施例中,所述用户界面输入设备1012包括用于向所述计算设备1000输入信息的所有可能的设备和机制类型。在一些实施例中,所述一个或多个用户界面输出设备1014包括用于从所述计算设备1000输出信息的所有可能的设备和机制类型。例如,可以使用一个或多个用户界面输出设备1014来呈现用户界面,以便于用户与执行所描述的过程和其中变型的应用程序进行交互(当这种交互可能合适时)。

在一些实施例中,所述存储子系统1006提供一种计算机可读存储介质,用于存储提供本公开的至少一个实施例的功能的基本程序和数据构造。在一些实施例中,一个或多个处理器执行所述应用程序(程序、代码模块、指令)时,提供本公开的一个或多个实施例的功能。此外,在一实施例中,所述应用程序存储在所述存储子系统1006中。所述一个或多个处理器1002可执行这些应用模块或指令。在各种实施例中,所述存储子系统1006还提供储存库,用于存储根据本公开使用的数据。在一些实施例中,所述存储子系统1006包括存储器子系统1008和文件/磁盘存储子系统1010。

在一实施例中,所述存储器子系统1008包括多个存储器,例如,用于在程序执行期间存储指令和数据的主随机存取存储器(Random Access Memory,简称RAM)1018和/或可存储固定指令的只读存储器1020(Read Only Memory,简称ROM)。在一些实施例中,所述文件/磁盘存储子系统1010提供对程序和数据文件的非暂时性永久(非易失性)存储,并且可以包括硬盘驱动器、软盘驱动器及相关可移动介质、只读光盘(Compact Disk Read OnlyMemory,简称CD-ROM)驱动器、光盘驱动器、可移动介质盒或其他类似的存储介质。

在一些实施例中,所述计算设备1000包括至少一个本地时钟1024。在一些实施例中,所述本地时钟1024是一个计数器,表示从特定日期开始的滴答声的数量。在一些实施例中,所述本地时钟1024集成在所述计算设备1000内。在各种实施例中,所述本地时钟1024用于以特定的时钟脉冲同步所述计算设备1000及其中包含的子系统的处理器中的数据传递,并可用于协调所述计算设备1000和数据中心其他系统之间的同步操作。在另一个实施例中,所述本地时钟是可编程间隔计时器。

由于计算机和网络的不断变化的性质,图10所示的计算设备1000的描述仅用作说明设备的优选实施例的特定示例。可能存在比图10所示系统的组件更多或更少的许多其他配置。

因此,本说明书和附图应被认为是说明性的而不是限制性的。然而,显而易见的是,在不脱离权利要求所阐述的本发明范围的前提下,可以对其做出各种修改和改变。同样,其他变型也涵盖在本公开的范围内。因此,尽管所公开的技术易于进行各种修改和替代构造,其某些已阐明的实施例在附图中示出并已在上文中进行了详细描述。然而,应当理解的是,本发明并不限制为所公开的一种或多种特定形式。相反地,本发明旨在涵盖所附权利要求中定义的本发明范围内的所有修改、替代构造和等同形式。

除非另有说明或与上下文矛盾,否则“集合”(例如,“项目集合”)或“子集”一词的使用应解释为包括一个或多个成员的非空集合。进一步地,除非另有说明或与上下文矛盾,否则相应集合的“子集”不一定表示所述相应集合的名副其实的子集,而是可以等同于所述相应集合。

除非另有说明或与上下文明显矛盾,否则应理解诸如“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。。此外,除非另有说明或从上下文可以清楚地看出,否则短语“基于”是指“至少部分基于”而不是“仅基于”。

除非另有说明或与上下文明显矛盾,可以任何适当的顺序执行所述过程的操作。可在配置有可执行指令的一个或多个计算机系统的控制下执行所述过程(或其变体和/或组合),并且可以将其以硬件、软件或两者结合的形式实现为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)。在一些实施例中,所述代码可以计算机程序等形式存储在计算机可读存储介质上,所述计算机程序包括多个可由一个或多个处理器执行的指令。在一些实施例中,所述计算机可读存储介质是非暂时性的。

本文提供的任何和所有例子或示例性语言(例如,“诸如”)的使用仅仅旨在更好地说明本发明的实施例,除非另有声明,否则不对本发明的范围构成限制。说明书中的任何语言都不应理解为表示任何未受权利要求保护的要素对本发明的实现至关重要。

本公开所述的实施例包括发明人已知的实施本发明的最佳模式。本领域普通技术人员阅读前述说明之后,所述实施例的变体将变得显而易见。发明人希望本领域技术人员适当利用这些变体,并且发明人期望本公开的实施例以不同于本文明确描述的方式实现。因此,只要适用法律允许,本发明包括所附权利要求中所列举的主题的所有修改形式和等同形式。此外,除非另有说明或与上下文明显矛盾,上述元素在其所有可能的变体中的任何组合都涵盖在本公开范围内。

本文引用的所有参考文献,包括出版物、专利申请和专利,均以引用的方式并入本文,如同每一参考文献均被单独地且明确指示为以引用方式并入并且全文进行陈述。

需要说明的是,上述实施例说明而不是限制本发明,本领域技术人员能够在不脱离所附权利要求定义的本发明范围的前提下设计出许多替代实施例。在相互不同的从属权利要求中记载某些措施这仅有的事实并不表示这些措施的组合不能被有利地使用。

相关技术
  • 用于跨计算机网络任务分配的基于累加器协议的计算机实现的系统和方法
  • 用于加密保护的分布式数据管理的以数据库为中心的计算机网络系统和计算机实现的方法
技术分类

06120112525119