Controlled cryptographic private key release
By employing a group of nodes to manage cryptographic private keys through a dealer-free secret sharing protocol, the method ensures secure data or token access only after an event occurs, addressing the limitations of existing blockchain technologies in event-based control.
Patent Information
- Application Number
- JP2024177772
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2017-06-26
- Filing Date
- 2024-10-10
- Publication Date
- 2025-01-23
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Existing blockchain technologies are limited in their applications beyond crypto-denominated payments, lacking the ability to securely control the release of data or tokens based on specific events.
A method involving a group of nodes that cooperate to run a dealer-free secret sharing protocol to generate and manage cryptographic private keys, allowing secure encryption and decryption based on event occurrence, using a threshold scheme to reconstruct the private key only when a predetermined event is detected.
Enables secure data or token access only after a specified event occurs, providing tamper-resistant and decentralized control over digital assets, applicable in estate planning and commercial security.
Smart Images

Figure 2025011222000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates generally to data security and cryptography, and more particularly to a method and system for the controlled opening of a private key associated with a public key used to lock data or tokens. The present invention is particularly suited, but not limited to, for securing data to allow it to be unlocked (for access and / or transfer) only after the occurrence of an event. [Background technology]
[0002] The term "blockchain" is used herein to encompass all forms of electronic, computer-based distributed ledgers, including but not limited to blockchain and transaction chain technologies, permissioned and unpermissioned ledgers, shared ledgers, and variations thereof. The most widely known application of blockchain technology is the Bitcoin ledger, although other blockchain implementations have been proposed and developed. For convenience and purposes of explanation, Bitcoin may be referred to herein, but it should be noted that the present invention is not limited to use with the Bitcoin blockchain, and alternative blockchain implementations and protocols are within the scope of the present invention.
[0003] A blockchain is a consensus-based electronic ledger implemented as a computer-based decentralized distributed system composed of blocks, which consist of transactions and other information. In Bitcoin, each transaction is a data structure that encodes the transfer of control of digital assets between participants and contains at least one input and at least one output. Each block contains a hash of the previous block, and blocks chain together to create a permanent, immutable record of all transactions that have been written to the blockchain since its inception. Transactions contain small programs, known as scripts, embedded in their inputs and outputs. Scripts specify how and by whom the output of a transaction can be accessed. On the Bitcoin platform, these scripts are written using a stack-based scripting language.
[0004] In order for a transaction to be written to the blockchain, it must be "verified." Some network nodes act as miners and perform work to ensure that each transaction is valid, and invalid transactions are rejected from the network. For example, a software client installed on a node performs this verification work for transactions that reference unspent transactions (UTXOs). The verification may be done by executing its lock and unlock scripts. If the execution of the lock and unlock script evaluates to TRUE, and certain other conditions are met, the transaction is valid and the transaction may be written to the blockchain. Thus, for a transaction to be written to the blockchain, it must i) be verified by the node that received it, and if the transaction is verified, that node relays the transaction to other nodes in the network, ii) be added to a new block constructed by miners, and iii) be mined, i.e., added to the public ledger of past transactions. A transaction is considered confirmed when a sufficient number of blocks have been added to the blockchain to make the transaction effectively irreversible.
[0005] While blockchain technology is most widely known for its use in implementing cryptocurrencies, digital entrepreneurs are beginning to explore the use of both the cryptocurrency security system based on Bitcoin and the data that can be stored on the blockchain to implement new systems. It would be highly advantageous if blockchain could be used for automated tasks and processes that are not limited to cryptocurrency-denominated payments only. Such solutions would be more diverse in their uses, yet be able to take advantage of the advantages of blockchain (e.g. permanence, tamper-resistant record of events, decentralized process, etc.). Summary of the Invention [Problem to be solved by the invention]
[0006] Therefore, there is a need for improved techniques to provide additional processes and functionality through blockchain technology. [Means for solving the problem]
[0007] The invention is defined in the appended claims.
[0008] Thus, according to the present invention there is provided a method as defined in the accompanying claims.
[0009] As described in more detail below, a requester node may issue a monitoring request requesting that multiple other nodes form a group. The monitoring request may be a request for nodes to form a group to monitor an event. The nodes of the group may be configured to cooperate with each other to run a dealer-free secret sharing protocol twice to generate two shared secrets: a cryptographic private key and a group-stake private key. The nodes may hold private key shares associated with these private keys, which may be obtained according to a threshold scheme that allows a full private key to be reconstructed from at least a threshold of the associated private key shares. The nodes of the group may cooperate with each other to generate and provide cryptographic public keys to other nodes, such as the requester node. The nodes of the group then monitor for an event and, upon detection of the event, release the private key shares associated with the cryptographic private key. The event may be a pre-determined event or a specified event.
[0010] Advantageously, a node with a cryptographic public key may add an "event lock" to data or tokens to restrict access or control to such data or tokens until an event occurs. Thus, the techniques described herein may be used to secure data or tokens, such as network resources or other digital assets / resources, such that such data or tokens can only be unlocked when an event occurs. As an example, a cryptographic private key can only be obtained after a threshold of the associated private key shares is opened when an event is detected, so that data encrypted with the cryptographic public key can only be decrypted after the event occurs. Such security techniques may be used, for example, in estate planning (to allow the contents of a will to be determined only after the testator has died), for commercial security or to publish embargoes and "dead man switches" for confidential information. It will be appreciated that such data security techniques may also be useful for other applications besides those described herein.
[0011] Thus, according to the invention, there may be provided a computer-implemented method comprising: storing encrypted public keys associated with a group of nodes, where each node in the group is associated with a secret key share, the secret key share being associated with a threshold private key reconstruction scheme of the group such that an encrypted private key associated with the encrypted public key can be determined from at least a threshold of the secret key shares; iteratively obtaining a plurality of indicators provided by a plurality of nodes of the group, each of the indicators representing one of an encrypted private key share or a dummy signal; and identifying an encrypted private key by iteratively: i) selecting a subset of the indicators, ii) calculating potential shared secrets, and iii) evaluating each potential shared secret against the encrypted public key to determine whether the potential shared secret is an encrypted private key.
[0012] In some implementations, the computer-implemented method may include decrypting data previously encrypted with the encryption public key when the potential shared secret is determined to be a encryption private key.
[0013] In some implementations, the computer-implemented method may include, when it is determined that the potential shared secret is a cryptographic private key, generating a signature based on the cryptographic private key and appending the signature to an unlock script for the transaction to unlock a token previously encumbered with the cryptographic public key.
[0014] In some implementations, the computer-implemented method may include identifying nodes of a group that have provided an indicator representing a cryptographic secret key sharing within a defined window of opportunity, and collaboratively generating a valid signature for a transaction to transfer one or more digital assets to one or more of the identified nodes. Collaboratively generating a valid signature for a transaction to transfer one or more digital assets to one or more of the identified nodes may include collaboratively generating a valid signature for distributing one or more tokens provided by a requester that issued a monitoring request associated with the event.
[0015] In some implementations, the computer-implemented method further comprises generating one of the encrypted secret key shares and iteratively providing indicators to a plurality of nodes of the group, the indicators including a dummy signal when the predetermined event does not occur and the encrypted secret key share in response to detecting the predetermined event. In some implementations, the dummy signal may be the same length as the secret key share. In some implementations, the computer-implemented method may include randomly generating the dummy signal.
[0016] In some implementations, the computer-implemented method may include generating a group stake private key share and generating a group stake public key in cooperation with other nodes of the group, the group stake private key share allowing a subset of nodes of the group that control at least a threshold number of the group stake private key shares to generate valid signatures on behalf of the group, and intercepting the tokens using the group stake public key. In some implementations, the indicator provided to the plurality of nodes of the group includes a signature generated with the group stake private key.
[0017] In some implementations, the computer-implemented method may include detecting a monitoring request and, in response to detecting the monitoring request, sending a request to join the group and establishing a secure communication channel with other nodes in the group.
[0018] In some implementations, the group stake secret key share is generated by running a dealer-free secret sharing protocol with a threshold of a threshold signature scheme, where the threshold may be defined in the monitoring request.
[0019] In some implementations, the computer-implemented method may include determining that one of the nodes in the group has violated the protocol by providing an associated private key share in the plurality of indicators, and in response to determining that the one of the nodes in the group has violated the protocol, cooperating with other nodes in the group to confiscate the stake of the one of the nodes in the group.
[0020] According to the present invention, there may be provided an electronic device. The electronic device may include an interface device, a processor coupled to the interface device, and a memory coupled to the processor. The memory may have computer-executable instructions stored thereon that, when executed, configure the processor to perform the methods described herein.
[0021] According to the present invention, a computer-readable storage medium may be provided that may include computer-executable instructions that, when executed, configure a processor to perform the methods described herein.
[0022] These and other aspects of the invention will be apparent from and elucidated in conjunction with the embodiment(s) described hereinafter. One embodiment of the invention will now be described, by way of example only, with reference to the accompanying drawings, in which: [Brief description of the drawings]
[0023] [Figure 1] FIG. 1 is a block diagram of an exemplary blockchain network. [Diagram 2] FIG. 1 is a block diagram of an exemplary electronic device that may function as a node in a blockchain network. [Diagram 3] 1 is a flow chart of an exemplary method for requesting and using event-locked encryption. [Figure 4] 1 is a flowchart of an example method for participating as a node in a group in an event-locked encryption scheme. [Diagram 5] 1 is a flow chart of an exemplary method for identifying a cryptographic private key. [Figure 6] FIG. 2 shows an example of a true signal distribution in a method for identifying a cryptographic private key. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0024] Blockchain Network Reference is first made to FIG. 1 , which illustrates in block diagram form an example blockchain network 100 associated with a blockchain. The blockchain network may be a public blockchain network. A public blockchain network is a peer-to-peer open membership network that anyone can join without an invitation or consent from other members. Any distributed electronic device that runs an instance of the blockchain protocol on which the blockchain network 100 operates may join the blockchain network 100. Such distributed electronic devices may be referred to as nodes 102. The blockchain protocol may be, for example, the Bitcoin protocol.
[0025] The electronic devices that run the blockchain protocol and form the nodes 102 of the blockchain network 100 may be of various types, including computers, such as desktop computers, laptop computers, tablet computers, servers, mobile devices such as smartphones, wearable computers such as smart watches, or other electronic devices.
[0026] The nodes 102 of the blockchain network 100 are coupled to one another using suitable communication technologies, which may include wired and wireless communication technologies. Such communications follow a protocol associated with the blockchain network. For example, if the blockchain is the Bitcoin blockchain, the Bitcoin protocol may be used.
[0027] Nodes 102 maintain a global ledger of all transactions on the blockchain. The global ledger is therefore a distributed ledger. Each node 102 may store a full or partial copy of the global ledger. In the case of a blockchain secured by proof-of-work, transactions by nodes 102 that affect the global ledger are verified by other nodes 102 so that the validity of the global ledger is maintained. When a blockchain is a proof-of-work based blockchain, blocks are also verified by checking the proof-of-work presented with the block.
[0028] At least some of the nodes 102 act as miners 104 of the blockchain network 100. The blockchain network 100 of FIG. 1 may be a proof-of-work blockchain in which miners 104 perform expensive computations to facilitate transactions on the blockchain. For example, a proof-of-work blockchain may require miners to solve a cryptographic problem. In Bitcoin, miners 104 find a nonce such that the block header hashes, using SHA-256, to a number less than a value defined by the current difficulty. The hashing power required for the proof-of-work algorithm means that a transaction is considered to be indeed irreversible after a certain number of blocks on it have been mined. The miner 104 who solves the cryptographic problem creates a new block for the blockchain and broadcasts the new block to the other nodes 102. The other nodes 102 verify that the miner 104 has indeed solved the cryptographic problem and therefore demonstrated sufficient proof-of-work before accepting that the block should be added to the blockchain. Blocks are added to the blockchain (i.e., a distributed global ledger) by consensus of nodes 102.
[0029] As an alternative to proof-of-work, the blockchain network 100 may instead be a proof-of-stake blockchain network. A proof-of-stake blockchain network provides an alternative mechanism for achieving consensus. In a proof-of-stake blockchain network, the blockchain is secured by proof-of-stake rather than proof-of-work. Under proof-of-stake, miners deposit a margin of digital assets and their probability of being selected as a node to mine a block is proportional to the amount of digital assets provided as margin. Proof-of-stake blockchain systems can be used to avoid the computational expense and energy required for mining on a proof-of-work blockchain. Additionally, a proof-of-stake blockchain can allow for more frequent and more regular block creation than a proof-of-work blockchain.
[0030] A block created by miners 104 contains transactions that have been broadcast to the blockchain by nodes 102. For example, a block may contain a transaction from an address associated with one of the nodes 102 to an address associated with another of the nodes 102. In this way, a block serves as a record of transactions from one address to another. Parties that request a transaction to be included in a block prove that they are authorized to initiate a transfer (e.g., in the case of Bitcoin, spend Bitcoin) by signing the request with a private key that corresponds to their public key. Only if the request is validly signed can the transfer be added to the block.
[0031] In Bitcoin, there is a one-to-one correspondence between public keys and addresses; that is, each public key is associated with a single address. Thus, references herein to transferring digital assets to or from a public key (e.g., paying a public key and transferring digital assets to or from an address associated with that public key) refer to the same operation.
[0032] Some of the nodes 102 in the blockchain network may not act as miners, but instead participate as validating nodes. Validating transactions may include checking signatures, verifying references to valid UTXOs, etc.
[0033] The example of FIG. 1 includes six nodes 102, two of which participate as miners 104. In practice, the number of nodes 102 or miners 104 may vary. In many blockchain networks, the number of nodes 102 and miners 104 may be much larger than the number illustrated in FIG. 1.
[0034] As described below, various nodes 102 may cooperate to form a group of nodes 110. In the illustrated example, three nodes 102 are shown participating in the group 110. However, the actual number of members of the group 110 may be much higher.
[0035] A group 110 may be an open membership group that any node 102 may join by submitting a sufficient stake to a pool associated with the group 110. For example, a node may join a group via a transfer of tokens, such as network resources or digital assets, to an account associated with the group 110 (e.g., to a group public address or a group stake public key). A node 102 that joins a group may be any node in a blockchain network, including both mining and non-mining nodes.
[0036] The group 110 may be used to cooperatively release cryptographic private keys corresponding to the cryptographic public keys in response to the occurrence of an event. The event may be, for example, a network-based event (e.g., an event observable on a blockchain network, the Internet, or other network). The event may be a real-world event (i.e., an event that initially occurs outside the network but may be reported, for example, to be detectable on the network).
[0037] An electronic device acting as an A-node 2 is a block diagram illustrating components of an exemplary electronic device 200 that may function as a node 102 (FIG. 1) of the peer-to-peer blockchain network 100 (FIG. 1). The exemplary electronic device 200 may also be referred to as a processing device. The electronic device may take a variety of forms including, for example, a desktop computer, a laptop computer, a tablet computer, a server, a mobile device such as a smartphone, a wearable computer such as a smart watch, or other types of forms.
[0038] The electronic device 200 includes a processor 210, a memory 220, and an interface device 230. These components may be directly or indirectly coupled to each other and may communicate with each other. For example, the processor 210, the memory 220, and the interface device 230 may communicate with each other via a bus 240. The memory 220 stores a computer software program including machine-readable instructions and data for performing functions described herein. For example, the memory may include processor-executable instructions that, when executed by the processor 210, cause the electronic device to perform the methods described herein. The processor-executable instructions may include instructions that, when executed by the processor 210, cause the electronic device to implement a protocol associated with the blockchain network 100 (FIG. 1). For example, the instructions may include instructions for implementing the Bitcoin protocol. The processor 210 may be a central processing unit (CPU), an application specific integrated circuit (ASIC), or another type of processor.
[0039] The memory 220 may store the global ledger of the blockchain network 100 (FIG. 1) or a portion thereof, i.e., the memory 220 may store all the blocks of the blockchain or a portion of the blocks, e.g., the most recent block or a portion of the information in some blocks.
[0040] Although memory 220 is shown as a single block in FIG. 2, in reality electronic device 200 may include multiple memory components. The memory components may be of various types including, for example, RAM, HDD, SSD, flash drive, etc. Different types of memory may be suitable for different purposes. Additionally, although memory 220 is shown separate from processor 210, processor 210 may include embedded memory.
[0041] The electronic device 200 functions as a node 102 (FIG. 1) in a blockchain network 100 (FIG. 1). Some nodes may join or otherwise participate in a group 110 (FIG. 1). A group 110 is formed when a group of token bearers pools tokens or other digital assets supported by the blockchain network 100 (FIG. 1). The groups may work together to fulfill a monitoring request, for example. More specifically, the groups may be configured to effectively release a cryptographic private key when it is determined that an event associated with the monitoring request has occurred. The cryptographic public key may be used to encrypt data or jam one or more tokens before the event occurs. Thus, an event lock may be provided such that a cryptographic lock is placed on the data or token to prevent unlocking of the data or token before the event occurs, but to allow unlocking of the data or token after the event occurs.
[0042] Some nodes may participate in a blockchain network as members of a group 110. Other nodes may not participate as group members. Such nodes may instead function as one or more miners or validators, or provide other functions associated with a blockchain network.
[0043] As described in more detail below, nodes participating in group 110 may act as monitoring nodes and monitor the occurrence of an event. When a node determines that an event has occurred, the node releases an encrypted private key share associated with the encrypted public key share. Each of the nodes in group 110 may be associated with a separate encrypted private key share, and a threshold number of such key shares may be used to reconstruct an encrypted private key corresponding to the encrypted public key. Thus, when a sufficient number of nodes have released their respective encrypted private key shares, the encrypted private key can be obtained.
[0044] To maintain the independence of each monitoring node, a monitoring node may repeatedly provide an indicator to the other monitoring nodes (i.e., other nodes of the group) at certain intervals, where the indicator may represent either an encrypted secret key share or a dummy signal. More specifically, the node may include a dummy signal at each signal interval until the node determines that an event has occurred. When the event is determined to have occurred, the node may provide an indicator representing the encrypted secret key share to the other nodes. The dummy signal may be configured to be similar in format to the encrypted secret key share (e.g., to be of the same length as the secret key share) such that the other nodes cannot determine from a single indicator alone whether the indicator represents a dummy signal or an encrypted secret key share. However, the monitoring node continually attempts to determine whether it can determine from the indicators an encrypted private key corresponding to the encrypted public key. For example, the monitoring node may repeatedly select a subset of the indicators and may compute possible shared secrets from the subset of indicators. The monitoring node may then evaluate the possible shared secrets against the encrypted public key to determine whether the possible shared secrets are in fact encrypted private keys. That is, a lookup can be performed based on the indicator provided by the monitoring node to identify the cryptographic private key. When a threshold number of cryptographic private key shares is provided, it is possible to reconstruct the cryptographic private key due to the threshold scheme used to generate the cryptographic private key shares.
[0045] Event Lock Encryption Required Referring now to Figure 3, a method 300 for requesting and using event-locked encryption is illustrated. The method 300 may be performed by a requester node ("requester"), which may be a node 102 of a blockchain network. Such a node 102 may include computer-executable instructions that implement the method 300, stored in memory 220 (Figure 2). Such instructions, when executed by a processor 210 (Figure 2), cause the node 102 (such as an electronic device 200 of the type described with reference to Figure 2) to perform the method 300.
[0046] In operation 302, the node 102 issues a monitoring request. The monitoring request is a request to other nodes 102 in the blockchain network to provide event-locked encryption. That is, the monitoring request is a request to other nodes 102 to release a private key (sometimes called a cryptographic private key) only after an event occurs. As described in more detail below, a public key (sometimes called a cryptographic public key) corresponding to that private key is released by the group before the event occurs, allowing the public key to be used to encrypt data or intercept tokens before the event. Thus, the monitoring request is a request to facilitate protection of digital assets or network resources.
[0047] The monitoring requests may be issued away from the blockchain (i.e., "off-chain"). For example, the monitoring requests may be issued on a web server accessible via the Internet or on another network server accessible via another network, such as a private network. By way of example, the monitoring requests may be stored in an open forum accessible via the Internet.
[0048] The monitoring request may include one or more parameters associated with the request. As an example, the monitoring request may detail an event associated with the request that the nodes of the group fulfilling the monitoring request will monitor for. The event may be, for example, a network-based event (e.g., an event observable on the blockchain network, the Internet, or other network). The event may be a real-world event (i.e., an event that first occurs outside the network may be reported to be detectable on the network, for example). As an example, the event may be said to occur when a person identified in the monitoring request passes away. The event may be any type of event, specified or predetermined in some manner to enable monitoring and / or detection of the occurrence of the event. Such an event may be detected, for example, by a node configured to automatically monitor online news sources, social media, or obituaries or other types of data sources. The event may be detected by an input signal from a source. Other types of events may also be specified.
[0049] The monitoring request may also include or be associated with a hash of the event description. The hash may be, for example, a SHA-256 hash of the event description. As a further example, the monitoring request may specify an amount of tokens to be provided to a group that fulfills the monitoring request. The tokens may control a network resource, such as a digital asset, represented by the token. When a token is transferred from one node of a network, such as a blockchain network, to another node, control of the network resource is transferred to the receiving node. Thus, the monitoring request may specify an amount of a network resource (e.g., a digital asset) to be provided by the requester for completion of the monitoring request.
[0050] As described in more detail below, a node can become a member of a group that participates in fulfilling a monitoring request by transferring one or more tokens to the group. The tokens act as a "stake" that can be forfeited by a threshold of other nodes in the group as a penalty for non-compliance with the group protocol. A monitoring request can specify the amount of "stake" required to join the group; that is, a monitoring request can specify the stake required to join the group and effectively become a "monitoring node." A "monitoring node" is a node that undertakes to fulfill a monitoring request by monitoring the events defined by the monitoring request.
[0051] The monitoring request may also define the size of the group. That is, the monitoring request may specify the number of nodes to be included in the group. The monitoring request may also define a threshold associated with the interval of the release of the cryptographic private key and / or the signaling between the nodes of the group. For example, the interval may be an interval associated with the block generation on the event chain formed between the nodes of the group. The monitoring request may also define a threshold of an opportunity window for submitting a signal indicating that an event has occurred. As described in more detail below, the opportunity window threshold may control a time window during which a cryptographic private key share submitted with a certain indicator is considered to have been submitted properly or correctly. A cryptographic private key share shared before or after this opportunity may be ignored by the node. For example, a node that submits a cryptographic private key share before or after the opportunity window may not be eligible to share the network resources provided by the requester in exchange for completing the request. Furthermore, in order to reduce the size of the search space, a cryptographic private key share submitted before or after the opportunity window may be excluded during the search for a cryptographic private key.
[0052] Thus, a monitoring request may include a variety of data, including any one or combination of: 1) an event description; 2) a hash of the event description; 3) the amount of stake required to participate; 4) the size of the group; 5) a threshold associated with the threshold scheme; 6) a signaling interval; 7) a window of opportunity threshold; or 8) an amount of network resources provided for completion of the request.
[0053] In operation 304, the requester may coordinate the formation of a group by multiple nodes. More specifically, the requester may receive join requests from multiple nodes in the blockchain network in response to issuing a monitoring request in operation 302. A join request is a request to be added to a group that undertakes to complete a monitoring request. Each join request may reference network resources, such as tokens or other digital assets, that the node associated with the join request intends to contribute as a "stake" to join the group. For example, the join request may specify a transaction identifier of a UTXO that includes those stakes.
[0054] Once valid join requests are received from a sufficient number of nodes (e.g., the number of join requests may be determined to be sufficient if the number of join requests equals the size of the group specified in the monitoring request, and the join requests may be determined to be valid if they contribute sufficient tokens, referred to as “stake”), the nodes that submitted the join requests establish a secure communication channel between each other and together run a dealer-free secret sharing protocol twice to generate two shared secret keys, namely, a cryptographic private key and a group stake private key. Each node holds two secret key shares, namely, a cryptographic private key share and a group stake private key share. Both of these secret key shares are group secret key shares in that they represent shares of a secret key associated with the group 110. However, the cryptographic private key and the group stake private key may be used for different purposes. As described below, the group stake private key is associated with a group stake public key that encumbers the group’s tokens or other digital assets. Such tokens may include the “stake” that each member of the group contributes to join the group. The private encryption key is associated with a public encryption key that may be used to encrypt data or block tokens with event lock. More specifically, nodes in a group cooperate to release the private encryption key after an event occurs so that the public encryption key can be used to encrypt data or block tokens or other digital assets until after the event occurs, limiting control over such data / tokens.
[0055] Techniques for deriving the encrypted private key share, the encrypted public key, the group stake private key share, and the group stake public key are described below in relation to FIG. 4.
[0056] During operation 304, the requester receives the encryption public key and the group stake public key from one or more nodes of the group (i.e., from one or more of the nodes that submitted a valid join request and participated in the generation of the encryption public key and the group stake public key). The requester then creates a transaction that includes as input the tokens or other digital assets (i.e., the “stake”) referenced in each join request, as well as the tokens or other digital assets provided by the requester for completion of the request. The transaction encumbrances these tokens or other digital assets with the group stake public key such that a valid signature is required on the group stake public key to unlock these tokens. The requester may sign the transaction to remove past encumbrances on the tokens or other digital assets provided by the requester for completion of the request, and may provide the transaction to the nodes of the group so that each node may add a signature to remove past encumbrances previously placed on their respective node’s “stake”.
[0057] Optionally, the requester may include the cryptographic public key as metadata in the transaction so that when the transaction is added to the blockchain network's blockchain, the cryptographic public key is visible to other nodes in the blockchain network and may be used by such nodes to place an event lock on the data or token. The requester may also optionally add a hash of the event description (or another identifier) to the transaction as metadata to associate the transaction with the monitoring request.
[0058] The transaction is signed by each node in the group (i.e., by each of one or more of the nodes that submitted a valid join request and participated in the generation of the cryptographic public key and the group public stake key) and broadcast to the blockchain network by one of the nodes, thereby allowing it to be added to the blockchain (provided that sufficient mining fees are included and the transaction is otherwise validated).
[0059] In operation 306, the requester (or other node that obtains the encryption public key) uses the encryption public key to encrypt data or lock the token or other digital asset. The token or other digital asset can be locked, for example, by placing the encryption public key in a locking script of a transaction that includes the token or other digital asset as an input. The locking script locks the token or other digital asset such that the lock can only be removed when a signature is valid for the encryption public key. For example, the lock can be removed using the encryption private key (e.g., by generating a signature with the encryption private key).
[0060] An event associated with the monitoring request may occur at some point after operation 306, and the requester may then obtain the encryption private key from one or more nodes of the group in operation 308. The encryption private key may be obtained, for example, through the blockchain network. After the group reconstructs the encryption private key, for example using techniques such as those described below, the encryption private key may be broadcast to the blockchain network and added to the transaction that is added to the blockchain. The requester (or other node requesting the encryption private key) may monitor the blockchain and obtain the encryption private key from the blockchain.
[0061] Then, in operation 310, the requester (or another party) can use the encryption private key to decrypt the data encrypted in operation 306 or to remove the encumbrance placed on the token or other digital asset. That is, in operation 310, the requester can use the encryption private key to unlock the data or token that was locked with the encryption public key in operation 306.
[0062] Join as a node in the group Referring now to FIG. 4, a method 400 for participating as a node in a group in an event-locked cryptography scheme is shown. The method 400 may be performed by a node 102 of a blockchain network. According to the method 400, the node cooperates with other nodes in a group 110. Thus, the node may be referred to as a group node or member. Such a node 102 may include computer-executable instructions stored in memory 220 (FIG. 2) that implement the method 400. Such instructions, when executed by a processor 210 (FIG. 2), cause the node 102 (such as an electronic device 200 of the type described with reference to FIG. 2) to perform the method 400.
[0063] At operation 402, the node 102 detects a monitoring request that may have been issued by a requester. The monitoring request may be of the type described above with reference to operation 302 of the method 300 of FIG. 3 and may be detected on the network.
[0064] At operation 404, in response to detecting the monitoring request, node 102 provides a join request to the requester that issued the monitoring request. That is, node 102 transmits a request to join a group whose task is to fulfill the monitoring request. The join request may be as described above in connection with operation 304 of method 300 of FIG. 3. For example, the join request may reference network resources, such as tokens that the node performing method 300 is willing to provide as a "stake" to join the group. For example, the join request may specify a transaction identifier of a UTXO that includes those stakes.
[0065] In operation 406, node 102 cooperates with other nodes that also submitted a join request to obtain secret key shares and corresponding public keys. More specifically, node 102 cooperates with other nodes that submitted a join request. These nodes, which are group members, establish a secure communication channel with each other (e.g., using standard public key cryptography or Diffie-Hellman key exchange). Together, the nodes then run a dealer-free secret sharing protocol twice with a threshold Ct to generate two shared secrets, an encryption private key and a group stake private key. The threshold Ct is the number of key shares required to reconstruct the private keys and generate a valid signature for the public key corresponding to each one of the private keys. The threshold Ct may be defined in the monitoring request by the requester.
[0066] Thus, in operation 406, a cryptographic method (sometimes called a private key reconstruction scheme) may be employed that allows for distribution of a single private key among multiple participants such that a threshold number of m-of-n key shares (where m is the threshold, Ct) are required to reconstruct the private key. Fewer than m key shares cannot generate the private key and therefore cannot generate a valid signature for the public key that corresponds to the private key.
[0067] One encryption method used in operation 406 is Shamir's Secret Sharing Scheme (SSSS). Shamir's Secret Sharing Scheme is based on the idea that a t-th order polynomial can be fitted to any set of t+1 points. A t-th order polynomial f(x) is formed with a shared secret key as the constant term (a0=f(0)), and the remaining coefficients are chosen randomly. n points on the curve are given to each node. If m=t+1 or more of the nodes (sometimes called participants) join those points, there is enough information to fit a polynomial of degree t to those points, and a0 is revealed as secret information. This scheme allows the sharing of a single secret key between an arbitrarily large number of parties with any threshold.
[0068] A standard SSSS can be extended to remove the requirement that a trusted dealer create the polynomial and distribute the secret shares (which are a single point of failure and therefore not untrusted). In this dealer-free SSSS, each participant P i is a random t-th degree polynomial f i (x) and then f i (j) to each of the other participants P j Then, each Pi sums up all the points it receives, (f1(i)+f2(i)+···+f n (i)), point P in the shared polynomial f(x) i Get those secret shares that are i = f(i).
[0069] After the secret share has been created, the public key corresponding to the shared secret key (which the participants do not know) is computed (using an elliptic curve generator G) as follows:
[0070] Participant P i (where i=1,...,t+1) is b i s i Calculate the public key share as b × G, where b iis the Lagrangian interpolation coefficient, which can be determined as:
number
[0071] These public key shares (which may be called group stake public key shares, for public key shares associated with the group stake private key, or encrypted public key shares, for public key shares associated with the encrypted public key) are then broadcast to other nodes in the group, and a shared public key is calculated as the sum of the t+1 shares:
number
[0072] Each node can independently determine the shared public key from the public key share.
[0073] The encryption method described above may be performed twice: once to obtain a private encryption key share and an associated public encryption key, and again to obtain a group stake private key share and an associated public group stake key.
[0074] Thus, in operation 406, the node performing method 400, in cooperation with other nodes, obtains and stores a cryptographic public key and associated cryptographic private key share, and also obtains and stores a group stake public key and associated group stake private key share. The group stake private key share allows a subset of the nodes in the group that control at least a threshold of the group stake private key share to generate valid signatures on behalf of the group, while the cryptographic private key share allows a subset of the nodes in the group that control at least a threshold of the cryptographic private key share to release the cryptographic private key when such nodes detect an event.
[0075] The nodes executing the method 400 generate a cryptographic secret key share and a group stake secret key share, and each node in the group is associated with both the respective group stake secret key share and the cryptographic secret key share. Corresponding public keys (i.e., the group stake public key and the cryptographic public key) are associated with the group of nodes that executed the dealer-free secret sharing protocol. The secret key share is associated with the group's secret key reconstruction scheme, allowing the secret key to be determined from at least a threshold Ct of the secret key shares. For example, the group stake secret key share may be generated by executing the dealer-free secret sharing protocol with a threshold (a threshold signature scheme, such as an Elliptic Curve Digital Signature Algorithm (ECDSA) threshold signature scheme), which may be defined in the monitoring request, and the cryptographic secret key may be generated based on the cryptographic secret key share as well.
[0076] During operation 406, the node may store group stake public key shares for each of the other nodes in the group. These public key shares may be used by the node to verify the signatures of block signatures and commit signatures on the event chain, as described below.
[0077] At operation 408, the encryption public key and the group stake public key (both of which have been independently verified by the nodes of the group) are provided to the requester. As described above in connection with operation 304 of method 300 of FIG. 3, the requester then provides a transaction to the nodes of the group for signing. The transaction includes as inputs the tokens or other digital assets (i.e., the “stake”) referenced in each join request, as well as the tokens or other digital assets provided by the requester for completion of the request. The transaction encumbers these tokens or other digital assets with the group stake public key. The requester may sign the transaction to remove any previous encumbrances on the tokens or other digital assets provided by the requester for completion of the request, and may provide the transaction to the nodes of the group so that each node may add a signature to remove any previous encumbrances previously placed against their respective node’s “stake.”
[0078] At operation 410, the node may receive the transaction and add a signature that removes any prior interference with the “stake” referenced in the join request submitted at operation 404. By adding such a signature, the node effectively interferes with the tokens or other digital assets offered as stake using the group stake public key.
[0079] After all nodes in the group have added their respective signatures, removing any previous interference with their “stake”, the transaction is broadcast to the blockchain network.
[0080] Then, in operation 412, the node cooperates with other nodes in the group to identify a cryptographic private key, and when the nodes in the group successfully identify a cryptographic private key, at least one of the nodes prepares the transaction, and the nodes cooperate to generate a signature for the transaction (in operation 414), which returns a "stake" to the nodes that acted in accordance with the monitoring protocol, and distributes the tokens or other digital assets provided by the requester for completion of the request to the one or more nodes that assisted in completing the request. The signature is generated using the respective group stake private key shares, and must use at least a threshold number of group stake private key shares to generate a valid signature.
[0081] The encryption private key is provided to the requester at operation 414. For example, the encryption private key may be included in the transaction as metadata.
[0082] Techniques for collaboratively identifying a cryptographic private key will now be described with reference to Figure 5. Figure 5 shows a method 500 for identifying a cryptographic private key. These techniques are performed by one node of a group in cooperation with other nodes of the group in operation 412 of method 400 of Figure 4. For example, a node performing method 400 of Figure 4 may also perform method 500 of Figure 5.
[0083] In operation 502, an event chain may be instantiated. An event chain is a type of ephemeral blockchain. More specifically, an event chain is a proof-of-stake blockchain that is mined by a group of nodes with stakes encumbered by a group stake public key. A proof-of-stake consensus algorithm may be used, such as the type described in Micali, Silvio, "Algorand: the efficiency and democratic ledger." arXiv preprint arXiv:1607.01341 (2016). An event chain may have regular block generation times, time-stamped blocks, and low forking probability. Block rewards for mining blocks on the blockchain may be provided to the event chain miners and may be received as part of tokens or other digital assets provided by the requester for completion of the request.
[0084] The event chain may be configured such that blocks are produced by the nodes of the group at an interval specified by the requester (e.g., in a monitoring request). This interval may be chosen to be smaller than the latency the requester desires for the private key release after the event. However, a smaller interval may consume more resources than a larger interval.
[0085] An event chain may be instantiated with a first block called the genesis block, which is empty and is timestamped with the instantiation time t0.
[0086] A node executing method 500 may perform multiple functions, including, for example, 1) event monitoring and signaling, and 2) cryptographic private key discovery.
[0087] In operation 504, the node monitors an event associated with the monitoring request and signals other nodes based on the monitoring. As an example, the node may monitor a network server, such as a web server, for events. For example, the node may monitor a news website, a social media website, a blog or microblogging platform, etc., for events. The node repeatedly provides an indicator to multiple nodes of the group. That is, the node repeatedly signals other nodes of the group, where the signaling is based on the results of the monitoring. More specifically, the node repeatedly provides an indicator to other nodes of the group. This indicator may also be referred to as a commitment. When a predetermined event (i.e., the event specified in the monitoring request) has not occurred, the indicator includes a dummy signal of the same length as the cryptographic secret key share. The dummy signal may be randomly generated by the node, and the dummy signal may be different in each iteration. However, in response to detecting the predetermined event, the node provides an indicator that includes the cryptographic secret key share that the node holds (this type of indicator may be referred to as a "true signal"). Because the "true signal" is provided only once by a node, other nodes cannot infer that an event has been determined by simply monitoring the repetition of an indicator from a given node.
[0088] The indicator may also include the node's group stake public key share and may be signed based on the group stake public key share held by the node executing method 500. Thus, when the indicator is provided to multiple nodes in the group, it includes a signature generated with the group stake private key.
[0089] The node signals other nodes based on the monitoring by providing an indicator in a block on the event chain in operation 504. Each block is time-stamped. The other nodes of the group are also configured to independently perform their own monitoring and signaling operations (similar to operation 504 of method 500) and can provide a "true signal" upon detecting the occurrence of an event. Thus, in operation 506, the node can obtain multiple indicators provided by multiple other nodes of the group. Each of the indicators represents one of a cryptographic secret key share or a dummy signal. The indicators may be obtained iteratively by the node (e.g., obtained from each block of the event chain) and, once obtained, the indicators may be analyzed to attempt to identify the cryptographic secret key. More specifically, the encryption private key may be identified by iteratively selecting (at operation 508) a subset of indicators from the current block and / or one or more recent blocks, computing (at operation 510) potential shared secrets from the subset of indicators, and evaluating (at operation 512) each potential shared secret against the encryption public key to determine whether the potential shared secret is an encryption private key. Although not shown in FIG. 5, if the potential encryption shared secret is not an encryption private key, a search may be performed against a different subset of indicators (e.g., a subset of all possible indicators in a search space may be evaluated, and the search space may be updated as new blocks are added to the event chain). Thus, a node may effectively perform a search based on the indicators provided to the blocks on the event chain. The number of true signals (i.e., encryption private key shares) provided in the indicators may be determined based on the threshold C of the threshold private key reconstruction scheme. t When the eigenvalue is greater than 0, the encryption private key can be obtained.
[0090] The encryption private key may be reconstructed (i.e., derived from the encryption private key shared threshold) by running the search algorithm and the SSSS. In operation 508, the shared secret is calculated (using the SSSS) for each possible threshold combination of the node's indicators (i.e., dummy signals or true signals provided by each node) for the number of previous blocks within a defined window of opportunity. The window of opportunity may be defined in the monitoring request submitted by the requester. For each potential shared private key, a corresponding public key may be calculated using elliptic curve cryptography. The calculated public key may then be compared to the known encryption public key. If the calculated public key matches the encryption public key, the search may be stopped and the encryption private key may be reported to the requester. However, the node may continue searching based on the indicators of new blocks as new blocks are created until the encryption private key is found.
[0091] The node (or another node) performing method 500 may also optionally decrypt data previously encrypted with the public encryption key when it is determined that the potential shared secret is a cryptographic key. The node (or another node) performing method 500 may also optionally generate a signature based on the private encryption key and add the signature to the transaction's unlock script to unlock tokens previously blocked with the public encryption key. Thus, once the private encryption key has been identified, it may be used for a number of purposes.
[0092] As discussed above in the description of operation 412 of FIG. 4, once the cryptographic private key is identified, the event chain may terminate and the tokens previously intercepted by the group stake public key may be redistributed. At least one of the plurality of nodes of the group prepares the transaction, and the plurality of nodes collaboratively generate a signature for the transaction (at operation 414). For example, the transaction may distribute tokens or other digital assets provided by the requester for completion of the request to one or more nodes that assisted in completing the request. For example, the nodes may identify nodes of the group that provided an indicator representing a cryptographic private key share in a defined window of opportunity (which may be defined based on a threshold of the window of opportunity defined in the monitoring request). The plurality of nodes that control at least a threshold of the group stake private key share may then collaboratively generate a valid signature for a transaction that transfers one or more digital assets to one or more of the identified nodes. For example, the tokens or other digital assets provided by the requester for completion of the request may be distributed equally to nodes that provided a true signal within the window of opportunity. Alternate distribution methods may also be used. For example, the distribution may be weighted to favor the node that signaled first within the window of opportunity. This can be done using a linear or exponential function defined by the requestor in the monitoring request.
[0093] 6, an exemplary distribution 600 of "true signals" is shown. The distribution shows an opportunity window 602 having a size defined by a threshold, which may be defined in a monitoring request by a requester. Nodes that provided true signals within the opportunity window 602 may receive a share of tokens or other digital assets provided by the requester, while nodes that provided true signals outside the opportunity window or those nodes that did not provide a true signal (or nodes that provided multiple true signals) will not share such tokens.
[0094] To ensure that nodes are properly configured in accordance with the monitoring request, the nodes of the group may be configured to monitor for nodes that violate a protocol that is to be used to complete the monitoring request. For example, the nodes may determine that one of the nodes of the group has violated the protocol by providing a related secret key share in multiple indicators. As previously mentioned, the protocol may require that each indicator be provided only once. Thus, in response to determining that one of the nodes of the group has violated the protocol, the nodes may be configured to cooperate with other nodes of the group to confiscate the deposit (i.e., "stake") of the node that violated the protocol.
[0095] Although the above examples refer to operation codes available in Bitcoin, the methods described herein may be used in other types of blockchain networks.
[0096] Additionally, as described herein, references to a defined period of time may refer to a period of time defined based on traditional time measures (e.g., seconds, minutes, hours, days, etc.) or non-traditional time measures (e.g., blocks, etc.). For example, blocks may be generated on some blockchain networks with a reasonably consistent frequency, so the number of blocks added to the blockchain after a triggering event may provide a measure of time. Thus, any operation in which a node evaluates whether a defined period of time has passed may include evaluating the number of blocks that have been added to the blockchain.
[0097] Although the methods described above are generally described as being performed at a node, features of the methods may be performed elsewhere, depending on coordination with other nodes.
[0098] It should be noted that the above-described embodiments are illustrative rather than limiting of the present invention, and that those skilled in the art can design many alternative embodiments without departing from the scope of the present invention as defined by the appended claims. In the claims, any reference signs placed in parentheses shall not be construed as limiting the claims. The words "comprising", "comprises" and the like do not exclude the presence of elements or steps other than those listed in any claim or the specification as a whole. In this specification, "comprising" means "includes" or "consists of", and "comprising" means "including" or "consisting of". A singular reference of an element does not exclude a plural reference of such element and vice versa. The invention can be implemented by means of hardware comprising several distinct elements and by means of a suitably programmed computer. In a device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain means are recited in mutually different dependent claims does not indicate that a combination of these means cannot be used to advantage.
Claims
1. 1. A computer-implemented method for participating as a node in a group in an event-locked encryption scheme, the method being performed by a processing resource, the method comprising: Detecting a monitoring request; in response to detecting the monitoring request, providing a join request to the entity that provided the monitoring request; obtaining a secret key agreement and a corresponding public key in cooperation with other nodes that have submitted a join request; distributing a single private key among multiple participants such that a threshold number of shares are required to reconstruct the private key; providing an encryption public key and a group stake public key to the entity that provided the monitoring request; A computer-implemented method comprising:
2. providing a join request to the entity that provided the monitoring request comprises sending a request to join a group tasked with fulfilling the monitoring request; The method of claim 1.
3. the cooperating nodes establish a secure communication channel with each other; The method according to claim 1 or 2.
4. the channel deploys standard public key cryptography or Diffie-Hellman key exchange; The method according to claim 3.
5. The cooperating nodes together run a dealer-free secret sharing protocol using a threshold to generate two shared secrets: an encryption private key and a group stake private key. The method according to claim 3 or 4.
6. the threshold is the number of key shares required to reconstruct the private keys and generate a valid signature for a public key corresponding to each one of the private keys; The method according to claim 5.
7. The threshold is defined in the request. The method according to claim 5 or 6.
8. The method further includes generating a signature using each private key share and a threshold number of group stake private key shares.
8. The method according to any one of claims 1 to 7.
9. A computer readable storage medium comprising computer executable instructions which, when executed, configure a processor to perform the method of any one of claims 1 to 8.
10. An interface device; a processor coupled to the interface device; A memory coupled to the processor having stored thereon computer executable instructions that, when executed, configure the processor to perform the method of any one of claims 1 to 8; An electronic device comprising:
Citation Information
Patent Citations
Transaction matchmaking method for distributed general ledger system based on block chain technology and transaction matchmaking system thereof
CN106504094A
Sharing a secret with modular inverses
US20100215172A1
Computer-Implemented System And Method For Establishing Distributed Secret Shares In A Private Data Aggregation Scheme
US20150288662A1
Shared information distributing device, holding device, certificate authority device, and system
WO2008099682A1