# US 12,223,501 B2 · Computer-implemented systems and methods for implementing transfers over a blockchain network

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,223,501 B2
- Document ID: US12223501B2
- Status: Granted
- Kind: B2
- Application number: 17/431,110
- Filed: 2020-01-30
- Published: 2022-05-05
- Granted: 2025-02-11
- Earliest claimed: 2019-02-15
- Assignees: nChain Licensing AG
- Applicants: nChain Licensing AG
- Inventors: Craig Steven Wright; Jack Owen Davies; Alexander Tennyson Mackay
- Web page: https://patentgrep.com/patent/US12223501B2

## CPC

- G06Q 20/389: {Keeping log of transactions for guaranteeing non-repudiation of a transaction}
- G06Q 20/065: {using e-cash}
- G06Q 20/0658: {e-cash managed locally}
- G06Q 20/223: {based on the use of peer-to-peer networks}
- G06Q 20/3678: {e-cash details, e.g. blinded, divisible or detecting double spending}
- G06Q 20/38215: {Use of certificates or encrypted proofs of transaction rights}
- G06Q 20/3823: {combining multiple encryption tools for a transaction}
- G06Q 20/3827: {Use of message hashing}
- G06Q 20/3829: {involving key management}
- G06Q 20/4014: {Identity check for transactions}
- H04L 9/0825: {using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates}
- H04L 9/088: {Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms (network architectures or network communication protocols for using time-dependent keys in a packet data network H04L63/068)}
- H04L 9/30: Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L 9/3218: {using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- G06Q 20/341: {Active cards, i.e. cards including their own processing means, e.g. including an IC or chip}
- G06Q 2220/00: Business processing using cryptography
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- H04L 2209/56: Financial cryptography, e.g. electronic payment or e-cash
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The invention provides improved verification solutions for blockchain-implemented transfers. It is suited for, but not limited to, implementation in an SPV wallet. In accordance with one embodiment, a system or resource is provided which comprises a plurality of novel SPV verification components, the activities of which are coordinated by a coordination component. The system enables Bob to send Alice a payment transaction template (template Tx3) and requests: the full transaction data for all input transactions (Tx1, Tx2) comprising at least one output that Alice wants to spend as inputs to a transfer (Tx3); the Merkle path for all input transactions (Tx1, Tx2) linking them to their respective Merkle roots associated with their respective block headers; the completed transfer transaction (Tx3). Alice provides this information plus her signature. Bob can then perform local SPV checks on the input transactions Tx1, Tx2 using transactions Tx1 and Tx2, their corresponding Merkle paths Path 1, Path 2, and Bob's local list of block headers. Bob broadcasts the transfer transaction (Tx3) to the P2P network.

## Claims

### Claim 1

A computer-based system operative to use Simplified Payment Verification to facilitate a blockchain transfer of an asset over a blockchain network between a transferor and a transferee, comprising:
i) a plurality of verification resources; and
ii) a coordination component operative to communicate with the at least one verification resource and select the at least one verification resource from the plurality of verification resources;
and wherein the at least one verification resource is arranged to:
a) receive using an off-chain communication that does not involve the blockchain or blockchain network:
1) complete transaction data relating to at least one input blockchain transaction (Tx1) that comprises at least one output that spends to an input of a transfer transaction (Tx3); and
2) a Merkle path for the at least one input blockchain transaction (Tx1);
b) perform a Simplified Payment Verification check on the at least one input blockchain transaction (Tx1) using the complete transaction data and the Merkle path to prove that the input transaction (Tx1) that comprises the at least one output that spends to the input of the transfer transaction (Tx3) is valid and in the blockchain, and wherein the Simplified Payment verification check is performed locally on the at least one verification resource and does not go through the blockchain network; and
c) determine that the Simplified Payment Verification check proves that the input transaction is valid and in the blockchain; and
d) responsive to determining that the Simplified Payment Verification check proves that the input transaction (Tx1) is valid and in the blockchain, transmit the transfer transaction (Tx3) to the blockchain network for mining into a block on the blockchain to transfer the asset from the transferor to the transferee over the blockchain.

### Claim 2 (depends on 1)

The computer-based system of claim 1, wherein at least one verification resource in the plurality of verification resources comprises at least one public key that is associated with a private key, and wherein the private key is provided:
in the at least one verification resource; or
in the coordination component.

### Claim 3 (depends on 1)

The computer-based system of claim 1, wherein the verification resource is operative to at least one of:
verify whether a specified transaction is stored on a blockchain; or
facilitate or enable a transfer from one address to another using a blockchain transaction.

### Claim 4 (depends on 1)

The computer-based system of claim 1, wherein the coordination component is operative to cause the at least one verification resource to at least one of:
verify whether a specified transaction is stored on a blockchain; or
facilitate or enable a transfer from one address to another using a blockchain transaction.

### Claim 5 (depends on 1)

The computer-based system of claim 1, wherein the coordination component is operative to send and receive transaction related data to and from a blockchain network.

