WO2018232493A1 - A network of doubly-chained blockchains capable of cross-chain transactions - Google Patents

A network of doubly-chained blockchains capable of cross-chain transactions Download PDF

Info

Publication number
WO2018232493A1
WO2018232493A1 PCT/CA2018/000129 CA2018000129W WO2018232493A1 WO 2018232493 A1 WO2018232493 A1 WO 2018232493A1 CA 2018000129 W CA2018000129 W CA 2018000129W WO 2018232493 A1 WO2018232493 A1 WO 2018232493A1
Authority
WO
WIPO (PCT)
Prior art keywords
transaction
blockchain
ppc2
network
iccl
Prior art date
Application number
PCT/CA2018/000129
Other languages
French (fr)
Inventor
Enyan DENG
Original Assignee
Zeu Crypto Networks Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zeu Crypto Networks Inc. filed Critical Zeu Crypto Networks Inc.
Publication of WO2018232493A1 publication Critical patent/WO2018232493A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/381Currency conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • G06Q20/027Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP] involving a payment switch or gateway
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0655Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed centrally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q2220/00Business processing using cryptography

Abstract

A network of doubly-chained blockchains capable of cross-chain transaction is presented. The network architecture is a fully distributed, multi-chain network architecture that is more scalable, expandable and fault tolerant than traditional centralized architectures. Each blockchain guarantees its own data consistency, consistency between blockchains is guarantees by a fully distributed mechanism, removing limitations of centralization. All blockchains can run in parallel to improve transaction efficiency and network speed. This creates a new, and scalable financial market structure, financial units can easily join or leave at any time. It supports large- scale network and high transaction volume. The model includes the participant blockchain, the inter-chain blockchain which further includes an account blockchains and transaction blockchains. Cross-chain transactions are enabled between two or more participant blockchains which trade with each other without the need for a central authority to maintain the network's consistency.

Description

