CN112567706A - 用于跨计算机网络任务分配的基于累加器协议的计算机实现的***和方法 - Google Patents
用于跨计算机网络任务分配的基于累加器协议的计算机实现的***和方法 Download PDFInfo
- Publication number
- CN112567706A CN112567706A CN201980048046.1A CN201980048046A CN112567706A CN 112567706 A CN112567706 A CN 112567706A CN 201980048046 A CN201980048046 A CN 201980048046A CN 112567706 A CN112567706 A CN 112567706A
- Authority
- CN
- China
- Prior art keywords
- node
- transaction
- public key
- worker
- nodes
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000001186 cumulative effect Effects 0.000 claims abstract description 11
- 238000009825 accumulation Methods 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 8
- 238000007726 management method Methods 0.000 description 110
- 238000013515 script Methods 0.000 description 67
- 238000004590 computer program Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 23
- 238000012546 transfer Methods 0.000 description 19
- 238000012795 verification Methods 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000000246 remedial effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
- H04L9/0833—Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
- H04L9/0836—Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
- H04L9/3073—Public 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 involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Computer Hardware Design (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Small-Scale Networks (AREA)
Abstract
本文所述的技术可用于实现一种协议,所述协议用于从多个工作节点中无偏地选择特定工作节点执行计算任务。分布式网络中的节点可通过生成数值进行注册以加入群成员,所述数值至少部分源自参数由管理节点定义的分层数据结构,例如,累加树。所述管理节点可利用所述多个工作节点提供的数值从所述多个工作节点中无偏地选择一个工作节点来执行计算任务。本发明尤其适合但不限于用在比特币等区块链网络中。至少在某些情况下,所述管理节点无法根据所述工作节点提供的数值确定是否选择了特定工作节点来执行所述计算任务。
Description
技术领域
本发明总体涉及一种用于在多个计算节点内分配计算任务的协议,所述多个计算节点在本文中称为计算机网络中的工作节点(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执行计算机程序。可使用所述协议以可计算验证的方式保证所述管理节点无法先验确定是否选择了特定工作节点Pi执行所述计算任务。这样,所述选择过程是一个无偏(或“公平”)的选择过程,在此过程中,执行交易114被广播(例如,到区块链网络)之前,所述管理节点无法确定特定工作节点Pi是否选择了相同的元素组合。所述元素组合可用例如下面结合图2所述的方式表示为累加树的叶节点。在一些实施例中,所述执行交易114一旦被广播并确认到区块链就不可撤销,从而确保所述管理节点后续无法尝试更改所述选择过程。
管理节点102可指诸如计算机服务器之类的一个或多个存储可执行代码的计算设备,如果所述一个或多个计算设备的一个或多个处理器执行所述可执行代码,则使所述计算设备对群成员中的节点的注册和隶属关系、从多个工作节点中进行的无偏选择等进行管理。在一些实施例中,所述管理节点102可以包括任何适当的设备(例如,数据中心的服务器、客户端计算设备(例如,台式计算机、膝上型计算机、平板电脑、智能手机等)、计算资源服务提供商的分布式***中的多个计算设备、或诸如图10中的计算设备1000之类的任何适当的电子客户端设备)。在一些实施例中,所述管理节点102使用输入接收代表拟议交易的数据消息或对象,例如,工单(work tickets)请求,可视为如本文所述的交易的示例。在一些实施例中,所述管理节点中可查询交易状态、成员群状态、可用于构建工单请求的参数等信息。
节点可通信地耦合到一个或多个其他节点。这种通信耦合可包括有线或无线通信中的一个或多个。本实施例中,每个节点维护所述区块链中所有交易的“分类账”的至少一部分。这样,所述分类账将会是分布式分类账。影响所述分类账的节点所处理的交易可由一个或多个其他节点进行验证,从而维护分类账的完整性。
至于哪些节点可与哪些其他节点进行通信,只要区块链网络中的每个节点都能与一个或多个其他节点进行通信,从而使节点之间传递的消息可以在整个区块链网络(或其重要部分)中传播即可,假设所述消息是区块链协议指示应转发的消息。此消息可能是拟纳入区块链中的新区块的发布。一般而言,本公开所述的所有节点都可用于实现部分或所有前述特征。
所述计算环境100可进一步示出一组工作节点104,其中,所述工作节点指可向所述管理节点102提供工单提交请求的计算机***。例如,计算机***Pi可通过提交工单(worker ticket)做出加入所述群成员的请求(从而有机会执行所述管理节点分配的计算任务),其中,所述工单包括使用所述管理节点102向所述请求者提供的参数计算出的数值。在一实施例中,所述参数可以是针对特定群的(例如,所述管理节点102可操作多个群成员执行多个计算任务),并可用于生成累加树,所述累加树具有针对特定群的参数。在一实施例中,计算机***Pi注册隶属关系后,可将所述计算机***Pi视为能够接收并执行由所述管理节点102根据协议分配的计算任务的工作节点Pi。
在一实施例中,工作节点生成工单106。工作节点Pi的工单可包括所述工作节点Pi生成的具体数值,所述管理节点102可使用所述具体数值从所述一套工作节点104中无偏地选择一个工作节点。在一实施例中,所述工单106包括工单公钥Ri和验证公钥Ti,其中,所述工单公钥至少部分基于累加树生成,所述累加树具有所述管理节点102提供给所述工作节点Pi的参数集合,所述参数集合包括陷门信息s和所述累加树的参数。在一实施例中,至少部分基于所述工单公钥Ri108和所述验证公钥Ti110生成的数值用于无偏地选择工作节点执行计算任务。累加树可用于生成所述工单公钥Ri和所述验证公钥Ti。未注册的参与者不知道分配给已注册工作节点的陷门信息s,因此无法重构源于所述累加树的数值。
在各种实施例中,双线性映射累加树用于高效的数据存储和成员身份认证。根据协议,从累加树中提取的将所述累加树包含的信息进行压缩的数值,例如,局部和全局摘要,可用于表示隶属关系参与者做出的元素选择或组合。在此协议中,所述工作节点将其选定的组合包含在其工单请求中,作为所述工单公钥的一部分。所述管理节点负责根据所述协议至少部分基于最佳元素组合的选择对工作节点进行无偏选择,并建立包括计算机程序等计算任务的执行交易114。作为协议的一部分,所述管理节点102可利用所述累加树112选择特定工作节点执行所述计算任务。在一实施例中,在所述区块链上确认执行交易114且特定工作节点Pi尝试执行工作任务(例如,执行程序)之前,管理节点504无法基于从所述区块链收集的多个公钥R1,…,Rl预见所述工作节点是否选择了相同的元素组合。
在一实施例中,所述计算机程序的成功执行可能导致数字资产的转移。作为所述计算任务成功执行的一部分,在所述区块链上确认所述执行交易114后,所述工作节点以密码验证的方式证明所述工作节点拥有所选组合,从而限制所述执行交易。作为示例,图1示出了选定的工作节点116能够执行所述计算任务(如复选标记所示),而其他工作节点无法成功执行所述任务(如标记“x”所示)。
在本公开范围内设想了各种实施例,例如,可以实施安全网机制,这样,如果未选择任何工作节点执行所述程序,则在所述区块链上确认所述执行交易后的一段时间过后,每个工作节点都可赎回其数字资产的初始转移。在一实施例中,在选定的工作节点未能或拒绝执行所述程序、错误地执行所述程序以及选定的工作节点未正确执行所述程序的其他此类变体中,也可以使用该安全网机制。此外,执行所述计算任务(例如,可以将至少部分编码在执行程序中的计算机程序的成功执行广播并确认到区块链分类账)之前,所述管理节点无法获知是否选择了特定工作节点。
图2示出了工作节点Pi用来生成锁定脚本208的累加树,所述锁定脚本用于分布式***,在所述分布式***中从一群工作节点中选择一个工作节点执行程序。工作节点202可以是任何适当的计算机***,并可根据本公开其他地方(如结合图1)所述的工作节点来实现。
一般而言,加密累加器可用于在哈希表中提供数据存储并进行成员身份验证。在某些情况下,加密累加器是基于RSA的累加器或双线性映射累加器,可以是静态的(固定成员集合)或动态的(允许在集合中添加或删除成员)。下面对静态双线性映射累加器的框架进行更为详细的说明。例如,设G1,G2是生成元为g1,g2的素数阶p的两个循环乘法群,也可能存在同构关系φ:G1→G2,使得φ(g2)=g1。给定阶数p的循环乘法群GM,可定义双线性配对e:G1×G2→GM,其具有以下属性:
·非退化性:(g1,g2)≠1
下面将设置G1=G2=G和g1=g2=g并考虑配对e:G×G→GM。基于双线性配对的双线性映射累加器可以在累加值中累加n个元素的集合E=(e1,..,en)∈G。需注意,该累加值是G中的元素并累加中的元素。其实,元素(e′1,e′2,…,e′n)∈G是集合E=(e1,..,en)∈G的原始元素的加密哈希值,即,e′i=h(ei),其中 是抗碰撞的哈希函数,将所述循环乘法群G的元素作为输入,并生成中的整数作为输出。最后,s代表保密的陷门信息。
在一实施例中,累加树204是使用认证的数据结构高效存储数据的分层结构。所述累加树204可用于减少通信和验证成本和/或存储成本。所述累加树204可用于验证查询中涉及的子集的哈希值的正确性:所述集合的公共树摘要确保所述哈希值的正确性,而所述哈希值反过来验证所述集合。所述累加树204可表示为T(ε),其中,0<ε<1,T(ε)代表有根树,所述有根树配有存储集合E中的n个元素的n个叶子。所述累加树中的级别数可定义为每个节点的子节点数为O(nε)。在一实施例中,所有叶子(或集合元素)处于由级别0标识的相同级别。
对于所述累加树T(ε)中存储元素e∈[e1,..,e9]的每个叶节点v,所述累加值ψ(v)定义为与所述元素本身的值相等:
ψ(v)=e
对于所述累加树T(ε)中位于级别1<i<l(此处l=2)的非叶节点v,所述累加值可如下定义:
对属于集合E的给定元素x,隶属证明π(x)包括有序的证明序列,所述累加树的每一层包含一个证明,即,π(x)={πi,i=1,..,l}。所述证明的每个元素对应由每个级别的元素的局部摘要αi和分支见证βi组成的对:
πi=(αi,βi),i=1,…,l
因此,对于给定层i(其中,1<i<l),相应的证明元素包括两个成分:
·αi,表示上一层(第i-1层)中在将元素x链接到根r的节点路径P(x):x→r中发现的节点的双线性摘要。当1<i<l时,αi对于层i-1中存在的所有元素都是相同的。
·βi,表示“分支见证”,所述见证对从查询节点到树根的路径中丢失的节点进行身份验证。
整个累加树的双线性全局摘要为:
d=ψ(r)
其中,
ψ(r)=g(h(ψ(d))+s)(h(ψ(e))+s)(h(ψ(f))+s)
且r表示树根。因此,存在一个层次结构,其中,参与者(例如,工作节点)至少部分基于各自在所述层次结构中的位置来承担不同的角色,这可以反映所述工作节点选择的元素组合。
在验证阶段,用户将其证明π(x)提供给验证器。如果gs已公开,则所述验证器
1.检查是否α1=x;
利用双线性映射性质,第二个关系等同于验证以下相等性:
在此场景中,仅当以上所有关系均成立时,所述证明才被接受。
在一实施例中,使用累加树的局部和全局摘要生成公钥/私钥对,所述累加树使用所述工作节点提供的数据构建而成。这些密钥可用于表示本公开中提出的协议中的工作节点选择的元素组合。密钥对可指共同用于执行相关操作(例如加密/解密)的公钥和私钥。在某些情况下,私钥用于生成私钥的持有证明,其中,所述证明可使用相应的公钥进行计算验证。
在一实施例中,所述工作节点202在S中给出的N个元素中选择c个元素的组合。在一实施例中,所述工作节点Pi建立所述节点N1的局部摘要,所述节点N1代表所述工作节点选择的c个元素的父级。在一实施例中,表示与所述工作节点Pi对应的局部摘要。在一实施例中,所述工作节点使用整个N个元素的集合计算所述累加树204的全局摘要d。在一实施例中,所述局部和全局摘要由椭圆曲线上的点表示,所述工作节点Pi可计算其总和以获得所述椭圆曲线上新的点Ψi:在一实施例中,该工作节点Pi使用抗碰撞的哈希函数h:计算新数ci,即所述点的哈希Ψi:ci=h(Ψi)。在一实施例中,所述数值ci被视为与公钥Vi相关联的私钥,其中,Vi=ci×G,G是所述椭圆曲线的生成点(g=G)。给定所述椭圆曲线的同态性质,则所述工作节点Pi计算新的公钥Ri,由下式给出:
Ri=Qi+Vi=ri×G
其中,ri=ki+ci是所述公钥Ri关联的私钥。
在一实施例中,图2示出了用于为工作节点202构建公钥的计算环境200。作为说明性示例,图2示出了9个元素的集合,但是可以基于各种因素(例如,工作节点的数量、所选择的集合中元素的数量及其组合)使用更大和更小的树。在一实施例中,第一工作节点Pi选择第一元素组合(例如,如图2所示的(a,b,f)),而第二工作节点Pj选择另一组合(例如,(a,i,g)),从而生成具有不同值的局部摘要和需要说明的是,所述工作节点使用相同的全局摘要d生成所述局部摘要和
在一实施例中,N1的局部摘要与c=3个子元素的顺序无关,示例中其余6个元素(即,工作节点选择的组合中未包含的元素,在图2中用虚线框表示)的分布与所述全局摘要的计算无关。在一实施例中,尽管其余元素的顺序可能无关紧要,但是所有元素e1,..,eN在所述工作节点Pi生成的累加树206中至少出现一次(例如,刚好一次),以正确地计算所述全局摘要。
在一实施例中,工作节点Pi生成赎回脚本208,所述赎回脚本208使用公钥Ri限制其工单的数字资产的转移,所述公钥包含(尽管被隐藏)所述工作节点选择的组合和临时公钥Ti。在一实施例中,所述工作节点构建多重签名脚本作为加入成员群的一部分。例如,所述工作节点Pi可如下构建一个3选1(1-of-3)的多重签名脚本:
OP_1 Ri Ti D OP_3 OP_CHECKMULTISIG
其中,Ri是包含所述工作节点Pi选择的元素组合的公钥,Ti是Pi生成的第二临时公钥,D是所述管理节点提供的公钥。所述多重签名脚本允许所述工作节点Pi使用专用于两个公钥的空间存储其选定的元素组合和验证公钥,而所述管理节点使用第三空间(通过提供与所述公钥D相关联的私钥)解锁所述脚本。相应地,在一实施例中,所述工作节点Pi构建以下脚本208:
在一实施例中,所述工作节点Pi可执行或者可代表所述工作节点Pi执行所述脚本208,以转移在任何时间点发送到相关地址的数字资产的控制权(用与公钥Fi相关联的私钥进行签名)。或者,经过某段时间ΔTS后,所述管理节点可赎回资金(用与D相关联的私钥进行签名)。需要说明的是,所述数值x可能是由于比特币核心版本中的错误而在检查期间从堆栈中删除的额外值。尽管在此进行了描述,但是为了清楚起见,本公开的其他地方可省略所述数值。
图3示出了计算环境300,包括工作节点302和相应的工单304,所述工作节点可用所述工单确认到成员群的注册。在一实施例中,管理节点在成员群中的工作节点之间委派执行计算机程序的任务。
在一实施例中,加入成员群的每个工作节点都生成并广播一个工单,所述工单可用于验证所述节点是否包含在成员群中。每个工单可包括工作节点生成的信息,所述管理节点可用所述信息选择工作节点执行工作(例如,计算机程序),其中,所述信息不揭示与其关联的特定工作节点的身份。在一实施例中,所述工作节点302用所述工单304建立群中的隶属关系,所述工单304包括数值(例如,Ri和Ti),所述数值用于在无偏选择和验证过程中将工作(例如,执行计算机程序)分配给所述成员群中多个工作节点中的其中一个工作节点。
每个工作节点(例如,图3所示的工作节点Pi)生成一个工单所述工单包括至少一个输入和一个输出。在一实施例中,所述一个或多个输入包括αi,所述工作节点持有的未花费的交易输出(unspent transaction output,简称UTXO)。所述输出包括上一层(第i-1层)中在将元素x链接到根r的节点路径P(x):x→r中发现的节点的双线性摘要。
在一实施例中,工作节点Pi使用锁定脚本306(如结合图2所述的锁定脚本)生成工单所述工单中,所述工作节点302将数字资产转移到源自所述脚本的地址。所述交易可广播到区块链网络,所述管理节点可用所述交易认证所述工作节点是否是工作(例如,执行程序)将要分配至的成员群的成员。
在一实施例中,每个工作节点Pi创建两个临时公钥/私钥对:
Qi=ki×G
Ti=yi×G
其中,G是椭圆曲线的生成元(g=G)。所述两个私钥ki和yi验证以下关系:
ki=yimod z
其中,z是所述管理节点选择并公开可用的大数。尽管z应该很大,但是需要验证是否z≤p,其中p是定义群的顺序的素数,所述椭圆曲线基于所述群进行定义。在一实施例中,被选择执行程序的工作节点可能会揭示(例如,广播到所述区块链网络)所述私钥,因此,所述密钥对是一次性密钥。所述第二临时公钥/私钥对{Ti,yi}可被称为验证密钥对,并在一些实施例中用于以可计算验证的方式保证声称已被选择执行工作项的特定工作节点实际上已被选择。在一些实施例中,例如,在不需要这种信任关系或使用其他技术建立这种信任关系的情况下,所述验证密钥对的实现是可选的。
在一实施例中,所述工作节点Pi对所述交易进行广播,所述交易被确认到所述区块链。在一实施例中,多个工作节点P1,..,Pl生成确认到区块链网络的相应工单。管理节点可以监视区块链分类账的内容并收集所述多个工作节点的公钥Ri和Ti,在检测到最大阈值数量的工作节点已注册为群成员后,继续进行选择工作节点执行程序的过程中的下一步。
图4示出了可与选择工作节点执行程序的过程结合使用的计算环境400。管理节点402可以是任何适当的计算机***,并可根据本公开其他地方(如结合图1)所述的管理节点来实现。在一实施例中,所述管理节点402使用随机选择的元素构建累加树404,从而至少部分基于源自随机选择的所述累加树404的叶节点的数值生成公钥406。
所述管理节点402可随机选择c个元素的组合,使用先前选择并分配给所述工作节点的参数来构建图4所示的累加树404,并计算第一节点的局部摘要以及全局摘要。如图4所示,在一实施例中,所述管理节点获取新的公钥406,其计算公式为CW=cW×G,其中,cW是所述椭圆曲线上表示所述管理节点选择的元素组合的局部摘要和所述累加树的全局摘要的两点之和的哈希值。例如,图4中,所述管理节点选择的随机组合可以是(b,d,e),用于计算新的公钥CW。在一实施例中,尽管有必要将每个元素都包含在所述累加树404中,但未被选入所述随机组合的元素(图4中用虚线框表示)的顺序是无关紧要的。
图5示出了根据加入成员群的工作节点提交的工单构建公钥的计算环境500。可根据本公开其他地方(如结合图1-4)所述的计算环境实现所述计算环境500。
在一实施例中,工作节点P1,..,Pl502将包括各自公钥R1,..,Rl506的工单广播到区块链网络,所述公钥由负责从所述多个工作节点中选择一个工作节点执行任务(例如,执行计算机程序)的管理节点504进行检测和收集。针对工作节点Pi提供的每个公钥Ri,所述管理节点504通过从每个相应的公钥Ri中减去与结合图4所述的随机选择的组合CW相关联的点,计算所述椭圆曲线上新的点Ci:
Ci=Ri-CW=(ki+ci-cW)×G
因此,所述管理节点504可根据所述公钥R1,..,Rl计算椭圆曲线上的多个点C1,..,Cl508。这样可以得出,当且仅当ci=cW时,Ci=Qi。例如,如果所述工作节点的工单(用ci表示)与源自所述管理节点随机选择的组合的数值cW相匹配,即,ci=cW,则从上述减法运算中得到的公钥/私钥对对应所述工作节点生成的(并保持私有的)第一临时密钥对。
需要说明的是,在一实施例中,所述管理节点504无法预测是否针对给定的工作节点验证了该相等性。因此,在各实施例中,所述管理节点504缺乏可用于推导各工作节点选择的数值的附加知识,只能抽取包含c个元素的无偏组合。在一实施例中,在所述区块链上确认执行交易且特定工作节点Pi尝试执行所述工作任务(例如,执行程序)之前,所述管理节点504无法检查这些新生成的公钥的有效性,即,所述管理节点504无法基于所述区块链收集的多个公钥R1,..,Rl506预见所述特定工作节点是否选择了相同的元素组合。在一实施例中,所述锁定脚本510被编码在所述执行交易中,并与结合图6所述的锁定脚本一致。在一实施例中,所述管理节点504创建锁定脚本510,所述锁定脚本510使用l个新公钥Ci,i∈[1,l]和l个验证公钥Ti,i∈[1,l]限制计算机程序的执行。这样,只有被选择并广播与所述管理节点选择的组合相同的随机组合的工作节点才能解锁所述脚本。在一实施例中,与公钥验证的使用有关的技术是可选的,在本公开范围内设想的一些实现方式中可以省略。
图6示出了计算环境600,其中,管理节点602生成执行交易604,所述执行交易包括至少部分可由从成员群中的多个工作节点中选择的工作节点执行的计算机程序。所述执行交易604可包括来自成员群中的工作节点的一个或多个输入(例如,每个工作节点对应一个输入),以及包含锁定脚本的输出,所述锁定脚本限制计算机程序的执行,使得只有选定的工作节点才能成功执行所述程序。
所述计算环境600中示出的管理节点602可与结合图1、4和5所述的管理节点一致,并可以任何适当的方式实现。所述管理节点602可包括一个或多个计算机可读介质(例如,非暂时性计算机可读介质),所述计算机可读介质包括可由计算机***的一个或多个处理器执行以使所述***执行本文所述的各种技术的指令。所述管理节点602可以是区块链网络中的节点。
在一实施例中,所述管理节点602使用l个新公钥Ci,i∈[1,l]和l个验证公钥Ti,i∈[1,l]创建计算机程序的锁定脚本606。需要说明的是,在某些实施例中,所述管理节点不需要遵循公钥的给出顺序。因此,工作节点Pi提供的公钥Ci和Ti不需要在所述管理节点602使用的两个公钥集合中处于相同位置,其中,所述两个公钥集合分别为{C1,C2,..,Cl}和{T1,T2,..,Tl}。
在一实施例中,所述管理节点广播协议回退交易,使得所述工作节点可以在ΔTE之后通过使用与Ti关联的私钥进行签名来赎回一个UTXO。该选项可用作对工作节点的保证,以防所述管理节点602未能根据所述协议广播所述执行交易。在一实施例中,所述协议要求所述执行交易604在设定的时间段内发布,包括特定数量的输入或输出、作为输入和/或输出的特定数值等等。在一实施例中,在没有工作节点执行所述程序的情况下,所述协议回退交易还为所述工作节点提供回退选项,出现这种情况的原因在于没有工作节点与所述管理节点选择相同的组合、工作节点拒绝执行所述程序、工作节点未在协议规定的时间内执行所述程序等等。在一实施例中,如果没有工作节点执行所述程序,则ΔTE之后,所述工作节点通过认领UTXO进行回退,所述协议终止。
另一方面,如果没有工作节点执行所述程序,而且所述工作节点在所述协议回退交易中认领了UTXO,则所述管理节点应该能够解锁所述执行交易中限制的数字资产。因此,所述管理节点应在锁定所述执行交易604中UTXO限制的数字资产的脚本中加入所述选项,用于在经过某段时间ΔTR≤ΔTE后,如果没有工作节点执行此操作,则转移所述UTXO限制的数字资产的控制权。
在一实施例中,所述管理节点602构建的锁定脚本606中的操作码可与基于比特币的网络中使用的操作码一致。此外,操作码OP_ECMUL指能够在所述椭圆曲线上进行点乘运算的操作码(所含的评论和注释前标记有“#”号,并不是必需的):
为简洁起见,以上所示的锁定脚本示例中考虑了l=3个工作节点,但可对其进行调整以支持其他工作节点。所述示例锁定脚本中的前两行检查赎回脚本中最后的输入的值:
-1→locking_script_rollback(锁定脚本回退):所述脚本需要另外两个输入,即,所述管理节点的签名和公钥(D)。经过时间ΔTR之后,可以解锁所述脚本。
-Otherwise(否则)→locking_script_execution(锁定脚本执行):提供了另外两个输入;工作节点Pi预计会使用与所述脚本中包含的公钥Ci和Ti相关联的两个私钥ki和yi尝试解锁所述脚本。
然后,将所述脚本分为IF和ELSE语句,以对转移数字资产的两个选项进行编码。
IF语句中的操作码块可称为锁定脚本回退(locking_script_rollback)子例程,包括在没有工作节点执行所述计算任务的情况下,针对所述管理节点的(所述协议回退交易中转移的数字资产的)回退选项。在一实施例中,用以下方式构建所述脚本:如果经过一定时间ΔTR之后,(例如,由于所述工作节点选择的组合与最佳组合都不匹配)没有任何工作节点执行所述程序,所述管理节点可用与所述脚本中使用的公钥D相关联的私钥进行签名,赎回所述数字资产。
所述锁定脚本的ELSE语句中的第二操作码块可称为锁定脚本执行(locking_script_execution)子例程,包括使工作节点执行所述计算任务(例如,计算机程序)的选项。假设工作节点Pi尝试使用两个输入a和b解锁所述脚本,所述脚本的此部分包括三个子部分:
-检查是否a=b mod z,用所述选定的工作节点提供的两个私钥验证所述模数关系,确保所述工作节点提供为该回合创建的两个原始私钥:ki=yimod z。
在一实施例中,最后的检查(即,所述模数检查)确保工作节点Pi不会作弊且不会通过计算与所述脚本中的Ci=Qi+Vi-CW相关联的私钥来尝试不正当地声明所述工作节点已被选定,其中,Vi≠CW。需要说明的是,在一些实施例中,所述模数检查仅在私钥层面上有效,对相关联的公钥而言,所述相等性并不成立。构建用于执行程序的锁定脚本时,所述管理节点无法从工单中获知有关所述工作节点选择的组合的任何信息。
所述锁定脚本的示例仅仅是在本公开范围内设想的众多变体中的一个。例如,在一实施例中,所述锁定脚本不包括检查所述第二公钥的指令和/或检查a=b mod z中包含的模数的指令。在存在其他保证(例如,其他信任协议)的实施例中,这些检查可能不是必要的,其中,所述其他保证可以确保工作节点是诚实可靠的,且当工作节点实际上没有选择所述最佳组合时,不会试图谎称自己已被选定执行所述程序。在一实施例中,所述ELSE语句中的操作码块的结构取决于所述脚本中考虑的密钥的数量。在图6所示的形式中,所述ELSE语句中的脚本(仅第一子部分,即,验证所述第一私钥)可以如下扩展:
在一实施例中,所述管理节点使用所述区块链上确认的工单i∈[1,l]的交易标识建立所述执行交易,包括作为输入的所述工作节点花费的l个UTXO以及前述脚本下锁定的共计l×x个比特币(简称BTC)的唯一输出。假设在ΔTE之前在区块链上确认了所述执行交易,尽管只有选择了最佳组合的工作节点才能成功执行所述程序,但是每个工作节点都可尝试执行所述程序。所述程序的成功执行可能涉及对所述执行交易中限制的数字资产进行转移或其他操作的能力。
在一实施例中,在t>ΔTR,如果没有工作节点执行所述程序(可能表示所述管理节点选择的组合与任何工作节点选择的组合都不匹配),则所述管理节点赎回所述工单限制的数字资产,以替代所述协议回退交易中所述管理节点转移的数字资产。此后不久,在t≥ΔTE,每个工作节点在所述协议回退交易中赎回x个BTC,从而对每个工作节点在工单中作为注册过程的一部分提供的数字资产的转移进行有效回退。
在一实施例中,一个工作节点(例如,工作节点Pi)成功执行所述程序,可用于转移数字资产的控制权并在解锁所述脚本时揭示两个私钥(ki和yi)。然后,所述管理节点获知l个私钥中的一个,即,yi,从而可以在所述协议回退交易中解锁所述脚本,有效转移l个输出的数字资产的控制权。
在一实施例中,根据所述协议,l个工作节点以区块链交易的形式提交工单,其中,每个交易都有输出,如果作为计算机程序的一部分执行,则将数字资产的控制权转移到所述管理节点,所述工单包括对c个元素的组合进行编码的信息,所述c个元素的组合是工作节点从为给定任务(例如,执行程序)选择的N个元素的集合中选择出来的。所述执行交易的脚本锁定的构建使得在提供正确信息的情况下,最多只有一个工作节点可以将其赎回。
根据概率原理,一个工作节点被选中的机会由二项式系数的倒数给出:
例如,如在结合图2所考虑的例证中那样,给定N=9,c=3,则有84种可能的组合。因此,一个工作节点被选中的概率约为1.2%。
在一实施例中,将完整的元素集合给到每个工作节点,并允许每个工作节点从所述N个元素的集合中自由选择c个元素的任意组合。相应地,两个工作节点Pi和Pj(i≠j)选择相同组合的概率由以下公式给出:
例如,如在各种实施例中考虑的例证中那样,给定N=9,c=3,则两个工作节点选择相同组合的概率约为0.01%。
相应地,两个或以上工作节点选择相同组合的概率由以下公式给出:
其中,前导项是两个工作节点选择相同组合的概率。
在一实施例中,选择参数(N,c)和n(每轮的最大工作节点数),使得P(ci={cj},i≠j)保持在阈值概率以下,以确保两个或以上工作节点选择相同组合的概率微乎其微。
图7示出了计算环境700,其中,管理节点702生成协议回退交易704,用于根据协议从多个工作节点中无偏地选择一个工作节点执行任务(例如,执行程序)。在一实施例中,所述管理节点702在时刻TC接收/观察到区块链上l个工单的确认后,收集包括在所述工单的赎回脚本中的l个公钥对{Ri,Ti}。由于所述管理节点702在构建Ri=Qi+Vi=(ki+ci)×G时并不知道工作节点Pi选择的公钥/私钥对(Qi,ki),所述管理节点702无法推断ci,因此无法获知所述工作节点选择的组合。
所述工作节点选择最佳组合并建立所述执行交易之前,所述管理节点可以向工作节点保证其将遵循所述协议。实际上,在ΔTS中的某个时间点之后,所述管理节点能够转移所述工单i∈[1,l]中的所述工作节点承诺的数字资产的控制权。此时,所述管理节点可以简单地“窃取”所述数字资产并提前终止所述协议。在一些实施例中,为了向工作节点保证所述管理节点的诚实性,所述管理节点创建协议回退交易,将数字资产的控制权转移到l个不同的P2SH地址,从而使每个工作节点都有一个时间窗口,在所述管理节点未提交所述执行交易的情况下追回所述数字资产。在一实施例中,所述协议回退交易的一个或多个输入包括数字资产(例如,其值等于或基于所述工单中所述工作节点转移到所述管理节点的数字资产),可用于转移所述管理节点控制的数字资产的控制权。
#检查输入格式是“sig sig 1”(管理节点的选项)还是“sig PubKey 2”(工作节点的选项)
以上代码可视为锁定脚本的各种实现方式中的一种,其中有两个执行路径:管理节点选项和工作节点选项。在一实施例中,可以通过提供两个输入解锁管理节点选项的执行,其中,所述两个输入为所述交易关联的签名和两个公钥:公钥D和所述工作节点生成的任意公钥Ti,i∈[1,l]。在一实施例中,经过一定时间ΔTE后,可以使用以下两个输入解锁工作节点选项的执行:与所述交易和公钥Ti相关联的签名以及所述公钥Ti本身。
在一实施例中,如图7所示,所述脚本包括多重签名子脚本。各种区块链网络的上下文中可能包括多重签名输出中允许的最大数量的公钥。为了在可能需要检查更多公钥(例如,工作节点的数量超过多重签名操作码支持的最大密钥数量)的情况下扩展脚本,所述管理节点可构建包含嵌入if-else语句中的几个多重签名脚本的锁定脚本、创建几个协议回退交易等等。
两个选项都需要两个输入,因此使用第三输入来区分这两个执行路径:1表示管理节点选项,2(或任何其他数字)表示工作节点选项。为了生成与交易和公钥相关联的签名,用户必须知道所述公钥关联的私钥。尽管所述管理节点可以在知道工作节点Pi给定的公钥Ti的情况下构建这样的脚本,但是所述管理节点最初在不知道Ti关联的私钥yi的情况下无法解锁所述脚本。另一方面,所述工作节点Pi可以在一定时间ΔTE之后解锁此脚本。
因此,在一实施例中,所述协议中为所述管理节点留了一个时间窗口[ΔTS,ΔTE],用于创建所述执行交易并见证其在区块链上的确认。在各种实施例中,所述窗口的时长可基于各种因素进行选择,例如,估计或预期的将交易确认到特定区块链网络所需要的时间。
图8示出了实施例提供的提交工单(也称为工单或交易请求)以加入成员群的过程800的说明性示例。所述过程800(或本文所述的任何其他过程,或其变形和/或组合)的部分或全部可在配置有计算机可执行指令的一个或多个计算机***的控制下执行,并可以硬件、软件或两者结合的形式实现为在一个或多个处理器上共同执行的代码(例如,计算机可执行指令、一个或多个计算机程序或一个或多个应用程序)。如本公开所述,例如,如结合图1所述,所述过程800可以由工作节点执行。所述代码可以计算机程序等形式存储在计算机可读存储介质上,所述计算机程序包括多个可由一个或多个处理器执行的计算机可读指令。所述计算机可读存储介质可以是非瞬时性计算机可读介质。在一些实施例中,至少一些可用于执行所述过程800的计算机可读指令不仅仅是用瞬时性信号(例如,传播的瞬态电或电磁传输)来存储的。非瞬时性计算机可读介质可以在瞬时性信号的收发器内包含非瞬时性数据存储电路(例如,缓冲器、高速缓存和队列)。
所述***可提交(802)加入成员群的请求。所述请求可提交给管理节点,所述管理节点协调所述成员群中的多个工作节点之间的任务(例如,执行程序)分配。在一实施例中,所述管理节点(例如,通过区块链网络或其他任何适当的机制)广播以下内容:所述管理节点正在接受加入成员群的请求,并且可以包括附加信息,例如,注册期限和注册关闭前可加入所述成员群的工作节点的最大数量(在某些实施例中,所述附加信息会加速所述协议的实施)。
在一实施例中,所述***接收(804)来自所述管理节点的陷门信息s和公钥D,其中,所述管理节点协调工作节点的隶属关系注册。在一实施例中,所述管理节点使用本公开其他地方所述的技术(例如,结合图2所述的技术)生成所述陷门信息s和公钥D。
所述***可接收(806,与步骤804分开或共同执行)累加树的参数集合。加密累加器可用于在哈希表中提供数据存储并进行成员身份验证。在一实施例中,群成员注册中的一个或多个工作节点使用的加密累加器是静态双线性映射累加器。在一实施例中,G1,G2是生成元为g1,g2、同构关系为φ:G2→G1的素数阶p的循环乘法群,使得φ(g2)=g1。在一实施例中,所述参数集合包括:N个元素的集合{e1,…,eN};群生成元g;元素数量c,其中1<c<N;以及所述集合中元素的数量N。
在一实施例中,所述***通过从所述元素集合中给定的N个元素中选择c个元素的组合并构建表示所选的c个元素的局部摘要来构建(808)公钥,并获取至少部分基于局部和全局摘要计算出的椭圆曲线上的点Ψ。在一实施例中,所述工作节点Pi使用抗碰撞的哈希函数h:计算新数ci,即,所述点Ψi的哈希值:ci=h(Ψi)。在一实施例中,所述数值ci被视为与公钥Vi相关联的私钥,其中,Vi=ci×G,G是所述椭圆曲线的生成点(g=G)。给定所述椭圆曲线的同态属性,则所述工作节点Pi计算新的公钥Ri,所述公钥由下式给出:
Ri=Qi+Vi=ri×G
其中,ri=ki+ci是所述公钥Ri关联的私钥。
在一实施例中,所述***生成第二公钥Ti=yi×G,其中,G是所述椭圆曲线的生成元(g=G),两个私钥ki和yi验证以下关系:ki=yimod z,其中z是所述管理节点选择的可公开使用的大数。在一实施例中,所述***广播(810)工单请求,包括转移数字资产控制权的输入(例如,由所述工作节点指定为参数)以及包含Ri和Ti的交易输出。所述工单可与结合图2所述的工单一致。在一实施例中,工作节点可提交使用不同组合生成的多个工单。
图9示出了至少一个实施例提供的在多个工作节点之间进行工作项(例如,执行程序)的无偏分配的过程900的说明性示例。在某些情况下,所述过程900至少部分由结合图1-7所述的管理节点来执行。
在一实施例中,所述管理节点以发布或其他方式使请求工作节点注册为群成员的指示公开可用。可以从群成员中选择工作节点执行各种任务,例如,执行计算机程序。在一实施例中,提交工单请求的任何工作节点都可以加入群成员并被选定执行任务。在一实施例中,提交工单请求包括数字资产的转移(例如,数字资产的控制权从工作节点转移到所述管理节点)。
所述***可以在预定的时间段内和/或接收到最大数量的工作节点和/或工单之前才开放群成员注册。
在一实施例中,所述***接收(902)加入群成员的请求。在一实施例中,所述请求包括所述群关联的标识符(例如,所述管理节点正同时协调跨多个群成员的工作项执行)。如上所述,所述***可以提供(904)陷门信息s和公钥D。所述***还可以提供(906)参数集合,包括:N个元素的集合{e1,…,eN};群生成元g;c个元素,其中,1<c<N;以及所述集合中元素的数量N。工作节点可用所提供的信息生成累加树。
所述***可在另一个时间点接收工单请求,包括特定节点正在进行注册以加入成员群并希望被选定执行任务(例如,执行计算机程序)的指示。在一实施例中,每个工单请求包括针对工作节点Pi的数值Ri和Ti。在某些情况下,所述工单包括从所述工作节点到所述管理节点的数字资产转移。在一实施例中,所述管理节点检查是否(908)已达到最大工作节点数。最大工作节点数可以至少部分基于各种参数进行选择,其中,对所述参数进行调整使得任意两个工单包含重复数值(例如,两个工单中选择的相同组合)的概率低于某个阈值概率。在一实施例中,定期发布和/或更新最大工作节点数和/或注册节点数。
所述***还可以检查(910)注册窗口是否已关闭。所述注册窗口可以是指示何时选择节点执行任务的时间。在某些情况下,例如,当群成员已满时,可以在最初确定的注册截止日期之前关闭所述注册窗口(例如,所述截止日期仅仅是所述协议要进入工作节点选择阶段的最新时间)。在一实施例中,可以以并行或非确定性的顺序确定是否已达到最大工作节点数以及注册窗口是否已关闭。
在确定所述注册阶段已结束之后(例如,因为所述注册窗口已超时或已经注册了最大数量的节点),所述***可进入选择阶段,选择工作节点执行计算任务(例如,执行计算机程序)。所述***可创建(912)协议回退交易并将其广播到区块链,如图7所示。在一些实施例中,所述协议回退交易必须在特定时间ΔTS之前进行广播,否则会回退所述工单请求(例如,通过执行所述工单中包含的指令,其中,所述指令可在规定时间ΔTS之后执行以回退操作,例如,通过将数字资产转移回工作节点对数字资产转移进行回退)。需要说明的是,在一些实施例中,例如,在所述管理节点的操作中存在附加信任约束的计算环境中,不需要所述协议回退交易。例如,如果所述管理节点是由政府或其他此类组织操作或控制的,则工作节点可以充分相信政府将根据所述协议进行操作和/或有链下补救措施,如果政府未遵循所述协议,则会强制执行所述补救措施。
在一实施例中,根据结合图4-6所述的技术创建(914)执行交易并对其进行广播。所述工作节点可在时间窗口[ΔTS,ΔTE]内创建所述执行交易。作为此过程的一部分,所述***可从N个元素中随机选择c个元素。需要说明的是,在一实施例中,由于所述***缺乏可用于推导各工作节点选择的数值以验证所述***选择的组合是否与任何其他工作节点选择的组合相匹配的附加知识,所述***只能抽取c个元素的无偏组合。在一实施例中,所述执行交易包括工作项。在一实施例中,所述工作项是计算机程序的至少一部分,所述计算机程序可由选择并提交带有相同组合的工单请求的群成员中的工作节点来执行。一旦所述执行交易被广播到所述区块链网络,工作节点就可以尝试执行所述程序。
所述***可以在预定时间确定(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。。此外,除非另有说明或从上下文可以清楚地看出,否则短语“基于”是指“至少部分基于”而不是“仅基于”。
除非另有说明或与上下文明显矛盾,可以任何适当的顺序执行所述过程的操作。可在配置有可执行指令的一个或多个计算机***的控制下执行所述过程(或其变体和/或组合),并且可以将其以硬件、软件或两者结合的形式实现为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)。在一些实施例中,所述代码可以计算机程序等形式存储在计算机可读存储介质上,所述计算机程序包括多个可由一个或多个处理器执行的指令。在一些实施例中,所述计算机可读存储介质是非暂时性的。
本文提供的任何和所有例子或示例性语言(例如,“诸如”)的使用仅仅旨在更好地说明本发明的实施例,除非另有声明,否则不对本发明的范围构成限制。说明书中的任何语言都不应理解为表示任何未受权利要求保护的要素对本发明的实现至关重要。
本公开所述的实施例包括发明人已知的实施本发明的最佳模式。本领域普通技术人员阅读前述说明之后,所述实施例的变体将变得显而易见。发明人希望本领域技术人员适当利用这些变体,并且发明人期望本公开的实施例以不同于本文明确描述的方式实现。因此,只要适用法律允许,本发明包括所附权利要求中所列举的主题的所有修改形式和等同形式。此外,除非另有说明或与上下文明显矛盾,上述元素在其所有可能的变体中的任何组合都涵盖在本公开范围内。
本文引用的所有参考文献,包括出版物、专利申请和专利,均以引用的方式并入本文,如同每一参考文献均被单独地且明确指示为以引用方式并入并且全文进行陈述。
需要说明的是,上述实施例说明而不是限制本发明,本领域技术人员能够在不脱离所附权利要求定义的本发明范围的前提下设计出许多替代实施例。在相互不同的从属权利要求中记载某些措施这仅有的事实并不表示这些措施的组合不能被有利地使用。
Claims (15)
1.一种计算机实现的方法,包括:
检测到区块链上的多个交易满足条件,其中,所述多个交易包括与第一公钥和第二公钥相对应的第一交易,所述第一公钥对分层数据结构的第一元素集合进行编码;
基于所述分层数据结构的第二元素集合生成第三公钥;
至少部分基于所述第一公钥、所述第二公钥和所述第三公钥生成第二交易,其中,所述第二交易对至少部分计算任务进行编码;以及,
取决于与所述第二元素集合相匹配的第一元素集合,至少通过验证所述区块链的节点能够访问第一私钥和第二私钥使所述节点执行所述计算任务,其中,所述第一私钥和所述第一公钥形成第一密钥对,且所述第二私钥和所述第二公钥形成第二密钥对。
2.根据权利要求1所述的方法,其中,所述验证所述节点能够访问所述第一私钥和所述第二私钥包括:验证所述第一私钥和所述第二私钥满足模数关系。
3.根据前述任一项权利要求所述的方法,其中,所述第一公钥、所述第二公钥和所述第三公钥是椭圆曲线上的点。
4.根据前述任一项权利要求所述的方法,进一步包括提供可用于确定所述分层数据结构的结构的参数集合。
5.根据前述任一项权利要求所述的方法,其中,所述分层数据结构是双线性映射累加树。
6.根据前述任一项权利要求所述的方法,其中,所述条件是经过阈值时间,其中,所述参数集合指示所述阈值时间。
7.根据前述任一项权利要求所述的方法,其中,所述条件是所述多个交易达到最大阈值数量。
8.根据前述任一项权利要求所述的方法,其中:
所述分层数据结构是累加树;以及,
至少部分基于所述多个交易中的两个或以上交易对同一元素集合进行编码的概率来共同确定所述累加树的叶节点数量、所述第一元素集合中的元素数量和所述最大阈值数量。
9.根据前述任一项权利要求所述的方法,其中:
所述第二交易限制一个数字资产集合,其中,至少部分基于所述多个交易中的每个交易所限制的数字资产确定所述数字资产集合;以及,
如果所述计算任务被执行,则转移至少部分所述数字资产集合的控制权。
10.根据前述任一项权利要求所述的方法,还包括:基于检测到满足所述条件,广播一个保证以生成所述第二交易,其中,所述保证基于所述多个交易中的每个交易所限制的数字资产来限制第二数字资产集合。
11.根据前述任一项权利要求所述的方法,其中,通过所述区块链的不同节点将所述多个交易中的交易广播到所述区块链。
12.根据前述任一项权利要求所述的方法,其中,通过所述区块链的一个节点将所述多个交易中的至少两个交易广播到所述区块链。
13.根据前述任一项权利要求所述的方法,其中,所述计算任务将要在规定的时间段内执行。
14.一种***,包括:
处理器;和
存储器,包括可执行指令,其中,在所述处理器执行所述可执行指令时,使得所述***执行根据权利要求1至13中任一项所述的计算机实现的方法。
15.一种非暂时性计算机可读存储介质,其上存储有可执行指令,在计算机***的处理器执行所述可执行指令时,使得所述计算机***至少执行根据权利要求1至13中任一项所述的计算机实现的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1811672.3 | 2018-07-17 | ||
GBGB1811672.3A GB201811672D0 (en) | 2018-07-17 | 2018-07-17 | Computer-implemented system and method |
PCT/IB2019/055800 WO2020016700A1 (en) | 2018-07-17 | 2019-07-08 | Computer-implemented systems and methods for an accumulator-based protocol for the distribution of tasks across a computer network |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112567706A true CN112567706A (zh) | 2021-03-26 |
Family
ID=63273277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980048046.1A Pending CN112567706A (zh) | 2018-07-17 | 2019-07-08 | 用于跨计算机网络任务分配的基于累加器协议的计算机实现的***和方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11831761B2 (zh) |
EP (2) | EP3824610B1 (zh) |
JP (2) | JP7417583B2 (zh) |
CN (1) | CN112567706A (zh) |
GB (1) | GB201811672D0 (zh) |
WO (1) | WO2020016700A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110443614B (zh) * | 2018-09-07 | 2021-04-09 | 腾讯科技(深圳)有限公司 | 节点设备删除方法、装置、计算机设备及存储介质 |
CN110517029B (zh) * | 2019-08-29 | 2024-02-23 | 深圳市迅雷网络技术有限公司 | 区块链跨链交易验证的方法、装置、设备及区块链*** |
CN111754229A (zh) * | 2020-06-23 | 2020-10-09 | 杭州时戳信息科技有限公司 | 数字货币兑换方法、装置、存储介质及计算设备 |
US11803416B1 (en) * | 2020-12-16 | 2023-10-31 | Wells Fargo Bank, N.A. | Selection and management of devices for performing tasks within a distributed computing system |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106100981A (zh) * | 2016-08-22 | 2016-11-09 | 布比(北京)网络技术有限公司 | 社交网络数据交互方法及装置 |
CN106788987A (zh) * | 2016-11-28 | 2017-05-31 | 树读(上海)信息科技有限公司 | 一种基于区块链的征信数据共享与交易*** |
CN106899698A (zh) * | 2017-04-11 | 2017-06-27 | 张铮文 | 一种区块链之间的跨链互操作方法 |
CA3014752A1 (en) * | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | System and method for controlling asset-related actions via a blockchain |
CN107360156A (zh) * | 2017-07-10 | 2017-11-17 | 广东工业大学 | 一种大数据环境下基于区块链的p2p网络云端存储方法 |
US9900160B1 (en) * | 2015-12-03 | 2018-02-20 | Amazon Technologies, Inc. | Asymmetric session credentials |
DE202015009562U1 (de) * | 2015-03-27 | 2018-04-30 | Black Gold Coin, Inc. | System zur persönlichen Identifizierung und Verifizierung |
CN109074579A (zh) * | 2016-02-23 | 2018-12-21 | 区块链控股有限公司 | 使用分布式散列表和区块链保护计算机软件的方法及*** |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010024931A1 (en) | 2008-08-29 | 2010-03-04 | Brown University | Cryptographic accumulators for authenticated hash tables |
EP2249282A1 (en) * | 2009-05-07 | 2010-11-10 | Sap Ag | A method and a system for a secure execution of workflow tasks of a workflow in a decentralized workflow system |
US20160379212A1 (en) | 2015-06-26 | 2016-12-29 | Intel Corporation | System, apparatus and method for performing cryptographic operations in a trusted execution environment |
US10652319B2 (en) * | 2015-12-16 | 2020-05-12 | Dell Products L.P. | Method and system for forming compute clusters using block chains |
JP6672889B2 (ja) | 2016-02-29 | 2020-03-25 | 日本電気株式会社 | 電子抽選システム及び電子抽選方法 |
CN107145768B (zh) * | 2016-03-01 | 2021-02-12 | 华为技术有限公司 | 版权管理方法和*** |
SG11201808657TA (en) * | 2016-04-01 | 2018-10-30 | Jpmorgan Chase Bank Na | Systems and methods for providing data privacy in a private distributed ledger |
WO2017192837A1 (en) | 2016-05-04 | 2017-11-09 | Silvio Micali | Distributed transaction propagation and verification system |
US10862959B2 (en) * | 2016-11-28 | 2020-12-08 | Keir Finlow-Bates | Consensus system and method for adding data to a blockchain |
US10841372B1 (en) * | 2018-01-11 | 2020-11-17 | Hoot Live, Inc. | Systems and methods for performing useful commissioned work using distributed networks |
-
2018
- 2018-07-17 GB GBGB1811672.3A patent/GB201811672D0/en not_active Ceased
-
2019
- 2019-07-08 CN CN201980048046.1A patent/CN112567706A/zh active Pending
- 2019-07-08 EP EP19740081.5A patent/EP3824610B1/en active Active
- 2019-07-08 WO PCT/IB2019/055800 patent/WO2020016700A1/en unknown
- 2019-07-08 EP EP24159756.6A patent/EP4383646A3/en active Pending
- 2019-07-08 JP JP2021500695A patent/JP7417583B2/ja active Active
- 2019-07-08 US US17/260,915 patent/US11831761B2/en active Active
-
2023
- 2023-10-20 US US18/382,348 patent/US20240137212A1/en active Pending
-
2024
- 2024-01-05 JP JP2024000385A patent/JP2024029184A/ja active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE202015009562U1 (de) * | 2015-03-27 | 2018-04-30 | Black Gold Coin, Inc. | System zur persönlichen Identifizierung und Verifizierung |
US9900160B1 (en) * | 2015-12-03 | 2018-02-20 | Amazon Technologies, Inc. | Asymmetric session credentials |
CA3014752A1 (en) * | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | System and method for controlling asset-related actions via a blockchain |
WO2017145007A1 (en) * | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | System and method for controlling asset-related actions via a blockchain |
CN109074579A (zh) * | 2016-02-23 | 2018-12-21 | 区块链控股有限公司 | 使用分布式散列表和区块链保护计算机软件的方法及*** |
CN106100981A (zh) * | 2016-08-22 | 2016-11-09 | 布比(北京)网络技术有限公司 | 社交网络数据交互方法及装置 |
CN106788987A (zh) * | 2016-11-28 | 2017-05-31 | 树读(上海)信息科技有限公司 | 一种基于区块链的征信数据共享与交易*** |
CN106899698A (zh) * | 2017-04-11 | 2017-06-27 | 张铮文 | 一种区块链之间的跨链互操作方法 |
CN107360156A (zh) * | 2017-07-10 | 2017-11-17 | 广东工业大学 | 一种大数据环境下基于区块链的p2p网络云端存储方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2024029184A (ja) | 2024-03-05 |
WO2020016700A1 (en) | 2020-01-23 |
EP4383646A2 (en) | 2024-06-12 |
US11831761B2 (en) | 2023-11-28 |
US20210336776A1 (en) | 2021-10-28 |
GB201811672D0 (en) | 2018-08-29 |
EP4383646A3 (en) | 2024-07-17 |
JP7417583B2 (ja) | 2024-01-18 |
EP3824610A1 (en) | 2021-05-26 |
US20240137212A1 (en) | 2024-04-25 |
JP2021530173A (ja) | 2021-11-04 |
EP3824610B1 (en) | 2024-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11388010B2 (en) | Blockchain account migration | |
US11917051B2 (en) | Systems and methods for storage, generation and verification of tokens used to control access to a resource | |
TWI782970B (zh) | 基於未判定資料保證區塊鏈交易的安全之電腦實施方法、電子裝置及電腦可讀儲存媒體 | |
CN108924092B (zh) | 基于区块链的可公开仲裁分布式云存储方法及*** | |
US20210192498A1 (en) | Random number generation in a blockchain | |
Jin et al. | Dynamic and public auditing with fair arbitration for cloud data | |
EP3031169B1 (en) | Document verification with id augmentation | |
CN112567706A (zh) | 用于跨计算机网络任务分配的基于累加器协议的计算机实现的***和方法 | |
CN111316615A (zh) | 使用调解器计算机***确保计算机程序正确执行的***和方法 | |
CN111466098B (zh) | 用于盲性结果选择的区块链实现的安全***和方法 | |
Brunner et al. | SPROOF: A Platform for Issuing and Verifying Documents in a Public Blockchain. | |
JP2023503607A (ja) | 自動デジタル証明書検証のための方法およびデバイス | |
Ibor et al. | A conceptual framework for augmenting the security of digitized academic records in Nigerian tertiary institutions using blockchain technology | |
Varfolomeev et al. | Blockchain Based Cloud Authentication Framework for Digital Identity Management in Smart City |
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 |