US 11,902,441 B2
Systems and methods for parallel verification of blockchain transactions
Patrick Motylinski, London (GB); Stephane Vincent, Luxembourg (LU); Giuseppe Destefanis, London (GB); Simone Madeo, London (GB); and Craig Steven Wright, London (GB)
Assigned to nChain Licensing AG, Zug (CH)
Appl. No. 16/611,829
Filed by nChain Licensing AG, Zug (CH)
PCT Filed May 4, 2018, PCT No. PCT/IB2018/053110
§ 371(c)(1), (2) Date Nov. 7, 2019,
PCT Pub. No. WO2018/207064, PCT Pub. Date Nov. 15, 2018.
Claims priority of application No. 1707296 (GB), filed on May 8, 2017.
Prior Publication US 2020/0074424 A1, Mar. 5, 2020
Int. Cl. G06Q 20/06 (2012.01); H04L 9/00 (2022.01); H04L 9/32 (2006.01); G06Q 20/36 (2012.01); H04L 9/06 (2006.01)
CPC H04L 9/32 (2013.01) [G06Q 20/0658 (2013.01); G06Q 20/3678 (2013.01); H04L 9/0637 (2013.01); G06Q 2220/00 (2013.01); H04L 9/50 (2022.05); H04L 2209/56 (2013.01)] 13 Claims
OG exemplary drawing
 
1. A computer-implemented method to validate a block within a network of nodes implementing a blockchain conforming to a blockchain protocol, the block containing a plurality of transactions, the method comprising:
determining that the block complies with block-level validation criteria;
determining, serially, that each unspent transaction output referenced as an input in each of the plurality of transactions is unique and, based on that determination:
allocating each transaction in the plurality of transactions to one of two or more parallel processors, wherein allocating each transaction in the plurality of transactions to one of two or more parallel processors comprises:
for each transaction in the plurality of transactions, determining a processing cost for verifying that the transaction complies with transaction-level validation criteria, wherein:
the processing cost for the transaction is based on a weighted sum of script operations; and
each script operation has an associated weight based on a computational complexity of the script operation as appropriate for the blockchain protocol; and
load-balancing the processing cost among the two or more parallel processors; and
verifying, in parallel, by the two or more parallel processors, that each transaction in the plurality of transactions complies with the transaction-level validation criteria; and
as a result of each transaction complying with the transaction-level validation criteria and the block complying with the block-level validation criteria, forwarding the block to one or more peer nodes in the network.