CN111819827B - 用于控制区块链上的资源的访问和完整性的方法和系统 - Google Patents

用于控制区块链上的资源的访问和完整性的方法和系统 Download PDF

Info

Publication number
CN111819827B
CN111819827B CN201980018261.7A CN201980018261A CN111819827B CN 111819827 B CN111819827 B CN 111819827B CN 201980018261 A CN201980018261 A CN 201980018261A CN 111819827 B CN111819827 B CN 111819827B
Authority
CN
China
Prior art keywords
node
transaction
private key
signature
document
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
CN201980018261.7A
Other languages
English (en)
Other versions
CN111819827A (zh
Inventor
西尔维娅·巴托鲁奇
P·伯纳特
丹尼尔·约瑟夫
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 CN202410242256.7A priority Critical patent/CN118018301A/zh
Publication of CN111819827A publication Critical patent/CN111819827A/zh
Application granted granted Critical
Publication of CN111819827B publication Critical patent/CN111819827B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public 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
    • 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
    • H04L9/3239Cryptographic 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
    • 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
    • H04L9/3255Cryptographic 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 using group based signatures, e.g. ring or threshold 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/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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

用于通过区块链网络中的多个节点装置验证数字资源的方法和装置。多个节点具有相应私钥份额,其中集体私钥‑公钥对的集体私钥基于一组相应私钥份额,并且其中每个节点具有节点私钥‑公钥对。可以使用数字资源加密公钥对数字资源进行加密,数字资源加密公钥包括节点公钥和集体公钥的组合。可以通过广播承诺交易以及承诺通道的后续披露交易或撤销交易,将数字资源提交到存储库系统,承诺通道形成在相应节点与主体节点之间。对加密数字资源进行解密基于从参与验证数字资源的多个节点中检索私钥份额贡献。

Description

用于控制区块链上的资源的访问和完整性的方法和系统
本申请总体上涉及对数字资源、资产和/或数据的安全访问和控制。还可涉及保持和加强这样的数字实体的状态,还涉及如何在基于计算机的资源之间分配或共享这些数字实体。更具体地,本申请涉及通过区块链网络中的多个节点对数字资源/资产/数据的验证。
在本文中,术语“区块链”用于包括所有形式的电子的、基于计算机的分布式账本。这些包括基于共识的区块链和交易链技术、许可和未许可的账本、共享账本及其变体。
区块链是点对点的电子账本,其实施为基于计算机的分散系统,该分散系统由区块组成,而区块又由交易组成。每个交易是一种数据结构,该数据结构对数字资产控制权在区块链系统中地址之间的转移进行编码,并且包括至少一个交易输入和至少一个交易输出。每个区块都包含前一个区块的散列,使得区块被链接在一起以创建自区块链创建以来已写入区块链的所有交易的永久、不可更改的记录。
去中心化的概念是区块链系统的基础。与分布式或集中式系统不同,分散式系统提供了没有单点故障的优势。因此,分散式系统提供了增强级别的安全性和弹性。通过使用诸如椭圆曲线密码术和ECDSA的已知密码技术,进一步增强安全性。
区块链系统中的数字资产或资源的所有权和控制权是通过公钥-私钥对来控制的。数字资产或资源可以是令牌。令牌可以代表任何类型的实体。这可以包括货币、硬资产、软资产、计算资源或任何其他实体或服务。为了易于参考,我们可以使用术语“资产”。未花费的交易输出(UXTO)地址类似于公钥,并且通过使用对应的私钥来控制对分配给该UXTO地址的资产的控制。为了通过使用UXTO作为输入将数字资产转移到另一笔交易,输入必须由对应的私钥进行数字签名。因此,对私钥的安全性和保密性的控制对于区块链的安全性和可靠性至关重要。
一种类型的数字资产可以包括例如电子文档。然而,本发明不限于在文档方面的使用,并且其他类型的数字资源的访问控制、安全性和/或完整性(integrity)保存也落入本发明的范围内。例如,软件通常分布在计算网络上。那个软件的分布、存储和处理需要以安全的方式执行,其中,访问受到控制,并防止未经授权的访问或更改。需要确保软件的状态和完整性,并且可以不更改地进行验证。然而,仅出于方便起见,我们可以将电子文档作为方便的说明。
在一些情况下,多个节点可以提交文档,在这种情况下,文档的实质是要保持机密,直到所有文档都被披露为止,并且在这种情况下,防止提交后对文档的更改。因此,必须适当地控制对数据的访问以及对那个数据的处理或操纵。基于纸件的提交过程将依赖于将文档封装在密封的信封中,并在收到所有参与者的提交之后打开信封。现在,所有这样的系统都是使用计算机网络来实施的,并且以电子形式提供文档,使得这些文档的密封性和防止其更改是非常困难的。存在显著的风险,即可能不正确地披露或访问已提交的电子文档,并且可能会损害文档或提交过程的完整性。这些过程需要信任监督和实施提交系统的管理者或负责人,并且信任用于接收和存储文档的计算机系统的技术安全性。这是不理想的,因为安全漏洞和数据的未经授权访问以及可能的其更改也是很多的并广为人知的。
仅作为示例,并且在不限制本发明的情况下,在竞争性投标的情况下,可以将电子文档作为投标采购过程的一部分来提交。为了保持该过程的完整性(integrity),至关重要的是,任何投标人都不能在提交期结束之前访问其他投标人的材料,并且在提交之后任何投标都不得更改。因此,投标人需要依赖寻求投标的一方的诚实和正直,以及用于投标提交和存储的任何计算系统的安全性。
在另一个纯粹的说明性示例中,可以将文档作为房地产购买过程的一部分来提交,诸如涉及多个受要约方的要约和承诺过程。现有的房地产要约和承诺过程通常依赖于房地产经纪人来维持要约和承诺过程的完整性和安全性,以确保各要约人不了解其他要约人的要约细节。可以经由传真或经由电子邮件接收要约;然而,现有的装置和系统依赖于房地产经纪人的诚信来维护要约文档的安全性并仅在所有要约人都提供要约文档之后才公开要约文档。
在另一示例中,文档可以作为测试过程的一部分提交,例如提交考试文件或批改论文。不得将文件的内容提供给任何人,直到提交所有文件以防止抄袭为止;并且不得更改提交的文件。
还可以通过提供方法和系统来实现其他示例情况,所述方法和系统确保提交的文档直到接收到所有提交为止都保持安全和机密,并且其中,每个文档可验证未被更改。提供确保所提交的电子文档是安全的、直到所有文档都可访问为止任何人都不可访问并且未被更改的方法和系统将是有利的。
因此,需要与数据和数字资源相关的改善的解决方案,对于这些数据和数字资源,需要以安全的方式来控制对其的访问和存储,并且其中,能够验证防止的数据/资源状态的更改和/或那个状态的完整性。
本申请尤其提供了具有这样的优点的方法和系统。
本申请提供了如所附权利要求书中所定义的方法和系统。
总的来说,本申请可以提供用于控制对数字资产或资源的访问,维持那个资产或资源的状态和/或验证那个状态是否已经被更改的计算机实现的方法和系统。
本发明的方法和系统可以规定,参与节点持有私钥份额并且在创建公钥方面进行协作。使用该节点自己的公钥和协作获得的公钥对参与节点之一提交的数字资源或资产进行加密,从而表示需要节点自己的私钥和协作私钥来对数字资产或资源进行解密。(重要的是要注意,此后纯粹为了方便起见,可以将数字资产/资源/数据简称为“资产”、“数字资源”或甚至是“文档”,但是本发明不限于此。)
通过在每个参与节点与主体节点之间形成承诺通道,参与节点可以确认将它们的相应加密文档提交到公共存储。每个参与节点最终都可以在区块链上提交交易,以显示其私钥份额,使得然后任何一个节点都能够根据从区块链中提取的份额创建协作私钥。如果参与节点打算披露其自己的文档(由于它可以选择撤回),则它也可以公开其自己的私钥,从而实现对其文档的解密。区块链交易还可以包括所提交文档的散列,以便能够验证文档的完整性。“验证完整性”可以包括验证或证明数字资源的状态没有被更改。以这种方式,可以确保节点仅在所有其他节点都参与了在区块链上披露它们的相应密钥份额并且来自参与节点的所有文档同时变得可解密和可访问时才被披露。因此,本系统可以以可验证文件未被更改的方式提供对加密文档的协调和同步访问。
本发明可以提供一种计算机实现的方法,所述方法通过区块链网络中的多个节点和主体节点控制对数字资源(例如,文档、软件等)的访问和/或验证。
所述多个节点可以具有相应私钥份额,其中集体私钥-公钥对的集体私钥基于一组相应私钥份额,并且其中第一节点具有第一节点私钥-公钥对。所述方法可以由节点执行。所述方法可以包括:由第一节点通过组合第一节点私钥-公钥对的第一节点公钥和集体私钥-公钥对的集体公钥来生成文档加密公钥;使用文档加密公钥对文档进行加密;通过以下方式生成用于第一承诺通道的一个或更多个区块链交易:由第一节点生成承诺交易,所述承诺交易具有被第一节点的私钥份额锁定的承诺交易输出,使得具有承诺交易输出作为输入的有效后续交易(需要)包括第一节点的私钥份额,以及由第一节点接收由主体节点签名的有效后续交易。所述方法还可以包括以下步骤:响应于接收由主体节点签名的有效后续交易,向区块链网络广播承诺交易。
在一些实施方式中,所述方法包括在第一时间锁定阈值之前,由第一节点向区块链网络广播由主体节点签名的有效后续交易,以在区块链上披露第一节点的私钥份额。
在一些实施方式中,所述方法包括从区块链中检索与文档关联的该组私钥份额;响应于确定私钥份额的数量大于私钥份额阈值,从检索到的该组私钥份额重新生成集体私钥-公钥对的集体私钥;以及使用文档加密私钥对加密文档进行解密,所述文档加密私钥是重新生成的集体私钥和第一节点私钥-公钥对的第一节点私钥的组合。
在一些实施方式中,所述承诺交易具有交易输出,所述交易输出包括多于一个的解锁选项,所述解锁选项包括披露选项,所述披露选项需要文档的散列、第一节点的私钥份额、第一节点私钥-公钥对的第一节点私钥、主体节点的签名和第一节点的签名,使得有效后续交易包括交易输入,所述交易输入具有用于选择披露选项的文档的所述散列、第一节点的所述私钥份额、第一节点私钥-公钥对的所述第一节点私钥、主体节点的所述签名和第一节点的所述签名。
在一些实施方式中,所述承诺交易具有交易输出(UTXO),所述交易输出包括多于一个的解锁选项,所述解锁选项包括撤销选项,所述撤销选项需要第一节点的私钥份额、主体节点的签名和第一节点的签名,使得有效后续交易包括交易输入,所述交易输入具有用于选择撤销选项的第一节点的所述私钥份额、主体节点的所述签名和第一节点的所述签名。
在一些实施方式中,承诺交易具有交易输出,交易输出包括多于一个的解锁选项,所述解锁选项包括超时选项,所述超时选项需要主体节点的签名和第一节点的签名,使得有效后续交易包括交易输入,所述交易输入具有用于选择超时选项的主体节点的所述签名和第一节点的所述签名。
在一些实施方式中,加密文档存储在公共存储库中,并且其中,承诺交易向区块链网络广播由第一节点生成的文档被存储在公共存储库处。
在一些实施方式中,响应于至少具有主体节点的签名和第一节点的签名的有效后续交易的交易输入,去除对第一资产值的阻碍。
在一些实施方式中,有效后续交易是由主体节点签名的撤销交易,并且其中,在接收由主体节点签名的撤销交易之前,所述方法还包括:生成包括交易输入的撤销交易,所述交易输入具有第一节点的私钥份额和第一节点的签名。
在一些实施方式中,响应于具有第一节点的私钥份额、主体节点的签名和第一节点的签名的撤销交易的交易输入,去除对第一资产值的阻碍,响应于具有主体节点的签名的进一步交易的交易输入,去除对第二资产值的阻碍,并且其中,响应于具有第一节点的签名的进一步交易的交易输入,去除对第三资产值的阻碍,第三资产值是第一资产值与第二资产值之间的差。
在一些实施方式中,有效后续交易是由主体节点签名的披露交易,并且在接收由主体节点签名的披露交易之前,所述方法还包括:生成披露交易以包括具有文档的散列、第一节点的私钥份额、第一节点私钥-公钥对的第一节点私钥和第一节点的签名的交易输入。
在一些实施方式中,响应于具有文档的散列、第一节点的私钥份额、第一节点私钥-公钥对的第一节点私钥、主体节点的签名和第一节点的签名的披露交易的交易输入,去除对第一资产值的阻碍,并且响应于具有主体节点的签名的进一步交易的交易输入,去除对第四资产值的阻碍,并且其中,响应于具有第一节点的签名的进一步的交易交易输入,去除对第五值的阻碍,第五资产值是第一资产值与第四资产值之间的差。
在一些实施方式中,生成用于第一承诺通道的一个或更多个交易包括生成超时交易,并且其中,在第一时间锁定阈值过去之后,超时交易符合由主体节点向区块链网络广播的条件。
本发明还提供了一种用于执行以上限定的方法的计算装置。
本发明还提供了一种存储处理器可执行指令的非暂时性处理器可读介质,其中当由处理器执行处理器可执行指令时,导致处理器执行以上限定的方法。
通过参考本文描述的实施例,本申请的这些和其他方面将变得显而易见并得到阐明。
现在将仅通过示例的方式并参考附图来描述本申请的实施例,其中:
图1以框图形式示出根据本申请的示例的文档存储库系统;
图2示出根据本申请的示例的承诺通道;
图3A示出根据本申请的示例的承诺交易;
图3B示出根据本申请的示例的撤销交易;
图3C示出根据本申请的示例的披露交易;
图3D示出根据本申请的示例的超时交易;
图4示出根据本申请的示例的主体节点与多个节点中的每个节点之间的承诺通道;
图5示出根据本申请的示例的节点、主体节点与电子账本之间的交易的序列图;
图6以流程图形式示出根据本申请的示例的将文档提交到文档存储库系统的在节点处实现的方法;
图7以流程图形式示出验证提交到文档存储库系统的文档的在节点处实现的方法;
图8以框图形式示出简化的节点。
本申请提供了一种用于区块链网络上的数字资源存储库系统,用于验证提交到存储库系统的数字资源(例如,文档、软件、数据、其他数字资产等)在提交之后是否已被更改,并且用于确保提交的文档的内容可以不被泄露给其他参与节点,直到每个参与节点至少披露用于解密加密文档的私钥份额(private key share)为止。为了方便起见,以下我们将使用术语“文档”。然而,需要控制和/或验证对其的访问的任何类型的数字资源都落入本发明的范围内。
以下描述提供了与区块链协议相关的实施、用例和说明。然而,本申请具有更广泛的适用性,并且可以在其他系统和基于计算机的资源中使用,并且本申请不限于此。
在本申请中,相应节点经由基于状态的交易将文档提交到文档存储库系统,以最终广播至区块链网络。在将文档提交到文档存储库系统后,参与验证所述文档或其他节点提交的文档的相应节点可以经由披露(reveal)或撤销(rescind)交易来披露私钥份额。此外,当相应节点向区块链网络广播披露交易时,相应节点提供节点私钥以披露由该相应节点提交的文档的内容。这样,本文描述的文档存储库系统使得参与节点之间的文档选择过程的临时完整性和提交的文档的不可变性成为可能。
在本申请中,术语“和/或”旨在涵盖所列元件的所有可能的组合和子组合,包括单独列出的任一元件、任何子组合或所有元件,而不必排除其他元件。
在本申请中,短语“……或……中的至少一个”旨在涵盖所列的元件中的任何一个或更多个,包括单独列出的任一元件、任何子组合或所有元件,而不必排除任何附加元件,也不必需要所有元件。
现在参考图1,以框图形式示出根据本申请的示例的文档存储库系统100。文档存储库系统100可以包括区块链网络,诸如点对点开放成员网络。未经邀请或未经其他节点同意,任何数量的节点均可以加入区块链网络。区块链网络包括电子账本102,所述电子账本102又可以由交易组成。每个交易是对数字资产或值的控制转移进行编码的数据结构。
文档存储库系统100可以包括一个或更多个节点106。节点106可以是电子装置并且可以执行区块链协议。节点106可以是各种类型的电子装置,包括例如计算机(例如,台式计算机、膝上型计算机、平板计算机、服务器等)、移动装置(例如,智能电话、诸如智能手表的可穿戴计算机)或其他类型的电子装置。节点106可以使用可包括有线或无线通信技术的合适的通信技术彼此联接。在一些示例中,文档存储库系统100可以至少部分地在因特网上实施,并且某些节点106可以位于地理位置分散的位置。
一个或更多个节点106可以维护一个或更多个交易的电子账本102。每个节点106可以存储全球账本的完整副本或部分副本。可以通过一个或更多个节点106来验证影响电子账本102的交易,从而可以维护电子账本102的有效性。本领域普通技术人员可以理解实施和操作区块链网络的细节。
在一些实施方式中,相应节点106中的每个可以具有节点私钥-公钥对(qi,Qi)。相应节点106可以产生节点私钥-公钥对,其中节点私钥-公钥对可以用作“一次性代码”。例如,节点私钥-公钥对的节点公钥(Qi)可以与用于对文档进行加密的加密方法一起使用。节点私钥(qi)可以响应于对协议的操作的满足(satisfaction)而分布(例如,如本文所描述的),并且可以与用于对加密文档进行解密的解密方法一起使用。因此,一旦节点私钥-公钥对的节点私钥被公布,该节点106就可以避免将所述节点私钥-公钥对用于将来的加密操作。
文档存储库系统100可以包括主体节点(principal node)104。主体节点104可以与文档存储库系统100的一个或更多个节点106和其他组件进行交互。如本文所描述的,主体节点104可以执行本文所描述的操作,用于与相应节点106形成承诺通道(commitmentchannel),并且可以执行本文对于文档存储库系统100描述的操作。
文档存储库系统100可以包括数据存储120。数据存储120可以收集并存储文档。收集并存储的文档可以是加密的文档。在一些示例中,数据存储120可以包括相应文档的散列(hash)或散列的相应文档的散列(例如,双散列(double hash))。将文档散列可以将具有任意大小的该文档映射到固定数据大小的数据。
数据存储120可以被一个或更多个节点106或主体节点104访问。文档可以是任何电子数字文件,诸如长的详细多页条目或数字。在一些示例中,文档可以是一小部分有限的字符,并与一临时数(nonce)(例如,随机数字)串接在一起。
可以用文档加密公钥(Li)加密存储在数据存储120中的加密文档。文档加密公钥(Li)可以被定义为Li=P+Qi,其中,对于文档存储库系统100的节点106而言,与集体公钥(collective public key)P对应的集体私钥(collective private key)(p)最初可以是未知的。
例如,第一节点106可以通过组合第一节点私钥-公钥对(qi,Qi)的第一节点公钥(Qi)和集体私钥-公钥对的集体公钥(p)来产生文档加密公钥。集体私钥-公钥对的集体私钥(p)可以基于一组相应私钥份额。例如,可以根据阈值秘密共享方法(threshold secretsharing method)来分配相应私钥份额。此外,当从相应节点106中的每个节点检索到一组私钥份额时,可以生成集体私钥(p)。如本文所描述的,当相应节点106已经披露了一组(或足够数量/阈值数量)的私钥份额时,可以生成集体私钥(p),使得相应节点106可以协作地披露或验证存储在数据存储120处的加密文档。如本文所描述的,相应节点106可以通过广播有效的后续交易(诸如披露交易或撤销交易)来披露其私钥份额。
文档存储库系统100中的一个或更多个节点106可以执行阈值秘密共享协议的一个或更多个操作。例如,一个或更多个节点106可以执行阈值秘密共享协议的操作,以用于将私钥份额分配或分布到相应节点106。相应私钥份额可以用于披露或解密存储在数据存储120中的一个或更多个文档。根据阈值秘密共享协议协作地执行操作的一个或更多个节点106可以被组织成节点的集群130,如图1所示。
在一些示例中,阈值秘密共享协议可以由(t;n)阈值定义,其中n可以是参与节点106的数量,并且t+1可以是重构秘密所需的节点的最少数量。秘密共享方案可以是阈值加密系统的示例,其中可以将秘密划分为n个节点中的部分,使得需要至少t+1个节点参与以重构秘密。任何t部分的知识(knowledge)都可以使秘密未被披露。
阈值秘密共享方案的一个示例在以下文章中进行了描述,标题为“How to sharea secret(如何共享秘密)”,由Shamir,A.(1979)发表于Communications of the ACM,22(11),612-613(“Shamir方法”)。Shamir方法可以基于多项式插值和w.l.o.g.,假定秘密是有限域F的元素。Shamir方法可以包括经销商(dealer)或无经销商(dealerless)方法,并且可以包括一组n个节点U1,...,Un和访问结构A。参与者组可以能够重构秘密。利用Shamir方法,将任意随机秘密存储为t次(degree)多项式f(x)中的f(0),并且仅参与者i可以计算其份额f(xi)。如果n个参与者中的t+1个协作,则他们可以使用Lagrange多项式插值重构f(x)上的任何点,他们的份额(密钥k的)k1,k2,...,kn对应于f(x1),f(x2),...,f(xn)。使用Lagrange多项式插值,t次函数f(x)可以用t+1个点重构。
p={(x1,f(x1)),(x2,f(x2)),…,(xt+1,f(xt+1))}
其中
注意,bi,p(xi)=1并且bi,p(xj)=0
在存在经销商节点的情况下,经销商节点可以选择秘密ao=k,其被假定为大小为p(p素数)的有限域F的元素,并且可以随机选择t-1个正整数a1,...,at-1,其代表多项式f(x)=ao+a1x+a2x2+...的系数。然后经销商节点可以计算属于多项式的n个点(xi,f(xi))并且将其分配给参与者。
在Shamir无经销商份额分配阶段:
1.每个参与者Ui被分配xi,xi是每个人都知道的。每个xi必须是唯一的。
2.每个玩家Ui产生t次随机多项式fi(x)。
3.每个玩家Ui秘密地向每个其他玩家发送(用接受者的公钥加密)其在多项式fi(xj)mod n上的相应点。
4.每个玩家Ui将所有他们接收到的f1(xi),f2(xi),...fp(xi)求和(所有mod n,其中n是椭圆曲线上的点G产生的组的阶)以形成ki=f(xi)mod n,其是多项式f(x)mod n上的份额。
以上对Shamir方法的描述是阈值秘密共享解决方案的一个示例;然而,可以想到其他方法或阈值秘密共享解决方案。
在一些实施方式中,阈值签名计算可以基于k×G的确定,其中k是密钥并且G是椭圆曲线上的点。
如果f(x)是t次多项式,则秘密k可以通过k=∑i∈πbi,πki进行插值,其中π可以是份额ka,kb,...,kt,kt+1的大小t+1子集,b可以是内插因子。π可以是协作以计算k×G的一组t+1个节点,而不披露其份额ki。k可以是t次多项式上的x=0点。
·每个节点Ui可以计算部分bi,πki×G
·π中的所有节点都可以将其部分加在一起(经由Lagrange插值重构秘密k),得到:
ba,πka×G+bb,πkb×G+…+bt+1,πkt+1×G=k×G
上述计算Q=kG的过程可以被称为秘密共享加入(Secret Share Joining)。
在一些实施方式中,阈值秘密共享操作可导致将相应的私钥份额分配给文档存储库系统100的一个或更多个节点106中的每个节点,使得集体私钥-公钥对(p,P)的集体私钥(p)基于一组相应的私钥份额。例如,可以基于一组相应的私钥份额来生成或重新生成集体私钥(p),其可以表示为:
因此,如果在文档存储库系统100中存在n个节点106,则n个节点106中的每个节点可以被分配私钥份额,其中可以需要n个或阈值数量的密钥份额来生成集体私钥-公钥对(p,P)中的集体公钥P的集体私钥。
主体节点104和相应节点106可以形成承诺通道140。承诺通道140可以是状态通道实施的示例,其代表状态的链外(off-chain)更改并且通过区块链网络/电子账本102的最终结算来保证。在一些示例中,文档承诺通道140可以包括由主体节点104或节点106中的一者或两者(视情况而定)生成或签名的一系列交易,以在将那些交易广播到区块链网络之前进行交换。承诺通道140的交易可以在区块链网络之外进行,其功能类似于期票,以最终广播到区块链网络上。因此,如本文举例说明的,当主体节点104和相应节点106形成承诺通道140时,操作可以包括由主体节点104或节点106中的一者或两者生成或签名交易,并且还可以包括将那些交易中的至少一个广播到区块链网络以形成那个承诺通道140。因为基于承诺通道140的交易可以在主体节点104与区块链网络“之外”的相应节点106之间交换,所以可以在没有通常与在区块链网络上广播和验证交易相关联的等待时间的情况下交换交易。
为了易于说明,图1中示出在主体节点104与选择的节点106(例如,节点i)之间的承诺通道140。然而,在一些示例中,可以在主体节点104与共同地验证或共同地披露数据存储120中可用的文档的一个或更多个节点106中的每个节点之间形成相应的承诺通道140。
现在参考图2,图2图示性地示出根据本申请的示例的承诺通道140。在一些示例中,节点206或主体节点204可以通过生成由主体节点204签名的承诺交易250和至少一个其他有效的后续交易并将那个承诺交易250传输到区块链网络来形成承诺通道140。在一些示例中,有效的后续交易可以包括撤销交易252或披露交易254。此外,节点206或主体节点204可以生成超时交易256。
图2还示出阻碍数字资产(encumbered digital asset)280。承诺交易250可以包括未花费的交易输出(UTXO),UTXO包括阻碍数字资产280。如本文所描述的,可以响应于有效的后续交易(诸如撤销交易252、披露交易254或超时交易256)来分配图2中图示性地示出的阻碍数字资产280。
节点206可以生成承诺交易250,以向区块链网络广播由那个节点206生成的文档被保存在数据存储120处。节点206可以生成节点206可希望存储在数据存储120(图1)处并可希望经由文档存储库系统100传播到其他节点的文档。在一些实施方式中,生成的文档的内容可以不通过区块链网络上的交易来存储或记录。然而,文档的散列(HoDi)可以通过一个或更多个交易来记录。文档的散列可以对应于可存储在数据存储120中的加密文档。在一些示例中,生成的文档的双散列(例如,H(HoDi))可以通过广播到区块链网络的交易来记录。散列函数可以:(1)将任意大小的数据映射到固定大小的数据,使得可以在定义的数据量内在区块链交易中代表生成文档;或(2)防止节点106更改可存储在数据存储120处的生成文档。对更改后的文档进行散列将产生不同的散列结果,并且可以指示存储在数据存储120处的文档已被更改。
为了示出承诺交易250、撤销交易252、披露交易254和超时交易256的示例,现在参考图3A至图3D,其图示性地示出根据本申请的示例的承诺通道140的相应交易。在一些实施方式中,交易可以包括锁定脚本(例如,<scriptPubKey>),锁定脚本可以是交易的输出,其可通过施加规则或标准来阻碍数字资产或值,有效的后续交易的解锁脚本(例如,<scriptSig>)必须满足该规则或标准以不阻碍先前交易的数字资产或值。
图3A图示性地示出示例承诺交易250。节点106(图1)可以生成承诺交易250,用于将文档提交到文档存储库系统100(图1)以供主体节点104(图1)或其他节点106(图1)考虑。当节点106将文档提交到文档存储库系统100以供考虑时,节点106还可以提交数字资产390。文档存储库系统100可能需要提交指定值的数字资产390,作为由主体节点104提交的文档的考虑(consideration)的交换。承诺交易250可以设置数字资产390的阻碍,直到有效的后续交易分配数字资产390的时间为止。
承诺交易250可以包括用于不阻碍数字资产390的一个或更多个选项。数字资产390可以代表第一资产值。可以在UTXO的锁定脚本中指定用于不阻碍数字资产的选项,使得有效的后续交易的解锁脚本在能够不阻碍数字资产390之前必须包含需要的输入。例如,撤回或撤销选项352可以需要有效的后续交易的解锁脚本提供用于选择撤回选项的主体节点104的签名(例如,σ(S))、节点106的私钥份额(例如,)和节点106的签名(例如,σ(Ui))。如本文所描述的,可包括这些输入的有效的后续交易可以对应于撤销交易252(图2)。即,在一些示例中,承诺交易具有交易输出,所述交易输出包括多于一个的解锁选项,其包括需要第一节点的私钥份额、主体节点的签名和第一节点的签名的撤销选项,使得有效的后续交易包括具有用于选择撤销选项的所述第一节点的私钥份额、所述主体节点的签名和所述第一节点的签名的交易输入。
在一些实施方式中,承诺交易250的锁定脚本可以包括披露选项354。披露选项354可以需要有效的后续交易的解锁脚本提供用于选择披露选项的主体节点104的签名(例如,σ(S))、加密文档的散列(例如,HoDi)、节点106的私钥份额(例如,)、节点106的节点私钥(例如,qi)和节点106的签名(例如,(Ui))。可包括这些输入的有效的后续交易可以是披露交易254(图2),如本文所描述的。即,在一些示例中,承诺交易具有包括多于一个的解锁选项的交易输出,解锁选项包括需要文档的散列、第一节点的私钥份额、第一节点私钥-公钥对的第一节点私钥、主体节点的签名和第一节点的签名的披露选项,使得有效的后续交易包括具有用于选择披露选项的所述文档的散列、所述第一节点的私钥份额、所述第一节点私钥-公钥对的第一节点私钥、所述主体节点的签名和所述第一节点的签名的交易输入。
在一些实施方式中,承诺交易250的锁定脚本可以包括超时选项356。超时选项356可以需要有效的后续交易的解锁脚本提供用于选择超时选项的主体节点104的签名(例如,σ(S))和节点的签名(例如,σ(Ui))。可包括这些输入的有效的后续交易可以对应于超时交易256(图2)。如本文所描述的,当节点106在第一时间锁定阈值时段内既不提交撤销交易252也不提交披露交易254时,主体节点104可以在第一时间锁定阈值过去时向区块链网络广播超时交易356。超时交易356可以包括提供用于超时选项356的主体节点104的签名和节点的签名的解锁脚本。即,在一些示例中,承诺交易具有交易输出,所述交易输出包括多于一个的解锁选项,其包括需要主体节点的签名和第一节点的签名的超时选项,使得有效的后续交易包括具有用于选择超时选项的所述主体节点的签名和所述第一节点的签名的交易输入。在一些实施方式中,包含在承诺交易250的交易输入中的节点(Ui)的签名(例如,σ(Ui))和包含在承诺交易250的交易输出中的节点(Ui)的签名可以基于那个节点的不同公钥-私钥对。例如,那个节点(Ui)可以具有多于一个的公钥-私钥对,并且可以为承诺通道140的承诺交易250或其他交易的不同方面生成签名。
在一些实施方式中,承诺交易250还可以包括由节点106生成的文档的双散列(H(HoDi))(图3A中未示出)。当节点106可以将文档提交到文档存储库系统100时,节点106可以生成那个文档的双散列。散列函数H(θ)可以:(1)将任意大小的数据映射到固定大小的数据,使得可以在定义的数据量内在区块链交易中代表生成文档;或(2)防止任何节点106更改可存储在数据存储120处的生成文档。对更改的文档进行散列可以产生不同的散列结果,并且可以指示存储在数据存储120处的文档已被更改。
图3B图示性地示出示例撤销交易252。当形成承诺通道140时,节点106可以生成撤销交易252。在节点106已经向文档存储库系统100提交了文档,但随后不打算考虑由主体节点104或任何其他节点106选择该文档的情况下,节点106可以向区块链网络广播撤销交易252。特别地,节点106可以生成撤销交易252,所述撤销交易包括具有节点106的私钥份额(例如,)、节点106的签名(例如,σ(Ui))和主体节点104的签名(例如,σ(S))的交易输入360。如将描述的,当主体节点104验证了撤销交易252包括用于主体节点140和相应节点106的承诺通道140的授权交易输入和交易输出时,主体节点104可以对撤销交易252进行签名。因为撤销交易252包括节点106的私钥份额,所以撤销交易252可以提供足够的信息,该信息可以有助于解密由其他节点106提交的文档。
撤销交易252可以包括交易输出,所述交易输出具有用于阻碍至少两个资产值的两个输出。例如,撤销交易252可以包括用于阻碍第二资产值392和第三资产值393的输出。因此,响应于具有主体节点的签名(例如,σ(S))的进一步交易的交易输入,可以去除对第二资产值392的阻碍。响应于具有节点106的签名(例如,σ(Ui))的进一步交易的交易输入,可以去除对第三资产值393的阻碍。第二资产值392可以小于第一资产值390。此外,第三资产值393可以是第一资产值390与第二资产值392之间的差。因此,在一些示例中,第二资产值392可以是当节点106:(1)将生成文档提交到数据存储120;但是(2)从主体节点104的考虑(consideration)撤回文档时的费用。第三资产值393可以代表未阻碍资产值,所述未阻碍资产值可以返回到广播了所述撤销交易252的节点106。
注意,当节点106向区块链网络广播撤销交易252时,撤销交易252包括主体节点104的签名、节点106的签名和节点106的私钥份额然而,不包括那个节点106的节点私钥(例如,qi)。在没有那个节点106的节点私钥(qi)的情况下,因为其他节点106都不可以确定文档加密私钥li=p+qi,所以(1)先前由那个节点106产生的;以及(2)使用文档加密公钥(例如,Li=P+Qi)加密的任何加密文档(EncL(Doci))可以不被任何其他节点106解密。当节点106不能够提供节点私钥(Qi)时,可以不产生文档加密私钥。
还注意,当节点106向区块链网络广播撤销交易252时,那个节点106的私钥份额可以被包括在交易输入中。因此,可以生成集体私钥(p),从而允许其他节点106使用文档加密私钥p+qi对加密文档进行解密,其中qi是相应节点106的节点私钥-公钥对(qi,Qi)的节点私钥,并且当qi在区块链网络上可用时。
图3C图示性地示出示例披露交易254。当形成承诺通道140时,节点106可以生成披露交易254。在节点106已经向文档存储库系统100提交了文档,并且打算考虑由主体节点104或任何其他节点106选择文档的情况下,节点106可以向区块链网络广播披露交易254。通过打算考虑选择那个文档,可以使用文档加密私钥li=p+qi对那个文档的加密版本进行解密。由于披露交易254的交易输入可以包括该节点106的私钥份额和节点私钥-公钥对(qi,Qi)的节点私钥(qi),所述主体节点104或其他节点106中的任何一个都可以解密存储在数据存储120处的文档,前提是阈值数量的其他节点披露相应私钥份额。
特别地,披露交易254可以包括交易输入370,所述交易输入可以包括主体节点的签名(σ(S))、加密文档的散列(HoDi)、节点106的私钥份额节点106的节点私钥(qi)和节点106的签名(σ(Ui))。如将描述的,当主体节点104验证了披露交易254包括用于主体节点140和那个相应节点106的承诺通道140的授权交易输入和交易输出时,主体节点104可以对披露交易254(例如,将σ(S)归因于披露交易254)进行签名。因为披露交易254包括用于那个相应节点106的节点106的私钥份额以及节点私钥-公钥对(qi,Qi)的节点私钥,所以披露交易254可以提供可允许解密文档的足够信息。即,披露交易254可以提供用于确定文档加密私钥li=p+qi的足够信息。
披露交易254可以包括交易输出,所述交易输出具有用于阻碍至少两个资产值的两个输出。例如,披露交易254可以包括用于阻碍第四资产值394和第五资产值395的输出。响应于具有主体节点的签名(例如,σ(S))的进一步交易的交易输入,可以去除对第四资产值394的阻碍。响应于具有节点106的签名(例如,σ(Ui))的进一步交易的交易输入,可以去除对第五资产值395的阻碍。第四资产值394可以小于第一资产值390(图3A和图3B)。此外,第五资产值395可以是第一资产值390与第四资产值394之间的差。因此,在一些示例中,第四资产值394可以是用于将生成文档提交到数据存储120以由参与文档存储库系统100的主体节点104或任何其他节点106考虑和进行的随后验证的费用。第五资产值395可以代表未阻碍资产值,所述未阻碍资产值可以返回到广播了所述披露交易254的节点106。
在一些示例中,文档存储库系统100可以被构造为鼓励相应节点106广播披露交易254,而不是广播撤销交易252。因此,第四资产值394可以小于撤销交易252(图2和图3B)的第二资产值392(图3B)。注意,为了易于说明,可有助于根据区块链协议对区块链网络的节点进行挖掘/验证的任何交易费均未包括在数字资产的阻碍和未阻碍的描述中。
图3D图示性地示出了示例超时交易256。当形成承诺通道140时,主体节点104或相应节点106可以生成超时交易256。在节点106已经向区块链网络广播承诺交易250,但是节点106在广播的承诺交易250之后没有广播任何有效的后续交易的情况下,主体节点104可以向区块链网络广播超时交易256。在一些示例中,如果节点106可能已经失去与区块链网络的网络通信或可能已经离线,则节点106可能没有广播撤销交易252或披露交易254。
超时交易256可以是基于nLockTime的交易,使得主体节点104可能未成功地向区块链网络广播超时交易256,直到已过去了时间锁定阈值为止。可以根据电子账本102(图1)的交易区块高度或UNIX时间来定义时间锁定阈值。作为示例,时间锁定阈值可以是每个节点106在承诺交易250的相应广播之后广播撤销交易252或披露交易254的截止时间。回想到,承诺交易250可以代表或指示储存在数据存储120(图1)处的加密文档。即,当节点106向区块链网络广播承诺交易250时,节点106可以广播在文档存储库系统100中的该文档的存在。
当节点106未能在第一时间锁定阈值之前广播撤回交易252或披露交易254时,节点106不能提供那个节点106的私钥份额和节点私钥(Qi)。不能披露那个节点106的私钥份额可以防止参与文档存储库系统100的其他节点重新生成集体私钥-公钥对(p,P)的集体私钥(p),因此防止其他节点对存储在数据存储120处的加密文档进行解密。此外,不能披露那个节点106的节点私钥(Qi)可以防止参与文档存储库系统100的其他节点对那个特定节点106的加密文档进行解密。回想到对加密文档进行解密,可以需要文档加密私钥(li=p+qi)。
超时交易256可以包括交易输出,所述交易输出具有用于通过主体节点104进一步阻碍第一资产值390的输出。即,响应于具有主体节点的签名(例如,σ(S))的进一步交易的交易输入,可以去除对第一资产值390的阻碍。在一些示例中,文档存储库系统100可以需要超时交易256的交易输出的结构阻碍第一资产值390,作为对没有在第一时间锁定阈值(s1)之前向区块链网络广播撤回交易252或披露交易254中的至少一个的节点106的惩罚。
在一些示例中,具有主体节点的签名(例如,σ(S))的所述进一步交易可以包括交易输出,以将第一资产值的一部分分配给其他节点106中的每个,以代替不能对可存储在数据存储120处的加密文档进行解密的其他节点106中的每个。回想到,其他节点106中的每个在没有来自一组或至少一些节点106的私钥份额的情况下可能不能重新生成集体私钥(p)。
在一些示例中,节点106可以不向区块链网络广播超时交易256。相反,如果相应节点106在第一时间锁定阈值之前未能广播披露交易或撤销交易,则可以通过主体节点204向区块链网络广播超时交易256。因为超时交易256为了主体节点204的利益而阻碍第一资产值390,所以每个相应节点106可以不操作为向区块链网络广播超时交易256。
现在参考图4,图4图示性地示出根据本申请的示例的主体节点204与多个节点中的每个节点之间的承诺通道。例如,对于“节点1”和主体节点204可以形成第一承诺通道402。对于“节点2”和主体节点204可以形成第二承诺通道404。对于“节点n”和主体节点204可以形成第n承诺通道406。相应承诺通道中的每个可以与加密文档关联,所述加密文档可以与相应节点关联并且所述加密文档可以存储在数据存储中。在一些示例中,文档存储库系统中的承诺通道的数量可以对应于参与验证或披露存储在数据存储120(图1)处的加密文档的节点的数量。第一承诺通道402、第二承诺通道404或第n承诺通道406中的每个可以与具有与图2和图3A至图3D中描述的特征类似的特征的承诺交易、撤销交易、披露交易或超时交易关联。
如所描述的,节点106(图1)可能希望向文档存储库系统100(图1)提供一个或更多个文档,以供主体节点104(图1)或其他节点106考虑。向文档存储库系统100提交文档可以包括将加密文档传输到数据存储120(图1)用于存储,并且可以包括向区块链网络产生并广播承诺交易。在一些示例中,加密文档可能未被指定或存储在广播到区块链网络的交易中。相反,加密文档的散列(例如,HoDi)可以被指定在广播到区块链网络的交易中。加密文档的散列可以用于广播到加密文档保存在数据存储120中的区块链网络。
在一些实施方式中,主体节点104可以生成请求从节点106进行文档提交的请求交易。请求交易可以包括锁定脚本,所述锁定脚本指定可以接收的文档提交的数量,可进行文档提交的节点106的数量,或者(a)当向区块链网络提交承诺交易可能发生时(例如,直到时间锁定阈值)(诸如提交阈值时间段(s0));以及(b)当后续的有效交易(例如,撤销交易252或披露交易254)的提交必须被广播时(诸如第一阈值时间段(s1))的时间锁定阈值,以及其他规范。在一些示例中,提交阈值时段(s0)可以被实施为使得文档存储库系统100可以在继续进行用于解密所述加密文档的操作之前从参与节点接收加密文档以用于存储。在一些示例中,请求交易可以包括具体使用椭圆曲线密码术(ECC)的规范。例如,如果文档存储库系统100基于区块链协议,则可以使用具有以下参数集的椭圆曲线(secp256k1 ECDSA):
·G–椭圆曲线上的基点,阶为q:q x G=0,
·q=大质数。
在一些实施方式中,秘密共享协议可以被实施为将n个密钥份额分配到n个节点,其中n个节点可以向文档存储库系统100提交一个或更多个文档。如本文所描述的,n个密钥份额可以用于生成与集体私钥-公钥对(p,P)的集体公钥(p)关联的集体私钥(p)。在一些实施方式中,集体私钥份额可以由受信的经销商节点分配。当受信的经销商节点分配集体私钥份额时,受信的经销商节点可以是主体节点104,并且可以具有用于生成参与节点的集体私钥份额的集体私钥的知识。
在一些其他实施方式中,可以基于无经销商协议来分配集体私钥份额。利用无经销商协议,没有特定的节点具有集体私钥份额的先前知识,协议可以需要用于生成集体私钥(p)的n个密钥份额中的至少t+1个。当使用基于多项式的秘密共享协议时,“t”可以是多项式的次数。无经销商协议可以需要n个节点协作以生成并验证相应的集体私钥份额。
在一些示例实施方式中,阈值t+1可以是t∈Z:0<t≤n-1,其中t可以是使得t+1≠n的量。使用阈值t+1≠n的示例实施方式可以对于以下情况有用:一个或更多个节点106可能已经广播了承诺交易250,但是后续可能已经切断了与区块链网络的网络通信通道,使得特定节点106将不会广播来自相应承诺通道140的后续的有效交易。注意,即使一个或更多个节点可能已经切断了与区块链网络的网络通信通道,设定阈值t+1≠n也可以改进参与节点106重新生成集体私钥(p)的情况。注意,在阈值可以是t+1≠n的示例实施方式中,可以在整组的节点106向区块链网络广播撤销交易252或披露交易254之一之前,对数据存储120中的加密文档进行解密。因此,当可以在整组的节点106向区块链网络广播撤销交易252或披露交易254之一之前,对数据存储120中的加密文档进行解密时,可能尚未广播撤销交易252或披露交易254之一的节点106可以披露数据存储120处的其他加密文档的内容,并且可以基于这种披露在第一时间锁定阈值过去之前广播撤销交易252或披露交易254之一。
在一些示例实施方式中,文档存储库系统100可以利用秘密共享协议,所述秘密共享协议利用n+r阈值,使得可以需要n+r密钥份额以用于生成集体私钥-公钥对(p,P)的集体私钥(p)。可以将附加的r私钥份额分配到主体节点104或其他授信的第三方。然而,当使用具有n+r阈值的秘密共享协议时,从区块链中检索n个私钥份额将不足以生成用于验证数据存储120处的加密文档的完整性或披露数据存储120处的加密文档的集体私钥(p)。
在一些示例实施方式中,文档存储库系统100的节点106可以执行可公开验证秘密共享(Publicly Verifiable Secret Sharing,PVSS)协议的操作。可以期望的是,相应节点能够验证相应节点是否被分配了正确的密钥份额。可以采用密钥份额验证以允许节点验证相应的密钥份额以及其他节点的密钥份额。
在以下文献中描述了示例PVSS协议:“Publicly verifiable secret sharing(可公开验证的秘密共享)”,来自International Conference on the Theory andApplications of Cryptographic Techniques(Springer Berlin Heidelberg),190至199页,Stadler,M.,1996年5月公开[Stadler]。
在示例PVSS协议中,每个节点Ui可以具有解密函数Di,所述解密函数能够访问用对应的公共加密函数Ei进行加密的信息。以这种方式,经销商节点可以使用公共加密函数来分配密钥份额并且将密钥份额以下面的形式公布:
Ki=Ei(ki),i=1,…,n.
加密份额可以由感兴趣的节点公开验证。节点可以验证其自己的密钥份额,并且可以验证其他节点接收到正确的密钥份额,即,经销商节点是否诚实。
PVSS协议的主要(高级)部分包括:
(i)秘密共享:经销商节点可以运行算法Share(k)=(k1,...,kn),以计算份额并且将份额在参与节点之间分配。
(ii)重构:参与节点可以通过运行算法Recover来重构秘密,使得Recover({Di(Ki)|i∈A})=k。
(iii)验证:可以使用算法PubVerify来验证加密份额。如果节点操作算法PubVerify({Ki|i∈A})=1→Recover({Di(Ki)|i∈A})=u并且u=k,则可以确定经销商节点是诚实的并且密钥份额可以是一致的。
在一些实施方式中,根据恢复阶段的需要,PVSS方案可以是交互的或非交互的。
可以想到基于多个密码系统的PVSS协议的各种实施方式。为了说明,下面重点介绍以下公布中描述的协议:“A simple publicly verifiable secret sharing schemeand its application to electronic voting(一种简单的可公开验证的秘密共享方案及其在电子投票中的应用)”,来自Annual International Cryptology Conference(Springer Berlin Heidelberg),148至164页,Schoenmakers,B.,1999年8月公开。
在初始化阶段,可以使用公共过程,选择组Gq以及两个独立选择的生成器G和g。给定其私钥每个节点可以将/>设定为公钥。
然后经销商节点可以选择至多t-1次随机多项式具有Zq中的系数并且设定a0=k。可以公开承诺/>以及加密份额f(i)(使用参与者的公钥)/>
通过计算经销商节点可以示出加密份额是一致的。特别地,经销商节点可以通过显示/>来生成f(i)的知识证明。
可以使用上文引用的Stadler中的Fiat-Shamir加密技术来执行密钥份额的验证。非交互协议的主要步骤包括下面:
·验证者(每个节点)可以选择随机wi∈Zq,可以计算 并且可以广播这些值。
·使用c=H(Xi,Yi,a1i,a2i),其中H()是加密散列函数,验证者(例如,节点)可以计算并广播ri=wi-f(xi)c。
·给定ri,c,验证者节点可以计算
并且可以证明Xi,Yi,a1i,a2i,1≤i≤n的散列匹配c。
当需要时,参与节点可以重构秘密s,而不必了解其他节点的份额f(xi)。所需的信息可以包括秘密经由Lagrange插值法计算。
其中是Lagrange常数。
以上示例利用经销商节点来计算并分配密钥份额。然而,可以想到可以实施秘密共享协议的无经销商实施,如Fiat-Shamir启发技术所描述的那样(例如,参见“Fiat-Shamir heuristic(Fiat-Shamir启发法)”,https://en.wikipedia.org/wiki/Fiat%E2%80%93Shamir_heuristic,2018年2月26日访问)
如所描述的,在一些实施方式中,节点106可以执行秘密共享加入协议(secretsharing joining protocol)的操作。该组节点可以协作以生成集体公钥(P),其中P=pG,其中G可以是椭圆曲线的选定基点,并且其中p可以是集体私钥(p)。
如所描述的,节点和主体节点可以基于一个或更多个交易的生成以及向区块链网络广播承诺交易来形成相应承诺通道。为了说明示例承诺通道的形成,现在参考图5,图5示出了根据本申请的示例的节点206(图2)、主体节点204(图2)与电子账本502之间交换的交易的序列图500。电子账本502可以是区块链网络的一部分。为了易于说明,在一些示例中,区块链网络可以用于指电子账本502。序列图500可以示出图2所示的承诺通道140的示例形成。
在操作502处,节点206可以生成具有由节点206的私钥份额锁定的承诺交易输出的承诺交易250(图2),使得具有承诺交易输出作为输入的有效的后续交易包括节点206的私钥份额。在一些示例中,承诺交易250可以类似于图3A的承诺交易250。
在操作502处,节点206还可以将承诺交易250传输到主体节点204。通过向主体节点204生成并传输承诺交易250,节点206可以向主体节点204指示节点206正在将文档提交到文档存储库系统100。此外,在操作502,节点206可以将加密文档传输到数据存储120(图1)以用于存储。数据存储120可以是公共可访问的,使得文档存储库系统100的节点106和主体节点104可以访问存储在其中的加密文档;然而,节点106或主体节点104可以需要使用文档加密私钥(li=p+qi)对加密文档进行解密,其中p是基于分配到节点106的一组集体私钥份额的集体私钥,qi是与加密文档关联的节点私钥。
在一些示例中,承诺交易250可以被散列并且节点206可以将承诺交易250的散列传输到主体节点204。在一些实施方式中,承诺交易250的散列可以是用于引用那个承诺交易250的标识符(“ID”)。例如,ID可以包括撤销交易252、披露交易254或超时交易256以用于标识对应的承诺交易250。在一些示例中,承诺交易250的散列可以:(1)将承诺交易250映射到固定数据大小;和/或(2)由于对更改文档进行散列可以产生不同的散列结果,因此协助检测承诺交易250的后续更改。主体节点204或任何节点106可以利用预期的散列结果,以用于确定承诺交易250是否已经被更改。
在504处,节点206可以生成有效的后续交易。有效的后续交易可以是类似于图3B所示的撤销交易252。撤销交易252可以包括具有节点206的私钥份额和节点206的签名的交易输入。在504处,节点还可以将撤销交易252传输到主体节点204。
在506处,主体节点204可以验证撤销交易252包括承诺通道140的授权交易输入和交易输出。例如,主体节点204可以验证撤销交易252至少包括节点206的签名或者期望的输入或输出资产值。在一些示例中,节点206可能尚未提供那个节点206的私钥份额一旦主体节点204验证了撤销交易252包括授权交易输入和交易输出,主体节点204就可以将主体节点的签名(σ(S))附加或联系到撤销交易252,并且将签名的撤销交易传输到节点206。在一些示例中,主体节点204可以在不具有节点206的私钥份额的知识的情况下附加或联系主体节点的签名。即,在506处,主体节点204可以正在建立撤销交易252,使得撤销交易252可以后续被广播到区块链网络。
注意,“未签名”与主体签名的撤销交易的交换发生在区块链“之外”。如果节点206希望从文档存储库系统100的主体节点204或其他节点的考虑中撤回与节点206关联的文档,则节点206可以在稍后的时间向区块链网络广播主体签名的撤销交易252。注意,因为撤销交易252包括节点206的私钥份额所以如果撤销交易252被广播到区块链网络,则撤销交易252可以在区块链上披露那个节点206的私钥份额,使得相应节点可以从区块链中检索用于生成集体私钥(p)的一组私钥份额,集体私钥(p)可以与节点私钥(qi)组合使用以对加密文档EncL(Doci)进行解密。
在508处,节点206可以生成与图3C所示类似的披露交易254。例如,披露交易254可以是上述有效的后续交易的另一示例。披露交易254可以包括具有与节点206关联的文档的散列(HoDi)、节点206的私钥份额与节点206关联的节点私钥-公钥对的节点私钥(qi)和节点206的签名的交易输入。
在510处,主体节点204可以验证披露交易254包括承诺通道140的授权交易输入和交易输出。例如,主体节点204可以验证披露交易254至少包括节点206的签名或者期望的输入输出资产值。在一些示例中,节点206可能尚未提供与节点206关联的文档的散列(HoDi)、节点206的私钥份额或与节点206关联的节点私钥-公钥对的节点私钥(qi)。一旦主体节点204验证了披露交易254包括授权交易输入和交易输出,主体节点204就可以将主体节点的签名(σ(S))附加或联系到披露交易254,并且将签名的披露交易传输到节点206。在一些示例中,主体节点204可以在不具有与节点206关联的文档的散列(HoDi)、节点206的私钥份额/>或与节点206关联的节点私钥-公钥对的节点私钥(qi)的知识的情况下附加或联系主体节点的签名。即,在510处,主体节点204可以正在建立披露交易254,使得披露交易254可以后续被广播到区块链网络。
注意,“未签名”与主体签名的披露交易的交换发生在区块链“之外”。如果节点206希望披露在数据存储120处的加密文档以供参与文档存储库系统100的主体节点204或其他节点的考虑,则节点206可以在稍后的时间向区块链网络广播签名的披露交易254。当节点206向区块链网络广播披露交易254时,节点206在区块链上披露节点206的私钥份额和节点私钥(qi),以有助于生成用于对节点206的加密文档进行解密的文档加密私钥。
在一些实施方式中,节点206可以需要在向区块链网络广播承诺交易250之前,至少一个有效的后续交易(例如,撤销交易252或披露交易254中的至少一个)由主体节点204签名。通过避免向区块链网络广播节点206的承诺交易250,直到接收到主体签名的撤销交易252或主体签名的披露交易254中的至少一个为止,节点206可以确保如果主体签名的撤销交易252或主体签名的披露交易254中的至少一个在第一时间锁定阈值(s1)之前被广播到区块链网络,则第一资产值390(图3A)的一部分可以返回。
因为在本文描述的示例中,在去除对第三资产值393(图3B)或第五资产值395(图3C)的阻碍之前,至少一个有效的后续交易可以需要被主体签名,节点206可以避免广播那个节点206的承诺交易250,直到接收到主体签名的有效的后续交易为止。一旦承诺交易250被广播到区块链网络,节点206就可以向区块链网络广播撤销交易252或披露交易254,以将那个节点206的私钥份额贡献给一组相应私钥份额,作为与所述第三资产值393或所述第五资产值395的交换。在一些实施方式中,撤销交易252可以在披露交易254之前由主体节点204签名,反之亦然。在一些示例中,至少因为所述第五资产值395可以大于所述第三资产值393,所以节点206可以更优选在任何其他有效的后续交易之前由主体节点204签名披露交易254。在一些实施方式中,撤销交易252可以在与披露交易254基本同时的时间由主体节点204签名。
当节点206既不提交撤销交易252也不提交签名的披露交易254时,如本文所描述的,主体节点204可以向区块链网络广播超时交易256(图3D)。超时交易256可以包括交易输出,所述交易输出具有用于为了主体节点204的利益而阻碍第一资产值390的输出。在节点206可以向区块链网络广播承诺交易250以指示那个节点206可以希望将文档提交到文档存储库系统100的情况下,但是在节点206在第一阈值时间段(s1)之前未能继续广播签名的撤销交易252或签名的披露交易254的情况下,主体节点204可以去除对第一资产值390的阻碍。在这种情况下,第一资产值390可以是对节点206未能在区块链上披露那个节点206的私钥份额的惩罚。
在一些实施方式中,节点206或主体节点204可以生成超时交易256。然而,主体节点204可以利用超时交易256来征收对节点206未能在区块链上披露私钥份额的惩罚。因此,在操作512处,主体节点204可以生成超时交易256。超时交易256可以类似于图3D所示的超时交易,并且可以包括具有主体节点204的签名的交易输入。
在514处,节点206可以验证超时交易256包括授权的基于nLockTime的交易,并且一旦验证,节点206就可以将节点206的签名(σ(Ui))附加或联系到超时交易,并且将签名的超时交易传输到主体节点204。
此外,超时交易256可以包括交易输出,所述交易输出包括为了主体节点204的利益对第一资产值390的阻碍。一旦向区块链网络广播了超时交易256,就可以响应于具有主体节点的签名(σ(S))的进一步交易的交易输入来去除对第一资产值的阻碍。注意,超时交易256被中止在区块链网络上成功广播和验证,直到第一时间锁定阈值(s1)过去为止。在一些实施方式中,用于形成承诺通道140的操作可以防止节点206向区块链网络广播承诺交易250,直到节点206将节点的签名(σ(Ui))附加或联系到超时交易256。
在一些实施方式中,一旦超时交易256在区块链网络上成功广播和验证,未阻碍的第一资产值390就可以被分配到其他节点,作为对失去的基于一组私钥份额生成集体私钥的机会的补偿或弥补。回想到,其他节点206中的每个节点取决于每个其他节点206来在区块链上披露相应私钥份额,使得可以生成集体私钥(p),以用于组装文档加密私钥li=p+qi。可以利用文档加密私钥来对源自相应节点Ui的加密文档进行解密。
在一些实施方式中,已经由节点206和主体节点204签名的超时交易256可以存储在数据存储120中,使得如果相应节点206:(1)向区块链网络广播承诺交易250;以及(2)未能在第一时间锁定阈值(s1)之前至少广播由主体节点204签名的撤销交易252或披露交易254,则文档存储库系统100的多个节点106(图1)可以注意到多个节点中的每个节点106可能被惩罚。
在516处,节点206可以向区块链网络广播与该节点206关联的承诺交易250。当承诺交易250被广播到区块链网络时,可以形成承诺通道140。至少基于以上示例,如本文所描述的,所述节点206和主体节点204可以进行操作502至516以用于形成承诺通道140。
此外,为了确保不用等于第一资产值390(图3A)的值对节点206进行惩罚,在518处,节点206可以在第一时间锁定阈值(s1)之前向区块链网络广播撤销交易252或披露交易254。
现在参考图6,图6以流程图形式示出根据本申请的示例的用于将文档提交到文档存储库系统100(图1)的在图1的节点106(例如,第一节点=节点i)处实施的方法600。方法600可以包括可由区块链网络的节点106的一个或更多个处理器执行的操作。方法600可以由节点106执行,以用于将文档提交到文档存储库系统100以供参与文档存储库系统100的主体节点104(图1)或任何其他节点考虑。
在操作610处,处理器可以基于阈值秘密共享协议的操作来检索私钥份额以用于将私钥份额分配或分布到文档存储库系统100中的相应节点。阈值秘密共享协议的示例包括上述Shamir方法;然而,可以想到类似于阈值秘密共享协议的其他方法。如所描述的,集体私钥-公钥对(p,P)的集体私钥(p)可以用于生成文档加密私钥(li=p+qi),以用于对存储在可访问的数据存储120(图1)处的加密文档EncL(Doci)进行解密。
在操作620处,处理器可以计算节点私钥-公钥对(qi,Qi)。计算的节点私钥-公钥对可以用作“一次性代码”。例如,节点私钥-公钥对的节点公钥(Qi)可以用于生成文档加密公钥(Li=P+Qi)。节点私钥(qi)可以经由披露交易254(图2)广播。因此,一旦节点私钥被公开到区块链网络,节点106就可以避免将所述节点私钥-公钥对用于文档存储库系统100内的未来加密操作。
在操作630处,处理器可以生成文档加密公钥(Li=P+Qi)。在一些示例中,处理器可以通过组合集体公钥(经由阈值秘密共享协议的操作而检索)和节点106的节点公钥来生成文档加密公钥。
在操作640处,处理器可以对节点106有任务提交到文档存储库系统100的文档进行加密。加密文档可以存储在数据存储120处。文档存储库系统100中的任何节点可以访问数据存储120以用于检索存储在其中的加密文档。然而,节点可能无法识别加密文档中的任何一个的内容,直到用文档加密私钥对感兴趣的文档进行解密为止。文档加密私钥包括与感兴趣的文档关联的节点私钥和集体私钥的组合。一旦参与文档存储库系统100的阈值数量的节点经由撤销交易252或披露交易254披露了区块链上的相应私钥份额,节点106就可以生成集体私钥(p)。在一些示例中,可以不经由广播到区块链网络的交易来记录加密文档。相反,文档或加密文档的散列可以记录在本文所述的一个或更多个交易上,所述一个或更多个交易可以被广播到区块链网络。
在操作650处,处理器可以生成用于第一承诺通道140(图1)的一个或更多个交易。在示例实施方式中,处理器可以基于由图5中的序列图500描述的操作来生成用于节点106的第一承诺通道140的一个或更多个交易。当已经生成承诺交易250(图2)时,当撤销交易252或披露交易254中的至少一个已经由主体节点204(图2)签名时,并且当承诺交易250已经被广播到区块链网络时,可以确定第一承诺通道140在后续的操作中形成。在一些示例实施方式中,当图5描述的交易中的每个已经被生成并且由节点106签名且由主体节点104签名时,并且当承诺交易250被广播到区块链网络时,可以形成承诺通道140。
在操作660处,响应于接收到由主体节点签名的有效的撤销交易或披露交易,处理器可以向区块链网络广播承诺交易250,使得可以通过挖掘区块链网络的节点来验证承诺交易250。在一些示例中,一旦处理器向区块链网络广播了承诺交易250,处理器就形成了承诺通道140。在一些实施方式中,向区块链网络广播承诺交易250可以类似于将节点106的文档提交到文档存储库系统100,以供参与文档存储库系统100的主体节点或其他节点考虑。
处理器可以避免向区块链网络广播承诺交易250,直到由主体节点104签名了有效的撤销交易或披露交易的这样的时间为止。如本文所描述的,撤销交易或披露交易可以包括用于去除对第一资产值390(图3B、图3C)的至少一部分的阻碍的交易输出,使得第一资产值390的一部分可以作为UTXO返回到节点106,以作为节点106的至少私钥份额对一组私钥份额的贡献的交换。
在一些示例中,如果处理器没有接收到由主体节点签名的有效的撤销交易或披露交易,则处理器可以停止承诺通道的形成并且处理器可以避免向区块链网络广播承诺交易。
一旦已经经由承诺交易的广播由节点106做出了指示,处理器可以正在提交文档以供文档存储库系统100中考虑,在操作670处,处理器可以在第一时间锁定阈值(s1)之前向区块链网络广播撤销交易或披露交易。第一时间锁定阈值(s1)可以由文档存储库系统100的主体节点或任何其他节点建立。第一时间锁定阈值可以被设置为控制通过相应节点到文档存储库系统100的文档提交和私钥份额提交的时间段。
如果那个节点打算考虑那个文档,则处理器可以向区块链网络广播披露交易。文档可以由系统的主体节点或任何其他节点考虑以供选择。例如,文档可以是对由文档管理系统100管理的竞争的提交。在一些其他示例中,文档可以是向由文档管理系统100管理的法院(court)的合法文档提交,其中,可以由法规来规定合法文档提交期限。在其他示例中,文档可以是用于基础设施项目的授予的向政府机构的投标提交,并且其由文档管理系统100管理。通过将文档内容的披露限于经过时间的时间阈值,投标过程可以促进可产生竞争性过程(例如,最佳成本等)的投标提交。
在一些示例中,如果那个节点打算从考虑中去除那个文档,但是打算披露那个节点的私钥份额,使得一组必需的私钥份额可以被收集,以用于生成用于文档解密的集体私钥(p),则处理器可以向区块链网络广播撤销交易。注意,节点可以被激励以向区块链网络广播撤销交易,而不是简单地不广播任何有效的后续交易,至少是因为广播撤销交易:(1)在区块链上披露那个节点的私钥份额;以及(2)为那个节点的利益而阻碍一部分的第一资产值。如果那个节点简单地不广播任何有效的后续交易,则为了主体节点的利益或者为了参与文档存储库系统100的其他节点中的每个节点的利益,第一资产值将被阻碍(经由由主体节点广播的超时交易)。
现在参考图7,图7以流程图形式示出根据本申请的示例的验证提交到文档存储库系统100(图1)的文档的在图1的节点106(例如,第一节点=节点i)处实施的方法700。方法700可以包括可由区块链网络的节点106的一个或更多个处理器执行的操作。方法700可以由节点106执行,以用于验证先前提交到文档存储库系统100的文档。
在操作710处,处理器可以从区块链中检索与文档(Doci)或加密文档EncL(Doci)关联的一组私钥份额。该组私钥份额可以包括私钥份额(例如,),其中可以基于通过相应节点在区块链网络上广播的披露交易或撤销交易来检索该组中的每个私钥份额,所述相应节点参与验证那个相应文档(Doci)。
在操作720处,响应于确定私钥份额的数量大于私钥份额阈值,处理器可以从检索到的该组私钥份额(例如,)生成集体私钥-公钥对(p,P)的集体私钥(p)。在一些示例中,其中n个节点可以参与验证提交到文档存储库系统100的文档,私钥份额阈值可以是n个私钥份额。即,为了使节点106或主体节点104中的任何一个能够验证数据存储120(图1)中的文档,n个参与节点中的每个节点必须在区块链上披露它们的相应私钥份额/>如果n个节点中的一个或更多个节点不能披露它们的相应私钥份额(例如,经由广播撤销交易或披露交易),则处理器可能不能够生成用于生成文档加密私钥(li=p+qi)的集体私钥(p)。如果n个节点中的一个或更多个节点不能披露它们的相应私钥,则参与文档存储库系统100的节点106都可能无法对存储在数据存储120处的加密文档进行解密。即,在没有来自n个节点中的每个节点的私钥份额的协作/贡献的情况下,没有节点可以解密和验证加密文档。
在一些示例中,其中n个节点可以参与验证提交到文档存储库系统100的文档,私钥份额阈值可以小于参与文档存储库系统100的节点的数量。因此,如果n个节点中的一个或更多个节点不能披露它们的相应私钥,但是如果私钥份额的数量大于私钥份额阈值,则处理器可以能够生成用于生成文档加密私钥(li=p+qi)的集体私钥(p)。在一些实施方式中,可以期望提供小于参与文档存储库系统100的节点的数量的私钥份额阈值,以解决节点可能失去与区块链网络的连接的问题,或解决有限数量的节点不能在第一时间锁定阈值(s1)之前广播披露交易或撤销交易的问题。
在一些示例中,如果处理器不能在第一时间锁定阈值(s1)之前从区块链中检索到比私钥份额阈值大的必要数量的私钥份额,则处理器可能无法对存储在数据存储120处的加密文档进行解密,至少是因为可能无法生成集体私钥。在这种情况下,在一些实施方式中,主体节点104(图1)可以向区块链网络广播超时交易256(图2),并且对第一资产值390(图3D)的阻碍可以被去除并后续地包括在锁定脚本中,有利于文档存储库系统100中的主体节点104或其他节点。
如果处理器能够从检索到的该组私钥份额生成集体私钥,则在操作730处,处理器可以通过:(1)生成文档加密私钥(li=p+qi);以及(2)使用文档加密私钥对加密文档进行解密,对加密文档(EncL(Doci))进行解密。
在一些实施方式中,处理器可以进行用于对未加密的文档进行散列处理(例如,H(θ)),以及用从与发起该文档的节点关联的广播的承诺交易中检索到的文档的散列来验证文档的散列(H(Doci))的操作。注意,一旦已经在区块链上披露了必要数量的私钥份额,文档存储库系统100中的任何节点106就可以基于以下的组合对加密文档(EncL(Doci))进行解密:(1)从该组私钥份额生成的集体私钥;以及(2)由与文档(Doci)关联的相应节点提供的节点私钥(Qi)。在一些实施方式中,参与文档存储库系统100的每个节点可以执行以下操作:(1)对加密文档进行解密;(2)对解密文档进行散列处理;以及(3)验证解密文档的散列对应于从与发起那个文档的节点关联的广播的承诺交易中检索到的文档的散列。
现在参考图8,图8以框图形式示出根据本申请的示例的简化的节点800。节点800包括处理器802,所述处理器可以包括一个或更多个微处理器、专用集成电路(ASIC)、微控制器或类似的计算机处理装置。节点800还可以包括存储器804和网络接口806,所述存储器可以包括用于存储值、变量以及在一些情况下处理器能执行的程序指令的持久性存储器和非持久性存储器。
节点800可以包括包含处理器能执行的指令的处理器能执行的区块链应用808,当执行所述处理器能执行的指令时,导致处理器802执行本文描述的一个或更多个功能或操作。
应当注意,上述实施例是说明而不是限制本发明,并且本领域技术人员将能够设计许多替代实施例,而不脱离由所附权利要求限定的本发明的范围。在权利要求中,置于括号中的任何附图标记都不应解释为对权利要求的限制。词语“包括”和“包含”等不排除任何权利要求或整个说明书中列出的元件或步骤之外的元件或步骤的存在。在本说明书中,“包括”是指“包括或由……组成”,“包含”是指“包括或由……组成”。元件的单数形式并不排除这样的元件的复数形式,反之亦然。本发明可以通过包括多个不同元件的硬件以及通过适当编程的计算机来实现。在列举多个装置的装置权利要求中,这些装置中的多个可以由一个且相同的硬件来体现。在互不相同的从属权利要求中记载了某些措施这一事实,并不表示不能使用这些措施的组合而受益。

Claims (15)

1.一种用于控制区块链上的资源的访问和完整性的计算机实现的方法,所述方法通过区块链网络中的多个节点和主体节点来验证数字资源,所述多个节点具有相应私钥份额,其中,集体私钥-公钥对的集体私钥基于成组的所述相应私钥份额,并且其中,所述多个节点中的第一节点具有第一节点私钥-公钥对,所述方法包括:在所述第一节点处,
通过组合第一节点私钥-公钥对的第一节点公钥和集体私钥-公钥对的集体公钥来生成数字资源加密公钥;
使用数字资源加密公钥对数字资源进行加密;
通过以下步骤生成用于第一承诺通道的一个或更多个区块链交易:
生成承诺交易,承诺交易具有被第一节点的私钥份额锁定的承诺交易输出,使得具有承诺交易输出作为输入的有效后续交易包括第一节点的私钥份额,和
接收由主体节点签名的有效后续交易;以及
向区块链网络广播承诺交易。
2.根据权利要求1所述的方法,还包括:
在第一时间锁定阈值之前,由第一节点向区块链网络广播由主体节点签名的有效后续交易,以在区块链上披露第一节点的私钥份额。
3.根据权利要求1或2所述的方法,还包括:
从区块链中检索与数字资源关联的成组的私钥份额;
响应于确定私钥份额的数量大于私钥份额阈值,从检索到的成组的私钥份额重新生成集体私钥-公钥对的集体私钥;以及
使用数字资源加密私钥对加密的数字资源进行解密,数字资源加密私钥是重新生成的集体私钥和第一节点私钥-公钥对的第一节点私钥的组合。
4.根据权利要求1或2所述的方法,其中,承诺交易具有包括多于一个的解锁选项的交易输出,解锁选项包括披露选项,披露选项需要数字资源的散列、第一节点的私钥份额、第一节点私钥-公钥对的第一节点私钥、主体节点的签名和第一节点的签名,使得有效后续交易包括具有用于选择披露选项的数字资源的所述散列、第一节点的所述私钥份额、第一节点私钥-公钥对的所述第一节点私钥、主体节点的所述签名和第一节点的所述签名的交易输入。
5.根据权利要求1或2所述的方法,其中,承诺交易具有包括多于一个的解锁选项的交易输出,解锁选项包括撤销选项,撤销选项需要第一节点的私钥份额、主体节点的签名和第一节点的签名,使得有效后续交易包括具有用于选择撤销选项的第一节点的所述私钥份额、主体节点的所述签名和第一节点的所述签名的交易输入。
6.根据权利要求1或2所述的方法,其中,承诺交易具有包括多于一个的解锁选项的交易输出,解锁选项包括超时选项,超时选项需要主体节点的签名和第一节点的签名,使得有效后续交易包括具有用于选择超时选项的主体节点的所述签名和第一节点的所述签名的交易输入。
7.根据权利要求1或2所述的方法,其中,加密数字资源存储在公共存储库中,并且其中,承诺交易向区块链网络广播由第一节点生成的文档被存储在公共存储库处。
8.根据权利要求1或2所述的方法,其中,响应于至少具有主体节点的签名和第一节点的签名的有效后续交易的交易输入,去除对第一资产值的阻碍。
9.根据权利要求1或2所述的方法,其中,有效后续交易是由主体节点签名的撤销交易,并且其中,在接收由主体节点签名的撤销交易之前,所述方法还包括:
生成包括交易输入的撤销交易,交易输入具有第一节点的私钥份额和第一节点的签名。
10.根据权利要求9所述的方法,其中,响应于具有第一节点的私钥份额、主体节点的签名和第一节点的签名的撤销交易的交易输入,去除对第一资产值的阻碍,
并且其中,响应于具有主体节点的签名的进一步交易的交易输入,去除对第二资产值的阻碍,并且其中,响应于具有第一节点的签名的进一步交易的交易输入,去除对第三资产值的阻碍,
并且其中,第三资产值是第一资产值与第二资产值之间的差。
11.根据权利要求1或2所述的方法,其中,有效后续交易是由主体节点签名的披露交易,并且其中,在接收由主体节点签名的披露交易之前,所述方法还包括:
生成披露交易以包括具有数字资源的散列、第一节点的私钥份额、第一节点私钥-公钥对的第一节点私钥和第一节点的签名的交易输入。
12.根据权利要求11所述的方法,其中,响应于具有数字资源的散列、第一节点的私钥份额、第一节点私钥-公钥对的第一节点私钥、主体节点的签名和第一节点的签名的披露交易的交易输入,去除对第一资产值的阻碍,
并且其中,响应于具有主体节点的签名的进一步交易的交易输入,去除对第四资产值的阻碍,并且其中,响应于具有第一节点的签名的进一步交易的交易输入,去除对第五资产值的阻碍,
并且其中,第五资产值是第一资产值与第四资产值之间的差。
13.根据权利要求1或2所述的方法,其中,生成用于第一承诺通道的所述一个或更多个交易还包括生成超时交易,并且其中,在第一时间锁定阈值过去之后,超时交易符合由主体节点向区块链网络广播的条件。
14.一种用于控制区块链上的资源的访问和完整性的计算装置,用于参与验证数字资源,所述计算装置是区块链网络中的多个节点的第一节点,所述计算装置包括:
处理器;
存储器;
网络接口,用于提供与所述多个节点中的其他节点的网络连接;以及
包含计算机可执行指令的区块链应用,计算机可执行指令在被处理器执行时导致处理器执行根据权利要求1至13中的任一项所述的方法。
15.一种非暂时性处理器可读介质,存储有处理器可执行指令,以通过区块链网络中的多个节点验证数字资源,其中,处理器可执行指令在被所述多个节点中的一个节点中的处理器执行时导致处理器执行根据权利要求1至13中的任一项所述的方法。
CN201980018261.7A 2018-03-09 2019-03-05 用于控制区块链上的资源的访问和完整性的方法和系统 Active CN111819827B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410242256.7A CN118018301A (zh) 2018-03-09 2019-03-05 用于控制区块链上的资源的访问和完整性的方法和系统

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1803815.8 2018-03-09
GBGB1803815.8A GB201803815D0 (en) 2018-03-09 2018-03-09 Computer-implemented methods and systems
PCT/IB2019/051765 WO2019171270A1 (en) 2018-03-09 2019-03-05 Methods and systems for controlling access to, and integrity of, resources on a blockchain

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202410242256.7A Division CN118018301A (zh) 2018-03-09 2019-03-05 用于控制区块链上的资源的访问和完整性的方法和系统

Publications (2)

Publication Number Publication Date
CN111819827A CN111819827A (zh) 2020-10-23
CN111819827B true CN111819827B (zh) 2024-03-22

Family

ID=61972891

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201980018261.7A Active CN111819827B (zh) 2018-03-09 2019-03-05 用于控制区块链上的资源的访问和完整性的方法和系统
CN202410242256.7A Pending CN118018301A (zh) 2018-03-09 2019-03-05 用于控制区块链上的资源的访问和完整性的方法和系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202410242256.7A Pending CN118018301A (zh) 2018-03-09 2019-03-05 用于控制区块链上的资源的访问和完整性的方法和系统

Country Status (6)

Country Link
US (3) US11243943B2 (zh)
EP (1) EP3763098A1 (zh)
JP (2) JP7275155B2 (zh)
CN (2) CN111819827B (zh)
GB (1) GB201803815D0 (zh)
WO (1) WO2019171270A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11121876B2 (en) * 2018-04-11 2021-09-14 Microsoft Technology Licensing, Llc Distributed access control
SG11202104773QA (en) * 2018-12-10 2021-06-29 Algorand Inc Using virtual blockchain protocols to implement a fair electronic exchange
RU2719451C1 (ru) * 2018-12-21 2020-04-17 Алибаба Груп Холдинг Лимитед Защита данных цепочек блоков на основе общей модели на основе счетов и гомоморфного шифрования
CN110532806A (zh) * 2019-07-26 2019-12-03 深圳壹账通智能科技有限公司 标书管理方法、系统及计算机可读存储介质
US11362808B2 (en) * 2019-12-06 2022-06-14 Sasken Technologies Ltd Method and system for consensus in a permissioned blockchain
US11675854B2 (en) 2020-01-20 2023-06-13 International Business Machines Corporation Conflict-free version control
US11403348B2 (en) * 2020-01-20 2022-08-02 International Business Machines Corporation Conflict-free version control
CN112417469B (zh) * 2020-11-02 2023-06-16 迅鳐成都科技有限公司 一种基于硬件加密的区块链轻节点数据采集方法及装置
CN112434341B (zh) * 2020-11-02 2023-07-11 迅鳐成都科技有限公司 一种防业务篡改的区块链轻节点数据采集方法及装置
CN112751667B (zh) * 2020-12-29 2023-03-14 北京百度网讯科技有限公司 密钥生成方法、签名和验签方法、装置、设备和介质
TWI803831B (zh) * 2021-02-23 2023-06-01 馬思正 金幣股,基於多重價值的加密貨幣系統
WO2022228423A1 (zh) * 2021-04-29 2022-11-03 中国人民银行数字货币研究所 一种数字证书管理方法和装置
CN113239374B (zh) * 2021-05-11 2024-02-02 中国联合网络通信集团有限公司 资源兑换方法和节点服务器
US11677552B2 (en) * 2021-09-09 2023-06-13 Coinbase Il Rd Ltd. Method for preventing misuse of a cryptographic key
WO2023101933A1 (en) * 2021-11-30 2023-06-08 Nagravision Sarl Systems and techniques for processing non-fungible tokens
WO2024154060A1 (en) * 2023-01-17 2024-07-25 Nagravision Sarl Systems and techniques for multi-party computation (mpc) signature with key cards and mobile terminals

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016161073A1 (en) * 2015-03-31 2016-10-06 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
CN106411503A (zh) * 2016-11-28 2017-02-15 中国银行股份有限公司 区块链投票记账模式的记账方法及系统、投票及记账节点
CN106845960A (zh) * 2017-01-24 2017-06-13 上海亿账通区块链科技有限公司 基于区块链的安全交易方法及系统
CN106982205A (zh) * 2017-03-01 2017-07-25 中钞信用卡产业发展有限公司北京智能卡技术研究院 基于区块链的数字资产处理方法和装置
CN107180353A (zh) * 2017-06-29 2017-09-19 飞天诚信科技股份有限公司 一种可撤销智能合约交易的实现方法及装置
CN107222478A (zh) * 2017-05-27 2017-09-29 暨南大学 基于区块链的软件定义网络控制层安全机制构建方法

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181017B1 (en) * 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7167559B2 (en) * 2001-03-28 2007-01-23 Matsushita Electric Industrial Co., Ltd. Information security device, exponentiation device, modular exponentiation device, and elliptic curve exponentiation device
US8868467B2 (en) * 2002-10-23 2014-10-21 Oleg Serebrennikov Method for performing transactional communication using a universal transaction account identifier assigned to a customer
US10147076B2 (en) * 2002-10-01 2018-12-04 Andrew H B Zhou Digital currency (virtual payment cards) issued by central bank for mobile and wearable devices
KR100601706B1 (ko) * 2004-10-15 2006-07-18 삼성전자주식회사 Drm 시스템에 있어서 시스템 키를 공유하고 생성하는방법 및 장치
US8069470B1 (en) * 2005-04-13 2011-11-29 Oracle America, Inc. Identity and authentication in a wireless network
US7987368B2 (en) * 2005-10-28 2011-07-26 Microsoft Corporation Peer-to-peer networks with protections
WO2008127446A2 (en) 2006-12-01 2008-10-23 President And Fellows Of Harvard College A method and apparatus for time-lapse cryptography
WO2009028137A1 (ja) * 2007-08-28 2009-03-05 Panasonic Corporation 鍵端末装置、暗号処理用lsi、固有鍵生成方法及びコンテンツシステム
US8483386B2 (en) * 2007-12-12 2013-07-09 Nec Corporation Share generation apparatus, reconstruction apparatus, verification apparatus, and secret sharing system
JP4613969B2 (ja) * 2008-03-03 2011-01-19 ソニー株式会社 通信装置、及び通信方法
CN101420300B (zh) * 2008-05-28 2013-05-29 北京易恒信认证科技有限公司 双因子组合公钥生成和认证方法
CN102057618A (zh) * 2008-06-23 2011-05-11 松下电器产业株式会社 信息处理装置、加密密钥的管理方法、计算机程序及集成电路
US8817988B1 (en) * 2012-12-31 2014-08-26 Emc Corporation Variable epoch scheduler for proactive cryptography systems
US9396320B2 (en) * 2013-03-22 2016-07-19 Nok Nok Labs, Inc. System and method for non-intrusive, privacy-preserving authentication
WO2015125197A1 (ja) * 2014-02-18 2015-08-27 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 認証方法及び認証システム
US9858569B2 (en) * 2014-03-21 2018-01-02 Ramanan Navaratnam Systems and methods in support of authentication of an item
WO2015173434A1 (en) 2014-05-16 2015-11-19 Nec Europe Ltd. Method for proving retrievability of information
WO2016049406A1 (en) * 2014-09-26 2016-03-31 Technicolor Usa, Inc. Method and apparatus for secure non-interactive threshold signatures
US10230526B2 (en) * 2014-12-31 2019-03-12 William Manning Out-of-band validation of domain name system records
US9397985B1 (en) * 2015-04-14 2016-07-19 Manifold Technology, Inc. System and method for providing a cryptographic platform for exchanging information
US11062303B2 (en) * 2015-06-08 2021-07-13 Blockstream Corporation Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction
GB2540977A (en) 2015-07-31 2017-02-08 British Telecomm Expendable access control
US10303887B2 (en) 2015-09-14 2019-05-28 T0.Com, Inc. Data verification methods and systems using a hash tree, such as a time-centric merkle hash tree
US20170116693A1 (en) 2015-10-27 2017-04-27 Verimatrix, Inc. Systems and Methods for Decentralizing Commerce and Rights Management for Digital Assets Using a Blockchain Rights Ledger
WO2017095833A1 (en) * 2015-11-30 2017-06-08 Erik Voorhees Systems and methods for improving security in blockchain-asset exchange
GB2571390B (en) 2016-02-03 2022-07-20 Luther Systems Ltd Systems and method for secure management of digital contracts
US20170243193A1 (en) 2016-02-18 2017-08-24 Skuchain, Inc. Hybrid blockchain
US10063529B2 (en) 2016-03-28 2018-08-28 Accenture Global Solutions Limited Secure 3D model sharing using distributed ledger
US20170324711A1 (en) 2016-05-03 2017-11-09 The Real Mccoy, Llc Inc. Method for establishing, securing and transferring computer readable information using peer-to-peer public and private key cryptography
GB2538022B (en) 2016-08-20 2018-07-11 PQ Solutions Ltd Multiple secrets in quorum based data processing
WO2018100227A1 (en) 2016-11-30 2018-06-07 Nokia Technologies Oy Electronic documents management
US10581613B2 (en) * 2017-06-09 2020-03-03 Ecole Polytechnique Federale De Lausanne (Epfl) Cryptographically verifiable data structure having multi-hop forward and backwards links and associated systems and methods
CN107679976B (zh) 2017-09-28 2021-02-12 电子科技大学 一种基于区块链的拍卖方法
US10887085B2 (en) * 2018-01-15 2021-01-05 Unbound Tech Ltd. System and method for controlling usage of cryptographic keys

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016161073A1 (en) * 2015-03-31 2016-10-06 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
CN106411503A (zh) * 2016-11-28 2017-02-15 中国银行股份有限公司 区块链投票记账模式的记账方法及系统、投票及记账节点
CN106845960A (zh) * 2017-01-24 2017-06-13 上海亿账通区块链科技有限公司 基于区块链的安全交易方法及系统
CN106982205A (zh) * 2017-03-01 2017-07-25 中钞信用卡产业发展有限公司北京智能卡技术研究院 基于区块链的数字资产处理方法和装置
CN107222478A (zh) * 2017-05-27 2017-09-29 暨南大学 基于区块链的软件定义网络控制层安全机制构建方法
CN107180353A (zh) * 2017-06-29 2017-09-19 飞天诚信科技股份有限公司 一种可撤销智能合约交易的实现方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Eleftherios Kokoris-Kogias.CALYPSO: Auditable Sharing of Private Data over Blockchains. Kokoris-Kogias E,Alp E C,Siby SD,et al.CALYPSO: Auditable Sharing of Private Data over Blockchains[J].IACR Cryptol.ePrint Arch.Tech.Rep,2018,209:2018..2018,1-17. *

Also Published As

Publication number Publication date
JP2021516902A (ja) 2021-07-08
CN111819827A (zh) 2020-10-23
US20240211467A1 (en) 2024-06-27
US11921706B2 (en) 2024-03-05
JP7275155B2 (ja) 2023-05-17
GB201803815D0 (en) 2018-04-25
WO2019171270A1 (en) 2019-09-12
EP3763098A1 (en) 2021-01-13
CN118018301A (zh) 2024-05-10
US20220335036A1 (en) 2022-10-20
JP2023100837A (ja) 2023-07-19
US11243943B2 (en) 2022-02-08
US20210004366A1 (en) 2021-01-07

Similar Documents

Publication Publication Date Title
CN111819827B (zh) 用于控制区块链上的资源的访问和完整性的方法和系统
US11799637B2 (en) Methods and systems for blockchain-implemented event-lock encryption
CN110084068B (zh) 区块链系统及用于区块链系统的数据处理方法
US11477032B2 (en) System and method for decentralized-identifier creation
US11533164B2 (en) System and method for blockchain-based cross-entity authentication
JP6841911B2 (ja) 情報保護用のシステム及び方法
US11410145B2 (en) Blockchain-implemented method for control and distribution of digital content
CA3015697C (en) Systems and methods for distributed identity verification
US20210089676A1 (en) Methods and systems for secure data exchange
US20190295069A1 (en) Systems and methods for integrating cryptocurrency wallet identifiers with digital certificates
CN112470423A (zh) 用于资产混合的计算机实现的系统和方法
US20230188353A1 (en) Multi-issuer anonymous credentials for permissioned blockchains
CN115130147A (zh) 基于区块链的版权声明方法及版权声明装置
Almarwani et al. A novel approach to data integrity auditing in PCS: Minimising any Trust on Third Parties (DIA-MTTP)
CN114363362A (zh) 数据处理方法、装置、服务器及可读存储介质

Legal Events

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