A Network of Doubly-Chained Blockchains Capable of Cross-Chain Transactions Technical Field
[0001] The present invention relates to the field of network of blockchains technologies for financial systems, and in particular to a distributed network of blockchains architecture.
Background Art
[0002] Blockchain is a distributed database system involving a networked set of computing devices called nodes. Blockchain can also be described as distributed ledger technology (DLT) jointly maintained by multiple nodes. Advantages of blockchain technology stem from its highly tamper-resistant, difficult to forge, difficult to counterfeit, and traceable characteristics. Blockchain records all transactions that have ever occurred on the blockchain.
[0003] "Internet of blockchains" is a type of value network based on blockchain technology, which has the characteristics of high performance, security, privacy, scalability, interoperability, changeability, fault tolerance, manageability and completeness.
[0004] Existing networks of blockchains, such as Cosmos, have a centralized structure that includes a middle chain. The middle chain is the central organization. Therefore, calculation and communication related performance of the middle chain easily becomes the bottleneck for the overall performance of such networks of blockchains.
[0005] In addition, each blockchain needs to maintain its own consistency, and the middle chain also needs to dynamically maintain consistency with each participant blockchain in the network. Therefore, any cross-chain transaction needs multiple participant blockchains and the middle chain to maintain the consistency, which slows down the system.
[0006] It is thus an object of the present invention to provide a solution that mitigates at least some of the performance constraints associated with the existing networks of blockchains identified above. Summary of Invention
[0007] In accordance with one aspect of the present invention, there is provided a network of doubly chained blockchains capable of a cross-chain transaction. The network includes: a plurality of participant blockchains (PPCs) each representing a financial institution. Each of the plurality of PPCs include at least two nodes; The network also includes an inter-chain blockchain (ICC), representing an intermediary financial institution. The ICC includes an account blockchain (ABC) and at least one transaction blockchain (TBC). The inter-chain blockchain includes at least two nodes. At least two of the PPCs and the ICC share at least two common nodes. The ICC carries out the cross-chain transaction between two participant blockchains.
[0008] In accordance with one aspect of the present invention, there is provided a method of executing a transaction in a network of doubly chained blockchains in real-time, the network comprising: a plurality of participant blockchains (PPCs) comprising PPC1 and PPC2, and an inter-chain blockchain (ICC) wherein the ICC includes an account blockchain (ABC) and at least one transaction blockchain (TBC). The method comprises the PPC1 performing the steps of: receiving an initiation of the transaction from PPC1 ; sending a transaction request to PPC2; upon the transaction being initiated successfully and the transaction request to PPC2 being successfully sent, marking a status of the transaction as tentative; receiving a message indicative of whether the transaction request was successfully accepted from PPC2; simultaneously informing PPC 1 that the transaction meets the execution conditions and notifying PPC2 that the transaction meets the execution conditions; and committing the transaction.
[0009] In accordance with one aspect of the present invention, there is provided a method of executing a transaction in a network of doubly chained blockchains using multilateral netting, the network comprising: a plurality of participant blockchains (PPCs) comprising PPC1 and PPC2, and an inter-chain blockchain (ICC) wherein the ICC includes an account blockchain (ABC) and at least one transaction blockchain (TBC). The method comprises the PPC1 performing the steps of: receiving an initiation of the transaction from PPC1 ; sending a transaction request to PPC2; upon the transaction being initiated successfully and the transaction request to PPC2 being successfully sent, marking a status of the transaction as pre-tentative; receiving a message indicative of whether the transaction request was successfully accepted from PPC2; simultaneously informing PPC1 that the transaction meets the execution conditions and notifying PPC2 that the transaction meets the execution conditions; and waits until a settlement cycle expires and committing the transaction.
Brief Description of Drawings
[0010] In the figures, which illustrate by way of example only, embodiments of the present invention:
[0011] FIG. 1 is an overall schematic diagram of a network of doubly-chained blockchains for cross-chain transactions according to an exemplary embodiment of the present invention;
[0012] FIG. 2 is a schematic diagram of an inter-chain blockchain (ICC) and two participant blockchains (PPCs);
[0013] FIG. 3 is a schematic diagram of depicting the nodes of the inter-chain blockchain (ICC) and a participant blockchain (PPC)s of FIG. 2;
[0014] FIG. 4 is a schematic structural diagram of the ICC of FIG. 2 having an account blockchain and two transaction blockchains;
[0015] FIG. 5 is a schematic diagram of an inter-chain blockchain (ICC) linking three participant blockchains (PPC) through common nodes;
[0016] FIG. 6 is a schematic structural diagram of a common node linking three blockchains;
[0017] FIG. 7 is a schematic diagram of an inter-chain blockchain (ICC) linking four participant blockchains (PPC) through common nodes;
[0018] FIG. 8 is a schematic structural diagram of a common node linking four blockchains; [0019] FIG. 9 is a schematic diagram of a real-time transaction process according to a first mode (Mode I) of an exemplary embodiment of the present invention;
[0020] FIG. 8 is a flow diagram of each process of real-time transaction according to the first mode;
[0021] FIG. 9 is a schematic diagram of the transaction process of multilateral netting according to a first mode ;
[0022] FIG. 10 is a flow diagram for a transaction process of multilateral netting according to the first mode;
[0023] FIG. 11 is a schematic diagram of a real-time transaction process according to the second mode of an exemplary embodiment of the present invention;
[0024] FIG. 12 is a flow diagram of each process of the real-time transaction according the second mode of FIG. 11;
[0025] FIG. 13 is a schematic diagram of the transaction process of multilateral netting according to a second mode;
[0026] FIG. 14 is a flow chart of the transaction process of multilateral netting according to the second mode of the preferred embodiment of the present invention;
[0027] FIG. 15 is a schematic diagram of the inter-chain blockchain's (ICC's) physically separated storage; and
[0028] FIG. 16 is a schematic diagram of the inter-chain blockchain's (ICC's) logically separated storage.
[0029] Specific embodiments will be described in detail, by way of example only, with reference to the attached drawings. The same reference label in the drawings identifies the same or similar elements, parts or portions thereof. Persons of skill in the art will readily understand that the drawings are not necessarily drawn to scale. Description of Embodiments
[0030] In this disclosure, the use of the word "a" or "an" when used herein in conjunction with the term "comprising" may mean "one," but it is also consistent with the meaning of "one or more," "at least one" and "one or more than one." Any element expressed in the singular form also encompasses its plural form. Any element expressed in the plural form also encompasses its singular form. The term "plurality" as used herein means more than one, for example, two or more, three or more, four or more, and the like. Directional terms such as "top", "bottom", "upwards", "downwards", "vertically" and "laterally" are used for the purpose of providing relative reference only, and are not intended to suggest any limitations on how any article is to be positioned during use, or to be mounted in an assembly or relative to an environment.
[0031] The terms "comprising", "having", "including", and "containing", and grammatical variations thereof, are inclusive or open-ended and do not exclude additional, un-recited elements and/or method steps. The term "consisting essentially of when used herein in connection with a composition, use or method, denotes that additional elements, method steps or both additional elements and method steps may be present, but that these additions do not materially affect the manner in which the recited composition, method, or use functions. The term "consisting of when used herein in connection with a composition, use, or method, excludes the presence of additional elements and/or method steps.
[0032] A "blockchain" is a tamper-evident, shared digital ledger that records transactions in a public or private peer-to-peer network of computing devices. The ledger is maintained as a growing sequential chain of cryptographic hash-linked blocks.
[0033] A "node" is a device on a blockchain network. The device is typically be a computer having a processor interconnected to a processor readable medium including memory, having processor readable instructions thereon. [0034] In addition, the terms "first", "second", "third" and the like are used for descriptive purposes only and cannot be interpreted as indicating or implying relative importance.
[0035] In the description of the invention, it should also be noted that the terms "mounted", "linked" and "connected" should be interpreted in a broad sense unless explicitly defined and limited otherwise. For example, it could be fixed connection, or assembled connection, or integrally connected; either hard-wired or soft-wired; it may be directly connected or indirectly connected through an intermediary. For technical professionals, the specific meanings of the above terms in the invention may be understood in context.
[0036] In the drawings illustrating embodiments of the present invention, the same or similar reference labels correspond to the same or similar parts. In the description of the invention, it should be noted that the meaning of "a plurality of means two or more unless otherwise specified; The directions or positions of the terms "up", "down", "left", "right", "inside", "outside", "front end", "back end", "head", "tail", the orientation or positional relationship shown in the drawings is merely for the convenience of describing the invention and simplifying the description rather than indicating or implying that the indicated device or element must have a particular orientation and be constructed and operated in a particular orientation, and therefore cannot be used as a limitation of the invention.
[0037] A simplified mode for a network of blockchains 100, exemplary of an embodiment of the present invention, is illustrated schematically in FIG. 1. Network of blockchains 100 implements a core algorithm for cross-chain transactions and includes the following components or aspects.
[0038] First, participant blockchains (PPC) 102, represent one or more financial institutions or financial units, and may include one or more nodes.
[0039] Second, each inter-chain blockchain (ICC) 104, represents an intermediary institution which is itself a financial institution, and can also act as a CCP (central counterparty). An inter-chain blockchain and participant blockchains have two or more common nodes, and the inter-chain blockchain uses common nodes to participate in the transaction.
[0040] Third, there may be one or more inter-chain blockchains between every two participant blockchains. Each inter-chain blockchain may connect two or more participant blockchains, and the inter-chain blockchain completes two or more participant blockchains' transactions, which include two trading modes to suit different needs such as real-time transactions or efficient non-real-time transactions.
[0041] For real-time transactions, two or more participant blockchains trade in real time through an inter-chain blockchain which executes each transaction in real time.
[0042] For multilateral netting, each inter-chain blockchain performs multilateral netting at the end of each settlement cycle, handling multiple tentative transactions together, and acting as a CCP, thereby reducing times of transaction and improving transaction efficiency.
[0043] Fourth, a number of financial institutions form a distributed network in the form of participant blockchains and inter-chain blockchains. Each blockchain maintains its own consistency. The consistency between one blockchain and another does not need to be managed by a central organization. The blockchains run in parallel to improve transaction efficiency and network speed. New financial units can easily join or leave the network at any time. The technology is scalable, and supports a large-scale network and with high transaction volume.
[0044] Preferably, the network of blockchains 100 comprises many participant blockchains 102. Each participant blockchain represents one or more financial units, and may comprise multiple nodes, wherein every node stores all of the financial unit's information. All or part of the nodes in participant blockchain have the right to vote. Each node may run Concurrent Byzantine Fault Tolerance (CBFT), Practical Byzantine Fault Tolerance (PBFT), or other Byzantine consensus protocols, or database transaction Consistency algorithm to ensure the consistency of information between nodes and provide tamper resistance, and to ensure that each participant blockchain's own consistency. If database transaction consistency algorithm is used, then it is not possible to verify that a node is lying, so that that it leads to weakened consistency algorithm.
[0045] Preferably, the inter-chain blockchain 100 includes a plurality of inter-chain blockchains (ICCs), each of which includes an account blockchain (ABC) and two or more trading blockchains (TBC). As illustrated schematically in FIG. 3. two participant blockchains connect to each other thorough TBC-ABC-TBC structure. In FIG. 4 two TBCs are involved, while in FIG. 5 three TBCs are involved and in FIG. 6 four TBCs are involved.
[0046] The ABC stores and maintains account information, while TBC is in charge of trading. There are many nodes in each ABC or TBC, and all or part of the nodes have the right to vote (the two scenarios that all or part of the nodes have the right to vote are within the scope of this invention). Each node conducts Byzantine Fault Tolerance protocol (or weakened database transaction protocol) to guarantee the consistency and immutability of the information recorded on all nodes. In this way, the consistency of each ABC and the consistency of each TBC are guaranteed. ABC and TBC double-chain models were invented by Beijing Tiande Technology Co. Ltd., and are disclosed for example in published Chinese patent applications CN106504085A and CN106503992A.
[0047] This inter-chain blockchain have two store modes: physical and logical separation; and logical separation.
[0048] In the first physical separation mode each TBC or ABC stores information on different servers, and each TBC or ABC conducts its own consensus, as shown in FIG. 15. This mode guarantees the independence of each blockchains.
[0049] In the second, logical separation mode, each TBC or ABC stores information at different area of the same server, but each TBC or ABC conducts its own consensus, as shown in FIG. 16. This mode still guarantees the independence of each blockchains, and it is easier for blockchains to transfer information in between. [0050] Preferably, with regard to the third aspect, network of blockchains 100 may have one or more inter-chain blockchains between every two participant blockchains; two or more participant blockchains may be connected via one inter-chain blockchain; and the inter-chain blockchain may complete a trade between two or more participant blockchains. This network of blockchains 100 can implement two different trading modes to meet the two different needs, real-time trades and non-real-time but more efficient trades.
[0051] In real-time trading, two or more participant blockchains take part in real-time transactions through an inter-chain blockchain, the inter-chain blockchain processes each transaction in real time, to achieve real-time clearing and settlement.
[0052] In multilateral netting, each inter-chain blockchain performs multilateral netting at the end of each settlement cycle (e.g., one hour or one day, etc.), and handles multiple tentative transactions together to reduce clearing and settlement time, so as to improve transaction efficiency. Since one clearing and settlement operation can process or resolve a large number of transactions, but this method cannot be achieved in real-time.
[0053] Preferably, real-time transactions operate as shown in FIG. 7 and FIG. 11. The transaction pattern includes the process described below at a high-level which will be elaborated in detail later with reference with pseudocode listings. The order of process steps is illustrated in FIG. 8 and FIG. 12.
[0054] First, in step (1) participant blockchain PPC1 initiates a transaction to inter-chain blockchain ICC1 .
[0055] Second, in step (2) inter-chain blockchain ICC1 sends a transaction request to participant blockchain PPC2. If the transaction in process (1) initiated successfully, after the completion of step (2), the status of the transaction is marked as tentative.
[0056] The second step or step (2) has two modes. The first mode is illustrated in FIG. 9 and the second mode, is illustrated in FIG. 13. As depicted, the process steps (2a) and (2b) are executed concurrently. [0057] In process (2a) inter-chain blockchain ICCl replies participant blockchain PPC1 with the message of whether the transaction is successful; and in process (2b) inter-chain blockchain ICCl sends a transaction request to participant blockchain PPC2. If the transaction in process (1) initiated successfully, after the completion of process (2a) and process (2b), the status of the transaction is marked as tentative. In the second mode, after the completion of process step (2a), participant blockchain PPC 1 can perform other operations, to achieve a non- blocking operation.
[0058] Third, participant blockchain PPC2 sends a message to inter-chain blockchain ICC 1 to inform whether the transaction request was successfully accepted by participant blockchain PPC2, and if so, it sends inter-chain blockchain ICCl proof that participant blockchain PPC2 is able to accept the transaction.
[0059] Step (4a) is performed simultaneously with the step (4b). In process or step (4a) inter-chain blockchain ICCl informs participant blockchain PPC1 that the transaction meets the execution conditions and can be executed. In step (4b) inter-chain blockchain ICCl notifies participant blockchain PPC2 that the transaction meets the execution conditions and can be executed.
[0060] Immediately after the two participant blockchains receive the message of the interchain blockchain ICCl , the tentative transactions of inter-chain blockchain ICCl and participant blockchain PPC1 are executed, and the tentative transactions of inter-chain blockchain ICC l and participant blockchain PPC2 are executed. After all the tentative transactions are successful completed, the transaction is completed (commit).
[0061] The second transaction mode using multilateral netting is illustrated with reference to FIG. 9 and FIG. 13. The corresponding chronology or order of process steps is illustrated in FIG. 10 and FIG. 14. The transaction pattern includes the following process which is described at a high-level below, which will be elaborated later in detail having regard to a corresponding pseudocode. [0062] First, in step (1) participant blockchain PPCl initiates a transaction to inter-chain blockchain ICCl . There are two modes. The first mode is illustrated in FIG. 9 and the second mode is illustrated with the reference to FIG. 13.
[0063] Second, in step (2) inter-chain blockchain ICCl sends a transaction request to participant blockchain PPC2.
[0064] If the transaction in step (1) is initiated successfully, after the second step is completed, the status of the transaction is marked as pre-tentative.
[0065] The second mode is illustrated with the reference to FIG. 13. Steps (2a) and (2b) are executed concurrently. In step (2a) inter-chain blockchain ICCl replies to participant blockchain PPCl with the message of whether the transaction is successful. In step (2b) inter-chain blockchain ICCl sends a transaction request to participant blockchain PPC2.
[0066] If the transaction in step (1) initiated successfully, after the completion of step (2a) and step (2b), the status of the transaction is marked as pre-tentative.
[0067] In the second mode after the completion of step (2a), participant blockchain PPCl can perform other operations, to achieve non-blocking operation.
[0068] In step (3), participant blockchain PPC2 sends a message to inter-chain blockchain ICCl to inform whether the transaction request was successfully accepted by participant blockchain PPC2, and if so, it sends inter-chain blockchain ICCl the proof that participant blockchain PPC2 is able to accept the transaction;
[0069] If the request is successfully accepted, the transaction status is marked tentative. Steps (4a) and (4b) are performed simultaneously. In step (4a) inter-chain blockchain ICCl informs participant blockchain PPCl that the transaction meets the execution conditions and can be executed and in step (4b) inter-chain blockchain ICCl notifies participant blockchain PPC2 that the transaction meets the execution condition and can be executed. [0070] The transaction waits for the end of the settlement cycle, before being committed in step (5). In step (5), the settlement period ends, stopping all the pending or initializing transactions and tentative transactions, completes the ongoing transactions. The inter-chain blockchain ICCl conducts the multilateral netting for all the transactions marked as tentative in this settlement cycle, then, enters the stage of transaction commit.
[0071] A representation of two participant blockchains (PPCs) conducting transactions through ABC and TBC is shown in FIG. 2. For steps (1) through (4), the transaction process and the roles played by ABC and TBC are as follows. When one inter-chain blockchain trades with one participant blockchain, it may utilize one or more common nodes between the TBC and the participant blockchain, and TBC is responsible for processing the transaction between the interchain blockchain and the participant blockchain. In each inter-chain blockchain, there is an ABC, which is responsible for maintaining account information. ABC interconnects with each of the TBCs, each TBC connects to participant blockchain, and conducts transaction. Before TBC sends information to ABC, or before ABC sends information to TBC, the TBC or the ABC conducts its own consensus. When ABC or TBC receives the information, it will conduct consensus among its nodes. Prior to TBC sending information to a participant blockchain, it also conducts consensus. When TBC receives information from a participant blockchain, the TBC conducts consensus. It is only after consensus is reached, that transactions proceed.
[0072] Preferably, when one blockchain transmits information to another blockchain, its delivery mode is broadcast. Each node of one blockchain separately transmits information to each node of another blockchain, in order to prevent some or a few nodes cheating and affect the correctness of the entire transmission process. When the participant blockchain PPCl sends a request to the inter-chain blockchain ICCl , if there are m nodes in PPCl , respectively labeled as PI, P2, Pm, there are totally n nodes in ICCl, respectively labeled as Tl, T2, Tn, Pi (i = 1 , 2, m) sends requests respectively to Tl , T2, Tn, all nodes send m * n requests in total.
[0073] A brief description of each steps (1) to (4) for the two participant blockchains, PPCl and PPC2, that trade through inter-chain blockchain is provided below, along with a pseudocode to aid with implementation. [0074] During transaction processing, before one blockchain sends information (such as transaction request, or transaction success message) to another blockchain, it conducts consensus voting itself, to decide whether to take the action. When one blockchain receives information from another blockchain, it again needs to conducts consensus voting to decide whether or not accept the information. In the description of algorithm and pseudocode, we miss some process of the consensus.
[0075] In step (1) participant blockchain PPC1 initiates a transaction to Inter-chain blockchain ICC.
[0076] In step (1.1) PPC1 (e.g., financial institution) initiates a transaction: the participant blockchain decides whether or not to initiate a transaction based on internal voting (Byzantine Fault Tolerance consensus protocol such as CBFT or PBFT, or database transaction protocol). If initiating transaction, participant blockchain PPC 1 encrypts and signs the transaction information (using a digital signature, etc.), chooses TBC1 which will be used in this transaction. Note that TBC1 belongs to the inter-chain blockchain and connects to participant blockchain 1 (PPC1)), and sends the encrypted and signed transaction to TBC1. If not initiating a transaction, an error message is returned to participant blockchain PPC1, and the transaction is marked as failure.
[0077] In step (1.2) inter-chain blockchain verification transaction takes place. After receiving the transaction information, TBC1 sends a request to ABC, ABC receives the request, and verifies the transaction information (using a digital signature, etc.). If the verification is successful, ABC replies to TBC1 with the account information of the participant blockchain. If the verification fails, then an error message is returned and the previous steps are each marked as failure.
[0078] In step (1.3) TBC1 conducts consensus for this transaction among its nodes, and marks the transaction as pending.
[0079] In step (2) inter-chain Blockchain ICC1 sends a transaction request to participant blockchain PPC2. Step (2) has two modes. [0080] The first mode involves the following steps (2.1) and (2.2).
[0081] In step (2.1) inter-chain blockchain ICCl transfers transactions. Inter-chain blockchain ICCl decides whether or not to pass the transaction to participant blockchain PPC2 via internal voting (Byzantine Fault Tolerant consensus such as CBFT or PBFT, or database transaction protocol). If passing the transaction, inter-chain blockchain ICCl encrypts and signs the transaction (using a digital signature, etc.), chooses TBC2 which will be used in this transaction (TBC2 belongs to the inter-chain blockchain and connects to participant blockchain 2(PPC2)), and sends the encrypted and signed transaction to TBC2; If no, returns an error message, and marks the previous steps as failure.
[0082] In step (2.2) PPC2 transaction are verified. Participant blockchain PPC2 verifies the received transaction (using a digital signature, etc.), and the verification is passed, then an internal vote is taken in PPC2 to decide whether or not to accept the transaction. If the verification fails, a failure message is returned, and the previous steps marked as failure.
[0083] The second mode involves the steps (2a) and (2b). In step (2a) inter-chain blockchain ICCl replies participant blockchain PPCl with the message of whether the transaction is successful. When PPCl receives ICCl 's message that the verification is passed and the transaction is marked as pending, PPCl does not need to wait, and can perform other operations. Step (2b) is the same as that of step (2) of the first mode.
[0084] In step (3) PPC2 sends to ICCl a message indicating whether the transaction request was successfully accepted by PPC2, and if so, sends inter-chain blockchain ICC 1 the proof that PPC2 is able to accept the transaction. Step (3) involves steps (3.1) and (3.2).
[0085] In step (3.1) if PPC2 votes successfully and agrees to accept the transaction, it returns a success message to ICCl and proceeds to step (3.2); otherwise, it returns to ICCl a message of failure, and mark the previous steps as a failure.
[0086] In step (3.2) PPC2 sends to ICCl a proof that PPC2 can accept the transaction. For example, PPC2 has a sufficient resources to complete the transaction, then the transaction between inter-chain Blockchain ICC1 and participant blockchain PPC2 is set to the pending status.
[0087] In step (4) the inter-chain blockchain verifies the information returned by participant blockchain PPC2 and determines whether the transaction meets the execution conditions, and if so, proceeds to steps (4a) and (4b). Otherwise, inter-chain blockchain votes to decide whether or not to cancel pending transactions, and mark the previous steps as failures.
[0088] In step (4a) inter-chain blockchain ICC 1 informs participant blockchain PPC 1 that the transaction meets the execution conditions and can be executed.
[0089] In step (4b) inter-chain blockchain ICC1 informs participant blockchain PPC2 that the transaction meets the execution condition and can be executed.
[0090] In order to improve the existing problem that the network of blockchains designed for financial systems cannot be operated in parallel, the distributed and novel network of blockchains presented herewith has the following advantages:
[0091] (1) Support for parallel operations: the network architecture is a fully distributed architecture. All the chains in this model can run in parallel to improve the operation speed of the entire financial system. As different participant blockchains can interact with different interchain blockchains, the transactions handled by different participant blockchains can be performed simultaneously without the need of all transactions passing one central authority. The trading volume and load of each intermediary are greatly reduced and parallel operations can be carried out. This improves the efficiency of the transaction, and speeds up the transaction.
[0092] (2) Multilateral netting: when two or more participant blockchains are traded through one inter-chain blockchain, the inter-chain blockchain can offset each other from multiple transactions, reducing the settlement volume and alleviating the large-scale transactions difficulty, improve the speed of the transaction, improve market efficiency. [0093] (3) Scalability: Any number of financial institutions and intermediary institutions can easily join the network structure at any time, and new financial units can be connected to the existing intermediary institutions through TBC. This makes the network scalable and adaptive to large networks and high transaction volumes.
[0094] (4) Support for supervision: it is difficult to tamper with the accounting records, record the real transaction process to facilitate the supervision and auditing of government departments.
[0095] (5) Separate transaction and account balance records: in this model, the inter-chain blockchain is structured as Account Blockchain (ABC) and Trading Blockchain (TBC) and these blockchains conduct consensus independently. Such design is applicable for financial systems, it improves privacy protection and transaction efficiency.
[0096] (6) Different store modes: Account Blockchain (ABC) and Trading Blockchain (TBC) in this model's inter-chain blockchain support different store modes, to meet the requirements of difference use cases.
[0097] (7) The basic principles of network of blockchains or Internet of blockchains are realized, including: (a) high-performance and fully distributed architecture that supports parallel operations of each intermediary to improve the transaction efficiency of the network; (b) data reliability (immutability, security), every node using the Byzantine fault-tolerant protocol with each other to ensure consistency and immutability; (c) privacy protection, the internal information within each chain cannot be externally obtained; (f) scalability, any financial institution can easily join the network at any time, and due to parallel computing, adding new financial institutions will not cause communication obstruction; and (e) completeness where each chain can track its completeness, and once a node is found to cheat, its completeness is reduced, and can be tracked and viewed.
[0098] In order to better understand the technical solutions provided in the implementations of the present invention, and better compared with the technical solutions in the implementations of the present invention. The following is a description of the present invention by using algorithms and pseudo-codes in combination with the accompanying drawings.
[0099] The specific implementation of a real-time network of blockchains (Rhinopithecus model) includes the following three major aspects. Firstly, the entire network can be built from scratch. Secondly, one participant blockchain interact or transact with another participant blockchain through one inter-chain blockchain. Lastly, new blockchains can join the network.
Network built from scratch
[00100] The entire network is built from scratch. The input includes a plurality of inter-chain blockchains (indicated by ICC in the pseudo code), a plurality of participant blockchains (PPC in the pseudo code), as well as relationships showing whether a participant blockchain is connected to an inter-chain blockchain. The specific process is as follows.
[00101] (1) For chains that will join the network, put all the participant blockchains into one participant blockchain set, and put all the inter-chain blockchains into one inter-chain blockchain set.
[00102] (2) For each inter-chain blockchain in the set of inter-chain blockchain, and for every two participant blockchains in the set of participant blockchain, using the known relationship between the blockchains, if the inter-chain blockchain is to connect the two participant blockchains, then the inter-chain blockchain establishes connections to the two participant blockchains respectively; otherwise, continue to consider other blockchains.
[00103] The main algorithm of the process shown in the form of pseudocode, denoted as Algorithm 0, build the network. Algorithm 0: Build_the_network
Input: ICCs, PPCs, connection_information
1 put all the ICCs in a set ICCSet, put all the PPCs in a set PPCSet
2 for (each ICC in ICCSet), and (each two different PPCs in PPCSet), denote as PPCl and PPC2, do:
3 if (ICC, PPCl and PPC2) should be connected, then: // Two or more PPCs connect with each ICC
4 add connection (ICC, PPCl) into the network by calling Algorithm 7 (link an ICC with a PPC)
5 add connection (ICC, PPC2) into the network by calling Algorithm 7 (link an ICC with a PPC)
6 end if
7 end for
8 // Assuming if PPCl and PPC2 are already connected to ICCl,adding PPC3 into ICC1 will
// result in PPCl, PPC2, PPC3 connected with each other via ICC1. Similarly, if PPCi
// already connected to ICC1, adding PPCj with ICC1 will result all PPCi and PPCj
// connected to each other via ICC1
[00104] The consensus protocol in the following pseudocode means CBFT or PBFT or other Byzantine consensus protocol or database consistency.
Transactions between participant blockchains
[00105] A participant blockchain trades with another participant blockchain through one inter-chain blockchain, as shown in FIG. 2. The inputs include inter-chain blockchain 1 (ICC1), participant blockchain 1 (PPCl) and participant blockchain PPC2. participant blockchain 1 (PPCl) is responsible for initiating the transaction, inter-chain blockchain 1 process the transaction, and Participant Blockchain PPC2 is responsible for receiving the transaction. For example, participant blockchain 1 (PPC l) wants to exchange dollar for gold with participant blockchain PPC2, participant blockchain 1 (PPCl) initiates a transaction that exchanges USD for gold, provides a certain amount of money, and trades through inter-chain blockchain 1 , Participant Blockchain PPC2 is responsible for receiving the U.S. dollar and providing gold.
[00106] For each transaction, including two scenarios, one is real-time transaction, the other is multilateral netting. The specific transaction process is as follows.
[00107] (1) Participant Blockchain 1 (PPC1) decides whether or not to initiate this transaction based on the voting of each of its internal nodes (using CBFT, or PBFT, or other Byzantine consensus protocols, or database transaction protocols). If the voting is successful, then go to step (2); if the vote fails, return an error message;
[00108] (2) Choose TBC1 from Inter-chain blockchain 1 to interact with participant blockchain 1 for transaction. TBC1 is part of Inter-chain blockchain 1.
[00109] (3) Participant blockchain 1 (PPC1) sends transaction request to TBC1 , that is process (1)
[00110] (4) Invoke algorithm 2, Inter-chain blockchain 1 verifies the transaction request (using digital signature, etc), if the verification passes, proceed to process (5); if the verification fails, reply to participant blockchain 1 (PPC1) with error message.
[00111] (5) Each of its internal nodes in inter-chain blockchain 1 votes (using CBFT, or PBFT, or other Byzantine consensus protocols, or database transaction protocols) to decide whether or not to execute the transaction. If the vote is successful, proceed to step (6); if the vote fails, reply voting failure information to participant blockchain 1 (PPC1) and mark all previous steps as "failed";
[00112] (6) The status of the transaction between participant blockchain 1 (PPC1) and interchain blockchain 1 (ICC1) is set to "pending";
[00113] (7) If real-time trading is required, the transaction status is marked as tentative; if multilateral netting is required, the transaction status is marked as "pre -tentative" ; [00114] (8) If it is mode (I), call Algorithm 3, inter-chain blockchain 1 (ICCl) prepares to initiate a transaction request to participant blockchain PPC2, which is process (2). If process (2) says that the transaction request ICCl sends to PPC2 is successful, then go to step 9. Otherwise, mark all the previous steps as "Failed" and call algorithm 12, which is composed of inter-chain blockchain 1 (ICCl), participant blockchain 1 (PPCl) and Participant blockchain PPC2 to decide whether or not to cancel pending transactions between ICCl and PPCl and return an error message. If it is algorithm (b), ICCl notifies PPCl with the current status of the transaction, which is process (2a), and conducts process (2) in mode (I).
[00115] (9) PPC2 tells ICC 1 whether PPC2 agrees with the transaction, and if so, sends ICC 1 the proof that participant blockchain PPC2 is able to take the transaction, for ICCl to verify, that is, process (3);
[00116] (10) Inter-chain blockchain 1 (ICCl) verifies this information and, if verification is passed, goes to step (12), otherwise marks all previous steps as "failed" and invokes algorithm 12, which is composed of inter-chain blockchain 1 (ICCl), participant blockchain 1 (PPCl) and Participant blockchain PPC2 to decide whether or not to cancel pending transactions between ICCl and PPCl and return an error message.
[00117] (11) ICCl notifies participant blockchain 1 (PPCl) and participant blockchain PPC2 whether the transaction meets the trading conditions and can be executed, which is process (4a) and process (4b);
[00118] (12) If, within a certain time (Timel), PPCl fails to receive a notification that the transaction can be executed, inter-chain blockchain (ICC 1 ), participant blockchain 1 (PPC 1 ) and participant blockchain PPC2 run consensus protocol, decide whether to cancel the transaction, if yes, then go to step (13), otherwise go to step (14);
[00119] (13) Mark all previous steps as "Failed" and cancel the tentative transactions of ICCl and PPCl and cancel the tentative transactions of ICCl and PPC2, then Inter-chain blockchains 1 (ICC 1 ) again runs consensus protocol with PPC 1 and PPC2, and returned the failure message; [00120] (14) If real-time trading is required, the following algorithm 10 is invoked to execute the real-time transaction; if multilateral netting is required, the transaction status is marked as tentative and algorithm 1 1 is invoked for Multilateral netting (in Algorithm 1 1, first wait until the end of the settlement cycle).
Algorithm 1: a_transaction_between_an_ICC_and_two_PPCs.
Input: ICCl, PPCl, PPC2
1 PPCl votes using consensus protocol within itself to determine whether conduct the transaction
2 if (yes), then:
3 determine the TBC1 to be used for this transaction between PPCl and ICCl
// the TBC1 is a part of ICCl
4 PPCl sends transaction request to the TBC1 and the ABC
// Process 1, the ABC is a part of ICCl
5 if (mode (a)), then:
6 PPCl waits until receives the transaction confirmation from ICCl
7 end if
8 ICCl verifies the requested transaction using digital signature by calling Algorithm 2
(ICC_verifies_requested_transaction)
9 if (yes), then:
10 ICCl votes using consensus protocol within itself to determine whether to conduct the transaction
11 if (yes), then:
12 set the transaction between PPCl and ICCl as "pending"
13 if (real-time transaction processing), then:
14 mark this transaction condition as "tentative"
15 else if (multilateral netting processing), then:
16 mark this transaction condition as "pre-tentative"
17 end if
18 if (mode (b)), then:
19 ICCl informs PPCl the pending transaction // Process 2a
20 end if 21 initiate the transaction between ICCl and PPC2 by calling Algorithm 3
(initiate_the_transaction_between_ICCl_and_PPC2)
// Process 2 for mode (a); Process 2b for mode (b)
22 if(success), then:
23 PPC2 informs ICCl the transaction approval between ICCl and PPC2, and send transaction information for verification to ICCl // Process 3
24 ICCl verifies the transaction using digital signature by calling Algorithm 2
(ICC_verifies_requested_transaction)
25 if (yes), then
26 set the transaction between ICCl and PPC2 as "pending"
27 ICCl informs PPCl and PPC2 the transaction confirmation
// Process 4a and 4b, the transaction satisfy the requirement and can be conducted
28 if (PPCl does not receive the transaction confirmation in Timel), then:
//Time 1 is the maximum amount of time PPCl can wait
29 ICCl conducts consensus with PPCl and PPC2 to decide whether the transaction between PPCl PPC2 failed
30 if (yes), then:
31 mark all previous steps as "failure"
32 cancel the pending transactions
33 ICCl conducts consensus with PPCl and PPC2
34 return (time out error)
35 end if
36 end if
37 if (real-time transaction processing), then:
38 conduct a real-time transaction by calling Algorithm 10 (ICC_conducts_real_time_transaction)
39 else if (multilateral netting processing), then:
40 mark this transaction condition as "tentative"
41 conduct multilateral netting by calling Algorithm 11 (ICC_conducts_multilateral_netting)
42 end if
43 else: 44 mark all previous steps as "failure"
45 cancel the pending transaction between ICCl and PPCl by calling Algorithm 12
(cancel_pending_transaction_between_ICC_and _PPC1)
46 return (transaction with PPC2 failure) to PPCl
47 end if
48 else:
49 mark all previous steps as "failure"
50 cancel the pending transaction between ICCl and PPCl by calling Algorithm 12
(cancel_pending_transaction_between_ICC_and_PPCl)
51 return (transaction with PPC2 failure) to PPCl
52 end if
53 else:
54 return (Byzantine failure) to PPCl
55 mark all previous steps as "failure"
56 end if
57 else:
58 return (verification failure) to PPCl
59 mark all previous steps as "failure"
60 end if
61 else:
62 return (failure)
63 end if
[00121] For Algorithm 2 invoked in Algorithm 1 , Inter-chain blockchain verifying the requested transaction, the inputs of which include inter-chain blockchain and TBC, and the requested transaction. The specific process is as follows.
[00122] (1) TBC send ABC the received and to be verified transaction request. ABC is a part of inter-chain blockchain; [00123] (2) By calling algorithm 4, ABC verifies the transaction request, if the verification passes, replies to TBC with the verification success message; otherwise, replies with failure message.
[00124] The main algorithm of this process is shown in the form of pseudocode, denoted as Algorithm 2, Inter-chain blockchain verifies requested transaction.
Algorithm 2 (ICC_verifies_requested_transaction)
Input: TBC, ICC, requested transaction
1 the TBC sends verification request of the received requested transaction to the ABC
// the ABC is a part of the ICC
2 the ABC verifies the requested transaction by calling Algorithm 4
(verify_requested_transaction_by_using_digital_signature)
3 if (yes), then:
4 return (verification success) to TBC
5 else:
6 return (verification failure) to TBC
7 end if
[00125] For Algorithm 3 invoked in Algorithm 1 : Inter-chain blockchain 1 (ICC1) prepares to send transaction request to participant blockchain PPC2, and the inputs includes inter-chain blockchain 1 (ICC l ) and participant blockchain PPC2. The specific process is as follows.
[00126] (1) Inter-chain blockchain 1 conducts consensus among its nodes (using CBFT, PBFT or other Byzantine Fault Tolerance protocols, or database transaction protocol), to decide whether execute the transaction with participant blockchain PPC2, if yes, proceed to step (2), if no, reply with failure message.
[00127] (2) Choose TBC2 from inter-chain blockchain 1 for executing transaction with participant blockchain PPC2. TBC2 is a part of inter-chain blockchain 1. [00128] (3) TBC2 sends transaction request to participant blockchain PPC2, that is process (2b);
[00129] (4) Invoke Algorithm 4, participant blockchain PPC2 verifies the requested transaction (using the digital signature), and if the verification is successful, proceeds to step (5); if the verification fails, return a failure message, and mark the previous steps as "failure";
[00130] (5) Participant blockchain PPC2 conducts consensus among its nodes (using CBFT, PBFT or other Byzantine Fault Tolerance protocols, or database transaction protocol), to decide whether accept the transaction, if yes, reply with a success message, if no, reply with failure message, and mark all the previous steps as "failure".
[00131] The main algorithm of this process, shown in the form of pseudo-code, denoted as Algorithm 3, Inter-chain blockchain 1 initiates the transaction with participant blockchain PPC2.
Algorithm 3: initiate_the_transaction_between_ICCl_and_PPC2
Input: ICCl, PPC2
1 ICCl votes using CBFT or PBFT or other Byzantine consensus protocol within itself to determine whether to conduct the transaction with PPC2
2 if (yes), then:
3 determine the TBC2 to be used for this transaction between PPC2 and ICCl
// the TBC2 is a part of ICCl
4 the TBC2 sends transaction request to PPC2
// Process (2) for mode (a), Process 2b for mode (b)
5 PPC2 verifies the transaction request using digital signature, be calling Algorithm 4
(verify_requested_transaction_by_using_digital_signature)
6 if (yes), then:
7 PPC2 votes using CBFT or PBFT or other Byzantine consensus protocol within itself to determine whether to receive this transaction
8 if (yes), then:
9 return (success)
10 else:
11 return (failure)
12 mark all previous steps as "failure"
13 end if
14 else
15 return (failure) to ICCl
16 mark all previous steps as "failure"
17 end if
18 else:
19 return (failure)
20 end if [00132] For Algorithm 4 invoked in Algorithm 1 : using digital signature to verify transactions, and the inputs include the requester, verifier and the requested transaction. The specific process is as follows.
[00133] (1) The verifier verifies the requester using the digital signature, and if the verification is successful, proceeds to step (2); if the verification fails, returns a message indicating that the verification failed to the requester;
[00134] (2) The verifier checks whether the requester has the relevant resources for the transaction, and if so, proceeds to step (3); otherwise, the requester is returned a failure message with no relevant resource;
[00135] (3) The verifier checks whether the requester has sufficient resources or balances to complete the transaction, and if yes, returns information indicating that the verification is successful. Otherwise, the requester is returned with insufficient resource failure information.
[00136] The main algorithm of this process, shown in the form of pseudo-code, denoted as Algorithm 4, verifies transaction information with a digital signature.
Algorithm 4: verify_requested_transaction_by_using_digital_signature
Input: requester, verifier, requested transaction
1 the verifier verifies the requester using digital signature
2 if (yes), then:
3 the verifier checks if the requester has the assets associated with the requested transaction
4 if (yes), then:
5 the verifier checks if the assets are sufficient for the requested transaction
6 if (yes), then:
7 return (verification success)
8 else:
9 return ("insufficient assets") to the requester
10 end if
11 else:
12 return ("no associated asset") to the requester
13 end if
14 else:
15 return (failure) to the requester
16 end if
[00137] Regarding (3) New blockchains can join the network, there are two cases: (A) a new participant blockchain joins the network; (B) a new inter-chain blockchain joins the network. The two cases are discussed in the following.
[00138] For case (A), a new participant blockchain joins the network, the inputs are the new participant blockchain to be joining the network, and the network (including other participant blockchains and inter-chain blockchains in the network). When a new participant blockchain is about to join the network, the participant blockchain may itself generate one or more inter-chain blockchains, and the newly generated inter-chain blockchains connect to other participant blockchains which already exist in the network, meanwhile, this new participant blockchain may also possibly connect to other inter-chain blockchains already existing in the network; it is possible that the participant blockchain does not itself generate inter-chain blockchains, then the participant blockchain must connect to one or more existing inter-chain blockchains. The specific process is as follows:
[00139] (1) If the participant blockchain needs to create a new inter-chain blockchain by itself, carry out the following process until the participant blockchain no longer needs to create its own new inter-chain blockchain:
[00140] (a) The participant blockchain generates a new inter-chain blockchain;
[00141] (b) the inter-chain blockchain is connected to the participant blockchain by calling algorithm 7;
[00142] (c) Identify all other existing participant blockchains that need to be linked to this inter-chain blockchain (two or more participant blockchains need to be connected to each interchain blockchain) and put them into a set called other participant blockchains;
[00143] (d) For each participant blockchain in the set of other participant blockchains, connect this participant blockchain to this inter-chain blockchain by calling algorithm 7;
[00144] Then, execute:
[00145] (2) Determine whether the participant blockchain needs to be connected with existing inter-chain blockchains in the network; if yes, go to step (3);
[00146] (3) Find out all the other participant blockchains that need to be traded with this participant blockchain, and find out all the inter-chain blockchains connected with these participant blockchains;
[00147] (4) Make sure that all participant blockchains identified in the previous step are found, and find out an inter-chain blockchain subset from all the inter-chain blockchains found in the previous step, because each participant chain can be linked to multiple inter-chain blockchains, so one can find one inter-chain blockchain of itself to ensure that all needed participant blockchains are connected to these inter-chain blockchains;
[00148] (5) For each inter-chain blockchain in the inter-chain blockchain set, the participant blockchain is connected to this inter-chain blockchain by calling algorithm 7.
[00149] The main algorithm of this process, shown as a pseudo-code in Algorithm 5, adds a new participant chain to the network.
Algorithm 5: add_a_new_PPC_into_the_network
Input: PPC, network
1 while (this PPC needs to generate new ICCs), do:
2 this PPC generates a new ICC
3 link the ICC with this PPC by calling Algorithm 7 (link_an_ICC_with_a_PPC)
4 identify other existing PPCs need to link to the ICC
// because one ICC needs to link to two or more PPCs
5 put those PPCs into a set OtherPPCSet
6 for (each PPC in OtherPPCSet), do:
7 link the ICC with the PPC by calling Algorithm 7 (link_an_ICC_with_a_PPC)
8 end for
9 end while
10 determine whether this PPC needs to link to existing ICCs
// the PPC may need to link to other existing ICCs
11 if (yes), then:
12 identify all the PPCs that this PPC needs to make transaction with
13 identify all the ICCs connect to those PPCs
14 select a subset of all those ICCs identified in the previous step, under the constraint that all the PPCs identified in the first step are included
// because each PPC can connect with multiple ICCs, so can select a subset of the ICCs
// to be included in the ICCSet, but all the needed PPCs are included
15 put the subset of ICCs into a set ICCSet
16 for (each ICC in ICCSet), do:
17 link this PPC with the ICC by calling Algorithm 7 (link_an_ICC_with_a_PPC)
18 end for
19 end if [00150] For case (B), a new inter-chain blockchain joins the network, the inputs are the new inter-chain blockchain to be joining the network, and the network including other participant blockchains and inter-chain blockchains in the network. The specific process is as follows.
[00151] (1) Find all the existing participant blockchains in the network which need to be connected to the new inter-chain blockchain that is about to join; (2) if none or only one participant blockchain is to be connected to the inter-chain blockchain, an error message is returned to the inter-chain blockchain, because each inter-chain blockchain needs to be connected to two or more participant blockchains; if two Or more of participant blockchains will be connected with the inter-chain blockchain, then go to step (3); and (3) put the participant blockchains to be connected to the inter-chain blockchain into a set, and by calling the algorithm 7, connect each participant blockchain in the set to the inter-chain blockchain.
[00152] The main algorithm of this process is shown in the form of pseudocode, denoted as Algorithm 6, add a new inter-chain blockchain into the network.
Algorithm 6: add_a_new_ICC_into_the_network
Input: ICC, network
1 identify all the PPCs need to be linked to this ICC
2 if (0 or 1 PPC need to be linked to this ICC), then:
// each ICC should be linked to two or more PPCs
3 return (failure to this ICC)
4 else:
5 put all the PPCs need to be linked to this ICC into a set PPCSet
6 for (all PPC in PPCSet), do:
7 link the PPC with this ICC by calling Algorithm 7 (link_an_ICC_with_a_PPC)
8 end for
9 end if [00153] Algorithm 7 invoked in Algorithm 5 and Algorithm 6: A participant blockchain connects to an inter-chain blockchain, whose inputs include a participant blockchain and an inter-chain blockchain. The specific process is as follows.
[00154] (1) If there is no TBC can be used in the inter-chain blockchain, then, create a new TBC for the inter-chain blockchain;
[00155] (2) Call Algorithm 8, connect participant blockchain to TBC.
[00156] The main algorithm for this process, shown as a pseudocode, is in Algorithm 7, a participant blockchain connects to an inter-chain blockchain.
Algorithm 7: link_an_ICC_with_a_PPC
Input: ICC, PPC
1 if (no TBC associated with the ICC can be used), then
2 create a new TBC associated with the ICC
3 end if
4 link the PPC with the TBC associated with the ICC, using Algorithm 8
(link_a_PPC_with_the_TBC_associated_with_an_ICC)
[00157] For Algorithm 8 invoked in Algorithm 7: Connect a participant blockchain with a TBC, the inputs include participant blockchain, TBC, and the inter-chain blockchain the TBC associated with. The specific process is as follows.
[00158] (1) The participant blockchain votes among its nodes (using CBFT, or PBFT, or other Byzantine consensus protocols, or database transaction protocols) to decide whether to connect with TBC. If the vote is successful, then go to step (2); if the vote fails, then return failure information;
[00159] (2) The participant blockchain sends verification information (such as digital signature, etc) to TBC; [00160] (3) Call Algorithm 9, the TBC associated inter-chain blockchain verifies the received information (using digital signature, etc), if the verification passes, proceed to step (4), otherwise, return failure message.
[00161] (4) The Inter-chain Blockchain votes among its nodes (using CBFT, or PBFT, or other Byzantine consensus protocols, or database transaction protocols) to decide whether to connect with the Participant Blockchain. If the vote is successful, then the TBC connects with the participant blockchain; if the vote fails, then return failure message.
[00162] The main algorithm of this process is shown in the form of a pseudo-code, denoted as Algorithm 8, a participant blockchain connects with a TBC.
Algorithm 8: link_a_PPC_with_the_TBC_associated_with_an_ICC
Input: PPC, TBC, ICC
1 the PPC vote using consensus protocol within itself to determine whether link to the TBC
2 if (yes), do:
3 the PPC sends verification information (such as digital signature) to the TBC
4 the ICC verifies the received information (using such as digital signature) by calling Algorithm 9 (ICC_verifies_the_received_information)
5 if (verified), do:
6 the ICC votes using consensus protocol within itself to determine whether to link the PPC
7 if (yes), do:
8 connect the TBC with the PPC
9 else:
10 return (failure to the PPC)
11 end if
12 else:
13 return (failure to the PPC)
14 end if
15 else
16 return (false)
17 end if
[00163] For Algorithm 9 invoked in Algorithm 8: Inter-chain blockchain verifies received information, the inputs include an inter-chain blockchain, which includes TBC and ABC, and the information received. The specific process is as follows.
[00164] (1) TBC sends ABC verification request, to verify the information TBC received
[00165] (2) ABC verifies the information by using methods such as digital signature. If the verification passes, reply to TBC with a success message; otherwise, reply to TBC with a failure message. [00166] The main algorithm of this process is shown in the form of a pseudo-code, denoted as Algorithm 9, Inter-chain blockchain verifies received information
Algorithm 9: ICC_verifies_the_received_information
Input: ICC, received information
1 the TBC sends verification request of the received information to the ABC
// the ABC is a part of the ICC
2 the ABC verifies the requested information using digital signature
3 if (yes), then:
4 return (verification success) to TBC
5 else:
6 return (verification failure) to TBC
7 end if
[00167] For the algorithm 10 invoked in Algorithm 1 , the inter-chain blockchain performs real-time transactions, when PPCl and PPC2 receive the message sent by the inter-chain blockchain to confirm that the transaction can take place, that is, after the processes (4a) and (4b), the transactions marked as pending for the inter-chain blockchain and participant blockchain 1 (PPCl) and the transactions marked as pending for the inter-chain blockchain and participant blockchain PPC2 are executed immediately, it comes to transaction commit. The specific process is as follows:
[00168] (1) The transaction marked as pending for the inter-chain blockchain and participant blockchain 1 (PPCl) and the transaction marked as pending for inter-chain blockchain and participant blockchain PPC2 are executed until the transaction between participant chain 1 (PPCl) and participant blockchain 2 PPC2) is successfully completed.
[00169] (2) The inter-chain blockchain informs PPCl and PPC2 that transactions are completed.
[00170] (3) TBC1 and TBC2 record the transaction information. [00171] The main algorithm of this process is shown in the form of pseudo-code, denoted as Algorithm 10, in which the inter-chain blockchain performs real-time transactions.
Algorithm 10: ICC_conducts_real_time_transaction
Input: ICC, PPC1, PPC2
1 while (transaction not completed), do:
2 conduct all the "pending" transactions // commit
3 end while
4 ICC informs PPC1 and PPC2 the transaction completion
5 record the transaction information in TBC1 and TBC2
[00172] For the algorithm 1 1 called in Algorithm 1 , the inter-chain blockchain performs multilateral netting, and when the inter-chain blockchain finishes the transaction recording for a certain amount of time (one settlement cycle: one hour, one day, or one week, etc.) (The transactions of participant blockchains happened within the settlement cycle are recorded in the inter-chain blockchain), the inter-chain blockchain performs multilateral netting. The specific process is as follows.
[00173] When a settlement cycle ends, the inter-chain blockchain performs the following operations;
[00174] (1) stop initialization or starting any new transaction, and complete all ongoing transactions or tentative transactions;
[00175] (2) Inter-chain blockchain identifies all the participant blockchains that attempted to trade with the inter-chain blockchain in the previous settlement cycle, and place those participant blockchains into a set;
[00176] (3) inter-chain blockchain to find out all the transactions in the previous settlement cycle; [00177] (4) For each participant blockchain, the inter-chain blockchain will offset the available and receivable funds or resources of all the transactions in the previous settlement cycle, pay or charge the participant blockchain of the difference.
[00178] (5) Verify that the result of the multilateral netting is correct: determine whether the sum of the trade in and out of all the participant blockchains traded through the inter-chain blockchain during the settlement cycle is 0. If it is 0, that is correct, if it is not 0, then the error;
[00179] (6) If correct, the inter-chain blockchain will execute the final transaction to each participant blockchain according to the settlement result; if it is not correct, the multilateral netting will be conducted again, or manual verification occurs.
[00180] The main algorithm of the process is shown in the form of pseudo-code, denoted as Algorithm 1 1 , the inter-chain blockchain performs multilateral netting.
Algorithm 11: ICC_conducts_multilateral_netting
Input: ICC, PPCs
1 if (time period for conducting multilateral netting is due), then:
2 stop initiating any new transactions
3 complete all transactions or tentative transactions already in process
4 ICC identifies all the PPCs that made tentative transactions with ICCs during the last time period
5 put those PPCs into a set PPCSet
6 ICC identifies all the recorded tentative transactions of the last time period
7 for (each PPC in PPCSet), do:
8 ICC nets all the tentative transactions of the PPC on a multilateral basis
// this is done by adding or subtraction for each transaction depending on the direction of
// payment, the result is the net payment from one PPC to another PPC
9 end for
10 verify if the multilateral netting is success by checking if the sum of all of the transactions of the participating PPCs in the last time period is 0
11 if (yes), then:
12 ICC commits the results of the netting to each participating PPC
13 else:
14 conduct multilateral netting again or conduct manual verification
15 end if
16 end if
[00181] For the algorithm 12 called in Algorithm 1 , cancel pending transactions between Inter-chain blockchain (ICC) and Participant blockchain 1 (PPC1). Before each cancellation operation, the inter-chain blockchain needs to conduct consensus with all the involved participant blockchains in this transaction, to decide whether to cancel the pending transaction. If the pending transaction is canceled, the inter-chain blockchain needs to conduct consensus again to inform all the participant blockchains involved in the transaction. The specific process is as follows. [00182] (1) Inter-chain Blockchain (ICC) conducts consensus with Participant Blockchain 1 (PPCl) and Participant Blockchain PPC2 to decide whether or not to cancel the pending transaction between PPC 1 and ICC;
[00183] (2) If yes, the pending transaction is canceled and the inter-chain blockchain (ICC) conducts consensus with participant blockchain 1 (PPCl) and participant blockchain PPC2 to inform that the pending transaction has been canceled.
[00184] The main algorithm of this process, shown as a pseudo-code, is Algorithm 12. Cancel pending transactions between the inter-chain blockchain and participant blockchain 1 (PPC l).
Algorithm 12: cancel_pending_transaction_between_ICC_and_PPCl
Input: ICC, PPCl, PPC2
1 the ICC conducts consensus with PPCl and PPC2 to decide whether to cancel the pending transaction between PPCl and the ICC
2 if (yes), then:
3 cancel the pending transaction between PPCl and ICC
4 the ICC conducts consensus with PPCl and PPC2
5 end if
[00185] While the present invention has been described with reference to the particular illustrative embodiments, it is to be understood that the invention is not to be limited by the particular details of the embodiments described but only by the appended claims. Persons of skill in the art would understand that the implementation details of the present invention can be modified without departing from the scope of the claims.

