WO2020065460A1 - Computer-implemented system and method for transferring access to digital resource - Google Patents

Computer-implemented system and method for transferring access to digital resource Download PDF

Info

Publication number
WO2020065460A1
WO2020065460A1 PCT/IB2019/057917 IB2019057917W WO2020065460A1 WO 2020065460 A1 WO2020065460 A1 WO 2020065460A1 IB 2019057917 W IB2019057917 W IB 2019057917W WO 2020065460 A1 WO2020065460 A1 WO 2020065460A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
blockchain
transaction
resource
bob
Prior art date
Application number
PCT/IB2019/057917
Other languages
French (fr)
Inventor
Owen VAUGHAN
Original Assignee
nChain Holdings Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by nChain Holdings Limited filed Critical nChain Holdings Limited
Priority to SG11202102277TA priority Critical patent/SG11202102277TA/en
Priority to KR1020217012522A priority patent/KR20210065995A/en
Priority to JP2021513383A priority patent/JP7428704B2/en
Priority to EP19773938.6A priority patent/EP3857814A1/en
Priority to CN201980064210.8A priority patent/CN112789825A/en
Priority to US17/280,758 priority patent/US20210344500A1/en
Publication of WO2020065460A1 publication Critical patent/WO2020065460A1/en
Priority to JP2024009121A priority patent/JP2024028608A/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Abstract

A computer- implemented method for transferring access to, or control of, a resource is provided. The method comprises the steps of providing a blockchain transaction redeemable to transfer control of a resource by providing a data item (S 1 ) to the first blockchain transaction, wherein the data item is determinable only by a controller of both a revealable value (s) and a secret value (k 0 ), and providing the revealable value to a controller of the secret value to enable said controller to determine the data item. The method may be carried out using the Bitcoin blockchain, or using a combination of different blockchains.

Description

