US 12,141,125 B2
Transaction reordering in blockchain
Yoav Tock, Haifa (IL); Hagar Meir, Tel Aviv (IL); Artem Barger, Haifa (IL); and Yacov Manevich, Beer Sheva (IL)
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION, Armonk, NY (US)
Filed by International Business Machines Corporation, Armonk, NY (US)
Filed on Sep. 29, 2020, as Appl. No. 17/035,912.
Prior Publication US 2022/0100733 A1, Mar. 31, 2022
Int. Cl. G06F 16/23 (2019.01); G06F 16/27 (2019.01); H04L 9/06 (2006.01); H04L 9/00 (2022.01)
CPC G06F 16/2379 (2019.01) [G06F 16/27 (2019.01); H04L 9/0637 (2013.01); H04L 9/50 (2022.05)] 20 Claims
OG exemplary drawing
 
1. A method for ordering a group of transactions on a blockchain, the method comprising:
endorsing, by a processor, the group of transactions received from one or more clients;
generating a read-set and a write-set for each transaction of the group of transactions;
ordering the group of transactions at an ordering service, wherein the ordering service utilizes a precedence graph to determine a precedence order using the read-set and write-set of each transaction, wherein the ordering service further includes a skeleton-key database configured to maintain an archive of keys and an archive of versions associated with the archive of keys, wherein the skeleton-key database is separate from a world-state database associated with the blockchain, and wherein a transaction schedule is based on the skeleton-key database and the read-set and write-set of each transaction of the group of transactions;
determining a sufficient order by associating each transaction with its precedence order using one or more directional arrows in the precedence graph, wherein the one or more directional arrows each depict an edge imbalance between each transaction;
removing one or more transactions with a backward edge using a vertex cover problem by repeatedly finding the one or more transactions with a largest number of edges pointing backwards and continuously removing a corresponding transaction and all edges incident to the corresponding transaction until there are no remaining edges pointing backwards;
identifying a conflict-free transaction set and a rejected transaction set from the group of transactions using the precedence graph in which all the backward edge are removed, wherein the ordered group of transactions minimizes the number of transactions removed by the rejected transaction set from the conflict-free transaction set; and
commit the conflict-free transaction set and a list of the rejected transaction set to the blockchain.