Claims

What is claimed is:
1. A network of doubly chained blockchains capable of a cross-chain transaction, the network comprising:
a) a plurality of participant blockchains (PPCs) each representing a financial institution, each of the plurality of PPCs comprising at least two nodes;
b) an inter-chain blockchain (ICC), representing an intermediary financial institution, the ICC comprising at least two nodes; wherein at least two of the PPCs and the ICC share at least two common nodes, the ICC carrying out the cross-chain transaction between said at least two of the PPCs and wherein the ICC comprises an account blockchain (ABC) and at least one transaction blockchain (TBC).
2. The network of claim 1 , wherein the cross-chain transaction is one of:
a) a real-time transaction wherein the PPCs trade in real time through the ICC; and b) a multilateral netting wherein the ICC performs multilateral netting at the end of a settlement cycle by resolving multiple tentative transactions together.
3. The network of claim 2, wherein the ICC comprises: a first transaction blockchain (TBC1), a second transaction blockchain (TBC2), and a third transaction blockchain (TBC4), each of the transaction blockchains having at least one node in common with the account blockchain (ABC).
4. The network of claim 3, wherein each of the transaction blockchains and the account blockchain maintain their information on their own physically separate server.
5. The network of claim 1 , wherein a subset of the nodes of each PPC have the right to vote in said each PPC.
6. The network of claim 5, wherein all of the nodes of each PPC have the right to vote in said each PPC.
7. The network of claim 5, wherein the nodes of each PPC conduct one of: Concurrent Byzantine Fault Tolerance (CBFT), Practical Byzantine Fault Tolerance (PBFT), a Byzantine consensus protocol, and a database transaction protocol.
8. The network of claim 3, further comprising a fourth transaction blockchain (TBC4) having at least one node in common with at least one of the PPCs.
9. The network of claim 1 , further comprising a plurality of inter-chain blockchains, wherein for any two of the participant blockchains (PPCs), one of the plurality of inter-chain blockchains (ICCl) shares at least two common nodes with both of said any two of the PPCs.
10. The network of claim 9, wherein said at least two of the PPCs comprise a first participant blockchain PPC1 and a second participant blockchain PPC2, and wherein the cross-chain transaction is one of:
a) a real-time transaction between PPC1 and PPC2 through ICCl ; and
b) a multilateral netting wherein ICCl performs multilateral netting at the end of a settlement cycle by resolving multiple tentative transactions together, the tentative transactions including transactions between said any two of the PPCs.
1 1. The network of claim 10, wherein in a first transaction blockchain (TBCl) in said ICCl , is selected to interact with at least one of PPC 1 and PPC2.
12. The network of claim 10, wherein in said real-time transaction:
a) PPC 1 initiates a transaction to ICC 1 ;
b) ICCl sends a transaction request to PPC2; and and upon the transaction being initiated successfully and the transaction request to PPC2 being successfully sent, a status of the transaction is marked as tentative;
c) PPC2 sends a message to ICCl with a message indicative of whether the transaction request was successfully accepted;
d) simultaneously:
i) ICCl informs PPC1 that the transaction meets the execution conditions;
ii) ICCl notifies PPC2 that the transaction meets the execution conditions; and e) ICCl commits the transaction.
13. The network of claim 12, wherein in a first transaction blockchain (TBCl) in said ICCl , is selected to interact with at least one of PPC1 and PPC2.
14. The network of claim 10, wherein in said multilateral netting:
a) PPC 1 initiates a transaction to ICC 1 ;
b) ICCl sends a transaction request to PPC2; and
and upon the transaction being initiated successfully and the transaction request to PPC2 being successfully sent, a status of the transaction is marked as pre-tentative;
c) PPC2 sends a message to ICCl with a message indicative of whether the transaction request was successfully accepted;
d) simultaneously:
i) ICCl informs PPC 1 that the transaction meets the execution conditions;
ii) ICCl notifies PPC2 that the transaction meets the execution conditions; and e) ICCl waits until the settlement cycle expires and commits the transaction.
15. The network of claim 14, wherein in a first transaction blockchain (TBCl) in said ICCl , is selected to interact with at least one of PPC 1 and PPC2.
16. The network of claim 10, wherein in said real-time transaction:
a) PPC 1 initiates a transaction to ICC 1 ; b) simultaneously:
i) ICCl replies to PPC1 with a message indicative of whether the transaction is successful; and
ii) ICCl sends a transaction request to PPC2; wherein upon the transaction being initiated successfully and the transaction request to PPC2 being successfully sent, a status of the transaction is marked as tentative;
c) PPC2 sends a message to ICCl with a message indicative of whether the transaction request was successfully accepted;
d) simultaneously:
i) ICCl informs PPC1 that the transaction meets the execution conditions;
ii) ICCl notifies PPC2 that the transaction meets the execution conditions; and e) ICC 1 commits the transaction.
17. The network of claim 10, wherein in said multilateral netting:
a) PPC1 initiates a transaction to ICCl ;
b) simultaneously:
i) ICCl replies to PPC1 with a message indicative of whether the transaction is successful; and
ii) ICCl sends a transaction request to PPC2;
and upon the transaction being initiated successfully and the transaction request to PPC2 being successfully sent, a status of the transaction is marked as pre-tentative;
c) PPC2 sends a message to ICCl with a message indicative of whether the transaction request was successfully accepted;
d) simultaneously:
i) ICCl informs PPC1 that the transaction meets the execution conditions;
ii) ICCl notifies PPC2 that the transaction meets the execution conditions; and e) ICC 1 waits until the settlement cycle expires and commits the transaction.
18. The network of claim 8, wherein upon a transaction request sent by the left blockchain to the right blockchain,
a) the left blockchain first performs a consensus vote on each node of the left blockchain to determine whether to initiate a transaction;
b) the left portion the common node has the transaction information that other nodes on the left blockchain have;
c) the common node transfers the information from the left portion to the right portion through the connect portion; and
d) a transaction request is sent to every node of the right blockchain to prevent one or more nodes from cheating.
19. The network of claim 8, wherein each node in the left blockchain transmits information to each node in the right blockchain.
20. The network of claim 19, wherein PPCl sends a request to two nodes of ICC 1 and the two nodes of ICC 1 send the request to each node of the ICC 1.
21. The network of claim 1 , wherein the network is adapted to receive a new blockchain that joins the network of blockchains.
22. A method of executing a transaction in a network of blockchains in real-time, the network comprising: a plurality of participant blockchains (PPCs) comprising ICC1 and ICC2, and an inter-chain blockchain (ICC) comprising an account blockchain (ABC) and at least one transaction blockchain (TBC), the method comprising the ICC performing the steps of:
a) receiving an initiation of the transaction from PPC 1 ;
b) sending a transaction request to PPC2;
c) upon the transaction being initiated successfully and the transaction request to PPC2 being successfully sent, marking a status of the transaction as tentative; d) receiving a message indicative of whether the transaction request was successfully accepted from PPC2;
e) simultaneously informing PPC1 that the transaction meets the execution conditions and notifying PPC2 that the transaction meets the execution conditions; and
f) committing the transaction.
23. A method of executing a transaction in a network of blockchains using multilateral netting, the network comprising: a plurality of participant blockchains (PPCs) comprising ICCl and ICC2, and an inter-chain blockchain (ICC) comprising an account blockchain (ABC) and at least one transaction blockchain (TBC), the method comprising the ICC performing the steps of:
a) receiving an initiation of the transaction from PPC 1 ;
b) sending a transaction request to PPC2;
c) upon the transaction being initiated successfully and the transaction request to PPC2 being successfully sent, marking a status of the transaction as pre-tentative;
d) receiving a message indicative of whether the transaction request was successfully accepted from PPC2;
e) simultaneously informing PPC1 that the transaction meets the execution conditions and notifying PPC2 that the transaction meets the execution conditions; and
f) waits until a settlement cycle expires and committing the transaction.
24. The method of claim 22 or 23 wherein in a first transaction blockchain (TBCl) in said ICCl , is selected to interact with at least one of PPC 1 and PPC2.
25. The method of claim 24 wherein in the first transaction blockchain TBCl interacts with both of PPC 1 and PPC2.
PCT/CA2018/000129 2017-06-24 2018-06-22 A network of doubly-chained blockchains capable of cross-chain transactions WO2018232493A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710493422.0A CN107248076A (en) 2017-06-24 2017-06-24 A kind of core algorithm of the double-chain block chain the Internet model merchandised across chain
CN201710493422.0 2017-06-24

