US 11,676,139 B2
Blockchain adapter, protocol, and access layer
Zhihong Mao, Issaquah, WA (US); Peiling Ding, Redmond, WA (US); and Tian Chen, Issaquah, WA (US)
Assigned to ArcBlock, Inc., Bellevue, WA (US)
Filed by ArcBlock, Inc., Bellevue, WA (US)
Filed on Jun. 26, 2019, as Appl. No. 16/453,760.
Claims priority of provisional application 62/692,419, filed on Jun. 29, 2018.
Prior Publication US 2020/0005292 A1, Jan. 2, 2020
Int. Cl. G06Q 20/38 (2012.01); G06Q 20/40 (2012.01); H04L 9/06 (2006.01); H04L 9/14 (2006.01); G06Q 20/06 (2012.01); G06F 16/182 (2019.01)
CPC G06Q 20/3825 (2013.01) [G06F 16/1824 (2019.01); G06Q 20/065 (2013.01); G06Q 20/401 (2013.01); H04L 9/0643 (2013.01); H04L 9/14 (2013.01)] 12 Claims
OG exemplary drawing
 
1. A computer-implemented method, comprising:
receiving, at a service provider and from an off-chain application running on a client computer system, a first chain-agnostic request encoded in a format that is interoperable between a plurality of blockchain protocols, the first chain-agnostic request comprising a first parameter indicating a first blockchain protocol of the plurality of blockchain protocols, the first chain-agnostic requesting to modify a first state of a first blockchain network;
selecting, at the service provider and responsive to the first chain-agnostic request by the off-chain application, a first off-chain chain adapter from a plurality of off-chain chain adapters that is compatible with the first chain-agnostic request based on the first parameter indicating the first blockchain protocol;
causing the first off-chain chain adapter to perform, based on the first chain-agnostic request, one or more operations to obtain access to first ledger data of the first blockchain network according to the first blockchain protocol;
parsing the first ledger data to determine, based on the first blockchain protocol, first structured data;
storing the first structured data in a database;
fulfilling the first chain-agnostic request based on successfully storing the first structured data by at least:
determining, based on the first structured data, a plurality of unspent transaction outputs (UTXOs) associated with the off-chain application;
generating a first unsigned transaction that encodes a transfer of one or more of the UTXOs according to the first state;
providing the first unsigned transaction to the off-chain application;
receiving, from the off-chain application, a first signed transaction, wherein the first signed transaction is generated based on the first unsigned transaction and a first private key associated with the off-chain application; and
broadcasting the first signed transaction to the first blockchain network;
receiving, from the off-chain application, a second chain-agnostic request encoded in the format that is interoperable between the plurality of blockchain protocols, the second chain-agnostic request comprising a second parameter indicating a second blockchain protocol of the plurality of blockchain protocols, the second chain-agnostic requesting to modify a second state of a second blockchain network;
selecting, at the service provider and responsive to the second chain-agnostic request by the off-chain application a second off-chain chain adapter from the plurality of off-chain chain adapters that is compatible with the second chain-agnostic request based on the second parameter indicating the second blockchain protocol;
causing the second off-chain chain adapter of the plurality of off-chain chain adapters to perform different one or more operations to obtain access to a second ledger data of the second blockchain network according to the second blockchain protocol;
parsing the second ledger data to determine, based on the second blockchain protocol, a second structured data;
storing the second structured data in the database; and
fulfilling the second chain-agnostic request based on successfully storing the second structured data by at least:
determining, based on the second structured data, an amount of digital assets under the requestor's control;
generating a second unsigned transaction that encodes a transfer of at least a portion of the amount of digital assets under the requestor's control according to the second state;
providing the second unsigned transaction to the off-chain application;
receiving, from the off-chain application, a second signed transaction, wherein the second signed transaction is generated based on the second unsigned transaction and a second private key associated with the off-chain application; and
broadcasting the second signed transaction to the second blockchain network.