Abstract: The invention relates to blockchain technologies such as the Bitcoin ledger, and for the control and performance of secure, efficient exchanges conducted via the blockchain. It comprises tokenisation techniques and methods for embedding metadata in a blockchain transaction.
Abstract: There may be provided a computer-implemented method. The computer-implemented method includes: i) broadcasting a transaction, by a node in a blockchain network, to a congress pool to join a congress formed of a group of nodes; ii) after the congress has accepted a request from a requester to activate a script, preparing, by the node, a blockchain transaction cryptographically locked with a public key associated with the congress; iii) cooperatively generating, by the node in cooperating with other nodes of the group, a valid cryptographic signature for the transaction to spend the transaction; iv) after the blockchain transaction has been unlocked, receiving data from the plurality of information providing systems; v) determining a centre point for the data received from the plurality of information providing systems; and vi) activating, by the node in cooperation with other nodes of the congress, the script based on the centre point.
Abstract: The invention provides a computer-implemented method and corresponding system which is implemented using an electronic ledger such as a blockchain. This may or may not be the Bitcoin blockchain. The invention can be used to implement, execute and/or control the performance of a task or process. A method according to the invention comprises the steps of generating a blockchain Transaction which comprises: at least one signed input which comprises a value; and at least one modifiable output. It further comprises the step of extracting the value from the signed input and providing it to a portion of logic to obtain a result; and using the result to modify the output of the Transaction. The transaction provides a record and/or representation of the execution of the portion of logic and/or the result. The signed input is provided to the Transaction using an unlocking script. The at least one input is signed using a signature hash type which renders the input as non-modifiable.
Abstract: A computer-implemented method (100) and system (1) for determining a metadata M for securing a controlled digital resource such as computer software using a distributed hash table (13) and a peer-to-peer distributed ledger (14). This is a blockchain such as the Bitcoin blockchain. The method includes determining (110) a data associated with the computer software and determining (120) a first hash value based on the computer software. A second hash value based on the data and the computer software may be determined (130). The method further includes sending 140, over a communications network (5), the data, the first hash value and the second hash value to an entry for storage in a distributed hash table (13). The second hash value may be a key of a key-value pair. The data and the first hash value may be a value in the key-value pair. A metadata (M) that is based on the second hash value may be determined (150) for storage on the peer-to-peer distributed ledger (14).
Abstract: The invention comprises a computer-implemented method and system for controlling an exchange process, such as a loan, conducted between at least two parties via a blockchain such as the Bitcoin blockchain. A method according to the invention may comprise the step of generating a first blockchain transaction which includes a redeem script. The redeem script comprises a cryptographic public key associated with an initiating party and metadata which includes a hash of an exchange-related document; a redeem address; and an amount of digital currency. A second blockchain transaction is generated and published to the blockchain so as to spend the digital currency to the redeem address. This provides the advantage that the further transaction will be publically available and thus detectable by other parties once it has been published. The further transaction can provide the information necessary to trigger a response e.g. an offer from another (responding) party who publishes their response on the blockchain.
Abstract: A method of communicating a secret (k0, k1) on the Bitcoin blockchain is disclosed. The method comprises sending information identifying secrets selectable by the recipient and receiving a first public key (Ui) of an elliptic curve cryptography system, corresponding to a first secret (Si) selected for access by the recipient and for which a first private key (m) is accessible to the recipient. A second public key (U1-i) is received, corresponding to a second secret not selected for access by the recipient, wherein a corresponding second private key is not available to the recipient. First and second secrets encrypted by means of the respective first and second public keys (X0, X1) are sent to the recipient, wherein the first secret is accessible to the recipient by means of the first private key, the second secret is inaccessible to the recipient, and the sender is unable to distinguish between the first and second secrets.
Abstract: There may be provided a blockchain-implemented security method involving a requestor and a group of nodes, which includes generating a cryptographic key of the requestor based on a password chosen by the requestor and first quantities sent by the group of nodes (which are derived from private key shares of the group of nodes and a generator function of a digital signature scheme employing a bilinear mapping on an elliptic curve). A cryptographic signature for a requestor blockchain transaction can be generated where the signature corresponds to the requestor's cryptographic key. The signature can be based on the password and second quantities sent by the group of nodes (which are also derived from the group private key shares). The method can further include verifying the cryptographic signature of the blockchain transaction using the requestor's cryptographic key.
Abstract: Systems and methods for performing a plurality of operations, in which at least one operation comprises a blockchain transaction, are described. A request to perform a plurality of operations is received, where the operations comprise a blockchain transaction and a second transaction of a type other than a block chain transaction. A conversion factor is obtained from a service and a blockchain transaction is recorded based on the conversion factor. The recorded blockchain transaction comprises an amount of a digital asset (e.g., Bitcoin) based on the conversion factor, a generated blockchain address, and an interstitial change address. The second transaction is performed as a result of the blockchain transaction having been validated.
July 7, 2018
Date of Patent:
August 16, 2022
nChain Holdings Limited
Lorien Benjamin Gamaroff, Angus James Farquharson Campbell Brown
Abstract: The disclosure relates to a blockchain-implemented system and method of controlling the transmission and/or distribution of digital content. A first user is associated with a deposit quantity of cryptocurrency at a common address. A first node associated with the first user sends a request to the second node to provide an episode of digital content from a series of digital content; determines a payment transaction to transfer a payment quantity of cryptocurrency to the second user, wherein the payment quantity is based on a quantity of episodes of digital content in the series; and signs and sends the payment transaction to a second node. The second node associated with the second user: receives the request and the payment transaction; verifies the payment transaction; and based on the result of verifying: provides access to the episode of digital content to be available to the first node; and co-signs and sends the payment transaction to a distributed ledger.
Abstract: A method of creating, redeeming and transferring tokens associated with tokens on a peer-to-peer distributed ledger. The method includes including metadata associated with the token in a redeem script, wherein the redeem script is associated with a transaction of cryptocurrency on the peer-to-peer distributed ledger. One aspect of the invention provides a method of issuing and/or transferring a token, comprising the steps of generating a blockchain transaction (Tx) having an output (TxO) related to a quantity of cryptocurrency such as Bitcoin, and a hash of a redeem script. The redeem script comprises metadata which in turn comprises a token. The token is a representation of, or a reference to, a tokenised entity. The redeem script also comprises at least one (preferably two or more) public cryptographic keys. The metadata is provided in the redeem script at a location which is designated in the underlying blockchain protocol as a location for a cryptographic key.
Abstract: A computer-implemented method and system for encrypting an executable of a computer software for installation using a distributed hash table and a peer-to-peer distributed ledger. This may be the Bitcoin blockchain or an alternative implementation. The method may include determining a generator value.
Abstract: The invention provides a computer-implemented method (and corresponding system) for generating a blockchain transaction (Tx). This may be a transaction for the Bitcoin blockchain or another blockchain protocol. The method comprises the step of using a software resource to receive, generate or otherwise derive at least one data item; and then insert, at least once, at least one portion of code into a script associated the transaction. Upon execution of the script, the portion of code provides the functionality of a control flow mechanism, the behaviour of the control flow mechanism being controlled or influenced by the at least one data item. In one embodiment, the code is copied/inserted into the script more than once. The control flow mechanism can be a loop, such as a while or for loop, or a selection control mechanism such as a switch statement. Thus, the invention allows the generation of a more complex blockchain script and controls how the script will execute when implemented on the blockchain.
Abstract: The invention provides a secure method for exchanging entities via a blockchain. The invention incorporates tokenisation techniques, and also techniques for embedding metadata in a redeem script of a blockchain transaction. Embodiment(s) provide a method of: generating a first script, the first script comprising: a first set of metadata associated with a first invitation for the exchange of a first entity by a first user, the first set of metadata comprising an indication of the first entity to be offered for exchange and a first location condition for the exchange, a first user public key (P1A) associated with the first user, wherein the first user public key (P1A) is part of an asymmetric cryptographic pair comprising the first user public key (P1A) and a first user private key (V1A).
Abstract: A computer-implemented method (600) and system (1) for verifying ownership of a computer software after installation and prior to execution using a distributed hash table (13) and a peer-to-peer distributed ledger (14). This may be the Bitcoin blockchain or an alternative implementation. The method includes determining (610) a second user public key associated with a second user (24) from a transaction record stored on the peer-to-peer distributed ledger (14). A second public key associated with the second user may be determined (620) from an entry on the distributed hash table (13). The method further includes comparing (630) the second user public key and the second public key, and verifying (640) the ownership of the computer software based on the comparing of the second user public key and the second public key.
Abstract: The invention provides a computer-implemented control method and corresponding system. The method may control or influence a device, system or other resource such as a technical process. The invention can provide a mechanism for emulating or otherwise executing the functionality of a logic gate via a computer-based distributed ledger (blockchain). This may be the Bitcoin blockchain or an alternative network/protocol. The invention provides logic embedded within a redeem script such that it determines which particular private keys have been used to sign an unlocking script, and then interprets the provision of those keys in accordance with a predetermined function.
Abstract: A method and system of recording multiple transactions between a multiple of users on a blockchain (9), including a first transaction (22) from a first user (5) to a second user (7) and a second transaction (24) from the second user (7) to the first user (5). The blockchain may be, for example, the Bitcoin blockchain. The method may include receiving (110) a first request from a first node (15) associated with the first user (A) to transfer a first quantity of cryptocurrency associated with the first transaction (22) and receiving (120) a second request from a second node (17) to transfer a second quantity associated with the second transaction (24). The first transaction (22) is conditional on receiving (120) the second request and the second transaction (24) is conditional on receiving (110) the first request. The method also includes verifying (130) the first request and second request that includes determining both the conditional steps of receiving the first request and second request are satisfied.
Abstract: A computer-implemented method (600) and system (1) for verifying ownership of a computer software for installation using a distributed hash table (13) and a peer-to-peer distributed ledger (14). This may be the Bitcoin blockchain or an alternative blockchain implementation. The method includes determining (610) a second user public key associated with a second user (24) from a transaction record stored on the peer-to-peer distributed ledger (14). A second public key associated with the second user may be determined (620) from an entry on the distributed hash table (13). The method further includes comparing (630) the second user public key and the second public key, and verifying (640) the ownership of the computer software based on the comparing of the second user public key and the second public key.
Abstract: This invention relates generally to blockchain implementations and is suited for, but not limited to, use with the Bitcoin blockchain. It can be used for the implementation of automated processes such as device/system control, process control, distributed computing and storage and others. The invention provides a solution which uses a blockchain to control a process executing on a computing resource. In a preferred embodiment, the computing resource, running simultaneously and in parallel to the blockchain, manages a loop-based operation. The computing resource continuously monitors the state of the blockchain as well as any other off-blockchain input data or source. The execution of the loop is influenced by the state of the blockchain. Each iteration of the loop that is executed by the computing resource is recorded in a transaction that is written to the blockchain. It is stored as a hash within the transaction's metadata.
Abstract: In accordance with the invention there may be provided a method and corresponding system for controlling the performance of a process conducted via a blockchain. The blockchain may or may not be the Bitcoin blockchain. The process may be a lending process. Advantageously, the invention provides a mechanism which enables the ultimate owner of a property or other asset to borrow funds against that asset, and sets out how this can be achieved in a manner which does not require the return to the investor(s) to be determined through the payment of interest. This makes it compliant with non-interest forms of lending. The invention provides a blockchain-implemented method (and corresponding system) of embedding data in a blockchain transaction (Tx). The method comprises the steps of deriving a public-key-private key cryptographic pair for the data; deriving a signature for the data using the public key-private key cryptographic pair; codifying the data to generate codified metadata for the data.