IP Library Granted Patent US 12664545
Granted Patent B2
US 12664545 · App. 18/667,905 · Granted Jun 23, 2026

Multi-input transactions

Inventors: Wei Zhang (London, GB); Jack Davies (London, GB); Craig Wright (London, GB)
Assignee: nChain Licensing AG
G06Q20/3829G06Q20/065G06Q20/3823G06Q20/3825G06Q20/4014
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12664545
App. No.
18/667,905
Granted
Jun 23, 2026
Kind
B2
Abstract

A server of media content makes a first transaction available to users that includes a first output specifying an amount of a digital asset to transfer to a second party, and a total of zero or more inputs wherein a total input amount of the digital asset specified in any outputs of any source transactions pointed to by the zero or more inputs is less than a total output amount of the digital asset specified by the one or more outputs. Inputs are received from users of a side channel. Once a target is reached, the first transaction and a second transaction are recorded in a blockchain, wherein the second transaction comprises an input pointing to the first output of the first transaction and an unlocking script meeting a condition that requires the unlocking script to include a media key enabling the users to access the item of media content.

Claims (50)

1 . A computer-implemented method of enabling a plurality of users to use a blockchain to gain access to an item of media content; the method comprising, by server equipment comprising one or more server units at one or more geographic sites:

making a first blockchain transaction available to the plurality of users from at least one of the one or more server units via at least one of one or more electronic communication networks, the first blockchain transaction comprising i) one or more outputs including at least a first output specifying an amount of a digital asset to transfer to a second party being a party other than the plurality of users, and ii) initially, a total of zero or more inputs wherein a total input amount of the digital asset specified in any outputs of any source blockchain transactions pointed to by the zero or more inputs is less than a total output amount of the digital asset specified by the one or more outputs, and wherein the first output of the first blockchain transaction comprises a locking script specifying a condition to be met by an unlocking script to unlock said first output;

at least one of the one or more server units, via an off-chain side channel implemented via said at least one of the one or more electronic communication networks receiving an input from each of said plurality of users, and adding each received input to the first blockchain transaction, each received input pointing to an output of a respective source blockchain transaction specifying an amount of the digital asset; and

once a target is reached, whereby a total input amount pointed to by the inputs of the first blockchain transaction is equal to or exceeds the output amount, causing the first blockchain transaction and a second blockchain transaction to be sent via at least one of the one or more electronic communication networks to be propagated through a blockchain network and thereby recorded in a blockchain maintained across a plurality of nodes of the blockchain network, wherein the second blockchain transaction comprises an input pointing to the first output of the first blockchain transaction and comprising the unlocking script meeting said condition;

wherein the condition specified by the locking script requires the unlocking script to include a media key, the media key being accessible to the plurality of users from the blockchain via at least one of the nodes of the blockchain network, and thereby enabling each of the plurality of users to use the media key to access the item of media content from at least one of the server units of the server equipment;

wherein the condition specified by the locking script requires the unlocking script to include a digital signature;

the method further comprising:

using a private key to generate a digital signature to include in the unlocking script; and

wherein the method thereby enables the plurality of users to gain access to the item of media content without individual respective blockchain transactions being recorded on the blockchain in respect of the item of media content transacting between the second party and each of the plurality of users individually.

2 . The method of claim 1 , wherein the target comprises: the total input amount exceeding the total output amount by at least enough of a mining fee to have the first blockchain transaction accepted by a miner for mining into a block.

3 . The method of claim 1 , comprising repeating said method for each of a plurality of items of data, wherein each item of content forms a different respective one of a sequence of portions of media content.

4 . The method of claim 3 , wherein the portions are packets of a given episode or stand-alone show or movie streamed to the users in real-time.

5 . The method of claim 3 , wherein the portions are different episodes of a series.

6 . The method of claim 1 , wherein an indication linked to the first blockchain transaction is listed in a database operated by a third party independent of the second party and users, thereby enabling the users to verify that the first blockchain transaction is a legitimate medium for obtaining the media key.

7 . The method of claim 1 , wherein the zero or more initial inputs comprise at least one initial input included by the second party comprising an unlocking script to unlock an output of a respective source blockchain transaction, the unlocking script in said input of the second party including a public key of the second and a signature of the second formed using a private key of the second party corresponding to said public key.

8 . The method of claim 7 , wherein:

an indication linked to the first blockchain transaction is listed in a database operated by a third party independent of the second party and users, thereby enabling the users to perform a verification to verify that the first blockchain transaction is a legitimate medium for obtaining the media key;

said indication comprises a copy of the public key of the second party of the media content, thereby enabling the users to perform said verification by comparing the public key in the unlocking script of the initial input of the second party with the copy of the public key held in the database.

9 . The method of claim 1 , comprising, after receiving multiple of the inputs from the users but still not enough to reach the target, the second party adding a further input to make up at least a difference between a number of the multiple of the inputs and the target.

10 . The method of claim 1 , comprising, in response to receiving excess inputs from users pointing to more amounts of the digital asset than required to meet the target: creating a new instance of the first blockchain transaction and adding the excess inputs to the new instance of the first blockchain transaction.

11 . The method of claim 1 , wherein the media key comprises a decryption key, enabling the users to perform said accessing of the item of media content at least by decrypting it using the decryption key.

