CN110800250B - 受控加密私钥的发布 - Google Patents

受控加密私钥的发布 Download PDF

Info

Publication number
CN110800250B
CN110800250B CN201880042749.9A CN201880042749A CN110800250B CN 110800250 B CN110800250 B CN 110800250B CN 201880042749 A CN201880042749 A CN 201880042749A CN 110800250 B CN110800250 B CN 110800250B
Authority
CN
China
Prior art keywords
group
private key
nodes
encrypted
node
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.)
Active
Application number
CN201880042749.9A
Other languages
English (en)
Other versions
CN110800250A (zh
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
Priority to CN202311055883.1A priority Critical patent/CN117544296A/zh
Publication of CN110800250A publication Critical patent/CN110800250A/zh
Application granted granted Critical
Publication of CN110800250B publication Critical patent/CN110800250B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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/32Cryptographic 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/321Cryptographic 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 involving a third party or a trusted authority
    • H04L9/3213Cryptographic 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 involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/32Cryptographic 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/3236Cryptographic 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
    • 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/32Cryptographic 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/3247Cryptographic 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 involving digital signatures
    • 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/32Cryptographic 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/3297Cryptographic 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 involving time stamps, e.g. generation of time stamps
    • 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)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)

Abstract

一种计算机实现的方法,包括:存储与一个群组的节点相关联的加密公钥,所述群组中的每个节点与私钥份额相关联,所述私钥份额与用于所述群组的门限私钥重建方案相关联,以允许从至少门限个所述私钥份额中确定与所述加密公钥相关联的加密私钥;迭代地获得由所述群组的多个节点提供的多个指示符,每个所述指示符代表加密私钥份额或虚拟信号之一;和通过迭代地进行以下操作来识别所述加密私钥:i)选择所述指示符的子集;ii)计算可能的共享秘密;和iii)根据所述加密公钥评估每个可能的共享秘密,以确定所述可能的共享秘密是否为所述加密私钥。本发明适于在区块链中实现。

Description

