EP3617978A1 - Distributed database system comprising a plurality of database instances and method for operating the same - Google Patents
Distributed database system comprising a plurality of database instances and method for operating the same Download PDFInfo
- Publication number
- EP3617978A1 EP3617978A1 EP18191983.8A EP18191983A EP3617978A1 EP 3617978 A1 EP3617978 A1 EP 3617978A1 EP 18191983 A EP18191983 A EP 18191983A EP 3617978 A1 EP3617978 A1 EP 3617978A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- transaction
- confirmed
- database system
- distributed database
- instances
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000004590 computer program Methods 0.000 claims abstract description 8
- 230000015572 biosynthetic process Effects 0.000 claims description 6
- 238000009826 distribution Methods 0.000 abstract description 11
- 238000013461 design Methods 0.000 abstract description 3
- 238000012790 confirmation Methods 0.000 description 26
- 238000003860 storage Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 8
- 241000712062 Patricia Species 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q30/00—Commerce
Definitions
- the present invention relates to the field of distributed database systems, and more particularly, to a distributed database system with multiple database instances.
- a distributed database system implemented with blockchain technology, for example, transactions without a clearing house or a special relationship of trust between the transaction partners or a clearing house can be processed transparently and tamper-proof based on a consensus between the transaction partners.
- a transaction data record can include or reference program code that is executed in the distributed database system when the transaction is confirmed (so-called "smart contract").
- Such a distributed database system is suitable as a transparent, manipulation-protected IT infrastructure platform for controlling an industrial automation system.
- a distributed database system with multiple database instances is proposed.
- a respective one of the several database instances is formed by a number of node devices which are set up to jointly manage one of several transaction books of the distributed database system based on consensus.
- the distributed database system is set up to confirm a transaction to be confirmed by adding one or more of the several database instances to the transaction book.
- the distributed database system is set up to decide which of the several database instances is used to confirm the transaction to be confirmed.
- the application design can thus advantageously be simplified and an improved and automated distribution of a transaction load to be handled by the distributed database system can take place over the multiple database instances.
- the transaction book (“ledger") of a respective database instance of the distributed database system can be represented as a chain or path of confirmed blocks.
- a respective block comprises a number of transactions confirmed in the transaction book.
- the chaining can be formed by means of chaining checksums.
- a respective one of the number of node devices of the database instance can store a chain of confirmed blocks, which represents a consensus version of the transaction book of the database instance.
- the respective database instance can be a block chain or a block chain, such as a main chain or a side chain.
- a number means a number of one or more.
- a respective database instance is in particular a distributed database instance.
- the database system is set up for this” is to be understood in particular to mean that the database system can have a means that is set up to implement the respective functionality.
- a respective means can be a means provided separately or centrally, such as a separate device or unit.
- the respective means can be implemented in a decentralized or distributed manner.
- the respective means can be implemented by functionality of one or more of the multiple database instances.
- the respective means can be implemented by functionality of a respective node device of the plurality of node devices of the plurality of database instances.
- a preferred mode of operation of a respective database instance is briefly explained.
- the number of node devices of a respective database instance can be managed jointly and consensus-based in particular in the following manner in the transaction book of the database instance:
- a copy or representation of the transaction book of the respective database instance can be stored in the respective number of node devices.
- the transaction book comprises a chain of confirmed transactions.
- the transaction book comprises a chain of confirmed blocks, each confirmed block comprising a number of confirmed transactions.
- a block-forming node device of the number of node devices of the database instance can include the transaction to be confirmed in a block formed by it.
- the block-forming node device can check the transaction to be confirmed.
- the checking can in particular include the execution of a program code or smart contracts included in the transaction, which describes the transaction. If the check is successful, the block-forming node device can: secure the block formed against manipulation with a data block checksum; concatenate with a chaining checksum with the last confirmed block of the transaction book representation stored in the block-forming node device; provided with a proof value corresponding to the consensus rule, such as a proof-of-work, proof-of-stake; and provide the formed block as an unconfirmed block in the database instance.
- the proof value it may be necessary to use or keep a predetermined amount of resources, such as computing time, storage space or crypto tokens. This can serve as protection against subsequent manipulation.
- a plurality and preferably all of the number of node devices can check the unconfirmed block provided in the database.
- it can be checked whether the proof value corresponds to the consensus rule, whether the unconfirmed block can be linked to the representation of the transaction book stored in the verifying node device, whether the data block checksum is correct and whether the transactions to be confirmed contained in the unconfirmed block are valid same way as can be checked by the block forming device when forming the unconfirmed block. If the test is successful, the respective testing node device can activate the unconfirmed block attach the transaction book representation stored in it.
- the consensus rule implemented by the node devices of the database instance and taken into account in the respective checking can be set up in such a way that, despite the absence of a clearing house and despite the fact that not all of the node devices of the distributed database system communicate directly with one another and / or trust one another can form a majority consensus in such a way that in the majority and preferably all of the node devices the same representation of the transaction book of the database instance is stored, which in the present case is referred to as the "consensus version of the transaction book" or, for simplicity, as "the transaction book”.
- Provision in the database instance with regard to an unconfirmed or confirmed transaction and / or an unconfirmed block means in particular that the unconfirmed transaction or unconfirmed block is transmitted to at least one of the node devices of the database instance.
- the provided transaction to be confirmed or the provided unconfirmed block can be transmitted directly, indirectly or in a peer-to-peer manner to the rest of the node devices of the same database instance.
- “providing to the distributed database system” or “providing the distributed database system” with regard to an unconfirmed or to be confirmed transaction means in particular that the unconfirmed or to be confirmed transaction is to at least one of the node devices of one of the database instances of the distributed database system is transmitted from where it is transmitted directly, indirectly or in a peer-to-peer manner to the other of the node devices of other of the database instances can and preferably all of the node devices of all of the database instances can be transmitted.
- the transaction to be confirmed can in particular be an unconfirmed transaction provided to the distributed database system.
- the distributed database system makes the decision as to which of the several database instances the transaction to be confirmed is confirmed.
- the distributed database system decides in which one and / or in which of the several transaction books of the distributed database system the transaction to be confirmed is recorded as a confirmed transaction.
- the decision can be made centrally or distributed or based on consensus.
- the decision can be made explicitly before the transaction to be confirmed is made available for confirmation based on the decision to the one or more of the multiple database instances.
- the decision can be made implicitly.
- the transaction to be confirmed can be made available to a large number and preferably all of the multiple database instances, and the decision can be made implicitly with the confirmation or as a result of the confirmation of the transaction to be confirmed by the one or more database instances, as will be explained in more detail below becomes.
- the distributed database system is set up to decide, depending on a state of the respective database instance, by which of the several database instances the transaction to be confirmed is confirmed.
- the “state of the respective database instance” is to be understood in particular as an automatically measurable or otherwise determinable state that relates to the operation of the distributed one Database system or one or more of the multiple database instances affects.
- the distributed database system can, for example, be set up to determine the state depending on a number of parameters, such as: number of transactions confirmed in a given past time period per time unit in a respective database instance; current memory size of the transaction book of a respective database instance; current or time-averaged transaction and / or computing load of the respective database instance and the like.
- the decision based on the state can be made in such a way that the fastest possible confirmation, the best possible load distribution across the database instances, the most favorable distribution of the memory requirement of the respective database instance and the like can be achieved. This decision can also be made explicitly in advance or implicitly during or as a result of the confirmation.
- the distributed database system is set up to determine a computing load for each of the database instances and to decide that the transaction to be confirmed is confirmed by the one or more of the database instances with the lowest computing load.
- the load of each database instance can be an average load or a peak load of the number of node devices of the database instance.
- the load can in particular be a computing load, a transaction load or the like.
- the node devices of the database instance can regularly exchange load information with one another.
- the multiple database instances can regularly exchange load information with one another.
- a respective node device and a respective database instance can have information about a load of its own as well as the other of the several database instances.
- a respective one of the multiple database instances can be set up in such a way that it only confirms the transaction to be confirmed if the confirming database instance is the database instance with the lowest or one of the lowest loads among the multiple database instances.
- an explicit decision can advantageously be made which balances the load in the distributed database system.
- the distributed database system is set up to decide, depending on one or more references to the transaction to be confirmed, by which of the plurality of database instances the transaction to be confirmed is confirmed.
- a transaction to be confirmed can refer to past transactions (also referred to as "backward transaction").
- a crypto token transaction that transacts a crypto token from a sender wallet to a recipient wallet can refer to a past crypto token transaction in which the crypto token was transacted into the sender wallet for its authorization to transact the crypto token to document.
- the decision according to the present embodiment can be made implicitly when confirming that a database instance in which the reference of the transaction to be confirmed cannot be resolved (the related transaction is not in the transaction book of the database instance) cannot successfully check the transaction to be confirmed, while the database instance in which the back reference of the transaction to be confirmed can be resolved, the checking of the transaction to be confirmed is successful.
- the distributed database system is set up to only consider a particular database instance when deciding which of the plurality of database instances the transaction to be confirmed is valid if the database instance is specified by the transaction to be confirmed.
- a transaction to be confirmed provided to the distributed database system can specify from which or which of the database instances it is to be confirmed.
- a critical transaction to be confirmed can only specify those database instances which have a predefined minimum level of manipulation protection, in order to advantageously avoid them within the scope of the automated one Load balancing in a database instance with insufficient protection against manipulation.
- the distributed database system is set up to decide, by means of an automatic, decentralized consensus-building between the several database instances, by which of the several database instances the transaction to be confirmed is confirmed.
- a condition for the validity of a transaction or a block to be checked within the framework of the consensus rule of a respective database instance is that the transaction, in order to be confirmed as valid, must not yet be confirmed in any other of the database instances. This can be verified, for example, by inter-chain communication.
- a self-regulating distribution of the transaction load over several database instances can thus advantageously be realized.
- the distributed database system is set up to hold a number of unconfirmed transactions.
- a respective one of the multiple database instances is set up to select and confirm the transaction to be confirmed from the number of unconfirmed transactions held.
- the distributed database system is set up to remove the transaction to be confirmed from the number of unconfirmed transactions as soon as a defined number of Database instances has confirmed the transaction to be confirmed.
- the unconfirmed transaction can be a transaction that has been made available to the database system and is to be confirmed by the database system.
- the term "unconfirmed transaction” is used in particular to refer to a transaction for which it has not yet been decided which of the database instances it confirms, while the term “transaction to be confirmed” is used in particular to refer to a transaction or an instance or copy Identify a transaction selected by a database instance to confirm.
- to be held is to be understood in particular to mean that a pool (a held number) of the unconfirmed transactions is held in a central or decentralized storage means in such a way that each of the database instances (each of the node devices of each of the database instances) has access to them.
- a decentralized storage means can be understood, for example, to mean that an instance of the pool of unconfirmed transactions is stored at least one, preferably each, of the node devices of each of the database instances and information about the addition or removal of a transaction from the pool to peer-to-peer -Ways or the like are exchanged between the node devices of the database instances.
- the defined number of database instances that the transaction to be confirmed has confirmed, from which the transaction to be confirmed is removed from the pool of the unconfirmed transaction can be a predefined number and can be one or more.
- the defined number can be defined depending on the type, such as a given level of manipulation protection or the like, of the confirming database instance.
- the transaction to be confirmed can either be from the number of unconfirmed stocks Transaction are removed as soon as the transaction to be confirmed is confirmed by a main chain, or as soon as the transaction to be confirmed is confirmed by several side chains.
- the defined number of database instances can be defined by the transaction to be confirmed.
- the defined number of database systems by which the transaction to be confirmed is confirmed before it is removed from the pool of held unconfirmed transactions can be defined or specified by the transaction.
- a consensus rule of a respective one of the database instances is set up in such a way that remuneration for confirming the transaction to be confirmed is only given a number of times specified by the transaction to be confirmed.
- an incentive to confirm a transaction may be lost once the transaction has been assigned the specified number of times.
- it can also be advantageously chosen by an application designer by suitable selection the remuneration and the specified number of times are implicitly specified by how many database instances the transaction to be confirmed is to be confirmed.
- the database system is set up to synchronize the transaction books of the plurality of database instances with one another at predefined time intervals.
- a respective status which is defined by the sequence of transactions in the transaction book of the respective database instance, can be synchronized between the database instances at predefined time intervals.
- the predefined time interval can, for example, be predefined by the time interval which, according to the consensus rule of those of the database instances with the lowest block formation rate, elapses on average between the formation of one or a number of blocks. It should be noted that the predefined time interval can be an average value, which results in the statistical average, and the time intervals between two respective synchronization can vary.
- Such a regular synchronization between the several database instances can advantageously achieve that a new transaction to be confirmed, which is provided after one of the synchronizations and contains a reference that relates to a transaction before the synchronization, while maintaining the reference in any one which can be confirmed by several database instances.
- a back-to-be-confirmed transaction is confirmed in a specific database instance, for example, if a back-reference of the transaction to be confirmed relates to a back-to-back transaction that was confirmed after the last synchronization in the past; otherwise, a back-referenced transaction can also be confirmed in any of the database instances.
- the plurality of database instances are set up to verify that the transaction to be confirmed is referenced back across the database instances when the transaction to be confirmed is confirmed by one of the plurality of database instances.
- a respective node device of each of the database instances can have at least read access to the transaction books of all of the other database instances.
- each transaction to be confirmed can advantageously be confirmed in each of the transaction books, since any existing back references to the transaction to be confirmed can be resolved across database instances. This can further improve the balanced distribution of the transaction load.
- the transaction book of one of the plurality of database instances is a general ledger and the transaction book of a respective further of the plurality of database instances is a respective page book cryptographically linked to the general ledger.
- the cryptographic link can be achieved, for example, by confirming a hash value of a current status of the page book in the general ledger at predetermined time intervals.
- the distributed database system is set up to confirm the transaction to be confirmed either in the general ledger or in a number of the side books.
- tamper protection of the confirmed transaction can advantageously be improved by repeatedly confirming the transaction to be confirmed in several page books even if the transaction to be confirmed is not confirmed in the general ledger. If, on the other hand, the transaction to be confirmed is confirmed in the general ledger, this can be regarded as sufficient and resources for multiple confirmations in further transaction books can be saved in this case.
- the respective unit for example a node device, database system and / or distributed database system, can be implemented in terms of hardware and / or software.
- the respective unit can be designed as a device or as part of a device, for example as a computer or as a microprocessor or as a control computer.
- the respective unit can be designed as a computer program product, as a function, as a routine, as part of a program code or as an executable object.
- a computer program product such as a computer program means
- a method for operating a distributed database system with several database instances is proposed.
- a respective one of the several database instances is formed by a number of node devices, which are set up to jointly manage one of several transaction books of the distributed database system based on consensus.
- the method comprises confirming a transaction to be confirmed by adding one or more of the multiple database instances to the transaction book, the distributed database system deciding which of the multiple database instances to confirm the transaction to be confirmed.
- the terms “perform”, “calculate”, “computer-aided”, “calculate”, “determine”, “generate”, “configure”, “reconstruct” and the like preferably refer to Actions and / or processes and / or processing steps that change and / or generate data and / or convert the data into other data, the data being represented or may be present in particular as physical quantities, for example as electrical impulses.
- the term “computer” should be as possible be broadly designed to cover in particular all electronic devices with data processing properties. Computers can thus be, for example, personal computers, servers, programmable logic controllers (PLC), handheld computer systems, pocket PC devices, mobile radio devices and other communication devices which can process data with the aid of computers, processors and other electronic devices for data processing.
- “computer-aided” can be understood to mean, for example, an implementation of the method in which, in particular, a processor executes at least one method step of the method.
- a processor can be understood to mean, for example, a machine or an electronic circuit.
- a processor can in particular be a main processor (English: Central Processing Unit, CPU), a microprocessor or a microcontroller, for example an application-specific integrated circuit or a digital signal processor, possibly in combination with a memory unit for storing program instructions, etc. .
- a processor can also be, for example, an IC (Integrated Circuit), in particular an FPGA (Field Programmable Gate Array) or an ASIC (Application-Specific Integrated Circuit), or a DSP (digital signal processor) or a graphics processor GPU (Graphic Processing Unit).
- a processor can also be understood to mean a virtualized processor, a virtual machine or a soft CPU.
- a programmable processor for example, which is equipped with configuration steps for executing the method according to the invention or is configured with configuration steps such that the programmable processor executes the inventive methods
- a “storage unit”, a “storage module” and the like can be understood in connection with the invention, for example, to be volatile memory in the form of random access memory (RAM) or permanent storage such as a hard disk or a data carrier.
- RAM random access memory
- permanent storage such as a hard disk or a data carrier.
- a “module” can be understood to mean, for example, a processor and / or a storage unit for storing program instructions.
- the processor is specifically designed to execute the program instructions in such a way that the processor executes functions in order to implement or implement the method according to the invention or a step of the method according to the invention.
- a module can, for example, also be a node of the distributed database system, which, for example, realizes the specific functions / features of a corresponding module.
- the respective modules can for example also be designed as separate or independent modules.
- the corresponding modules can include further elements, for example. These elements are, for example, one or more interfaces (e.g. database interfaces, communication interfaces - e.g.
- network interface e.g. a network interface
- WLAN interface e.g. a network interface
- an evaluation unit e.g. a processor
- storage unit e.g. a storage unit.
- data can be exchanged using the interfaces (e.g. received, transmitted, sent or made available).
- the evaluation unit data can be compared, checked, processed, assigned or calculated, for example in a computer-assisted and / or automated manner.
- storage unit data can be stored, accessed or made available, for example, in a computer-assisted and / or automated manner.
- “Assign”, in particular with regard to data and / or information, can be understood in connection with the invention, for example, to be a computer-assisted assignment of data and / or information.
- a first date is assigned a second date using a memory address or a unique identifier (UID), in which e.g. B. the first date is stored together with the memory address or the unique identifier of the second date together in a data record.
- UID unique identifier
- provisioning in particular with regard to data and / or information, can be understood to mean, for example, computer-assisted provision.
- the provision takes place, for example, via an interface (for example a database interface, a network interface, an interface to a storage unit).
- an interface for example a database interface, a network interface, an interface to a storage unit.
- Corresponding data and / or information can be transmitted and / or sent and / or called up and / or received via this interface, for example when it is made available.
- “provide” can also be understood to mean, for example, loading or storing, for example a transaction with corresponding data. This can be done, for example, on or from a memory module. “Provision” can also be understood to mean, for example, a transmission (or a transmission or a transmission) of corresponding data from one node to another node of the block chain or of the distributed database system (or its infrastructure).
- a “smart contract process” can be understood in particular to mean executing a program code (for example the control commands) in a process by the distributed database system or its infrastructure.
- a "checksum”, for example a data block checksum, a data checksum, a node checksum, a transaction checksum, a chaining checksum or the like, can be understood in connection with the invention, for example, to be a cryptographic checksum or cryptographic hash or hash value, in particular by means of a cryptographic Hash function via a data record and / or data and / or one or more of the transactions and / or a partial area of a data block (e.g. the block header of a block of a block chain or data block header of a data block of the distributed database system or only a part of the Transactions of a data block) are formed or calculated.
- a cryptographic Hash function via a data record and / or data and / or one or more of the transactions and / or a partial area of a data block (e.g. the block header of a block of a block chain or data block header of a data block of the distributed database system or only a part of the Transactions of a
- a checksum can in particular be a checksum or hash value (s) of a hash tree (e.g. Merkle tree, Patricia tree). Furthermore, this can in particular also be understood to mean a digital signature or a cryptographic message authentication code.
- cryptographic protection / manipulation protection for the transactions and the data (records) stored therein can be implemented on different levels of the database system. For example, if a high level of security is required, the checksums are generated and checked at the transaction level. If less security is required, the checksums are generated and checked at the block level (e.g. over the entire data block or only over part of the data block and / or part of the transactions).
- a “data block checksum” can be understood to mean a checksum which is calculated, for example, over part or all of the transactions in a data block.
- a node can then, for example Check / determine the integrity / authenticity of the corresponding part of a data block using the data block checksum.
- the data block checksum can in particular also have been formed via transactions of a previous data block / predecessor data block of the data block.
- the data block checksum can in particular also be implemented by means of a hash tree, for example a Merkle tree [1] or a Patricia tree, the data block checksum in particular the root checksum of the Merkle tree or a Patricia tree or one binary hash tree.
- transactions are secured by means of further checksums from the Merkle tree or Patricia tree (e.g. using the transaction checksums), the further checksums in particular being leaves in the Merkle tree or Patricia tree.
- the data block checksum can thus secure the transactions, for example, by forming the root checksum from the further checksums.
- the data block checksum can be calculated in particular for transactions of a specific data block of the data blocks.
- such a data block checksum can be included in a subsequent data block of the specific data block in order to chain this subsequent data block, for example, with its previous data blocks and, in particular, thereby to make it possible to check the integrity of the distributed database system.
- the data block checksum can, for example, take over the function of the chaining checksum or be included in the chaining checksum.
- the header of a data block (e.g. a new data block or the data block for which the data block checksum was formed) can comprise the data block checksum, for example.
- Transaction checksum can be understood in connection with the invention as a checksum that is formed in particular via a transaction of a data block.
- a calculation of a data block checksum for a corresponding data block can be accelerated, for example, since calculations for this have already been calculated Transaction checksums as sheets z.
- B. a Merkle tree can be used.
- a “chaining checksum” can be understood to mean a checksum which in particular indicates or references a respective data block of the distributed database system to the previous data block of the distributed database system (frequently referred to in the specialist literature as "previous block hash”) [1 ].
- a corresponding chaining checksum is formed, in particular for the corresponding previous data block.
- a transaction checksum or the data block checksum of a data block can be used as the chaining checksum in order to chain a new data block with an (existing) data block of the distributed database system.
- a checksum is also possible, for example, for a checksum to be formed via a header of the previous data block or over the entire previous data block and to be used as a chaining checksum. This can also be calculated for several or all of the previous data blocks, for example. It is also possible, for example, for the chaining checksum to be formed via the header of a data block and the data block checksum.
- a respective data block of the distributed database system preferably comprises a chaining checksum, which was calculated for a previous data block, in particular even more preferably the directly preceding data block, of the respective data block or refer to it.
- a corresponding chaining checksum is also possible for a corresponding chaining checksum to be formed only over part of the corresponding data block (for example, previous data block).
- a data block can be realized which comprises an integrity-protected part and an unprotected part.
- This could be used, for example, to implement a data block whose integrity-protected part cannot be changed and whose unprotected part can also be changed later.
- integrity-protected means in particular that a change in integrity-protected data can be determined by means of a checksum.
- the data which are stored, for example, in a transaction of a data block, can in particular be provided in different ways.
- the data e.g. B.
- User data such as measurement data, measurement values, control values, or data / ownership relationships to assets
- a transaction of a data block can only include the checksum for this data.
- the corresponding checksum can be implemented in different ways. This can e.g. B. a corresponding data block checksum of a data block (with the corresponding data) of another database or the distributed database system, a transaction checksum of a data block with the corresponding data (of the distributed database system or another database) or a data checksum that was formed over the data.
- the corresponding transaction can include a reference or an indication of a storage location (e.g. an address of a file server and details of where the corresponding data can be found on the file server; or an address of another distributed database which comprises the data) .
- the corresponding data could then, for example, also be provided in a further transaction of a further data block of the distributed database system (for example if the corresponding data and the associated checksums are contained in different data blocks).
- this data is made available via another communication channel (eg via another database and / or a cryptographically secured communication channel).
- an additional data record (for example a reference or information on a storage location) can also be stored in the corresponding transaction, which in particular indicates a storage location where the data is retrieved can be. This is particularly advantageous in order to keep the data size of the block chain or the distributed database system as small as possible.
- security-protected can be understood to mean, for example, protection that is implemented in particular by a cryptographic method. For example, this can be implemented by using the distributed database system for the provision or transmission or transmission of corresponding data / transactions. This is preferably achieved by a combination of the different (cryptographic) checksums, in particular by synergistically interacting, for example to improve the security or the cryptographic security for the data of the transactions.
- security-protected in connection with the invention can also be understood to mean “cryptographically protected” and / or “manipulation-protected”.
- Tamer-proof can also be referred to as "integrity-protected”.
- linking the / of data blocks of a distributed database system can be understood, for example, to mean that data blocks each comprise information (for example, chaining checksum) which refer to another data block or several other data blocks of the distributed database system or these refer to [1] [4] [5].
- information for example, chaining checksum
- “Inserting into the distributed database system” and the like can be understood in connection with the invention, for example, that in particular a transaction or the transactions or a data block with its transactions is transmitted to one or more nodes of a distributed database system. If, for example, these transactions are successfully validated (e.g. by the node (s)), these transactions are distributed in particular as a new data block with at least one existing data block Database system concatenated [1] [4] [5]. For this purpose, the corresponding transactions are stored in a new data block, for example. In particular, this validation and / or chaining can be carried out by a trustworthy node (for example a mining node, a block chain oracle or a block chain platform).
- a trustworthy node for example a mining node, a block chain oracle or a block chain platform.
- a block chain platform can be understood to mean a block chain as a service, as is proposed in particular by Microsoft or IBM.
- a trustworthy node and / or a node can each store a node checksum (e.g. a digital signature) in a data block (e.g. in the data block they validated and generated, which is then linked), in particular to enable the creator of the data block to be identified and / or to enable the node to be identified.
- This node checksum indicates which node, for example, has linked the corresponding data block to at least one other data block of the distributed database system.
- transaction or “transactions” can be understood to mean, for example, a smart contract [4] [5], a data structure or a transaction data record, which in particular comprises one of the transactions or several transactions.
- transaction or “transactions” can also be understood to mean, for example, the data of a transaction in a data block of a block chain.
- a transaction can include a program code that, for example, implements a smart contract.
- a transaction can also be understood to mean a tax transaction and / or confirmation transaction.
- a transaction can be, for example, a data structure that stores data (e.g.
- storing transactions in data blocks is understood to mean direct storage or indirect storage.
- Direct storage can be understood, for example, to mean that the corresponding data block (of the distributed database system) or the corresponding transaction of the distributed database system) comprises the respective data.
- Indirect storage can be understood here, for example, to mean that the corresponding data block or the corresponding transaction comprises a checksum and optionally an additional data record (for example a reference or an indication of a storage location) for corresponding data and therefore does not include the corresponding data directly in the data block (or the transaction) are stored (i.e. instead only a checksum for this data).
- these checksums can be validated, for example, as is explained, for example, under "inserting into the distributed database system".
- a “program code” (for example a smart contract) can be understood to mean, for example, one program command or several program commands, which are stored in particular in one or more transactions.
- the program code can be executed in particular and is executed, for example, by the distributed database system. This can be implemented, for example, using an execution environment (for example a virtual machine), the execution environment or the program code preferably being Turing-complete.
- the program code is preferably executed by the infrastructure of the distributed database system [4] [5]. For example, a virtual machine is implemented through the infrastructure of the distributed database system.
- a “smart contract” can be understood in connection with the invention, for example, to be an executable program code [4] [5] (see in particular the definition "program code”).
- the smart contract is preferably stored in a transaction of a distributed database system (e.g. a block chain), for example in a data block of the distributed database system.
- the smart contract can be executed in the same way as explained in the definition of "program code", in particular in connection with the invention.
- proof-of-work or “proof-of-work proof” can be understood to mean, for example, solving a computation-intensive task that is to be solved in particular depending on the data block content / content of a specific transaction [1 ] [4] [5].
- a computationally intensive task is also referred to as a cryptographic puzzle, for example.
- a distributed database system which can also be referred to as a distributed database, for example, in connection with the invention, a decentrally distributed database, a block chain (English blockchain), a distributed ledger, a distributed storage system, a distributed ledger technology ( DLT) based system (DLTS), an audit-proof database system, a cloud, a cloud service, a block chain in a cloud or a peer-to-peer database.
- DLT distributed ledger technology
- DLTS distributed ledger technology
- An audit-proof database system a cloud, a cloud service, a block chain in a cloud or a peer-to-peer database.
- DAG Directed Acylic Graph
- cryptographic puzzle a hash graph or a combination of the implementation variants mentioned [6] [7].
- Different consensus rules or consensus algorithms can also be implemented, for example.
- This can be, for example, a consensus procedure using a cryptographic puzzle, Gossip about Gossip, Virtual Voting or a combination of the above-mentioned procedures (e.g. Gossip about Gossip combined with Virtual Voting) [6] [7].
- a block chain is used, this can in particular be based on a bitcoin Realization or an Ethereum-based realization can be implemented [1] [4] [5].
- a "distributed database system” can also be understood to mean, for example, a distributed database system, of which at least some of its nodes and / or devices and / or infrastructure are implemented by a cloud.
- the corresponding components are implemented as nodes / devices in the cloud (e.g. as a virtual node in a virtual machine). This can be done using VM goods, Amazon Web Services or Microsoft Azure, for example. Due to the high flexibility of the implementation variants explained, in particular partial aspects of the implementation variants mentioned can be combined with one another, for example by B. a hash graph is used as a block chain, the block chain itself z. B. can also be blockless.
- DAG Directed Acylic Graph
- IOTA Directed Acylic Graph
- Tangle Transaction or blocks or nodes of the graph are connected to one another via directed edges.
- Acyclic means in particular that there are no loops when the graph is run through.
- the distributed database system can be, for example, a public distributed database system (e.g. a public block chain) or a closed (or private) distributed database system (e.g. a private block chain).
- a public distributed database system e.g. a public block chain
- a closed (or private) distributed database system e.g. a private block chain
- new nodes and / or devices need, for example, a valid proof of authorization and / or valid authentication information and / or valid credentials and / or valid login information in order to be able to join the distributed database system or from to be accepted.
- a distributed database system can, for example, also be a distributed communication system for data exchange. This can be, for example, a network or a peer-2-peer network.
- a data block of a distributed database system (for example a block chain or a peer-to-peer) Peer database) can be understood, which is realized in particular as a data structure and preferably comprises one of the transactions or more of the transactions.
- the database (or the database system) can be a DLT-based system (DLTS) or a block chain and a data block can be a block of the block chain or the DLTS.
- DLTS DLT-based system
- a data block can be a block of the block chain or the DLTS.
- a data block can include, for example, information on the size (data size in bytes) of the data block, a data block header, a transaction counter and one or more transactions [1].
- the data block header can include, for example, a version, a chaining checksum, a data block checksum, a time stamp, a proof-of-work proof and a nonce (one-time value, random value or counter used for the proof-of-work proof) [1] [4] [5].
- a data block can, for example, only be a specific memory area or address area of the total data that is stored in the distributed database system. This allows, for example, blockless distributed database systems, such as. B. implement the IoT Chain (ITC), IOTA, and Byteball.
- ITC IoT Chain
- IOTA IOTA
- Byteball Byteball
- the functionalities of the blocks of a block chain and the transactions are combined with one another in such a way that, for. B. the transactions themselves secure the sequence or chain of transactions (of the distributed database system) (in particular, they are stored in a security-protected manner).
- the transactions themselves can be linked to one another with a chaining checksum, in that a separate checksum or the transaction checksum of one or more transactions is used as the chaining checksum, which is also saved in the corresponding new transaction when a new transaction is stored in the distributed database system.
- a data block can also include one or more transactions, for example, in the simplest case a data block corresponding to a transaction.
- nonce can be understood to mean, for example, a cryptographic nonce (abbreviation for: “used only once” [2] or “number used once” [3]).
- a nonce denotes a combination of numbers or letters, which is preferably used once in the respective context (e.g. transaction, data transmission).
- Previous data blocks of a (certain) data block of the distributed database system can be understood in connection with the invention, for example, the data block of the distributed database system which in particular directly precedes a (certain) data block.
- "previous data blocks of a (certain) data block of the distributed database system” can also be understood to mean, in particular, all data blocks of the distributed database system that precede the specific data block.
- the chaining checksum or the transaction checksum can be formed in particular only via the data block (or its transactions) preceding the specific data block or via all data blocks (or its transactions) preceding the first data block.
- nodes e.g. field devices, mobile telephones
- computers e.g. smart phones
- clients or participants who perform operations (with) the distributed database system (e.g. a block chain) [1] [4] [5].
- Such nodes can, for example, execute transactions of a distributed database system or their data blocks or insert or chain new data blocks with new transactions into the distributed database system by means of new data blocks.
- this validation and / or chaining can be carried out by a trustworthy node (for example a mining node) or exclusively by trustworthy nodes.
- a trustworthy node is, for example, a node that has additional security measures (for example firewalls, access restrictions to the node or the like) in order to prevent manipulation of the node.
- a trustworthy node can store a node checksum (for example a digital signature or a certificate) in the new data block. In particular, it can be used to provide evidence that indicates that the corresponding data block was inserted by a specific node or indicates its origin.
- the devices e.g. the corresponding device
- the devices can be field devices, for example or devices in the Internet of Things, which in particular are also a node of the distributed database system.
- Nodes can, for example, also comprise at least one processor in order to e.g. B. execute their computer-implemented functionality.
- a “block chain oracle” and the like can be understood in connection with the invention, for example nodes, devices or computers that z. B. have a security module that is implemented, for example, by means of software protection mechanisms (e.g. cryptographic processes), mechanical protection devices (e.g. a lockable housing) or electrical protection devices (e.g. tamper protection or a protection system, that deletes the data of the security module in the event of improper use / treatment of the blockchain oracle).
- the security module can include, for example, cryptographic keys, which are necessary for the calculation of the checksums (e.g. transaction checksums or node checksums).
- a “computer” or a “device” can include, for example, a computer (system), a client, a smart phone, a device or a server, each of which is arranged outside the block chain or no participant of the distributed one Database system (e.g. the block chain) (i.e. do not perform any operations with the distributed database system or only query them, but without carrying out transactions, inserting data blocks or calculating proof-of-work evidence).
- a computer in particular can also be understood to mean a node of the distributed database system.
- a device can be understood to mean in particular a node of the distributed database system or a device outside the block chain or the distributed database system.
- a device outside of the distributed database system can, for example, access the data (for example transactions or tax transactions) of the distributed database system and / or from nodes (for example by means of Smart contracts and / or blockchain oracles) can be controlled. If, for example, a device is activated or controlled (for example a device designed as a node or a device outside the distributed database system) by a node, B. by means of a smart contract, which is stored in particular in a transaction of the distributed database system.
- Fig. 1 schematically illustrates a distributed database system 1 according to a first exemplary embodiment and a method for operating the same.
- the distributed database system 1 has a first database instance 10 and a second database instance 20.
- the first database instance 10 is formed by the node devices 12, 13 and 14.
- the second database instance 20 is formed by the node devices 22, 23, 24.
- the node devices 12, 13, 14 of the first database instance 10 jointly and consensus-based manage the transaction book 11 of the distributed database system 1.
- the node devices 22, 23, 24 of the second database instance 20 jointly and consensus-based manage the transaction book 21 of the distributed database system 1.
- step S1 of the method for operating the distributed database system 1 the distributed database system 1 confirms the transaction 4 to be confirmed by converting the transaction 4 to be confirmed into one or both of the confirmed transactions Transaction books 11, 21 records.
- the distributed database system 1 decides which of the plurality of database instances 10, 20 to confirm the transaction 4 to be confirmed. In other words, the distributed database system 1 decides whether the transaction 4 to be confirmed is recorded by the first database instance 10 in the transaction book 11 and / or by the second database instance 20 in the transaction book 21.
- node devices 12, 13, 14, 22, 23, 24 are communicatively networked with one another in order to jointly implement the functionality described above.
- the schematically represented transaction books 11, 21 are representations of a respective transaction book 11, 21 stored in a distributed manner in the distributed database system 1.
- a representation of the transaction book 11 can be stored on each of the node devices 12, 13, 14, wherein a consensus rule of the database instance 10 ensures that the respective representations are completely or substantially matched to one another, and on each of the node devices 22, 23, 24
- a representation of the transaction book 21 can be stored, a consensus rule of the database instance 20 ensuring that the respective representations are matched to one another.
- Fig. 2 shows details of a possible embodiment of one of the transaction books 11, 21 of the distributed database system 1 Fig. 1 Referred.
- the transaction book 11 of the database instance 10 is described by way of example, but the description also applies analogously to the transaction book 21 of the database instance 20.
- the section of the transaction book 11 shown according to the possible embodiment comprises three blocks 101, 102, 103.
- a respective block 101, 102, 103 each comprises a header data section K and a user data section N.
- the header data section K of block 101 comprises a data block checksum 1014, a chaining checksum 1012 and a verification value 1011.
- the header data sections K of blocks 102 and 103 each include a data block checksum 1024, 1034, a chaining checksum 1022, 1032 and a verification value 1021, 1031.
- the user data section N of the respective block 101, 102, 103 each comprises a number of confirmed transactions, which are shown as rounded rectangles.
- One of the confirmed transactions bears the reference number 5 as an example.
- the transactions 5 each include user data of the distributed database system 1.
- a respective transaction 5 can include data and / or program code (so-called smart contracts), which indicate a transition from a state that the transaction book 11 of the distributed database system 1 had to before the confirmation of the Transaction 5 describes, describes in a state that the transaction book 11 of the distributed database system 11 describes after the confirmation of the transaction 5.
- smart contracts data and / or program code
- the state described by the transaction book 11 can be transparently understood at every current and past point in time.
- status can be understood to mean any type of data that can be reconstructed from a sequence of transactions.
- the entirety of all account balances in a number of addresses or cryptowallets defined in the database instance 10 may be mentioned purely by way of example. However, states such as control or switching states of actuators of an industrial automation system and the like are also conceivable, for example, a transaction representing a respective switching operation.
- the respective data block checksum 1014, 1024, 1034 is in particular a cryptographic hash value which protects the transactions 5 of the respective block 101, 102, 103 against manipulation.
- the data block checksum 1014, 1024, 1034 can be a root value of a Merkle or Patricia hash tree.
- the respective chaining checksum 1012, 1022, 1032 is a cryptographic hash value of the preceding block 101, 102.
- the chaining checksum 1022 is a cryptographic hash value of the entire block 101.
- the chaining hash value 1032 is a cryptographic hash value of the entire block 62.
- the respective chaining Hash value 1012, 1022, 1032 can define the order in which the blocks 101, 102, 103 are linked and can secure the transaction book 11 against manipulation. Any the 5 designated the If transactions 5 were subsequently manipulated, this would not only invalidate the data block checksum 1014, but also the chaining checksum 1022 and each subsequent chaining checksum 1032.
- the respective proof value 1011, 1021, 1031 is a value that can be understood in such a way that it serves a legitimate interest of those of the account devices 12-14 that formed the respective block 101, 102, 103 (hereinafter "block-forming node device ”) to document the inclusion of block 101, 102, 103 in the transaction book 11.
- the proof value 1011, 1021, 1031 is in particular set up in such a way that it can be verified in a verifiable manner a quantity of computing power (so-called proof-of-work) used by the block-forming node device 12-14, a quantity of crypto tokens held for a certain duration (so-called Proof-of-Stake), a lot of resources used elsewhere and / or an authorization such as a signature of a privileged ledger.
- proof-of-work a quantity of computing power used by the block-forming node device 12-14
- Proof-of-Stake a quantity of crypto tokens held for a certain duration
- an authorization such as a signature of a privileged ledger.
- the confirmation of a transaction 4 to be confirmed by the database instance 10 can in particular proceed as described below. It is assumed that the in Fig. 2 block 103 shown at the beginning of the process is not yet part of the transaction book 11, that is, the transaction book 11 at the beginning of the process now described only consists of the confirmed blocks 101 and 102.
- the block-forming node device forms the block 103, which has not yet been confirmed, checks the transaction 4 to be confirmed for validity, accepts the transaction 4 to be confirmed or a copy thereof as a confirmed transaction in the unconfirmed block 103 , determines the data block checksum 1034 of the unconfirmed block 13, concatenates the unconfirmed block 103 with the last confirmed block 102 of the transaction book 11, for which purpose it links the chaining checksum 1032 of the unconfirmed block to the cryptographic hash value of the the last confirmed block 102 of the transaction book 11, and determines the proof value 1031 of the unconfirmed block 103.
- the unconfirmed block 103 thereby becomes the new last block 103 of the transaction book 11 in the representation of the transaction book 11 stored on the block-forming node device 12. If so If an unconfirmed block is successfully formed, the block-forming node device 12 makes the unconfirmed block 103 available to the other node devices 13, 14 of the same database instance 10. These check the unconfirmed block 103 and, if the check is successful, also add it to the representation of the transaction book 11 stored in them as the new last block 103 of the transaction book 11.
- the mentioned checking processes can in particular include checking whether the transaction 4 to be confirmed of the unconfirmed block 103 describes a valid state transition.
- program code of a smart contract included or referenced by the transaction 4 to be confirmed can be executed.
- the mentioned checking processes can include a check of the data block checksum 1034 for correctness, the chaining checksum 1032 for correctness, and a check of the evidence value 1031 for compliance with the requirements of the consensus rule of the database instance 10.
- the requirement of the consensus rule of the database instance 10 that a respective block 101, 102, 103 should contain such a proof value 1011, 1021, 1031 can make the formation of a correct block 101-103 corresponding to the consensus rule more difficult or more expensive. This can serve to protect against manipulation, since a subsequent modification of the transaction book 11 also results in a renewed resource-intensive process Determination of changed detection values 1011, 1021, 1031 may be necessary.
- the confirmation of the transaction 4 to be confirmed can be a computationally expensive process.
- the exact amount of computing effort for confirming a respective transaction 4 to be confirmed can be difficult to plan, since different transactions 4 to be confirmed can comprise smart contracts of different complexity.
- a temporary overload situation with an excessive transaction load can therefore occur in one of the database instances 11, 12.
- the distributed database system 1 can decide to confirm the transaction 4 to be confirmed either in the transaction book 11 of the database instance 10 or in the transaction book 12 of the database instance 20.
- the node devices 12-14, 22-24 exchange status information with one another about the status of the respective database instances 10, 20.
- the status information can comprise any type of suitable status information, for example a computing power of a respective one of the node devices 12-14, 22-24 of the respective database instance 10, 20, a size of the respective transaction book 11, 21, an average transaction throughput of the respective database instance 10, 20 and the like.
- each of the node devices 12-14, 22-24 can be informed of the current state of each of the database instances 11, 21.
- the node devices 12-14, 22-24 of the respective database instance 10, 20 can be set up to confirm the transaction 4 to be confirmed when the status information about the status of the database instance 10, 20 compared to the status information about the status of the other database instances 10, 20 fulfills a certain condition.
- the node devices 12-14, 22-24 of the database instance 10, 20 can confirm the transaction 4 to be confirmed which has the lowest load, the smallest transaction book size, the lowest transaction throughput or the like among the database instances 10, 20.
- Automatic load balancing can thus advantageously be implemented in the database instances 10, 20 according to the first exemplary embodiment.
- Fig. 3 schematically illustrates a distributed database system 1 and aspects of its operation according to a second exemplary embodiment.
- the second exemplary embodiment is a development of the first exemplary embodiment, so that differences and additional features and configurations are primarily dealt with below in order to avoid redundant descriptions.
- the distributed database system 1 according to the second exemplary embodiment comprises three database instances 10, 20, 30.
- the respective associated node devices cf. node devices 12-14, 22-24 in FIG Fig. 1 ) are in Fig. 3 not shown.
- functionality of one of the database instances 10, 20, 30 is described below, this is to be understood in particular in such a way that this functionality can be implemented by the respective node devices (not shown) of the respective database instance 10, 20, 30.
- Fig. 3 further illustrates the transaction books 11, 12, 13 of the database instances 10, 20 and 30 along an imaginary time axis running from left to right.
- the first database instance 10 is a main chain, and the transaction book 11 of the first database instance 10 is accordingly a main ledger.
- the second and the third database instance 20, 30 are a respective side chain, and the transaction books 21, 31 of the respective side chain 20, 30 are accordingly a respective side ledger. ).
- the general ledger 11 in particular has a higher protection against manipulation, but a lower degree of block formation than the side ledgers 21, 31.
- an elaborate proof-of-work can be used in the database instance 10 for the general ledger 11 within the framework of the consensus rule, while in the database instances 20, 30 for the side books 21, 31, a faster-to-generate, but less secure, proof value is preferably used.
- a trust-based privileged ledger approach is conceivable here.
- the side books 21, 31 are cryptographically linked several times to the general ledger 11.
- a state represented by the general ledger 11 corresponds - such as a set of switching states, Account balances and the like - a state represented by each of the page books 21, 31.
- This common state is referred to below as the initial state.
- the transactions confirmed at a later point in time in blocks 201-204 of the first page book 21 continue to update the initial state by the state transitions described by the confirmed transactions.
- the first block 201 of the first page book 21 is generated by a (in Fig. 3 not shown) chaining checksum with the block 101 of the general ledger 11 cryptographically linked or linked.
- the state transitions described in blocks 301-304 of the second page book 31 update the initial state. From the second point, where a respective first block 201, 301 has been confirmed in the page book 21 and the page book 31, the first updated state described by the first page book 21 thus differs from the second updated state described by the second page book 31. From this point in time, a transaction 4 to be confirmed, which refers back to the first updated state defined by the block sequence 101, 201 of the first page book 21, can no longer be readily confirmed in the second page book 31. For this reason, in a conventional architecture with several transaction books, each transaction to be confirmed must clearly specify in advance in which of the transaction books it is to be specified. According to the proposed solution, however, the database system 1 has at least a certain freedom of decision as to which of the side books 21, 31 or the general ledger 11 confirms a transaction 4. This is explained in more detail below.
- a pool 40 of several unconfirmed transactions 41-45 can be maintained in the distributed database system 1.
- the respective unconfirmed transaction 41-45 can be written by an application that uses the central database system 1 into a central retention device (not shown) of the database system 1 or to any of the ones not shown Node devices of the Dantebank system 1 are transmitted and from there to the other (not shown) node devices of the database system 1 in a peer-to-peer manner.
- the pool 40 can be implemented centrally by means of the provision device or decentrally by means of peer-to-peer communication or the like between the node devices of the database system 1.
- the distributed database system 1 successively selects one of the unconfirmed transactions 41-45 from the pool 40 as the current transaction 4 to be confirmed and confirms the respective transaction 4 to be confirmed in one or more of the transaction books 11, 21, 31.
- the decision in which of the transaction books 11, 21, 31 the transaction 4 to be confirmed is confirmed can be made in several possible ways.
- each of the node devices of each of the database instances 10, 20, 30 can begin to form an unconfirmed block (not shown) in which the transaction 4 to be confirmed is included.
- a consensus rule of each of the database instances 10, 20, 30 can provide, inter alia, that a transaction 4 to be confirmed can only be regarded as valid if it has not already been confirmed in any of the transaction books 11, 21, 31 of the distributed database system 1. In this way, that of database instances 10, 20, 30 that can confirm transaction 4 to be confirmed most quickly can prevail.
- a number of database instances 10, 20, 30 can be specified in a respective unconfirmed transaction 41-45 of the pool 40, in which the unconfirmed transaction 41-45 is to be confirmed. If one of the database instances 10, 20, 30 selects and confirms the respective unconfirmed transaction 41-45 as transaction 4 to be confirmed, it can specify the specified number of database instances decrement by one. If the number is decremented to zero, the unconfirmed transaction 41-45, which has been selected as transaction 4 to be confirmed, can be removed from the pool 40. In this way, the selected unconfirmed transaction 41-45 is no longer confirmed by any of the database instances 10, 20, 30.
- Such multiple confirmation of a transaction 4 to be confirmed by a number of database instances 10, 20, 30 has the advantage that a particularly high level of protection against manipulation is achieved. Manipulation of a transaction in only one of the database instances 10, 20, 30 can be identified by comparing the plurality of database instances 10, 20, 30. Another advantage of the multiple confirmation can be that a reference to the transaction confirmed in several of the database instances 10, 20, 30 by future, subsequent transactions (not shown) in these multiple database instances 10, 20, 30 is possible. This achieves greater flexibility in which of the several database instances 10, 20, 30 the subsequent unconfirmed transaction can be confirmed.
- the consensus rule of the respective database instance 10, 20, 30 can provide that a remuneration for confirming the transaction 4 to be confirmed can only be granted a number of times, which is specified in the respective transaction 4 to be confirmed, or that the remuneration is decremented with each confirmation of the transaction 4 to be confirmed in one of the transaction books 11, 21, 31. If the remuneration drops to zero, there is no longer any incentive for the node devices of further database instances 10, 20, 30 to confirm transaction 4 to be confirmed in further transaction books 11, 21, 31, and such further confirmation can be omitted.
- the database instances 10, 20, 30 can provide information about their respective load situation (processing load of the individual node devices of the respective Database instance 10, 20, 30; Exchange transaction load of the respective database instance 10, 20, 30 or memory size of the respective transaction book 11, 21, 31 and the like) and be set up in such a way that from the start only that database instance 10, 20, 30 selects the transaction 4 to be confirmed that is currently valid has the lowest load.
- an automatic, decentralized consensus can be formed between the several database instances in which of the database instances 10, 20, 30 the transaction 4 to be confirmed is confirmed.
- the first transaction 41 is an oracle transaction.
- the oracle transaction 41 is in particular free of references to past confirmed transactions, rather the oracle transaction contains information about the real world, such as a measured value, which is to be made known in the distributed database system 1.
- the unconfirmed oracle transaction 41 is confirmed by the distributed database system 1 both as a confirmed oracle transaction 511 in the first page book 21 and as a confirmed oracle transaction 512 in the second page book 22.
- the information about the real world is thus made known to each of the side books 21, 31.
- Such confirmation of a transaction 4 to be confirmed in each of the page books 21, 31 can be, for example, the default behavior of the distributed database network 1 in oracle transactions.
- the oracle transaction 41 can explicitly specify that it is to be confirmed in exactly two or at least two transaction books 11, 21, 31.
- Transaction 42 is a first crypto token transaction that transfers a set of crypto tokens to an address (also called "output"), such as 0x4EAC, of a crypto wallet.
- the transaction 42 specifies by means of specification data (not shown) included therein that the transaction 42 is to be confirmed in exactly one of the page books 21, 31, in order in this way to achieve faster processing than in the general ledger 11.
- the unconfirmed first crypto token transaction 42 is processed by the distributed database system 1 based on a current load distribution of the database instances 21 and 31, for example, as in FIG Fig. 3 shown, confirmed in the second block 302 of the second page book 31. Depending on the current load distribution, it could alternatively also be confirmed in one of the blocks of the first page book 21. However, the unconfirmed first crypto token transaction 42 is not confirmed in the ledger 11. That is, the distributed database system 1 only takes into account the database instances 20, 30 that are to be confirmed when deciding which of the plurality of database instances 10, 20, 30 to confirm the transaction 4 (the unconfirmed crypto token transaction 42) Transaction 42 are specified.
- Unconfirmed transaction 43 is a second crypto token transaction that transfers the amount of crypto tokens from address 0x4EAC to a second address 0x81F2.
- the transaction 43 therefore contains a reference to the confirmed transaction 52, which serves as proof that the sender address 0x4AEC (also called "unspent output") actually contains the amount of crypto tokens and has not been issued otherwise since then.
- the unconfirmed second crypto token transaction 43 also specifies that the unconfirmed transaction 43 is to be confirmed in exactly one of the page books 21, 31.
- This reference of the unconfirmed transaction 43 to the confirmed transaction 52 can only be resolved in the second page book 31, in which the confirmed transaction 52 is included in block 302. This back reference is taken into account by the distributed database system 1 when confirming the unconfirmed transaction 43, and the unconfirmed transaction 43 is confirmed as the confirmed transaction 53 in the block 304 of the second transaction book 31.
- the unconfirmed transaction 44 is a third unconfirmed crypto token transaction that transfers the amount of crypto tokens from the second address 0x81F2 to a third address 0x99EA and thus contains a direct reference to the confirmed transaction 53, which contains the presence of the crypto tokens at the sender address (second Address) 0x81F "and an indirect reference to the confirmed transaction 52, to which the confirmed transaction 53 refers.
- the third unconfirmed crypto token transaction 44 would also have to be confirmed in the second transaction book 31, in which the related, confirmed transaction 53 is confirmed in block 304.
- the distributed database system 1 synchronizes the transaction books 11, 21, 31 of the plurality of database instances 10, 20, 30 at predefined time intervals.
- the predefined time intervals are, for example, due to the time intervals between the formation of one blocks 101, 102 of the general ledger 11.
- the block 102 of the general ledger 11 comprises a summary transaction 56, which is the state updated from the first page book 21 (the result of the processing of all transactions that take place in the first page book 21 in the time between the confirmation of the first block 101 of the general ledger 11 and confirming the second block 102 of the General ledger 11 have been confirmed) and a summarizing transaction 57 which defines the state updated from the second side book 31.
- a summary transaction 56 which is the state updated from the first page book 21 (the result of the processing of all transactions that take place in the first page book 21 in the time between the confirmation of the first block 101 of the general ledger 11 and confirming the second block 102 of the General ledger 11 have been confirmed)
- a summarizing transaction 57 which defines the state updated from the second side book 31.
- next block 205 of the page book 21 is therefore not cryptographically linked to the previous block 204 of the page book 21, but to the second block 102 of the general book 11. The same applies to the next block 305 of the page book 31.
- the third unconfirmed crypto token transaction 44 the confirmation of which begins only after the confirmation of the block 102 of the general ledger 11, despite its reference to the transaction 53 confirmed in the second transaction book 31, can be confirmed in each of the page books 21, 31 and will, for example, as in Fig. 3 shown, now confirmed as the confirmed transaction 54 of the sixth block 206 due to a changed load situation in the first page book 21.
- the distributed database system 1 can automatically distribute the load by confirming in another of the transaction books 11, 21, 31 at predefined time intervals.
- the unconfirmed transaction 45 finally specifies that it may only be confirmed in the general ledger 11, for example due to increased security requirements. This is taken into account by the distributed database system 1, and the unconfirmed transaction 45 is confirmed as confirmed transaction 55 immediately in the second block 102 of the general ledger 11. This can also be understood to mean that the Proposed solution to leave the decision on the confirming database instance 10, 20, 30 to the distributed database system 1 can be overridden for certain unconfirmed transactions 45, provided this appears appropriate in the individual case.
- the states described by the respective transaction books 11, 21, 31 are synchronized with one another at predefined time intervals.
- the database instances 10, 20, 30 are set up for cross-database instance communication when confirming the respective transaction 4 to be confirmed.
- each of the node devices in Fig. 3 (not shown) each of the database instances 10, 20, 30 have at least read access to each of the transaction books 11, 21, 31.
- the entirety of the transaction books 11, 21, 31 can represent a common state, which can be checked by each of the database instances 10, 20, 30 when the respective transaction 4 to be confirmed is confirmed.
- the invention can be generally understood to the effect that it is at least partially left to a distributed database system 1 in which a transaction 4 to be confirmed is confirmed by several transaction books 11, 21, 31 of the distributed database system 1.
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Finance (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Vorgeschlagen wird ein verteiltes Datenbanksystem (1) mit mehreren Datenbankinstanzen (10, 20). Eine jeweilige der mehreren Datenbankinstanzen (10, 20) ist durch eine Anzahl Knoteneinrichtungen (12, 13, 14; 22, 23, 24) gebildet ist, die dazu eingerichtet sind, gemeinsam konsensbasiert eines von mehreren Transaktionsbüchern (11, 21) des verteilten Datenbanksystems (1) zu verwalten. Das verteilte Datenbanksystem (1) ist eingerichtet, eine zu bestätigende Transaktion (4) durch Aufnehmen in das Transaktionsbuch (11, 21) einer oder mehrerer der mehreren Datenbankinstanzen (10, 20) zu bestätigen. Hierbei ist das verteilte Datenbanksystem (1) dazu eingerichtet ist, zu entscheiden, durch welche der mehreren Datenbankinstanzen (10, 20) die zu bestätigende Transaktion (4) bestätigt wird.Das Anwendungsdesign kann vereinfacht werden, und es kann eine verbesserte automatisierte Verteilung einer Transaktionslast des verteilten Datenbanksystems über die mehreren Datenbankinstanzen erfolgen.Weiterhin werden ein Verfahren und ein Computerprogrammprodukt zum Betreiben eines verteilten Datenbanksystems mit mehreren Datenbankinstanzen vorgeschlagen.A distributed database system (1) with several database instances (10, 20) is proposed. A respective one of the plurality of database instances (10, 20) is formed by a number of node devices (12, 13, 14; 22, 23, 24), which are set up to jointly base one of several transaction books (11, 21) of the distributed database system (1) to manage. The distributed database system (1) is set up to confirm a transaction (4) to be confirmed by including it in the transaction book (11, 21) of one or more of the several database instances (10, 20). Here, the distributed database system (1) is set up to decide which of the plurality of database instances (10, 20) confirms the transaction (4). The application design can be simplified, and there can be an improved automated distribution of a transaction load of the distributed database system via the multiple database instances. A method and a computer program product for operating a distributed database system with multiple database instances are also proposed.
Description
Die vorliegende Erfindung betrifft das Gebiet der verteilten Datenbanksysteme und spezieller ein verteiltes Datenbanksystem mit mehreren Datenbankinstanzen.The present invention relates to the field of distributed database systems, and more particularly, to a distributed database system with multiple database instances.
In einem, etwa mit Blockketten-Technologie implementierten, verteilten Datenbanksystem können Transaktionen ohne Clearing-Stelle oder besonderes Vertrauensverhältnis zwischen den Transaktionspartnern oder einer Clearing-Stelle basierend auf einem Konsens zwischen den Transaktionspartnern transparent und manipulationsgeschützt abgewickelt werden. Ein Transaktionsdatensatz kann Programmcode umfassen oder referenzieren, der beim Bestätigen der Transaktion in dem verteilten Datenbanksystem ausgeführt wird (sog. "Smart Contract"). Ein derartiges verteiltes Datenbanksystem eignet sich als transparente, manipulationsgeschützte IT-Infrastrukturplattform zur Steuerung eines industriellen Automatisierungssystems.In a distributed database system, implemented with blockchain technology, for example, transactions without a clearing house or a special relationship of trust between the transaction partners or a clearing house can be processed transparently and tamper-proof based on a consensus between the transaction partners. A transaction data record can include or reference program code that is executed in the distributed database system when the transaction is confirmed (so-called "smart contract"). Such a distributed database system is suitable as a transparent, manipulation-protected IT infrastructure platform for controlling an industrial automation system.
Bei der Konfiguration einer Konsensregel eines solchen verteilten Datenbanksystems besteht eine Tradeoff-Situation zwischen Parametern wie Transaktionsdurchsatz und Stärke des Manipulationsschutzes. Bekannt sind daher verteilte Datenbanksysteme mit mehreren unterschiedlich konfigurierten Datenbankinstanzen, die auch Haupt- und Side-Chains genannt werden. Hierbei obliegt es einem Anwender bzw. einer zu dem Datenbanksystem externen Entität, zu entscheiden, welcher der Datenbankinstanzen eine jeweilige zu bestätigende Transaktion zum Bestätigen bereitgestellt werden soll. Diese Entscheidung fällt daher für eine jeweilige Art von Transaktion in der Regel bereits in der Designphase der jeweiligen Anwendung, wie etwa des industriellen Automatisierungssystems.When configuring a consensus rule of such a distributed database system, there is a trade-off situation between parameters such as transaction throughput and strength of manipulation protection. Distributed database systems with several differently configured database instances, which are also called main and side chains, are therefore known. It is the responsibility of a user or an entity external to the database system to decide which of the database instances a respective transaction to be confirmed should be made available for confirmation. For a particular type of transaction, this decision is therefore usually made in the design phase of the respective application, such as the industrial automation system.
Vor diesem Hintergrund besteht eine Aufgabe der vorliegenden Erfindung darin, ein verbessertes verteiltes Datenbanksystem mit mehreren Datenbankinstanzen bereitzustellen.Against this background, it is an object of the present invention to provide an improved distributed database system with multiple database instances.
Demgemäß wird ein verteiltes Datenbanksystem mit mehreren Datenbankinstanzen vorgeschlagen. Eine jeweilige der mehreren Datenbankinstanzen ist durch eine Anzahl Knoteneinrichtungen gebildet, die dazu eingerichtet sind, gemeinsam konsensbasiert eines von mehreren Transaktionsbüchern des verteilten Datenbanksystems zu verwalten. Das verteilte Datenbanksystem ist eingerichtet, eine zu bestätigende Transaktion durch Aufnehmen in das Transaktionsbuch einer oder mehrerer der mehreren Datenbankinstanzen zu bestätigen. Hierbei ist das verteilte Datenbanksystem dazu eingerichtet, zu entscheiden, durch welche der mehreren Datenbankinstanzen die zu bestätigende Transaktion bestätigt wird.Accordingly, a distributed database system with multiple database instances is proposed. A respective one of the several database instances is formed by a number of node devices which are set up to jointly manage one of several transaction books of the distributed database system based on consensus. The distributed database system is set up to confirm a transaction to be confirmed by adding one or more of the several database instances to the transaction book. Here, the distributed database system is set up to decide which of the several database instances is used to confirm the transaction to be confirmed.
Insbesondere kann die Entscheidung, durch welche der mehreren Datenbankinstanzen die zu bestätigende Transaktion bestätigt wird, allein dem verteilten Datenbanksystem überlassen sein.In particular, the decision as to which of the plurality of database instances the transaction to be confirmed is left to the distributed database system alone.
Somit kann vorteilhaft das Anwendungsdesign vereinfacht werden und eine verbesserte und automatisierte Verteilung einer von dem verteilten Datenbanksystem handzuhabenden Transaktionslast über die mehreren Datenbankinstanzen erfolgen.The application design can thus advantageously be simplified and an improved and automated distribution of a transaction load to be handled by the distributed database system can take place over the multiple database instances.
Das Transaktionsbuch (engl. "ledger") einer jeweiligen Datenbankinstanz des verteilten Datenbanksystems kann als Kette oder Pfad von bestätigten Blöcken repräsentiert werden. Insbesondere umfasst ein jeweiliger Block eine Anzahl in dem Transaktionsbuch bestätigter Transaktionen. Die Verkettung kann mittels Verkettungsprüfsummen gebildet sein. Eine jeweilige der Anzahl Knoteneinrichtungen der Datenbankinstanz kann eine Kette von bestätigten Blöcken speichern, die eine Konsensversion des Transaktionsbuchs der Datenbankinstanz repräsentiert. Insbesondere kann die jeweilige Datenbankinstanz eine Blockkette bzw. eine Blockchain, wie etwa eine Haupt-Chain oder eine Side-Chain sein.The transaction book ("ledger") of a respective database instance of the distributed database system can be represented as a chain or path of confirmed blocks. In particular, a respective block comprises a number of transactions confirmed in the transaction book. The chaining can be formed by means of chaining checksums. A respective one of the number of node devices of the database instance can store a chain of confirmed blocks, which represents a consensus version of the transaction book of the database instance. In particular, the respective database instance can be a block chain or a block chain, such as a main chain or a side chain.
Eine Anzahl bedeutet vorliegend eine Anzahl von eins oder mehr.In the present case, a number means a number of one or more.
Eine jeweilige Datenbankinstanz ist insbesondere eine verteilte Datenbankinstanz.A respective database instance is in particular a distributed database instance.
Unter "das Datenbanksystem ist dazu eingerichtet" ist insbesondere zu verstehen, dass das Datenbanksystem ein Mittel aufweisen kann, das dazu eingerichtet ist, die jeweilige Funktionalität zu implementieren. Ein jeweiliges Mittel kann ein separat bzw. zentral bereitgestelltes Mittel wie eine separate Einrichtung oder Einheit sein. Alternativ hierzu kann das jeweilige Mittel dezentral bzw. verteilt implementiert sein. Insbesondere kann das jeweilige Mittel durch Funktionalität einer oder mehrerer der mehreren Datenbankinstanzen implementiert sein. Spezieller kann das jeweilige Mittel durch Funktionalität einer jeweiligen Knoteneinrichtung der mehreren Anzahlen Knoteneinrichtungen der mehreren Datenbankinstanzen implementiert sein.“The database system is set up for this” is to be understood in particular to mean that the database system can have a means that is set up to implement the respective functionality. A respective means can be a means provided separately or centrally, such as a separate device or unit. Alternatively, the respective means can be implemented in a decentralized or distributed manner. In particular, the respective means can be implemented by functionality of one or more of the multiple database instances. More specifically, the respective means can be implemented by functionality of a respective node device of the plurality of node devices of the plurality of database instances.
Eine bevorzugte Funktionsweise einer jeweiligen Datenbankinstanz wird kurz erläutert. Die Anzahl Knoteneinrichtungen einer jeweiligen Datenbankinstanz können das Transaktionsbuch der Datenbankinstanz insbesondere auf folgende Weise gemeinsam und konsensbasiert verwalten:A preferred mode of operation of a respective database instance is briefly explained. The number of node devices of a respective database instance can be managed jointly and consensus-based in particular in the following manner in the transaction book of the database instance:
In der jeweiligen Anzahl Knoteneinrichtungen kann eine Kopie bzw. Repräsentation des Transaktionsbuchs der jeweiligen Datenbankinstanz gespeichert sein. Das Transaktionsbuch umfasst eine Kette von bestätigten Transaktionen. Insbesondere umfasst das Transaktionsbuch eine Kette von bestätigten Blöcken, wobei jeder bestätigte Block eine Anzahl von bestätigten Transaktionen umfasst.A copy or representation of the transaction book of the respective database instance can be stored in the respective number of node devices. The transaction book comprises a chain of confirmed transactions. In particular, the transaction book comprises a chain of confirmed blocks, each confirmed block comprising a number of confirmed transactions.
Wird der Datenbankinstanz eine zu bestätigende Transaktion bereitgestellt, kann das Bestätigen der zu bestätigenden Transaktion in dem Transaktionsbuch der Datenbankinstanz insbesondere wie folgt erfolgen:If a transaction to be confirmed is provided to the database instance, the confirmation of the transaction to be confirmed can be made Transaction in the transaction book of the database instance takes place in particular as follows:
Eine blockbildende Knoteneinrichtung der Anzahl Knoteneinrichtungen der Datenbankinstanz kann die zu bestätigende Transaktion in einen von ihr gebildeten Block aufnehmen. Dabei kann die blockbildende Knoteneinrichtung die zu bestätigende Transaktion prüfen. Das Prüfen kann insbesondere das Ausführen eines in der Transaktion umfassten Programmcodes oder Smart Contracts umfassen, welcher die Transaktion beschreibt. Bei erfolgreicher Prüfung kann die blockbildende Knoteneinrichtung den gebildeten Block: mit einer Datenblockprüfsumme gegen Manipulationen absichern; mit einer Verkettungsprüfsumme mit dem letzten bestätigten Block der in der blockbildenden Knoteneinrichtung gespeicherten Repräsentation des Transaktionsbuchs verketten; mit einem der Konsensregel entsprechenden Nachweiswert, wie einem Proof-of-Work, Proof-of-Stake versehen; und den gebildeten Block als unbestätigten Block in der Datenbankinstanz bereitstellen.A block-forming node device of the number of node devices of the database instance can include the transaction to be confirmed in a block formed by it. The block-forming node device can check the transaction to be confirmed. The checking can in particular include the execution of a program code or smart contracts included in the transaction, which describes the transaction. If the check is successful, the block-forming node device can: secure the block formed against manipulation with a data block checksum; concatenate with a chaining checksum with the last confirmed block of the transaction book representation stored in the block-forming node device; provided with a proof value corresponding to the consensus rule, such as a proof-of-work, proof-of-stake; and provide the formed block as an unconfirmed block in the database instance.
Zum Erstellen des Nachweiswerts kann es erforderlich sein, eine vorgegebene Menge an Ressourcen, wie Rechenzeit, Speicherplatz oder Kryptotoken, aufzuwenden oder vorzuhalten. Dies kann dem Schutz gegen nachträgliche Manipulationen dienen.To create the proof value, it may be necessary to use or keep a predetermined amount of resources, such as computing time, storage space or crypto tokens. This can serve as protection against subsequent manipulation.
Daraufhin können eine Mehrzahl und bevorzugt alle der Anzahl Knoteneinrichtungen den in der Datenbank bereitgestellten unbestätigten Block prüfen. Insbesondere kann geprüft werden, ob der Nachweiswert der Konsensregel entspricht, ob der unbestätigte Block mit der in der prüfenden Knoteneinrichtung gespeicherten Repräsentation des Transaktionsbuchs verkettbar ist, ob die Datenblockprüfsumme korrekt ist und ob die in dem unbestätigten Block enthaltenen zu bestätigenden Transaktionen gültig sind, was auf gleiche Weise wie durch die blockbildende Einrichtung beim Bilden des unbestätigten Blocks geprüft werden kann. Bei erfolgreicher Prüfung kann die jeweilige prüfende Knoteneinrichtung den unbestätigten Block an die in ihr gespeicherte Repräsentation des Transaktionsbuchs anfügen.Thereupon a plurality and preferably all of the number of node devices can check the unconfirmed block provided in the database. In particular, it can be checked whether the proof value corresponds to the consensus rule, whether the unconfirmed block can be linked to the representation of the transaction book stored in the verifying node device, whether the data block checksum is correct and whether the transactions to be confirmed contained in the unconfirmed block are valid same way as can be checked by the block forming device when forming the unconfirmed block. If the test is successful, the respective testing node device can activate the unconfirmed block attach the transaction book representation stored in it.
Die von den Knoteneinrichtungen der Datenbankinstanz implementierte und bei dem jeweiligen Prüfen berücksichtigte Konsensregel kann derart eingerichtet sein, dass trotz der Abwesenheit einer Clearing-Stelle und trotz dessen, dass nicht notwendigerweise alle der Knoteneinrichtungen des verteilten Datenbanksystems direkt miteinander kommunizieren und/oder einander vertrauen, sich ein Mehrheitskonsens dergestalt ausbilden kann, dass in der Mehrzahl und bevorzugt allen der Knoteneinrichtungen die gleiche Repräsentation des Transaktionsbuchs der Datenbankinstanz gespeichert ist, die im Vorliegenden als "Konsensversion des Transaktionsbuchs" oder der Einfachheit halber als "das Transaktionsbuch" bezeichnet wird.The consensus rule implemented by the node devices of the database instance and taken into account in the respective checking can be set up in such a way that, despite the absence of a clearing house and despite the fact that not all of the node devices of the distributed database system communicate directly with one another and / or trust one another can form a majority consensus in such a way that in the majority and preferably all of the node devices the same representation of the transaction book of the database instance is stored, which in the present case is referred to as the "consensus version of the transaction book" or, for simplicity, as "the transaction book".
Unter "Bereitstellen in der Datenbankinstanz" im Hinblick auf eine unbestätigte bzw. zu bestätigende Transaktion und/oder einen unbestätigten Block ist insbesondere zu verstehen, dass die unbestätigte Transaktion bzw. der unbestätigte Block an mindestens eine der Knoteneinrichtungen der Datenbankinstanz übermittelt wird. An die übrigen der Knoteneinrichtungen derselben Datenbankinstanz kann die bereitgestellte zu bestätigende Transaktion bzw. der bereitgestellte unbestätigte Block direkt, indirekt oder auf Peer-to-Peer-Weise übermittelt werden.“Provision in the database instance” with regard to an unconfirmed or confirmed transaction and / or an unconfirmed block means in particular that the unconfirmed transaction or unconfirmed block is transmitted to at least one of the node devices of the database instance. The provided transaction to be confirmed or the provided unconfirmed block can be transmitted directly, indirectly or in a peer-to-peer manner to the rest of the node devices of the same database instance.
Analog dazu ist unter "Bereitstellen an das verteilte Datenbanksystem" bzw. "dem verteilten Datenbanksystem Bereitstellen" im Hinblick auf eine unbestätigte bzw. zu bestätigende Transaktion insbesondere zu verstehen, dass die unbestätigte bzw. zu bestätigende Transaktion an mindestens eine der Knoteneinrichtungen einer der Datenbankinstanzen des verteilten Datenbanksystems übermittelt wird, von wo aus sie direkt, indirekt oder auf Peer-to-Peer-Weise an die weitere der Knoteneinrichtungen weiterer der Datenbankinstanzen übermittelt werden kann und vorzugsweise alle der Knoteneinrichtungen aller der Datenbankinstanzen übermittelt werden kann.Analogously to this, “providing to the distributed database system” or “providing the distributed database system” with regard to an unconfirmed or to be confirmed transaction means in particular that the unconfirmed or to be confirmed transaction is to at least one of the node devices of one of the database instances of the distributed database system is transmitted from where it is transmitted directly, indirectly or in a peer-to-peer manner to the other of the node devices of other of the database instances can and preferably all of the node devices of all of the database instances can be transmitted.
Die zu bestätigende Transaktion kann insbesondere eine dem verteilten Datenbanksystem bereitgestellte unbestätigte Transaktion sein.The transaction to be confirmed can in particular be an unconfirmed transaction provided to the distributed database system.
Vorschlagsgemäß trifft das verteilte Datenbanksystem die Entscheidung, durch welche der mehreren Datenbankinstanzen die zu bestätigende Transaktion bestätigt wird. Anders ausgedrückt entscheidet das verteilte Datenbanksystem, in welches eine und/oder in welche mehrere der mehreren Transaktionsbücher des verteilten Datenbanksystems die zu bestätigende Transaktion als bestätigte Transaktion aufgenommen wird.According to the proposal, the distributed database system makes the decision as to which of the several database instances the transaction to be confirmed is confirmed. In other words, the distributed database system decides in which one and / or in which of the several transaction books of the distributed database system the transaction to be confirmed is recorded as a confirmed transaction.
Die Entscheidung kann zentral oder verteilt bzw. konsensbasiert erfolgen. Die Entscheidung kann explizit erfolgen, bevor die zu bestätigende Transaktion basierend auf der Entscheidung an die eine oder die mehreren der mehreren Datenbankinstanzen zum Bestätigen bereitgestellt wird. Die Entscheidung kann implizit erfolgen. Hierbei kann die zu bestätigende Transaktion einer Vielzahl und bevorzugt allen der mehreren Datenbankinstanzen bereitgestellt werden, und die Entscheidung kann implizit mit dem Bestätigen bzw. als Folge des Bestätigens der zu bestätigenden Transaktion durch die eine oder die mehreren der Datenbankinstanzen erfolgen, wie nachstehend noch näher erläutert wird.The decision can be made centrally or distributed or based on consensus. The decision can be made explicitly before the transaction to be confirmed is made available for confirmation based on the decision to the one or more of the multiple database instances. The decision can be made implicitly. Here, the transaction to be confirmed can be made available to a large number and preferably all of the multiple database instances, and the decision can be made implicitly with the confirmation or as a result of the confirmation of the transaction to be confirmed by the one or more database instances, as will be explained in more detail below becomes.
Gemäß einer Ausführungsform ist das verteilte Datenbanksystem dazu eingerichtet, in Abhängigkeit von einem Zustand der jeweiligen Datenbankinstanz zu entscheiden, durch welche der mehreren Datenbankinstanzen die zu bestätigende Transaktion bestätigt wird.According to one embodiment, the distributed database system is set up to decide, depending on a state of the respective database instance, by which of the several database instances the transaction to be confirmed is confirmed.
Unter "Zustand der jeweiligen Datenbankinstanz" ist insbesondere ein automatisiert messbarer oder anderweitig bestimmbarer Zustand zu verstehen, der sich auf den Betrieb des verteilten Datenbanksystems bzw. einer oder mehrerer der mehreren Datenbankinstanzen auswirkt.The “state of the respective database instance” is to be understood in particular as an automatically measurable or otherwise determinable state that relates to the operation of the distributed one Database system or one or more of the multiple database instances affects.
Das verteilte Datenbanksystem kann beispielsweise eingerichtet sein, den Zustand abhängig von einer Anzahl von Parametern zu ermitteln wie: Anzahl der in einem vorgegebenen vergangenen Zeitraum pro Zeiteinheit in einer jeweiligen Datenbankinstanz bestätigten Transaktionen; aktuelle Speichergröße des Transaktionsbuchs einer jeweiligen Datenbankinstanz; aktuelle oder zeitlich gemittelte Transaktions- und/oder Rechenlast der jeweiligen Datenbankinstanz und dergleichen.The distributed database system can, for example, be set up to determine the state depending on a number of parameters, such as: number of transactions confirmed in a given past time period per time unit in a respective database instance; current memory size of the transaction book of a respective database instance; current or time-averaged transaction and / or computing load of the respective database instance and the like.
Die Entscheidung anhand des Zustands kann dabei derart getroffen werden, dass ein möglichst schnelles Bestätigen, eine möglichst günstige Lastverteilung über die Datenbankinstanzen, eine möglichst günstige Verteilung des Speicherbedarfs der jeweiligen Datenbankinstanz und dergleichen erzielt werden können. Auch diese Entscheidung kann explizit vorab oder implizit im Laufe oder als Ergebnis des Bestätigens getroffen werden.The decision based on the state can be made in such a way that the fastest possible confirmation, the best possible load distribution across the database instances, the most favorable distribution of the memory requirement of the respective database instance and the like can be achieved. This decision can also be made explicitly in advance or implicitly during or as a result of the confirmation.
Auf diese Weise kann vorteilhaft eine automatisierte Verteilung der Transaktionslast in dem verteilten Datenbanksystem realisiert werden.In this way, an automated distribution of the transaction load can advantageously be implemented in the distributed database system.
Gemäß einer weiteren Ausführungsform ist das verteilte Datenbanksystem dazu eingerichtet, für jede der Datenbankinstanzen eine Rechenlast zu ermitteln und zu entscheiden, dass die zu bestätigende Transaktion durch die eine oder die mehreren der Datenbankinstanzen mit der geringsten Rechenlast bestätigt wird.According to a further embodiment, the distributed database system is set up to determine a computing load for each of the database instances and to decide that the transaction to be confirmed is confirmed by the one or more of the database instances with the lowest computing load.
Die Last einer jeweiligen Datenbankinstanz kann eine mittlere Last oder eine Spitzenlast der Anzahl Knoteneinrichtungen der Datenbankinstanz sein. Die Last kann insbesondere eine Rechenlast, eine Transaktionslast oder dergleichen sein.The load of each database instance can be an average load or a peak load of the number of node devices of the database instance. The load can in particular be a computing load, a transaction load or the like.
Die Knoteneinrichtungen der Datenbankinstanz können untereinander regelmäßig Lastinformationen austauschen. Analog dazu können die mehreren Datenbankinstanzen untereinander regelmäßig Lastinformationen austauschen. Dergestalt können eine jeweilige Knoteneinrichtung und eine jeweilige Datenbankinstanz über Informationen über eine Last der eigenen sowie der anderen der mehreren Datenbankinstanzen verfügen.The node devices of the database instance can regularly exchange load information with one another. Similarly, the multiple database instances can regularly exchange load information with one another. In this way, a respective node device and a respective database instance can have information about a load of its own as well as the other of the several database instances.
Insbesondere kann eine jeweilige der mehreren Datenbankinstanzen derart eingerichtet sein, dass sie die zu bestätigende Transaktion nur bestätigt, wenn die bestätigende Datenbankinstanz die Datenbankinstanz mit der niedrigsten oder einer der niedrigsten Lasten unter den mehreren Datenbankinstanzen ist.In particular, a respective one of the multiple database instances can be set up in such a way that it only confirms the transaction to be confirmed if the confirming database instance is the database instance with the lowest or one of the lowest loads among the multiple database instances.
Demgemäß kann vorteilhaft eine explizite Entscheidung getroffen werden, die einen Lastausgleich in dem verteilten Datenbanksystem bewirkt.Accordingly, an explicit decision can advantageously be made which balances the load in the distributed database system.
Gemäß einer weiteren Ausführungsform ist das verteilte Datenbanksystem dazu eingerichtet, in Abhängigkeit von einem oder mehreren Rückbezügen der zu bestätigenden Transaktion zu entscheiden, durch welche der mehreren Datenbankinstanzen die zu bestätigende Transaktion bestätigt wird.According to a further embodiment, the distributed database system is set up to decide, depending on one or more references to the transaction to be confirmed, by which of the plurality of database instances the transaction to be confirmed is confirmed.
Eine zu bestätigende Transaktion kann auf vergangene Transaktionen (auch als "rückbezogene Transaktion" bezeichnet) Bezug nehmen. Beispielsweise kann eine Kryptotoken-Transaktion, die ein Kryptotoken aus einem Sender-Wallet an ein Empfänger-Wallet transaktioniert, Bezug auf eine vergangene Kryptotoken-Transaktion nehmen, in welcher das Kryptotoken in das Sender-Wallet transaktioniert wurde, um ihre Berechtigung zum Transaktionieren des Kryptotokens zu dokumentieren.A transaction to be confirmed can refer to past transactions (also referred to as "backward transaction"). For example, a crypto token transaction that transacts a crypto token from a sender wallet to a recipient wallet can refer to a past crypto token transaction in which the crypto token was transacted into the sender wallet for its authorization to transact the crypto token to document.
Insbesondere kann es zum Prüfen der zu bestätigenden Transaktion somit erforderlich sein, vergangene Transaktionen abzurufen bzw. zu überprüfen. In bestimmten Fällen, etwa wenn keine Inter-Chain- bzw. datenbankinstanzübergreifende Kommunikation vorgesehen ist, kann es daher erforderlich sein, dass die zu bestätigende Transaktion in einem bestimmten Transaktionsbuch bestätigt wird, in dem ihre Rückbezüge auflösbar sind.In particular, in order to check the transaction to be confirmed, it may therefore be necessary to call up or check past transactions. In certain cases, such as when there is no inter-chain or cross-database communication is provided, it may therefore be necessary for the transaction to be confirmed to be confirmed in a specific transaction book in which its withdrawals can be reversed.
Die Entscheidung gemäß der vorliegenden Ausführungsform kann implizit beim Bestätigen dadurch erfolgen, dass eine Datenbankinstanz, in welcher der Rückbezug der zu bestätigenden Transaktion nicht auflösbar ist (die rückbezogene Transaktion nicht in dem Transaktionsbuch der Datenbankinstanz vorliegt), die zu bestätigende Transaktion nicht erfolgreich prüfen kann, während diejenige Datenbankinstanz, in welcher der Rückbezug der zu bestätigenden Transaktion auflösbar ist, das Prüfen der zu bestätigenden Transaktion erfolgreich verläuft.The decision according to the present embodiment can be made implicitly when confirming that a database instance in which the reference of the transaction to be confirmed cannot be resolved (the related transaction is not in the transaction book of the database instance) cannot successfully check the transaction to be confirmed, while the database instance in which the back reference of the transaction to be confirmed can be resolved, the checking of the transaction to be confirmed is successful.
Demgemäß können vorteilhaft auch bei einer automatisierten Verteilung von zu bestätigenden Transaktionen über mehrere Datenbankinstanzen diejenigen Transaktionen, die in einer bestimmten der mehreren Datenbankinstanzen bestätigt werden müssen, in der korrekten Datenbankinstanz bestätigt werden.Accordingly, even in the case of an automated distribution of transactions to be confirmed over a plurality of database instances, those transactions which have to be confirmed in a specific one of the plurality of database instances can be confirmed in the correct database instance.
Gemäß einer weiteren Ausführungsform ist das verteilte Datenbanksystem dazu eingerichtet, bei der Entscheidung, durch welche der mehreren Datenbankinstanzen die zu bestätigende Transaktion bestätigt wird, eine jeweilige Datenbankinstanz nur zu berücksichtigen, wenn die Datenbankinstanz von der zu bestätigenden Transaktion spezifiziert ist.According to a further embodiment, the distributed database system is set up to only consider a particular database instance when deciding which of the plurality of database instances the transaction to be confirmed is valid if the database instance is specified by the transaction to be confirmed.
Demgemäß kann eine dem verteilten Datenbanksystem bereitgestellte, zu bestätigende Transaktion spezifizieren, von welcher oder welchen der Datenbankinstanzen sie zu bestätigen ist.Accordingly, a transaction to be confirmed provided to the distributed database system can specify from which or which of the database instances it is to be confirmed.
Beispielsweise kann eine zu bestätigende kritische Transaktion nur solche Datenbankinstanzen spezifizieren, die über ein vordefiniertes Mindest-Manipulationsschutz-Niveau aufweisen, um vorteilhaft zu vermeiden, im Rahmen des automatisierten Lastausgleichs in einer Datenbankinstanz mit zu geringem Manipulationsschutz bestätigt zu werden.For example, a critical transaction to be confirmed can only specify those database instances which have a predefined minimum level of manipulation protection, in order to advantageously avoid them within the scope of the automated one Load balancing in a database instance with insufficient protection against manipulation.
Gemäß einer weiteren Ausführungsform ist das verteilte Datenbanksystem dazu eingerichtet, durch eine automatische dezentrale Konsensbildung zwischen den mehreren Datenbankinstanzen zu entscheiden, durch welche der mehreren Datenbankinstanzen die zu bestätigende Transaktion bestätigt wird.According to a further embodiment, the distributed database system is set up to decide, by means of an automatic, decentralized consensus-building between the several database instances, by which of the several database instances the transaction to be confirmed is confirmed.
Anders ausgedrückt kann auf eine explizite Entscheidung, welche der Datenbankinstanzen die zu bestätigenden Transaktion bestätigt wird, die vor dem Bestätigen getroffen wird, verzichtet werden. Vielmehr kann eine Konkurrenzsituation zwischen den Datenbankinstanzen geschaffen werden, in der sich ein Konsens, welche der Datenbankinstanzen die zu bestätigende Transaktion bestätigt, automatisch herausbildet.In other words, an explicit decision about which of the database instances the transaction to be confirmed that is made before the confirmation is confirmed can be dispensed with. Rather, a competitive situation can be created between the database instances in which a consensus, which confirms the transaction to be confirmed, is automatically established.
Beispielsweise kann eine im Rahmen der Konsensregel einer jeweiligen Datenbankinstanz zu prüfende Bedingung für die Gültigkeit einer Transaktion oder eines Blocks lauten, dass die Transaktion, um als gültig bestätigt zu werden, noch in keiner anderen der Datenbankinstanzen bestätigt sein darf. Dies kann beispielsweise durch Inter-Chain-Kommunikation verifiziert werden.For example, a condition for the validity of a transaction or a block to be checked within the framework of the consensus rule of a respective database instance is that the transaction, in order to be confirmed as valid, must not yet be confirmed in any other of the database instances. This can be verified, for example, by inter-chain communication.
Somit kann vorteilhaft eine selbstregulierende Verteilung der Transaktionslast über mehrere Datenbankinstanzen realisiert werden.A self-regulating distribution of the transaction load over several database instances can thus advantageously be realized.
Gemäß einer weiteren Ausführungsform ist das verteilte Datenbanksystem dazu eingerichtet, eine Anzahl unbestätigter Transaktionen vorzuhalten. Eine jeweilige der mehreren Datenbankinstanzen ist dazu eingerichtet, die zu bestätigende Transaktion unter der vorgehaltenen Anzahl unbestätigter Transaktionen auszuwählen und zu bestätigen. Hierbei ist das verteilte Datenbanksystem dazu eingerichtet, die zu bestätigende Transaktion aus der vorgehaltenen Anzahl unbestätigter Transaktionen zu entfernen, sobald eine definierte Anzahl der Datenbankinstanzen die zu bestätigende Transaktion bestätigt hat.According to a further embodiment, the distributed database system is set up to hold a number of unconfirmed transactions. A respective one of the multiple database instances is set up to select and confirm the transaction to be confirmed from the number of unconfirmed transactions held. Here, the distributed database system is set up to remove the transaction to be confirmed from the number of unconfirmed transactions as soon as a defined number of Database instances has confirmed the transaction to be confirmed.
Die unbestätigte Transaktion kann eine Transaktion sein, die dem Datenbanksystem bereitgestellt wurde und von dem Datenbanksystem zu bestätigen ist. Die Bezeichnung "unbestätigte Transaktion" wird insbesondere verwendet, um eine Transaktion zu bezeichnen, für die noch nicht entschieden ist, welche der Datenbankinstanzen sie bestätigt, während die Bezeichnung "zu bestätigende Transaktion" insbesondere verwendet wird, um eine Transaktion bzw. eine Instanz oder Kopie einer Transaktion zu bezeichnen, die von einer Datenbankinstanz zum Bestätigen ausgewählt wurde.The unconfirmed transaction can be a transaction that has been made available to the database system and is to be confirmed by the database system. The term "unconfirmed transaction" is used in particular to refer to a transaction for which it has not yet been decided which of the database instances it confirms, while the term "transaction to be confirmed" is used in particular to refer to a transaction or an instance or copy Identify a transaction selected by a database instance to confirm.
Unter "vorhalten" ist hierbei insbesondere zu verstehen, dass ein Pool (eine vorgehaltene Anzahl) der unbestätigten Transaktionen in einem zentralen oder dezentralen Speichermittel derart vorgehalten wird, dass eine jeder der Datenbankinstanzen (eine jeder der Knoteneinrichtungen jeder der Datenbankinstanzen) darauf Zugriff hat. Unter einem dezentralen Speichermittel kann dabei beispielsweise verstanden werden, dass eine Instanz des Pools der unbestätigten Transaktionen mindestens einer, bevorzugt, jeder, der Knoteneinrichtungen jeder der Datenbankinstanzen gespeichert ist und Informationen über das Hinzufügen oder Entferner einer Transaktion aus dem Pool auf Peer-to-Peer-Weise oder dergleichen zwischen den Knoteneinrichtungen der Datenbankinstanzen ausgetauscht werden.In this context, “to be held” is to be understood in particular to mean that a pool (a held number) of the unconfirmed transactions is held in a central or decentralized storage means in such a way that each of the database instances (each of the node devices of each of the database instances) has access to them. A decentralized storage means can be understood, for example, to mean that an instance of the pool of unconfirmed transactions is stored at least one, preferably each, of the node devices of each of the database instances and information about the addition or removal of a transaction from the pool to peer-to-peer -Ways or the like are exchanged between the node devices of the database instances.
Die definierte Anzahl der Datenbankinstanzen, die die zu bestätigende Transaktion bestätigt hat, ab derer die zu bestätigende Transaktion aus dem Pool der unbestätigten Transaktion entfernt wird, kann eine vordefinierte Anzahl sein und kann eins oder mehr sein. Die definierte Anzahl kann abhängig von der Art, wie etwa einem gebotenen Manipulationsschutzniveau oder dergleichen, der bestätigenden Datenbankinstanz definiert sein. Beispielsweise kann die zu bestätigende Transaktion entweder aus der vorgehaltenen Anzahl unbestätigter Transaktion entfernt werden, sobald die zu bestätigende Transaktion von einer Haupt-Chain bestätigt wird, oder, sobald die zu bestätigende Transaktion von mehreren Seiten-Chains bestätigt wird.The defined number of database instances that the transaction to be confirmed has confirmed, from which the transaction to be confirmed is removed from the pool of the unconfirmed transaction, can be a predefined number and can be one or more. The defined number can be defined depending on the type, such as a given level of manipulation protection or the like, of the confirming database instance. For example, the transaction to be confirmed can either be from the number of unconfirmed stocks Transaction are removed as soon as the transaction to be confirmed is confirmed by a main chain, or as soon as the transaction to be confirmed is confirmed by several side chains.
Durch das Vorhalten des Pools von unbestätigten Transaktionen, aus dem die zu bestätigende Transaktion entfernt wird, wenn sie genügend oft bestätigt wurde, kann besonders vorteilhaft eine automatische dezentrale Konsensbildung zwischen den mehreren Datenbankinstanzen darüber erfolgen, durch welche der mehreren Datenbankinstanzen die zu bestätigende Transaktion bestätigt wird.By maintaining the pool of unconfirmed transactions, from which the transaction to be confirmed is removed if it has been confirmed enough times, automatic decentralized consensus-building between the several database instances can take place particularly advantageously, by means of which of the several database instances the transaction to be confirmed is confirmed .
Gemäß einer weiteren Ausführungsform ist die definierte Anzahl der Datenbankinstanzen durch die zu bestätigende Transaktion definierbar.According to a further embodiment, the defined number of database instances can be defined by the transaction to be confirmed.
Demgemäß kann die definierte Anzahl der Datenbanksysteme, durch welche die zu bestätigende Transaktion bestätigt wird, bevor sie aus dem Pool der vorgehaltenen unbestätigten Transaktionen entfernt wird, durch die Transaktion definiert bzw. spezifiziert werden.Accordingly, the defined number of database systems by which the transaction to be confirmed is confirmed before it is removed from the pool of held unconfirmed transactions can be defined or specified by the transaction.
Somit kann diese Entscheidung vorteilhaft einem Anwendungsdesigner je nach Art der bereitzustellenden Transaktion überlassen bleiben und muss nicht in dem verteilten Datenbanksystem vordefiniert sein.This decision can thus advantageously be left to an application designer depending on the type of transaction to be provided and need not be predefined in the distributed database system.
Gemäß einer weiteren Ausführungsform ist eine Konsensregel einer jeweiligen der Datenbankinstanzen derart eingerichtet, dass eine Vergütung für das Bestätigen der zu bestätigenden Transaktion nur eine von der zu bestätigenden Transaktion spezifizierte Anzahl Male vergeben wird.According to a further embodiment, a consensus rule of a respective one of the database instances is set up in such a way that remuneration for confirming the transaction to be confirmed is only given a number of times specified by the transaction to be confirmed.
Demgemäß kann ein Anreiz für das Bestätigen einer Transaktion wegfallen, sobald die Transaktion die spezifizierte Anzahl von Malen vergeben worden ist. Somit kann ebenfalls vorteilhaft durch einen Anwendungsdesigner durch geeignetes Wählen der Vergütung und der spezifizierten Anzahl von Malen implizit vorgegeben werden, durch wie viele Datenbankinstanzen die zu bestätigende Transaktion zu bestätigen ist.Accordingly, an incentive to confirm a transaction may be lost once the transaction has been assigned the specified number of times. Thus, it can also be advantageously chosen by an application designer by suitable selection the remuneration and the specified number of times are implicitly specified by how many database instances the transaction to be confirmed is to be confirmed.
Gemäß einer weiteren Ausführungsform ist das Datenbanksystem dazu eingerichtet, die Transaktionsbücher der mehreren Datenbankinstanzen in vordefinierten Zeitabständen miteinander zu synchronisieren.According to a further embodiment, the database system is set up to synchronize the transaction books of the plurality of database instances with one another at predefined time intervals.
Beispielsweise kann in vordefinierten Zeitabständen ein jeweiliger Zustand, der durch die Abfolge von Transaktionen des Transaktionsbuchs der jeweiligen Datenbankinstanz definiert ist, zwischen den Datenbankinstanzen synchronisiert werden.For example, a respective status, which is defined by the sequence of transactions in the transaction book of the respective database instance, can be synchronized between the database instances at predefined time intervals.
Der vordefinierte Zeitabstand kann beispielsweise durch den Zeitabstand vordefiniert sein, der gemäß der Konsensregel derjenigen der Datenbankinstanzen mit der geringsten Blockbildungsrate im Mittel zwischen der Bildung eines oder einer Anzahl von Blöcken verstreicht. Es sei angemerkt, dass der vordefinierte Zeitabstand ein Mittelwert sein kann, der sich im statistischen Mittel ergibt, und die Zeitabstände zwischen zwei jeweiligen Synchronisierung jeweils variieren können.The predefined time interval can, for example, be predefined by the time interval which, according to the consensus rule of those of the database instances with the lowest block formation rate, elapses on average between the formation of one or a number of blocks. It should be noted that the predefined time interval can be an average value, which results in the statistical average, and the time intervals between two respective synchronization can vary.
Durch eine solche regelmäßige Synchronisation zwischen den mehreren Datenbankinstanzen kann vorteilhaft erreicht werden, dass eine neue zu bestätigende Transaktion, die nach einer der Synchronisationen bereitgestellt wird und einen Rückbezug enthält, der sich auf eine Transaktion vor der Synchronisation bezieht, unter Erhalt des Rückbezugs in einer beliebigen der mehreren Datenbankinstanzen bestätigbar ist. In dieser Ausführungsform wird eine zu bestätigende Transaktionen mit Rückbezug beispielsweise genau dann in einer bestimmten Datenbankinstanz bestätigt, wenn ein Rückbezug der zu bestätigenden Transaktion eine rückbezogene Transaktion betrifft, die nach der zurückliegenden letzten Synchronisation bestätigt wurde; andernfalls kann auch eine zu bestätigende Transaktion mit Rückbezug in einer beliebigen der Datenbankinstanzen bestätigt werden.Such a regular synchronization between the several database instances can advantageously achieve that a new transaction to be confirmed, which is provided after one of the synchronizations and contains a reference that relates to a transaction before the synchronization, while maintaining the reference in any one which can be confirmed by several database instances. In this embodiment, a back-to-be-confirmed transaction is confirmed in a specific database instance, for example, if a back-reference of the transaction to be confirmed relates to a back-to-back transaction that was confirmed after the last synchronization in the past; otherwise, a back-referenced transaction can also be confirmed in any of the database instances.
Gemäß einer weiteren Ausführungsform sind die mehreren Datenbankinstanzen dazu eingerichtet, beim Bestätigen der zu bestätigenden Transaktion durch eine der mehreren Datenbankinstanzen einen Rückbezug der zu bestätigenden Transaktion datenbankinstanzübergreifend zu verifizieren.According to a further embodiment, the plurality of database instances are set up to verify that the transaction to be confirmed is referenced back across the database instances when the transaction to be confirmed is confirmed by one of the plurality of database instances.
Dies kann beispielsweise mittels datenbankinstanzübergreifender Kommunikation bzw. Inter-Chain-Kommunikation realisiert werden. Anders ausgedrückt kann eine jeweilige Knoteneinrichtung einer jeder der Datenbankinstanzen mindestens über Lesezugriff auf die Transaktionsbücher auch aller übrigen der Datenbankinstanzen verfügen.This can be achieved, for example, by means of cross-database communication or inter-chain communication. In other words, a respective node device of each of the database instances can have at least read access to the transaction books of all of the other database instances.
Demgemäß kann vorteilhaft jede zu bestätigende Transaktion in jedem der Transaktionsbücher bestätigt werden, da gegebenenfalls vorhandene Rückbezüge der zu bestätigenden Transaktion datenbankinstanzübergreifend auflösbar sein können. Die balancierte Verteilung der Transaktionslast kann dadurch weiter verbessert werden.Accordingly, each transaction to be confirmed can advantageously be confirmed in each of the transaction books, since any existing back references to the transaction to be confirmed can be resolved across database instances. This can further improve the balanced distribution of the transaction load.
Gemäß einer weiteren Ausführungsform ist das Transaktionsbuch einer der mehreren Datenbankinstanzen ein Hauptbuch und das Transaktionsbuch einer jeweiligen weiteren der mehreren Datenbankinstanzen ist ein jeweiliges mit dem Hauptbuch kryptographisch verknüpftes Seitenbuch.According to a further embodiment, the transaction book of one of the plurality of database instances is a general ledger and the transaction book of a respective further of the plurality of database instances is a respective page book cryptographically linked to the general ledger.
Die kryptographische Verknüpfung kann beispielsweise dadurch erzielt werden, dass in dem Hauptbuch in vorgegebenen Zeitabständen ein Hashwert eines jeweils aktuellen Zustands des Seitenbuchs bestätigt wird.The cryptographic link can be achieved, for example, by confirming a hash value of a current status of the page book in the general ledger at predetermined time intervals.
Somit kann vorteilhaft selbst, wenn ein jeweiliges Seitenbuch basierend auf der Konsensregel der zugehörigen Datenbankinstanz einen schwächeren Manipulationsschutz aufweist als das Hauptbuch, das Seitenbuch dennoch langfristig von dem höheren Manipulationsschutz des Hauptbuchs profitieren.Thus, even if a respective page book has weaker protection against manipulation than the general ledger based on the consensus rule of the associated database instance, the page book can nevertheless benefit in the long term from the higher protection against manipulation of the general ledger.
Gemäß einer weiteren Ausführungsform ist das verteilte Datenbanksystem dazu eingerichtet, die zu bestätigende Transaktion entweder in dem Hauptbuch oder in einer Anzahl der Seitenbücher zu bestätigen.According to a further embodiment, the distributed database system is set up to confirm the transaction to be confirmed either in the general ledger or in a number of the side books.
Anders ausgedrückt kann eine einzelne Bestätigung im Hauptbuch ausreichend sein, wohingegen im Falle einer Bestätigung im Nebenbuch mehrere Bestätigungen erforderlich sein können.In other words, a single confirmation in the general ledger may be sufficient, whereas in the case of a confirmation in the subledger, multiple confirmations may be required.
Hierdurch kann vorteilhaft ein Manipulationsschutz der bestätigten Transaktion durch mehrfaches Bestätigen der zu bestätigenden Transaktion in mehreren Seitenbüchern auch dann verbessert werden, wenn die zu bestätigende Transaktion nicht im Hauptbuch bestätigt wird. Wenn die zu bestätigende Transaktion dagegen im Hauptbuch bestätigt wird, kann dies als ausreichend betrachtet werden und Ressourcen für ein mehrfaches Bestätigen in weiteren Transaktionsbüchern können in diesem Fall eingespart werden.In this way, tamper protection of the confirmed transaction can advantageously be improved by repeatedly confirming the transaction to be confirmed in several page books even if the transaction to be confirmed is not confirmed in the general ledger. If, on the other hand, the transaction to be confirmed is confirmed in the general ledger, this can be regarded as sufficient and resources for multiple confirmations in further transaction books can be saved in this case.
Die jeweilige Einheit, zum Beispiel Knoteneinrichtung, Datenbanksystem und/oder verteiltes Datenbanksystem, kann hardwaretechnisch und/oder auch softwaretechnisch implementiert sein. Bei einer hardwaretechnischen Implementierung kann die jeweilige Einheit als Vorrichtung oder als Teil einer Vorrichtung, zum Beispiel als Computer oder als Mikroprozessor oder als Steuerrechner ausgebildet sein. Bei einer softwaretechnischen Implementierung kann die jeweilige Einheit als Computerprogrammprodukt, als eine Funktion, als eine Routine, als Teil eines Programmcodes oder als ausführbares Objekt ausgebildet sein.The respective unit, for example a node device, database system and / or distributed database system, can be implemented in terms of hardware and / or software. In the case of a hardware implementation, the respective unit can be designed as a device or as part of a device, for example as a computer or as a microprocessor or as a control computer. In the case of a software implementation, the respective unit can be designed as a computer program product, as a function, as a routine, as part of a program code or as an executable object.
Weiterhin wird ein Computerprogrammprodukt vorgeschlagen, welches auf einer programmgesteuerten Einrichtung die Durchführung des wie oben erläuterten Verfahrens veranlasst.Furthermore, a computer program product is proposed, which causes the method as explained above to be carried out on a program-controlled device.
Ein Computerprogrammprodukt, wie z.B. ein Computerprogramm-Mittel, kann beispielsweise als Speichermedium, wie z.B. Speicherkarte, USB-Stick, CD-ROM, DVD, oder auch in Form einer herunterladbaren Datei von einem Server in einem Netzwerk bereitgestellt oder geliefert werden. Dies kann zum Beispiel in einem drahtlosen Kommunikationsnetzwerk durch die Übertragung einer entsprechenden Datei mit dem Computerprogrammprodukt oder dem Computerprogramm-Mittel erfolgen.A computer program product, such as a computer program means, can, for example, as a storage medium, such as a memory card, USB stick, CD-ROM, DVD, or also in the form of a downloadable file provided or delivered from a server on a network. This can be done, for example, in a wireless communication network by transmitting a corresponding file with the computer program product or the computer program means.
Gemäß einem weiteren Aspekt wird ein Verfahren zum Betreiben eines verteilten Datenbanksystems mit mehreren Datenbankinstanzen vorgeschlagen. Eine jeweilige der mehreren Datenbankinstanzen ist durch eine Anzahl Knoteneinrichtungen gebilde, die dazu eingerichtet sind, gemeinsam konsensbasiert eines von mehreren Transaktionsbüchern des verteilten Datenbanksystems zu verwalten. Das Verfahren umfasst ein Bestätigen einer zu bestätigenden Transaktion durch Aufnehmen in das Transaktionsbuch einer oder mehrerer der mehreren Datenbankinstanzen, wobei das verteilte Datenbanksystem entscheidet, durch welche der mehreren Datenbankinstanzen die zu bestätigende Transaktion bestätigt wird.According to a further aspect, a method for operating a distributed database system with several database instances is proposed. A respective one of the several database instances is formed by a number of node devices, which are set up to jointly manage one of several transaction books of the distributed database system based on consensus. The method comprises confirming a transaction to be confirmed by adding one or more of the multiple database instances to the transaction book, the distributed database system deciding which of the multiple database instances to confirm the transaction to be confirmed.
Die für das vorgeschlagene verteilte Datenbanksystem beschriebenen Ausführungsformen und Merkmale gelten für das vorgeschlagene Verfahren entsprechend.The embodiments and features described for the proposed distributed database system apply accordingly to the proposed method.
Nähere Einzelheiten und weitere Varianten von auf Blockketten-Technologie basierenden verteilten Datenbanksystemen, auf die die vorgeschlagene Lösung anwendbar ist, werden im Folgenden erläutert.Further details and further variants of distributed database systems based on block chain technology, to which the proposed solution is applicable, are explained below.
Sofern es in der nachstehenden Beschreibung nicht anders angegeben ist, beziehen sich die Begriffe "durchführen", "berechnen", "rechnergestützt", "rechnen", "feststellen", "generieren", "konfigurieren", "rekonstruieren" und dergleichen vorzugsweise auf Handlungen und/oder Prozesse und/oder Verarbeitungsschritte, die Daten verändern und/oder erzeugen und/oder die Daten in andere Daten überführen, wobei die Daten insbesondere als physikalische Größen dargestellt werden oder vorliegen können, beispielsweise als elektrische Impulse. Insbesondere sollte der Ausdruck "Computer" möglichst breit ausgelegt werden, um insbesondere alle elektronischen Geräte mit Datenverarbeitungseigenschaften abzudecken. Computer können somit beispielsweise Personal Computer, Server, speicherprogrammierbare Steuerungen (SPS), Handheld-Computer-Systeme, Pocket-PC-Geräte, Mobilfunkgeräte und andere Kommunikationsgeräte, die rechnergestützt Daten verarbeiten können, Prozessoren und andere elektronische Geräte zur Datenverarbeitung sein.Unless otherwise stated in the description below, the terms "perform", "calculate", "computer-aided", "calculate", "determine", "generate", "configure", "reconstruct" and the like preferably refer to Actions and / or processes and / or processing steps that change and / or generate data and / or convert the data into other data, the data being represented or may be present in particular as physical quantities, for example as electrical impulses. In particular, the term "computer" should be as possible be broadly designed to cover in particular all electronic devices with data processing properties. Computers can thus be, for example, personal computers, servers, programmable logic controllers (PLC), handheld computer systems, pocket PC devices, mobile radio devices and other communication devices which can process data with the aid of computers, processors and other electronic devices for data processing.
Unter "rechnergestützt" kann im Zusammenhang mit der Erfindung beispielsweise eine Implementierung des Verfahrens verstanden werden, bei dem insbesondere ein Prozessor mindestens einen Verfahrensschritt des Verfahrens ausführt.In the context of the invention, “computer-aided” can be understood to mean, for example, an implementation of the method in which, in particular, a processor executes at least one method step of the method.
Unter einem Prozessor kann im Zusammenhang mit der Erfindung beispielsweise eine Maschine oder eine elektronische Schaltung verstanden werden. Bei einem Prozessor kann es sich insbesondere um einen Hauptprozessor (engl. Central Processing Unit, CPU), einen Mikroprozessor oder einen Mikrokontroller, beispielsweise eine anwendungsspezifische integrierte Schaltung oder einen digitalen Signalprozessor, möglicherweise in Kombination mit einer Speichereinheit zum Speichern von Programmbefehlen, etc. handeln. Bei einem Prozessor kann es sich beispielsweise auch um einen IC (integrierter Schaltkreis, engl. Integrated Circuit), insbesondere einen FPGA (engl. Field Programmable Gate Array) oder einen ASIC (anwendungsspezifische integrierte Schaltung, engl. Application-Specific Integrated Circuit), oder einen DSP (Digitaler Signalprozessor, engl. Digital Signal Processor) oder einen Grafikprozessor GPU (Graphic Processing Unit) handeln. Auch kann unter einem Prozessor ein virtualisierter Prozessor, eine virtuelle Maschine oder eine Soft-CPU verstanden werden. Es kann sich beispielsweise auch um einen programmierbaren Prozessor handeln, der mit Konfigurationsschritten zur Ausführung des genannten erfindungsgemäßen Verfahrens ausgerüstet wird oder mit Konfigurationsschritten derart konfiguriert ist, dass der programmierbare Prozessor die erfindungsgemäßen Merkmale des Verfahrens, der Komponente, der Module oder anderer Aspekte und/oder Teilaspekte der Erfindung realisiert.In the context of the invention, a processor can be understood to mean, for example, a machine or an electronic circuit. A processor can in particular be a main processor (English: Central Processing Unit, CPU), a microprocessor or a microcontroller, for example an application-specific integrated circuit or a digital signal processor, possibly in combination with a memory unit for storing program instructions, etc. . A processor can also be, for example, an IC (Integrated Circuit), in particular an FPGA (Field Programmable Gate Array) or an ASIC (Application-Specific Integrated Circuit), or a DSP (digital signal processor) or a graphics processor GPU (Graphic Processing Unit). A processor can also be understood to mean a virtualized processor, a virtual machine or a soft CPU. It can also be a programmable processor, for example, which is equipped with configuration steps for executing the method according to the invention or is configured with configuration steps such that the programmable processor executes the inventive methods Features of the method, the component, the modules or other aspects and / or partial aspects of the invention are realized.
Unter einer "Speichereinheit", einem "Speichermodul" und dergleichen kann im Zusammenhang mit der Erfindung beispielsweise ein flüchtiger Speicher in Form von Arbeitsspeicher (engl. Random-Access Memory, RAM) oder ein dauerhafter Speicher wie eine Festplatte oder ein Datenträger verstanden werden.A “storage unit”, a “storage module” and the like can be understood in connection with the invention, for example, to be volatile memory in the form of random access memory (RAM) or permanent storage such as a hard disk or a data carrier.
Unter einem "Modul" kann im Zusammenhang mit der Erfindung beispielsweise ein Prozessor und/oder eine Speichereinheit zum Speichern von Programmbefehlen verstanden werden. Beispielsweise ist der Prozessor speziell dazu eingerichtet, die Programmbefehle derart auszuführen, damit der Prozessor Funktionen ausführt, um das erfindungsgemäße Verfahren oder einen Schritt des erfindungsgemäßen Verfahrens zu implementieren oder realisieren. Ein Modul kann beispielsweise auch ein Knoten des verteilten Datenbanksystems sein, der beispielsweise die spezifischen Funktionen/Merkmale eines entsprechenden Moduls realisiert. Die jeweiligen Module können beispielsweise auch als separate bzw. eigenständige Module ausgebildet sein. Hierzu können die entsprechenden Module beispielsweise weitere Elemente umfassen. Diese Elemente sind beispielsweise eine oder mehrere Schnittstellen (z. B. Datenbankschnittstellen, Kommunikationsschnittstellen - z. B. Netzwerkschnittstelle, WLAN-Schnittstelle) und/oder eine Evaluierungseinheit (z. B. ein Prozessor) und/oder eine Speichereinheit. Mittels der Schnittstellen können beispielsweise Daten ausgetauscht (z. B. empfangen, übermittelt, gesendet oder bereitgestellt werden). Mittels der Evaluierungseinheit können Daten beispielsweise rechnergestützt und/oder automatisiert verglichen, überprüft, verarbeitet, zugeordnet oder berechnet werden. Mittels der Speichereinheit können Daten beispielsweise rechnergestützt und/oder automatisiert gespeichert, abgerufen oder bereitgestellt werden.In the context of the invention, a “module” can be understood to mean, for example, a processor and / or a storage unit for storing program instructions. For example, the processor is specifically designed to execute the program instructions in such a way that the processor executes functions in order to implement or implement the method according to the invention or a step of the method according to the invention. A module can, for example, also be a node of the distributed database system, which, for example, realizes the specific functions / features of a corresponding module. The respective modules can for example also be designed as separate or independent modules. For this purpose, the corresponding modules can include further elements, for example. These elements are, for example, one or more interfaces (e.g. database interfaces, communication interfaces - e.g. network interface, WLAN interface) and / or an evaluation unit (e.g. a processor) and / or a storage unit. For example, data can be exchanged using the interfaces (e.g. received, transmitted, sent or made available). By means of the evaluation unit, data can be compared, checked, processed, assigned or calculated, for example in a computer-assisted and / or automated manner. By means of the storage unit, data can be stored, accessed or made available, for example, in a computer-assisted and / or automated manner.
Unter "umfassen", insbesondere in Bezug auf Daten und/oder Informationen, kann im Zusammenhang mit der Erfindung beispielsweise ein (rechnergestütztes) Speichern einer entsprechenden Information bzw. eines entsprechenden Datums in einer Datenstruktur/Datensatz (die z. B. wiederum in einer Speichereinheit gespeichert ist) verstanden werden.Under "include", particularly in relation to data and / or information, may be in connection with the invention, for example a (computer-aided) storage of corresponding information or a corresponding date in a data structure / data record (which, for example, is in turn stored in a storage unit) can be understood.
Unter "zuordnen", insbesondere in Bezug auf Daten und/oder Informationen, kann im Zusammenhang mit der Erfindung beispielsweise eine rechnergestützte Zuordnung von Daten und/oder Informationen verstanden werden. Beispielsweise wird einem ersten Datum hierzu mittels einer Speicheradresse oder eines eindeutigen Identifizierers (engl. unique identifier (UID)) ein zweites Datum zugeordnet, in dem z. B. das erste Datum zusammen mit der Speicheradresse oder des eindeutigen Identifizierers des zweiten Datums zusammen in einem Datensatz gespeichert wird.“Assign”, in particular with regard to data and / or information, can be understood in connection with the invention, for example, to be a computer-assisted assignment of data and / or information. For example, a first date is assigned a second date using a memory address or a unique identifier (UID), in which e.g. B. the first date is stored together with the memory address or the unique identifier of the second date together in a data record.
Unter "bereitstellen", insbesondere in Bezug auf Daten und/oder Informationen, kann im Zusammenhang mit der Erfindung beispielsweise ein rechnergestütztes Bereitstellen verstanden werden. Das Bereitstellen erfolgt beispielsweise über eine Schnittstelle (z. B. eine Datenbankschnittstelle, eine Netzwerkschnittstelle, eine Schnittstelle zu einer Speichereinheit). Über diese Schnittstelle können beispielsweise beim Bereitstellen entsprechende Daten und/oder Informationen übermittelt und/oder gesendet und/oder abgerufen und/oder empfangen werden.In the context of the invention, “providing”, in particular with regard to data and / or information, can be understood to mean, for example, computer-assisted provision. The provision takes place, for example, via an interface (for example a database interface, a network interface, an interface to a storage unit). Corresponding data and / or information can be transmitted and / or sent and / or called up and / or received via this interface, for example when it is made available.
Unter "bereitstellen" kann im Zusammenhang mit der Erfindung beispielsweise auch ein Laden oder ein Speichern, beispielsweise einer Transaktion mit entsprechenden Daten verstanden werden. Dies kann beispielsweise auf oder von einem Speichermodul erfolgen. Unter "Bereitstellen" kann beispielsweise auch ein Übertragen (oder ein Senden oder ein Übermitteln) von entsprechenden Daten von einem Knoten zu einem anderen Knoten der Blockkette oder des verteilten Datenbanksystems (bzw. deren Infrastruktur) verstanden werden.In connection with the invention, “provide” can also be understood to mean, for example, loading or storing, for example a transaction with corresponding data. This can be done, for example, on or from a memory module. “Provision” can also be understood to mean, for example, a transmission (or a transmission or a transmission) of corresponding data from one node to another node of the block chain or of the distributed database system (or its infrastructure).
Unter "Smart-Contract-Prozess" kann im Zusammenhang mit der Erfindung insbesondere ein Ausführen eines Programmcodes (z. B. der Steuerbefehle) in einem Prozess durch das verteilte Datenbanksystem bzw. deren Infrastruktur verstanden werden.In connection with the invention, a “smart contract process” can be understood in particular to mean executing a program code (for example the control commands) in a process by the distributed database system or its infrastructure.
Unter einer "Prüfsumme", beispielsweise eine Datenblockprüfsumme, eine Datenprüfsumme, eine Knotenprüfsumme, eine Transaktionsprüfsumme, eine Verkettungsprüfsumme oder dergleichen, kann im Zusammenhang mit der Erfindung beispielsweise eine kryptographische Prüfsumme oder kryptographischer Hash bzw. Hash-Wert verstanden werden, die insbesondere mittels einer kryptographischen Hashfunktion über einen Datensatz und/oder Daten und/oder eine oder mehrere der Transaktionen und/oder einem Teilbereich eines Datenblocks (z. B. der Block-Header eines Blocks einer Blockkette oder Datenblock-Header eines Datenblocks des verteilten Datenbanksystems oder nur einem Teil der Transaktionen eines Datenblocks) gebildet oder berechnet werden. Bei einer Prüfsumme kann es sich insbesondere um eine Prüfsumme/n oder Hash-Wert/e eines Hash-Baumes (z. B. Merkle-Baum, Patricia-Baum) handeln. Weiterhin kann darunter insbesondere auch eine digitale Signatur oder ein kryptographischer Nachrichtenauthentisierungscode verstanden werden. Mittels der Prüfsummen kann beispielsweise auf unterschiedlichen Ebenen des Datenbanksystems ein kryptographischer Schutz/Manipulationsschutz für die Transaktionen und die darin gespeicherten Daten (sätze) realisiert werden. Ist beispielsweise eine hohe Sicherheit gefordert, werden beispielsweise die Prüfsummen auf Transaktionsebene erzeugt und überprüft. Ist eine weniger hohe Sicherheit gefordert, werden beispielsweise die Prüfsummen auf Blockebene (z. B. über den ganzen Datenblock oder nur über einen Teil des Datenblocks und/oder einen Teil der Transaktionen) erzeugt und überprüft.A "checksum", for example a data block checksum, a data checksum, a node checksum, a transaction checksum, a chaining checksum or the like, can be understood in connection with the invention, for example, to be a cryptographic checksum or cryptographic hash or hash value, in particular by means of a cryptographic Hash function via a data record and / or data and / or one or more of the transactions and / or a partial area of a data block (e.g. the block header of a block of a block chain or data block header of a data block of the distributed database system or only a part of the Transactions of a data block) are formed or calculated. A checksum can in particular be a checksum or hash value (s) of a hash tree (e.g. Merkle tree, Patricia tree). Furthermore, this can in particular also be understood to mean a digital signature or a cryptographic message authentication code. Using the checksums, for example, cryptographic protection / manipulation protection for the transactions and the data (records) stored therein can be implemented on different levels of the database system. For example, if a high level of security is required, the checksums are generated and checked at the transaction level. If less security is required, the checksums are generated and checked at the block level (e.g. over the entire data block or only over part of the data block and / or part of the transactions).
Unter einer "Datenblockprüfsumme" kann im Zusammenhang mit der Erfindung eine Prüfsumme verstanden werden, die beispielsweise über einen Teil oder alle Transaktionen eines Datenblocks berechnet wird. Ein Knoten kann dann beispielsweise die Integrität/Authentizität des entsprechenden Teils eines Datenblocks mittels der Datenblockprüfsumme prüfen/feststellen. Zusätzlich oder alternativ kann die Datenblockprüfsumme insbesondere auch über Transaktionen eines vorhergehenden Datenblocks/Vorgänger-Datenblocks des Datenblocks gebildet worden sein. Die Datenblockprüfsumme kann dabei insbesondere auch mittels eines Hash-Baumes, beispielsweise einem Merkle-Baum [1] oder einem Patricia-Baum, realisiert werden, wobei die Datenblockprüfsumme insbesondere die Wurzel-Prüfsumme des Merkle-Baumes bzw. eines Patricia-Baumes bzw. eines binären Hash-Baumes ist. Insbesondere werden Transaktionen mittels weiterer Prüfsummen aus dem Merkle-Baum bzw. Patricia-Baum abgesichert (z. B. unter Verwendung der Transaktionsprüfsummen), wobei insbesondere die weiteren Prüfsummen Blätter im Merkle-Baum bzw. Patricia-Baum sind. Die Datenblockprüfsumme kann damit beispielsweise die Transaktionen absichern, indem die Wurzel-Prüfsumme aus den weiteren Prüfsummen gebildet wird. Die Datenblockprüfsumme kann insbesondere für Transaktionen eines bestimmten Datenblocks der Datenblöcke berechnet werden. Insbesondere kann eine solche Datenblockprüfsumme in einen nachfolgenden Datenblock des bestimmten Datenblocks eingehen, um diesen nachfolgenden Datenblock beispielsweise mit seinen vorhergehenden Datenblöcken zu verketten und insbesondere damit eine Integrität des verteilten Datenbanksystems prüfbar zu machen. Hierdurch kann die Datenblockprüfsumme beispielsweise die Funktion der Verkettungsprüfsumme übernehmen oder in die Verkettungsprüfsumme eingehen. Der Header eines Datenblocks (z. B. eines neuen Datenblocks oder des Datenblocks für den die Datenblockprüfsumme gebildet wurde) kann beispielsweise die Datenblockprüfsumme umfassen.In the context of the invention, a “data block checksum” can be understood to mean a checksum which is calculated, for example, over part or all of the transactions in a data block. A node can then, for example Check / determine the integrity / authenticity of the corresponding part of a data block using the data block checksum. Additionally or alternatively, the data block checksum can in particular also have been formed via transactions of a previous data block / predecessor data block of the data block. The data block checksum can in particular also be implemented by means of a hash tree, for example a Merkle tree [1] or a Patricia tree, the data block checksum in particular the root checksum of the Merkle tree or a Patricia tree or one binary hash tree. In particular, transactions are secured by means of further checksums from the Merkle tree or Patricia tree (e.g. using the transaction checksums), the further checksums in particular being leaves in the Merkle tree or Patricia tree. The data block checksum can thus secure the transactions, for example, by forming the root checksum from the further checksums. The data block checksum can be calculated in particular for transactions of a specific data block of the data blocks. In particular, such a data block checksum can be included in a subsequent data block of the specific data block in order to chain this subsequent data block, for example, with its previous data blocks and, in particular, thereby to make it possible to check the integrity of the distributed database system. As a result, the data block checksum can, for example, take over the function of the chaining checksum or be included in the chaining checksum. The header of a data block (e.g. a new data block or the data block for which the data block checksum was formed) can comprise the data block checksum, for example.
Unter "Transaktionsprüfsumme" kann im Zusammenhang mit der Erfindung eine Prüfsumme verstanden werden, die insbesondere über eine Transaktion eines Datenblocks gebildet wird. Zusätzlich kann beispielsweise eine Berechnung einer Datenblockprüfsumme für einen entsprechenden Datenblock beschleunigt werden, da hierfür beispielsweise bereits berechnete Transaktionsprüfsummen gleich als Blätter z. B. eines Merkle-Baumes verwendet werden können.“Transaction checksum” can be understood in connection with the invention as a checksum that is formed in particular via a transaction of a data block. In addition, a calculation of a data block checksum for a corresponding data block can be accelerated, for example, since calculations for this have already been calculated Transaction checksums as sheets z. B. a Merkle tree can be used.
Unter einer "Verkettungsprüfsumme" kann im Zusammenhang mit der Erfindung eine Prüfsumme verstanden werden, die insbesondere einen jeweiligen Datenblock des verteilten Datenbanksystems den vorhergehenden Datenblock des verteilten Datenbanksystems angibt bzw. referenziert (in der Fachliteratur insbesondere häufig als "previous block hash" bezeichnet) [1]. Hierfür wird insbesondere für den entsprechenden vorhergehenden Datenblock eine entsprechende Verkettungsprüfsumme gebildet. Als Verkettungsprüfsumme kann beispielsweise eine Transaktionsprüfsumme oder die Datenblockprüfsumme eines Datenblocks (also ein vorhandener Datenblock des verteilten Datenbanksystems) verwendet werden, um einen neuen Datenblock mit einem (vorhandenen) Datenblock des verteilten Datenbanksystems zu verketten. Es ist beispielsweise aber auch möglich, dass eine Prüfsumme über einen Header des vorhergehenden Datenblocks oder über den gesamten vorhergehenden Datenblock gebildet wird und als Verkettungsprüfsumme verwendet wird. Dies kann beispielsweise auch für mehrere oder alle vorhergehenden Datenblöcke berechnet werden. Es ist beispielsweise auch realisierbar, dass über den Header eines Datenblocks und der Datenblockprüfsumme die Verkettungsprüfsumme gebildet wird. Ein jeweiliger Datenblock des verteilten Datenbanksystems umfasst jedoch vorzugsweise jeweils eine Verkettungsprüfsumme, die für einen vorhergehenden Datenblock, insbesondere noch bevorzugter den direkt vorhergehenden Datenblock, des jeweiligen Datenblockes berechnet wurde bzw. sich auf diesen beziehen. Es ist beispielsweise auch möglich, dass eine entsprechende Verkettungsprüfsumme auch nur über einen Teil des entsprechenden Datenblocks (z. B. vorhergehenden Datenblock) gebildet wird. Hierdurch kann zum Beispiel ein Datenblock realisiert werden, der einen integritätsgeschützten Teil und einen ungeschützten Teil umfasst. Damit ließe sich beispielsweise ein Datenblock realisieren, dessen integritätsgeschützter Teil unveränderlich ist und dessen ungeschützter Teil auch noch später verändert werden kann. Unter integritätsgeschützt ist dabei insbesondere zu verstehen, dass eine Veränderung von integritätsgeschützten Daten mittels einer Prüfsumme feststellbar ist.In the context of the invention, a "chaining checksum" can be understood to mean a checksum which in particular indicates or references a respective data block of the distributed database system to the previous data block of the distributed database system (frequently referred to in the specialist literature as "previous block hash") [1 ]. For this purpose, a corresponding chaining checksum is formed, in particular for the corresponding previous data block. For example, a transaction checksum or the data block checksum of a data block (that is, an existing data block of the distributed database system) can be used as the chaining checksum in order to chain a new data block with an (existing) data block of the distributed database system. However, it is also possible, for example, for a checksum to be formed via a header of the previous data block or over the entire previous data block and to be used as a chaining checksum. This can also be calculated for several or all of the previous data blocks, for example. It is also possible, for example, for the chaining checksum to be formed via the header of a data block and the data block checksum. However, a respective data block of the distributed database system preferably comprises a chaining checksum, which was calculated for a previous data block, in particular even more preferably the directly preceding data block, of the respective data block or refer to it. For example, it is also possible for a corresponding chaining checksum to be formed only over part of the corresponding data block (for example, previous data block). In this way, for example, a data block can be realized which comprises an integrity-protected part and an unprotected part. This could be used, for example, to implement a data block whose integrity-protected part cannot be changed and whose unprotected part can also be changed later. Under In this case, integrity-protected means in particular that a change in integrity-protected data can be determined by means of a checksum.
Die Daten, die beispielsweise in einer Transaktion eines Datenblocks gespeichert werden, können insbesondere auf unterschiedliche Weise bereitgestellt werden. Anstelle der Daten, z. B. Nutzerdaten wie Messdaten, Messwerte, Steuerwerte, oder Daten/Eigentumsverhältnisse zu Assets, kann beispielsweise eine Transaktion eines Datenblocks nur die Prüfsumme für diese Daten umfassen. Die entsprechende Prüfsumme kann dabei auf unterschiedliche Weise realisiert werden. Dies kann z. B. eine entsprechende Datenblockprüfsumme eines Datenblocks (mit den entsprechenden Daten) einer anderen Datenbank oder des verteilten Datenbanksystems sein, eine Transaktionsprüfsumme eines Datenblocks mit den entsprechenden Daten (des verteilten Datenbanksystems oder einer anderen Datenbank) oder eine Datenprüfsumme, die über die Daten gebildet wurde.The data, which are stored, for example, in a transaction of a data block, can in particular be provided in different ways. Instead of the data, e.g. B. User data such as measurement data, measurement values, control values, or data / ownership relationships to assets, for example, a transaction of a data block can only include the checksum for this data. The corresponding checksum can be implemented in different ways. This can e.g. B. a corresponding data block checksum of a data block (with the corresponding data) of another database or the distributed database system, a transaction checksum of a data block with the corresponding data (of the distributed database system or another database) or a data checksum that was formed over the data.
Zusätzlich kann die entsprechende Transaktion einen Verweis oder eine Angabe zu einem Speicherort (z. B. eine Adresse eines Fileservers und Angaben, wo die entsprechenden Daten auf dem Fileserver zu finden sind; oder eine Adresse einer anderen verteilten Datenbank, welche die Daten umfasst) umfassen. Die entsprechenden Daten könnten dann beispielsweise auch in einer weiteren Transaktion eines weiteren Datenblocks des verteilten Datenbanksystems bereitgestellt werden (z. B. wenn die entsprechenden Daten und die zugehörigen Prüfsummen in unterschiedlichen Datenblöcken umfasst sind). Es ist beispielsweise aber auch denkbar, dass diese Daten über einen anderen Kommunikationskanal (z. B. über eine andere Datenbank und/oder einen kryptographisch gesicherten Kommunikationskanal) bereitgestellt werden.In addition, the corresponding transaction can include a reference or an indication of a storage location (e.g. an address of a file server and details of where the corresponding data can be found on the file server; or an address of another distributed database which comprises the data) . The corresponding data could then, for example, also be provided in a further transaction of a further data block of the distributed database system (for example if the corresponding data and the associated checksums are contained in different data blocks). However, it is also conceivable, for example, that this data is made available via another communication channel (eg via another database and / or a cryptographically secured communication channel).
Auch kann beispielsweise zusätzlich zu der Prüfsumme ein Zusatzdatensatz (z. B. ein Verweis oder eine Angabe zu einem Speicherort) in der entsprechenden Transaktion abgelegt sein, der insbesondere einen Speicherort angibt, wo die Daten abgerufen werden können. Das ist insbesondere dahingehend vorteilhaft, um eine Datengröße der Blockkette oder des verteilten Datenbanksystems möglichst gering zu halten.In addition to the checksum, for example, an additional data record (for example a reference or information on a storage location) can also be stored in the corresponding transaction, which in particular indicates a storage location where the data is retrieved can be. This is particularly advantageous in order to keep the data size of the block chain or the distributed database system as small as possible.
Unter "sicherheitsgeschützt" kann im Zusammenhang mit der Erfindung beispielsweise ein Schutz verstanden werden, der insbesondere durch ein kryptographisches Verfahren realisiert wird. Beispielsweise kann dies durch Nutzung des verteilten Datenbanksystems für das Bereitstellen oder Übertragen oder Senden von entsprechenden Daten/Transaktionen realisiert werden. Dies wird vorzugsweise durch eine Kombination der verschiedenen (kryptographischen) Prüfsummen erreicht, indem diese insbesondere synergetisch zusammenwirken, um beispielsweise die Sicherheit bzw. die kryptographische Sicherheit für die Daten der Transaktionen zu verbessern. Anders gesagt kann insbesondere unter "sicherheitsgeschützt" im Zusammenhang mit der Erfindung auch "kryptographisch geschützt" und/oder "manipulationsgeschützt" verstanden werden. Dabei kann "manipulationsgeschützt" auch als "integritätsgeschützt" bezeichnet werden.In the context of the invention, “security-protected” can be understood to mean, for example, protection that is implemented in particular by a cryptographic method. For example, this can be implemented by using the distributed database system for the provision or transmission or transmission of corresponding data / transactions. This is preferably achieved by a combination of the different (cryptographic) checksums, in particular by synergistically interacting, for example to improve the security or the cryptographic security for the data of the transactions. In other words, "security-protected" in connection with the invention can also be understood to mean "cryptographically protected" and / or "manipulation-protected". "Tamper-proof" can also be referred to as "integrity-protected".
Unter "Verketten der/von Datenblöcken eines verteilten Datenbanksystems" kann im Zusammenhang mit der Erfindung beispielsweise verstanden werden, dass Datenblöcke jeweils eine Information (z. B. Verkettungsprüfsumme) umfassen, die auf einen anderen Datenblock oder mehrere andere Datenblöcke des verteilten Datenbanksystems verweisen bzw. diese referenzieren [1] [4] [5] .In the context of the invention, “linking the / of data blocks of a distributed database system” can be understood, for example, to mean that data blocks each comprise information (for example, chaining checksum) which refer to another data block or several other data blocks of the distributed database system or these refer to [1] [4] [5].
Unter "Einfügen in das verteilte Datenbanksystem" und dergleichen kann im Zusammenhang mit der Erfindung beispielsweise verstanden werden, dass insbesondere eine Transaktion bzw. die Transaktionen oder ein Datenblock mit seinen Transaktionen an einen oder mehrere Knoten eines verteilten Datenbanksystems übermittelt wird. Werden diese Transaktionen beispielsweise erfolgreich validiert (z. B. durch den/die Knoten), werden diese Transaktionen insbesondere als neuer Datenblock mit mindestens einem vorhandenen Datenblock des verteilten Datenbanksystems verkettet [1][4][5]. Hierzu werden die entsprechenden Transaktionen beispielsweise in einem neuen Datenblock gespeichert. Insbesondere kann dieses Validieren und/oder Verketten durch einen vertrauenswürdigen Knoten (z. B. einen Mining Node, ein Blockketten-Orakel oder eine Blockketten-Plattform) erfolgen. Insbesondere kann dabei unter einer Blockketten-Plattform eine Blockkette als Dienst (engl. Blockkette als Service) verstanden werden, wie dies insbesondere durch Microsoft oder IBM vorgeschlagen wird. Insbesondere können ein vertrauenswürdiger Knoten und/oder ein Knoten jeweils eine Knoten-Prüfsumme (z. B. eine digitale Signatur) in einem Datenblock hinterlegen (z. B. in denen von ihnen validierten und erzeugten Datenblock, der dann verkettet wird), um insbesondere eine Identifizierbarkeit des Erstellers des Datenblockes zu ermöglichen und/oder eine Identifizierbarkeit des Knotens zu ermöglichen. Dabei gibt diese Knoten-Prüfsumme an, welcher Knoten beispielsweise den entsprechenden Datenblock mit mindestens einem anderen Datenblock des verteilten Datenbanksystems verkettet hat.“Inserting into the distributed database system” and the like can be understood in connection with the invention, for example, that in particular a transaction or the transactions or a data block with its transactions is transmitted to one or more nodes of a distributed database system. If, for example, these transactions are successfully validated (e.g. by the node (s)), these transactions are distributed in particular as a new data block with at least one existing data block Database system concatenated [1] [4] [5]. For this purpose, the corresponding transactions are stored in a new data block, for example. In particular, this validation and / or chaining can be carried out by a trustworthy node (for example a mining node, a block chain oracle or a block chain platform). In particular, a block chain platform can be understood to mean a block chain as a service, as is proposed in particular by Microsoft or IBM. In particular, a trustworthy node and / or a node can each store a node checksum (e.g. a digital signature) in a data block (e.g. in the data block they validated and generated, which is then linked), in particular to enable the creator of the data block to be identified and / or to enable the node to be identified. This node checksum indicates which node, for example, has linked the corresponding data block to at least one other data block of the distributed database system.
Unter "Transaktion" bzw. "Transaktionen" können im Zusammenhang mit der Erfindung beispielsweise ein Smart-Contract [4] [5], eine Datenstruktur oder ein Transaktionsdatensatz verstanden werden, der insbesondere jeweils eine der Transaktionen oder mehrere Transaktionen umfasst. Unter "Transaktion" bzw. "Transaktionen" können im Zusammenhang mit der Erfindung beispielsweise auch die Daten einer Transaktion eines Datenblocks einer Blockkette (engl. Blockchain) verstanden werden. Eine Transaktion kann insbesondere einen Programmcode umfassen, der beispielsweise einen Smart Contract realisiert. Beispielsweise können im Zusammenhang mit der Erfindung unter Transaktion auch eine Steuertransaktion und/oder Bestätigungstransaktion verstanden werden. Alternativ kann eine Transaktion beispielsweise eine Datenstruktur sein, die Daten speichert (z. B. die Steuerbefehle und/oder Vertragsdaten und/oder andere Daten wie Videodaten, Nutzerdaten, Messdaten etc.). Insbesondere ist unter "Speichern von Transaktionen in Datenblöcken", "Speichern von Transaktionen" und dergleichen ein direktes Speichern oder indirektes Speichern zu verstehen. Unter einem direkten Speichern kann dabei beispielsweise verstanden werden, dass der entsprechende Datenblock (des verteilten Datenbanksystems) oder die entsprechende Transaktion des verteilten Datenbanksystems) die jeweiligen Daten umfasst. Unter einem indirekten Speichern kann dabei beispielsweise verstanden werden, dass der entsprechende Datenblock oder die entsprechende Transaktion eine Prüfsumme und optional einen Zusatzdatensatz (z. B. einen Verweis oder eine Angabe zu einem Speicherort) für entsprechende Daten umfasst und die entsprechenden Daten somit nicht direkt in dem Datenblock (oder der Transaktion) gespeichert sind (also stattdessen nur eine Prüfsumme für diese Daten). Insbesondere können beim Speichern von Transaktionen in Datenblöcken diese Prüfsummen beispielsweise validiert werden, so wie dies beispielsweise unter "Einfügen in das verteilte Datenbanksystem" erläutert ist.In connection with the invention, “transaction” or “transactions” can be understood to mean, for example, a smart contract [4] [5], a data structure or a transaction data record, which in particular comprises one of the transactions or several transactions. In the context of the invention, “transaction” or “transactions” can also be understood to mean, for example, the data of a transaction in a data block of a block chain. In particular, a transaction can include a program code that, for example, implements a smart contract. For example, in the context of the invention, a transaction can also be understood to mean a tax transaction and / or confirmation transaction. Alternatively, a transaction can be, for example, a data structure that stores data (e.g. the control commands and / or contract data and / or other data such as video data, user data, measurement data, etc.). In particular, “storing transactions in data blocks”, “storing transactions” and the like is understood to mean direct storage or indirect storage. Direct storage can be understood, for example, to mean that the corresponding data block (of the distributed database system) or the corresponding transaction of the distributed database system) comprises the respective data. Indirect storage can be understood here, for example, to mean that the corresponding data block or the corresponding transaction comprises a checksum and optionally an additional data record (for example a reference or an indication of a storage location) for corresponding data and therefore does not include the corresponding data directly in the data block (or the transaction) are stored (i.e. instead only a checksum for this data). In particular, when storing transactions in data blocks, these checksums can be validated, for example, as is explained, for example, under "inserting into the distributed database system".
Unter einem "Programmcode" (z. B. ein Smart Contract) kann im Zusammenhang mit der Erfindung beispielsweise ein Programmbefehl oder mehrere Programmbefehle verstanden werden, die insbesondere in einer oder mehreren Transaktionen gespeichert sind. Der Programmcode ist insbesondere ausführbar und wird beispielsweise durch das verteilte Datenbanksystem ausgeführt. Dies kann beispielsweise mittels einer Ausführungsumgebung (z. B. einer virtuellen Maschine) realisiert werden, wobei die Ausführungsumgebung bzw. der Programmcode vorzugsweise Turing-vollständig sind. Der Programmcode wird vorzugsweise durch die Infrastruktur des verteilten Datenbanksystems ausgeführt [4][5]. Dabei wird zum Beispiel eine virtuelle Maschine durch die Infrastruktur des verteilten Datenbanksystems realisiert.In the context of the invention, a “program code” (for example a smart contract) can be understood to mean, for example, one program command or several program commands, which are stored in particular in one or more transactions. The program code can be executed in particular and is executed, for example, by the distributed database system. This can be implemented, for example, using an execution environment (for example a virtual machine), the execution environment or the program code preferably being Turing-complete. The program code is preferably executed by the infrastructure of the distributed database system [4] [5]. For example, a virtual machine is implemented through the infrastructure of the distributed database system.
Unter einem "Smart Contract" kann im Zusammenhang mit der Erfindung beispielsweise ein ausführbarer Programmcode verstanden werden [4][5] (siehe insbesondere Definition "Programmcode"). Der Smart Contract ist vorzugsweise in einer Transaktion eines verteilten Datenbanksystems (z. B. eine Blockkette) gespeichert, beispielsweise in einem Datenblock des verteilten Datenbanksystems. Beispielsweise kann der Smart Contract auf die gleiche Weise ausgeführt werden, wie dies bei der Definition von "Programmcode", insbesondere im Zusammenhang mit der Erfindung, erläutert ist.A "smart contract" can be understood in connection with the invention, for example, to be an executable program code [4] [5] (see in particular the definition "program code"). The smart contract is preferably stored in a transaction of a distributed database system (e.g. a block chain), for example in a data block of the distributed database system. For example, the smart contract can be executed in the same way as explained in the definition of "program code", in particular in connection with the invention.
Unter "Proof-of-Work" oder "Proof-of-Work-Nachweis" kann im Zusammenhang mit der Erfindung beispielsweise ein Lösen einer rechenintensiven Aufgabe verstanden werden, die insbesondere abhängig vom Datenblock-Inhalt/Inhalt einer bestimmten Transaktion zu lösen ist [1][4][5]. Eine solche rechenintensive Aufgabe wird beispielsweise auch als kryptographisches Puzzle bezeichnet.In connection with the invention, “proof-of-work” or “proof-of-work proof” can be understood to mean, for example, solving a computation-intensive task that is to be solved in particular depending on the data block content / content of a specific transaction [1 ] [4] [5]. Such a computationally intensive task is also referred to as a cryptographic puzzle, for example.
Unter einem "verteilten Datenbanksystem", das beispielsweise auch als verteilte Datenbank bezeichnet werden kann, kann im Zusammenhang mit der Erfindung beispielsweise eine dezentral verteilte Datenbank, eine Blockkette (engl. Blockchain), ein distributed Ledger, ein verteiltes Speichersystem, ein distributed ledger technology (DLT) based system (DLTS), ein revisionssicheres Datenbanksystem, eine Cloud, ein Cloud-Service, eine Blockkette in einer Cloud oder eine Peer-to-Peer-Datenbank verstanden werden. Auch können beispielsweise unterschiedliche Implementierungen einer Blockkette oder eines DLTS verwendet werden, wie z. B. eine Blockkette oder ein DLTS, die mittels eines Directed Acylic Graph (DAG), eines kryptographischen Puzzles, einem Hashgraph oder eine Kombination aus den genannten Implementierungsvarianten [6][7]. Auch können beispielsweise unterschiedliche Konsensregeln bzw. Konsensusverfahren (engl. consensus algorithms) implementiert werden. Dies kann beispielsweise ein Konsensusverfahren mittels eines kryptographischen Puzzles, Gossip about Gossip, Virtual Voting oder eine Kombination der genannten Verfahren sein (z. B. Gossip about Gossip kombiniert mit Virtual Voting) [6][7]. Wird beispielsweise eine Blockkette verwendet, so kann diese insbesondere mittels einer Bitcoin-basierten Realisierung oder einer Ethereum-basierten Realisierung umgesetzt werden [1][4][5]. Unter einem "verteilten Datenbanksystem" kann beispielsweise auch ein verteiltes Datenbanksystem verstanden werden, von dem zumindest ein Teil seiner Knoten und/oder Geräte und/oder Infrastruktur durch eine Cloud realisiert sind. Beispielsweise sind die entsprechenden Komponenten als Knoten/Geräte in der Cloud (z. B. als virtueller Knoten in einer virtuellen Maschine) realisiert. Dies kann beispielsweise mittels VM-Ware, Amazon Web Services oder Microsoft Azure erfolgen. Aufgrund der hohen Flexibilität der erläuterten Implementierungsvarianten können insbesondere auch Teilaspekte der genannten Implementierungsvarianten miteinander kombiniert werden, indem z. B. ein Hashgraph als Blockkette verwendet wird, wobei die Blockkette selbst z. B. auch blocklos sein kann.Under a "distributed database system", which can also be referred to as a distributed database, for example, in connection with the invention, a decentrally distributed database, a block chain (English blockchain), a distributed ledger, a distributed storage system, a distributed ledger technology ( DLT) based system (DLTS), an audit-proof database system, a cloud, a cloud service, a block chain in a cloud or a peer-to-peer database. Different implementations of a block chain or a DLTS, for example, can also be used. B. a block chain or a DLTS using a Directed Acylic Graph (DAG), a cryptographic puzzle, a hash graph or a combination of the implementation variants mentioned [6] [7]. Different consensus rules or consensus algorithms can also be implemented, for example. This can be, for example, a consensus procedure using a cryptographic puzzle, Gossip about Gossip, Virtual Voting or a combination of the above-mentioned procedures (e.g. Gossip about Gossip combined with Virtual Voting) [6] [7]. If, for example, a block chain is used, this can in particular be based on a bitcoin Realization or an Ethereum-based realization can be implemented [1] [4] [5]. A "distributed database system" can also be understood to mean, for example, a distributed database system, of which at least some of its nodes and / or devices and / or infrastructure are implemented by a cloud. For example, the corresponding components are implemented as nodes / devices in the cloud (e.g. as a virtual node in a virtual machine). This can be done using VM goods, Amazon Web Services or Microsoft Azure, for example. Due to the high flexibility of the implementation variants explained, in particular partial aspects of the implementation variants mentioned can be combined with one another, for example by B. a hash graph is used as a block chain, the block chain itself z. B. can also be blockless.
Wird beispielsweise ein Directed Acylic Graph (DAG) verwendet (z. B. IOTA oder Tangle), sind insbesondere Transaktionen oder Blöcke oder Knoten des Graphen miteinander über gerichtete Kanten miteinander verbunden. Dies bedeutet insbesondere, dass (alle) Kanten (immer) die gleiche Richtung haben, ähnlich wie dies z. B. bei Zeit ist. Mit anderen Worten ist es insbesondere nicht möglich, rückwärts (also entgegen der gemeinsamen gleichen Richtung) die Transaktionen oder die Blöcke oder die Knoten des Graphen anzulaufen bzw. anzuspringen. Azyklisch bedeutet dabei insbesondere, dass es keine Schleifen bei einem Durchlaufen des Graphen gibt.For example, if a Directed Acylic Graph (DAG) is used (e.g. IOTA or Tangle), transactions or blocks or nodes of the graph are connected to one another via directed edges. This means in particular that (all) edges (always) have the same direction, similar to e.g. B. is at time. In other words, it is in particular not possible to start or jump to the transactions or the blocks or the nodes of the graph backwards (ie against the same common direction). Acyclic means in particular that there are no loops when the graph is run through.
Bei dem verteilten Datenbanksystem kann es sich beispielsweise um ein öffentliches verteiltes Datenbanksystem (z. B. eine öffentliche Blockkette) oder ein geschlossenes (oder privates) verteiltes Datenbanksystem (z. B. eine private Blockkette) handeln.The distributed database system can be, for example, a public distributed database system (e.g. a public block chain) or a closed (or private) distributed database system (e.g. a private block chain).
Handelt es sich beispielsweise um ein öffentliches verteiltes Datenbanksystem, bedeutet dies, dass neue Knoten und/oder Geräte ohne Berechtigungsnachweise oder ohne Authentifizierung oder ohne Anmeldeinformationen oder ohne Credentials dem verteilten Datenbanksystem beitreten können bzw. von diesem akzeptiert werden. Insbesondere können in einem solchen Fall die Betreiber der Knoten und/oder Geräte anonym bleiben.If it is, for example, a publicly distributed database system, this means that new nodes and / or devices without distributed credentials or without authentication or without credentials or without credentials Database system can join or be accepted by this. In such a case, in particular, the operators of the nodes and / or devices can remain anonymous.
Handelt es sich bei dem verteilten Datenbanksystem beispielsweise um ein geschlossenes verteiltes Datenbanksystem, benötigen neue Knoten und/oder Geräte beispielsweise einen gültigen Berechtigungsnachweis und/oder gültige Authentifizierungsinformationen und/oder gültige Credentials und/oder gültige Anmeldeinformationen, um dem verteilten Datenbanksystem beitreten können bzw. von diesem akzeptiert zu werden.If the distributed database system is, for example, a closed, distributed database system, new nodes and / or devices need, for example, a valid proof of authorization and / or valid authentication information and / or valid credentials and / or valid login information in order to be able to join the distributed database system or from to be accepted.
Bei einem verteilten Datenbanksystem kann es sich beispielsweise auch um ein verteiltes Kommunikationssystem zum Datenaustausch handeln. Dies kann beispielsweise ein Netzwerk oder ein Peer-2-Peer Netzwerk sein.A distributed database system can, for example, also be a distributed communication system for data exchange. This can be, for example, a network or a peer-2-peer network.
Unter "Datenblock", der insbesondere je nach Kontext und Realisierung auch als "Glied" oder "Block" bezeichnet sein kann, kann im Zusammenhang mit der Erfindung beispielsweise ein Datenblock eines verteilten Datenbanksystems (z. B. eine Blockkette oder eine Peer-to-Peer-Datenbank) verstanden werden, die insbesondere als Datenstruktur realisiert ist und vorzugsweise jeweils eine der Transaktionen oder mehrere der Transaktionen umfasst. Bei einer Implementierung kann beispielsweise die Datenbank (oder das Datenbanksystem) ein DLT basiertes System (DLTS) oder eine Blockkette sein und ein Datenblock ein Block der Blockkette oder des DLTS. Ein Datenblock kann beispielsweise Angaben zur Größe (Datengröße in Byte) des Datenblocks, einen Datenblock-Header (engl. Block-header), einen Transaktionszähler und eine oder mehrere Transaktionen umfassen [1]. Der Datenblock-Header kann beispielsweise eine Version, eine Verkettungsprüfsumme, eine Datenblockprüfsumme, einen Zeitstempel, einen Proof-of-Work-Nachweis und eine Nonce (Einmalwert, Zufallswert oder Zähler, der für den Proof-of-Work-Nachweis verwendet wird) umfassen [1][4][5]. Bei einem Datenblock kann es sich beispielsweise auch nur um einen bestimmten Speicherbereich oder Adressbereich der Gesamtdaten handeln, die in dem verteilten Datenbanksystem gespeichert sind. Damit lassen sich beispielsweise blocklose (engl. blockless) verteilte Datenbanksysteme, wie z. B. die IoT Chain (ITC), IOTA, und Byteball, realisieren. Hierbei werden insbesondere die Funktionalitäten der Blöcke einer Blockkette und der Transaktionen miteinander derart kombiniert, dass z. B. die Transaktionen selbst die Sequenz oder Kette von Transaktionen (des verteilten Datenbanksystems) absichern (also insbesondere sicherheitsgeschützt gespeichert werden). Hierzu können beispielsweise mit einer Verkettungsprüfsumme die Transaktionen selbst miteinander verkettet werden, indem vorzugsweise eine separate Prüfsumme oder die Transaktionsprüfsumme einer oder mehrerer Transaktionen als Verkettungsprüfsumme dient, die beim Speichern einer neuen Transaktion in dem verteilten Datenbanksystem in der entsprechenden neuen Transaktion mit gespeichert wird. In einer solchen Ausführungsform kann ein Datenblock beispielsweise auch eine oder mehrere Transaktionen umfassen, wobei im einfachsten Fall beispielsweise ein Datenblock einer Transaktion entspricht.Under "data block", which can also be referred to as a "link" or "block", depending on the context and implementation, in connection with the invention, for example, a data block of a distributed database system (for example a block chain or a peer-to-peer) Peer database) can be understood, which is realized in particular as a data structure and preferably comprises one of the transactions or more of the transactions. In an implementation, for example, the database (or the database system) can be a DLT-based system (DLTS) or a block chain and a data block can be a block of the block chain or the DLTS. A data block can include, for example, information on the size (data size in bytes) of the data block, a data block header, a transaction counter and one or more transactions [1]. The data block header can include, for example, a version, a chaining checksum, a data block checksum, a time stamp, a proof-of-work proof and a nonce (one-time value, random value or counter used for the proof-of-work proof) [1] [4] [5]. A data block can, for example, only be a specific memory area or address area of the total data that is stored in the distributed database system. This allows, for example, blockless distributed database systems, such as. B. implement the IoT Chain (ITC), IOTA, and Byteball. In particular, the functionalities of the blocks of a block chain and the transactions are combined with one another in such a way that, for. B. the transactions themselves secure the sequence or chain of transactions (of the distributed database system) (in particular, they are stored in a security-protected manner). For this purpose, for example, the transactions themselves can be linked to one another with a chaining checksum, in that a separate checksum or the transaction checksum of one or more transactions is used as the chaining checksum, which is also saved in the corresponding new transaction when a new transaction is stored in the distributed database system. In such an embodiment, a data block can also include one or more transactions, for example, in the simplest case a data block corresponding to a transaction.
Unter "Nonce" kann im Zusammenhang mit der Erfindung beispielsweise eine kryptographische Nonce verstanden werden (Abkürzung für: "used only once"[2] oder "number used once"[3]). Insbesondere bezeichnet eine Nonce einzelne Zahlen- oder eine Buchstabenkombination, die vorzugsweise ein einziges Mal in dem jeweiligen Kontext (z. B. Transaktion, Datenübertragung) verwendet wird.In the context of the invention, “nonce” can be understood to mean, for example, a cryptographic nonce (abbreviation for: “used only once” [2] or “number used once” [3]). In particular, a nonce denotes a combination of numbers or letters, which is preferably used once in the respective context (e.g. transaction, data transmission).
Unter "vorhergehende Datenblöcke eines (bestimmten) Datenblockes des verteilten Datenbanksystems" kann im Zusammenhang mit der Erfindung beispielsweise der Datenblock des verteilten Datenbanksystems verstanden werden, der insbesondere einem (bestimmten) Datenblock direkt vorhergeht. Alternativ können unter "vorhergehende Datenblöcke eines (bestimmten) Datenblockes des verteilten Datenbanksystems" insbesondere auch alle Datenblöcke des verteilten Datenbanksystems verstanden werden, die dem bestimmten Datenblock vorhergehen. Hierdurch kann beispielsweise die Verkettungsprüfsumme oder die Transaktionsprüfsumme insbesondere nur über das dem bestimmten Datenblock direkt vorhergehenden Datenblock (bzw. deren Transaktionen) oder über alle dem ersten Datenblock vorhergehenden Datenblöcke (bzw. deren Transaktionen) gebildet werden."Previous data blocks of a (certain) data block of the distributed database system" can be understood in connection with the invention, for example, the data block of the distributed database system which in particular directly precedes a (certain) data block. Alternatively, "previous data blocks of a (certain) data block of the distributed database system" can also be understood to mean, in particular, all data blocks of the distributed database system that precede the specific data block. In this way, for example, the chaining checksum or the transaction checksum can be formed in particular only via the data block (or its transactions) preceding the specific data block or via all data blocks (or its transactions) preceding the first data block.
Unter einem "Blockketten-Knoten", "Knoten", "Knoten eines verteilten Datenbanksystems", "Knoteneinrichtung" und dergleichen, können im Zusammenhang mit der Erfindung beispielsweise Geräte (z. B. Feldgeräte, Mobiltelefone), Rechner, Smart-Phones, Clients oder Teilnehmer verstanden werden, die Operationen (mit) dem verteilten Datenbanksystem (z. B. eine Blockkette) durchführen [1][4][5]. Solche Knoten können beispielsweise Transaktionen eines verteilten Datenbanksystems bzw. deren Datenblöcke ausführen oder neue Datenblöcke mit neuen Transaktionen in das verteilte Datenbanksystem mittels neuer Datenblöcke einfügen bzw. verketten. Insbesondere kann dieses Validieren und/oder Verketten durch einen vertrauenswürdigen Knoten (z. B. einem Mining Node) oder ausschließlich durch vertrauenswürdige Knoten erfolgen. Bei einem vertrauenswürdigen Knoten handelt es sich beispielsweise um einen Knoten, der über zusätzliche Sicherheitsmaßnahmen verfügt (z. B. Firewalls, Zugangsbeschränkungen zum Knoten oder Ähnliches), um eine Manipulation des Knotens zu verhindern. Alternativ oder zusätzlich kann beispielsweise ein vertrauenswürdiger Knoten beim Verketten eines neuen Datenblocks mit dem verteilten Datenbanksystem, eine Knotenprüfsumme (z. B. eine digitale Signatur oder ein Zertifikat) in dem neuen Datenblock speichern. Damit kann insbesondere ein Nachweis bereitgestellt werden, der angibt, dass der entsprechende Datenblock von einem bestimmten Knoten eingefügt wurde bzw. seine Herkunft angibt. Bei den Geräten (z. B. dem entsprechenden Gerät) handelt es sich beispielsweise um Geräte eines technischen Systems und/oder industriellen Anlage und/oder eines Automatisierungsnetzes und/oder einer Fertigungsanlage, die insbesondere auch ein Knoten des verteilten Datenbanksystems sind. Dabei können die Geräte beispielsweise Feldgeräte sein oder Geräte im Internet der Dinge sein, die insbesondere auch ein Knoten des verteilten Datenbanksystems sind. Knoten können beispielsweise auch zumindest einen Prozessor umfassen, um z. B. ihre computerimplementierte Funktionalität auszuführen.Under a "block chain node", "node", "node of a distributed database system", "node device" and the like, in connection with the invention, for example, devices (e.g. field devices, mobile telephones), computers, smart phones, clients or participants are understood who perform operations (with) the distributed database system (e.g. a block chain) [1] [4] [5]. Such nodes can, for example, execute transactions of a distributed database system or their data blocks or insert or chain new data blocks with new transactions into the distributed database system by means of new data blocks. In particular, this validation and / or chaining can be carried out by a trustworthy node (for example a mining node) or exclusively by trustworthy nodes. A trustworthy node is, for example, a node that has additional security measures (for example firewalls, access restrictions to the node or the like) in order to prevent manipulation of the node. Alternatively or additionally, for example, when a new data block is concatenated with the distributed database system, a trustworthy node can store a node checksum (for example a digital signature or a certificate) in the new data block. In particular, it can be used to provide evidence that indicates that the corresponding data block was inserted by a specific node or indicates its origin. The devices (e.g. the corresponding device) are, for example, devices of a technical system and / or industrial system and / or an automation network and / or a production system, which in particular are also a node of the distributed database system. The devices can be field devices, for example or devices in the Internet of Things, which in particular are also a node of the distributed database system. Nodes can, for example, also comprise at least one processor in order to e.g. B. execute their computer-implemented functionality.
Unter einem "Blockketten-Orakel" und dergleichen können im Zusammenhang mit der Erfindung beispielsweise Knoten, Geräte oder Rechner verstanden werden, die z. B. über ein Sicherheitsmodul verfügen, das beispielsweise mittels Software-Schutzmechanismen (z. B. kryptographische Verfahren), mechanische Schutzeinrichtungen (z. B. ein abschließbares Gehäuse) oder elektrische Schutzeinrichtungen implementiert ist (z. B. Tamper-Schutz oder ein Schutzsystem, das die Daten des Sicherheitsmoduls bei einer unzulässigen Nutzung/Behandlung des Blockketten-Orakels löscht). Das Sicherheitsmodul kann dabei beispielsweise kryptographische Schlüssel umfassen, die für die Berechnung der Prüfsummen (z. B. Transaktionsprüfsummen oder Knotenprüfsummen) notwendig sind.Under a "block chain oracle" and the like can be understood in connection with the invention, for example nodes, devices or computers that z. B. have a security module that is implemented, for example, by means of software protection mechanisms (e.g. cryptographic processes), mechanical protection devices (e.g. a lockable housing) or electrical protection devices (e.g. tamper protection or a protection system, that deletes the data of the security module in the event of improper use / treatment of the blockchain oracle). The security module can include, for example, cryptographic keys, which are necessary for the calculation of the checksums (e.g. transaction checksums or node checksums).
Unter einem "Rechner" oder einem "Gerät" kann im Zusammenhang mit der Erfindung beispielsweise ein Computer(system), ein Client, ein Smart-Phone, ein Gerät oder ein Server, die jeweils außerhalb der Blockkette angeordnet sind bzw. kein Teilnehmer des verteilten Datenbanksystems (z. B. der Blockkette) sind (also keine Operationen mit dem verteilten Datenbanksystem durchführen oder diese nur abfragen, ohne jedoch Transaktionen durchzuführen, Datenblöcke einfügen oder Proof-of-Work-Nachweise berechnen), verstanden werden. Alternativ kann insbesondere auch unter einem Rechner ein Knoten des verteilten Datenbanksystems verstanden werden. Mit anderen Worten kann insbesondere unter einem Gerät ein Knoten des verteilten Datenbanksystems verstanden werden oder auch ein Gerät außerhalb der Blockkette bzw. des verteilten Datenbanksystems verstanden werden. Ein Gerät außerhalb des verteilten Datenbanksystems kann beispielsweise auf die Daten (z. B. Transaktionen oder Steuertransaktionen) des verteilten Datenbanksystems zugreift und/oder von Knoten (z. B. mittels Smart-Contracts und/oder Blockketten-Orakel) angesteuert werden. Wird beispielsweise eine Ansteuerung bzw. Steuerung eines Gerätes (z. B. ein als Knoten ausgebildetes Gerät oder ein Gerät außerhalb des verteilten Datenbanksystems) durch einen Knoten realisiert, kann dies z. B. mittels eines Smart Contracts erfolgen, der insbesondere in einer Transaktion des verteilten Datenbanksystems gespeichert ist.In the context of the invention, a “computer” or a “device” can include, for example, a computer (system), a client, a smart phone, a device or a server, each of which is arranged outside the block chain or no participant of the distributed one Database system (e.g. the block chain) (i.e. do not perform any operations with the distributed database system or only query them, but without carrying out transactions, inserting data blocks or calculating proof-of-work evidence). Alternatively, a computer in particular can also be understood to mean a node of the distributed database system. In other words, a device can be understood to mean in particular a node of the distributed database system or a device outside the block chain or the distributed database system. A device outside of the distributed database system can, for example, access the data (for example transactions or tax transactions) of the distributed database system and / or from nodes (for example by means of Smart contracts and / or blockchain oracles) can be controlled. If, for example, a device is activated or controlled (for example a device designed as a node or a device outside the distributed database system) by a node, B. by means of a smart contract, which is stored in particular in a transaction of the distributed database system.
Weitere mögliche Implementierungen der Erfindung umfassen auch nicht explizit genannte Kombinationen von zuvor oder im Folgenden bezüglich der Ausführungsbeispiele beschriebenen Merkmale oder Ausführungsformen. Dabei wird der Fachmann auch Einzelaspekte als Verbesserungen oder Ergänzungen zu der jeweiligen Grundform der Erfindung hinzufügen.Further possible implementations of the invention also include combinations of features or embodiments described above or below with reference to the exemplary embodiments that are not explicitly mentioned. The person skilled in the art will also add individual aspects as improvements or additions to the respective basic form of the invention.
Weitere vorteilhafte Ausgestaltungen und Aspekte der Erfindung sind Gegenstand der Unteransprüche sowie der im Folgenden beschriebenen Ausführungsbeispiele der Erfindung. Im Weiteren wird die Erfindung anhand von bevorzugten Ausführungsformen unter Bezugnahme auf die beigelegten Figuren näher erläutert.
-
Fig. 1 veranschaulicht schematisch ein verteiltes Datenbanksystem gemäß einem ersten Ausführungsbeispiel sowie ein Verfahren zum Betreiben desselben; -
Fig. 2 zeigt Details einer möglichen Ausgestaltung eines der Transaktionsbücher des verteilten Datenbanksystems; -
Fig. 3 veranschaulicht schematisch ein verteiltes Datenbanksystem und Aspekte seines Betriebs gemäß einem zweiten Ausführungsbeispiel.
-
Fig. 1 schematically illustrates a distributed database system according to a first exemplary embodiment and a method for operating the same; -
Fig. 2 shows details of a possible embodiment of one of the transaction books of the distributed database system; -
Fig. 3 schematically illustrates a distributed database system and aspects of its operation according to a second embodiment.
In den Figuren sind gleiche oder funktionsgleiche Elemente mit denselben Bezugszeichen versehen worden, sofern nichts anderes angegeben ist.In the figures, elements that are the same or have the same function have been provided with the same reference symbols, unless stated otherwise.
Das verteilte Datenbanksystem 1 weist eine erste Datenbankinstanz 10 und eine zweite Datenbankinstanz 20 auf. Die erste Datenbankinstanz 10 ist durch die Knoteneinrichtungen 12, 13 und 14 gebildet. Die zweite Datenbankinstanz 20 ist durch die Knoteneinrichtungen 22, 23, 24 gebildet.The distributed database system 1 has a
Die Knoteneinrichtungen 12, 13, 14 der ersten Datenbankinstanz 10 verwalten gemeinsam und konsensbasiert das Transaktionsbuch 11 des verteilten Datenbanksystems 1. Die Knoteneinrichtungen 22, 23, 24 der zweiten Datenbankinstanz 20 verwalten gemeinsam und konsensbasiert das Transaktionsbuch 21 des verteilten Datenbanksystems 1.The
Wenn dem verteilten Datenbanksystem 1 eine zu bestätigende Transaktion 4 bereitgestellt wird, bestätigt in Schritt S1 des Verfahrens zum Betreiben des verteilten Datenbanksystems 1 das verteilte Datenbanksystem 1 die zu bestätigende Transaktion 4, indem sie die zu bestätigende Transaktion 4 als bestätigte Transaktion in eines oder beide der Transaktionsbücher 11, 21 aufnimmt.When the distributed database system 1 is provided with a transaction 4 to be confirmed, in step S1 of the method for operating the distributed database system 1, the distributed database system 1 confirms the transaction 4 to be confirmed by converting the transaction 4 to be confirmed into one or both of the confirmed
Hierbei entscheidet das verteilte Datenbanksystem 1, durch welche der mehreren Datenbankinstanzen 10, 20 die zu bestätigende Transaktion 4 bestätigt wird. Anders ausgedrückt entscheidet das verteilte Datenbanksystems 1, ob die zu bestätigende Transaktion 4 von der ersten Datenbankinstanz 10 in das Transaktionsbuch 11 und/oder von der zweiten Datenbankinstanz 20 in das Transaktionsbuch 21 aufgenommen wird.In this case, the distributed database system 1 decides which of the plurality of
Insbesondere versteht sich, dass die Knoteneinrichtungen 12, 13, 14, 22, 23, 24 miteinander kommunikativ vernetzt sind, um die vorstehend beschriebene Funktionalität gemeinsam zu realisieren.In particular, it goes without saying that the
Insbesondere versteht sich weiterhin, dass die schematisch dargestellten Transaktionsbücher 11, 21 Repräsentationen eines auf verteilte Weise in dem verteilten Datenbanksystem 1 gespeicherten jeweiligen Transaktionsbuchs 11, 21 sind. Insbesondere kann auf jeder der Knoteneinrichtungen 12, 13, 14 eine Repräsentation des Transaktionsbuchs 11 gespeichert sein, wobei eine Konsensregel der Datenbankinstanz 10 dafür sorgt, dass die jeweiligen Repräsentationen ganz oder im Wesentlichen miteinander abgeglichen sind, und auf jeder der Knoteneinrichtungen 22, 23, 24 kann eine Repräsentation des Transaktionsbuchs 21 gespeichert sein, wobei eine Konsensregel der Datenbankinstanz 20 dafür sorgt, dass die jeweiligen Repräsentationen miteinander abgeglichen sind.In particular, it is further understood that the schematically represented
Der in
Der Kopfdatenabschnitt K des Blocks 101 umfasst eine Datenblockprüfsumme 1014, eine Verkettungsprüfsumme 1012 und einen Nachweiswert 1011. Analog dazu umfassen die Kopfdatenabschnitte K des Blocks 102 bzw. 103 jeweils eine Datenblockprüfsumme 1024, 1034, eine Verkettungsprüfsumme 1022, 1032 und einen Nachweiswert 1021, 1031.The header data section K of
Der Nutzdatenabschnitt N des jeweiligen Blocks 101, 102, 103 umfasst jeweils eine Anzahl bestätigte Transaktionen, die als abgerundete Rechtecke dargestellt sind. Eine der bestätigten Transaktionen trägt beispielhaft das Bezugszeichen 5.The user data section N of the
Die Transaktionen 5 umfassen jeweils Nutzdaten des verteilten Datenbanksystems 1. Im Speziellen kann eine jeweilige Transaktion 5 Daten und/oder Programmcode (sog. Smart Contracts) umfassen, welche einen Übergang von einem Zustand, den das Transaktionsbuch 11 des verteilten Datenbanksystems 1 vor dem Bestätigen der Transaktion 5 beschreibt, in einen Zustand beschreibt, den das Transaktionsbuch 11 des verteilten Datenbanksystem 11 nach dem Bestätigen der Transaktion 5 beschreibt. Durch schrittweises Nachverfolgen der Blöcke 101, 102, 103 und der Transaktionen 5 darin kann der von dem Transaktionsbuch 11 beschriebene Zustand zu jedem aktuellen und vergangenen Zeitpunkt transparent nachvollzogen werden. Unter Zustand kann hierbei jede Art von Daten verstanden werden, die sich aus einer Folge von Transaktionen rekonstruieren lässt. Rein beispielhaft sei die Gesamtheit aller Kontostände in einer Anzahl von in der Datenbankinstanz 10 definierten Adressen bzw. Kryptowallets genannt. Denkbar sind jedoch beispielsweise auch Zustände wie Steuer- oder Schaltzustände von Aktoren eines industriellen Automatisierungssystems und dergleichen, wobei eine Transaktion einen jeweiligen Schaltvorgang repräsentiert.The transactions 5 each include user data of the distributed database system 1. In particular, a respective transaction 5 can include data and / or program code (so-called smart contracts), which indicate a transition from a state that the
Die jeweilige Datenblockprüfsumme 1014, 1024, 1034 ist insbesondere ein kryptographischer Hashwert, der die Transaktionen 5 des jeweiligen Blocks 101, 102, 103 gegen Manipulationen schützt. Insbesondere kann die Datenblockprüfsumme 1014, 1024, 1034 ein Wurzelwert eines Merkle- oder Patricia-Hashbaums sein.The respective
Die jeweilige Verkettungsprüfsumme 1012, 1022, 1032 ist ein kryptographischer Hashwert des jeweils vorangehenden Blocks 101, 102. Insbesondere ist die Verkettungsprüfsumme 1022 ein kryptographischer Hashwert des gesamten Blocks 101. Der Verkettungs-Hashwert 1032 ist ein kryptographischer Hashwert des gesamten Blocks 62. Der jeweilige Verkettungs-Hashwert 1012, 1022, 1032 kann die Reihenfolge der Verkettung der Blöcke 101, 102, 103 definieren sowie das Transaktionsbuch 11 gegen Manipulationen sichern. Würde etwa die mit 5 bezeichnete der Transaktionen 5 nachträglich manipuliert, würde dadurch nicht nur die Datenblockprüfsumme 1014 invalidiert, sondern auch die Verkettungsprüfsumme 1022 und jede nachfolgende Verkettungsprüfsumme 1032.The
Der jeweilige Nachweiswert 1011, 1021, 1031 ist ein Wert, der so aufgefasst werden kann, dass er dazu dient, ein berechtigtes Interesse derjenigen der Konteneinrichtungen 12-14, die den jeweiligen Block 101, 102, 103 gebildet hat (im Weiteren "blockbildende Knoteneinrichtung"), an der Aufnahme des Blocks 101, 102, 103 in das Transaktionsbuch 11 zu dokumentieren. Der Nachweiswert 1011, 1021, 1031 ist insbesondere derart eingerichtet, dass er auf nachprüfbare Weise eine Menge von durch die blockbildende Knoteneinrichtung 12-14 aufgewandter Rechenleistung (sog. Proof-of-Work), eine für eine bestimmte Dauer vorgehaltene Menge an Kryptotoken (sog. Proof-of-Stake), eine Menge anderweitig eingesetzter Ressourcen und/oder eine Berechtigung wie etwa eine Signatur eines Privileged Ledger dokumentiert.The
Das Bestätigen einer zu bestätigenden Transaktion 4 durch die Datenbankinstanz 10 kann insbesondere wie nachstehend beschrieben ablaufen. Hierbei wird davon ausgegangen, dass der in
Die blockbildende Knoteneinrichtung, beispielsweise die Knoteneinrichtung 12, bildet den, zu diesem Zeitpunkt noch unbestätigten, Block 103, prüft die zu bestätigende Transaktion 4 auf Gültigkeit, nimmt die zu bestätigende Transaktion 4 bzw. eine Kopie davon als bestätigte Transaktion in den unbestätigten Block 103 auf, bestimmt die Datenblockprüfsumme 1034 des unbestätigten Blocks 13, verkettet den unbestätigten Block 103 mit dem letzten bestätigten Block 102 des Transaktionsbuchs 11, wozu sie die Verkettungsprüfsumme 1032 des unbestätigten Blocks auf den kryptographischen Hashwert des letzten bestätigten Blocks 102 des Transaktionsbuchs 11 setzt, und bestimmt den Nachweiswert 1031 des unbestätigten Blocks 103. Der unbestätigte Block 103 wird dadurch in der auf der blockbildenden Knoteneinrichtung 12 gespeicherten Repräsentation des Transaktionsbuchs 11 zum neuen letzten Block 103 des Transaktionsbuchs 11. Wenn auf diese Weise ein unbestätigter Block erfolgreich gebildet ist, stellt die blockbildende Knoteneinrichtung 12 den unbestätigten Block 103 den anderen Knoteneinrichtungen 13, 14 derselben Datenbankinstanz 10 bereit. Diese prüfen den unbestätigten Block 103 und fügen ihn, sofern die Prüfung erfolgreich ist, ebenso als neuen letzten Block 103 des Transaktionsbuchs 11 an die in ihnen jeweils gespeicherte Repräsentation des Transaktionsbuchs 11 an.The block-forming node device, for example the
Stellt sich in dieser Weise ein Mehrheitskonsens ein, gelten insbesondere der Block 103 und alle darin gespeicherten Transaktionen als von der Datenbankinstanz 10 bestätigt.If there is a majority consensus in this way, block 103 in particular and all transactions stored therein are deemed to have been confirmed by
Die erwähnten Prüfungsvorgänge können dabei insbesondere eine Prüfung umfassen, ob die zu bestätigende Transaktion 4 des unbestätigten Blocks 103 einen gültigen Zustandsübergang beschreibt. Hierbei kann Programmcode eines von der zu bestätigenden Transaktion 4 umfassten oder referenzierten Smart Contracts zur Ausführung gelangen. Ferner können die erwähnten Prüfungsvorgänge eine Prüfung der Datenblockprüfsumme 1034 auf Richtigkeit, der Verkettungsprüfsumme 1032 auf Richtigkeit, und eine Prüfung des Nachweiswerts 1031 auf Übereinstimmung mit den Anforderungen der Konsensregel der Datenbankinstanz 10 umfassen.The mentioned checking processes can in particular include checking whether the transaction 4 to be confirmed of the
Insbesondere kann die Anforderung der Konsensregel der Datenbankinstanz 10, dass ein jeweiliger Block 101, 102, 103 einen solchen Nachweiswert 1011, 1021, 1031 enthalten soll, das Bilden eines korrekten, der Konsensregel entsprechenden Blocks 101-103 erschweren bzw. verteuern. Dies kann dem Manipulationsschutz dienen, da ein nachträgliches Verändern des Transaktionsbuchs 11 auch ein erneutes ressourcenaufwändiges Bestimmen veränderter Nachweiswerte 1011, 1021, 1031 erforderlich machen kann.In particular, the requirement of the consensus rule of the
Die Beschreibung der möglichen Ausgestaltung erfolgte anhand der Datenbankinstanz 10 und des Transaktionsbuchs 11, gilt jedoch für die Datenbankinstanz 20 und das Transaktionsbuch 21 analog.The possible embodiment was described on the basis of
Angesichts des Vorstehenden wird deutlich, dass das Bestätigen der zu bestätigenden Transaktion 4 ein rechenaufwändiger Vorgang sein kann. Insbesondere kann die genaue Menge des Rechenaufwands für das Bestätigen einer jeweiligen zu bestätigenden Transaktion 4 schwer planbar sein, da verschiedene zu bestätigende Transaktionen 4 Smart Contracts von unterschiedlicher Komplexität umfassen können.In view of the above, it becomes clear that the confirmation of the transaction 4 to be confirmed can be a computationally expensive process. In particular, the exact amount of computing effort for confirming a respective transaction 4 to be confirmed can be difficult to plan, since different transactions 4 to be confirmed can comprise smart contracts of different complexity.
Somit kann es in einer der Datenbankinstanzen 11, 12 zu einer vorübergehenden Überlastsituation mit einer zu hohen Transaktionslast kommen.A temporary overload situation with an excessive transaction load can therefore occur in one of the
In dem verteilten Datenbanksystem 1 gemäß der möglichen Ausgestaltung wird dem damit begegnet, dass das verteilte Datenbanksystem 1 entscheiden kann, die zu bestätigende Transaktion 4 entweder in dem Transaktionsbuch 11 der Datenbankinstanz 10 oder in dem Transaktionsbuch 12 der Datenbankinstanz 20 zu bestätigen.In the distributed database system 1 according to the possible embodiment, this is countered by the fact that the distributed database system 1 can decide to confirm the transaction 4 to be confirmed either in the
Im Speziellen tauschen gemäß einer Weiterbildung des ersten Ausführungsbeispiels die Knoteneinrichtungen 12-14, 22-24 untereinander Zustandsinformationen über den Zustand der jeweiligen Datenbankinstanzen 10, 20 aus. Die Zustandsinformationen können jede Art von geeigneten Zustandsinformationen umfassen, beispielsweise eine Rechenleistung einer jeweiligen der Knoteneinrichtungen 12-14, 22-24 der jeweiligen Datenbankinstanz 10, 20, eine Größe des jeweiligen Transaktionsbuchs 11, 21, ein mittlerer Transaktionsdurchsatz der jeweiligen Datenbankinstanz 10, 20 und dergleichen.Specifically, according to a development of the first exemplary embodiment, the node devices 12-14, 22-24 exchange status information with one another about the status of the
Demgemäß kann eine jede der Knoteneinrichtungen 12-14, 22-24 über den gegenwärtigen Zustand jeder der Datenbankinstanzen 11, 21 informiert sein. Die Knoteneinrichtungen 12-14, 22-24 der jeweiligen Datenbankinstanz 10, 20 können eingerichtet sein, die zu bestätigende Transaktion 4 dann zu bestätigen, wenn die Zustandsinformationen über den Zustand der Datenbankinstanz 10, 20 im Vergleich zu den Zustandsinformationen über den Zustand der übrigen Datenbankinstanzen 10, 20 eine bestimmte Bedingung erfüllt.Accordingly, each of the node devices 12-14, 22-24 can be informed of the current state of each of the
Beispielsweise können nur die Knoteneinrichtungen 12-14, 22-24 derjenigen Datenbankinstanz 10, 20 die zu bestätigende Transaktion 4 bestätigen, die unter den Datenbankinstanzen 10, 20 die geringste Last, die geringste Transaktionsbuchgröße, den geringsten Transaktionsdurchsatz oder dergleichen aufweist.For example, only the node devices 12-14, 22-24 of the
Somit kann in den Datenbankinstanzen 10, 20 gemäß dem ersten Ausführungsbeispiel vorteilhaft ein automatischer Lastausgleich realisiert werden.Automatic load balancing can thus advantageously be implemented in the
Insbesondere kann erreicht werden, dass Transaktionen zeitnah bestätigt werden, unabhängig davon, ob einzelne Datenbankinstanzen 10, 20 temporär überlastet sind. Weiterhin kann ein Datenbanksystem 1 mit hoher Resilienz realisiert werden. Es können Transaktionen durch das Datenbanksystem 1 bestätigt werden, selbst wenn eine der Datenbankinstanzen 10, 20 ausgefallen ist.In particular, it can be achieved that transactions are confirmed promptly, regardless of whether
Das zweite Ausführungsbeispiel ist eine Weiterbildung des ersten Ausführungsbeispiels, so dass nachstehend vornehmlich auf Unterschiede und zusätzliche Merkmale und Ausgestaltungen eingegangen wird, um redundante Beschreibungen zu vermeiden. Das verteilte Datenbanksystem 1 gemäß dem zweiten Ausführungsbeispiel umfasst drei Datenbankinstanzen 10, 20, 30. Die jeweils zugehörigen Knoteneinrichtungen (vgl. Knoteneinrichtungen 12-14, 22-24 in
Die erste Datenbankinstanz 10 ist eine Hauptkette (engl. "main chain"), und bei dem Transaktionsbuch 11 der ersten Datenbankinstanz 10 handelt es sich demgemäß um ein Hauptbuch (engl. "main ledger"). Die zweite und die dritte Datenbankinstanz 20, 30 sind eine jeweilige Seitenkette (engl. "side chain"), und bei den Transaktionsbüchern 21, 31 der jeweiligen Seitenkette 20, 30 handelt es sich demgemäß um ein jeweiliges Seitenbuch (engl. "side ledger").The
Das Hauptbuch 11 weist insbesondere einen höheren Manipulationsschutz, jedoch eine niedrigere Blockbildungsrade als die Seitenbücher 21, 31 auf. Beispielsweise kann in der Datenbankinstanz 10 für das Hauptbuch 11 ein aufwändiger Proof-of-Work im Rahmen der Konsensregel verwendet werden, während bei den Datenbankinstanzen 20, 30 für die Seitenbücher 21, 31 vorzugsweise ein schneller zu generierender, aber weniger sicherer Nachweiswert verwendet wird. Denkbar ist hier beispielsweise ein vertrauensbasierter Privileged-Ledger-Ansatz.The
Wie in
In dem verteilten Datenbanksystem 1 kann ein Pool 40 aus mehreren unbestätigten Transaktionen 41-45 vorgehalten werden. Die jeweilige unbestätigte Transaktion 41-45 kann von einer Anwendung, die das zentrale Datenbanksystem 1 nutzt, in eine nicht gezeigte zentrale Vorhalteeinrichtung des Datenbanksystems 1 geschrieben oder aber an eine beliebige der nicht gezeigten Knoteneinrichtungen des Dantebanksystems 1 übermittelt und von dort auf Peer-to-Peer-Weise an die übrigen (nicht gezeigten) Knoteneinrichtungen des Datenbanksystems 1 weiterübermittelt werden. Anders ausgedrückt kann der Pool 40 zentral mittels der Vorhalteeinrichtung oder dezentral mittels Peer-to-Peer-Kommunikation oder dergleichen zwischen den Knoteneinrichtungen des Datenbanksystems 1 implementiert sein.A
Das verteilte Datenbanksystem 1 wählt nacheinander jeweils eine der unbestätigten Transaktionen 41-45 aus dem Pool 40 als die aktuelle zu bestätigende Transaktion 4 aus und bestätigt die jeweilige zu bestätigende Transaktion 4 in jeweils einem oder mehreren der Transaktionsbücher 11, 21, 31.The distributed database system 1 successively selects one of the unconfirmed transactions 41-45 from the
Die Entscheidung, in welchem der Transaktionsbücher 11, 21, 31 die zu bestätigende Transaktion 4 bestätigt wird, kann auf mehrere mögliche Weisen getroffen werden.The decision in which of the
In einer Variante kann jeder der Knoteneinrichtungen jeder der Datenbankinstanzen 10, 20, 30 mit dem Bilden eines unbestätigten Blocks (nicht gezeigt) beginnen, in den die zu bestätigende Transaktion 4 aufgenommen wird. Jedoch kann eine Konsensregel jeder der Datenbankinstanzen 10, 20, 30 unter anderem vorsehen, dass eine zu bestätigende Transaktion 4 nur dann als gültig zu betrachten ist, wenn diese in keinem der Transaktionsbücher 11, 21, 31 des verteilten Datenbanksystems 1 bereits bestätigt ist. Auf diese Weise kann sich diejenige der Datenbankinstanzen 10, 20, 30 durchsetzen, die die zu bestätigende Transaktion 4 am schnellsten bestätigen kann.In a variant, each of the node devices of each of the
In einer weiteren Variante kann in einer jeweiligen unbestätigten Transaktion 41-45 des Pools 40 eine Anzahl von Datenbankinstanzen 10, 20, 30 spezifiziert sein, in welcher die unbestätigte Transaktion 41-45 zu bestätigen ist. Wenn eine der Datenbankinstanzen 10, 20, 30 die jeweilige unbestätigte Transaktion 41-45 als zu bestätigende Transaktion 4 auswählt und bestätigt, kann sie die spezifizierte Anzahl von Datenbankinstanzen um eins dekrementieren. Wird die Anzahl dabei auf null dekrementiert, kann die unbestätigte Transaktion 41-45, die als zu bestätigende Transaktion 4 ausgewählt worden ist, aus dem Pool 40 entfernt werden. Auf diese Weise wird die ausgewählte unbestätigte Transaktion 41-45 von keiner weiteren der Datenbankinstanzen 10, 20, 30 mehr bestätigt.In a further variant, a number of
Ein derartiges mehrfaches Bestätigen einer zu bestätigenden Transaktion 4 durch eine Anzahl von Datenbankinstanzen 10, 20, 30 hat den Vorteil, dass ein besonders hoher Manipulationsschutz erreicht wird. Eine Manipulation einer Transaktion in nur einer der Datenbankinstanzen 10, 20, 30 kann durch einen Vergleich der mehreren Datenbankinstanzen 10, 20, 30 erkannt werden. Ein weiterer Vorteil des mehrfachen Bestätigens kann darin bestehen, dass ein Rückbezug auf die in mehreren der Datenbankinstanzen 10, 20, 30 bestätigte Transaktion durch künftige, nachfolgende Transaktionen (nicht dargestellt) in diesen mehreren Datenbankinstanzen 10, 20, 30 möglich ist. Dadurch wird eine höhere Flexibilität erreicht, in welchen der mehreren Datenbankinstanzen 10, 20, 30 die nachfolgende unbestätigte Transaktion bestätigbar ist.Such multiple confirmation of a transaction 4 to be confirmed by a number of
In einer weiteren Variante kann die Konsensregel der jeweiligen Datenbankinstanz 10, 20, 30 vorsehen, dass eine Vergütung für das Bestätigen der zu bestätigenden Transaktion 4 nur eine Anzahl von Malen gewährbar ist, die in der jeweiligen zu bestätigenden Transaktion 4 spezifiziert ist, bzw. dass die Vergütung mit jedem Bestätigen der zu bestätigenden Transaktion 4 in einem der Transaktionsbücher 11, 21, 31 dekrementiert wird. Sinkt dabei die Vergütung auf null ab, besteht für die Knoteneinrichtungen weiterer der Datenbankinstanzen 10, 20, 30 kein Anreiz mehr, die zu bestätigende Transaktion 4 in weiteren der Transaktionsbücher 11, 21, 31 zu bestätigen, und ein solches weiteres Bestätigen kann unterbleiben.In a further variant, the consensus rule of the
In einer dritten Variante können die Datenbankinstanzen 10, 20, 30 Informationen über ihre jeweilige Lastsituation (Verarbeitungslast der einzelnen Knoteneinrichtungen der jeweiligen Datenbankinstanz 10, 20, 30; Transaktionslast der jeweiligen Datenbankinstanz 10, 20, 30 oder Speichergröße des jeweiligen Transaktionsbuchs 11, 21, 31 und dergleichen) austauschen und derart eingerichtet sein, dass von vornherein nur diejenige Datenbankinstanz 10, 20, 30 die zu bestätigende Transaktion 4 zum Bestätigen auswählt, die aktuell die niedrigste Last aufweist.In a third variant, the
In allen geschilderten Varianten kann somit eine automatische dezentrale Konsensbildung zwischen den mehreren Datenbankinstanzen darüber erfolgen, in welcher der Datenbankinstanzen 10, 20, 30 die zu bestätigende Transaktion 4 bestätigt wird.In all of the variants described, an automatic, decentralized consensus can be formed between the several database instances in which of the
Es wird nun im Detail das Bestätigen der unbestätigten Transaktionen 41-45 beschrieben.Confirmation of the unconfirmed transactions 41-45 will now be described in detail.
Die erste Transaktion 41 ist eine Orakeltransaktion. Die Orakeltransaktion 41 ist insbesondere frei von Rückbezügen auf vergangene bestätigte Transaktionen, vielmehr enthält die Orakeltransaktion eine Information über die reale Welt, wie beispielsweise einen Messwert, der in dem verteilten Datenbanksystem 1 bekannt gemacht werden soll.The
Die unbestätigte Orakel-Transaktion 41 wird von dem verteilten Datenbanksystem 1 sowohl als bestätigte Orakel-Transaktion 511 in dem ersten Seitenbuch 21 als auch als bestätigte Orakel-Transaktion 512 des zweiten Seitenbuchs 22 bestätigt. Damit wird jedem der Seitenbücher 21, 31 die Information über die reale Welt bekannt gemacht.The
Ein solches Bestätigen einer zu bestätigenden Transaktion 4 in jedem der Seitenbücher 21, 31 kann beispielsweise das standardmäßig vorgegebene Verhalten des verteilten Datenbanknetzwerks 1 bei Orakel-Transaktionen sein. Alternativ kann die Orakel-Transaktion 41 explizit spezifizieren, dass sie in genau zwei oder in mindestens zwei Transaktionsbüchern 11, 21, 31 zu bestätigen ist.Such confirmation of a transaction 4 to be confirmed in each of the
Die Transaktion 42 ist eine erste Kryptotoken-Transaktion, die eine Menge von Kryptotoken an eine Adresse (auch "Output" genannt), wie beispielsweise 0x4EAC, eines Kryptowallets transferiert. Die Transaktion 42 spezifiziert mittels darin umfassten Spezifikationsdaten (nicht gezeigt), dass die Transaktion 42 in genau einem der Seitenbücher 21, 31 zu bestätigen ist, um auf diese Weise eine schnellere Abwicklung als in dem Hauptbuch 11 zu erzielen.
Die unbestätigte erste Kryptotoken-Transaktion 42 wird von dem verteilten Datenbanksystem 1 basierend auf einer aktuellen Lastverteilung der Datenbankinstanzen 21 und 31 beispielsweise, wie in der
Die unbestätigte Transaktion 43 ist eine zweite Kryptotoken-Transaktion, die die Menge von Kryptotoken von der Adresse 0x4EAC an eine zweite Adresse 0x81F2 transferiert. Die Transaktion 43 enthält daher einen Rückbezug auf die bestätigte Transaktion 52, welche als Nachweis dient, dass die Absenderadresse 0x4AEC (auch "unspent output" genannt) die Menge an Kryptotoken tatsächlich enthält und seitdem nicht anderweitig ausgegeben wurde. Auch die unbestätigte zweite Kryptotoken-Transaktion 43 spezifiziert, dass die unbestätigte Transaktion 43 in genau einem der Seitenbücher 21, 31 zu bestätigen ist.
Dieser Rückbezug der unbestätigten Transaktion 43 auf die bestätigte Transaktion 52 ist nur in dem zweiten Seitenbuch 31 auflösbar, in dem die bestätigte Transaktion 52 in Block 302 umfasst ist. Dieser Rückbezug wird von dem verteilten Datenbanksystem 1 beim Bestätigen der unbestätigten Transaktion 43 berücksichtigt, und die unbestätigte Transaktion 43 wird als die bestätigte Transaktion 53 in dem Block 304 des zweiten Transaktionsbuchs 31 bestätigt.This reference of the
Die unbestätigte Transaktion 44 ist eine dritte unbestätigte Kryptotoken-Transaktion, die die Menge von Kryptotoken von der zweiten Adresse 0x81F2 an eine dritte Adresse 0x99EA transferiert und somit einen direkten Rückbezug auf die bestätigte Transaktion 53 enthält, welche das Vorhandensein der Kryptotoken an der Absenderadresse (zweiten Adresse) 0x81F" dokumentiert, sowie einen indirekten Rückbezug auf die bestätigte Transaktion 52, auf welche die bestätigte Transaktion 53 Rückbezug nimmt.The
Grundsätzlich wäre daher die dritte unbestätigte Kryptotoken-Transaktion 44 auch in dem zweiten Transaktionsbuch 31 zu bestätigen, in dem die rückbezogene bestätigte Transaktion 53 in Block 304 bestätigt ist.In principle, therefore, the third unconfirmed crypto
Um jedoch den Vorteil der automatisierten Lastverteilung besser zur Geltung zu bringen, synchronisiert das verteilte Datenbanksystem 1 in vordefinierten Zeitabständen die Transaktionsbücher 11, 21, 31 der mehreren Datenbankinstanzen 10, 20, 30. Die vordefinierten Zeitabstände sind zum Beispiel durch die Zeitabstände zwischen dem Bilden eines jeweiligen Blocks 101, 102 des Hauptbuchs 11 definiert.However, in order to better exploit the advantage of automated load distribution, the distributed database system 1 synchronizes the
Im Speziellen umfasst der Block 102 des Hauptbuchs 11 eine zusammenfassende Transaktion 56, die den von dem ersten Seitenbuch 21 fortgeschriebenen Zustand (das Ergebnis des Abwickelns aller Transaktionen, die in dem ersten Seitenbuch 21 in der Zeit zwischen dem Bestätigen des ersten Blocks 101 des Hauptbuchs 11 und dem Bestätigen des zweiten Blocks 102 des Hauptbuchs 11 bestätigt worden sind) definiert, und eine zusammenfassende Transaktion 57, die den von dem zweiten Seitenbuch 31 fortgeschriebenen Zustand definiert. Somit wird durch das Bestätigen des zweiten Blocks 102 im Hauptbuch 11, der die zusammenfassenden Transaktionen 56 und 57 umfasst, ein neuer gemeinsamer Ausgangszustand des Hauptbuchs 11, des ersten Seitenbuchs 21 und des zweiten Seitenbuchs 31 geschaffen.Specifically, the
Der nächste Block 205 des Seitenbuchs 21 wird daher kryptographisch nicht mit dem vorhergehenden Block 204 des Seitenbuchs 21, sondern mit dem zweiten Block 102 des Hauptbuchs 11 verknüpft. Entsprechendes gilt für den nächsten Block 305 des Seitenbuchs 31.The
Demgemäß kann die dritte unbestätigte Kryptotoken-Transaktion 44, deren Bestätigen erst nach dem Bestätigen des Blocks 102 des Hauptbuchs 11 beginnt, trotz ihres Rückbezugs auf die in dem zweiten Transaktionsbuch 31 bestätigte Transaktion 53 in jedem der Seitenbücher 21, 31 bestätigt werden und wird beispielsweise, wie in
Somit kann vorteilhaft auch bei unbestätigten Transaktionen 43, 44 mit Rückbezügen auf ein konkretes der Transaktionsbücher 11, 21, 31 in vordefinierten Zeitabständen durch das verteilte Datenbanksystem 1 eine automatisierte Lastverteilung durch Bestätigen in einem anderen der Transaktionsbücher 11, 21, 31 erfolgen.Thus, even in the case of
Die unbestätigte Transaktion 45 schließlich spezifiziert, dass sie, beispielsweise aufgrund erhöhter Sicherheitsanforderungen, nur in dem Hauptbuch 11 bestätigt werden darf. Dies wird von dem verteilten Datenbanksystem 1 berücksichtigt, und die unbestätigte Transaktion 45 wird als bestätigte Transaktion 55 unmittelbar in dem zweiten Block 102 des Hauptbuchs 11 bestätigt. Dies kann auch so verstanden werden, dass die vorgeschlagene Lösung, die Entscheidung über die bestätigende Datenbankinstanz 10, 20, 30 dem verteilten Datenbanksystem 1 zu überlassen, für bestimmte unbestätigte Transaktionen 45 außer Kraft gesetzt werden kann, sofern dies im Einzelfalle zweckmäßig erscheint.The
Obwohl die vorliegende Erfindung anhand von Ausführungsbeispielen beschrieben wurde, ist sie vielfältig modifizierbar.Although the present invention has been described using exemplary embodiments, it can be modified in many ways.
Anhand des zweiten Ausführungsbeispiels wurde beschrieben, dass die von den jeweiligen Transaktionsbüchern 11, 21, 31 bechriebenen Zustände in vordefinierten Zeitabständen miteinander synchronisiert werden. Es ist jedoch auch denbkar, dass die Datenbankinstanzen 10, 20, 30 zu einer datenbankinstanzübergreifenden Kommunikation beim Bestätigen der jeweiligen zu bestätigenden Transaktion 4 eingerichtet sind. Anders ausgedrückt kann jede der Knoteneinrichtungen (in
Anhand der Ausführungsbeispiele wurde ein stark vereinfachtes verteiltes Datenbanksystem 1 beschrieben, und es wurden lediglich die Grundzüge der Funktionsweise der Blockketten-Technologie angerissen. Es versteht sich, dass der von den Ansprüchen definierte Gedanke der Erfindung auch auf beliebige Weiterbildungen von verteilten Datenbanksystemen und Blockketten-Datenbanken mit mehreren Transaktionsbüchern anwendbar ist, insbesondere auch auf solche, wie sie in den Referenzen [1] bis [8] genannt sind.A greatly simplified, distributed database system 1 was described on the basis of the exemplary embodiments, and only the basic principles of the functioning of the block chain technology were touched upon. It goes without saying that the concept of the invention defined by the claims also applies to any further developments of distributed database systems and block chain databases with several transaction books is applicable, in particular also to those as mentioned in references [1] to [8].
Die Erfindung kann allgemein dahingehend verstanden werden, dass es mindestens teilweise einem verteilten Datenbanksystem 1 überlassen bleibt, in welchem von mehreren Transaktionsbüchern 11, 21, 31 des verteilten Datenbanksystems 1 eine zu bestätigende Transaktion 4 bestätigt wird.The invention can be generally understood to the effect that it is at least partially left to a distributed database system 1 in which a transaction 4 to be confirmed is confirmed by
-
[1]
Andreas M. Antonopoulos "Mastering Bitcoin: Unlocking Digital Cryptocurrencies", O'Reilly Media, December 2014
Andreas M. Antonopoulos "Mastering Bitcoin: Unlocking Digital Cryptocurrencies", O'Reilly Media, December 2014 -
[2]
Roger M. Needham, Michael D. Schroeder "Using encryption for authentication in large networks of computers" ACM: Communications of the ACM. Band 21, Nr. 12 Dezember 1978
Roger M. Needham, Michael D. Schroeder "Using encryption for authentication in large networks of computers" ACM: Communications of the ACM. Volume 21, No. 12 December 1978 -
[3]
Ross Anderson "Security Engineering. A Guide to Building Dependable Distributed Systems" Wiley, 2001
Ross Anderson "Security Engineering. A Guide to Building Dependable Distributed Systems" Wiley, 2001 -
[4]
Henning Diedrich "Ethereum: Blockchains, Digital Assets, Smart Contracts, Decentralized Autonomous Organizations", CreateSpace Independent Publishing Platform, 2016
Henning Diedrich "Ethereum: Blockchains, Digital Assets, Smart Contracts, Decentralized Autonomous Organizations", CreateSpace Independent Publishing Platform, 2016 -
[5]
"The Ethereum Book Project/Mastering Ethereum" https://github.com/ethereumbook/ethereumbook, Stand 5.10.2017
"The Ethereum Book Project / Mastering Ethereum "https://github.com/ethereumbook/ethereumbook, as of October 5, 2017 -
[6]
Leemon Baird "The Swirlds Hashgraph Consensus Algorithm: Fair, Fast, Byzantine Fault Tolerance", Swirlds Tech Report SWIRLDS-TR-2016-01, 31.5.2016
Leemon Baird "The Swirlds Hashgraph Consensus Algorithm: Fair, Fast, Byzantine Fault Tolerance", Swirlds Tech Report SWIRLDS-TR-2016-01, May 31, 2016 -
[7]
Leemon Baird "Overview of Swirlds Hashgraph", 31.5.2016
Leemon Baird "Overview of Swirlds Hashgraph", May 31, 2016 -
[8]
Blockchain Oracles
https://blockchainhub.net/blockchain-oracles/[8th]
Blockchain Oracle
https://blockchainhub.net/blockchain-oracles/
Claims (15)
wobei eine jeweilige der mehreren Datenbankinstanzen (10, 20) durch eine Anzahl Knoteneinrichtungen (12, 13, 14; 22, 23, 24) gebildet ist, die dazu eingerichtet sind, gemeinsam konsensbasiert eines von mehreren Transaktionsbüchern (11, 21) des verteilten Datenbanksystems (1) zu verwalten,
wobei das verteilte Datenbanksystem (1) eingerichtet ist, eine zu bestätigende Transaktion (4) durch Aufnehmen in das Transaktionsbuch (11, 21) einer oder mehrerer der mehreren Datenbankinstanzen (10, 20) zu bestätigen,
wobei das verteilte Datenbanksystem (1) dazu eingerichtet ist, zu entscheiden, durch welche der mehreren Datenbankinstanzen (10, 20) die zu bestätigende Transaktion (4) bestätigt wird.Distributed database system (1) with several database instances (10, 20),
wherein a respective one of the plurality of database instances (10, 20) is formed by a number of node devices (12, 13, 14; 22, 23, 24) which are set up to jointly consensus-based one of a plurality of transaction books (11, 21) of the distributed database system (1) manage
wherein the distributed database system (1) is set up to confirm a transaction (4) to be confirmed by including it in the transaction book (11, 21) of one or more of the plurality of database instances (10, 20),
the distributed database system (1) being set up to decide which of the plurality of database instances (10, 20) confirms the transaction (4) to be confirmed.
dadurch gekennzeichnet,
dass das verteilte Datenbanksystem (1) dazu eingerichtet ist, in Abhängigkeit von einem Zustand der jeweiligen Datenbankinstanz (10, 20) zu entscheiden, durch welche der mehreren Datenbankinstanzen (10, 20) die zu bestätigende Transaktion (4) bestätigt wird.Distributed database system according to claim 1,
characterized,
that the distributed database system (1) is set up to decide depending on a state of the respective database instance (10, 20), by which of the several database instances (10, 20) the transaction (4) to be confirmed is confirmed.
dadurch gekennzeichnet,
dass das verteilte Datenbanksystem (1) dazu eingerichtet ist, für jede der Datenbankinstanzen (10, 20) eine Last zu ermitteln und zu entscheiden, dass die zu bestätigende Transaktion (4) durch die eine oder die mehreren der Datenbankinstanzen (10, 20) mit der geringsten Last bestätigt wird.Distributed database system according to claim 1 or 2
characterized,
that the distributed database system (1) is set up to determine a load for each of the database instances (10, 20) and to decide that the transaction (4) to be confirmed by the one or more of the database instances (10, 20) the lowest load is confirmed.
dadurch gekennzeichnet,
dass das verteilte Datenbanksystem (1) dazu eingerichtet ist, in Abhängigkeit von einem oder mehreren Rückbezügen der zu bestätigenden Transaktion (4) zu entscheiden, durch welche der mehreren Datenbankinstanzen (10, 20, 30) die zu bestätigende Transaktion (4) bestätigt wird.Distributed database system according to one of claims 1 to 3,
characterized,
that the distributed database system (1) is set up to decide, depending on one or more references to the transaction (4) to be confirmed, by which of the plurality of database instances (10, 20, 30) the transaction (4) to be confirmed is confirmed.
dadurch gekennzeichnet,
dass das verteilte Datenbanksystem (1) dazu eingerichtet ist, bei der Entscheidung, durch welche der mehreren Datenbankinstanzen die zu bestätigende Transaktion (4) bestätigt wird, eine jeweilige Datenbankinstanz (10, 20, 30) nur zu berücksichtigen, wenn die Datenbankinstanz (10, 20, 30) von der zu bestätigenden Transaktion (4) spezifiziert ist.Distributed database system according to one of claims 1 to 4,
characterized,
that the distributed database system (1) is set up to only take into account a respective database instance (10, 20, 30) when deciding which of the several database instances to confirm the transaction (4) if the database instance (10, 20, 30) is specified by the transaction (4) to be confirmed.
dadurch gekennzeichnet,
dass das verteilte Datenbanksystem (1) dazu eingerichtet ist, durch eine automatische dezentrale Konsensbildung zwischen den mehreren Datenbankinstanzen (10, 20, 30) zu entscheiden, durch welche der mehreren Datenbankinstanzen (10, 20, 30) die zu bestätigende Transaktion (4) bestätigt wird.Distributed database system according to one of claims 1 to 5,
characterized,
that the distributed database system (1) is set up to decide, by means of an automatic, decentralized consensus formation between the several database instances (10, 20, 30), by which of the several database instances (10, 20, 30) confirms the transaction (4) to be confirmed becomes.
dadurch gekennzeichnet,
dass das verteilte Datenbanksystem (1) dazu eingerichtet ist, eine Anzahl (40) unbestätigter Transaktionen (41-45) vorzuhalten,
wobei eine jeweilige der mehreren Datenbankinstanzen (10, 20, 30) dazu eingerichtet ist, die zu bestätigende Transaktion unter der vorgehaltenen Anzahl (40) unbestätigter Transaktionen (41-45) auszuwählen und zu bestätigen,
wobei das verteilte Datenbanksystem (1) dazu eingerichtet ist, die zu bestätigende Transaktion (4) aus der vorgehaltenen Anzahl (40) unbestätigter Transaktionen (41-45) zu entfernen, sobald eine definierte Anzahl der Datenbankinstanzen (10, 20, 30) die zu bestätigende Transaktion (4) bestätigt hat.Distributed database system according to one of claims 1 to 6,
characterized,
that the distributed database system (1) is set up to maintain a number (40) of unconfirmed transactions (41-45),
wherein a respective one of the plurality of database instances (10, 20, 30) is set up to select and confirm the transaction to be confirmed from the number (40) of unconfirmed transactions (41-45) held,
the distributed database system (1) being set up to remove the transaction (4) to be confirmed from the number (40) of unconfirmed transactions (41-45) held, as soon as a defined number of database instances (10, 20, 30) has confirmed the transaction (4) to be confirmed.
dadurch gekennzeichnet,
dass die definierte Anzahl der Datenbankinstanzen (10, 20, 30) durch die zu bestätigende Transaktion (4) definierbar ist.Distributed database system according to claim 7,
characterized,
that the defined number of database instances (10, 20, 30) can be defined by the transaction (4) to be confirmed.
dadurch gekennzeichnet,
dass eine Konsensregel einer jeweiligen der Datenbankinstanzen (10, 20, 30) derart eingerichtet ist, dass eine Vergütung für das Bestätigen der zu bestätigenden Transaktion (4) nur eine von der zu bestätigenden Transaktion (4) spezifizierte Anzahl Male vergeben wird.Distributed database system according to one of claims 1 to 8,
characterized,
that a consensus rule of a respective one of the database instances (10, 20, 30) is set up in such a way that remuneration for confirming the transaction (4) to be confirmed is only given a number of times specified by the transaction (4) to be confirmed.
dadurch gekennzeichnet,
dass das Datenbanksystem (1) dazu eingerichtet ist, die Transaktionsbücher (11, 21, 31) der mehreren Datenbankinstanzen (10, 20, 30) in vordefinierten Zeitabständen miteinander zu synchronisieren.Distributed database system according to one of claims 1 to 9,
characterized,
that the database system (1) is set up to synchronize the transaction books (11, 21, 31) of the plurality of database instances (10, 20, 30) with one another at predefined time intervals.
dadurch gekennzeichnet,
dass die mehreren Datenbankinstanzen (10, 20, 30) dazu eingerichtet sind, beim Bestätigen der zu bestätigenden Transaktion durch eine der mehreren Datenbankinstanzen (10, 20, 30) einen Rückbezug der zu bestätigenden Transaktion (4) datenbankinstanzübergreifend zu verifizieren.Distributed database system according to one of claims 1 to 10,
characterized,
that the plurality of database instances (10, 20, 30) are set up to verify a back reference of the transaction (4) to be confirmed across database instances when the transaction to be confirmed is confirmed by one of the plurality of database instances (10, 20, 30).
dadurch gekennzeichnet,
dass das Transaktionsbuch (11) einer der mehreren Datenbankinstanzen 10) ein Hauptbuch ist und das Transaktionsbuch (21, 31) einer jeweiligen weiteren der mehreren Datenbankinstanzen (20, 30) ein jeweiliges mit dem Hauptbuch (11) kryptographisch verknüpftes Seitenbuch (21, 31) ist.Distributed database system according to one of claims 1 to 11,
characterized,
that the transaction book (11) of one of the plurality of database instances 10) is a general ledger and the transaction book (21, 31) of a respective further one of the plurality of database instances (20, 30) is a respective side book (21, 31) cryptographically linked to the general ledger (11) is.
dadurch gekennzeichnet,
dass das verteilte Datenbanksystem (1) dazu eingerichtet ist, die zu bestätigende Transaktion (4) entweder in dem Hauptbuch (11) oder in einer Anzahl der Seitenbücher (21, 31) zu bestätigen.Distributed database system according to claim 12,
characterized,
that the distributed database system (1) is set up to confirm the transaction (4) to be confirmed either in the general ledger (11) or in a number of the side books (21, 31).
wobei eine jeweilige der mehreren Datenbankinstanzen (10, 20) durch eine Anzahl Knoteneinrichtungen (12, 13, 14; 22, 23, 24) gebildet ist, die dazu eingerichtet sind, gemeinsam konsensbasiert eines von mehreren Transaktionsbüchern (11, 21) des verteilten Datenbanksystems (1) zu verwalten,
mit den Schritten:
wherein a respective one of the plurality of database instances (10, 20) is formed by a number of node devices (12, 13, 14; 22, 23, 24) which are set up to jointly consensus-based one of a plurality of transaction books (11, 21) of the distributed database system (1) manage
with the steps:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP18191983.8A EP3617978A1 (en) | 2018-08-31 | 2018-08-31 | Distributed database system comprising a plurality of database instances and method for operating the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP18191983.8A EP3617978A1 (en) | 2018-08-31 | 2018-08-31 | Distributed database system comprising a plurality of database instances and method for operating the same |
Publications (1)
Publication Number | Publication Date |
---|---|
EP3617978A1 true EP3617978A1 (en) | 2020-03-04 |
Family
ID=63578944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP18191983.8A Withdrawn EP3617978A1 (en) | 2018-08-31 | 2018-08-31 | Distributed database system comprising a plurality of database instances and method for operating the same |
Country Status (1)
Country | Link |
---|---|
EP (1) | EP3617978A1 (en) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160330034A1 (en) * | 2015-05-07 | 2016-11-10 | Blockstream Corporation | Transferring ledger assets between blockchains via pegged sidechains |
CN106899680A (en) * | 2017-03-09 | 2017-06-27 | 上海亿账通区块链科技有限公司 | The burst treating method and apparatus of multi-tiling chain |
US20170337534A1 (en) * | 2015-11-06 | 2017-11-23 | Cable Television Laboratories, Inc | Systems and methods for blockchain virtualization and scalability |
US9875510B1 (en) * | 2015-02-03 | 2018-01-23 | Lance Kasper | Consensus system for tracking peer-to-peer digital records |
US20180123882A1 (en) * | 2016-10-28 | 2018-05-03 | International Business Machines Corporation | Changing an existing blockchain trust configuration |
US20180121909A1 (en) * | 2016-10-28 | 2018-05-03 | International Business Machines Corporation | System and method to dynamically setup a private sub-blockchain based on agility of transaction processing |
CA3051025A1 (en) * | 2017-02-17 | 2018-08-23 | Alibaba Group Holding Limited | Blockchain system and data storage method and apparatus |
-
2018
- 2018-08-31 EP EP18191983.8A patent/EP3617978A1/en not_active Withdrawn
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9875510B1 (en) * | 2015-02-03 | 2018-01-23 | Lance Kasper | Consensus system for tracking peer-to-peer digital records |
US20160330034A1 (en) * | 2015-05-07 | 2016-11-10 | Blockstream Corporation | Transferring ledger assets between blockchains via pegged sidechains |
US20170337534A1 (en) * | 2015-11-06 | 2017-11-23 | Cable Television Laboratories, Inc | Systems and methods for blockchain virtualization and scalability |
US20180123882A1 (en) * | 2016-10-28 | 2018-05-03 | International Business Machines Corporation | Changing an existing blockchain trust configuration |
US20180121909A1 (en) * | 2016-10-28 | 2018-05-03 | International Business Machines Corporation | System and method to dynamically setup a private sub-blockchain based on agility of transaction processing |
CA3051025A1 (en) * | 2017-02-17 | 2018-08-23 | Alibaba Group Holding Limited | Blockchain system and data storage method and apparatus |
CN106899680A (en) * | 2017-03-09 | 2017-06-27 | 上海亿账通区块链科技有限公司 | The burst treating method and apparatus of multi-tiling chain |
Non-Patent Citations (9)
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3652656B1 (en) | Devices to provide a quantity of cryptographically protected and filtered as well as sorted transaction datasets of a link of a block chain | |
EP3673623B1 (en) | Method and control system for controlling and/or supervising of devices | |
EP3669498B1 (en) | Method and control system for controlling and/or supervising of devices | |
EP3388994A1 (en) | Method and apparatus for computer-assisted testing of a blockchain | |
EP3777088B1 (en) | Method and system for controlling a release of a resource | |
EP3637345A1 (en) | Linking of identities in a distributed database | |
EP3669285B1 (en) | Method and system for controlling and/or monitoring of devices | |
EP3763089B1 (en) | Method and control system for controlling and/or supervising of devices | |
EP3595267A1 (en) | Method, devices and system for exchanging data between a distributed database system and devices | |
EP3714575B1 (en) | Method and control system for controlling and/or supervising of devices | |
WO2020043581A1 (en) | Block formation device and block formation method, node device and block confirmation method | |
DE102020120945A1 (en) | Method for communicating between a large number of charging stations for electric vehicles, based on distributed ledger technology | |
EP3718263B1 (en) | Method and control system for controlling and/or supervising of devices | |
EP3877935A1 (en) | Method for operating a distributed database system, distributed database system, and industrial automation system | |
EP3723007B1 (en) | Method and control system for controlling an execution of transactions | |
WO2020043588A1 (en) | Device and method for determining a consensus version of a transaction ledger and device and method for monitoring a distributed database system | |
EP3599740A1 (en) | Control of a data network with respect to a use of a distributed database | |
EP3713189A1 (en) | Intrusion detection in computer systems | |
EP4169207B1 (en) | Method, devices and system for exchanging data between a distributed database system and devices | |
EP3618348B1 (en) | Distributed database system, industry automation system and method for operating a distributed database system | |
EP3617978A1 (en) | Distributed database system comprising a plurality of database instances and method for operating the same | |
EP3617976A1 (en) | Method for operating a distributed database system, distributed database system, and industrial automation | |
EP3617974A1 (en) | Device and method for providing an oracle transaction in a distributed database system | |
EP3787251A1 (en) | Method, communication device and network application for protected transfer of a data set | |
EP3627755A1 (en) | Method for secure communication in a communication network having a plurality of units with different security levels |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20190104 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20200609 |