Computer-implemented system and method for time release encryption over a blockchain network
Patent Information
- Authority / Receiving Office
- TW · TW
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2018-06-11
- Publication Date
- 2023-01-01
- Estimated Expiration
- Not applicable · inactive patent
Smart Images

Figure TWG2TB001684872_001 
Figure TWG2TB001684872_002 
Figure TWG2TB001684872_003
Abstract
Description
[Technical Field] The field of invention This instruction manual is broadly concerned with digital time-locked contracts used for time release encryption. The invention is particularly adapted to, but not limited to, use with the Bitcoin (Bitcoin) blockchain. [Previous Technology] Invention background In this document, we use the term “blockchain” to include all forms of computer-based electronic decentralized general ledger. These general ledgers include consensus-based blockchain and transaction chain technologies, permitted and unpermitted general ledger, shared general ledger and variations thereof. Despite other blockchain implementation schemes that have been proposed and developed, the most widely known application of blockchain technology is the Bitcoin General Ledger. Although references to Bitcoin may be made in this article for convenience and illustrative purposes, it should be noted that the invention is not limited to use with the Bitcoin blockchain and alternative blockchain implementation schemes and protocols fall within the scope of the invention. Blockchain is a consensus-based electronic general ledger, which is implemented as a non-centralized, decentralized, computer-based system of blocks constituted in turn by transactions and other information. In the case of Bitcoin, each transaction is a data structure that encodes the control transfer of digital assets between participants in a blockchain system and includes at least one input and at least one output. Each block contains a hash of the previous block such that the blocks become chained together to generate a permanently unchangeable record of all transactions that have been written to the blockchain since their inception. Transactions contain applets known as scripts embedded in their inputs and outputs, which specify how and by whom the output of such transactions may be accessed. On the Bitcoin platform, these scripts are authored using a stack-based script processing language. For a transaction to be written to the blockchain, it must be "verified." Some network nodes act as miners and work to ensure the validity of each transaction by rejecting invalid transactions. For example, a software client installed on a node performs this verification for transactions referencing unspent transaction outputs (UTXOs). Verification can be performed by executing lock and unlock commands. If the execution of the lock and unlock commands evaluates to true, and if certain other conditions are met, the transaction is valid and can be written to the blockchain. Therefore, for a transaction to be written to the blockchain, it must: i) be verified by the node receiving the transaction—if verified, the node relays the transaction to other nodes in the network; and ii) be added to a new block created by the miner; and iii) be mined, that is, added to the public ledger of past transactions. A transaction is considered confirmed when a sufficient number of blocks are added to the blockchain to make the transaction practically irreversible. While blockchain technology is best known for its use in cryptocurrency implementations, several entrepreneurs have begun exploring new systems that combine the cryptographic security system upon which Bitcoin is based with data that can be stored on the blockchain. Blockchain could be extremely beneficial if it could be used for automated tasks and procedures not limited to the cryptocurrency realm. Such solutions would leverage the advantages of blockchain (such as permanent, tamper-proof recording of events, decentralized processing, etc.) while being more versatile in their applications. One area of research uses blockchain for implementing "smart contracts." These smart contracts are computer programs designed to automate the execution of machine-readable contract or agreement terms. Unlike traditional contracts written in natural language, smart contracts are machine-executable programs containing rules that process input to produce results, which then cause actions based on those results. Another area of interest related to blockchain is the use of "tokens" (or "colored coins") to represent and transfer real-world entities via the blockchain. Potentially sensitive or secretive items can be represented by tokens that do not have identifiable meaning or value. Tokens thus act as identifiers that allow reference to real-world items from the blockchain. As previously mentioned, this specification primarily concerns digital time-locked contracts used for time-release encryption. The basic goal of time-release encryption is to encrypt a message at the present time, but prevent anyone from decrypting it until a specified future time. This is essentially a way of "sending a message to the future" or placing a message in a "time capsule." Many possible applications exist for this type of functionality, including: Sealed Bidding Auction Golden Key Delegation Solution No reply vote Scheduled release of confidential information • A "toggle switch" for policy-sensitive information There are two general approaches to implementing time-release encryption systems, which are outlined in the first detailed paper on the ideas of Rivest, Shamir, and Wagner [Rivest 1996]. These approaches are: 1. Use "time-locked puzzles"—encrypted information that requires time-consuming computational work to decrypt. 2. Use a trusted agent who promises not to disclose confidential information until a specified future time. The first approach, of these methods, does not require the involvement of a third partner; however, it has two serious and unavoidable disadvantages: First, due to the performance differences in computing hardware and unknown future technological innovations, it is impossible to predict with high accuracy how long it will take to solve a particular puzzle. Second, the partner performing the decryption must perform continuous and costly computational work for the entire time-locked duration. The second approach is potentially both accurate and precise in its release timing, and it would not require any costly computation from any partner. However, the second approach does rely on a third-party agent who must be trusted to release the correct key at the right time. Trust in the agent is therefore crucial—unless the agent can actually be incentivized to operate correctly. The following provides background information on time-locked encryption on blockchain networks. The Ethereum Alarm Clock stipulates that users can execute transactions during scheduled time periods after providing margin. See, for example, URLs: docs.ethereum-alarm-clock.com / en / latest / claiming.html#claim-deposit; and https: / / github.com / pipermerriam / ethereum-alarm-clock / commits / master / docs / claiming.rst. This allows events to be scheduled at a later time within a specific time window. Furthermore, executors can win back their margin, but may also forfeit it if they fail to execute within the specified time window. Payments are also included in the service and are made to the account that executes the transaction during the scheduled time. The document "μchain: How to Forget without Hard Forks" (URL: https: / / eprint.iacr.org / 2017 / 106.pdf) reveals an example of time-locked encryption. In the revealed use case, a user encrypts a confidential paper. The decryptor can request access to the decryption key by sending a transaction to a smart contract, which triggers a function to check if a timeout 't' has passed. If the time is correct, the decryptor obtains the key. It is suggested that the system could offer more advanced features, such as making the decryption key available only if requested within a specific time window. The paper "Secure Multiparty Computations on Bitcoin" (URL: https: / / eprint.iacr.org / 2013 / 784.pdf) reveals a multiparty lottery protocol using Bitcoin. The paper demonstrates that the Bitcoin system offers an attractive way to construct versions of timed commitments, where committers must reveal their secrets within a certain timeframe or pay a penalty. Participants provide a deposit, which is forfeited if the game terminates prematurely due to a participant's dishonesty. US Patent 2016086175 discloses a blockchain system for accessing property. A room has a private / public key pair, along with a credit limit, stored at an address by a user wishing to rent the room for a certain duration; this information is included in the transaction. When the time is right, the lock unlocks, allowing the user to enter the room. The user pays a fee to the room provider to access the room, which is refunded if the room is unavailable for the desired period. [Summary of the Invention] Invention Summary This specification describes a system and method enabling a time-release cryptographic service to be secured via a public blockchain with no access rights. The service generates a public key and then releases a corresponding private key at a future time specified by the user of the service. The security and reliability of this service stem from a novel smart contract system, in one instance executed as Bitcoin code, which incentivizes the release of the private key at the correct time and penalizes early or late release or disclosure of the key. The service is designed to be trustless: the user is not granted access to the private key; however, they only provide a guarantee that the correct value of the cryptographic asset used for the service will be revealed on the blockchain at the specified time in the contract. In one instance, this is achieved using a combination of zero-knowledge proofs and time-locking and hash locking of transaction outputs. According to a first aspect of the present invention, a computer-implemented method is provided for generating a public encrypted key on a blockchain network and enabling access to a corresponding private encrypted key after a specified time period. The method includes one or both of the following steps: establishing a digital time-locked contract between an agent and a user terminal on the blockchain network, the agent having an agent address and an associated agent signature on the blockchain network, and the user terminal having a user terminal address and an associated user terminal signature on the blockchain network. The digital time-locked contract specifies that: (i) the agent holds the private encrypted key corresponding to the public encrypted key on the blockchain network, and then releases the encrypted private key to the blockchain network within a specified time window; (ii) the agent provides a first cryptographic asset (e.g., a margin) to hold the encrypted private key and then releases the encrypted private key to the blockchain network within the specified time window, wherein when the encrypted private key is released to the blockchain network within the specified time window, the first cryptographic asset... The compiled asset can be transferred to the agent's address on the blockchain network; (iii) the client provides a second cryptographic asset (e.g., a fee) to the agent to hold the encrypted private key and then releases the encrypted private key to the blockchain network within a specified time window. When the encrypted private key is released to the blockchain network within the specified time window, the second cryptographic asset can be transferred to the agent's address on the blockchain network; (iv) if the encrypted private key is released before the time window opens, then The second cryptographic asset may be transferred to the client address on the blockchain network (the client or any person may use the private key to obtain the agent's first cryptographic asset); (v) if the encrypted private key is not released before the time window closes, the second cryptographic asset may be transferred to the client address on the blockchain network (the first cryptographic asset may also be transferred to the client address on the blockchain network); and the digital time-locked contract is broadcast to the blockchain network for use in capturing data on the blockchain. The steps of constructing the digital time-locked contract and broadcasting the contract can be performed by the same entity. However, it is also contemplated that these steps can be performed by different entities. Therefore, the foregoing definition specifies one or both of the steps required by any single entity. It should be noted that the present invention, as described herein, is not limited to providing blockchain-based time-locked contracts as a preferred method for performing services. The invention begins with the fact that using cryptographic methods to execute time-locked contracts is known. However, such prior art systems have technical problems. The technical problems of prior art methods are that they are insecure, or otherwise difficult to use and computationally intensive. These problems are inherently technical. The present invention provides a solution that is both secure and easy to use, and computationally efficient. That is, the present invention provides a preferred computer system that combines security and low computational overhead for executing time-locked connections in a trustless manner. Providing a combination of security, ease of use, and computational efficiency is the technical contribution of the present invention. The computer implementation method can be initiated by a request sent by the client indicating an expectation to establish a digital time-locked contract. The client can specify the second cryptographic asset and the time window. The agent can then construct the encrypted public key and encrypted private key pair. The agent can then also construct the digital time-locked contract. The digital time-locked contract becomes active after it has been captured in the blockchain, and the encrypted public key is publicly available for encrypting data, which therefore cannot be decrypted until the encrypted private key is released. The time window can be specified as a time t when the time window opens and a subsequent time period △t when the time window closes. The digital time-locked contract can be configured such that one or more of the following transfers are possible: the second cryptographic asset can be transferred at any time along with the encrypted private key, a time-locked puzzle value derived from the encrypted private key, and the client signature to the client address; the second cryptographic asset can be transferred to the agent address along with the encrypted private key and the agent signature after time t; the second cryptographic asset can be transferred to the client address along with the client signature after time t+△t; the first cryptographic asset can be transferred to any address at any time by providing the encrypted private key and a time-locked puzzle value derived from the encrypted private key; the first cryptographic asset can be transferred to the agent address along with the encrypted private key and the agent signature after time t. The first cryptographically compiled asset, along with the client signature, can be transferred to the client address after time t+△t. As described above, another definition of a computer-implemented method for generating a public encrypted key on a blockchain network and enabling access to a corresponding private encrypted key after a specified time period includes one or both of the following steps: establishing a digital time-locked contract between an agent and a user on the blockchain network, the agent having an agent address and an associated agent signature on the blockchain network, and the user having a user address and an associated user signature on the blockchain network, the digital time-locked contract specifying: a first cryptographic asset (e.g., a deposit) from the agent; a second cryptographic asset (e.g., a fee) from the user; a public encrypted key; and a time window during which the agent should release a private encrypted key corresponding to the public encrypted key, the time window being defined by a time t when the time window opens and a subsequent time period Δt when the time window closes, wherein the digital time-locked contract is... The structure enables the following transfers: the second cryptographic asset can be transferred at any time along with the encrypted private key, a time-locked puzzle value derived from the encrypted private key, and the client signature to the client address; the second cryptographic asset can be transferred to the proxy address along with the encrypted private key and the proxy signature after time t; the second cryptographic asset can be transferred to the client address along with the client signature after time t+Δt; the first cryptographic asset can be transferred to any address at any time by providing the encrypted private key and a time-locked puzzle value derived from the encrypted private key; the first cryptographic asset can be transferred to the proxy address along with the encrypted private key and the proxy signature after time t; and the first cryptographic asset can be transferred to the client address along with the client signature after time t+Δt, and the digital time-locked contract can be broadcast to the blockchain network for capture on the blockchain. The agent can enter multiple digital time-locked contracts with multiple clients. The agent can be a single agent holding one of the private keys. Alternatively, the agent can comprise multiple agents, each holding a share of the encrypted private key. In this case, the derivation of the encrypted private key is achieved by a threshold value of one of the private key shares provided by the multiple agents. The first cryptographic asset and the second cryptographic asset are then split among the agents. The security and reliability of the service can be further enhanced by extending the core protocol to a group of independent service providers, each with its own individual contract, using a dealerless secret shared (m-of-n) threshold value scheme to distribute the time-locked release of the private key, thus tolerating a sub-threshold number of malfunctioning service providers. We describe an extended zero-knowledge proof system that allows a client to prove that a share of the private key corresponding to the shared public key will be released to unlock the contract before any fees are paid. The client application can provide a service to multiple end users based on the digital time-locked contract. For example, the service can be one or more of the following: a sealed-bid auction; a key delegation scheme; a voting scheme; or time-locked release of confidential information. The computer-implemented methods described herein can be implemented by providing a computer-readable storage medium containing computer-executable instructions that, when executed, assemble a processor to perform the methods described herein. Alternatively, an electronic device can be provided comprising: an interface device; a processor coupled to the interface device; and a memory coupled to the processor, the memory storing computer-executable instructions thereon that, when executed, assemble the processor to perform the methods described herein. The present invention described herein differs from the prior art discussed in the background section, as set forth below. The ether alarm clock system differs significantly from the system described in this invention in that it does not disclose an agent holding a private encryption key associated with a public key and then releasing that private key within a specified time window, wherein a digital contract is provided to manage the system to ensure that the agent releases the private encryption key at the correct time. Furthermore, prior art systems do not enable the use of a public key for a specified period of time during which data associated with the use is encrypted and then a private key is released to enable the decryption of the data associated with the use. The system described in "μchain: How to Forget Without a Hard Fork" also appears significantly different from the system described in this invention in that it does not disclose an agent holding a private encryption key associated with a public key and then releasing that private key within a specified time window, wherein a digital contract is provided to manage this system to ensure that the agent releases the private encryption key at the correct time. Prior art systems do not appear to enable the use of a public key for a specified period of time during which data associated with the use is encrypted and then a private key is released to enable the decryption of the data associated with the use, wherein the release of the private key is subject to a requirement ensuring its release at the correct time. More precisely, in the μchain documentation, the decryption key is generated by the user of the system, not by an agent. That is, the user maintains control over the release of the decryption key, and therefore the system relies on a trusted user. Users can therefore easily compromise security. Similarly, "Secure Multi-Party Computation for Bitcoin" and US 2016086175 also describe systems that are significantly different from the systems described in this invention, except that they do not disclose an agent holding a private cryptographic key associated with a public key and then releasing the private key within a specified time window, wherein a digital contract is provided to manage the system to ensure that the agent releases the private cryptographic key at the correct time. [Simplified Explanation of the Diagram] These and other aspects of the invention will be apparent from the embodiments described herein and will be illustrated with reference to these embodiments. Embodiments of the invention will now be described by way of example only with reference to the accompanying drawings, in which: Figure 1 shows a flowchart of an initialization protocol for establishing a digital time-locked contract between a user and an agent after a communication channel has been established between the user and the agent; Figure 2 shows an example of transaction instruction codes for constructing a digital time-locked contract between the user and the agent; Figure 3 shows a schematic timetable of the digital time-locked contract and the destination of the output depending on the time period; and Figure 4 shows a schematic diagram of a multi-agent agreement.
Implementation Method
Claims
1. A computer-implemented method for generating a public encrypted key on a blockchain network and enabling access to a corresponding private encrypted key after a specified time period, the method comprising: constructing a digital time-locked contract between an agent and a user terminal on the blockchain network, the agent having an agent address and an associated agent signature on the blockchain network, and the user terminal having a user terminal address and an associated user terminal signature on the blockchain network, the digital time-locked contract specifying the following: (i) the agent holds the private encrypted key corresponding to the public encrypted key on the blockchain network, and then releases the private encrypted key to the blockchain network within a specified time window; (ii) the agent provides a first cryptographic asset to hold the private encrypted key, and then releases the private encrypted key to the blockchain network within the specified time window. (iii) The client provides a second cryptographic asset to the agent to hold the private encryption key, and then releases the private encryption key to the blockchain network within the specified time window. When the private encryption key is released to the blockchain network within the specified time window, the second cryptographic asset can be transferred to the agent address on the blockchain network; (iv) If the private encryption key is released before the time window opens, the second cryptographic asset can be transferred to the client address on the blockchain network; (v) If the private encryption key is not released before the time window closes, the second cryptographic asset can be transferred to the client address on the blockchain network.
2. The computer implementation method of claim 1, wherein in step (iv), the client or any person may use the private encryption key to obtain the agent's first cryptographic asset.
3. The computer implementation method as described in request 1 or 2, wherein in step (v), the first cryptographic asset may also be transferred to the client address on the blockchain network.
4. The computer implementation method of request item 1, wherein the computer implementation method is initiated by the client sending a request indicating an expectation to establish a digital time-locked contract.
5. The computer implementation method as described in request item 4, wherein the client specifies the second cryptographic compilation asset and the time window.
6. The computer implementation method as described in claim 1, wherein the agent constructs the public and private encryption key pair.
7. The computer implementation method of claim 1, wherein the agent constructs the digital time-locked contract.
8. The computer implementation method of claim 1, wherein the digital time-locked contract becomes active after it has been captured into the blockchain, and the public encryption key is publicly available for encrypting data, which is therefore not decryptable after encryption until the private encryption key is released.
9. The computer implementation method of request item 1, wherein the time window is specified as a time t and a time period Δt, wherein the time window is opened at the time t and the time window is closed after the time period Δt.
10. The computer implementation method of claim 9, wherein the second cryptographic asset can be transferred to the client address at any time along with the private encryption key, a time-locked puzzle value that can be derived from the private encryption key, and the client signature.
11. The computer implementation method of claim 9 or 10, wherein the second cryptographic asset may be transferred to the agent's address after time t, together with the private encryption key and the agent's signature.
12. The computer implementation method of request item 9 or 10, wherein the second cryptographically compiled asset may be transferred to the client address together with the client signature after time t+△t.
13. The computer implementation method of claim 9 or 10, wherein the first cryptographic asset can be transferred at any time to any address by providing the private encryption key and a time-locked puzzle value that can be derived from the private encryption key.
14. The computer implementation method of claim 9 or 10, wherein the first cryptographic asset may be transferred to the agent's address after time t, together with the private encryption key and the agent's signature.
15. The computer implementation method of request item 9 or 10, wherein the first cryptographic asset may be transferred to the client address along with the client signature after time t+△t.
16. The computer implementation method of claim 1, wherein the agent enters into multiple digital time-locked contracts along with multiple user terminals.
17. The computer implementation method of claim 1, wherein the agent is a single agent holding the private encryption key.
18. The computer implementation method of claim 1, wherein the agent comprises: multiple agents each holding a share of the private encryption key, the derivation of the private encryption key is achieved by a threshold of the private key shares provided by the multiple agents, and the first cryptographic asset and the second cryptographic asset are split among the agents.
19. The computer implementation method of claim 1, wherein the client provides a service to multiple end users based on the digital time-locked contract.
20. The computer implementation method of request item 19, wherein the service is one or more of the following: a sealed-bid auction; a key delegation scheme; a voting scheme; or timely release of confidential information.
21. The computer implementation method of claim 1 further includes: broadcasting the digital time-locked contract to the blockchain network for recording on the blockchain.
22. A computer-readable storage medium comprising computer-executable instructions, which, when executed, assemble a processor to perform any of the methods described in claims 1 to 21.
23. An electronic device comprising: an interface device; a processor coupled to the interface device; and a memory coupled to the processor, the memory storing computer-executable instructions which, when executed, assemble the processor to perform any one of claims 1 to 21.
Citation Information
Patent Citations
Servers for a reward-generating distributed digital resource farm and methods for controlling a server for a reward-generating distributed digital resource farm
TW201705016A
Secure Key Management for Roaming Protected Content
US20160080149A1
Digital asset intermediary electronic settlement platform
US20160292680A1
Systems and methods for autonomous device transacting
US20170132621A1
A system and method for blockchain smart contract data privacy
WO2017090041A1