受控加密私钥的发布
技术领域
本发明主要涉及数据安全和加密技术,具体涉及与用于锁定数据或令牌(token)的公钥相关联的私钥的受控发布的方法和系统。本发明特别适用于,但不限于,保护数据,以仅在事件发生后允许解锁(用于访问和/或转移)这些数据。
背景技术
在本文中,使用术语“区块链(Blockchain)”来包括所有形式的电子的、基于计算机的分布式分类账(Distributed Ledgers),包括但不限于区块链和交易链技术、许可及未许可的分类账、共享分类账及其变型。虽然也已经提出并开发了其他区块链实施方案,但是区块链技术最广为人知的应用是比特币分类账(Bitcoin Ledger)。虽然出于方便和说明的目的,本文中涉及的是比特币(Bitcoin),但应当指出的是,本发明不限于与比特币区块链一起使用,其他的区块链实施方式和协议也落入本发明的范围内。
区块链是基于共识的电子分类账,该分类账被实现为由区块组成的基于计算机的去中心化的分布式系统,而区块由交易和其他信息组成。就比特币而言,每个交易是对区块链系统中参与者之间的数字资产的控制的转移进行编码的数据结构,并且包括至少一个输入和至少一个输出。每个区块包含前一区块的散列,如此,这些区块被链接在一起,以创建一个永久的、不可更改的所有交易的记录,这些交易自区块链诞生之始写入区块链。交易包含小程序,这些小程序称为脚本,嵌入至所述交易的输入和输出中,这些小程序指定了如何以及由谁来访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
为了将交易写入区块链,必须对该交易进行“验证(Validated)”。一些网络节点充当矿工,执行工作以确保每个交易有效,无效交易则被网络拒绝。例如,安装在所述节点上的软件客户端在引用未花费的交易输出(Unspent Transaction Outputs,简称UTXO)的交易上执行验证工作。可通过执行其锁定和解锁脚本来执行验证。如果锁定和解锁脚本的执行评估为真(TRUE),并且如果满足某些特定条件,则该交易有效,可将该交易写入区块链。因此,为了将交易写入区块链,该交易必须:i)由接收交易的节点进行验证——如果交易经验证通过,则该节点将该交易中继到网络中的其他节点;ii)添加到矿工建造的新区块中;iii)被挖掘,即添加到过去交易的公共分类帐中。当向区块链添加足够数量的区块以使交易实际上不可逆转时,交易被视为已确认。
尽管区块链技术以使用加密货币实现而闻名,但数字企业家已经开始探索使用比特币所基于的加密安全系统和可存储在区块链上的数据来实现新系统。如果区块链能够用于自动化任务和流程,而不仅仅局限于以加密货币计价的支付,那么将是非常有利的。这类解决方案将能够利用区块链的优势(例如,事件的永久防篡改记录、分布式处理等),同时在所述解决方案的应用中更具通用性。
因此,需要用于通过区块链技术提供附加过程和特征的改进技术。
发明内容
本发明在所附权利要求中定义。
因此,根据本发明,提供了如所附权利要求中定义的方法。
如下所述,请求者节点可以发出监控请求,以请求多个其他节点形成群组。监控请求可以是对节点形成群组并监控事件的请求。群组的节点可以用于彼此协作来执行两次无可信中心的秘密共享协议(dealer-free secret sharing protocol),以生成两个共享秘密——加密私钥和群组权益私钥。节点可以持有与这些私钥相关联的私钥份额,并且可以根据门限方案获得私钥份额,在该门限方案中,可以从至少门限个相关联的私钥份额重建完整私钥。群组的节点可以相互协作,以生成加密公钥并将其提供给另一个节点(如请求者节点)。群组的节点可以监控事件,并且当检测到该事件时,发布与加密私钥相关联的私钥份额。该事件可以是预先确定或指定事件。
有利地,具有加密公钥的节点可以向数据或令牌添加“事件锁定”,以限制对此类数据或令牌的访问或控制,直到事件发生。因此,本文描述的技术可用于保护数据或令牌(如网络资源或其他数字资产/资源),使得此类数据或令牌仅在事件发生时才可以被解锁。举例来说,因为只可以在检测到事件时门限个相关联的私钥份额被发布之后获得加密私钥,所以使用加密公钥加密的数据仅可以在事件发生之后解密。此类安全技术可以用于(仅举例)遗产规划(例如,使得遗嘱的内容仅在遗嘱人去世后确定)、商业安全或公布敏感信息中的禁令和“死人开关(dead man switches)”。应当理解的是,除了本文所述的应用之外,此类数据安全技术对于其他应用可能有用。
因此,根据本发明,可以提供一种计算机实现的方法。所述计算机实现的方法可以包括:存储与一个群组的节点相关联的加密公钥,所述群组中的每个节点与私钥份额相关联,所述私钥份额与所述群组的门限私钥重建方案相关联,以允许从至少门限个所述私钥份额的中确定与所述加密公钥相关联的加密私钥;迭代地获得由所述群组的多个节点提供的多个指示符,每个所述指示符代表加密私钥份额或虚拟信号之一;和通过迭代地进行以下操作来识别所述加密私钥:i)选择所述指示符的子集;ii)计算可能的共享秘密;和iii)根据所述加密公钥评估每个可能的共享秘密,以确定所述可能的共享秘密是否为所述加密私钥。
在一些实现中,所述计算机实现的方法可以包括当所述可能的共享秘密被确定为所述加密私钥时,解密先前使用所述加密公钥加密的数据。
在一些实现中,所述计算机实现的方法可以包括当所述可能的共享秘密被确定为加密私钥时:基于所述加密私钥生成签名;以及将所述签名添加到交易的解锁脚本中,以解锁先前使用所述加密公钥留置的令牌。
在一些实现中,所述计算机实现的方法可以包括:识别在定义的机会窗口中提供表示所述加密私钥份额的指示符的群组的节点;以及合作地生成用于交易的有效签名以将一个或多个数字资产转移到一个或多个所述已识别的节点。在一些实现中,合作地生成用于所述交易的所述有效签名以将一个或多个所述数字资产转移到一个或多个所述已识别的节点可以包括合作地生成有效签名以分发由发出与事件相关联的监控请求的请求者提供的一个或多个令牌。
在一些实现中,所述计算机实现的方法可以包括:生成所述加密私钥份额之一;迭代地向所述群组的多个节点提供指示符,所述指示符包括:当预先确定的事件没有发生时,虚拟信号;和响应于检测到所述预先确定事件,所述加密私钥份额。在一些实现中,所述虚拟信号可以与所述私钥份额具有相同的长度。在一些实现中,所述计算机实现的方法可以包括随机生成所述虚拟信号。
在一些实现中,所述计算机实现的方法可以包括生成群组权益私钥份额,并且与所述群组的其他节点合作生成群组权益公钥,所述群组权益私钥份额允许控制至少门限个所述群组权益私钥份额的所述群组的节点的子集代表所述群组生成有效签名;和使用所述群组权益公钥留置令牌。在一些实现中,提供给所述群组的多个节点的指示符包括使用所述群组权益私钥生成的签名。
在一些实现中,所述计算机实现的方法可以包括:检测监控请求;和响应于检测到所述监控请求,发送加入所述群组的请求,并与所述群组的其他节点建立安全的通信通道。
在一些实现中,通过执行具有门限签名方案的门限的无信任中心的秘密共享协议来生成所述群组权益私钥份额。所述门限可以在所述监控请求中定义。
在一些实现中,所述计算机实现的方法可以包括:通过在多个指示符中提供相关联的私钥份额来确定所述群组的某一节点违反协议;以及响应于确定群组的某一节点违反所述协议,与所述群组的其他节点合作以没收这一违反协议的群组的节点的权益。
根据本发明,可以提供一种电子设备。所述电子设备可以包括接口设备、连接到所述接口设备的处理器以及连接到所述处理器的存储器。所述存储器可以在其上存储计算机可执行指令,所述计算机可执行指令在被执行时将所述处理器配置为执行本文所述的方法。
根据本发明,可以提供一种计算机可读存储介质。所述计算机可读存储介质可以包括计算机可执行指令,所述计算机可执行指令在被执行时将处理器配置为执行本文所述的方法。
附图说明
参考本文所述的实施例,本发明的这些和其他方面将变得清晰并得以阐明。现在将仅通过示例并参考附图来描述本发明的实施例,其中:
图1示出了示例区块链网络的框图。
图2示出了可以充当区块链网络中的节点的示例电子设备的框图。
图3示出了用于请求和使用事件锁定加密的示例方法的流程图。
图4示出了用于作为群组的节点参与事件锁定加密方案的示例方法的流程图。
图5示出了识别加密私钥的示例方法的流程图。
图6示出了在识别加密私钥的方法中真实信号的示例分发。
具体实施方式
区块链网络
首先参考图1,图1以框图形式示出了与区块链相关联的示例区块链网络100。区块链网络可以是公共区块链网络,所述网络是一个点对点的开放式成员网络,任何人都可以加入,无需邀请,无需经其他成员同意。运行区块链协议实例的分布式电子设备可以加入区块链网络100,区块链网络100在该区块链协议下运行。这种分布式电子设备可以称为节点102。例如,区块链协议可以是比特币协议。
运行区块链协议并形成区块链网络100的节点102的电子设备可以是各种类型的,包括例如计算机(如台式计算机、笔记本电脑、平板电脑、服务器)、移动设备(如智能手机)、可穿戴计算机(如智能手表)、或其他电子设备。
区块链网络100的节点102使用合适的通信技术彼此连接,所述通信技术可以包括有线和无线通信技术。这种通信遵循与区块链网络相关的协议。例如,在区块链是比特币区块链的情况下,可以使用比特币协议。
节点102维护区块链上所有交易的全局分类账。因此,所述全局分类账是分布式分类账。每个节点102可以存储全局分类账的完整副本或部分副本。对于通过工作量证明(Proof-of-Work)保护的区块链,节点102影响全局分类账的交易由其他节点102验证,从而保持全局分类账的有效性。当区块链是基于工作量证明的区块链时,也通过检查与区块一起提交的工作量证明来验证区块。
至少一些节点102充当区块链网络100的矿工104。图1的区块链网络100可以是工作量证明区块链,其中矿工104执行昂贵的计算以便有利于区块链上的交易。例如,工作量证明区块链可能要求矿工解决加密问题。在比特币中,矿工104找到随机数,使得区块头用SHA-256散列成小于由当前难度定义的值的数字。工作量证明算法所需的散列能力意味着,在交易的顶部挖掘出一定数量的区块后,该交易视为实际上不可逆的。解决加密问题的矿工104为区块链创建新区块,并将该新区块广播到其他节点102。其他节点102验证矿工104实际上已经解决了加密问题,因此,在接受该区块应该被添加到区块链之前已经展示了足够的工作量证明。可以通过节点102的共识将该区块添加到区块链(即,添加到分布式全局分类账)。
作为工作量证明的替代,区块链网络100可以替代为权益证明(Proof-of-Stake)区块链网络。权益证明区块链网络为达成共识提供了另一种机制。在权益证明区块链网络中,区块链由权益证明而非工作量证明来保护。在权益证明下,矿工存放数字资产的保证金,并且被选为挖掘区块的节点的概率与作为保证金提供的数字资产的数量成比例。权益证明区块链系统可用于避免在工作量证明区块链上进行挖掘所需的计算费用和精力。此外,与工作量证明区块链相比,权益证明区块链可以允许更高的频率和更规则的区块创建。
由矿工104创建的区块包括已经由节点102广播到区块链的交易。例如,该区块可以包括从与节点102中的一个相关联的地址到与节点102中的另一个相关联的地址的交易。通过这种方式,该区块充当从一个地址到另一个地址的交易的记录。请求将交易包括在区块中的一方通过使用对应于其公钥的私钥签署请求来证明其被授权发起转移(例如,就比特币而言,花费比特币)。只有有效地签署了请求,才能将转移添加到区块中。
就比特币而言,公钥和地址之间存在一对一的对应关系。也就是说,每个公钥都与一个地址相关联。因此,本文提到的向/从公钥转移数字资产(例如,向所述公钥支付)以及向/从与该公钥相关联的地址转移数字资产指的是相同的操作。
区块链网络中的一些节点102可以不充当矿工,可以作为验证节点参与。交易的验证可能涉及检查签名、确认对有效UTXO的引用等。
图1的示例包括五个节点102,其中两个作为矿工104参与。实际上,节点102或矿工104的数量可以不同。在许多区块链网络中,节点102和矿工104的数量可以远大于图1所示的数量。
如下所述,各种节点102可以合作形成节点的群组110。在所示的示例中,三个节点102被示为参加群组110。然而,群组110成员的实际数量可能要大得多。
群组110可以是开放式成员群组,当向与群组110相关联的池提交足够的权益时,任何节点102都可以加入该开放式成员群组。例如,节点可以通过转移令牌(如网络资源或数字资产)到与群组110相关联的账户(例如,到群组公共地址或群组权益公钥)来加入群组。加入群组的节点102可以是区块链网络中的任何节点,包括挖掘和非挖掘节点。
群组110可用于响应于事件的发生而协作地发布对应于加密公钥的加密私钥。所述事件可以是例如基于网络的事件(例如,在区块链网络、互联网或另一网络上可观察到的事件)。该事件可以是真实世界的事件(即,最初发生在网络外部的事件,例如,该事件可以已经被报告,使得其在网络上是可检测的)。
作为节点运行的电子设备
图2示出了示例电子设备200的组件的框图,该示例电子设备200可以用作点对点区块链网络100(图1)中的节点102(图1)。示例电子设备200也可称为处理设备。电子设备可以采取各种形式,包括例如台式计算机、笔记本电脑、平板电脑、服务器、移动设备(如智能手机)、可穿戴计算机(如智能手表)或另一种形式。
电子设备200包括处理器210、存储器220和接口设备230。这些组件可以直接或间接地彼此连接,并且可以彼此通信。例如,处理器210、存储器220和接口设备230可以经由总线240彼此通信。存储器220存储计算机软件程序,该程序包括用于执行本文所述功能的机器可读指令和数据。例如,存储器可以包括处理器可执行指令,该处理器可执行指令在由处理器210执行时,使得电子设备执行本文所述的方法。处理器可执行指令可以包括当由处理器210执行时,使得电子设备实现与区块链网络100(图1)相关联的协议。例如,指令可以包括用于实现比特币协议的指令。处理器210可以是中央处理器(Central Processing Unit,简称CPU)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)或另一种类型的处理器。
存储器220可以存储区块链网络100(图1)的全局分类账或其一部分。也就是说,存储器220可以存储区块链的所有区块或区块的一部分,例如最新的区块,或者一些区块中的信息的一部分。
虽然存储器220在图2中用单个框示出,但是实际上电子设备200可以包括多个存储器组件。存储器组件可以是各种类型,包括例如随机存取存储器(RAM)、硬盘驱动器(HDD)、固态硬盘(SSD)、闪存驱动器(Flash Drive)等。不同类型的存储器可以适合于不同的目的。此外,虽然存储器220与处理器210分开示出,但是处理器210可以包括嵌入式存储器。
电子设备200充当区块链网络100(图1)中的节点102(图1)。一些节点可以加入或者参加群组110(图1)。当一组令牌持有人汇集令牌或区块链网络100(图1)支持的其他数字资产时,形成群组110。例如,该群组可以协同行动以实现监控请求。更具体地,该群组可以用于当确定已经发生与监控请求相关联的事件时有效地发布加密私钥。可以在事件发生之前使用加密公钥来加密数据或保留一个或多个令牌。因此,可以提供事件锁定,使得将加密锁定放置在数据或令牌上,以防止在事件发生之前解锁这一数据或令牌,但是允许在事件发生之后解锁所述数据或令牌。
一些节点可以作为群组110的成员参与区块链网络。其他节点不能作为群组成员参加。相反,这样的节点可以充当一个或多个矿工或验证者,或者可以提供与区块链网络相关联的其他功能。
如下所述,加入群组110的节点可以充当监控节点,并且可以监控事件的发生。当节点确定事件已经发生时,该节点发布与加密公钥份额相关的加密私钥份额。群组110中的每个节点与单独的加密私钥份额相关联,并且门限数量的这种密钥份额可以用于重建对应于加密公钥的加密私钥。因此,当足够数量的节点已经发布了它们各自的加密私钥份额时,可以获得加密私钥。
为了维护每个监控节点的独立性,监控节点可以以一定间隔迭代地向其他监控节点(即,向群组中的其他节点)提供指示符,并且所述指示符可以表示加密私钥份额或虚拟信号之一。更具体地,节点可以在每个信令间隔包括虚拟信号,直到该节点确定事件已经发生。当确定事件已经发生时,节点可以向其他节点提供表示加密私钥份额的指示符。虚拟信号可以被配置为在格式上类似于加密私钥份额(例如,与私钥份额具有相同的长度),使得其他节点不能仅根据单个指示符确定该指示符代表虚拟信号还是加密私钥份额。但是,监控节点可以不断尝试识别对应于加密公钥的加密私钥是否可以根据指示符来确定。例如,监控节点可以重复选择指示符的子集,并且可以从该指示符的子集计算可能的共享秘密。然后,监控节点可以对照加密公钥评估可能的共享秘密,以确定可能的共享秘密实际上是否是加密私钥。也就是说,可以基于监控节点提供的指示符来执行搜索,以识别加密私钥。当提供了门限数量的加密私钥份额时,由于在生成加密私钥份额中使用的门限方案,将有可能重建加密私钥。
请求事件锁定加密
现在参考图3,图3示出了用于请求和使用事件锁定加密的方法300。方法300可以由请求者节点(“请求者Requester”)来执行,该请求者节点可以是区块链网络的节点102。此类节点102可以包括存储在实现所述方法300的存储器220(图2)中的计算机可执行指令。当由处理器210(图2)执行此类指令时,使得节点102(如参考图2描述的类型的电子设备200)执行方法300。
在操作302,节点102发出监控请求。监控请求是对区块链网络的其他节点102提供事件锁定加密的请求。也就是说,监控请求是仅在事件发生之后对其他节点102释放私钥(可以称为加密私钥)的请求。如下所述,对应于该私钥的公钥(可以称为加密公钥)在事件发生之前由群组发布,以允许该公钥在事件发生之前用于加密数据或留置令牌。因此,监控请求是促进数字资产或网络资源安全的请求。
监控请求可以在区块链之外(即“链下Off Chain”)发出。例如,监控请求可以在可通过互联网访问的网络服务器上发布,或者在可通过另一网络(例如专用网络)访问的另一网络服务器上发布。举例来说,监控请求可以存储在可通过互联网访问的开放论坛中。
监控请求可以包括与该请求相关联的一个或多个参数。举例来说,监控请求可以详述与该请求相关联的事件,并且满足监控请求的群组的节点将监控该事件。该事件可以是例如基于网络的事件(例如,在区块链网络、互联网或另一网络上可观察到的事件)。该事件可以是真实世界的事件(即,最初发生在网络外部的事件,例如,该事件可能已经被报告,使得其可以在网络上是检测到)。举例来说,事件可以说在监控请求中识别的人去世时发生的。该事件可以是任何类型的事件,并且以某种方式被指定或预先确定,以便能够监控和/或检测事件的发生。例如,这种事件可以例如由用于自动监控在线新闻源、社交媒体或讣告或其他类型的数据源的节点来检测。该事件可以借助来自源的输入信号来检测。其他类型的事件也可以被指定。
监控请求还可以包括事件描述的散列或与事件描述的散列相关联。例如,散列可以是事件描述的SHA-256散列。作为进一步的示例,监控请求可以指定提供给满足监控请求的群组的令牌数量。令牌可以控制网络资源(例如由令牌表示的数字资产)。当令牌从网络(如区块链网络)的一个节点转移到另一个节点时,网络资源的控制权转移到接收节点。因此,监控请求可以指定请求方为完成监控请求而提供的网络资源(例如数字资产)的数量。
如下所述,节点可以通过向群组转移一个或多个令牌而成为参与实现监控请求的群组的成员。令牌作为“权益”,可以被群组的门限个的其他节点没收,作为对不遵守群组协议的惩罚。监控请求可指定加入群组所需的“权益”数量。也就是说,监控请求可以指定加入群组并有效地成为“监控节点”所需的权益,该节点承担通过监控由监控请求定义的事件来满足监控请求。
监控请求还可以定义群组的大小。也就是说,监控请求可以指定要包括在群组的节点数量。监控请求还可以定义与加密私钥的发布相关联的门限和/或群组节点之间的信令间隔。例如,间隔可以是与在群组的节点之间形成的事件链上的区块生成相关联的间隔。监控请求还可为机会窗口定义门限,以提交指示事件已发生的信号。如下所述,机会窗口的门限可以控制时间窗口,在该时间窗口期间,在指示符中提交的加密私钥份额将被认为已经正确地或准确地提交。在此机会窗口之前或之后共享的加密私钥份额可能被节点忽略。例如,在机会窗口之前或之后提交加密私钥份额的节点不符合请求者为换取请求的完成而提供的网络资源的份额。此外,为了减小搜索空间的大小,在搜索加密私钥期间,可以排除在机会窗口之前或之后提交的加密私钥份额。
因此,监控请求可以包括各种数据,包括以下任何一个或组合:1)事件描述;2)事件描述的散列;3)参与所需的权益数量;4)群组的大小;5)与门限方案相关联的门限;6)信令间隔;7)机会窗口的门限;或者8)为完成请求而提供的网络资源数量。
在操作304,请求者可以通过多个节点配合形成群组。更具体地,请求者可以响应于在操作302发出监控请求,从区块链网络中的多个节点接收参与请求。参与请求是将被添加到承担完成监控请求的群组中的请求。每个参与请求可以引用与所述参与请求相关联的节点打算提供的网络资源(例如令牌或其他数字资产)作为“权益”来加入该群组。例如,参与请求可以指定包含其权益的UTXOs的交易标识符。
当从足够数量的节点接收到有效的参与请求时(例如,如果参与请求的数量等于监控请求中指定的群组的大小,则参与请求的数量可以确定为足够,并且如果引用足够的令牌作为“权益”,则参与请求可以确定为有效),提交参与请求的节点在彼此之间建立安全的通信通道,并且共同执行两次无信任中心的秘密共享协议以生成两个共享秘密——加密私钥和群组权益私钥。每个节点拥有两个私钥份额——一个加密私钥份额和一个群组权益私钥份额。这两个私钥份额都是群组私钥份额,因为它们代表与群组110相关联的私钥份额。但是,加密私钥和群组权益私钥可以用于不同的目的。如下所述,群组权益私钥与留置该群组的令牌或其他数字资产的群组权益公钥相关联。这种令牌可以包括群组中每个成员为了加入群组而贡献的“权益”。加密私钥与加密公钥相关联,并且加密公钥可以用于加密数据或者用事件锁定来留置令牌。更具体地,由于该群组的节点在事件发生后合作发布加密私钥,因此加密公钥可用于加密数据或留置令牌或其他数字资产,以限制对此类数据/令牌的控制,直到事件发生。
下面将参考图4,描述用于获得加密私钥份额、加密公钥、群组权益私钥份额和群权益公钥的技术。
在操作304期间,请求者从群组中的一个或多个节点(即,从提交有效参与请求并且参与加密公钥和群组权益公钥的生成的一个或多个节点)接收加密公钥和群组权益公钥。请求者创建交易,该交易包括作为输入的在每个参与请求中引用的令牌或其他数字资产(即,“权益”)以及请求者为完成请求而提供的令牌或其他数字资产。该交易使用群组权益公钥留置这些令牌或其他数字资产,使得需要对群组权益公钥有效的签名来解锁这些令牌。请求者可以签署该交易以解除请求者为完成请求而提供的令牌或其他数字资产上的过去的留置,并且可以将该交易提供给该群组的节点,使得每个节点可以添加签名以解除先前放置在各自节点的“权益”上的过去的留置。
可选地,请求者可以将加密公钥作为元数据包括在交易中,使得当交易被添加到区块链网络的区块链时,加密公钥对于区块链网络的其他节点是可见的,并且可以被这些节点用来对数据或令牌设置事件锁定。请求者还可以可选地将事件描述(或另一标识符)的散列作为元数据添加到交易中,以将交易与监控请求相关联。
交易由群组的每个节点(即,由提交有效参与请求并且参与加密公钥和该群组权益公钥的生成的一个或多个节点中的每一个)签署,然后由其中一个节点广播到区块链网络,使得可以将该交易添加到区块链(假设包括足够的挖掘费用并且假设该交易以其他方式验证)。
在操作306,请求者(或获得加密公钥的另一个节点)使用加密公钥来加密数据或留置令牌或其他数字资产。例如,通过将加密公钥放置在包括令牌或其他数字资产作为输入的交易的锁定脚本中可以留置所述令牌或其他数字资产。锁定脚本锁定令牌或其他数字资产,以便仅在签名对加密公钥有效时,才能解除锁定。例如,加密私钥可用于解除锁定(例如,通过使用加密私钥生成签名)。
与监控请求相关联的事件可以在操作306之后的某个时间发生,然后请求者可以在操作308从群组的一个或多个节点获得加密私钥。加密私钥可以例如通过区块链网络获得。例如,在该群组使用如下所述的技术重建加密私钥之后,加密私钥可以被添加到向区块链网络广播并添加到区块链的交易中。请求者(或需要加密私钥的另一个节点)可以监控区块链并从区块链获得加密私钥。
在操作310,请求者(或另一方)可以使用加密私钥来解密在操作306加密的数据,或者解除设置在令牌或其他数字资产上的留置。也就是说,在操作310,请求者可以使用加密私钥来解锁在操作306用加密公钥锁定的数据或令牌。
作为群组的节点参与
现在参考图4,图4示出了作为群组的节点参与事件锁定加密方案的方法400。方法400可以由区块链网络的节点102执行。根据方法400,节点与群组110中的其他节点合作。因此,该节点可称为群组节点或成员。这样的节点102可以包括存储在的存储器220(图2)中实现方法400的计算机可执行指令。当此类指令由处理器210(图2)执行时,使得节点102(例如参考图2描述的类型的电子设备200)执行方法400。
在操作402,节点102检测可能已经由请求者发出的监控请求。监控请求可以是上文参考图3的方法300的操作302描述的类型,并且可以在网络上检测到。
在操作404,响应于检测到监控请求,节点102向发出监控请求的请求者提供参与请求。也就是说,节点102发送加入将完成监控请求任务的群组的请求。参与请求可以如上述参考图3的方法300的操作304。例如,参与请求可以引用执行方法300的节点打算提供的网络资源(例如令牌)作为“权益”来加入该群组。例如,参与请求可以指定包含其权益的UTXOs的交易标识符。
在操作406,节点102与也提交参与请求的其他节点合作,以获得私钥份额和相应的公钥。更具体地,节点102与提交参与请求的其他节点合作。作为群组成员的这些节点彼此(例如,使用标准公钥加密系统或迪菲-赫尔曼(Diffie-Hellman)密钥交换)建立安全通信通道。然后,这些节点共同执行两次门限为Ct的无信任中心的秘密共享协议,以生成两个共享秘密:加密私钥和群组权益私钥。门限Ct是重建私钥和生成对与相应私钥之一的对应的公钥有效的签名所需的密钥份额的数量。门限Ct可以由请求者在监控请求中定义。
因此,在操作406,可以使用加密方法(其可以称为私钥重建方案),所述加密方法使得能够在多个参与者之间分配单个私钥,使得需要门限m/n个密钥(其中m是门限Ct)份额来重建私钥。少于m的数量的密钥份额不能生成私钥,也不能生成对与私钥相对应的公钥有效的签名。
可以在操作406使用的一种加密方法是沙米尔的秘密共享方案(Shamir’s SecretSharing Scheme,简称SSSS),该方案基于t次多项式可以适合于t+1个点的任何集合的概念。以共享私钥作为常数项(a0=f(0))形成t次多项式f(x),其余系数随机选取。曲线上的n个点被赋予每个节点。如果m=t+1或更多的节点(可以称为参与者)组合它们的点,则有足够的信息来将t阶多项式拟合到这些点,并且a0揭示秘密。该方案能够在任意数量的具有任意门限的多方之间共享单个私钥。
可以扩展标准SSSS以消除受信中心创建多项式和分发秘密份额(这是单点故障,因此不是无信任的)的要求。在该无信任中心的SSSS中,每个参与者Pi生成其自己的随机t次多项式fi(x),然后将fi(x)安全地发送给每个其他参与者Pj。每个Pi对所有接收到的点f1(i)+f2(i)+…+fn(i)进行求和,以获得它们的秘密份额si=f(i),即共享多项式f(x)上的点Pi
在创建秘密份额之后,对应于共享私钥(没有参与者知道)的公钥的计算如下(使用椭圆曲线生成器G):
参与者Pi(其中i=1,…,t+1)通过bisi×G计算公钥份额,其中bi是拉格朗日插值系数,可以确定为:
这些公钥份额(可以称为与群组权益私钥相关联的公钥份额的群组权益公钥份额,或者与加密公钥相关联的公钥份额的加密公钥份额)被广播到群组的其他节点,并且通过t+1个份额的总和来计算共享公钥A:
每个节点可以从公钥份额中独立地确定共享公钥。
上述加密方法可以执行两次——一次为了获得加密私钥份额和相关联的加密公钥,另一次为了获得群组权益私钥份额和相关联的群组权益公钥。
因此,在操作406,执行方法400的节点与其他节点合作,以获得并存储加密公钥和相关联的加密私钥份额,并且还获得并存储群组权益公钥和相关联的群组权益私钥份额。群组权益私钥份额允许控制至少门限个群组权益私钥份额的群组节点的子集代表群组生成有效签名,而加密私钥份额允许控制至少门限个加密私钥份额的群组节点的子集在此类节点检测到事件时发布加密私钥。
执行方法400的节点生成加密私钥份额和群组权益私钥份额,并且群组的每个节点与各自的群组权益私钥份额和加密私钥份额相关联。相应的公钥(即,群组权益公钥和加密公钥)与执行无信任中心的秘密共享协议的节点群组相关联。私钥份额与该群组的私钥重建方案相关联,以允许至少从的门限Ct个私钥份额确定私钥。例如,可以通过执行无信任中心的秘密共享协议来生成群组权益私钥份额,该协议具有可以在监控请求中定义的门限(用于门限签名方案,诸如椭圆曲线数字签名算法(Elliptic Curve Digital SignatureAlgorithm,简称ECDSA)门限签名方案),并且可以基于加密私钥份额类似地生成加密私钥。
在操作406期间,该节点可以存储该群组中每个其他节点的群组权益公钥份额。节点可以使用这些公钥份额来验证事件链上区块签名和承诺签名的签名,这将在下文中描述。
在操作408,向请求者提供加密公钥和群组权益公钥(两者均已由群组的节点独立验证)。如上文参考图3的方法300的操作304所述,请求者向该群组的节点提供交易以进行签名。该交易包括作为输入的在每个参与请求中引用的令牌或其他数字资产(即,“权益”)以及请求者为完成请求而提供的令牌或其他数字资产。该交易使用群组权益公钥留置这些令牌或其他数字资产。请求者可以签署该交易以解除请求者为完成请求而提供的令牌或其他数字资产上的过去的留置,并且可以将该交易提供给该群组的节点,使得每个节点可以添加签名以解除先前放置在各自节点的“权益”上的过去的留置。
在操作410,节点可以接收交易并添加签名,该签名解除在操作404提交的参与请求中引用的“权益”上的过去的留置。通过添加这样的签名,节点有效地留置了令牌或其他数字资产,该令牌或其他数字资产被提供为具有群组权益公钥的权益。
在群组中的所有节点都添加了各自的签名以解除其“权益”上过去的留置之后,该交易被广播到区块链网络。
在操作412,节点与群组中的其他节点合作来识别加密私钥,并且当群组的节点已经成功识别加密私钥时,至少一个节点准备交易,并且所述节点合作来(在操作414)生成交易的签名,该签名将“权益”返回给根据监控协议操作的节点,并且将请求者为完成请求而提供的令牌或其他数字资产分发给帮助完成请求的一个或多个节点。该签名是使用各自的群组权益私钥份额生成的,并且必须使用至少门限个群组权益私钥份额来生成有效签名。
在操作414,加密私钥被提供给请求者。例如,加密私钥可以作为元数据包含在交易中。
现在将参考图5描述用于合作地识别加密私钥的技术,图5示出了识别加密私钥的方法500。在图4的方法400的操作412中,这些技术由群组的节点与群组中的其他节点合作来执行。例如,执行图4的方法400的节点也可以执行图5的方法500。
在操作502,可以实例化事件链。事件链是一种暂时的区块链。更具体地,事件链是由节点的群组挖掘的权益证明区块链,而权益由该群组权益公钥留置。可以采用权益证明共识算法,例如,所述权益证明共识算法可以是西尔维奥·米卡里(Micali,Silvio)在《阿尔戈兰德:高效民主的分类账》(“Algorand:The efficient and democratic ledger.”arXiv preprint arXiv:1607.01341(2016))中描述的类型。事件链可以具有规则的区块创建时间、已加上时间戳的区块和低分叉概率。在区块链上的挖掘区块的区块奖励可以提供给事件链的矿工,并且可以作为请求者为完成请求而提供的令牌或其他数字资产的一部分。
事件链可以由群组的节点来配置,使得以请求者(例如,在监控请求中)指定的间隔生成区块。该间隔可以选择为小于请求者在事件之后对私钥发布所期望的等待时间。但是,较小的间隔比较大的间隔消耗更多的资源。
事件链可以使用第一区块(称为创始区块(Genesis Block))来实例化,该第一区块是空的,并且用实例化时间t0来标记时间戳。
执行方法500的节点可以执行多种功能,包括例如:1)监控事件和信令;以及2)搜索加密私钥。
在操作504,节点监控与监控请求相关联的事件,并基于监控向其他节点发信号。举例来说,该节点可以监视网络服务器(例如Web服务器)的事件。例如,节点可以监控新闻网站、社交媒体网站、博客或微博平台等的事件。该节点迭代地向群组中的多个节点提供指示符。也就是说,节点重复地向群组中的其他节点发信号,并且该信号是基于监控的结果。更具体地,节点迭代地向群组中的其他节点提供指示符。该指示符也可称为承诺。当预先确定的事件(即,监控请求中指定的事件)未发生时,指示符包括虚拟信号,该虚拟信号与加密私钥份额具有相同的长度。虚拟信号可以由节点随机生成,并且虚拟信号在每次迭代中可以不同。然而,响应于检测到预先确定的事件,节点提供包括由节点持有的加密私钥份额的指示符(这种类型的指示符可以称为“真实信号(true signal)”)。“真实信号”仅由节点提供一次,因此其他节点无法仅通过监控来自给定节点的指示符的重复来推断事件已经确定。
该指示符还可以包括该节点的群组权益公钥份额,并且可以基于执行方法500的节点持有的群组权益私钥份额进行签名。因此,当指示符被提供给群组的多个节点时,它包括用群组权益私钥生成的签名。
在操作504,节点通过在事件链上的区块中提供指示符,基于监控向其他节点发信号。每个区块都被打上时间戳。该群组的其他节点也用于独立地执行其自己的监控和信令操作(类似于方法500的操作504),并且当它们检测到事件发生时可以提供“真实信号”。因此,在操作506,节点可以获得由该群组的多个其他节点提供的多个指示符。每个指示符代表加密私钥份额或虚拟信号之一。指示符可以由节点迭代地获得(例如,从事件链的每个区块获得),并且一旦获得指示符,就可以被分析以尝试识别加密私钥。更具体地,加密私钥可以通过从当前区块和/或一个或多个最近区块中(在操作508)迭代地选择指示符的子集,(在操作510)从指示符的子集计算可能的共享秘密,并且(在操作512)根据加密公钥评估每个可能的共享秘密,以确定所述可能的共享秘密是否是加密私钥。虽然在图5中未示出,但是如果加密可能共享秘密不是加密私钥,则可以在指示符的不同子集上执行搜索(例如,可以评估搜索空间中指示符的所有可能子集,并且搜索空间可以随着新区块被添加到事件链而更新)。因此,节点可以基于已经在事件链上的区块中提供的指示符来有效地执行搜索。当指示符中提供的真实信号(即加密私钥份额)的数量大于门限私钥重建方案的门限Ct时,可以获得加密私钥。
加密私钥可以通过执行搜索算法和SSSS来重建(即,从门限个加密私钥份额获得)。在操作508,对于在定义的机会窗口内的先前数量的区块的节点的指示符(即,由每个节点提供的虚拟信号或真实信号)的每个可能的门限组合,(使用SSSS)计算共享秘密。机会窗口可以在请求者提交的监控请求中定义。对于每个潜在的共享私钥,可以使用椭圆曲线密码来计算相应的公钥。然后,可以将计算出的公钥与已知的加密公钥进行比较。如果计算出的公钥对应于加密公钥,则搜索可以停止,并且可以将加密私钥报告给请求者。但是,在找到加密私钥之前,节点可以在创建新区块时基于新区块中的指示符继续执行搜索。
当可能的共享秘密被确定为加密密钥时,执行方法500的节点(或另一个节点)也可以可选地解密先前用加密公钥加密的数据。执行方法500的节点(或另一个节点)也可以可选地基于加密私钥生成签名,并将该签名添加到交易的解锁脚本中,以解锁先前用加密公钥留置的令牌。因此,一旦识别出加密私钥,可以将其用于多种目的。
如上所述,在图4的操作412的讨论中,当识别出加密私钥时,事件链可以终止,并且可以重新分发先前由群组权益公钥留置的令牌。群组的至少一个节点准备交易,并且(在操作414)这些节点合作为该交易生成签名。例如,交易可以将请求者为完成请求而提供的令牌或其他数字资产分发到帮助完成请求的一个或多个节点。例如,节点可以识别群组中提供了在定义的机会窗口中的表示加密私钥份额的指示符的节点(该机会窗口可以基于监控请求中定义的机会窗口的门限来定义)。然后,控制至少门限个群组权益私钥份额的多个节点可以合作地生成交易的有效签名,以将一个或多个数字资产转移到一个或多个已识别的节点。例如,请求者为完成请求而提供的令牌或其他数字资产可以均等地分发给在机会窗口内提供真实信号的节点。也可以采用替代的分发方法。例如,可以对分发进行加权,以有利于在机会窗口内首先发信号的节点。这可以通过请求者在监控请求中定义的线性或指数函数来完成。
现在参考图6,图6示出了“真实信号”的示例分发600。该分发示出了具有由门限定义的大小的机会窗口602,该门限可以由请求者在监控请求中定义。在机会窗口602内提供真实信号的节点可以接收由请求者提供的令牌或其他数字资产的份额,而在机会窗口外提供真实信号或没有提供真实信号(或提供多个真实信号)的节点不分享这些令牌。
为了确保根据监控请求适当地配置节点,群组的节点可以用于监控已经违反用于完成监控请求的协议的节点。例如,节点可以通过在多个指示符中提供相关联的私钥份额来确定群组中的某个节点违反了协议。如前所述,协议可能要求每个指示符仅提供一次。因此,节点可以用于响应于确定群组中的某个节点已经违反协议,与群组中的其他节点合作来没收违反协议的节点的存款(即,“权益”)。
虽然上文描述的示例参考了比特币中可用的操作码,但是本文描述的方法也可以用于其他类型的区块链网络。
此外,本文所述的对定义的时间段的任何引用可以指基于传统的时间的度量(例如,秒、分钟、小时、天等)或非传统的时间的度量(例如区块)定义的时间段。例如,由于可以在一些具有合理一致频率的区块链网络上创建区块,所以自触发事件以来添加到区块链的区块的数量可以提供时间的度量。因此,节点评估定义的时间段是否已经到期的任何操作都可能涉及评估已经添加到区块链的区块的数量。
上述方法通常描述为在节点处执行,但是所述方法的特征依赖于与其他节点合作并且可以在其他地方执行。
应当说明的是,上述实施例说明而非限制本发明,在不脱离本发明的由所附权利要求限定的范围的情况下,本领域技术人员将能够设计出许多替代性实施例。在权利要求中,括号中的任何附图标记不应解释为对权利要求的限制。词语“包括(comprising)”和“包括(comprises)”等并非在整体上排除其他元件和步骤的存在,尽管这些元件和步骤并没有在任何权利要求或说明书中列出。在本说明书中,“包括(comprises)”意指“包括(includes)或由......组成(consists of)”,“包括(comprising)”意指“包括(including)或由......组成(consisting of)”。元件的单数引用不意味着排除这些元件的复数引用,反之亦然。本发明可以借助包括若干不同元件的硬件,以及借助适当编程的计算机来实施。在列举了若干装置的设备权利要求中,这些装置中的若干个可以由硬件的同一个部件来体现。不争的事实是,在相互不同的从属权利要求中列举了某些方法,并不代表这些方法的结合不能获得有益效果。