Computer-Implemented System and Method for Transferring Access to Digital Resource
This disclosure relates generally to the secure transfer of access to, or control of, resources, and more particularly to atomic transfer of such access, or control, via cryptographic keys transmitted using one or more blockchain transactions. The disclosure is particularly suited, but not limited to, use in any variation of the Bitcoin protocol.
In this document we use the term‘blockchain’ to include all forms of electronic, computer- based, distributed ledgers. These include consensus-based blockchain and transaction-chain technologies, permissioned and un-permissioned 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. While Bitcoin may be referred to herein for the purpose of convenience and illustration, it should be noted that the disclosure is not limited to use with the Bitcoin blockchain and alternative blockchain implementations and protocols fall within the scope of the present disclosure. The term“user” may refer herein to a human or a processor-based resource.
A blockchain is a peer-to-peer, electronic ledger which is implemented as a computer-based decentralised, distributed system made up of blocks which in turn are made up of transactions. Each transaction is a data structure that encodes the transfer of control of a digital asset between participants in the blockchain system, and includes at least one input and at least one output. Each block contains a hash of the previous block to that blocks become chained together to create a permanent, unalterable record of all transactions which have been written to the blockchain since its inception. Transactions contain small programs known as scripts embedded into their inputs and outputs, which specify how and by whom the outputs of the transactions can be accessed. On the Bitcoin platform, these scripts are written using a stack-based scripting language.
In order for a transaction to be written to the blockchain, it must be“validated”. Network nodes (miners) perform work to ensure that each transaction is valid, with invalid transactions rejected from the network. Software clients installed on the nodes perform this validation work on an unspent transaction (UTXO) by executing its locking and unlocking scripts. If execution of the locking and unlocking scripts evaluates to TRUE, the transaction is valid and the transaction is written to the blockchain. Thus, in order for a transaction to be written to the blockchain, it must be i) validated by the first node that receives the transaction - if the transaction is validated, the node relays it to the other nodes in the network; and ii) added to a new block built by a miner; and iii) mined, i.e. added to the public ledger of past transactions.
Although blockchain technology is most widely known for the use of cryptocurrency implementation, digital entrepreneurs have begun exploring the use of both the cryptographic security system Bitcoin is based on and the data that can be stored on the Blockchain to implement new systems. It would be highly advantageous if the blockchain could be used for automated tasks and processes which are not limited to the realm of cryptocurrency. Such solutions would be able to harness the benefits of the blockchain (e.g. a permanent, tamper proof records of events, distributed processing etc) while being more versatile in their applications.
One area of current research is the use of the blockchain for the implementation of“smart contracts”. These are computer programs designed to automate the execution of the terms of a machine-readable contract or agreement. Unlike a traditional contract which would be written in natural language, a smart contract is a machine executable program which comprises rules that can process inputs in order to produce results, which can then cause actions to be performed dependent upon those results.
Another area of blockchain-related interest is the use of ‘tokens’ (or‘coloured coins’) to represent and transfer real-world entities via the blockchain. A potentially sensitive or secret item can be represented by the token which has no discernable meaning or value. The token thus serves as an identifier that allows the real-world item to be referenced from the blockchain.
The concept of an atomic swap has previously been discussed in the cryptocurrency community. The exchange between the parties is“atomic” in the sense that all participants receive their desired resource (e.g. cryptocurrency token or coin) or none do. At the time of writing, Wikipedia describes an atomic swap as“a proposed feature in cryptocurrencies that allows for the exchange of one cryptocurrency for another cryptocurrency without the need for a trusted third party. In traditional cryptocurrencies a trusted third party such as a cryptocurrency exchange is necessary to perform a swap of cryptocurrencies in order to prevent one party from sending a currency without receiving a currency in return. An atomic swap system uses a hash time-locked smart contract so that a party must deliver the currency to be swapped within a specified time, or else the transaction will be cancelled. This preserves atomicity in that either the swap will take place, or no currency will be swapped” - https://en.wikipedia.org/wiki/Atomic_swap.
Thus, atomic swaps offer enhanced security in respect of transfers conducted over a blockchain, because removal of the need for a trusted third party removes the risk of exploits and malicious interventions - a number of security breaches or“hacks” have been performed in respect of cryptocurrency exchanges such as Mount Gox.
Thus, it is desirable to provide a cryptographically-enforced resource exchange method of atomically exchanging resources having the trustlessness and immutability provided by blockchain technology, and which enhances security in respect of exchanges conducted over blockchain-implemented networks.
Such an improved solution has now been devised.
Thus, in accordance with the present disclosure there is provided a method as defined in the appended claims.
In accordance with the disclosure there may be provided a computer-implemented method. It may be described as a method for transferring control of a resource. It may control transfer of a resource across or via a blockchain network. Additionally or alternatively, it may be described as a secure transfer method. Additionally or alternatively, it may be described as a security method for controlling when and/or by whom a controlled resource can be accessed. The resource may be a resource stored on or reference from the blockchain, such as a portion of cryptocurrency or a tokenised item/asset/entity. The method may comprise the steps of: providing a first blockchain transaction redeemable to enable access to a first resource by providing at least a data item to the first blockchain transaction, wherein the data item is determinable only by a controller of both a revealable value and a secret value; and providing the revealable value to a controller of the secret value to enable said controller to determine the data item. In the context of the present disclosure, “enable access” includes, but is not limited to, transferring control of a resource such as an amount of cryptocurrency, or enabling access to a document, online resource, or to a security access code.
This method enables access to, or control of, a resource to be securely transferred using one or more blockchains without requiring the protocols of those blockchains to share one or more common hash functions, thereby providing the advantage of increasing the number of blockchains across which the transfer can be effected. The security and efficiency of such a transfer of control or access is thus preserved while increasing the versatility of the transfer. It also allows transfer across otherwise incompatible network/blockchain protocols.
The data item may comprise a first private key of a first cryptographic key pair.
The first blockchain transaction may further require providing a second private key of a second cryptographic key pair to be redeemable, wherein the second cryptographic key pair is associated with an intended recipient of the first resource.
This provides the advantage of increasing the security of the method by preventing any actor with undesired knowledge of the first private key from redeeming the first transaction.
The first private key may be a deterministic private key of a deterministic cryptographic key pair, wherein the deterministic public key of said pair is derived using a first public key of the first cryptographic key pair and a second public key of the second cryptographic key pair. This further increases the security of the method by providing a level of obfuscation such that undesired revelation of the first private key does not compromise the first transaction while maintaining an intended recipient’s ability to redeem the first transaction.
The step of providing the revealable value to said controller may comprise: providing a second blockchain transaction redeemable to enable access to a second resource by providing at least the data item to the second blockchain transaction, wherein redemption of the second blockchain transaction causes the revealable value to be provided to said controller; and redeeming the second blockchain transaction.
This enables atomic swaps of resource access or control to be performed without requiring the use of hash functions, thereby providing a mechanism for secure and simultaneous digital exchanges to be performed without restriction to those blockchain protocols that share common hash functions.
Redemption of any above blockchain transaction may comprise calculating a cryptographic signature corresponding to the data item and comparing a value stored in the transaction to at least a portion of the calculated signature.
This enables a significant proportion of a cryptographic algorithm to be performed off-block, thereby distributing the necessary tasks for maintaining a level of cryptographic security from the blockchain and providing the related advantages of reducing the size of the first transaction (and therefore reducing storage requirements) and increasing the efficiency of the method.
The secret value may be an ephemeral key used in a digital signature process.
The disclosure also provides a system, comprising: a processor; and memory including executable instructions that, as a result of execution by the processor, causes the system to perform any embodiment of the computer-implemented method described herein. The disclosure also provides a non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by a processor of a computer system, cause the computer system to at least perform an embodiment of the computer-implemented method described herein.
These and other aspects of the present disclosure will be apparent from and elucidated with reference to, the embodiments described herein. Embodiments of the present disclosure will now be described, by way of example only, and with reference to the accompany drawings, in which:
Figure 1 illustrates a Distinguished Encoding Rules table of the prior art;
Figure 2 illustrates a table containing a script for extracting a portion of a signature;
Figure 3 illustrates a flow chart containing steps of an embodiment of the present disclosure; Figure 4 illustrates a flow chart containing steps of an embodiment of the present disclosure; Figure 5 illustrates a flow chart containing steps of an embodiment of the present disclosure; and
Figure 6 is a schematic diagram illustrating a computing environment in which various embodiments can be implemented.
A typical hash function, for example SHA-256, takes a data structure X and outputs a 256- bit number H(X) E TL256. It is a one-way deterministic function
X H® H(X) .
In the context of cryptocurrencies a hash function can be used to create a hash puzzle. This is a function <Solve H(X)> that will evaluate to TRUE if and only if a pre-image X is provided in an input to the function. That is AxSolve H(X)> = TRUE.
For SHA-256 such a function is given in bitcoin script by <Solve H(X)> = OP_HASH256 <H(X)> OP_EQUALVERIFY .
Hash puzzles may be used in scripts, such as redeem scripts, of blockchain transactions to ensure that if the transaction is redeemed then the pre-image X must be exposed in the input of the redeem script and therefore visible on the blockchain.
Figure imgf000008_0004
Under the ECDSA protocol, a signature for a private key 5! and message hash H(m ) is created in the following way (note that the message hash is known to everyone but the private key is only known to the person signing the message):
The first step is to produce a random number
Figure imgf000008_0001
known as the ephemeral key. From this the value r is derived, which is the x-coordinate of the ephemeral key multiplied by the generator point
r = Rx , ( Rx , Ry) = k G .
The value r forms one half of the signature. The second half s is defined by the equation
Figure imgf000008_0002
The combination (r, s) = Sig P1 is the ECDSA signature.
One important feature of ECDSA is that if the ephemeral key k is known then the private key can be calculated as follows:
Figure imgf000008_0003
The data structure of a signature (r, s) contains the integer values of r and s concatenated with some additional encoding data. According to the Distinguished Encoding Rules (DER) [S. Blake-Wilson, D. Brown, P. Lambert, Use of Elliptic Curve Cryptography (ECC) Algorithms in Cryptographic Message Syntax (CMS), Network Working Group (2002); https://tools.ietf.org/html/rfc3278] the specific encoding of the data structure of an ECDSA signature (r, s) is given by the table shown in Figure 1 (note that dummy r and s data values are used).
Referring to Figure 1, note that the last byte, which represents the sighash type, is not standard DER encoding but is used in bitcoin signature encoding. The 4th byte of the signature represents the length of r. This is either 32 bytes if the leading bit in the binary representation of r is 0, or 33 bytes if the leading bit is 1, in which case an extra zero-value byte is added to the byte-string. The 5th byte to the 36th or 37th byte of the signature represent the value or r itself.
A method for creating a private key puzzle will now be described.
A private key puzzle is a function in a redeem script that will evaluate to TRUE if an input is provided that enables a private key 5! of a given public key Pxt o be calculated
A puzzle of this form allows the algebraic properties of Elliptic Curve Cryptography (ECC) public/private keypairs to be utilised in the implementation of resource access and control. If the sum of two public keys is calculated then the corresponding private key will be the sum of the individual private keys:
Pi + P2 = (5i + S2) G .
Compare this to a hash function: if the sum of the hash of two values is calculated then the corresponding preimage is not usually the sum of the individual preimages:
H(X1 + X2) ¹ H(X1) + H(X2) .
Hash functions exist (known as homomorphic hash functions) for which the sum of the hash values of the individual preimages is equal to the hash value of the sum of the preimages, but these are generally not practicable to implement. Moreover, public/private key pairs allow for the encryption/decryption of data and the signing of messages using the Elliptic Curve Digital Signature Algorithm (ECDSA).
Examples of the private key puzzle in implementing atomic swaps are disclosed below. These examples allow users of the methods disclosed herein to perform cross-chain swaps on blockchains that do not share a common hash function. The examples include transfer of control of, or access to, a resource controlled by a public/private key pair.
Throughout this application, the private key puzzle is formulated in terms of ECC key pairs and the ECDSA protocol. However, the present disclosure is not restricted to these standards. For example, the method is also applicable to Schnorr signatures, and RSA key pairs with the DSA protocol.
As mentioned above, a private key puzzle is a function <Solve Px> that will evaluate to TRUE if acting on a corresponding private key <S1>. That is:
<S1><Solve Px> = TRUE.
Such a function does not currently exist. Inclusion of <Solve Px> in a transaction redeem script would ensure that in order to redeem the transaction the input provided to the redeem script must include the corresponding private key l which means that
Figure imgf000010_0001
is exposed to the public on the blockchain. However, in at least the case where the redeem script is a redeem script of a blockchain transaction on the Bitcoin blockchain, such a function would require a prohibitively large number of operators which would prevent the transaction from being constructed and used. This problem is described in greater detail below.
Suppose there exists an operator OP_ECMULT that performs elliptic curve point multiplication. This means that a point on an elliptic curve, for example the generator point G, is multiplied by a positive integer, for example e TJn. That is:
<SX> <G> OP_ECMULT = <?!>. In this case the private key puzzle would be given by:
<Solve ?!> = <5X> <G> OP_ECMULT <PX> OP_EQUALVERIFY.
However, at present, there is no such elliptic curve operator in bitcoin script.
After the reinstatement of some previously retired op codes in the bitcoin May 2018 fork, such as OP_MOD, there are technically all the operators required to perform elliptic curve multiplication within bitcoin script, i.e. to construct OP_ECMULT using other operators. However, there are practical reasons why this is not possible.
Such a function would require a minimum of 256 iterations, each iteration containing several lines of complicated operations. Most notably each iteration would require applying the extended Euclidean algorithm in order to take a modular inverse. Thus, this size of the script required would far exceed the limit of 201 op codes or 10KB.
In contrast, the method presented below just uses a few lines of opcodes.
Embodiments of a method for creating and utilising a private key puzzle, that includes that the private key is calculated off-block, are disclosed below. In the embodiments, the private key itself is not exposed in the input of a redeem script, rather, a component of a signature is exposed.
The key idea is to require an unlocking script to contain a signature that is related to a specific ephemeral key. The corresponding private key can then be calculated from the signature by whoever knows the ephemeral key.
The embodiments, described with reference to Bitcoin script, do not use any non-standard script operations. A function <Solve Pl r0> is constructed where P1 is a public key and r0 is derived from a specific ephemeral key k0. This function evaluates to TRUE if and only if it operates on the input <Sig Pl r r0> <P > where <Sig Pl r r0> denotes the signature of P1 using the specific ephemeral key k0. Since a signature with a known ephemeral key exposes the corresponding private key, the private key may be calculated by anyone who knows k0 once <Sig Pl r r0> is made public.
With reference to Figure 2, a bitcoin script that extracts the r part of the signature is disclosed. According to the DER encoding of the signature given above, in order to extract the r part we need to split the signature on the 5th byte until the 36th or 37th byte, which is dependent on the value of the 4th byte. This is achieved by the bitcoin script:
OP_3 OP_SPLIT OP_NIP OP_l OP_SPLIT OP_SWAP OP_SPLIT OP_DROP .
Consider a public key P . As mentioned above, a method for creating a locking script such that the corresponding unlocking script exposes enough information for a controller of the ephemeral key to determine the private key of P is disclosed.
The method includes forcing an unlocking script to contain a signature of P that uses a specific ephemeral key, denoted/c0. The corresponding private key, denotedS-^ can be calculated from the signature by whoever knows the ephemeral key. Users of the method agree on a value of k0 to use. The users may communicate this value to one another using suitably secure known methods.
As described above, an ECDSA signature is made up of two components, i.e.: Sig P1 = (r, s), where r is directly related to, and calculable from, the ephemeral key k0.
The value of r = Rx corresponding to ephemeral key k0 is calculated (off-block) though the equation:
(Rx, Ry) = k0 - G . A redeem script is then created that requires as an input a signature of P1 that uses the specific ephemeral key k0.
Figure imgf000013_0001
An example of a redeem script which is compatible with the bitcoin blockchain is given below:
Figure imgf000013_0002
Where the script for key puzzle <Solve Pl r0> =
Figure imgf000013_0003
In the above table, the first row places the public key Px on the alt- stack and duplicates the signature. The second row checks that the correct ephemeral key has been used. The third row retrieves the public key from the alt-stack and checks that the signature is valid. The bitcoin script operations used above, namely OP_DUP, OP_TOALTSTACK and OP_FROM ALTS TACK, are not strict requirements and can be dropped if, for example, one duplicates and reorders the input variables.
Note that there are alternative ways to formulate the private key puzzle in bitcoin script. In particular, one may use the OP_CAT operation instead ofOP_SPLIT. In this case, the input to the redeem script would be a partial signature that only contained the s component (which would be calculated using the pre-determined ephemeral key k0 and the private keyS- The redeem script would then concatenate the pre-determined value of r with the partial signature in order to produce a complete signature (r, s). This signature would, by construction, have the desired r. It would then be left to perform a standard checksig operation.
An atomic swap refers to two transactions, one from Alice to Bob and one from Bob to Alice. An atomic swap ensures that either both transactions are redeemable or neither are redeemable. The mechanism that allows this to happen is a hash puzzle within a redeem script. Advantages of atomic swaps include:
• Cryptocurrencies on different blockchains may be exchanged. For example, Alice may send BCH to Bob and receive BTC from Bob.
• Coloured coins or other forms of tokens on the same blockchain may be exchanged.
Note that, currently, atomic exchange across different blockchains requires both blockchains to share a common hash function in their scripting language. An advantage of the present disclosure is that the blockchains no longer require a common hash function, thereby enabling transfer of control of, or access to, resources across a greater variety of blockchains. In addition, by basing the atomic exchange on a digital signature, it is possible to verify that the digital signature is consistent with the corresponding public key, thereby improving the security of the exchange.
A known method is described below to provide context for a subsequent description of an embodiment of the present disclosure.
Let PA and PB denote the ECDSA public keys of Alice and Bob respectively. 1. Alice chooses a secret A0 E TLn * known only to herself (n is the order of the elliptic curve generator point G).
2. Alice transfers funds to Bob that are locked with the redeem script <CheckSig PB> <Solve H(A0)>
At this stage Bob cannot spend the funds as he doesn’t know the preimage of H(A0).
3. Bob transfers funds to Alice that are locked with the redeem script <CheckSig PA> <Solve H(A0)>
4. Since Alice knows A0 she can spend her funds. This reveals A0 on the blockchain as input for Alice’s redeem script.
Bob now knows A0 and can spend his funds.
The private key puzzle of the present disclosure, described earlier, may be used to effect atomic swaps between users of one or more blockchains without the requirement of a shared hash function. A method for implementing such an atomic swap is described below.
Instead of using a hash puzzle in an atomic swap the private key puzzle disclosed above is used. This retains all the functionality of a known atomic swap whilst allowing for advantageous generalisations, which include:
• Atomic swaps across blockchains that do not share a common hash function; and
• The atomic exchange of control of, or access to, a resource controlled by a public/private keypair. As described above, when using the private key puzzle rather than a hash puzzle, when Alice redeems a transaction, instead of revealing the preimage of a hash, she enables the private key of a known public key to be determined. This contrast is illustrated in the table below:
Figure imgf000016_0001
An embodiment of the present disclosure is described, with reference to Figure 3, in terms of the method steps below:
1. (110) Alice chooses ephemeral key /c0and sends it to Bob via a suitably secure channel.
Alternatively, Alice and Bob may agree on k0.
2. (120) Alice chooses a private key 5! E T n known only to herself. She calculates the corresponding public key Pt = S1 - G.
3. (130) Alice creates a transaction TxA having the redeem script <CheckSig PB> <Solve Plt r0>
Where PB is Bob’s public key and <Solve Plt r0> is the private key puzzle introduced above. At this stage, Bob cannot redeem the transaction as he doesn’t know the private key corresponding to public key Pl i.e.S-L. Alice submits TxA to the blockchain.
4. (140) Bob creates a transaction TxB having the redeem script
<CheckSig PA> <Solve Plt r0> Where PA is Alice’s public key. Bob submits TxB to the blockchain.
5. (150) Since Alice knows
Figure imgf000017_0001
she can redeem TxB. As input for the redeem script of TxB, Alice must provide a signature for Pt using the specific ephemeral key k0. Redemption of TxB by submission of a redeeming transaction presenting an unlocking script to TxB to the blockchain necessarily makes public the value of s. Given that he already knows the value of the ephemeral key k0, this revelation of s allows Bob to calculate the private key S- (160) There may or may not be a time constraint imposed on the redemption of TxA and TxB using timelock functions, which, if the times expire, are configured to enable control of TxA and TxB to be returned to Alice and Bob by means of Alice and Bob submitting suitable refund transactions to the blockchain.
6. (170) If Alice redeems TxB, (180) Bob is able to calculate 5! and (190) can redeem Txl by providing thereto by means of an unlocking script of a redeeming transaction a signature corresponding toS^
As this method does not rely on a hash puzzle it can be used to make atomic swaps across blockchains that do not share a common hash function in their scripting languages. All that is required is that the scripting languages contain enough functionality to create a private key puzzle. This is a less restrictive set of requirements.
With reference to Figure 4, in a further embodiment, Alice and Bob each choose their own ephemeral keys kA and kB and their own private keys XA and XB. They exchange their ephemeral keys in a similar manner to how they communicate ephemeral key k0 of the above-described asynchronous embodiment. Alice and Bob may then calculate signature components rA, which is the x component of point kA G and rB, the x component of point kB G . The remaining signature components of the signatures calculated using XA and XB are respectively denoted
Figure imgf000017_0002
and sB, so that Sig XA= ( rA,sA ) and Sig XB= ( rB, sB ). Note that kA and kB may or may not be identical in this embodiment, i.e. a common k0 may be used instead. This embodiment is carried out according to the following steps:
1. (210A, 210B) Alice and Bob choose their own ephemeral keys kA and kB, and communicate them to each other.
2. (220A) Alice chooses a private key XA E TLn * known only to herself. She calculates the corresponding public key YA = XA - G .
3. (230) Alice creates a transaction TxlA having the redeem script <CheckSig PB> <Solve UA> UB> T A> T B >
Where PB is Bob’s public key and <Solve UL, YB, rA, rB> is the private key puzzle requiring the provision of signatures corresponding to private keys XA and XB. At this stage, Bob cannot redeem the transaction as he doesn’t know the private key corresponding to public key YA, i.e. XA.
4. (220B) Bob chooses a private key XB E TLn * known only to himself. He calculates the corresponding public key YB = XB G .
5. (240) Bob creates a transaction TxlB having the redeem script <CheckSig PA> <Solve UA> UB> T A> T B >
Where PA is Alice’s public key.
Note that the key puzzle portions of the scripts of TxlA and TxlB are identical. The key puzzle, <Solve UL, YB, rA, rB> , requires presentation thereto of signatures corresponding to private keys XA and XB, i.e. signatures (rA,sA) and ( rB, sB ).
(250) At this point, Alice does not know¾, nor can she calculate it as she does not know sB. Similarly, Bob does not know XA or sA. Neither Alice nor Bob therefore have enough information to redeem TxlA or TxlB. Both Alice and Bob may act honestly by each communicating their respective signature component sA/ sB or private key XA/XB to the other, or only one of them may act honestly, or neither may. One of the following outcomes may therefore occur:
6A. 1) Assume Alice sends Bob
Figure imgf000019_0001
or XA, and Bob sends Alice sB or XA (i.e. both parties act honestly). (295) Then, both Alice and Bob have enough information to provide signatures to the redeem scripts of transactions TxlA and TxlB that solve the key puzzles therein. TxlA and TxlB can therefore be redeemed by Bob and Alice respectively by submission of spending transactions presenting respective unlocking scripts to TxlA and TxlB.
6B. 2) Assume only Alice acts honestly, by sending Bob
Figure imgf000019_0002
or XA, and Bob acts dishonestly by either not sending Alice a correct sB or XB or by not sending anything at all. (270) Bob is then able to redeem TxlA by submitting a redeeming transaction providing a signature in its unlocking script, corresponding to XA, to solve the key puzzle contained in TxlA’s redeem script. Once Bob has submitted a redeeming transaction, containing an unlocking script arranged to redeem TxlA, to the blockchain, the signature ( rB, sB ) is made publicly available. (280) Alice is thereby made aware of the value sB which, as she knows ephemeral key kB, enables her to calculate key XB, and therefore to have enough information to redeem TxlB. (290) Alice then submits a redeeming transaction providing a signature in its unlocking script, corresponding to XB, to solve the key puzzle contained in TxlB’s redeem script.
6C. 3) Assume neither Alice nor Bob sends the other either sA/sB or XA/XB (260)
Transactions TxlA and TxlB remain unredeemable in this case, until such time as a timelock (if active) expires to enable control of the transactions to be returned to their respective owners by means of the respective owners submitting suitable redeem transactions to the blockchain.
A symmetrical configuration of transactions as described in the above embodiment enables synchronous atomic swaps to take place using transactions configured with key puzzles. This enables both transactions TxlA and TxlB to transfer access to, or control of, respective resources to the other party simultaneously, instead of a party having to wait for a block to be mined to reveal necessary information for redeeming a transaction dependent on said necessary information.
An embodiment of the present disclosure will now be described with reference to Figure 5 which enables the atomic exchange of access to, or control of, one or more resources.
In this embodiment, Alice controls access to a resource via an ECC public/private key pair. This resource could be funds of one type of cryptocurrency, it could be funds in multiple types of cryptocurrency, or it could be access to a webapp, a rental car, or an encrypted document, or control of an Internet of Things smart device, such as a webcam or door lock. Below, a method is presented for Bob to gain access to this resource from Alice, using the Bitcoin protocol. This exchange is atomic: either Alice redeems the BCH she has received from Bob and Bob gains access to or control of the resource, or neither happen.
As an example, consider Bob transferring funds in BCH to Alice and Alice transferring funds in BCH, Ethereum (ETH) and DASH to Bob.
This method ensures that the information required by controllers of the ephemeral key to calculate the private key that controls the resource is exposed when the atomic swap is complete. This removes the need for trust in the party granting access to the controlled resource.
The method includes the following steps:
1. (310) Alice chooses ephemeral key k0 and communicates it to Bob.
2. (320) Alice chooses a private key
Figure imgf000020_0001
e Έΐh known only to herself. She calculates the corresponding public key
Figure imgf000020_0002
= S1 - G. This public key controls access to a resource, and is openly broadcast. (In this example the resource is funds in BCH, ETH and DASH locked with public key
Pi·) (325) Alice calculates deterministic public key P' = P1 + P B = Pt + SB G using Bob’s public key PB and (330) enables access to the resource to be obtained by the owner of the private key S' = SB + S of the public key P'. For example, this may be achieved by creating a transaction Tx’ that sends an amount of cryptocurrency to the address P', or by encrypting a document with the public key P ' and then broadcasting the document on an open forum.
(In this example Alice makes BCH, ETH and DASH transactions to a common address, each locked with common public key P'.)
4. (340) Bob submits a transaction TxB locked with the redeem script
<CheckSig PA> <Solve Pl r0>
5. (370) Since Alice knows S! she is able to redeem TxB. In this example, this is done on the BCH blockchain. As described above, this allows Bob to calculate S! from the information provided in the input to Alice’s redeem script. (360) There may or may not be a time constraint imposed on the redemption of Tx’ and TxB using timelock functions, which, if the times expire, are configured to enable control of Tx’ and TxB to be returned to Alice and Bob.
6. (370) Alice redeems transaction TxB by submitting a redeeming transaction providing a signature corresponding to S-^n an unlocking script, revealing the s part of the signature to Bob.
7. (380) Bob now calculates 5! and therefore is able to (385) calculate the private key S’ = SB + 5! of P'. He thereby gains access to the resource controlled by P'. (In this example Bob can now spend the funds in BCH, ETH and DASH that were locked with the public key P'.) Note that even if the private key 5! is exposed to the public, on the blockchain or otherwise, it is only Bob who can access, or control, the resource locked at R' . This is because the resource is locked with the combination of 5! and Bob’s private key. In this sense 5! acts as a deterministic key.
In this example it can be seen that it is no longer required that the cryptocurrencies that Bob is buying contain certain operations in their scripting language. It is only required that Bob pays for the collection of cryptocurrencies in BCH and that the transactions are controlled using ECDSA signatures.
In order to avoid Bob’s resource being locked forever by Alice, a time-locked return can be introduced to the method. This is a BCH transaction from Alice to Bob that returns the resource to Bob after a certain relative time has passed since his first transaction to Alice, for example 24 hours.
Similarly, Alice may return access to her controlled resource back to herself after a certain amount of time has passed. In the example of multiple cryptocurrencies this would also be a return transaction, similar to Bob’s.
It may not be necessary or practical for Alice to return control of the resource back to herself after a certain amount of time has passed if the swap is not completed. For example, if the resource is an encrypted document for which Bob is granted access to then there is no disadvantage to Alice in leaving the document encrypted with the key P' indefinitely.
Turning now to Figure 6, there is provided an illustrative, simplified block diagram of a computing device 2600 that may be used to practice at least one embodiment of the present disclosure. In various embodiments, the computing device 2600 may be used to implement any of the systems illustrated and described above. For example, the computing device 2600 may be configured for use as a data server, a web server, a portable computing device, a personal computer, or any electronic computing device. As shown in Figure 6, the computing device 2600 may include one or more processors with one or more levels of cache memory and a memory controller (collectively labelled 2602) that can be configured to communicate with a storage subsystem 2606 that includes main memory 2608 and persistent storage 2610. The main memory 2608 can include dynamic random-access memory (DRAM) 2618 and read-only memory (ROM) 2620 as shown. The storage subsystem 2606 and the cache memory 2602 and may be used for storage of information, such as details associated with transactions and blocks as described in the present disclosure. The processor(s) 2602 may be utilized to provide the steps or functionality of any embodiment as described in the present disclosure.
The processor(s) 2602 can also communicate with one or more user interface input devices 2612, one or more user interface output devices 2614, and a network interface subsystem 2616.
A bus subsystem 2604 may provide a mechanism for enabling the various components and subsystems of computing device 2600 to communicate with each other as intended. Although the bus subsystem 2604 is shown schematically as a single bus, alternative embodiments of the bus subsystem may utilize multiple busses.
The network interface subsystem 2616 may provide an interface to other computing devices and networks. The network interface subsystem 2616 may serve as an interface for receiving data from, and transmitting data to, other systems from the computing device 2600. For example, the network interface subsystem 2616 may enable a data technician to connect the device to a network such that the data technician may be able to transmit data to the device and receive data from the device while in a remote location, such as a data centre.
The user interface input devices 2612 may include one or more user input devices such as a keyboard; pointing devices such as an integrated mouse, trackball, touchpad, or graphics tablet; a scanner; a barcode scanner; a touch screen incorporated into the display; audio input devices such as voice recognition systems, microphones; and other types of input devices. In general, use of the term“input device” is intended to include all possible types of devices and mechanisms for inputting information to the computing device 2600. The one or more user interface output devices 2614 may include a display subsystem, a printer, or non- visual displays such as audio output devices, etc. The display subsystem may be a cathode ray tube (CRT), a flat-panel device such as a liquid crystal display (LCD), light emitting diode (LED) display, or a projection or other display device. In general, use of the term“output device” is intended to include all possible types of devices and mechanisms for outputting information from the computing device 2600. The one or more user interface output devices 2614 may be used, for example, to present user interfaces to facilitate user interaction with applications performing processes described and variations therein, when such interaction may be appropriate.
The storage subsystem 2606 may provide a computer-readable storage medium for storing the basic programming and data constructs that may provide the functionality of at least one embodiment of the present disclosure. The applications (programs, code modules, instructions), when executed by one or more processors, may provide the functionality of one or more embodiments of the present disclosure, and may be stored in the storage subsystem 2606. These application modules or instructions may be executed by the one or more processors 2602. The storage subsystem 2606 may additionally provide a repository for storing data used in accordance with the present disclosure. For example, the main memory 2608 and cache memory 2602 can provide volatile storage for program and data. The persistent storage 2610 can provide persistent (non-volatile) storage for program and data and may include flash memory, one or more solid state drives, one or more magnetic hard disk drives, one or more floppy disk drives with associated removable media, one or more optical drives (e.g. CD-ROM or DVD or Blue-Ray) drive with associated removable media, and other like storage media. Such program and data can include programs for carrying out the steps of one or more embodiments as described in the present disclosure as well as data associated with transactions and blocks as described in the present disclosure.
The computing device 2600 may be of various types, including a portable computer device, tablet computer, a workstation, or any other device described below. Additionally, the computing device 2600 may include another device that may be connected to the computing device 2600 through one or more ports (e.g., USB, a headphone jack, Lightning connector, etc.). The device that may be connected to the computing device 2600 may include a plurality of ports configured to accept fibre-optic connectors. Accordingly, this device may be configured to convert optical signals to electrical signals that may be transmitted through the port connecting the device to the computing device 2600 for processing. Due to the ever- changing nature of computers and networks, the description of the computing device 2600 depicted in FIG. 6 is intended only as a specific example for purposes of illustrating the preferred embodiment of the device. Many other configurations having more or fewer components than the system depicted in FIG. 6 are possible.
It should be noted that the above-mentioned embodiments illustrate rather than limit the disclosure, and that those skilled in the art will be capable of designing many alternative embodiments without departing from the scope of the disclosure as defined by the appended claims. In the claims, any reference signs placed in parentheses shall not be construed as limiting the claims. The word "comprising" and "comprises", and the like, does not exclude the presence of elements or steps other than those listed in any claim or the specification as a whole. In the present specification,“comprises” means“includes or consists of’ and “comprising” means“including or consisting of’. The singular reference of an element does not exclude the plural reference of such elements and vice-versa. The disclosure may 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 measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.

Claims

CLAIMS:
1. A computer-implemented method, the method comprising the steps of: providing a first blockchain transaction redeemable to enable access to a first resource by providing at least a data item to the first blockchain transaction, wherein the data item is determinable only by a controller of both a revealable value and a secret value; and providing the revealable value to a controller of the secret value to enable said controller to determine the data item.
2. The method of claim 1, wherein the data item comprises a first private key of a first cryptographic key pair.
3. The method of claim 2, wherein the first blockchain transaction further requires providing a second private key of a second cryptographic key pair to be redeemable, wherein the second cryptographic key pair is associated with an intended recipient of the first resource.
4. The method of claim 3, wherein the first private key is a deterministic private key of a deterministic cryptographic key pair, wherein the deterministic public key of said pair is derived using a first public key of the first cryptographic key pair and a second public key of the second cryptographic key pair.
5. The method of any preceding claim, wherein the step of providing the revealable value to said controller comprises: providing a second blockchain transaction redeemable to enable access to a second resource by providing at least the data item to the second blockchain transaction, wherein redemption of the second blockchain transaction causes the revealable value to be provided to said controller; and redeeming the second blockchain transaction.
6. The method of any preceding claim, wherein redemption of a blockchain transaction of any preceding claim comprises calculating a cryptographic signature corresponding to the data item and comparing a value stored in the transaction to at least a portion of the calculated signature.
7. The method of any preceding claim, wherein the secret value is an ephemeral key used in a digital signature process.
8. A system, comprising:
a processor; and
memory including executable instructions that, as a result of execution by the processor, causes the system to perform the method of any preceding claim.
9. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by a processor of a computer system, cause the computer system to at least perform the method of any one of claims 1 to 7.
PCT/IB2019/057917 2018-09-28 2019-09-19 Computer-implemented system and method for transferring access to digital resource WO2020065460A1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
SG11202102277TA SG11202102277TA (en) 2018-09-28 2019-09-19 Computer-implemented system and method for transferring access to digital resource
KR1020217012522A KR20210065995A (en) 2018-09-28 2019-09-19 Computer-implemented systems and methods for transmitting access to digital resources
JP2021513383A JP7428704B2 (en) 2018-09-28 2019-09-19 Computer-implemented systems and methods for transferring access to digital resources
EP19773938.6A EP3857814A1 (en) 2018-09-28 2019-09-19 Computer-implemented system and method for transferring access to digital resource
CN201980064210.8A CN112789825A (en) 2018-09-28 2019-09-19 Computer-implemented system and method for transferring access to digital resources
US17/280,758 US20210344500A1 (en) 2018-09-28 2019-09-19 Computer-implemented system and method for transferring access to digital resource
JP2024009121A JP2024028608A (en) 2018-09-28 2024-01-25 Computer-implemented systems and methods for transferring access to digital resources

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB1815816.2A GB201815816D0 (en) 2018-09-28 2018-09-28 Computer-implemented system and method
GB1815816.2 2018-09-28

Publications (1)

Publication Number Publication Date
WO2020065460A1 true WO2020065460A1 (en) 2020-04-02

Family

ID=64109009

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2019/057917 WO2020065460A1 (en) 2018-09-28 2019-09-19 Computer-implemented system and method for transferring access to digital resource

Country Status (9)

Country Link
US (1) US20210344500A1 (en)
EP (1) EP3857814A1 (en)
JP (2) JP7428704B2 (en)
KR (1) KR20210065995A (en)
CN (1) CN112789825A (en)
GB (1) GB201815816D0 (en)
SG (1) SG11202102277TA (en)
TW (1) TW202025665A (en)
WO (1) WO2020065460A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021254703A1 (en) 2020-06-17 2021-12-23 Nchain Licensing Ag Agreements on the blockchain
WO2024041862A1 (en) * 2022-08-24 2024-02-29 Nchain Licensing Ag Blockchain transaction
US11968304B2 (en) 2019-05-24 2024-04-23 Nchain Licensing Ag Knowledge proof

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2578168A (en) * 2018-10-19 2020-04-22 Star Hat Solutions Ltd Computer-implemented method and system for digital signing of transactions
CA3060791C (en) * 2019-04-08 2020-10-06 Alibaba Group Holding Limited Product promotion using smart contracts in blockchain networks
DE102019005116A1 (en) * 2019-07-23 2021-01-28 Daimler Ag Procedure for trading cryptocurrencies
US11741083B2 (en) * 2020-07-24 2023-08-29 International Business Machines Corporation Cross-shard private atomic commit
US11403629B2 (en) * 2020-12-07 2022-08-02 II Thomas T. Meredith Systems and methods thereof for exchanging different digital currencies on different blockchains
US11315113B1 (en) * 2021-11-08 2022-04-26 Tangem AG Systems and methods for authorizing a transaction conventionally incompatible with a technical protocol

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018020375A1 (en) * 2016-07-29 2018-02-01 nChain Holdings Limited Blockchain-implemented method and system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9065637B2 (en) * 2012-01-25 2015-06-23 CertiVox Ltd. System and method for securing private keys issued from distributed private key generator (D-PKG) nodes
GB201613176D0 (en) 2016-07-29 2016-09-14 Eitc Holdings Ltd Computer-implemented method and system
WO2018029324A1 (en) * 2016-08-11 2018-02-15 Sony Corporation Authentication method, wearable device and mobile device
US11082412B2 (en) * 2017-07-12 2021-08-03 Wickr Inc. Sending secure communications using a local ephemeral key pool
KR102535674B1 (en) * 2017-12-12 2023-05-22 레노보 (싱가포르) 피티이. 엘티디. Provision of network access using blockchain payments

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018020375A1 (en) * 2016-07-29 2018-02-01 nChain Holdings Limited Blockchain-implemented method and system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ZENG GONGXIAN ET AL: "A Nonoutsourceable Puzzle Under GHOST Rule", 2017 15TH ANNUAL CONFERENCE ON PRIVACY, SECURITY AND TRUST (PST), IEEE, 28 August 2017 (2017-08-28), pages 35 - 358, XP033411027, DOI: 10.1109/PST.2017.00015 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11968304B2 (en) 2019-05-24 2024-04-23 Nchain Licensing Ag Knowledge proof
WO2021254703A1 (en) 2020-06-17 2021-12-23 Nchain Licensing Ag Agreements on the blockchain
WO2024041862A1 (en) * 2022-08-24 2024-02-29 Nchain Licensing Ag Blockchain transaction

Also Published As

Publication number Publication date
JP2024028608A (en) 2024-03-04
EP3857814A1 (en) 2021-08-04
GB201815816D0 (en) 2018-11-14
TW202025665A (en) 2020-07-01
KR20210065995A (en) 2021-06-04
US20210344500A1 (en) 2021-11-04
SG11202102277TA (en) 2021-04-29
CN112789825A (en) 2021-05-11
JP2022501887A (en) 2022-01-06
JP7428704B2 (en) 2024-02-06

Similar Documents

Publication Publication Date Title
JP7428704B2 (en) Computer-implemented systems and methods for transferring access to digital resources
US11410145B2 (en) Blockchain-implemented method for control and distribution of digital content
JP6877448B2 (en) Methods and systems for guaranteeing computer software using distributed hash tables and blockchain
CN111801910A (en) System and method for authenticating off-chain data based on proof verification
JP7449423B2 (en) Security system and method implemented in blockchain for blinded outcome selection
CN111476573A (en) Account data processing method, device, equipment and storage medium
CN114503508A (en) Computer-implemented method and system for storing authenticated data on blockchains
CN113939821A (en) System and method for non-parallel mining on a workload justification blockchain network
US20220278843A1 (en) Computer implemented method and system for knowledge proof in blockchain transactions
JP2023184657A (en) Computer-implemented system and method including public key combination verification
WO2021059098A1 (en) Partitioning a request into transactions for a blockchain
TW202105283A (en) Computer-implemented systems and methods for controlling or enforcing performance of transfers conducted over a blockchain
US20220129249A1 (en) Computer implemented method and system for pseudo-random data generator
CN112384939B (en) Computer-implemented system and method for out-of-chain exchange of distributed ledger-related transactions
TWI834741B (en) Computer-implemented system and method including public key combination verification
RU2755672C1 (en) Method for secure storage and updating data in distributed register using quantum communication networks
JP2024059932A (en) Blockchain-implemented security system and method for blinded outcome selection

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19773938

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021513383

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20217012522

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2019773938

Country of ref document: EP

Effective date: 20210428