Publications (1)

Publication Number Publication Date
WO2018232493A1 true WO2018232493A1 (en) 2018-12-27

Family

ID=60018397

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CA2018/000129 WO2018232493A1 (en) 2017-06-24 2018-06-22 A network of doubly-chained blockchains capable of cross-chain transactions

Country Status (2)

Country Link
CN (1) CN107248076A (en)
WO (1) WO2018232493A1 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109873861A (en) * 2019-01-11 2019-06-11 平安科技(深圳)有限公司 The exchange method and device, storage medium and electronic equipment of transregional piece of chain node
WO2019141984A1 (en) * 2018-01-17 2019-07-25 SETL Development Limited Interaction between blockchains
CN110727712A (en) * 2019-10-15 2020-01-24 腾讯科技(深圳)有限公司 Data processing method and device based on block chain network, electronic equipment and storage medium
CN111095325A (en) * 2019-04-12 2020-05-01 阿里巴巴集团控股有限公司 Parallel execution of transactions in a distributed ledger system
CN111199400A (en) * 2019-12-31 2020-05-26 北京笔新互联网科技有限公司 Safety monitoring method and device for block chain network
CN111245840A (en) * 2020-01-14 2020-06-05 北京工业大学 Inter-block chain cross-chain information transmission control system
CN112202863A (en) * 2020-09-24 2021-01-08 成都质数斯达克科技有限公司 Data synchronization method and device, electronic equipment and readable storage medium
US10922195B2 (en) 2019-03-18 2021-02-16 Advanced New Technologies Co., Ltd. Consensus system downtime recovery
US10938750B2 (en) 2019-03-18 2021-03-02 Advanced New Technologies Co., Ltd. Consensus system downtime recovery
US10977135B2 (en) 2019-03-18 2021-04-13 Advanced New Technologies Co., Ltd. Consensus system downtime recovery
US11216813B1 (en) * 2018-01-30 2022-01-04 United States Automobile Association (USAA) Business-to-business netting
US20220108316A1 (en) * 2020-10-01 2022-04-07 ExtoLabs, LLC Leveraging Tamper-Resistant Hardware to Transfer Digital Currency between Local Devices
WO2022143798A1 (en) * 2020-12-30 2022-07-07 杭州趣链科技有限公司 Method for verifying cross-chain transaction, and terminal device and readable storage medium
IT202100006242A1 (en) * 2021-03-16 2022-09-16 Antonio Stucchi DISTRIBUTED CRYPTOGRAPHIC SYSTEM TO STORE DATA INCLUDING A MULTIPLE SET OF AUTONOMOUS BLOCKCHAIN
US11461861B1 (en) 2021-06-03 2022-10-04 State Farm Mutual Automobile Insurance Company Net settlement of subrogation claims using a distributed ledger
US11501383B1 (en) 2017-05-24 2022-11-15 State Farm Mutual Automobile Insurance Company Fault determination of blockchain subrogation claims

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107239951A (en) * 2017-06-07 2017-10-10 北京天德科技有限公司 A kind of expansible Central Bank's digital cash method of commerce based on third generation block chain
CN107301600B (en) * 2017-06-23 2021-07-20 北京天德科技有限公司 Core construction method of block chain Internet model for cross-chain transaction
CN108600301B (en) * 2018-03-08 2021-05-18 青岛墨一客区块链有限公司 Cross-link method between block chains and main block chain
CN108305056B (en) * 2018-03-27 2023-11-10 北京蓝亚盒子科技有限公司 Block chain-based data processing method and device and block chain node network
CN108848119B (en) 2018-04-03 2020-04-28 阿里巴巴集团控股有限公司 Cross-block-chain interaction method, device, system and electronic equipment
CN108712257B (en) * 2018-04-03 2020-04-17 阿里巴巴集团控股有限公司 Cross-block-chain authentication method and device and electronic equipment
CN108683630B (en) * 2018-04-03 2020-05-29 阿里巴巴集团控股有限公司 Cross-block-chain authentication method and device and electronic equipment
CN108876363B (en) * 2018-04-18 2022-02-11 北京天德科技有限公司 Cross-border supervision report system based on double-chain architecture block chain
CN108520464B (en) * 2018-04-18 2022-05-10 北京天德科技有限公司 Real-time automatic supervision reporting system based on traditional block chain
CN108520412A (en) * 2018-04-18 2018-09-11 北京天德科技有限公司 A kind of settle accounts calculation transaction towards block chain divides the design method of account algorithm
CN108881177B (en) * 2018-05-28 2021-04-23 夸克链科技(深圳)有限公司 Method for realizing heterogeneous parallel block chain
CN108900585A (en) * 2018-06-15 2018-11-27 浙江华信区块链科技服务有限公司 Across chain transaction consistency implementation method
CN109087082B (en) * 2018-07-23 2020-06-23 阿里巴巴集团控股有限公司 Financial transaction execution method and device based on block chain and electronic equipment
CN109063183B (en) * 2018-08-27 2021-01-12 众安信息技术服务有限公司 Method and device for processing information at block chain nodes
WO2020042930A1 (en) * 2018-08-28 2020-03-05 白杰 Parallel-chain-based transaction method and blockchain system
CN110868308B (en) * 2018-08-28 2022-04-01 傲为有限公司 Block chain network access method and system
US11956346B2 (en) * 2018-08-31 2024-04-09 Simplecredit Micro-Lending Co., Ltd. Blockchain system, information sharing method and related equipment
CN109165945B (en) * 2018-09-07 2021-04-16 腾讯科技(深圳)有限公司 Representative node device election method and device, computer device and storage medium
CN109299338B (en) * 2018-10-31 2019-08-06 山东云溪网络科技有限公司 Transregional piece of chain data management system of one kind and method
EP3625746A4 (en) * 2019-04-12 2020-05-06 Alibaba Group Holding Limited Performing parallel execution of transactions in a distributed ledger system
WO2021018048A1 (en) 2019-07-26 2021-02-04 华为技术有限公司 Cross-chain transaction method and apparatus
CN112308713A (en) * 2019-07-26 2021-02-02 华为技术有限公司 Cross-chain transaction method and device
CN110866753B (en) * 2019-10-24 2021-04-06 腾讯科技(深圳)有限公司 Third party settlement control method and device, electronic equipment and storage medium
CN111090891B (en) * 2020-03-23 2020-06-19 卓尔智联(武汉)研究院有限公司 Notary selection method and notary selection system based on block chain
CN112085598A (en) * 2020-08-12 2020-12-15 长沙理工大学 Transaction chain and electric energy chain data interaction circuit for multi-centralization physical security check
CN111932271A (en) * 2020-08-13 2020-11-13 四川长虹电器股份有限公司 Community resource transaction method based on block chain
CN112200573B (en) * 2020-10-14 2021-08-17 北京天德科技有限公司 Block chain transaction design method capable of rolling back
CN112491959B (en) * 2020-10-28 2023-03-24 杭州趣链科技有限公司 Cross-link resource exchange method, device and system based on relay link
CN114782043B (en) * 2021-08-05 2023-03-28 北京天德科技有限公司 Safety transaction system and safety transaction method based on multiple chains

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160292680A1 (en) * 2015-04-05 2016-10-06 Digital Asset Holdings Digital asset intermediary electronic settlement platform
US20160342989A1 (en) * 2015-05-21 2016-11-24 Mastercard International Incorporated Method and system for processing blockchain-based transactions on existing payment networks
US20170031676A1 (en) * 2015-07-27 2017-02-02 Deja Vu Security, Llc Blockchain computer data distribution
WO2017066002A1 (en) * 2015-10-17 2017-04-20 Banqu, Inc. Blockchain-based identity and transaction platform
US20170132630A1 (en) * 2015-11-11 2017-05-11 Bank Of America Corporation Block chain alias for person-to-person payments
US20170177898A1 (en) * 2015-12-16 2017-06-22 International Business Machines Corporation Personal ledger blockchain

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015142765A1 (en) * 2014-03-17 2015-09-24 Coinbase, Inc Bitcoin host computer system
CN106503992A (en) * 2016-10-18 2017-03-15 北京天德科技有限公司 A kind of block chain that Transaction Information and accounts information are stored respectively
CN106528775B (en) * 2016-10-28 2020-01-03 济南大学 Private block chain operation support system supporting logic multi-chain and working method thereof
CN106780032A (en) * 2016-12-16 2017-05-31 杭州云象网络技术有限公司 A kind of block chain interchain assets transfer method under multichain scene
CN107301600B (en) * 2017-06-23 2021-07-20 北京天德科技有限公司 Core construction method of block chain Internet model for cross-chain transaction

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160292680A1 (en) * 2015-04-05 2016-10-06 Digital Asset Holdings Digital asset intermediary electronic settlement platform
US20160342989A1 (en) * 2015-05-21 2016-11-24 Mastercard International Incorporated Method and system for processing blockchain-based transactions on existing payment networks
US20170031676A1 (en) * 2015-07-27 2017-02-02 Deja Vu Security, Llc Blockchain computer data distribution
WO2017066002A1 (en) * 2015-10-17 2017-04-20 Banqu, Inc. Blockchain-based identity and transaction platform
US20170132630A1 (en) * 2015-11-11 2017-05-11 Bank Of America Corporation Block chain alias for person-to-person payments
US20170177898A1 (en) * 2015-12-16 2017-06-22 International Business Machines Corporation Personal ledger blockchain

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11861729B2 (en) 2017-05-24 2024-01-02 State Farm Mutual Automobile Insurance Company Fault determination of blockchain subrogation claims
US11783425B2 (en) 2017-05-24 2023-10-10 State Farm Mutual Automobile Insurance Company Blockchain subrogation payments
US11710190B2 (en) 2017-05-24 2023-07-25 State Farm Mutual Automobile Insurance Company Blockchain subrogation claims with arbitration
US11556994B1 (en) 2017-05-24 2023-01-17 State Farm Mutual Automobile Insurance Company Blockchain subrogation payments
US11501383B1 (en) 2017-05-24 2022-11-15 State Farm Mutual Automobile Insurance Company Fault determination of blockchain subrogation claims
WO2019141984A1 (en) * 2018-01-17 2019-07-25 SETL Development Limited Interaction between blockchains
US11216813B1 (en) * 2018-01-30 2022-01-04 United States Automobile Association (USAA) Business-to-business netting
CN109873861B (en) * 2019-01-11 2022-04-12 平安科技(深圳)有限公司 Cross-block chain node interaction method and device, storage medium and electronic equipment
CN109873861A (en) * 2019-01-11 2019-06-11 平安科技(深圳)有限公司 The exchange method and device, storage medium and electronic equipment of transregional piece of chain node
US10977135B2 (en) 2019-03-18 2021-04-13 Advanced New Technologies Co., Ltd. Consensus system downtime recovery
US10922195B2 (en) 2019-03-18 2021-02-16 Advanced New Technologies Co., Ltd. Consensus system downtime recovery
US11347598B2 (en) 2019-03-18 2022-05-31 Advanced New Technologies Co., Ltd. Consensus system downtime recovery
US10938750B2 (en) 2019-03-18 2021-03-02 Advanced New Technologies Co., Ltd. Consensus system downtime recovery
CN111095325B (en) * 2019-04-12 2023-10-27 创新先进技术有限公司 Parallel execution of transactions in a distributed ledger system
CN111095325A (en) * 2019-04-12 2020-05-01 阿里巴巴集团控股有限公司 Parallel execution of transactions in a distributed ledger system
CN110727712B (en) * 2019-10-15 2021-06-04 腾讯科技(深圳)有限公司 Data processing method and device based on block chain network, electronic equipment and storage medium
CN110727712A (en) * 2019-10-15 2020-01-24 腾讯科技(深圳)有限公司 Data processing method and device based on block chain network, electronic equipment and storage medium
CN111199400A (en) * 2019-12-31 2020-05-26 北京笔新互联网科技有限公司 Safety monitoring method and device for block chain network
CN111245840A (en) * 2020-01-14 2020-06-05 北京工业大学 Inter-block chain cross-chain information transmission control system
CN111245840B (en) * 2020-01-14 2021-12-24 北京工业大学 Inter-block chain cross-chain information transmission control system
CN112202863B (en) * 2020-09-24 2022-09-20 成都质数斯达克科技有限公司 Data synchronization method and device, electronic equipment and readable storage medium
CN112202863A (en) * 2020-09-24 2021-01-08 成都质数斯达克科技有限公司 Data synchronization method and device, electronic equipment and readable storage medium
US20220108316A1 (en) * 2020-10-01 2022-04-07 ExtoLabs, LLC Leveraging Tamper-Resistant Hardware to Transfer Digital Currency between Local Devices
WO2022143798A1 (en) * 2020-12-30 2022-07-07 杭州趣链科技有限公司 Method for verifying cross-chain transaction, and terminal device and readable storage medium
WO2022195448A1 (en) * 2021-03-16 2022-09-22 Stucchi Antonio Distributed cryptographic system to archive data comprising a multiplicity of autonomous sets of blockchains
IT202100006242A1 (en) * 2021-03-16 2022-09-16 Antonio Stucchi DISTRIBUTED CRYPTOGRAPHIC SYSTEM TO STORE DATA INCLUDING A MULTIPLE SET OF AUTONOMOUS BLOCKCHAIN
US11461861B1 (en) 2021-06-03 2022-10-04 State Farm Mutual Automobile Insurance Company Net settlement of subrogation claims using a distributed ledger
US11922526B2 (en) 2021-06-03 2024-03-05 State Farm Mutual Automobile Insurance Company Net settlement of subrogation claims using a distributed ledger