Claims (14)

1.一种计算机实现的方法,包括:
存储与一个群组的节点相关联的加密公钥,所述群组中的每个节点与私钥份额相关联,所述私钥份额与所述群组的门限私钥重建方案相关联,以允许从至少门限个所述私钥份额来确定与所述加密公钥相关联的加密私钥;
迭代地获得由所述群组的多个节点提供的多个指示符,其中每个节点被配置为生成所述多个指示符中的至少一个指示符,每个所述指示符代表加密私钥份额或虚拟信号之一;其中,当预先确定的事件没有发生时,所述指示符是虚拟信号;响应于检测到所述预先确定的事件,所述指示符是加密私钥份额;并通过迭代地进行以下操作来识别所述加密私钥:
选择所述指示符的子集;
基于所述指示符的所述子集,计算可能的共享秘密;和
根据所述加密公钥评估每个可能的共享秘密,以确定所述可能的共享秘密是否为所述加密私钥。
2.根据权利要求1所述的计算机实现的方法,还包括:
当所述可能的共享秘密被确定为所述加密私钥时,解密先前使用所述加密公钥加密的数据。
3.根据权利要求1所述的计算机实现的方法,还包括:
当所述可能的共享秘密被确定为加密私钥时:
基于所述加密私钥生成签名;和
将所述签名添加到交易的解锁脚本中,以解锁先前使用所述加密公钥留置的令牌。
4.根据权利要求1所述的计算机实现的方法,还包括:
识别在定义的机会窗口中提供表示所述加密私钥份额的指示符的群组的节点;和
合作地生成用于交易的有效签名以将一个或多个数字资产转移到一个或多个所识别的节点。
5.如权利要求4所述的计算机实现的方法,其中,合作地生成用于所述交易的所述有效签名以将一个或多个所述数字资产转移到一个或多个所识别的节点包括合作地生成有效签名以分发由发出与事件相关联的监控请求的请求者提供的一个或多个所述令牌。
6.根据权利要求1所述的计算机实现的方法,其中,所述虚拟信号与所述私钥份额具有相同的长度。
7.根据权利要求6所述的计算机实现的方法,还包括随机生成所述虚拟信号。
8.根据权利要求1至7中任一项所述的计算机实现的方法,还包括:
生成群组权益私钥份额,并且与所述群组的其他节点合作生成群组权益公钥,所述群组权益私钥份额允许控制至少门限个所述群组权益私钥份额的所述群组的节点的子集代表所述群组生成有效签名;和使用所述群组权益公钥留置令牌。
9.根据权利要求8所述的计算机实现的方法,其中,提供给所述群组的多个节点的指示符包括使用所述群组权益私钥生成的签名。
10.根据权利要求8所述的计算机实现的方法,还包括:
检测监控请求;和
响应于检测到所述监控请求,发送加入所述群组的请求,并与所述群组的其他节点建立安全的通信通道。
11.根据权利要求8所述的计算机实现的方法,其中,通过执行具有门限签名方案的门限的无信任中心的秘密共享协议来生成所述群组权益私钥份额,所述门限在监控请求中定义。
12.根据权利要求1至7中任一项所述的计算机实现的方法,还包括:
通过在多个所述指示符中提供相关联的私钥份额来确定所述群组的节点之一违反协议;和响应于确定所述群组的节点之一违反所述协议,与所述群组的其他节点合作以没收违反所述协议的这一所述群组的节点的权益。
13.一种计算机可读存储介质,包括计算机可执行指令,所述计算机可执行指令在被执行时将处理器配置为执行权利要求1所述的方法。
14.一种电子设备,包括:
接口设备;
处理器,连接到所述接口设备;和
存储器,连接到所述处理器,所述存储器存储有计算机可执行指令,所述计算机可执行指令在被执行时将所述处理器配置为执行权利要求1所述的方法。
CN201880042749.9A 2017-06-26 2018-06-22 受控加密私钥的发布 Active CN110800250B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311055883.1A CN117544296A (zh) 2017-06-26 2018-06-22 受控加密私钥的发布

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1710176.7 2017-06-26
GBGB1710176.7A GB201710176D0 (en) 2017-06-26 2017-06-26 Computer-implemented system and method
PCT/IB2018/054625 WO2019003071A1 (en) 2017-06-26 2018-06-22 CRYPTOGRAPHIC PRIVATE KEY RELEASE

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311055883.1A Division CN117544296A (zh) 2017-06-26 2018-06-22 受控加密私钥的发布