### Claim 6 (depends on 1)

The computer-based system of claim 1, wherein the coordination component is operative to:
send and receive at least one of at least one public key or transaction ID (TXID) to and from the at least one verification resource.

### Claim 7 (depends on 2)

The computer-based system of claim 2, wherein the private key is a seed.

### Claim 8 (depends on 1)

The computer-based system of claim 1, wherein each of the plurality of verification resources-comprises at least one public key associated with a respective private key.

### Claim 9 (depends on 1)

The computer-based system of claim 1, wherein the at least one verification resource is operative to:
i) use the Merkle path to verify a Merkle proof for the at least one transaction; or
ii) store, receive and/or request at least one block header of a blockchain transaction.

### Claim 10 (depends on 1)

The computer-based system of claim 1, wherein the complete transaction data or Merkle path are received and/or requested from a providing resource which is the transferor of the asset and is operative to store and/or send:
i) complete transaction data relating to the at least one blockchain transaction; and
ii) the Merkle path of the at least one blockchain transaction.

### Claim 11 (depends on 10)

The computer-based system of claim 10, wherein at least one of the providing resource or the verification resource is or comprises at least one of:
a digital wallet, a cryptocurrency wallet, a Simplified Payment Verification Wallet or a smart card.

### Claim 12 (depends on 1)

The computer-based system of claim 1, wherein the computer-based system is operative to receive transfer data from a providing resource which is the transferor of the asset, the transfer data comprising at least one of:
data relating to at least one unspent transaction output (UTXO) stored on a blockchain;
a transaction ID (TXID) for a transaction containing the at least one unspent blockchain transaction output (UTXO);
a signature for spending the at least one unspent blockchain transaction output (UTXO);
a Merkle path for a transaction containing the at least one unspent blockchain transaction output (UTXO); or
a public key address.

### Claim 13 (depends on 1)

The computer-based system of claim 1, wherein the system is operative to at least one of:
i) send at least one of a transfer value or an output address to a providing resource;
ii) receive at least one of a transfer value or an output address from a providing resource which is the transferor of the asset; or
iii) submit a transaction to the blockchain network upon successful verification of the Merkle proof for the at least one blockchain transaction.

### Claim 14 (depends on 1)

The computer-based system of claim 1, wherein the system is operative to send, to a providing resource which is the transferor of the asset, a request for transfer data comprising at least one of:
data relating to at least one unspent transaction output (UTXO) stored on a blockchain;
a transaction ID (TXID) for a transaction containing the at least one unspent blockchain transaction output (UTXO);
a signature for spending at the at least one unspent blockchain transaction output (UTXO);
a Merkle path for a transaction containing the at least one unspent blockchain transaction output (UTXO); or
a public key address.

### Claim 15 (depends on 14)

The computer-based system of claim 14, wherein the transfer data is requested by the system, and/or received from the providing resource, using a blockchain transaction template.

### Claim 16

A method to facilitate a blockchain transfer of an asset over a blockchain network between a transferor and a transferee, comprising:
using an off-chain communication that does not involve the blockchain or blockchain network to receive or request, by at least one verification resource in a plurality of verification resources, the at least one verification resource comprising at least one public key:
complete transaction data relating to at least one blockchain transaction (Tx1) that comprises at least one output that spends to an input of a transfer transaction (Tx3), and
a Merkle path for the at least one blockchain transaction (Tx1),
performing, by the at least one verification resource, a local Simplified Payment Verification check on the at least one input blockchain transaction (Tx1) using the complete transaction data and the Merkle path to prove that the input transaction (Tx1) that comprises the at least one output that spends to the input of the transfer transaction (Tx3) is valid and in the blockchain, and wherein the Simplified Payment verification check is performed locally on the at least one verification resource and does not go through the blockchain network; and
if the Simplified Payment Verification check is proves that the input transaction is valid and in the blockchain, submitting the transfer transaction (Tx3) to the blockchain network for mining into a block on the blockchain to transfer the asset from the transferor to the transferee over the blockchain;
wherein:
a private key is associated with the at least one public key; and
a coordination component is configured to communicate with the at least one verification resource and to select the at least one verification resource from the plurality of verification resources.

### Claim 17 (depends on 16)

The method of claim 16, wherein the private key is provided in the at least one verification resource or in the coordination component.

### Claim 18 (depends on 16)

The method of claim 16, wherein the verification resource is configured to at least one of verify whether a specified transaction is stored on a blockchain or facilitate or enable a transfer from one address to another using a blockchain transaction.

### Claim 19 (depends on 16)

The method of claim 16, the coordination component is operative to cause the at least one verification resource to at least one of:
verify whether a specified transaction is stored on a blockchain or facilitate or
enable a transfer from one address to another using a blockchain transaction.

### Claim 20 (depends on 16)

The method of claim 16, wherein the coordination component is operative to send and receive transaction related data to and from the blockchain network.