12 . The method of claim 1 , wherein the media key is configured to enable an individual media key to be computed by each of the plurality of users, thereby enabling only the users who provided inputs to access the item of media content.

13 . The method of claim 12 , wherein:

the media key comprises a decryption key, enabling the users to perform said accessing of the item of media content at least by decrypting it using the decryption key; and

each individual media key comprises an individual decryption key.

14 . The method of claim 1 , wherein:

each of the users' inputs comprises a respective unlocking script to unlock an output of the respective source blockchain transaction, the respective unlocking script including a respective public key of the user and a respective signature of the user formed using a private key of the user.

15 . The method of claim 14 , wherein:

the media key is configured to enable an individual media key to be computed by each of the plurality of users, thereby enabling only the users who provided inputs to access the item of media content; and

the individual media key of each user is generated based on the respective public key of the user taken from the input received from that user.

16 . The method of claim 1 , wherein said one or more electronic communication networks comprises the Internet.

17 . A non-transitory computer-readable storage medium, comprising source code for a computer program for accessing an item of media content made available in an off-chain data source, the computer program being configured so as when run on computer equipment of a user to perform a method of:

making a first blockchain transaction available to the plurality of users from at least one of the one or more server units via at least one of one or more electronic communication networks, the first blockchain transaction comprising i) one or more outputs including at least a first output specifying an amount of a digital asset to transfer to a vendor, and ii) initially, a total of zero or more inputs wherein a total input amount of the digital asset specified in any outputs of any source blockchain transactions pointed to by the zero or more inputs is less than a total output amount of the digital asset specified by the one or more outputs, and wherein the first output of the first blockchain transaction comprises a locking script specifying a condition to be met by an unlocking script to unlock said first output; and

over an off-chain side channel to the server, the side channel being implemented via an electronic communication network, sending at least one input amongst a plurality of inputs sent by a plurality of users to be added to the first blockchain transaction, each input pointing to an output of a respective source blockchain transaction specifying an amount of the digital asset, thereby enabling the vendor, once a target is reached whereby a total input amount pointed to by the inputs of the first blockchain transaction is equal to or exceeds the output amount, to have the first blockchain transaction and a second blockchain transaction sent over an electronic communication network to be propagated through a blockchain network and thereby recorded in a blockchain maintained across a plurality of nodes of the blockchain network, wherein the second blockchain transaction comprises an input pointing to the first output of the first blockchain transaction and comprising the unlocking script meeting said condition;

wherein the condition specified by the locking script requires the unlocking script to include a media key;

wherein the condition specified by the locking script requires the unlocking script to include a digital signature;

the method further comprising:

using a private key to generate a digital signature to include in the unlocking script; and

wherein the method further comprises accessing the media key from the blockchain via at least one of the nodes of the blockchain network, and using the media key to unlock the item of media content from the server via an electronic communication network, without recording on the blockchain an individual blockchain transaction for the item of the media content transacting between the vendor and the user individually.

18 . A computer system, comprising one or more server units located at one or more geographic sites, each server unit of the one or more server units comprising:

one or more memory devices; and

processing apparatus comprising one or more processors, the one or more memory devices storing computer code that, when executed, causes the processing apparatus to perform a method of enabling a plurality of users to use a blockchain to gain access to an item of media content; the method comprising by server equipment comprising one or more server units at one or more geographic sites:

making a first blockchain transaction available to the plurality of users from at least one of the one or more server units via at least one of one or more electronic communication networks, the first blockchain transaction comprising i) one or more outputs including at least a first output specifying an amount of a digital asset to transfer to a second party being a party other than the plurality of users, and ii) initially, a total of zero or more inputs wherein a total input amount of the digital asset specified in any outputs of any source blockchain transactions pointed to by the zero or more inputs is less than a total output amount of the digital asset specified by the one or more outputs, and wherein the first output of the first blockchain transaction comprises a locking script specifying a condition to be met by an unlocking script to unlock said first output;

at least one of the one or more server units, via an off-chain side channel implemented via at least one of the one or more electronic communication networks, receiving an input from each of said plurality of users, and adding each received input to the first blockchain transaction, each received input pointing to an output of a respective source blockchain transaction specifying an amount of the digital asset; and

once a target is reached, whereby a total input amount pointed to by the inputs of the first blockchain transaction is equal to or exceeds the output amount, causing the first blockchain transaction and a second blockchain transaction to be sent via at least one of the one or more electronic communication networks to be propagated through a blockchain network and thereby recorded in a blockchain maintained across a plurality of nodes of the blockchain network, wherein the second blockchain transaction comprises an input pointing to the first output of the first blockchain transaction and comprising the unlocking script meeting said condition;

wherein the condition specified by the locking script requires the unlocking script to include a media key, the media key being accessible to the plurality of users from the blockchain via at least one of the nodes of the blockchain network, and thereby enabling each of the plurality of users to use the media key to access the item of media content from at least one of the server units of the server equipment;

wherein the condition specified by the locking script requires the unlocking script to include a digital signature;

the method further comprising:

using a private key to generate a digital signature to include in the unlocking script; and

wherein the method thereby enables the plurality of users to gain access to the item of media content without individual respective blockchain transactions being recorded on the blockchain in respect of the item of media content transacting between the second party and each of the plurality of users individually.