Publications (2)

Publication Number Publication Date
CN110800250A CN110800250A (zh) 2020-02-14
CN110800250B true CN110800250B (zh) 2023-09-08

Family

ID=59523471

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202311055883.1A Pending CN117544296A (zh) 2017-06-26 2018-06-22 受控加密私钥的发布
CN201880042749.9A Active CN110800250B (zh) 2017-06-26 2018-06-22 受控加密私钥的发布

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202311055883.1A Pending CN117544296A (zh) 2017-06-26 2018-06-22 受控加密私钥的发布

Country Status (6)

Country Link
US (3) US11329807B2 (zh)
EP (3) EP3646525B1 (zh)
JP (1) JP7208930B2 (zh)
CN (2) CN117544296A (zh)
GB (1) GB201710176D0 (zh)
WO (1) WO2019003071A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201710176D0 (en) * 2017-06-26 2017-08-09 Nchain Holdings Ltd Computer-implemented system and method
WO2019005104A1 (en) * 2017-06-30 2019-01-03 Intel Corporation METHODS, SYSTEMS AND APPARATUS FOR TRACKING A PROCEEDANCE OF GOODS
CN107590738A (zh) 2017-08-24 2018-01-16 阿里巴巴集团控股有限公司 选择共识节点的处理方法、装置及服务器
US11379832B2 (en) * 2018-12-07 2022-07-05 0Chain, LLC Systems and methods of blockchain for transaction rewards on token locking
CN111368309B (zh) * 2018-12-26 2024-03-29 阿里巴巴集团控股有限公司 信息处理方法、系统及设备
CN109617699A (zh) * 2019-01-16 2019-04-12 北京沃东天骏信息技术有限公司 一种密钥生成方法、区块链网络服务平台及存储介质
GB201901391D0 (en) * 2019-02-01 2019-03-20 Nchain Holdings Ltd Computer-implemented system and method
US11258593B1 (en) 2019-03-13 2022-02-22 Google Llc Scalable security for cryptographic ledgers via dynamic and unpredictable changes to quorum memberships
JP7537429B2 (ja) 2019-05-16 2024-08-21 ソニーグループ株式会社 デジタルアセット譲渡方法、デジタルアセット譲渡装置、及びプログラム
GB201907396D0 (en) 2019-05-24 2019-07-10 Nchain Holdings Ltd Hash function attacks
US11050822B2 (en) * 2019-06-05 2021-06-29 International Business Machines Corporation Secure data dissemination
CN110569666B (zh) * 2019-09-03 2023-09-08 深圳前海微众银行股份有限公司 一种基于区块链的数据统计的方法及装置
CN111049644B (zh) * 2019-10-22 2021-03-23 贵州财经大学 一种基于混淆激励机制的理性公平秘密信息共享方法
KR102094705B1 (ko) * 2020-01-17 2020-03-30 주식회사 에프엔에스벨류 블록 체인을 기반으로 한 다중 노드 인증 방법 및 이를 위한 장치
CN111130808B (zh) * 2020-03-26 2021-02-02 杭州智块网络科技有限公司 一种用于区块链的跨链资产映射方法及系统
US11424907B2 (en) * 2020-06-24 2022-08-23 Intel Corporation Countermeasures for side-channel attacks on protected sign and key exchange operations
CN111800261A (zh) * 2020-06-29 2020-10-20 格尔软件股份有限公司 一种多节点的密钥管理方法及装置
US11991282B2 (en) 2021-07-30 2024-05-21 Visa International Service Association Distributed private key recovery
CN114417404B (zh) * 2022-01-06 2024-09-17 浙江数秦科技有限公司 一种基于多元多项式的隐私计算方法
CN117221883B (zh) * 2023-07-04 2024-10-01 北京邮电大学 面向5g移动边缘计算的安全认证方法及相关设备
CN117134910B (zh) * 2023-10-24 2024-03-15 深圳市纽创信安科技开发有限公司 一种密钥共享方法、系统及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102340483A (zh) * 2010-07-15 2012-02-01 航天信息股份有限公司 民主群签名的生成、验证、追踪方法和民主群签名系统

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080089519A1 (en) 2006-10-12 2008-04-17 Nokia Corporation Secure key exchange algorithm for wireless protocols
WO2008099682A1 (ja) * 2007-02-16 2008-08-21 Panasonic Corporation 分散情報配布装置、保持装置、認証局装置及びシステム
JP4917453B2 (ja) 2007-02-22 2012-04-18 Kddi株式会社 閾値秘密分散装置、閾値秘密分散方法、秘密情報復元方法およびプログラム
JP5284119B2 (ja) 2009-01-16 2013-09-11 株式会社東芝 サーバ、情報処理方法及びプログラム
US8638926B2 (en) * 2009-02-26 2014-01-28 Red Hat, Inc. Sharing a secret with modular inverses
CN102238146B (zh) 2010-04-27 2014-10-08 中国移动通信集团公司 认证方法、装置、认证中心及系统
US8775800B2 (en) 2010-11-02 2014-07-08 Sap Ag Event-driven provision of protected files
US8756410B2 (en) 2010-12-08 2014-06-17 Microsoft Corporation Polynomial evaluation delegation
US9065637B2 (en) * 2012-01-25 2015-06-23 CertiVox Ltd. System and method for securing private keys issued from distributed private key generator (D-PKG) nodes
US9674156B2 (en) 2012-05-15 2017-06-06 Mcafee, Inc. Event-triggered release through third party of pre-encrypted digital data from data owner to data assignee
US20160085955A1 (en) * 2013-06-10 2016-03-24 Doosra, Inc. Secure Storing and Offline Transferring of Digitally Transferable Assets
US9411982B1 (en) 2013-08-07 2016-08-09 Amazon Technologies, Inc. Enabling transfer of digital assets
GB2517913A (en) * 2013-08-30 2015-03-11 Ibm Remote data storage
GB2513260B (en) 2014-06-27 2018-06-13 PQ Solutions Ltd System and method for quorum-based data recovery
US20160086175A1 (en) * 2014-09-22 2016-03-24 Qualcomm Incorporated Peer-to-peer transaction system
WO2016049406A1 (en) 2014-09-26 2016-03-31 Technicolor Usa, Inc. Method and apparatus for secure non-interactive threshold signatures
WO2016115633A1 (en) * 2015-01-21 2016-07-28 FusionPipe Software Solutions Inc. Enhanced security authentication methods, systems and media
US20170048209A1 (en) * 2015-07-14 2017-02-16 Fmr Llc Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
WO2017090041A1 (en) 2015-11-24 2017-06-01 Ben-Ari Adi A system and method for blockchain smart contract data privacy
US9954684B2 (en) * 2016-02-29 2018-04-24 PreVeil LLC Secure sharing
US11057198B2 (en) 2016-03-04 2021-07-06 Assured Enterprises, Inc. Utilization of a proxy technique in escrow encryption key usage
US10476672B2 (en) 2016-03-14 2019-11-12 Callware Technologies, Inc Fragmented encryption of a secret
US9774578B1 (en) 2016-05-23 2017-09-26 Accenture Global Solutions Limited Distributed key secret for rewritable blockchain
GB2538022B (en) * 2016-08-20 2018-07-11 PQ Solutions Ltd Multiple secrets in quorum based data processing
CN106504094B (zh) * 2016-11-25 2021-06-15 中国银行股份有限公司 基于区块链技术的分布式总账系统的交易撮合方法及系统
WO2018127511A1 (en) * 2017-01-03 2018-07-12 University Of Stavanger User controlled, decentralized, distributed, and secure content distribution
EP3622660B1 (en) * 2017-05-12 2023-08-30 Massachusetts Institute of Technology Systems and methods for crowdsourcing, analyzing, and/or matching personal data
GB201710176D0 (en) * 2017-06-26 2017-08-09 Nchain Holdings Ltd Computer-implemented system and method
US10911431B2 (en) * 2018-05-21 2021-02-02 Wickr Inc. Local encryption for single sign-on

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102340483A (zh) * 2010-07-15 2012-02-01 航天信息股份有限公司 民主群签名的生成、验证、追踪方法和民主群签名系统

