The present invention relates to a system and a method for performing exchanges of digital data records among a plurality of distributed databases. More specifically, the present invention relates to a technology agnostic atomic swap system platform configured to perform atomic swap transactions of digital data records among a plurality of distributed ledger technology platforms.
Distributed ledger technology (DLT) platforms based on blockchain technology are widely known for their use in decentralised networks for the implementation of cryptocurrency applications. However, the fundamental blockchain technology and the use of DLT platform can be used in a range of new system applications that go beyond the cryptocurrency domain, such as to secure transaction between different systems in a centralised and/or decentralised distributed network, which may involve an atomic swap of digital records among a plurality of DLT platforms.
Atomic swap is a well-known concept in the cryptocurrency community, and involves the swap or exchange of digital assets, such as cryptocurrencies, between parties. For the swap transaction to be considered as “atomic” it requires that it is executed either at all nodes of the distributed network or at none, and that the result is the same for all of them. In an atomic swap system, the execution of an atomic swap of digital assets involves the use of a hash time-locked smart contract, which necessitate that the parties involved deliver the digital asset to be swapped within a specified time, or else the transaction will be cancelled.
In an atomic swap, each DLT platform may process the atomic swap transaction and independently obtain a local and/or global consensus on the validity of the transaction. A global consensus system may be used to obtain a consensus on the validity of the transaction. To obtain a consensus from the global consensus system requires that each DLT platform transmits its current local state or local state changes occurred from processing a submitted transaction.
However, there are certain disadvantages with current solutions for performing atomic swap transactions that limit their widespread adoption. These disadvantages mainly relate to the long delays experienced when executing atomic swap transactions, and compatibility issues when integrating heterogeneous DLT platform configurations to a global consensus platform for transaction ordering and timestamping.
It is an object of the present invention to provide an atomic swap system and a method for performing atomic swap transactions that overcome the disadvantages of existing solutions.
It is another object of the invention to provide a distributed ledger (DLT) communication module configured to connect DLT platforms of different technologies to a global consensus module for consensus ordering and timestamping.
According to a first aspect of the present invention, a distributed ledger, DLT, communication module is provided, which is configured for connecting a distributed ledger technology, DLT, platform with a global consensus module for consensus ordering and timestamping, wherein the DLT communication module comprising:
a state adopter module configured to retrieve and push to the global consensus module transactions submitted to the DLT platform, the transactions at least referencing local states and/or local state changes of the DLT platform; and a status provider module configured to maintain and track the transactions processed by the global consensus module;
wherein the state adopter module is configured to search in the status provider module for processed transactions containing any of the local states and/or local state changes referenced in the submitted transactions, and upon finding matching transactions notifying the at least one DLT platform of the valid processing of the submitted transactions by the global consensus module.
The present invention provides a DLT communication module for connecting DLT platforms of different technologies to a global consensus module, which enables for local DLT states or local state changes to be transferred from private DLT platform and the global consensus module. The DLT communication module is configured to create a communication link between the private DLT platform and the global consensus module to enable the transfer of local DLT states and/or local DLT state changes. The DLT communication module is configured, by mean of the state adopter module to retrieve and push transactions submitted to the DLT platform. Depending on the configuration of the DLT platform, the transactions retrieved by the state adopter module may contain, the details of the atomic swap transaction, and/or the local states of the DLT platform, and/or the local state changes of the DLT. The DLT communication module may be operated in at least two modes:
According to embodiments of the present invention, the state adopter module comprises a local state communication module configured to retrieve transactions submitted to the DLT platform. The local communication module comprising a communication protocol library comprising a plurality of communication protocols, each associated with a DLT platform configuration. According to embodiments of the present invention, the local communication module is configured to identify the communication configuration of the connected DLT platform and accordingly select a compatible communication protocol from the communication protocol library to enable the exchange of information. The local communication module is configured to convert the format of information exchanged between the connected DLT platform and the global consensus module.
The DLT communication module of the present invention is provided with a communication protocol library, which contains communication configuration information for different DLT platforms. The communication module is configured to detect, or receive, information on the configuration of the DLT platformed to be connected to the global consensus module and accordingly select from the protocol library the corresponding communication protocol to establish the communication interface between the private DLT platform and the global consensus module. For example, before each new DLT platform is integrated to the system, first, it has to present itself and its intention to join the ecosystem e.g. the atomic swap ecosystem to perform atomic swap transactions. Furthermore, each DLT needs to provide details of at least one of: its transaction checker (TC) nodes set, current state of the ledger, and its assets to the Global consensus module, which check the validity of the TC set and current state of the ledger. Each DLT chooses whether the local consensus is delegated to the Global consensus module or it is reached locally in the DLT, and accordingly the Global consensus module determine whether to integrate the TC set of each DLT to the ecosystem. Communication protocol specification procedure is executed between DLT and the communication module. This procedure consists steps including but not limited to deciding which internet transmission protocol to use (e.g. TCP, UDP, multicast, unicast etc.), setting up the Public Key Infrastructure, setting up the encryption/decryption mechanism, and, setting up a common encoding/decoding scheme. Therefore, with the provision of the DLT communication module of the present invention, it is possible to perform atomic swaps of assets among heterogenous DLT platforms that reach global consensus and ordering of transactions.
According to embodiments of the present invention, the state adopter module comprises a DLT state checking module configured to search in the status provider module for historical transactions consuming any of the DLT local states associated with the submitted transaction, and to compare the unique consensus orders and timestamps of any historical transaction identified as consuming any of the DLT local states to detect previous attempts for consuming the DLT local states associated with the submitted transaction. According to embodiments of the present invention the DLT state checking module is configured for retrieving information on consumed DLT local states from a local DLT consensus module. According to embodiments of the present invention, the DLT state checking module is configured upon detecting that the local states associated with the submitted transaction have been consumed by a previous transaction, the state adopter module is configured to notify the distributed ledger platform to reject the submitted transaction, otherwise the state adopter module is configured to notify the DLT platform to validate the submitted transaction.
In the case, where the connected private DLT platform delegates the consensus to a global consensus module, the current DLT local state of the DLT needs to be transferred to the global consensus module together with the information on the submitted atomic swap transaction. The DLT communication module, in order to prevent double-spending of the DLT states referenced by the atomic swap transaction, checks by means of the DLT state checker in the status provider module for consensus order and timestamps of historic transactions processed by the global consensus module that include the states references by the submitted atomic swap transaction, and accordingly notify the corresponding DLT platform to either accept or refuse the atomic swap transaction. In this way, it may be possible to prevent attempts to double-spend the states of a connected DLT platform, leading to fraudulent behaviour. Therefore, with the DLT communication module of the present invention, it is possible to detect invalid transactions, which may have otherwise been validly processed by the DLT platform.
According to embodiments of the present invention, the status provider module is a mirroring computing node configured to push global DLT state changes of the global consensus module to the state adopter module.
The status provider may be a computing node, such as a mirroring node, that tracks the transactions processed by the global consensus modules. The status provider may further be configured to store the processed transactions, thus generating a searchable archive. The status provider may be in the form of a computing node that duplicates the operation of the global consensus module, thereby providing access to the processed transactions.
According to a second aspect of the present invention, an atomic swap engine may be provided for orchestrating the exchange of digital records involved in an atomic swap transaction between at least one initiator party and at least one collaborator party, the digital records involved in the atomic swap transaction being stored in corresponding DLT platforms associated with the at least one initiator party and at least one collaborator party, the atomic swap system comprising:
a connector module configured to process and execute atomic swap transaction requests received from at least one initiator party via a client application involving the exchange of digital records stored in at least one initiator party DLT platform and digital records stored in at least one collaborator party DLT platform;
a global consensus module configured to validate, record and track state changes of the connected DLT platforms participating in the atomic swap transactions;
a plurality of DLT communication module according to the first aspect of the present invention, each communicatively coupling a DLT platform to the global consensus module;
wherein upon receiving via a client application software a notification from the at least one collaborating party that the atomic swap transaction is accepted, the connector module is configured to:
locate and validate the digital records referenced in the atomic swap request in the corresponding initiator party DLT platform and collaborator party DLT platform,
execute the atomic swap transaction by assigning the digital records in the initiator DLT platform to the at least one collaborating party and the digital records in the collaborating DLT platform to the at last one initiator party, and locking the exchanged digital records in the corresponding initiator and collaborator DLT platforms,
request the at least one initiator party DLT platform to push, via the corresponding DLT communication module, the DLT local state change introduced by the execution of the atomic swap transaction to the global consensus module; and
upon receiving a confirmation from the corresponding DLT communication module that the atomic swap transaction is validly processed by the global consensus module, to transfer to the at least one initiator party and at least one collaborator party a key to release the exchanged digital records in the corresponding DLT platforms.
The atomic swap engine (ASE) disclosed by the present invention, offers at least the following advantages:
According to embodiments of the present invention, the atomic swap engine comprises a cryptographic module configured to anonymise the retrieved transactions. For example, the cryptographic module is configured to anonymize the retrieved transaction by removing and/or obfuscating sensitive information attributed to a specific data subject. Furthermore, the cryptographic module may be configured to hash and/or encrypt the retrieved transactions.
The cryptographic module may perform a number of different operations to ensure that any sensitive information exchanged between each private DLT platform and the global consensus module is cryptographically secured. The cryptographic module may perform the operations of:
Data Obfuscation for masking private data with modified new content.
Data Encryption for the conversion of private input data to encoded format such that only authorized parties can access to the private data.
Data Pseudonymization and Anonymization refers to set of operation performed on input data to ensure that processed private data may no longer be attributed to particular data subject.
Data hashing: the application of hash functions to data, e.g. a cryptographic hash function, which is a cryptographic one-way function, to map arbitrary size input to fixed-size output hash. An important property of cryptographic hash functions is they are practically infeasible to invert, i.e. calculate/find input of a hash function from its output hash.
The cryptographic module may be used in the process of locking the digital records during an atomic swap transaction, using a set of cryptographic hash functions to prevent the owner of a digital record in an atomic swap transaction to unlock the digital assets before a set of specified conditions are met. For example, in Hashed Time Lock Contract (HTLC), which is type of smart contract on DLTs that is used to perform atomic swaps, the digital assets to be swapped may be locked to users with time-bounds using hash locks and time locks, by exploiting cryptographic techniques such as cryptographic hash functions and cryptographic signatures.
According to embodiments of the present invention, wherein the connector module is configured to lock the exchanged digital records using a state hash value key generated by means of the cryptographic module from a hash function obtained from a state change of the at least one initiator DLT platform. The cryptographic module is configured to generate separate state hash value keys for the at least one initiator party and at least one collaborator party to inlock the respective swapped digital records. For example, the initiator party key may be generated based on the state hash value and a reference to the state changes of the global consensus module distributed ledger platform.
According to embodiments of the present invention, wherein the connector module is communicatively coupled to an escrow module configured to lock the digital records involved in the atomic swap transaction. The escrow module comprising a smart contract programme operating on each connected DLT platform, which is configured to lock the digital records with time-bounds using hash locks and time locks generated from cryptographic hash functions and cryptographic signatures. For example, the escrow module is configured to release the locked digital records upon certain conditions of the atomic swap execution are satisfied. The escrow module may be part of the DLT platform or installed when the DLT platform is integrated to the Atomic Swap Engine (ASE).
The connector module enables the locking of the digital records to be swapped to the corresponding party. By locking the digital records, several swap transactions may occur simultaneously, or at least substantially simultaneously, between multiple parties. Digital record locking may be performed by an escrow module, which may be configured to execute in each of the DLT platforms participating in the swap a smart contract, which locks the digital records referenced in the atomic swap transaction. The smart contract may lock the digital records with time-bounds using hash locks and time locks generated from cryptographic hash functions and cryptographic signatures e.g. from the cryptographic module. The smart contract performing the locking function may be downloaded and installed in the corresponding DLT platform by each party wishing to initiate or participate in an atomic swap transaction. The smart contract may be removed from the DLT platform once the atomic swap transaction has been completed or maintained for future use. The smart contract may be a Hashed Time Lock Contract (HTLC). A HTLC locks assets to users with time-bounds using hash locks and time locks, by exploiting cryptographic techniques such as cryptographic hash functions and cryptographic signatures.
According to embodiments of the present invention, the global consensus module comprises a global committee selection module configured for selecting Transaction Checker (TC) nodes from connected DLT platform to form a set of global transaction consensus nodes participating in the validation, recording and tracking of state changes of the connected DLT platforms participating in the atomic swap transactions.
The global committee module selects transaction checker (TC) nodes from all connected DLT platform to form the global transaction consensus nodes that would participate in the global consensus for ordering and timestamping transactions. The global committee module may perform at least the following function:
The global consensus module is configured to validate a transaction using the TC nodes selected by the global selection committee modules, which selected TC nodes form a distributed global consensus protocol. As a result, TC nodes with a malicious behaviour, would not affect the behaviour of the remaining TC nodes in the global consensus protocol. In this way, the global consensus module may act as a trusted body for validating local transactions in private DLT platforms.
According to embodiments of the present invention, the global committee module may select TC nodes based on a number of parameters that are defined according to and satisfy various fault tolerance (e.g. crash fault tolerance, byzantine fault tolerance, asynchronous byzantine fault tolerance) or rational behaviour models (e.g. selection models derived from Game Theory that encourage the TCs to maximize some utility function). For example, the selection may be based on game theory, whereby the global committee module selects TC nodes based on parameters that enable Rational Behaviours. Rational Behaviour describes behaviour and set of actions taken by a TC node to promote its own interest most efficiently, whether fair or malicious according to the game theory principles. The analysis and modelling of rational behaviour in networked systems like DLTs may be performed using Game theory techniques, which may be implemented in the form of software package libraries. In general, rational behaviour, according to game theory principles, implies that every actor, in this case the TC node, of a system is motivated to maximise his own payoff. In a stricter sense, it implies that every player always maximizes his utility, thus being able to perfectly calculate the probabilistic result of every action.
According to embodiments of the present invention, the global committee module may select TC nodes based on fault tolerance theories, for example whereby TC nodes are selected based on strategies that satisfy Byzantine Fault Tolerance (BFT). As known in the art, Byzantine behaviour describes the behaviour and consequent set of actions of a node in a DLT that is malicious against the protocol. A node showing byzantine behaviour can act maliciously to perform invalid operations or behave inconsistently. Therefore, Byzantine Fault Tolerance (BFT): is a property of the global consensus module that requires that even in the presence of nodes showing byzantine behaviour, a distributed system will continue to operate correctly according to the protocol.
According to embodiments of the present invention, the global consensus module is configured to submit each transaction for validation to the global committee selection module to reach a validated state for accepting or rejecting the transaction, which validated state is recorded in a global distributed ledger platform. According to embodiments of the present invention, wherein the global consensus module is configured to link local state changes of each connected DLT platform to the global state changes of the global distributed ledger platform. The global consensus module is configured, via the global committee selection module, to push local state changes in the DLT platforms monitored by the selected TC nodes to global state changes in global distributed ledger platform of the Global Consensus module. As such, the global state of the Global Consensus module maintains either all local states (i.e. for DLTs that delegate local consensus to global consensus module) or connections to the local states (i.e. for DLTs that perform local state change and register them to global consensus module) of the distributed ledger platforms. Therefore, the global state of the global consensus module is updated with the submission of new local states. In this way, it is possible to prevent malicious attempts to double-spend previously consumed states of a DLT platform.
According to a third aspect of the present invention, an atomic swap method may be provided for performing an atomic swap transaction for the exchange of digital records between at least one initiator party and at least one collaborator party, the digital records involved in the atomic swap transaction being stored in corresponding DLT platforms associated with the at least one initiator party and at least one collaborator party, the atomic swap method comprising system:
communicatively coupling by means of at least one DLT communication module according to the first aspect of the present invention, each DLT platform participating in the atomic swap engine to a global consensus module;
processing and executing atomic swap transaction requests received from at least one initiator party via a client application involving the exchange of digital records stored in at least one initiator party DLT platform and digital records stored in at least one collaborator party DLT platform; and
validating at the global consensus module the atomic swap transactions;
wherein processing and executing an atomic swap transaction comprises:
locating and validating the digital records referenced in the atomic swap request in the corresponding initiator party DLT platform and collaborator party DLT platform;
executing the atomic swap transaction by assigning the digital records in the initiator DLT platform to the at least one collaborating party and the digital records in the collaborating DLT platform to the at last one initiator party, and locking the exchanged digital records in the corresponding initiator and collaborator DLT platforms,
requesting the at least one initiator party DLT platform to push, via the corresponding DLT communication module, the DLT local state change introduced by the execution of the atomic swap transaction to the global consensus module; and
transferring to the at least one initiator party and at least one collaborator party a key to release the exchanged digital records in the corresponding DLT platforms.
The following drawings are provided as an example to explain further and describe various aspects of the invention.
The present invention will be illustrated using the exemplified embodiments shown in the
As shown in
AssetX, AssetY-->AssetZ, AssetQ, which reads as: swap AssetX in exchange of AssetZ and AssetY in exchange of AssetQ. In this transaction, Alice and Bob are initiators, and, Carol and David are collaborators. Initiator parties Alice and Bob initiates the atomic swap operation with collaborator parties Carol and Dave through the Connector Module. As shown in
The ECM module 330 may be configured to perform asset locking operations in order to assist execution of the atomic swap transactions. The ECM module 330 may comprise a multiple signature Hashed Time Lock Contract (HTLC) that perform locking operations. The HTLC may be a type of a smart contract that is executed in each participating DLT to lock the digital records/assets referenced in the atomic swap transaction. In general, but not exclusively, the ECM module 330 is configured to perform at least the following operations:
The Reward/Penalties Module (RPM) may comprise a set of algorithm libraries for instantiating rewards and penalties to TCs nodes 310 when a malicious or honest behaviour is detected by the global consensus module of the ASE.
An example of how the CM 210 executes an atomic swap transaction is provided here with references to
The Cryptographic Toolbox (CT) 230 may be configured to secure information exchanged between the modules of the ASE platform 200. The CT 230 may consist of a set of cryptographic algorithms and libraries, which are used to perform a range of operations, such as Data Obfuscation, Data Encryption, Data Pseudonymization and Anonymization, and Data hashing.
It should be noted that although the DLT communication module 220 is presented herein as part of the ASE platform 200, it can be equally used as a stand-alone component to integrate private/permission DLT platforms, or other distributed databases to any global consensus module e.g. Hedera. An example of an execution flow is presented below for the integration of local states for a corda-HCS using a DLT communication module according to the present invention.
1. A transaction is submitted to the private Corda blockchain instance through a client application.
2. Corda invokes the selected notary(ies) (TC nodes 310) with the transaction to sign. Transaction contains all the states (I.e. objects that represent status of the ledger as shared facts) that are either used or merely referenced by that transaction.
3. SA module 221 fetches the transaction, and all submitted states from notary(ies).
4. SA module 221, by using Cryptographic Toolbox (CT) 230 anonymizes the transaction and its states.
5. SA module 221 submits the anonymized transaction and states to the HCS for global consensus.
6. HCS, by using the public Hedera network, gets a consensus order and the global timestamp for the transaction.
7. SA 221, by using an SP 222 component e.g. Kabuto, searches all transactions processed by the HCS that are consuming any of the same states used/referenced by the submitted transaction.
8. SA 221 compares the unique consensus orders and timestamps of the transactions that use/reference the states of the transaction.
9. SA 221, through notary service of the Corda, verifies whether the transactions that needs to be verified and signed by the notary was the first to attempt to spend all its states, and that its reference states have not yet been spent.
a. If this transaction is the first, then SA 221 notifies the Corda notary and notary signs the transactions. Now, the transactions are valid in the local private Corda blockchain.
b. If this transaction is not the first one that tried to use/reference the states, then SA 221 notifies the notary to reject the transactions. Then, client application that submitted the transaction gets notified by the Corda that the transactions is not notarized so it is not valid.
Parallelize the execution of atomic swap operations with multiple assets and parties, such that while one initiator party is interacting with its respective collaborator party, another initiator party can interact with its respective collaborator party. This is also a very nice technical feature that directly affects the performance and scalability of the protocol. To be decided if we want to stress it a lot in patent, comparative analysis document and any other technical document that will be the outcome of this.
guarantee correctness of the atomic swap, once the local state is shared with the GCR it can't be reverted. And if it is never shared with the GCR, atomic swap transaction is never executed.
According to embodiments of the present invention and exemplified scenario of a 1-to-1 atomic swap transaction is presented below. It should be noted that the example below may be also applied to multi-party atomic swap transactions.
As a perquisite, the Connector Module 210 is configured to punishes any user who tries to collude by aborting the transaction in between any two steps, by cutting some fee from deposited asset.
In general, the routines executed to implement the embodiments of the invention, whether implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions, or even a subset thereof, may be referred to herein as “computer program code,” or simply “program code.” Program code typically comprises computer readable instructions that are resident at various times in various memory and storage devices in a computer and that, when read and executed by one or more processors in a computer, cause that computer to perform the operations necessary to execute operations and/or elements embodying the various aspects of the embodiments of the invention. The computer readable program instructions for carrying out operations of the embodiments of the invention may be, for example, assembly language or either source code or object code is written in any combination of one or more programming languages.
The program code embodied in any of the applications/modules described herein is capable of being individually or collectively distributed as a program product in a variety of different forms. In particular, the program code may be distributed using the computer readable storage medium having the computer readable program instructions thereon for causing a processor to carry out aspects of the embodiments of the invention.
Computer readable storage media, which is inherently non-transitory, may include volatile and non-volatile, and removable and non-removable tangible media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data. Computer readable storage media may further include RAM, ROM, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other robust state memory technology, portable compact disc read-only memory (CD-ROM), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and which can be read by a computer. A computer-readable storage medium should not be construed as transitory signals per se (e.g., radio waves or other propagating electromagnetic waves, electromagnetic waves propagating through a transmission media such as a waveguide, or electrical signals transmitted through a wire). Computer readable program instructions may be downloaded to a computer, another type of programmable data processing apparatus, or another device from a computer readable storage medium or an external computer or external storage device via a network.
Computer readable program instructions stored in a computer readable medium may be used to direct a computer, other types of programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions that implement the functions/acts specified in the flowcharts, sequence diagrams, and/or block diagrams. The computer program instructions may be provided to one or more processors of a general-purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the one or more processors, cause a series of computations to be performed to implement the functions and/or acts specified in the flowcharts, sequence diagrams, and/or block diagrams.
In certain alternative embodiments, the functions and/or acts specified in the flowcharts, sequence diagrams, and/or block diagrams may be re-ordered, processed serially, and/or processed concurrently without departing from the scope of the invention. Moreover, any of the flowcharts, sequence diagrams, and/or block diagrams may include more, or fewer blocks than those illustrated consistent with embodiments of the invention.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the embodiments of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context indicates otherwise. It will be further understood that the terms “comprise” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. Furthermore, to the extent that the terms “includes”, “having”, “has”, “with”, “comprised of”, or variants thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising”.
While a description of various embodiments has illustrated all of the inventions and while these embodiments have been described in considerable detail, it is not the intention of the Applicants to restrict or in any way limit the scope of the appended claims to such detail. Additional advantages and modifications will readily appear to those skilled in the art. The invention in its broader aspects is therefore not limited to the specific details, representative apparatus and method, and illustrative examples shown and described. Accordingly, departures may be made from such details without departing from the spirit or scope of the Applicants general inventive concept.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2020/052768 | 2/4/2020 | WO |