This application claims the benefit of European Priority Patent Application EP18155717.4 filed Feb. 8, 2018, the entire contents of which are incorporated herein by reference.
The present disclosure generally pertains to the field of electronic data storage, in particular to the storage of transactions in a distributed ledger such as a blockchain.
A distributed ledger may for example be a distributed database, for example a distributed database that maintains a continuously growing list of data records secured from tampering and revision such as a blockchain. A blockchain consists of blocks that hold timestamped batches of valid transactions. In the following, the term transaction generally refers to a data entity that is stored as a record on the distributed ledger. A transaction may for example reflect a money transfer, a smart contract, an asset, or the like.
Blockchain technology can for example be used to track the history of money transactions (e.g. bitcoins), or it may be used to track or manage individual devices, by recording a ledger of data exchanges between the devices. Tracking or managing devices is also known under the term “Internet of Things” (IoT).
A large group of IoT devices may maintain a distributed ledger, e.g. a blockchain to record transactions (e.g. execute smart contracts). In such case, the nodes accessing the distributed ledger are devices. It may happen that a subgroup of nodes gets disconnected for a substantial amount of time from another subgroup of nodes. This subgroup may continue to maintain a distributed ledger. In such scenario, the distributed ledgers of the subgroups of nodes evolve separately. A subgroup of devices that evolves separately from the original group is also denoted as a “fork” of the original group.
A connection between two separate distributed ledgers may form when nodes contributing to the distributed ledgers establish a connection. In such case, the distributed ledgers may be merged. However, it is not clear that there is a basis for a merger and sharing may reveal sensitive information.
For Internet-of-Things (IoT) applications, a large group of devices may operate a distributed ledger or blockchain. The consensus mechanism in such distributed ledger may be based on either a consensus algorithm or a mining process.
Although there exist distributed ledger techniques, it is generally desirable to make distributed ledger techniques more reliable and secure.
According to a first aspect, the disclosure provides a method comprising determining if two separated distributed ledgers share a common history.
According to a further aspect, the disclosure provides a method comprising adapting the consensus mechanism of a distributed ledger change to the new size of the distributed ledger in the case that the number of nodes contributing to the distributed ledger changes.
According to a further aspect, the disclosure provides a system comprising one or more nodes that are configured to implement a distributed ledger and to determine if a separated distributed ledger shares a common history.
According to a further aspect, the disclosure provides a system comprising one or more nodes that are configured to implement a distributed ledger, the consensus mechanism of which depends on the current number of nodes available to the distributed ledger. Further aspects are set forth in the dependent claims, the following description and the drawings.
Embodiments are explained by way of example with respect to the accompanying drawings
In the embodiments described below, a local copy of a distributed ledger is stored on nodes accessing the distributed ledger. On a periodical basis, each node determines which group of nodes can be reached from that node. Connection between nodes may be established, terminated and reestablished. This may lead to subgroups of nodes that are in direct communication but which are not on direct communication with nodes of other subgroups. Subgroups of nodes may continue to record transactions on the distributed ledger. However, only transactions involving assets of the nodes included in a subgroup are considered valid. This effectively creates a fork of the distributed ledger for the subgroup.
In the embodiments, a method is disclosed comprising determining if two separated distributed ledgers share a common history. For example, if it is determined that two separated distributed ledgers share a common history, it may be concluded that the two distributed ledgers are forks of the same original distributed ledger.
A common history may for example relate to specific transactions or blocks of transactions that are stored in both distributed ledgers. In the case of blockchains, a common history may for example be reflected by historic blocks that two blockchains share.
Determining if two separated distributed ledgers share a common history may comprise using a challenge response authentication scheme. The challenge response authentication scheme may be configured to base challenges on the content of a distributed ledger. For example, as a challenge, a distributed ledger may be requested to return a hash of a block of the distributed ledger.
The distributed ledger to which the request is directed may then return the hash of the block of the distributed ledger. The distributed ledger that issued the request may check if the returned hash is correct, and establish that the two distributed ledgers share a common history based on one or more of such challenge requests.
The method may further comprise merging the two distributed ledgers if the determination has revealed that the two distributed ledgers are forks of the same original distributed ledger. For example, once a first group of nodes reestablishes a connection with a second group of nodes, the transactions that have occurred in the first group of nodes may be announced to the second group of nodes, and/or vice-versa.
Determining if two forks share a history may be carried out in the case that a communication between two forks of a distributed ledger is reestablished. The methods described in the embodiments may allow that distributed ledgers are merged based on their shared history without revealing privacy-sensitive information before the merge.
If the nodes of a distributed ledger are split up into several disconnected groups, as described above, this may lead to separated distributed ledgers of different sizes. Subgroups of devices may lose connection to the main distributed ledger for a substantial amount of time. However, these subgroups may want to continue maintaining a distributed ledger. The setting of a small group of devices may have implications for the reliability of the consensus approach used for the distributed ledger. For instance, when the distributed ledger uses a mining approach for consensus, a small group of devices may not have enough computational power to perform mining. On the other hand, running a consensus algorithm may not be adequate in case a large majority of the subgroup is controlled by a single entity.
Accordingly, the embodiments also disclose a method comprising adapting the consensus mechanism of a distributed ledger change to the new size of the distributed ledger in the case that the number of nodes contributing to the distributed ledger changes. A consensus mechanism may for example be based on a proof of work (e.g. a mining process), or it may be based on a consensus algorithm such as a Byzantine fault tolerance algorithm, or the like.
For example, the consensus mechanism of a distributed ledger may be adapted in the case that the number of nodes contributing to a distributed ledger changes from a large group of nodes to a small group of nodes.
Adapting the consensus mechanism may comprise switching from mining to a consensus algorithm such as the Byzantine fault tolerance algorithm. For example, when a large group of nodes, which uses mining to achieve consensus, is split up into smaller groups of nodes, and a smaller group of nodes does not have enough computational power to perform mining, the consensus mechanism may be switched to a consensus algorithm such as the Byzantine fault tolerance algorithm.
Alternatively, adapting the consensus mechanism may comprise lowering the complexity of a mining process. For example, when a large group of nodes, which uses mining to achieve consensus, is split up into smaller groups of nodes, and a smaller group of nodes does not have enough computational power to perform mining at the complexity defined in the original distributed ledger, the complexity of the mining process may be lowered.
Once a small group of nodes reestablishes a connection with a large group of nodes, the transactions that have occurred may be announced to the large group of nodes as it was described above. The overall set of nodes may then incorporate these transactions and other changes that have occurred.
The embodiments thus may provide a mechanism for a group of nodes that loses connection from a distributed ledger to continue using its distributed ledger in a feasible manner. Once connection is reestablished, any transaction can be announced and incorporated into the overall distributed ledger.
The embodiments also disclose a system comprising one or more nodes that are configured to implement a distributed ledger and to determine if two separated distributed ledgers share a common history.
The embodiments further disclose a system comprising multiple nodes that are configured to implement a distributed ledger the consensus mechanism of which depends on the current number of nodes available to the distributed ledger.
A node of a distributed ledger may be any electronic device, e.g. a personal computer, a work station, a mobile computing device such as a smartphone, a tablet computer, or the like. An electronic device that acts as node of a distributed ledger may for example comprise a CPU, a storage unit (e.g. a hard drive or SSD), a memory unit (e.g. a RAM), input/output interfaces such as an Ethernet interface, a WiFi interface or the like, and user interfaces such as a keyboard, a display, a loudspeaker, and/or a microphone.
In
Connection between nodes may be established, terminated and reestablished. This may lead to subgroups of nodes that are in direct communication but which are not in direct communication with nodes of other subgroups.
In
According to
In
As shown above, two distributed ledgers that share the same history may evolve independently over time after a fork has occurred. Once nodes of two separated distributed ledgers establish a connection, it may make sense to merge their respective content. However, simply sharing the distributed ledgers may reveal sensitive and private information.
According to the embodiments described below in more detail, the content of a distributed ledger may be used to construct an authentication scheme with which it can be decided if two distributed ledgers should be merged. A process that may be implemented by a distributed ledger to implement such authentication process is now further described with reference to
As shown in
As shown in
As shown in
In the embodiment described below in more detail, this may be solved in two ways. First, the complexity of the mining operation may be lowered by a factor that corresponds to the factor of reduction in computational power. In such a way, the mining process for a subgroup of devices is able to finish in a timely manner. Second, the mining process may be switched to a consensus algorithm such as the Byzantine fault tolerance protocol.
Disconnected subgroups continue to maintain a local distributed ledger or blockchain. Once a subgroup reestablishes connection to a larger group of devices, the transaction incorporated in the distributed ledger of the subgroup may be announced to the larger group and incorporated. The latter may be performed by the original consensus mechanism of the large group of devices.
A process that may be implemented once device group A loses its connection to device group B is now further described with reference to
At 501, the nodes of group A (distributed ledger A) determine the cumulative mining capabilities. At 502, the nodes of distributed ledger A determine the expected mining time based on the cumulative mining capabilities determined at 501. At 503, the nodes of distributed ledger A determine whether the cumulative mining capabilities are sufficient to support adding new transactions to the distributed ledger within acceptable time. If the cumulative mining capabilities are sufficient to support adding new transactions to the distributed ledger within acceptable time, the process continues at 505. Otherwise, the process continuous at 504. At 504, the nodes in group A switch to a consensus mechanism. At 505, the nodes in group A keep their original consensus mechanism. At 506, nodes in group A continue adding transactions to the distributed ledger. During this time, the nodes act as an independent group and maintain a distributed ledger.
When a connection to node group B is reestablished, device group A may announce the transactions that have occurred to device group B and these transactions may be incorporated into the overall distributed ledger that is shared between node group A and node group B. In a similar way, node group B may announce transactions that are also incorporated in the distributed ledger to node group A.
The following table provides an example configuration of adapting a consensus algorithm:
It has been described above that nodes of a distributed ledger may be represented by electronic devices.
It should be noted that the description above is only an example configuration. Alternative configurations may be implemented with additional or other sensors, storage devices, interfaces or the like. For example, in alternative embodiments, WiFi interface 605, microphone 610, display 612, and/or loudspeaker 611, or keyboard 613 may be omitted or replaced by other units.
The skilled person will readily appreciate that in so far it is described in the embodiments that a distributed ledger is performing some activity; it is generally understood that the nodes, i.e. the electronic devices that constitute the network, perform this action either in cooperation, or as subgroups of all devices, or as single devices. For example, a distributed ledger may create a set of challenges (e.g. 201 in
It should be recognized that the embodiments describe methods with an exemplary order of method steps. The specific order of method steps is, however, given for illustrative purposes only and should not be construed as binding. For example, the order of 501 and 503 in the embodiment of
It should further be recognized that the division of the electronic device 600 into units 601 to 613 is only made for illustration purposes and that the present disclosure is not limited to any specific division of functions in specific units. For instance, the electronic device 600 could be implemented by a respective programmed processor, field programmable gate array (FPGA) and the like.
The methods disclosed here can also be implemented as a computer program causing a computer and/or a processor (such as CPU 601 in
All units and entities described in this specification and claimed in the appended claims can, if not stated otherwise, be implemented as integrated circuit logic, for example on a chip, and functionality provided by such units and entities can, if not stated otherwise, be implemented by software.
In so far as the embodiments of the disclosure described above are implemented, at least in part, using a software-controlled data processing apparatus, it will be appreciated that a computer program providing such software control and a transmission, storage or other medium by which such a computer program is provided are envisaged as aspects of the present disclosure.
Note that the present technology can also be configured as described below.
(1) A method comprising determining if two separated distributed ledgers share a common history.
(2) The method of (1), wherein determining if two separated distributed ledgers share a common history comprises using a challenge response authentication scheme.
(3) The method of (2), wherein the challenge response authentication scheme is configured to base challenges on the content of a distributed ledger.
(4) The method of (2) or (3), wherein, as a challenge, a distributed ledger is requested to return a hash of a block of the distributed ledger.
(5) The method of anyone of (1) to (4), further comprising merging the two distributed ledgers if the determination has revealed that the two distributed ledgers are forks of the same original distributed ledger.
(6) The method of anyone of (1) to (5), in which the determining if two forks share a common history is carried out in the case that a communication between two forks of a distributed ledger is reestablished.
(7) A method comprising adapting the consensus mechanism of a distributed ledger to a new size of the distributed ledger in the case that the number of nodes contributing to the distributed ledger changes.
(8) The method of (7), wherein adapting the consensus mechanism comprises switching from mining to a consensus algorithm such as the Byzantine fault tolerance algorithm.
(9) The method of (7) or (8), wherein adapting the consensus mechanism comprises lowering the complexity of a mining process.
(10) The method of anyone of (1) to (6) comprising adapting the consensus mechanism of a distributed ledger to a new size of the distributed ledger in the case that the number of nodes contributing to the distributed ledger changes.
(11) The method of anyone of (1) to (6), wherein adapting the consensus mechanism comprises switching from mining to a consensus algorithm such as the Byzantine fault tolerance algorithm.
(12) The method of anyone of (1) to (6), wherein adapting the consensus mechanism comprises lowering the complexity of a mining process.
(13) A system comprising one or more nodes that are configured to implement a distributed ledger and to determine if a separated distributed ledger shares a common history.
(14) The system of (13), wherein the nodes are configured to use a challenge response authentication scheme to determine if the separated distributed ledger shares a common history.
(15) The system of (14), wherein the challenge response authentication scheme is configured to base challenges on the content of a distributed ledger.
(16) The system of (14) or (15), wherein, as a challenge, the separated distributed ledger is requested to return a hash of a block of the separated distributed ledger.
(17) The system of anyone of (13) to (16), wherein the one or more nodes are configured to merge the distributed ledger and the separated distributed ledger if the determination has revealed that the two distributed ledgers are forks of the same original distributed ledger.
(18) The system of anyone of (13) to (17), wherein the one or more nodes are configured to determine if two forks share a history in the case that a communication between two forks of a distributed ledger is reestablished.
(19) A system comprising one or more nodes that are configured to implement a distributed ledger, the consensus mechanism of which depends on the current number of nodes available to the distributed ledger.
(20) The system of (19), wherein the one or more nodes are configured to adapt the consensus mechanism of the distributed ledger to the new size of the distributed ledger in the case that the number of nodes contributing to the distributed ledger changes.
(21) The system of (19) or (20), wherein the one or more nodes are configured to switch from mining to a consensus algorithm such as the Byzantine fault tolerance algorithm in order to adapt the consensus mechanism.
(22) The system of (19) to (21), wherein the one or more nodes are configured to lower the complexity of a mining process in order to adapt the consensus mechanism.
(23) Electronic device comprising a processor configured to determine if two separated distributed ledgers share a common history.
(24) Electronic device comprising a processor configured to adapt the consensus mechanism of a distributed ledger to a new size of the distributed ledger in the case that the number of nodes contributing to the distributed 1 edger changes.
(25) Electronic device comprising a processor configured to implement the method of anyone of (1) to (12).
(26) A computer program comprising program code causing a computer to perform the method according to anyone of (1) to (12), when being carried out on a computer.
(27) A non-transitory computer-readable recording medium that stores therein a computer program product, which, when executed by a processor, causes the method according to anyone of (1) to (12) to be performed.
It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and alterations may occur depending on design requirements and other factors insofar as they are within the scope of the appended claims or the equivalents thereof.
Number | Date | Country | Kind |
---|---|---|---|
18155717.4 | Feb 2018 | EP | regional |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2019/053141 | 2/8/2019 | WO | 00 |