Also Published As

Publication number Publication date
US20220337399A1 (en) 2022-10-20
JP2023036959A (ja) 2023-03-14
WO2019003071A1 (en) 2019-01-03
US11870894B2 (en) 2024-01-09
US20240113868A1 (en) 2024-04-04
US11329807B2 (en) 2022-05-10
EP3646525A1 (en) 2020-05-06
EP4221074A1 (en) 2023-08-02
CN117544296A (zh) 2024-02-09
EP3646525B1 (en) 2021-07-28
EP3934159B1 (en) 2023-10-11
EP3934159A1 (en) 2022-01-05
CN110800250A (zh) 2020-02-14
GB201710176D0 (en) 2017-08-09
US20200162243A1 (en) 2020-05-21
JP7208930B2 (ja) 2023-01-19
JP2020526069A (ja) 2020-08-27

Similar Documents

Publication Publication Date Title
CN110800250B (zh) 受控加密私钥的发布
EP3659293B1 (en) Methods and systems for blockchain-implemented event-lock encryption
EP3639468B1 (en) Systems and methods for avoiding or reducing cryptographically stranded resources on a blockchain network
US20230131970A1 (en) Computer-implemented systems and methods for authorising blockchain transactions with low-entropy passwords
EP3613189B1 (en) Secure blockchain-based consensus
JP7572467B2 (ja) 制御された暗号化秘密鍵の開放

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
GR01 Patent grant
GR01 Patent grant