Also Published As

Publication number Publication date
CN107248076A (en) 2017-10-13

Similar Documents

Publication Publication Date Title
WO2018232493A1 (en) A network of doubly-chained blockchains capable of cross-chain transactions
WO2018232494A1 (en) A network of blockchains capable of cross-chain transactions
US20220366416A1 (en) Temporary consensus networks in a resource transfer system
US20220391890A1 (en) Private networks and content requests in a resource transfer system
US20190354518A1 (en) Chain mesh network for decentralized transaction systems
CN105573828B (en) A kind of operation processing method and device
US20230040935A1 (en) One way functions in a resource transfer system
WO2020059865A1 (en) Settlement system, settlement method, user device, and settlement program
CN108881187A (en) A kind of across chain data transferring method and equipment suitable for permitting chain scene
WO2018223215A1 (en) Scalable trading platform using central bank issued digital currency
US20220351177A1 (en) Hold condition in a resource transfer system
US20200356991A1 (en) Method And Apparatus For Execution Of Atomic Transactions
US20220284011A1 (en) Distributed blockchain transaction system
EP3624415A1 (en) A decentralized asset custody and clearing platform system
US20220350658A1 (en) Transfer costs in a resource transfer system
CN109859043B (en) Transaction clearing method and transaction clearing system
CN111640017A (en) Transaction correctness verification method and device applied to alliance chain cross-chain transfer
US20160342984A1 (en) Loop transfer in a resource transfer system
AU2022215275A1 (en) Temporary consensus networks in a resource transfer system
GB2578168A (en) Computer-implemented method and system for digital signing of transactions
US20100088384A1 (en) Automated digital matching of messages
CN108762895B (en) Method and device for processing distributed transaction
JP2022544321A (en) Method and system for decentralized transaction communication protocol
CN112070498A (en) Ownership processing system and method
CN116415955A (en) Cross-chain transaction method and system based on combination of hash locking and notary

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18819710

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18819710

Country of ref document: EP

Kind code of ref document: A1