EP3617977A1 - Einrichtung und verfahren zum ermitteln einer konsensversion eines transaktionsbuchs und einrichtung und verfahren zum überwachen eines verteilten datenbanksystems - Google Patents

Einrichtung und verfahren zum ermitteln einer konsensversion eines transaktionsbuchs und einrichtung und verfahren zum überwachen eines verteilten datenbanksystems Download PDF

Info

Publication number
EP3617977A1
EP3617977A1 EP18191977.0A EP18191977A EP3617977A1 EP 3617977 A1 EP3617977 A1 EP 3617977A1 EP 18191977 A EP18191977 A EP 18191977A EP 3617977 A1 EP3617977 A1 EP 3617977A1
Authority
EP
European Patent Office
Prior art keywords
block
quality
path
transaction
database system
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.)
Ceased
Application number
EP18191977.0A
Other languages
English (en)
French (fr)
Inventor
Rainer Falk
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to EP18191977.0A priority Critical patent/EP3617977A1/de
Priority to PCT/EP2019/072447 priority patent/WO2020043588A1/de
Publication of EP3617977A1 publication Critical patent/EP3617977A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce

Definitions

  • the present invention relates to the field of distributed database systems and, more particularly, to an apparatus and method for determining a consensus version of a transaction book and an apparatus and method for monitoring a distributed database system.
  • a distributed database system implemented with block chain technology
  • transactions without a clearing house or a special relationship of trust between the transaction partners can be implemented in a transparent and manipulation-protected manner based on a consensus between the transaction partners.
  • a transaction data record can include or reference program code that is executed when the transaction is confirmed in the distributed database system (so-called "smart contract").
  • Such a transparent and manipulation-protected distributed database system is suitable as an IT infrastructure platform for controlling a critical industrial automation system and the like.
  • Magnitude is the difficulty of performing a proof-of-work, a malicious node that blocks complex transactions faster than blocks that take all transactions into account. There is a risk that the malicious node can influence or dominate the majority consensus of the distributed database system.
  • a device for determining a consensus version of a transaction book of a distributed database system among a number of paths from chained blocks.
  • the device comprises a first unit for obtaining a number of paths, each path comprising a number of chained blocks; a second unit for determining a block quality of the respective block of the respective path; a third unit for determining a path quality of the respective path as a function of the block quality of the number of chained blocks of the path; and a fourth unit for determining, from the number of paths, the path with the highest path quality and providing the determined path as the consensus version of the transaction book of the distributed database system.
  • the distributed database system can be formed from a number of node devices.
  • a transaction book of the distributed database system can be represented as a chain or path of confirmed blocks.
  • the chaining can be formed by means of chaining checksums.
  • Each of the number of node devices can store a chain of confirmed blocks representing a consensus version of the transaction book.
  • the distributed database system can be a block chain network or a block chain.
  • a respective block comprises a number of transactions.
  • a number of the node devices can be a respective block-forming node device, which forms unconfirmed blocks from unconfirmed transactions provided in the distributed database system and provides the other node devices in the distributed database system.
  • the provision can take place by direct, indirect or peer-to-peer transmission. Due to temporal competition and / or delays in the provision, a situation can arise in which one of the node devices can form more than one path from linked blocks from the unconfirmed blocks provided to it by the number of block-forming node devices. In other words, a chain of concatenated blocks stored in the node device can be branched into several paths.
  • a respective proposed device for determining a consensus version of the transaction book can in particular be assigned to a respective one of the node devices and in particular be part of it.
  • the respective node device can determine which of the plurality of paths from linked blocks is the chain that is to represent the consensus version of the transaction book of the distributed database system.
  • Such use of the proposed path determination device can be part of a consensus rule or a consensus procedure of the distributed database system.
  • the proposed path determination device it is advantageously not necessarily the longest path, but rather the path with the highest path quality that is determined as the consensus version of the transaction book.
  • a path quality can be understood as a measure for the block qualities of the blocks encompassed by the path.
  • a block goodness can be regarded as a measure of the quality of the block and / or as a measure of the effort required to form the block by a block-forming node device.
  • This can advantageously prevent malicious block-forming node devices from forming a large number of blocks of inferior quality with comparatively little effort and thereby influencing or dominating the majority consensus of the distributed database system.
  • the security against manipulation of the distributed database system can thus be increased.
  • paths formed by adding a block of inferior quality cannot be considered as a consensus version; thus blocks of higher quality can preferably be included in the transaction book, while blocks of lower quality can be excluded from the consensus.
  • a high transaction throughput can be guaranteed in a stable manner even for high-quality or complex transactions.
  • the operation of the distributed database system can be improved.
  • a “number” means a number of one or more.
  • “received” means in particular that the path determination device receives read access to the number of paths in such a way that the further functions of the proposed path determination device can be carried out. If the path determination device is part of a node device of the distributed database system, it can in particular read the number of paths from a storage unit of the node device. If the path determination device is provided externally to the node device, it can receive the number of paths from it via a network transmission or the like.
  • provision means in particular that the path determination device transmits the determined path, which represents the consensus version of the transaction book of the distributed database system (hereinafter also “consensus path”), to the node device assigned to it, for example by writing to a memory area, transmission via network or similar.
  • Consensus path represents the consensus version of the transaction book of the distributed database system
  • transaction refers in particular to an amount of information that can be stored or confirmed as a unit in the distributed database system.
  • a transaction can be understood in such a way that the data included in the transaction transform a state described by the transaction book of the distributed database system into a new valid state.
  • a transaction can in particular include or reference program code - a so-called smart contract - which regulates the processing of the transaction and can be executed when the transaction is confirmed. "Confirming a transaction” can be understood to mean the insertion of the transaction into the distributed database system or its transaction book.
  • block refers in particular to a data block formed according to a consensus rule of the distributed database system.
  • a respective block can further comprise in particular: a number of cryptographic transaction checksums which a respective transaction can protect against manipulation and / or a single data block checksum which can protect the total number of transactions against manipulation; a cryptographic concatenation checksum that represents a checksum of a previous block in a respective path of blocks and thus can protect the preceding portion of the path from tampering; and a proof value that documents a legitimate interest of a node device that formed the block in the smooth operation of the database system, such as a proof-of-work, a proof-of-stake, a signature of a member of a backbone from privileged node devices (Permitted Ledger) and the like.
  • Confirming a transaction in the transaction book of the distributed database system can in particular be understood to mean that a transaction is included by a block-forming node device in an unconfirmed block formed by it, the unconfirmed block is made available to the further node devices and a plurality, preferably all, of the further node devices confirm the unconfirmed block and the unconfirmed transaction included therein by appending the unconfirmed block to the consensus path, ie to the path of confirmed blocks, which is determined as the consensus version of the transaction book after the attachment of the respective proposed path determination device of the respective node device.
  • the transaction book can be, for example, a main transaction book ("general ledger” or “main chain”) or a side transaction book (English “side ledger” or “side chain”) of the distributed database system.
  • the path quality of the respective path can be determined, for example, as a sum, as an average, as a median or the like of the determined block quality of the number of chained blocks of the path.
  • a formula for determining the path quality on the basis of the determined block qualities can be predetermined and / or confirmed in a parameterization transaction in the transaction book of the distributed database system.
  • the respective unit for example first unit, second unit, third unit, fourth unit, can be implemented in terms of hardware and / or software.
  • the respective unit can be used as a device or as part of a device, for example as a computer or as a microprocessor or as a control computer of a vehicle.
  • 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.
  • the fourth unit is further configured to provide the determined path as the consensus version of the transaction book of the distributed database system, provided that the path quality of the determined path is not below a minimum path quality.
  • the fourth unit cannot provide the determined path as the consensus version of the transaction book of the distributed database system and / or provide an explicit message that a consensus version of the transaction book could not be provided.
  • a node device to which the proposed path determination device is assigned cannot determine any of the paths that it has formed from the unconfirmed blocks provided to it as a new consensus version of the transaction book.
  • the node facility can continue to operate with a previous consensus version of the transaction book.
  • the previous consensus version can in particular be a section of the chain of blocks stored in the node device before the branching.
  • the node device cannot confirm any of the unconfirmed blocks provided to it.
  • a confirmation of one or more unconfirmed blocks can thus advantageously be delayed until it is possible to form a path from the provided unconfirmed blocks that has at least the minimum path quality.
  • the path determination device is provided with a single path (a number of one of paths) and the fourth unit cannot provide a consensus version of the transaction book because the path quality determined for the individual path lies below the minimum transaction quality.
  • the chain of blocks stored in the node device does not reach the required minimum path quality before branching.
  • the node device to which the path determination device is assigned can continue to operate without a consensus version of the transaction book.
  • requests for contents of the transaction book addressed to the node device can be refused with an error message until the node device again succeeds in forming a path which is provided by the fourth unit of the path determination device as the consensus version of the transaction book.
  • the minimum path quality can be a predetermined minimum path quality.
  • the minimum path quality can also be defined as a function of a waiting time since the consensus version of the transaction book was ascertained in the past, it being possible in particular for a relationship between the waiting time and the minimum path quality to be set up such that the minimum path quality decreases with increasing waiting time.
  • the proposed path determination device further comprises a fifth unit, which is configured to remove a path from the number of paths if a block of the number of blocks of the path has a block quality that is less than a first threshold, and / or if a path quality of the path is less than a second threshold.
  • Remove means in particular that it is arranged that the path to be removed is no longer a candidate comes into consideration when determining a consensus path and is therefore excluded from the majority consensus.
  • the path determination device can delete the path to be removed by means of write access to a storage unit of the node device assigned to it, or transmit a delete command via network or the like to the node device assigned to it.
  • the respective threshold can be a predefined, absolute threshold.
  • the first threshold can be a predefined fraction of an average quality factor of all of the blocks of the path and / or all of the blocks of the number of paths
  • the second threshold can be a predefined fraction of an average quality factor of all of the number of paths.
  • a path from inferior blocks which is disadvantageous for the stable operation of the distributed database system, can advantageously be excluded from the majority consensus of the distributed database system.
  • the stability and security against manipulation of the operation of the distributed database system can be increased.
  • the second unit is set up to determine the block quality of the respective block as a function of the quality of a detection value included in the block.
  • the proof value can in particular be a proof-of-work or proof of work or a proof-of-stake or proof of provision.
  • the proof of work or proof-of-work can, for example, be an optional value or nonce value, which is selected in such a way that it fulfills a specific requirement.
  • the requirement may be that a cryptographic checksum, such as a hash value, of the entire block exceeds or falls below a predefined threshold.
  • a cryptographic checksum such as a hash value
  • the irreversibility property of cryptographic checksum functions can be difficult and only possible by trial and error to provide such work verification.
  • the presence of such proof of work in a block can document the legitimate interest of the node device that formed the block in the smooth operation of the database system due to the computational effort required to provide it.
  • a block that does not contain a valid proof of work can be discarded and cannot be entered in the transaction book of the distributed database system.
  • a quality of the proof value can be understood as a measure of the extent to which the proof value fulfills and / or exceeds the requirement placed on it.
  • a quality of proof of work can be a measure of how low or how high the hash value of the entire block, including the proof of work, is.
  • a block with a higher quality work certificate may be preferred over a block with a lower quality work certificate.
  • This embodiment is advantageous, for example, in the case of a time-clocked, distributed database system in which a block is to be created at predetermined, fixed time cycles, for example in order to meet real-time requirements and it is not possible to wait indefinitely for the completion of proof of work.
  • a fixed timing can be realized in that no rigid requirement is imposed on the proof of work, but rather, using the proposed path determination device when building consensus, preference is given to those blocks and paths which include proof of work of the highest possible quality, for example the lowest possible Hash value of the entire block.
  • Analogous considerations apply to proof of proof or proof of stake.
  • the amount of crypto tokens to be kept by the block-forming node for consensus-finding about the inclusion of the formed block can advantageously be designed flexibly instead of with a fixed threshold value.
  • the second unit is set up to determine the block quality of the respective block as a function of the number of transactions in the block.
  • a transaction throughput of the distributed database system can thereby be increased. This can be particularly advantageous if the inclusion of a transaction in a block to be formed is associated with a high computing load for checking the transaction.
  • the second unit is set up to determine a transaction quality for each of the number of transactions of the respective block and to determine the block quality of a respective block as a function of the determined transaction quality of the number of transactions in the block.
  • a transaction quality of the respective transaction can be determined in particular depending on the type of transaction and / or the content of the transaction.
  • the quality of the respective block can be determined, for example, as the sum, the mean or the like of the determined transaction quality of the number of transactions in the block.
  • a formula for determining the block quality on the basis of the determined transaction quality can be predefined and / or in one Parameterization transaction must be confirmed in the transaction book of the distributed database system.
  • One or more criteria for determining the transaction quality can be set up depending on the application. For example, a transaction that includes control or measurement values for an industrial automation system can be awarded a higher quality than an administrative transaction, such as a crypto token transaction.
  • an incentive can advantageously be created for the block-forming node devices of the distributed database system, preferably including high-quality transactions, such as, for example, transactions which are particularly relevant or critical for an operator of the distributed database system, in the blocks formed.
  • the second unit can be set up to determine the transaction quality of the respective transaction depending on a computational complexity of the transaction.
  • a "computational complexity" of the transaction can be understood to mean a computing load that a block-forming node device has applied when forming the block comprising the transaction in order to check the validity of the transaction. If, for example, the transaction contains or references a smart contract, this computing load can be considerable.
  • the second unit is set up to determine the transaction quality of the respective transaction as a function of a time difference between determine a time stamp of the transaction and a time stamp of the block comprising the transaction.
  • the second unit is also set up to increase the specific block quality of the respective block according to a predetermined fairness criterion, the predetermined fairness criterion providing for an increase in the block quality depending on the extent to which the block comprised Transactions are transactions of different transaction quality and / or transactions of different types.
  • the second unit can be set up in such a way that the higher the quality of the transactions encompassed, the more preferred a block is confirmed in the transaction book and the faster.
  • the fairness criterion can provide that block quality then increases if, for example, a predetermined proportion of the transactions included in the block has a low transaction quality. This can advantageously compensate to a certain extent for a disadvantage that a block-forming account device would suffer in the form of a lower probability of confirmation of the block formed by it if it includes transactions of low transaction quality in the block.
  • transactions can be prioritized according to their transaction quality, but in particular some transaction data records of a respective block can be reserved for transactions with low transaction quality in order to be able to ensure their final confirmation by the transaction book.
  • low transaction quality is understood to mean a transaction quality that is, for example, lower than a predetermined threshold value, and / or a transaction quality that is lower than a predetermined fraction of a maximum or an average transaction goods of all transactions comprised by the respective block.
  • Analogous considerations apply to transactions of different types. It is true that what is advantageous in terms of real-time suitability, blocks with measurement and control value transactions can be preferred by assigning a high block quality; With the proposed fairness criterion, however, it can advantageously be achieved that there is an incentive for block-forming node devices to also include some transactions of a different type in a respective block to be formed.
  • the third unit is set up to further determine the respective path quality as a function of a statistical parameter of a distribution of the specific block qualities of the chained blocks of the respective path.
  • the parameter can be, for example, an average, a standard deviation, a variance, a quartile range and the like.
  • the block quality of the respective block is determined as a function of the quality of a detection value comprised by the block and the detection value is a work value
  • the embodiment in which the second unit is set up for the To determine the block quality of the respective block as a function of the determined transaction quality of the number of transactions in the block and of the embodiment in which the second unit is set up to determine the transaction quality of the respective transaction depending on a computational complexity of the transaction.
  • a balance can be achieved in a particularly advantageous manner between the computing effort for providing the proof of work of the block and the computing effort for checking the respective transactions of the block.
  • a requirement for proof of work may be reduced and for a block with computationally simple transactions, a requirement for proof of work may be increased.
  • Whether a block in a competitive situation can prevail over another block as the next block of the consensus version of the transaction book can be advantageous from the combined computing effort to form the proof of work and dependent on checking the transactions of the block, such as executing smart contracts and the like. In this way, stable operation of a distributed database system can be ensured even when many complex smart contracts are present.
  • Such a consensus method implemented by a combination of embodiments of the proposed path determination device, in which both the quality of the proof of work and the quality of the transactions are taken into account when forming the consensus, can also be referred to as a "proof of quality".
  • an account device which is set up to participate in a distributed database system which implements block chain technology, the node device comprising a device according to one of the above embodiments.
  • the proposed path determination device can be part of the node device.
  • a distributed database system which implements block chain technology and comprises a plurality of interconnected node devices according to the above embodiment.
  • a method for determining a consensus version of a transaction book of a distributed database system under a number of paths from chained blocks.
  • the method includes: obtaining a number of paths, each path comprising a number of chained blocks; Determining a block quality of the respective block of the respective path; Determining the path quality of the respective path as a function of the block quality of the number of chained blocks of the path; and determining, from the number of paths, the path with the highest path quality and providing it the path determined as the consensus version of the transaction book of the distributed database system.
  • the proposed method mentioned can also be referred to as a path determination method.
  • an apparatus for monitoring a distributed database system that implements block chain technology.
  • the apparatus comprises: a first unit for obtaining a transaction book of the distributed database system, the transaction book comprising a number of chained blocks; a second unit for determining a block quality of the respective block of the transaction book; a third unit for determining a path quality of the transaction book depending on the block quality of the number of chained blocks of the transaction book; and a sixth unit for reporting that a node device of the distributed database system is operated improperly, depending on the determined block quality and / or the determined path quality of the transaction book.
  • the "transaction book” can in particular comprise a path of linked blocks, which is treated by the distributed database system, in particular by a plurality of node devices of the distributed database system, as a representation of the consensus version of the transaction book.
  • the proposed path determination device can advantageously make it possible to prevent paths of inferior quality from being determined as a consensus version of the transaction book.
  • the proposed monitoring device can make it possible to subsequently recognize whether a path of inferior quality has been selected as a consensus version of the transaction book.
  • the “reporting” can include, in particular, the issuing of a warning message to an operator of the distributed database system, for example by sending a message or by displaying a visual indication.
  • the operator can initiate necessary inspection or maintenance measures, such as a security audit.
  • the "reporting” can also include, in particular, the transmission of a message to one or more program-controlled devices.
  • the monitoring device identifies those of the node devices of the distributed database system that are responsible for forming and / or confirming the transaction book, in particular blocks of inferior quality in the transaction book, and these node devices for the remaining node devices of the distributed database system and / or reports to a central control device of the distributed database system.
  • the node devices reported in this way can be temporarily or permanently automatically excluded from participation in the distributed database system or from finding consensus in the distributed database system.
  • a method for monitoring a distributed database system that implements block chain technology.
  • the method includes: obtaining a transaction book of the distributed database system, the transaction book being a number of chained Blocks includes; Determining a block quality of the respective block of the transaction book; Determining a path quality of the transaction book depending on the block quality of the number of chained blocks of the transaction book; and reporting that a node device of the distributed database system is operated improperly, depending on the determined block quality and / or the determined path quality of the transaction book.
  • a computer program product which causes the method as explained above according to the second aspect and / or the method explained above according to the fourth aspect to be carried out on a program-controlled device.
  • a computer program product such as a computer program means, for example as a storage medium, such as Memory card, USB stick, CD-ROM, DVD, or in the form of a downloadable file from a server in 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.
  • the terms “perform”, “calculate”, “computer-aided”, “calculate”, “determine”, “generate”, “configure”, “reconstruct” and the like preferably on 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 interpreted as broadly as possible, in particular to cover 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 that is equipped with configuration steps for executing the aforementioned method according to the invention or is configured with configuration steps such that the programmable processor has the inventive features of the method, the component, the modules or other aspects and / or partial aspects realized the invention.
  • 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.
  • Data can be computer-aided, for example, by means of the storage unit and / or stored, retrieved or made available automatically.
  • “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.
  • “Provide” for example, a transmission (or a transmission or a transmission) be understood by corresponding data from a node to another node of the block chain or 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, which in particular is formed via a transaction of a data block.
  • a calculation of a data block checksum for a corresponding data block can be accelerated, since transaction checksums that have already been calculated for this purpose, for example, immediately 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 implemented that contains an integrity-protected Part and an unprotected part.
  • 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 an indication of a storage location) can also be stored in the corresponding transaction, which in particular indicates a storage location where the data can be called up. 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 to one or more nodes of a distributed database system is transmitted. If, for example, these transactions are successfully validated (e.g. by the node (s)), these transactions are linked in particular as a new data block with at least one existing data block of the distributed database system [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, the data saves (e.g. the control commands and / or contract data and / or other data such as video data, user data, measurement data etc.).
  • 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, for example, be a consensus procedure using a cryptographic puzzle, Gossip about Gossip, Virtual voting or a combination of the above-mentioned methods (e.g. Gossip about Gossip combined with virtual voting) [6] [7].
  • a block chain is used, this can be implemented in particular by means of a Bitcoin-based implementation or an Ethereum-based implementation [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, for example, be 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 proof-of-work proof) include [1] [4] [5].
  • a data block can also be, for example, only a specific memory area or address area of the total data which are 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 in particular also be understood to mean 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 are, for example, technical devices Systems and / or industrial plant and / or an automation network and / or a manufacturing plant, which are in particular also a node of the distributed database system.
  • the devices can, for example, be field devices 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 in particular be understood to mean a node of the distributed database system or also a device outside the block chain or the distributed database system be understood.
  • a device outside of the distributed database system can, for example, access the data (e.g. transactions or tax transactions) of the distributed database system and / or be controlled by nodes (e.g. by means of smart contracts and / or blockchain oracles). 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.
  • nodes e.g. by means of smart contracts and / or blockchain oracles.
  • Fig. 1 shows a device 10 for determining a consensus version of a transaction book (6 in Fig. 3 ) of a distributed database system (hereinafter: "path determination device 10").
  • the path determination device 10 has a first unit 101, a second unit 102, a third unit 103 and a fourth unit 104.
  • Fig. 1 a first path 4 and a second path 5 composed of chained blocks 61 to 67.
  • the first path 4 is a sequence of the chained blocks 61, 62, 63, 64 and 65.
  • the second path 5 is a sequence of the chained blocks 61, 62, 66, 67.
  • Each of blocks 61 to 67 comprises at least one transaction (71-79 in Fig. 7 ) of the transaction book (6 in Fig. 3 ).
  • Fig. 2 described a method for determining the consensus version of the transaction book (6 in Fig. 3 ) of the distributed database system (1 in Fig. 3 ) according to the first Embodiment shows. It will also be on Fig. 1 Referred.
  • step S101 the first unit 101 receives the paths 4, 5.
  • step S102 the second unit 102 determines a respective block quality for each of the blocks 61-67 of each of the paths 4, 5.
  • step S103 the third unit 103 determines the path quality of the path 4 based on the block qualities of the blocks 61-65 of the path 4, and determines the path quality of the path 5 based on the block qualities of the blocks 61, 62, 66, 67.
  • step S104 the fourth unit 104 determines, among the paths 4, 5, the path 4, 5 for which the highest block quality was determined, and sets the one determined path 4, 5 as the consensus version of the transaction book (6 in Fig. 3 ) of the distributed database system (1 in Fig. 3 ) ready.
  • the fourth unit 104 can provide an identifier for the determined path 4, 5 or the determined path 4, 5 to the unit from which it received the paths 4, 5, for example to a block confirmation unit (203 in Fig. 4 ) of a node device (20 in Fig. 4 ) of the distributed database system (1 in Fig. 3 ).
  • the path determination device 10 is used to determine the consensus version of the transaction book (6 in Fig. 3 ) of the distributed database system (1 in Fig. 3 ) can advantageously not necessarily be the longest path 4, but that of the paths 4, 5 with the highest path quality can be selected. This can advantageously create an incentive for the fast and stable confirmation of blocks 61-67 of high quality and at the same time the manipulation security of the distributed database system (1 in Fig. 3 ) be granted.
  • Fig. 3 shows a distributed database system 1 according to a development of the first exemplary embodiment.
  • the distributed database system 1 comprises a number of node devices 20-24 which are networked with one another by means of a network 2.
  • each of the node devices 20-24 can provide transactions and / or blocks in the distributed database system 1 in such a way that several, preferably all, of the node devices 20-24 receive them directly, indirectly or by means of peer-to-peer communication.
  • the distributed database system 1 stores a transaction book 6 formed from a number of linked blocks 61-65.
  • a respective node device 20-24 stores a respective representation of the transaction book 6 which it regards as a consensus version, and a consensus rule of the distributed database system 1, which is implemented by the node devices 20-24, ensures that in a plurality of and preferably in all of the node devices 20-24 the representation of the transaction book 6 is stored.
  • Fig. 4 shows details of the node device 20 of the distributed database system 1. It will also continue to Fig. 3 and Fig. 1 Referred.
  • the node device 20 has a storage unit 201.
  • the number of paths 3, 4 from the concatenated blocks 61-67 are stored in the storage unit 201.
  • One of the paths or a section thereof, for example a path section formed from the blocks 61, 62, is treated by the node device 20 as a consensus version of the transaction book 6.
  • a complete instance of the transaction book 6 of the distributed database system 1 is thus stored in the storage unit 201 of the respective node device 20-24.
  • the node device 20 also has a block formation unit 202.
  • the block formation unit 202 receives a number of unconfirmed transactions provided in the distributed database system 1, forms an unconfirmed block (not shown) from these in accordance with the consensus rule of the distributed database system 1, which block represents the last block 62 of the consensus version of the transaction book 6 stored in the storage unit 201 references, and provides this in the distributed database system 1.
  • the block formation unit 202 appends the unconfirmed block it has formed to the consensus version of the transaction book 6 stored in the storage unit 201, as a result of which it becomes the new last block 63 of the consensus version of the transaction book 6.
  • the node device 20 also has a block confirmation unit 203.
  • the block confirmation unit 203 receives an unconfirmed block provided by another node device 21-24 in the distributed database system 1.
  • the block confirmation unit 203 checks the received unconfirmed block in accordance with the consensus rule of the distributed database system 1.
  • the block confirmation unit 203 checks which of the blocks 61-63 the unconfirmed block references. If the unconfirmed block references none of the blocks 61-63, it is discarded. Otherwise, the received unconfirmed block is appended to block 61-63 it references. In this case, the consensus version of the transaction book 6 may branch into a number of paths 4, 5.
  • the block confirmation unit 203 receives, after the block formation unit 202 has added the block 63 to the instance of the transaction book 6, which is represented by the path section from the blocks 61, 62, 63 of the path 4, in this chronological order further blocks 64, 66, 65 and 67.
  • the block confirmation unit 203 appends the block 64, which references the block 63, to the block 63 of the path 4.
  • adds the Block confirmation unit 203 sends block 66 to block 62, whereby the new path 5 is created.
  • the block confirmation unit 203 appends the block 65 to the path 4 and appends the block 67 to the path 5. It is now questionable which of the paths 4 or 5 should now be treated as the consensus version of the transaction book 6.
  • the block confirmation unit 203 comprises the path determination device 10 according to a development of the first exemplary embodiment, which, in addition to the first unit 101, second unit 102, third unit 103 and fourth unit 104, can optionally have the fifth unit 105.
  • the block confirmation unit 203 uses the path determination device 10 to determine the path 4, 5, which it treats as the consensus version of the transaction book 6, from the number of paths 4, 5 stored in the storage unit 201.
  • the path determination device 10 can select the path 4, provided that all of the blocks 61-67 have the same quality, since in this case path 4 is the longer one of the paths 4, 5.
  • the path quality of a respective one of the paths 4, 5 determined by the path determination device 10 can depend on its length, that is to say on the number of blocks 61-65 or 61, 62, 66, 67 of the respective path 4, 5.
  • the storage unit 201 If, for example, a section of the transaction book 6 of the distributed database system 1 is retrieved from the storage unit 201 as part of a read access to the distributed database system 1, the storage unit 201 outputs the retrieved section of that of the paths 4, 5 which is from the Path determination device 10 has been determined and provided as the consensus version of the transaction book.
  • the structure of the node devices 21-24 of the database system 1 can correspond to the structure of the node device 20 and is therefore not described again.
  • one of the node devices 20-24 can form blocks of low quality in a faster sequence than the other node devices 20-24 form blocks of higher quality than the low quality.
  • This can prevent one of the node devices 20-24 from manipulating the majority consensus in the distributed database system 1 in its favor.
  • the formation of blocks with the higher quality can be rewarded in that such blocks are more likely to become part of the consensus version of the transaction book 6.
  • the path determination device 10 of the block confirmation unit 203 Fig. 4 may optionally have the fifth unit 105.
  • the fifth unit 105 is set up to delete a path 4, 5 from the number of paths 4, 5 stored in the storage unit 201 under one of the following conditions: at least one of the number of blocks 61-67 of the path 4, 5 has a quality factor that is less than a first threshold, and / or at least one of the number of paths 4, 5 has a path quality factor that is less than a second threshold.
  • a path 4, 5, which comprises a grossly abusive block of too low quality and / or a path 4, 5, which has too low a relative or absolute quality, can be excluded from the majority consensus.
  • Fig. 5 shows a device 30 for monitoring a distributed database system (hereinafter referred to as "monitoring device 30") according to a second exemplary embodiment.
  • the monitoring device 30 comprises a first unit 301, a second unit 302, a third unit 303 and a sixth unit 306.
  • FIG. 5 the transaction book 6, which comprises a sequence of concatenated blocks 61 to 65 and is thus structured in the same way as the respective path 4, 5 ( Fig. 1 ), which was described for the first embodiment.
  • the working principle of the monitoring device 10 is based on Fig. 6 describe a method for monitoring a distributed database system according to the second embodiment, and also with reference to FIG Fig. 5 ,
  • step S301 the first unit 301 receives the transaction book 6.
  • step S302 the second unit 302 determines a block quality for each of the blocks 61-65.
  • step S303 the third unit 303 determines the path quality of the transaction book 6 based on the block quality of the blocks 61-65.
  • first unit 301, the second unit 302 and the third unit 303 of the monitoring device 30 according to the second exemplary embodiment are functionally the first unit 101, the second unit 301 and the third unit 103 of the path determination device 10 ( Fig. 1 ) according to the first embodiment.
  • step S306 the sixth unit 306 determines, depending on the determined block quality and / or the determined path quality of the transaction book 6, whether a node device (20-24 in Fig. 3 ) of the distributed database system ( Fig. 1 ), in which the transaction book 6 is stored, abusive is operated. If this is the case, the sixth unit 306 issues a corresponding message.
  • the monitoring device 30 is switched off Fig. 5 with the distributed database system 1 Fig. 3 combined. It's going on Fig. 5 and Fig. 3 Referred.
  • the monitoring device 30 can be provided as a separate unit, as part of the distributed database system 1, as an external unit and communicatively coupled to the distributed database system 1, or as part of one or more of the node devices 20-24.
  • the first unit 301 can read the transaction book 6 by querying the storage unit (201 in Fig. 4 ) one or more of the node devices 20-24.
  • the sixth unit 306 can determine that at least one of the account devices 20-24 is operated improperly if one of the block grades determined by the second unit 302 is below a threshold.
  • the threshold can be a predefined absolute threshold or a predefined fraction of an average value of the determined block qualities of the transaction book 6.
  • the sixth unit 306 can determine that at least one of the node devices 20-24 is operated improperly if the determined path quality of the transaction book 6 is below a predefined absolute threshold.
  • a predefined absolute threshold Each of the conditions mentioned suggests that at least that of the node devices 20-24 that has created the block or blocks 61-65 with low block quality is being operated improperly, and that possibly further ones of the node devices 20-24 that the questionable Block 61-65 have confirmed and included in their respective consensus version of transaction book 6, are being misused and / or operated incorrectly.
  • the message issued by the monitoring device 30 in this case can be used, for example, as part of an intrusion detection system (IDS) to automatically switch off the improperly operated node devices 20-24 and / or to operate an operator of the distributed database system 1 via a to inform the necessary audit of the distributed database system 1.
  • IDS intrusion detection system
  • Fig. 7 shows details of a path 7 from concatenated blocks 61-63 according to preferred variants of the first and / or second exemplary embodiment. The description of Fig. 7 takes place with reference to the Figures 3 . 4 and 5 ,
  • the in Fig. 7 path 7 shown is formed from blocks 61, 62 and 63.
  • the path 7 can be one of the paths stored in the storage unit 201 of a node 20 of the distributed database system 1 and / or the transaction book 6 received by the monitoring device 30.
  • the processes described below for determining a block and / or path quality can relate to functionality of the second unit 102 of the path determination device 10 according to the first exemplary embodiment and / or the second unit 302 of the monitoring device 30 according to the second exemplary embodiment.
  • a respective block 61, 62, 63 of path 7 comprises a user data section, which comprises a number of transactions 71-73, 74-76, 77-79, and a header data section, which in particular has a data block hash value 614, 624, 634 Concatenation hash value 612, 622, 632 and a verification value 611, 621, 631 and optionally a time stamp 613, 623, 633.
  • the transactions 71-79 each include user data of the distributed database system 1.
  • a respective transaction 71-79 can include data and / or program code (so-called smart contracts) which transition from one to the other Describe the state of the distributed database system 1 before confirming transaction 71-79 in a state of the distributed database system 1 after confirming transaction 71-79.
  • smart contracts program code
  • the respective data block hash value 614, 624, 634 is a cryptographic hash value which protects the transactions 71-73, 74-76, 77-79 of the respective block 61, 62, 63 against manipulation.
  • the data block hash value 614, 624, 634 can be a root value of a Merkle or Patricia hash tree.
  • the respective time stamp 613, 623, 633 is an optional feature and can denote the time (date and time) at which the corresponding block 61, 62, 63 was formed.
  • the respective chaining hash value 612, 622, 632 is a hash value of the respective preceding block 61, 62.
  • the chaining hash value 622 is a hash value of the entire block 61.
  • the chaining hash value 632 is a hash value of the entire block 62.
  • the respective Concatenation hash value 612, 622, 632 can define the order of concatenation of blocks 61, 62, 63 and secure path 7 against manipulation. If the transaction 71 were manipulated subsequently, not only would the data block hash value 614 be invalidated, but also the chaining hash values 622 and each subsequent chaining hash value 632.
  • the respective verification value 611, 621, 631 is a value that serves a legitimate interest of the account device 20-24, which has formed the respective block 61, 62, 63, in the inclusion of the block 61, 62, 63 in the transaction book 6 of the distributed database system 1.
  • the evidence value 611, 621, 631 is in particular set up in such a way that it can be checked in a verifiable manner by the block formation device 202 ( Fig. 4 ) of the relevant node 20-24 computing power (so-called proof-of-work), a quantity of crypto tokens (so-called proof-of-stake) held for a certain duration or a quantity of other resources used.
  • the path determination device 10 can determine a block quality of the respective block 61-63 and the path quality of the path 7.
  • a path quality can depend on the number of blocks of the path. If all block qualities B i of two paths 7 are identical, the longer one of the paths 7 is determined as a consensus version of the transaction book 6. However, a shorter one of the paths 7 can also be used as a consensus version of the transaction book 6 are determined if the blocks 61-63 of the shorter of the paths 7 have a higher block quality B on average.
  • the block quality B of the respective block 61, 62, 63 is a function of a detection quality N of the detection value 611, 621, 631 of the respective block 61, 62, 63.
  • the respective verification value 611, 621, 631 can be a relative or best effort proof of work.
  • a request made to the verification value 611, 621, 631 may be that the verification value 611, 621, 631 is to be selected such that a hash value of the entire block 61, 62, 63 is as small as possible. Due to an irreversible property of cryptographic hash functions, a corresponding proof value 611, 621, 631 can only be determined by trial and error, and the more computing power is used, the better the requirement can be met.
  • Such a relative proof-of-work 611, 621, 631 can be advantageous, for example, if it is required to be able to form and confirm the respective block 61, 62, 63 within a predetermined period of time with a guarantee.
  • the trial can be stopped to determine the detection value 611, 621, 631 when the time period has expired, and the best detection value 611, 621, 631 determined so far can be used, with detection values 611, 621, 631 then being different Goodness can result.
  • the block quality B of the respective block 61, 62, 63 is a function of a transaction quality T of each of the transactions 71-73, 74-76, 77-79 of the block 61, 62, 63.
  • the transaction quality T of the respective transaction 71-79 can, for example, depend on a quantity of transferred crypto tokens, on the need for real-time transaction 71-79 and / or on a type of transaction (for example measured value / control value transaction, crypto token transaction, Smart contract, parameterization transaction etc.).
  • a higher quality can be assigned to a block 61-63, which comprises transactions 71-79 that are to be confirmed with priority in the distributed database system 1.
  • the transaction quality T depends on the computational complexity of transaction 71-79.
  • a "computational complexity" of the respective transaction 71-79 can be understood to mean a computing load which the block formation unit 202 had to exert when forming the block 61-63 comprising the transaction 71-79 in order to check the validity of the transaction 71-79 . If, for example, the transaction contains or references a smart contract, this computing load can be considerable.
  • the computational complexity of the respective transaction 71-79 can be determined, for example, by measuring the computing load or execution time that the block confirmation unit 203 uses to check the validity of the transaction 71-79.
  • the computational complexity of the respective transaction 71-79 can also be determined by code analysis.
  • the smart contracts referenced by the transaction can be determined, the execution times of which may be known from previous executions of the same smart contracts, and the known execution times of the referenced smart contracts can be summed up in order to determine the total computing load to be valid for checking the transaction 71-79 to investigate.
  • the block quality B of the respective block 61, 62, 63 can be particularly advantageous both from the detection quality N of the detection value 611, 621, 631 and from the computational complexities of the transactions 71-73, 74-76, 77-79 of the block 61, 62 , 63 depend.
  • a consensus rule of the distributed database system 1 can be designed in such a way that one for creation a valid computational load, ie a block 61-63 to be used corresponding to a predetermined minimum quality requirement, is constant.
  • the computational load required to produce proof of work 611, 622 and 631 and the computational load to be exerted for checking transactions 71-73, 74-76, 77-79, in particular for executing the corresponding smart contracts can be coordinated with one another.
  • the distributed database system 1 can confirm transactions 71-79, which comprise or reference complex smart contracts, quickly and stably.
  • the transactions 71-79 each have a time stamp (not shown) which indicates a point in time at which the transaction 71-79 was created and / or a point in time at which the transaction 71-79 was made available to the distributed database system 1.
  • the respective block 61-63 each has a time stamp 613, 623, 633 which indicates a point in time when the block 61-63 was formed.
  • the transaction quality T of the respective transaction 71-73, 74-76, 77-79 of the respective Blocks 61-63 depend on a time difference between the time stamp of transaction 71-79 and the time stamp 613, 623, 633 of block 61-63. This time difference can also be referred to as time stamp quality C.
  • an incentive can be created to include a transaction 71-79 in a block 61-63 to be formed as soon as possible and / or an incentive to include one in a long time to include a transaction 71-79 waiting to be formed in block 61-63 in block 61-63 to be formed.
  • Transactions 71-79 which are not computationally complex, can thus contribute to a high block quality B of block 61-63, provided that they have already been included in a formed block 61-63 in a short time after being made available to the distributed database system 1. This can create a balance between complex and simple but time-critical transactions 71-79.
  • a distribution of the transaction quality T of the transactions 71-79 can be analyzed.
  • the block quality B can be increased according to a fairness criterion if the block 61-63 comprises transactions of different transaction quality and / or transactions of different types.
  • the formation of blocks 61-63 can be rewarded with particularly high-quality block grades.
  • it can also be rewarded if a predefined number of the transaction data records 71-73, 74-76, 77-79 of the respective block 61-63 is used for transactions 71-79 of inferior transaction quality. It can thus be ensured that transactions 71-79 of lower quality can also be confirmed by the distributed database system 1.
  • the fairness criterion can therefore be used to adaptively partition the transaction throughput of the distributed database system 1 on the one hand for high-priority or high-quality and on the other hand for administrative, low-value transactions 71-79.
  • the block quality B of the respective block 61, 62, 63 is dependent on the number of transactions 71-73, 74-76, 77-79 of the block 61, 62, 63.
  • the block quality B of the respective block 61, 62, 63 are determined as the sum of the transaction quality T of the transactions 71-73, 74-76, 77-79 of the block 61, 62, 63. This can create an incentive to include as many transactions 71-79 as possible in block 61, 62, 63.
  • the path quality P of the path 7 can be determined and / or adapted depending on a statistical parameter of a distribution of the specific block qualities B of the blocks 61-63 of the path 7.
  • a variance or the like of the block qualities B of the blocks 61, 62, 63 could be included in the determination of the path quality P.
  • This proposal is based on the idea that, in the case of a large, distributed database system 1 with a high and diverse transaction throughput, the transaction book 6 of the distributed database system 1 has an average in the context of finding consensus using the proposed path determination device 10 with its block and path quality-dependent determination criteria should set constant block quality B. If a path 7 shows excessive fluctuations in the block quality B of its blocks 61-63, this can be an indication of attempts at manipulation. Such a path 7 can advantageously be identified as suspicious and excluded from finding a consensus or reported to an operator as a potential problem.
  • the formulas and their parameters for determining the respective path quality P, block quality B, transaction quality T, time stamp quality C, detection quality N and the like can be predefined in the respective path determination device 10 and / or monitoring device 30.
  • the quality determination parameters can be stored particularly advantageously in a parameterization transaction 71-79 of the consensus version of the transaction book 6 and can be called up from there in particular by the path determination device 10.
  • the distributed database system 1 can be given the ability to adapt aspects of its consensus rule, in particular the quality determination parameters, on the basis of whose properties of paths and blocks are assessed in finding a consensus, adaptively to changing usage patterns or other database systems 1 occurring in the distributed database system 1 or in the distributed database system 1 for example to adapt conditions made known by an oracle.
  • a path quality of a respective path from concatenated blocks of a distributed database system is determined on the basis of a block quality of the respective block.
  • the determined path quality is used to determine the consensus version of the transaction book from several possible paths and / or to check the consensus version of the transaction book to identify abusive operation.

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

Eine Einrichtung zum Ermitteln einer Konsensversion eines Transaktionsbuchs eines verteilten Datenbanksystems unter einer Anzahl Pfade aus verketteten Blöcken umfasst: eine erste Einheit zum Erhalten einer Anzahl Pfade, wobei ein jeweiliger Pfad eine Anzahl verketteter Blöcke umfasst; eine zweite Einheit zum Bestimmen einer Blockgüte des jeweiligen Blocks des jeweiligen Pfads; eine dritte Einheit zum Bestimmen einer Pfadgüte des jeweiligen Pfads in Abhängigkeit der Blockgüten der Anzahl verketteter Blöcke des Pfads, und eine vierte Einheit zum Ermitteln, aus der Anzahl Pfade, desjenigen Pfads mit der höchsten Pfadgüte und Bereitstellen des ermittelten Pfads als die Konsensversion des Transaktionsbuchs des verteilten Datenbanksystems.Demgemäß kann mit einer pfadgütenbasierten Konsensregel ein stabiler Transaktionsdurchsatz erzielt und Missbrauch verhindert werden.Außerdem werden ein Verfahren zum Ermitteln der Konsensversion sowie eine Einrichtung und ein Verfahren zum Überwachen eines verteilten Datenbanksystems vorgeschlagen.

Description

  • Die vorliegende Erfindung betrifft das Gebiet der verteilten Datenbanksysteme und spezieller eine Einrichtung und ein Verfahren zum Ermitteln einer Konsensversion eines Transaktionsbuchs und eine Einrichtung und ein Verfahren zum Überwachen eines verteilten Datenbanksystems.
  • In einem, etwa mit Blockketten-Technologie implementierten, verteilten Datenbanksystem können Transaktionen ohne Clearing-Stelle oder besonderes Vertrauensverhältnis zwischen den Transaktionspartnern basierend auf einem Konsens zwischen den Transaktionspartnern transparent und manipulationsgeschützt realisiert werden. Ein Transaktionsdatensatz kann hierbei Programmcode umfassen oder referenzieren, der beim Bestätigen der Transaktion in dem verteilten Datenbanksystem zur Ausführung kommt (sog. "Smart Contract"). Ein derartiges transparentes und manipulationsgeschütztes verteiltes Datenbanksystem eignet sich als IT-Infrastrukturplattform zur Steuerung eines kritischen industriellen Automatisierungssystems und dergleichen.
  • Mit zunehmender Komplexität der Smart Contracts steigt die zum Bestätigen und Übernehmen einer Transaktion in ein Transaktionsbuch des verteilten Datenbanksystems aufzubringende Rechenleistung. Bei herkömmlichen verteilten Datenbanksystemen kann daraus das Problem entstehen, dass hochwertige, wie beispielsweise besonders komplexe, Transaktionen nicht oder nur verspätet bestätigt werden und/oder ein Transaktionsdurchsatz sinkt.
  • Ferner kann, wenn kein Proof-of-Work zum Einsatz kommt oder der Rechenaufwand für das Prüfen bestimmter Transaktionen beim Bilden von Blöcken in der gleichen oder einer höheren
  • Größenordnung liegt als die Schwierigkeit des Erbringens eines Proof-of-Work, ein böswilliger Knoten unter Auslassen komplexer Transaktionen schneller Blöcke bilden als ein Knoten, der alle Transaktionen berücksichtigt. So besteht ein Risiko, dass der böswillige Knoten den Mehrheitskonsens des verteilten Datenbanksystems beeinflussen oder dominieren kann.
  • Vor diesem Hintergrund besteht eine Aufgabe der vorliegenden Erfindung darin, ein verbessertes verteiltes Datenbanksystem zu ermöglichen.
  • Demgemäß wird eine Einrichtung zum Ermitteln einer Konsensversion eines Transaktionsbuchs eines verteilten Datenbanksystems unter einer Anzahl Pfade aus verketteten Blöcken vorgeschlagen. Die Einrichtung umfasst eine erste Einheit zum Erhalten einer Anzahl Pfade, wobei ein jeweiliger Pfad eine Anzahl verketteter Blöcke umfasst; eine zweite Einheit zum Bestimmen einer Blockgüte des jeweiligen Blocks des jeweiligen Pfads; eine dritte Einheit zum Bestimmen einer Pfadgüte des jeweiligen Pfads in Abhängigkeit der Blockgüten der Anzahl verketteter Blöcke des Pfads; und eine vierte Einheit zum Ermitteln, aus der Anzahl Pfade, desjenigen Pfads mit der höchsten Pfadgüte und Bereitstellen des ermittelten Pfads als die Konsensversion des Transaktionsbuchs des verteilten Datenbanksystems.
  • Insbesondere kann das verteilte Datenbanksystem aus einer Anzahl Knoteneinrichtungen gebildet sein. Ein Transaktionsbuch des verteilten Datenbanksystems kann als Kette oder Pfad von bestätigten Blöcken repräsentiert werden. Die Verkettung kann mittels Verkettungsprüfsummen gebildet sein. Eine jeweilige der Anzahl Knoteneinrichtungen kann eine Kette von bestätigten Blöcken speichern, die eine Konsensversion des Transaktionsbuchs repräsentiert. Insbesondere kann das verteilte Datenbanksystem ein Blockketten-Netzwerk bzw. eine Blockchain sein.
  • Insbesondere umfasst ein jeweiliger Block eine Anzahl Transaktionen.
  • Eine Anzahl der Knoteneinrichtungen kann eine jeweilige blockbildende Knoteneinrichtung sein, welche aus in dem verteilten Datenbanksystem bereitgestellten unbestätigten Transaktionen unbestätigte Blöcke bildet und den übrigen Knoteneinrichtungen in dem verteilten Datenbanksystem bereitstellt. Das Bereitstellen kann jeweils durch direkte, indirekte oder Peer-to-Peer-Übermittlung erfolgen. Aufgrund von zeitlichen Konkurrenzen und/oder Verzögerungen beim Bereitstellen kann eine Situation entstehen, in der eine der Knoteneinrichtungen aus den ihr von der Anzahl blockbildenden Knoteneinrichtungen bereitgestellten unbestätigten Blöcken mehr als einen Pfad aus verketteten Blöcken bilden kann. Anders ausgedrückt kann eine Kette aus verketten Blöcken, die in der Knoteneinrichtung gespeichert ist, in mehrere Pfade verzweigt sein.
  • Eine jeweilige vorgeschlagene Einrichtung zum Ermitteln einer Konsensversion des Transaktionsbuchs (im Weiteren auch "Pfadermittlungseinrichtung") kann insbesondere einer jeweiligen der Knoteneinrichtungen zugeordnet und insbesondere ein Teil davon sein. Mittels der ihr zugeordneten vorgeschlagenen Pfadermittlungseinrichtung kann die jeweilige Knoteneinrichtung ermitteln, welcher der mehreren Pfade aus verketteten Blöcken diejenige Kette ist, die die Konsensversion des Transaktionsbuchs des verteilten Datenbanksystems repräsentieren soll. Eine derartige Verwendung der vorgeschlagenen Pfadermittlungseinrichtung kann Teil einer Konsensregel bzw. eines Konsensverfahrens des verteilten Datenbanksystems sein.
  • Bei der vorgeschlagenen Pfadermittlungseinrichtung wird vorteilhafterweise nicht notwendigerweise der längste Pfad, sondern der Pfad mit der höchsten Pfadgüte als die Konsensversion des Transaktionsbuchs ermittelt.
  • Eine Pfadgüte kann hierbei als Maß für die Blockgüten der von dem Pfad umfassten Blöcke aufgefasst werden. Eine Blockgüte kann als ein Maß für die Qualität des Blocks und/oder als Maß für den zum Bilden des Blocks von einer blockbildenden Knoteneinrichtung aufgebrachten Aufwand betrachtet werden.
  • Vorteilhafterweise kann somit verhindert werden, dass böswillige blockbildende Knoteneinrichtungen mit vergleichsweise geringem Aufwand eine große Anzahl Blöcke minderer Güte bilden und dadurch den Mehrheitskonsens des verteilten Datenbanksystems beeinflussen bzw. dominieren. Somit kann die Manipulationssicherheit des verteilten Datenbanksystems erhöht werden.
  • Insbesondere können Pfade, die durch Hinzufügen eines Blocks minderer Güte gebildet werden, nicht als Konsensversion in Betracht kommen; somit können bevorzugt Blöcke höherer Güte in das Transaktionsbuch aufgenommen werden, während Blöcke minderer Güte vom Konsens ausgeschlossen sein können.
  • Somit kann vorteilhaft ein Anreiz für die blockbildenden Knoteneinrichtungen geschaffen werden, Blöcke hoher Güte zu bilden. Dadurch kann ein hoher Transaktionsdurchsatz auch für hochwertige bzw. komplexe Transaktionen stabil gewährleistet werden. Der Betrieb des verteilten Datenbanksystems kann verbessert werden.
  • Eine "Anzahl" bedeutet vorliegend eine Anzahl von eins oder mehr.
  • "Erhalten" bedeutet vorliegend insbesondere, dass die Pfadermittlungseinrichtung in einer Weise Lesezugriff auf die Anzahl Pfade erhält, dass die weiteren Funktionen der vorgeschlagenen Pfadermittlungseinrichtung durchführbar werden. Sofern die Pfadermittlungseinrichtung Teil einer Knoteneinrichtung des verteilten Datenbanksystems ist, kann sie insbesondere die Anzahl Pfade aus einer Speichereinheit der Knoteneinrichtung einlesen. Ist die Pfadermittlungseinrichtung extern zu der Knoteneinrichtung bereitgestellt, kann sie die Anzahl Pfade über eine Netzwerkübermittlung oder dergleichen von dieser empfangen.
  • Entsprechend bedeutet "Bereitstellen" vorliegend insbesondere, dass die Pfadermittlungseinrichtung den ermittelten Pfad, der die Konsensversion des Transaktionsbuchs des verteilten Datenbanksystems repräsentiert (im weiteren auch "Konsenspfad"), an die ihr zugeordnete Knoteneinrichtung übermittelt, beispielsweise durch Schreiben in einen Speicherbereich, Übertragen per Netzwerk oder dergleichen.
  • "Transaktion" bezeichnet vorliegend insbesondere eine als eine Einheit in dem verteilten Datenbanksystem speicher- bzw. bestätigbare Menge an Informationen. Eine Transaktion kann derart aufgefasst werden, dass die von der Transaktion umfassten Daten einen von dem Transaktionsbuch des verteilten Datenbanksystems beschriebenen Zustand in einen neuen gültigen Zustand überführen. Eine Transaktion kann insbesondere Programmcode - einen so genannten Smart Contract - umfassen oder referenzieren, der die Abwicklung der Transaktion regelt und beim Bestätigen der Transaktion zur Ausführung kommen kann. Unter "Bestätigen einer Transaktion" kann das Einfügen der Transaktion in das verteilte Datenbanksystem bzw. dessen Transaktionsbuch verstanden werden.
  • "Block" bezeichnet vorliegend insbesondere einen gemäß einer Konsensregel des verteilten Datenbanksystems gebildeten Datenblock. Ein jeweiliger Block kann neben der Anzahl von Transaktionen weiterhin insbesondere umfassen: eine Anzahl von kryptographischen Transaktionsprüfsummen, die eine jeweilige Transaktion gegen Manipulationen schützen kann, und/oder eine einzelne Datenblockprüfsumme, die die gesamte Anzahl von Transaktionen gegen Manipulationen schützen kann; eine kryptographische Verkettungsprüfsumme, die eine Prüfsumme eines vorangehenden Blocks in einem jeweiligen Pfad von Blöcken darstellt und somit den vorangehenden Abschnitt des Pfads vor Manipulationen schützten kann; sowie einen Nachweiswert, der ein berechtigtes Interesse einer Knoteneinrichtung, die den Block gebildet hat, am reibungslosen Betrieb des Datenbanksystems dokumentiert, wie beispielsweise ein Proof-of-Work, ein Proof-of-Stake, eine Signatur eines Mitglieds eines Backbone aus privilegierten Knoteneinrichtungen (Permissioned Ledger) und dergleichen.
  • Unter "Bestätigen einer Transaktion" in dem Transaktionsbuch des verteilten Datenbanksystems kann insbesondere verstanden werden, dass eine Transaktion von einer blockbildenden Knoteneinrichtung in einen von dieser gebildeten unbestätigten Block aufgenommen wird, der unbestätigte Block den weiteren Knoteneinrichtungen bereitgestellt wird und eine Mehrzahl, bevorzugt alle, der weiteren Knoteneinrichtungen den unbestätigten Block und die darin umfasste unbestätigte Transaktion dadurch bestätigen, dass sie den unbestätigten Block an den Konsenspfad anfügen, d.h. an denjenigen Pfad von bestätigten Blöcken, der nach dem Anfügen von der jeweiligen vorgeschlagenen Pfadermittlungseinrichtung der jeweiligen Knoteneinrichtung als die Konsensversions des Transaktionsbuchs ermittelt wird.
  • Das Transaktionsbuch kann beispielsweise ein Haupttransaktionsbuch (engl. "general ledger" oder "main chain") oder ein Seitentransaktionsbuch (engl. "side ledger" oder "side chain") des verteilten Datenbanksystems sein.
  • Die Pfadgüte des jeweiligen Pfads kann beispielsweise als Summe, als Mittelwert, als Median oder dergleichen der bestimmten Blockgüte der Anzahl verketteter Blöcke des Pfads ermittelt werden. Eine Formel zum Bestimmen der Pfadgüte anhand der bestimmten Blockgüten kann fest vorgegeben sein und/oder in einer Parametrisierungstransaktion in dem Transaktionsbuch des verteilten Datenbanksystems bestätigt sein.
  • Die jeweilige Einheit, zum Beispiel erste Einheit, zweite Einheit, dritte Einheit, vierte Einheit, 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 eines Fahrzeuges 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.
  • Gemäß einer Ausführungsform ist die vierte Einheit ferner dazu eingerichtet, den ermittelten Pfad als die Konsensversion des Transaktionsbuchs des verteilten Datenbanksystems bereitzustellen, sofern die Pfadgüte des ermittelten Pfads nicht unter einer Mindestpfadgüte liegt.
  • Anders ausgedrückt kann die vierte Einheit, wenn die Pfadgüte des ermittelten Pfads unter der Mindestpfadgüte liegt, den ermittelten Pfad nicht als die Konsensversion des Transaktionsbuchs des verteilten Datenbanksystems bereitstellen, und/oder eine explizite Mitteilung darüber bereitstellen, dass keine Konsensversion des Transaktionsbuchs bereitgestellt werden konnte.
  • Tritt ein solcher Fall ein, kann insbesondere eine Knoteneinrichtung, der die vorgeschlagene Pfadermittlungseinrichtung zugeordnet ist, keinen der Pfade, die sie aus den ihr bereitgestellten unbestätigten Blöcken gebildet hat, als neue Konsensversion des Transaktionsbuchs ermitteln. Die Knoteneinrichtung kann ihren Betrieb mit einer bisherigen Konsensversion des Transaktionsbuchs fortsetzen. Die bisherige Konsensversion kann insbesondere ein Abschnitt der in der Knoteneinrichtung gespeicherten Kette von Blöcken vor der Verzweigung sein. Anders ausgedrückt kann in einem solchen Fall die Knoteneinrichtung keinen der ihr bereitgestellten unbestätigten Blöcke bestätigen. Somit kann vorteilhaft ein Bestätigen eines oder mehrerer unbestätigter Blöcke solange verzögert werden, bis es gelingt, aus den bereitgestellten unbestätigten Blöcken einen Pfad zu bilden, der mindestens die Mindestpfadgüte aufweist.
  • Denkbar ist hierbei auch ein Fall, in welchem der Pfadermittlungseinrichtung ein einzelner Pfad (eine Anzahl von eins von Pfaden) bereitgestellt wird und die vierte Einheit keine Konsensversion des Transaktionsbuchs bereitstellen kann, weil die ermittelte Pfadgüte des einzelnen Pfads unter der Mindesttransaktionsgüte liegt.
  • Beispielsweise ist denkbar, dass auch die in der Knoteneinrichtung gespeicherte Kette von Blöcken vor der Verzweigung nicht die erforderliche Mindestpfadgüte erreicht. In einem solchen Fall kann die Knoteneinrichtung, der die Pfadermittlungseinrichtung zugeordnet ist, ihren Betrieb ohne Konsensversion des Transaktionsbuchs fortsetzen. Hierbei können an die Knoteneinrichtung gerichtete Anfragen nach Inhalten des Transaktionsbuchs so lange mit einer Fehlermeldung abschlägig beschieden werden, bis es der Knoteneinrichtung erneut gelingt, einen Pfad zu bilden, der von der vierten Einheit der Pfadermittlungseinrichtung als die Konsensversion des Transaktionsbuchs bereitgestellt wird.
  • Die Mindestpfadgüte kann eine vorbestimmte Mindestpfadgüte sein. Die Mindestpfadgüte kann auch abhängig von einer Wartezeit seit einem vergangenen Ermitteln der Konsensversion des Transaktionsbuchs definiert sein, wobei insbesondere eine Beziehung zwischen der Wartezeit und der Mindestpfadgüte derart eingerichtet sein kann, dass die Mindestpfadgüte mit zunehmender Wartezeit abnimmt.
  • Gemäß einer Ausführungsform weist die vorgeschlagene Pfadermittlungseinrichtung ferner eine fünfte Einheit auf, die dazu eingerichtet ist, einen Pfad aus der Anzahl Pfade zu entfernen, wenn ein Block der Anzahl Blöcke des Pfads eine Blockgüte aufweist, die geringer als eine erste Schwelle ist, und/oder wenn eine Pfadgüte des Pfads geringer als eine zweite Schwelle ist.
  • "Entfernen" bedeutet hierbei insbesondere, dass veranlasst wird, dass der zu entfernende Pfad nicht länger als Kandidat beim Ermitteln eines Konsenspfads in Betracht kommt und somit aus dem Mehrheitskonsens ausgeschlossen wird. Beispielsweise kann die Pfadermittlungseinrichtung den zu entfernenden Pfad durch einen Schreibzugriff auf eine Speichereinheit der ihr zugeordneten Knoteneinrichtung löschen oder einen Löschbefehl per Netzwerk oder dergleichen an die ihr zugeordnete Knoteneinrichtung übermitteln.
  • Die jeweilige Schwelle kann eine vordefinierte, absolute Schwelle sein. Alternativ dazu kann die erste Schwelle ein vordefinierter Bruchteil einer durchschnittlichen Güte alle der Blöcke des Pfads und/oder alle der Blöcke der Anzahl Pfade sein, und/oder die zweite Schwelle kann ein vordefinierter Bruchteil einer durchschnittliche Pfadgüte aller der Anzahl Pfade sein.
  • Demgemäß kann vorteilhafterweise ein für den stabilen Betrieb des verteilten Datenbanksystems nachteiliger Pfad aus minderwertigen Blöcken aus dem Mehrheitskonsens des verteilten Datenbanksystems ausgeschlossen werden. Die Stabilität und Manipulationssicherheit des Betriebs des verteilten Datenbanksystems kann erhöht werden.
  • Gemäß einer weiteren Ausführungsform ist die zweite Einheit dazu eingerichtet, die Blockgüte des jeweiligen Blocks in Abhängigkeit von der Güte eines von dem Block umfassten Nachweiswerts zu bestimmen.
  • Der Nachweiswert kann insbesondere ein Proof-of-Work bzw. Arbeitsnachweis oder ein Proof-of-Stake bzw. Vorhaltenachweis sein.
  • Der Arbeitsnachweis oder Proof-of-Work kann beispielsweise ein wahlfreier Wert oder Nonce-Wert sein, der so gewählt ist, dass er eine bestimmte Anforderung erfüllt. Beispielsweise kann die Anforderung lauten, dass eine kryptographische Prüfsumme, wie etwa ein Hash-Wert, des gesamten Blocks eine vordefinierte Schwelle über- oder unterschreitet. Aufgrund einer Unumkehrbarkeitseigenschaft kryptographischer Prüfsummenfunktionen kann es schwierig und nur durch Ausprobieren möglich sein, einen derartigen Arbeitsnachweis zu erstellen. Das Vorhandensein eines solchen Arbeitsnachweises in einem Block kann aufgrund des zu seiner Erbringung notwendigen Rechenaufwands das berechtigte Interesse der Knoteneinrichtung, die den Block gebildet hat, am reibungslosen Betrieb des Datenbanksystems dokumentieren. Ein Block, der keinen gültigen Arbeitsnachweis enthält, kann verworfen und nicht in das Transaktionsbuch des verteilten Datenbanksystems aufgenommen werden.
  • Unter einer Güte des Nachweiswerts kann ein Maß dafür verstanden werden, in wieweit der Nachweiswert die an ihn gestellte Anforderung erfüllt und/oder übererfüllt. Beispielsweise kann eine Güte des Arbeitsnachweises ein Maß dafür sein, wie niedrig oder wie hoch der Hash-Wert des gesamten Blocks einschließlich des Arbeitsnachweises ist.
  • Demgemäß kann ein Block mit einem Arbeitsnachweis höherer Güte gegenüber einem Block mit einem Arbeitsnachweis minderer Güte bevorzugt werden.
  • Vorteilhaft ist diese Ausführungsform beispielsweise bei einem zeitgetakteten verteilten Datenbanksystem, in dem in vorgegebenen fixen Zeittakten ein Block erstellt werden soll, beispielsweise, um Echtzeitanforderungen zu erfüllen, und nicht unbegrenzt auf die Fertigstellung eines Arbeitsnachweises gewartet werden kann. Eine solche fixe Taktung kann dadurch realisiert werden, dass an den Arbeitsnachweis keine starre Anforderung gestellt wird, sondern vielmehr unter Verwendung der vorgeschlagenen Pfadermittlungseinrichtung bei der Konsensbildung solche Blöcke und Pfade bevorzugt werden, die einen Arbeitsnachweis von möglichst höher Güte umfassen, also beispielsweise einen möglichst niedrigen Hashwert des gesamten Blocks ergeben.
  • Analoge Überlegungen gelten für einen Vorhaltenachweis oder Proof-of-Stake. Auch hier kann die von dem blockbildenden Knoten für eine Konsensfindung über die Aufnahme des gebildeten Blocks vorzuhaltende Menge an Kryptotoken vorteilhaft flexibel anstatt mit einem fixierten Schwellwert gestaltet werden.
  • Gemäß einer weiteren Ausführungsform ist die zweite Einheit dazu eingerichtet, die Blockgüte des jeweiligen Blocks in Abhängigkeit von der Anzahl der Transaktionen des Blocks zu bestimmen.
  • Somit kann vorteilhaft ein Anreiz für blockbildende Knoteneinrichtungen des verteilten Datenbanksystems geschaffen werden, möglichst viele Transaktionen in die von ihnen gebildete Blöcke aufzunehmen. Ein Transaktionsdurchsatz des verteilten Datenbanksystems kann dadurch erhöht werden. Dies kann besonders dann vorteilhaft sein, wenn das Aufnehmen einer Transaktion in einen zu bildenden Block mit einer hohen Rechenlast zum Prüfen der Transaktion verbunden ist.
  • Gemäß einer weiteren Ausführungsform ist die zweite Einheit dazu eingerichtet, für jede der Anzahl Transaktionen des jeweiligen Blocks eine Transaktionsgüte zu bestimmen und die Blockgüte eines jeweiligen Blocks in Abhängigkeit von den bestimmten Transaktionsgüten der Anzahl Transaktionen des Blocks zu bestimmen.
  • Eine Transaktionsgüte der jeweiligen Transaktion kann dabei insbesondere in Abhängigkeit von der Art der Transaktion und/oder dem Inhalt der Transaktion bestimmt werden.
  • Die Güte des jeweiligen Blocks kann beispielsweise als Summe, als Mittelwert oder dergleichen der bestimmten Transaktionsgüten der Anzahl Transaktionen des Blocks ermittelt werden. Eine Formel zum Bestimmen der Blockgüte anhand der bestimmten Transaktionsgüten kann fest vorgegeben sein und/oder in einer Parametrisierungstransaktion in dem Transaktionsbuch des verteilten Datenbanksystems bestätigt sein.
  • Ein oder mehrere Kriterien zur Bestimmung der Transaktionsgüte können abhängig vom Anwendungsfall eingerichtet sein. Beispielsweise kann einer Transaktion, die Steuer- oder Messwerte für ein industrielles Automatisierungssystem umfasst, eine höhere Güte zuerkannt werden als einer administrativen Transaktion, wie etwa einer Kryptotoken-Transaktion.
  • So kann vorteilhaft ein Anreiz für die blockbildenden Knoteneinrichtungen des verteilten Datenbanksystems geschaffen werden, bevorzugt Transaktionen von hoher Güte, wie beispielsweise Transaktionen, die für einen Betreiber des verteilten Datenbanksystems besonders relevant oder kritisch sind, in die gebildeten Blöcke aufzunehmen.
  • Gemäß einer weiteren Ausführungsform kann die zweite Einheit dazu eingerichtet ist, die Transaktionsgüte der jeweiligen Transaktion in Abhängigkeit einer rechnerischen Komplexität der Transaktion zu bestimmen.
  • Unter einer "rechnerischen Komplexität" der Transaktion kann eine Rechenlast verstanden werden, die eine blockbildende Knoteneinrichtung beim Bilden des die Transaktion umfassenden Blocks aufgebracht hat, um die Transaktion auf Gültigkeit zu prüfen. Sofern beispielsweise die Transaktion einen Smart Contract enthält oder referenziert, kann diese Rechenlast erheblich sein.
  • Es kann somit vorteilhaft ein Anreiz für blockbildende Konteneinrichtungen dafür geschaffen werden, rechenlastintensive Transaktionen in zu bildende Blöcke aufzunehmen.
  • Gemäß einer weiteren Ausführungsform ist die zweite Einheit dazu eingerichtet, die Transaktionsgüte der jeweiligen Transaktion in Abhängigkeit einer zeitlichen Differenz zwischen einem Zeitstempel der Transaktion und einem Zeitstempel des die Transaktion umfassenden Blocks zu bestimmen.
  • Wird beispielsweise eine Transaktionsgüte bei kleiner zeitlicher Differenz als höher bewertet als eine Transaktionsgüte bei mittlerer zeitlicher Differenz, wobei die mittlere zeitliche Differenz größer ist als die kleine zeitliche Differenz, so kann vorteilhaft ein Anreiz dafür geschaffen werden, dass in dem verteilten Datenbanksystem bereitgestellte Transaktionen zeitnah bestätigt werden.
  • Wird ferner beispielsweise eine Transaktionengüte bei einer hohen zeitlichen Differenz, die größer ist als die mittlere und die kleine zeitliche Differenz, als höher bewertet als die Transaktionsgüte bei der mittleren zeitlichen Differenz, so kann ein Anreiz dafür geschaffen werden, dass Transaktionen, die beispielsweise aufgrund einer Überlastsituation zunächst unberücksichtigt geblieben sind, schlussendlich doch erfolgreich bestätigt werden.
  • Gemäß einer weiteren Ausführungsform ist die zweite Einheit ferner dazu eingerichtet, die bestimmte Blockgüte des jeweiligen Blocks gemäß einem vorgegebenen Fairness-Kriterium zu erhöhen, wobei das vorgegebene Fairness-Kriterium eine Erhöhung der Blockgüte in Abhängigkeit davon vorsieht, in welchem Maße die von dem Block umfassten Transaktionen Transaktionen unterschiedlicher Transaktionsgüte und/oder Transaktionen unterschiedlichen Typs sind.
  • Gemäß den vorgenannten Ausführungsformen kann die zweite Einheit derart eingerichtet sein, dass ein Block umso mehr bevorzugt und umso schneller in dem Transaktionsbuch bestätigt wird, je höher die Güte der von ihm umfassten Transaktionen ist. Um zu vermeiden, dass, etwa bei hohem Transaktionsaufkommen, Transaktionen mit niedriger Güte gar nicht in dem Transaktionsbuch des verteilten Datenbanksystems bestätigt werden, kann gemäß der vorliegenden Ausführungsform das Fairness-Kriterium vorsehen, dass eine Blockgüte dann erhöht wird, wenn beispielsweise ein vorbestimmter Anteil der in dem Block umfassten Transaktionen eine niedrige Transaktionsgüte aufweist. Hierdurch kann ein Nachteil, den eine blockbildende Konteneinrichtung in Form einer geringeren Bestätigungswahrscheinlichkeit des von ihr gebildeten Blocks erleiden würde, wenn sie Transaktionen niedriger Transaktionsgüte in den Block aufnimmt, vorteilhaft zu einem gewissen Maße kompensiert werden. Anders ausgedrückt können Transaktionen gemäß ihrer Transaktionsgüte priorisiert werden, im Speziellen können jedoch einige Transaktionsdatensätze eines jeweiligen Blocks für Transaktionen mit niedriger Transaktionsgüte reserviert werden, um deren schlussendliche Bestätigung durch das Transaktionsbuch gewährleisten zu können.
  • Unter "niedriger Transaktionsgüte" ist hierbei eine Transaktionsgüte zu verstehen, die beispielsweise niedriger als ein vorbestimmter Schwellwert ist, und/oder eine Transaktionsgüte, die niedriger als ein vorbestimmter Bruchteil einer maximalen oder einer mittleren Transaktionsgüter aller von dem jeweiligen Block umfassten Transaktionen ist.
  • Analoge Überlegungen gelten für Transaktionen unterschiedlichen Typs. Zwar können, was unter Aspekten der Echtzeiteignung vorteilhaft ist, Blöcke mit Mess- und Steuerwert-Transaktionen durch Zuweisen einer hohen Blockgüte bevorzugt werden; mit dem vorgeschlagenen Fairness-Kriterium kann jedoch vorteilhaft erreicht werden, dass für blockbildende Knoteneinrichtungen ein Anreiz besteht, auch einige Transaktionen anderen Typs in einen jeweiligen zu bildenden Block aufzunehmen.
  • Gemäß einer weiteren Ausführungsform ist die dritte Einheit dazu eingerichtet, die jeweilige Pfadgüte ferner in Abhängigkeit von einem statistischen Parameter einer Verteilung der bestimmten Blockgüten der verketteten Blöcke des jeweiligen Pfads zu bestimmen.
  • Der Parameter kann beispielsweise ein Mittelwert, eine Standardabweichung, eine Varianz, ein Quartilsabstand und dergleichen sein.
  • Demgemäß können vorteilhaft die Pfadgüte betreffende Auffälligkeiten eines Pfads entdeckt werden, die bei einer rein summarischen Betrachtung der Summe der Blockgüten unentdeckt bleiben können. Bei einem solchen statistische Test als auffällig identifizierte Pfade können vorteilhaft bei der Konsensfindung unberücksichtigt bleiben.
  • Die vorstehenden Ausführungsformen können kombiniert worden.
  • Denkbar ist insbesondere eine Kombination aus der Ausführungsform, bei welcher die Blockgüte des jeweiligen Blocks in Abhängigkeit von der Güte eines von dem Block umfassten Nachweiswerts bestimmt wird und der Nachweiswert ein Arbeitswert ist, mit der Ausführungsform, bei welcher die zweite Einheit dazu eingerichtet ist, die Blockgüte des jeweiligen Blocks in Abhängigkeit von den bestimmten Transaktionsgüten der Anzahl Transaktionen des Blocks zu bestimmen, und der Ausführungsform, bei welcher die zweite Einheit dazu eingerichtet ist, die Transaktionsgüte der jeweiligen Transaktion in Abhängigkeit einer rechnerischen Komplexität der Transaktion zu bestimmen.
  • Hierdurch kann insbesondere vorteilhaft ein Ausgleich zwischen dem Rechenaufwand für das Erbringen des Arbeitsnachweises des Blocks und dem Rechenaufwand für das Überprüfen der jeweiligen Transaktionen des Blocks erzielt werden. Anders ausgedrückt kann bei einem Block mit rechnerisch komplexen Transaktionen eine Anforderung an den Arbeitsnachweis verringert sein und bei einem Block mit rechnerisch einfachen Transaktionen eine Anforderung an den Arbeitsnachweis erhöht sein. Ob sich ein Block in einer Konkurrenzsituation gegenüber einem anderen Block als nächster Block der Konsensversion des Transaktionsbuchs durchsetzen kann, kann vorteilhaft von dem kombinierten Rechenaufwand zum Bilden des Arbeitsnachweises und zum Prüfen der Transaktionen des Blocks, wie etwa zum Ausführen von Smart Contracts und dergleichen, abhängig gemacht werden. Hierdurch kann ein stabiler Betrieb eines verteilten Datenbanksystems auch bei Vorhandensein vieler komplexer Smart Contracts gewährleistet werden.
  • Ein solches, von einer Kombination von Ausführungsformen der vorgeschlagenen Pfadermittlungseinrichtung implementiertes Konsensverfahren, bei dem sowohl die Güte des Arbeitsnachweises als auch die Güte der Transaktionen bei der Konsensbildung berücksichtigt werden, kann auch als "Proof of Quality" bezeichnet werden.
  • Gemäß einer weiteren Ausführungsform wird eine Konteneinrichtung vorgeschlagen, die zur Teilnahme an einem verteilten Datenbanksystem eingerichtet ist, das eine Blockketten-Technologie implementiert, wobei die Knoteneinrichtung eine Einrichtung nach einer der vorstehenden Ausführungsformen umfasst.
  • Anders ausgedrückt kann die vorgeschlagene Pfadermittlungseinrichtung Teil der Knoteneinrichtung sein.
  • Gemäß einer weiteren Ausführungsform wird ein verteiltes Datenbanksystem vorgeschlagen, das eine Blockketten-Technologie implementiert und mehrere miteinander vernetzte Knoteneinrichtungen nach der vorstehenden Ausführungsform umfasst.
  • Gemäß einem zweiten Aspekt wird ein Verfahren zum Ermitteln einer Konsensversion eines Transaktionsbuchs eines verteilten Datenbanksystems unter einer Anzahl Pfade aus verketteten Blöcken vorgeschlagen. Das Verfahren umfasst: Erhalten einer Anzahl Pfade, wobei ein jeweiliger Pfad eine Anzahl verketteter Blöcke umfasst; Bestimmen einer Blockgüte des jeweiligen Blocks des jeweiligen Pfads; Bestimmen der Pfadgüte des jeweiligen Pfads in Abhängigkeit der Blockgüten der Anzahl verketteter Blöcke des Pfads; und Ermitteln, aus der Anzahl Pfade, desjenigen Pfads mit der höchsten Pfadgüte und Bereitstellen des ermittelten Pfads als die Konsensversion des Transaktionsbuchs des verteilten Datenbanksystems.
  • Das genannte vorgeschlagene Verfahren kann auch als Pfadermittlungsverfahren bezeichnet werden.
  • Die für die vorgeschlagene Pfadermittlungseinrichtung beschriebenen Ausführungsformen und Merkmale gelten für das vorgeschlagene Pfadermittlungsverfahren entsprechend.
  • Gemäß einem dritten Aspekt wird eine Vorrichtung zum Überwachen eines verteilten Datenbanksystems vorgeschlagen, das eine Blockketten-Technologie implementiert. Die Vorrichtung umfasst: eine erste Einheit zum Erhalten eines Transaktionsbuchs des verteilten Datenbanksystems, wobei das Transaktionsbuch eine Anzahl verketteter Blöcke umfasst; eine zweite Einheit zum Bestimmen einer Blockgüte des jeweiligen Blocks des Transaktionsbuchs; eine dritte Einheit zum Bestimmen einer Pfadgüte des Transaktionsbuchs in Abhängigkeit der Blockgüten der Anzahl verketteter Blöcke des Transaktionsbuchs; und eine sechste Einheit zum Melden, dass eine Knoteneinrichtung des verteilten Datenbanksystems missbräuchlich betrieben wird, in Abhängigkeit von den bestimmten Blockgüten und/oder der bestimmten Pfadgüte des Transaktionsbuchs.
  • Das "Transaktionsbuch" kann hierbei insbesondere einen Pfad von verketten Blöcken umfassen, der von dem verteilten Datenbanksystem, insbesondere von einer Mehrzahl von Knoteneinrichtungen des verteilten Datenbanksystems, als Repräsentation der Konsensversion des Transaktionsbuchs behandelt wird.
  • Die für die vorgeschlagene Pfadermittlungseinrichtung, insbesondere für deren erste Einheit, zweite Einheit und dritte Einheit, vorgeschlagenen Ausführungsformen, Merkmale und Vorteile, gelten, mutatis mutandis, auch für die vorgeschlagene Überwachungsvorrichtung.
  • Im Speziellen kann die vorgeschlagene Pfadermittlungseinrichtung vorteilhaft ermöglichen, zu verhindern, dass Pfade minderer Güte als Konsensversion des Transaktionsbuchs ermittelt werden. Mit korrespondierenden Merkmalen, insbesondere der ersten, zweiten und dritten Einheit, kann die vorgeschlagene Überwachungseinrichtung ermöglichen, nachträglich zu erkennen, ob ein Pfade minderer Güte als Konsensversion des Transaktionsbuchs ausgewählt worden ist.
  • Das "Melden" kann insbesondere das Ausgeben einer Warnmeldung an einen Betreiber des verteilten Datenbanksystems umfassen, beispielsweise durch Versand einer Nachricht oder durch Anzeigen eines visuellen Hinweises. In Reaktion auf eine solche Meldung kann der Betreiber notwendige Überprüfungs- oder Wartungsmaßnahmen veranlassen, wie beispielsweise einen Sicherheitsaudit.
  • Das "Melden" kann ferner insbesondere das Übermitteln einer Nachricht an eine oder mehrere programmgesteuerte Einrichtungen umfassen. Insbesondere ist denkbar, dass die Überwachungseinrichtung diejenigen der Knoteneinrichtungen des verteilten Datenbanksystems identifiziert, die für das Bilden und/oder Bestätigen des Transaktionsbuchs, insbesondere von Blöcken minderer Güte des Transaktionsbuchs, verantwortlich sind, und diese Knoteneinrichtungen bei den übrigen der Knoteneinrichtungen des verteilten Datenbanksystems und/oder bei einer zentralen Steuereinrichtung des verteilten Datenbanksystems meldet. Die auf diese Weise gemeldeten Knoteneinrichtungen können in Reaktion auf eine solche Meldung vorübergehend oder dauerhaft automatisiert von der Teilnahme an dem verteilten Datenbanksystem bzw. an der Konsensfindung des verteilten Datenbanksystems ausgeschlossen werden.
  • Gemäß einem vierten Aspekt wird ein Verfahren zum Überwachen eines verteilten Datenbanksystems, das eine Blockketten-Technologie implementiert, vorgeschlagen. Das Verfahren umfasst: Erhalten eines Transaktionsbuchs des verteilten Datenbanksystems, wobei das Transaktionsbuch eine Anzahl verketteter Blöcke umfasst; Bestimmen einer Blockgüte des jeweiligen Blocks des Transaktionsbuchs; Bestimmen einer Pfadgüte des Transaktionsbuchs in Abhängigkeit der Blockgüten der Anzahl verketteter Blöcke des Transaktionsbuchs; und Melden, dass eine Knoteneinrichtung des verteilten Datenbanksystems missbräuchlich betrieben wird, in Abhängigkeit von den bestimmten Blockgüten und/oder der bestimmten Pfadgüte des Transaktionsbuchs.
  • Die für die vorgeschlagene Überwachungsvorrichtung beschriebenen Ausführungsformen und Merkmale gelten für das vorgeschlagene Überwachungsverfahren entsprechend.
  • Weiterhin wird ein Computerprogrammprodukt vorgeschlagen, welches auf einer programmgesteuerten Einrichtung die Durchführung des wie oben erläuterten Verfahrens gemäß dem zweiten Aspekt und/oder des wie oben erläuterten Verfahrens gemäß dem vierten Aspekt veranlasst.
  • 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.
  • Nähere Einzelheiten und weitere Varianten von auf Blockketten-Technologie basierenden verteilten Datenbanksystemen, auf die die vorgeschlagene Blockbildungs-Einrichtung, die vorgeschlagene Knoteneinrichtung und die vorgeschlagenen Verfahren anwendbar sind, werden im Folgenden erläutert.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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. 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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].
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 zeigt eine Pfadermittlungseinrichtung und zwei aus verketten Blöcken gebildete Pfade gemäß einem ersten Ausführungsbeispiel;
    • Fig. 2 zeigt ein Pfadermittlungsverfahren gemäß dem ersten Ausführungsbeispiel;
    • Fig. 3 zeigt ein verteiltes Datenbanksystem gemäß einer Weiterbildung des ersten Ausführungsbeispiels;
    • Fig. 4 zeigt eine Konteneinrichtung des verteilten Datenbanksystems gemäß einer Weiterbildung des ersten Ausführungsbeispiels;
    • Fig. 5 zeigt eine Überwachungseinrichtung und ein Transaktionsbuch eines verteilten Datenbanksystems gemäß einem zweiten Ausführungsbeispiel;
    • Fig. 6 zeigt ein Überwachungsverfahren gemäß dem zweiten Ausführungsbeispiel; und
    • Fig. 7 zeigt Details eines Pfads aus verketten Blöcken gemäß bevorzugten Varianten des ersten und/oder zweiten Ausführungsbeispiels.
  • In den Figuren sind gleiche oder funktionsgleiche Elemente mit denselben Bezugszeichen versehen worden, sofern nichts anderes angegeben ist.
  • Fig. 1 zeigt eine Einrichtung 10 zum Ermitteln einer Konsensversion eines Transaktionsbuchs (6 in Fig. 3) eines verteilten Datenbanksystems (im Weiteren: "Pfadermittlungseinrichtung 10"). Die Pfadermittlungseinrichtung 10 weist eine erste Einheit 101, eine zweite Einheit 102, eine dritte Einheit 103 und eine vierte Einheit 104 auf.
  • Weiterhin zeigt Fig. 1 einen ersten Pfad 4 und einen zweiten Pfad 5 aus verketteten Blöcken 61 bis 67. Der erste Pfad 4 ist eine Abfolge der miteinander verketteten Blöcke 61, 62, 63, 64 und 65. Der zweite Pfad 5 ist eine Abfolge der miteinander verketteten Blöcke 61, 62, 66, 67. Jeder der Blöcke 61 bis 67 umfasst mindestens eine Transaktion (71-79 in Fig. 7) des Transaktionsbuchs (6 in Fig. 3).
  • Das Arbeitsprinzip der Pfadermittlungseinrichtung 10 wird nun anhand von Fig. 2 beschrieben, die ein Verfahren zum Ermitteln der Konsensversion des Transaktionsbuchs (6 in Fig. 3) des verteilten Datenbanksystems (1 in Fig. 3) gemäß dem ersten Ausführungsbeispiel zeigt. Es wird außerdem auch auf Fig. 1 Bezug genommen.
  • In Schritt S101 erhält die erste Einheit 101 die Pfade 4, 5.
  • In Schritt S102 bestimmt die zweite Einheit 102 für jeden der Blöcke 61-67 jedes der Pfade 4, 5 eine jeweilige Blockgüte.
  • In Schritt S103 bestimmt die dritte Einheit 103 die Pfadgüte des Pfads 4 anhand der Blockgüten der Blöcke 61-65 des Pfads 4, und bestimmt die Pfadgüte des Pfads 5 anhand der Blockgüten der Blöcke 61, 62, 66, 67.
  • In Schritt S104 ermittelt die vierte Einheit 104 unter den Pfaden 4, 5 denjenigen Pfad 4, 5, für den die höchste Blockgüte bestimmt wurde, und stellt den einen ermittelten Pfad 4, 5 als die Konsensversion des Transaktionsbuchs (6 in Fig. 3) des verteilten Datenbanksystems (1 in Fig. 3) bereit.
  • Beispielsweise kann die vierte Einheit 104 ein Kennzeichen für den ermittelten Pfad 4, 5 oder den ermittelten Pfad 4, 5 an diejenige Einheit bereitstellen, von der sie die Pfade 4, 5 erhalten hat, etwa an eine Blockbestätigungs-Einheit (203 in Fig. 4) einer Knoteneinrichtung (20 in Fig. 4) des verteilten Datenbanksystems (1 in Fig. 3).
  • Wird die Pfadermittlungseinrichtung 10 zum Ermitteln der Konsensversion des Transaktionsbuchs (6 in Fig. 3) des verteilten Datenbanksystems (1 in Fig. 3) verwendet, kann vorteilhafterweise nicht notwendigerweise der längste Pfad 4, sondern derjenige der Pfade 4, 5 mit der höchsten Pfadgüte ausgewählt werden. Hierdurch kann vorteilhaft ein Anreiz zum schnellen und stabilen Bestätigen von Blöcken 61-67 hoher Güte geschaffen und gleichzeitig kann die Manipulationssicherheit des verteilten Datenbanksystems (1 in Fig. 3) gewahrt werden.
  • Fig. 3 zeigt ein verteiltes Datenbanksystem 1 gemäß einer Weiterbildung des ersten Ausführungsbeispiels.
  • Das verteilte Datenbanksystem 1 umfasst eine Anzahl Knoteneinrichtungen 20-24, die mittels eines Netzwerks 2 miteinander vernetzt sind. Beispielsweise kann jede der Knoteneinrichtungen 20-24 Transaktionen und/oder Blöcke in dem verteilten Datenbanksystem 1 derart bereitstellen, dass mehrere, bevorzugt alle, der Knoteneinrichtungen 20-24 diese auf direktem, indirekten Wege oder mittels Peer-to-Peer-Kommunikation empfangen.
  • Das verteilte Datenbanksystem 1 speichert ein aus einer Anzahl verketteter Blöcke 61-65 gebildetes Transaktionsbuch 6.
  • Genauer speichert eine jeweilige Knoteneinrichtung 20-24 eine jeweilige von ihr als Konsensversion betrachtete Repräsentation des Transaktionsbuchs 6, und eine Konsensregel des verteilten Datenbanksystems 1, die von den Knoteneinrichtungen 20-24 implementiert wird, sorgt dafür, dass in einer Mehrzahl der und bevorzugt in allen der Knoteneinrichtungen 20-24 die Repräsentation des Transaktionsbuchs 6 gespeichert ist.
  • Fig. 4 zeigt Details der Knoteneinrichtung 20 des verteilten Datenbanksystems 1. Es wird weiterhin auch auf Fig. 3 und Fig. 1 Bezug genommen.
  • Die Knoteneinrichtung 20 weist eine Speichereinheit 201 auf. In der Speichereinheit 201 sind die Anzahl Pfade 3, 4 aus den verketteten Blöcken 61-67 gespeichert. Einer der Pfade oder ein Abschnitt davon, beispielsweise ein aus den Blöcken 61, 62 gebildeter Pfadabschnitt, wird von der Knoteneinrichtung 20 als Konsensversion des Transaktionsbuchs 6 behandelt. Somit ist in der Speichereinheit 201 der jeweiligen Knoteneinrichtung 20-24 insbesondere eine vollständige Instanz des Transaktionsbuchs 6 des verteilten Datenbanksystems 1 gespeichert.
  • Die Knoteneinrichtung 20 weist ferner eine Blockbildungs-Einheit 202 auf. Die Blockbildungs-Einheit 202 empfängt eine Anzahl in dem verteilten Datenbanksystem 1 bereitgestellte unbestätigte Transaktionen, bildet aus diesen gemäß der Konsensregel des verteilten Datenbanksystems 1 einen unbestätigten Block (nicht gezeigt), der den letzten Block 62 der in der Speichereinheit 201 gespeicherten Konsensversion des Transaktionsbuchs 6 referenziert, und stellt diesen in dem verteilten Datenbanksystem 1 bereit. Außerdem fügt die Blockbildungs-Einheit 202 den von ihr gebildeten unbestätigten Block an die in der Speichereinheit 201 gespeicherte Konsensversion des Transaktionsbuchs 6 an, wodurch dieser zu dem neuen letzten Block 63 der Konsensversion des Transaktionsbuchs 6 wird.
  • Die Knoteneinrichtung 20 weist ferner eine Blockbestätigungs-Einheit 203 auf. Die Blockbestätigungs-Einheit 203 empfängt einen von einer anderen Knoteneinrichtung 21-24 in dem verteilten Datenbanksystem 1 bereitgestellten unbestätigten Block. Die Blockbestätigungs-Einheit 203 prüft den empfangenen unbestätigten Block gemäß der Konsensregel des verteilten Datenbanksystems 1. Insbesondere prüft die Blockbestätigungs-Einheit 203, welchen der Blöcke 61-63 der unbestätigte Block referenziert. Referenziert der unbestätigte Block keinen der Blöcke 61-63, wird er verworfen. Andernfalls wird der empfangene unbestätigte Block an den von ihn referenzierten Block 61-63 angefügt. Hierbei kann es ggf. zur Verzweigung der Konsensversion des Transaktionsbuchs 6 in eine Anzahl Pfade 4, 5 kommen.
  • Angenommen, die Blockbestätigungs-Einheit 203 empfängt, nachdem die Blockbildungs-Einheit 202 den Block 63 an die Instanz des Transaktionsbuchs 6 angefügt hat, welche durch den Pfadabschnitt aus den Blöcken 61, 62, 63 des Pfads 4 repräsentiert wird, in dieser zeitlichen Reihenfolge die weiteren Blöcke 64, 66, 65 und 67. In diesem Fall fügt die Blockbestätigungs-Einheit 203 den Block 64, der den Block 63 referenziert, an den Block 63 des Pfads 4 an. Anschließend fügt die Blockbestätigungs-Einheit 203 den Block 66 an den Block 62 an, wobei der neue Pfad 5 entsteht. Sodann fügt die Blockbestätigungs-Einheit 203 den Block 65 an den Pfad 4 an und fügt den Block 67 an den Pfad 5 an. Fraglich ist nun, welcher der Pfade 4 oder 5 nun als die Konsensversion des Transaktionsbuchs 6 behandelt werden soll.
  • Die Blockbestätigungs-Einheit 203 umfasst die Pfadermittlungseinrichtung 10 gemäß einer Weiterbildung des ersten Ausführungsbeispiels, welche neben der ersten Einheit 101, zweiten Einheit 102, dritten Einheit 103 und vierten Einheit 104 optional die fünfte Einheit 105 aufweisen kann.
  • Die Blockbestätigungs-Einheit 203 nutzt die Pfadermittlungseinrichtung 10, um unter der Anzahl in der Speichereinheit 201 gespeicherter Pfade 4, 5 denjenigen Pfad 4, 5 zu ermitteln, den sie als die Konsensversion des Transaktionsbuchs 6 behandelt.
  • Beispielsweise kann die Pfadermittlungs-Einrichtung 10 den Pfad 4 auswählen, sofern alle der Blöcke 61-67 dieselbe Güte aufweisen, da in diesem Falle Pfad 4 der längere unter den Pfaden 4, 5 ist. Anders gesagt kann die von der Pfadermittlungs-Einrichtung 10 ermittelte Pfadgüte eines jeweiligen der Pfade 4, 5 von dessen Länge, das heißt von der Anzahl Blöcke 61-65 bzw. 61, 62, 66, 67 des jeweiligen Pfads 4, 5 abhängen.
  • Sofern jedoch die Blöcke 61-67 unterschiedliche Blockgüten aufweisen, sind Fälle denkbar, in denen der Pfad 5 ausgewählt wird, wenn eine Pfadgüte des Pfads 4 selbst unter Berücksichtigung der höheren Länge des Pfads 4 immer noch niedriger ist als eine Pfadgüte des kürzeren Pfads 5.
  • Wird nun beispielsweise im Rahmen eines Lesezugriffs auf das verteilte Datenbanksystem 1 aus der Speichereinheit 201 ein Abschnitt des Transaktionsbuchs 6 des verteilten Datenbanksystems 1 abgerufen, gibt die Speichereinheit 201 den abgerufenen Abschnitt desjenigen der Pfade 4, 5 aus, der von der Pfadbestimmungs-Einrichtung 10 als die Konsensversion des Transaktionsbuchs ermittelt und bereitgestellt worden ist.
  • Die Struktur der Knoteneinrichtungen 21-24 des Datenbanksystems 1 kann der Struktur der Knoteneinrichtung 20 entsprechen und wird daher nicht erneut beschrieben.
  • In dem beschriebenen Datenbanksystem 1 gemäß der Weiterbildung kann vorteilhaft verhindert werden, dass eine der Knoteneinrichtungen 20-24 Blöcke geringer Güte in schnellerer Abfolge bilden kann, als die anderen Knoteneinrichtungen 20-24 Blöcke von höherer Güte als der geringen Güte bilden. So kann verhindert werden, dass die eine der Knoteneinrichtungen 20-24 den Mehrheitskonsens in dem verteilten Datenbanksystems 1 zu ihren Gunsten manipulieren kann. Außerdem kann das Bilden von Blöcken mit der höheren Güte dadurch honoriert werden, dass solche Blöcke mit höherer Wahrscheinlichkeit Teil der Konsensversion des Transaktionsbuchs 6 werden.
  • Die Pfadermittlungseinrichtung 10 der Blockbestätigungs-Einheit 203 aus Fig. 4 kann optional die fünfte Einheit 105 aufweisen. Die fünfte Einheit 105 ist dazu eingerichtet, einen Pfad 4, 5 aus der Anzahl von Pfaden 4, 5, die in der Speichereinheit 201 gespeichert sind, unter einer der folgenden Bedingungen zu löschen: mindestens einer der Anzahl Blöcke 61-67 des Pfads 4, 5 weist eine Güte auf, die geringer als eine erste Schwelle ist, und/oder mindestens einer der Anzahl Pfade 4, 5 weist eine Pfadgüte auf, die geringer als eine zweite Schwelle ist.
  • Auf diese Weise kann ein Pfad 4, 5, der einen grob missbräuchlichen Block von zu geringer Güte umfasst und/oder ein Pfad 4, 5, der eine zu geringe relative oder absolute Güte aufweist, aus dem Mehrheitskonsens ausgeschlossen werden.
  • Fig. 5 zeigt eine Vorrichtung 30 zum Überwachen eines verteilten Datenbanksystems (im Weiteren als "Überwachungsvorrichtung 30" bezeichnet) gemäß einem zweiten Ausführungsbeispiel. Die Überwachungsvorrichtung 30 umfasst eine erste Einheit 301, eine zweite Einheit 302, eine dritte Einheit 303 und eine sechste Einheit 306.
  • Weiterhin zeigt Fig. 5 das Transaktionsbuch 6, welches eine Abfolge von verketten Blöcken 61 bis 65 umfasst und somit gleichartig strukturiert ist wie der jeweilige Pfad 4, 5 (Fig. 1), die für das erste Ausführungsbeispiel beschrieben wurde.
  • Das Arbeitsprinzip der Überwachungsvorrichtung 10 wird anhand von Fig. 6 beschreiben, die ein Verfahren zum Überwachen eines verteilten Datenbanksystems gemäß dem zweiten Ausführungsbeispiel zeigt, sowie weiterhin unter Bezugnahme auch auf Fig. 5.
  • In Schritt S301 erhält die erste Einheit 301 das Transaktionsbuch 6.
  • In Schritt S302 bestimmt die zweite Einheit 302 für jeden der Blöcke 61-65 eine Blockgüte.
  • In Schritt S303 bestimmt die dritte Einheit 303 die Pfadgüte des Transaktionsbuchs 6 anhand der Blockgüten der Blöcke 61-65.
  • Es sei angemerkt, dass die erste Einheit 301, die zweite Einheit 302 und die dritte Einheit 303 der Überwachungsvorrichtung 30 gemäß dem zweiten Ausführungsbeispiel funktional der ersten Einheit 101, der zweiten Einheit 301 bzw. der dritten Einheit 103 der Pfadermittlungseinrichtung 10 (Fig. 1) gemäß dem ersten Ausführungsbeispiel entsprechen.
  • In Schritt S306 bestimmt die sechste Einheit 306 in Abhängigkeit von den bestimmten Blockgüten und/oder der bestimmten Pfadgüte des Transaktionsbuchs 6, ob eine Knoteneinrichtung (20-24 in Fig. 3) des verteilten Datenbanksystems (Fig. 1), in welchem das Transaktionsbuch 6 gespeichert ist, missbräuchlich betrieben wird. Ist dies der Fall, gibt die sechste Einheit 306 eine entsprechende Meldung aus.
  • Gemäß einer Weiterbildung wird die Überwachungsvorrichtung 30 aus Fig. 5 mit dem verteilten Datenbanksystems 1 aus Fig. 3 kombiniert. Es wird auf Fig. 5 und Fig. 3 Bezug genommen. Die Überwachungsvorrichtung 30 kann als separate Einheit, als Teil des verteilten Datenbanksystems 1, als zu dem verteilten Datenbanksystem 1 externe und kommunikativ mit diesem gekoppelte Einheit, oder als Teil einer oder mehrerer der Knoteneinrichtungen 20-24 bereitgestellt sein.
  • Die erste Einheit 301 kann das Transaktionsbuch 6 durch Abfragen der Speichereinheit (201 in Fig. 4) einer oder mehrerer der Knoteneinrichtungen 20-24 erhalten.
  • Insbesondere kann die sechste Einheit 306 bestimmen, dass mindestens eine der Konteneinrichtungen 20-24 missbräuchlich betrieben wird, wenn eine der Blockgüten, die von der zweiten Einheit 302 bestimmt werden, unter einer Schwelle liegt. Die Schwelle kann eine vordefinierte absolute Schwelle oder ein vordefinierter Bruchteil eines Mittelwerts der ermittelten Blockgüten des Transaktionsbuchs 6 sein.
  • Insbesondere kann die sechste Einheit 306 bestimmen, dass mindestens eine der Knoteneinrichtungen 20-24 missbräuchlich betrieben wird, wenn die ermittelte Pfadgüte des Transaktionsbuchs 6 unter einer vordefinierten absoluten Schwelle liegt. Jede der genannten Bedingungen legt den Verdacht nahe, dass mindestens diejenige der Knoteneinrichtungen 20-24, die den oder die Blöcke 61-65 mit geringer Blockgüte erstellt hat, missbräuchlich betrieben wird, und dass möglicherweise auch weitere der Knoteneinrichtungen 20-24, die den fraglichen Block 61-65 bestätigt und in ihre jeweilige Konsensversion des Transaktionsbuch 6 aufgenommen haben, missbräuchlich und/oder fehlerhaft betrieben werden.
  • Die in diesem Fall ausgegebenen Meldung der Überwachungsvorrichtung 30 kann beispielsweise im Rahmen eines Intrusion Detection Systems (IDS) genutzt werden, um ein automatisiertes Abschalten der missbräuchlich betriebenen der Knoteneinrichtungen 20-24 zu veranlassen, und/oder um einen Betreiber des verteilten Datenbanksystems 1 über einen notwendigen Audit des verteilten Datenbanksystems 1 zu informieren.
  • Fig. 7 zeigt Details eines Pfads 7 aus verketten Blöcken 61-63 gemäß bevorzugten Varianten des ersten und/oder zweiten Ausführungsbeispiels. Die Beschreibung von Fig. 7 erfolgt unter Rückbezug auf die Figuren 3, 4 und 5.
  • Der in Fig. 7 gezeigte Pfad 7 ist aus den Blöcken 61, 62 und 63 gebildet. Es kann sich bei dem Pfad 7 um einen der in der Speichereinheit 201 eines Knotens 20 des verteilten Datenbanksystems 1 gespeicherten Pfade handeln und/oder um das von der Überwachungsvorrichtung 30 empfangene Transaktionsbuch 6.
  • Die im Folgenden beschriebenen Vorgänge des Ermittelns einer Block- und/oder Pfadgüte können sich auf Funktionalität der zweiten Einheit 102 der Pfadermittlungseinrichtung 10 gemäß dem ersten Ausführungsbeispiel und/oder der zweiten Einheit 302 der Überwachungsvorrichtung 30 gemäß dem zweiten Ausführungsbeispiel beziehen.
  • Ein jeweiliger Block 61, 62, 63 des Pfads 7 umfasst einen Nutzdatenabschnitt, der eine Anzahl von Transaktionen 71-73, 74-76, 77-79 umfasst, sowie einen Kopfdatenabschnitt, der insbesondere einen Datenblock-Hashwert 614, 624, 634, einen Verkettungs-Hashwert 612, 622, 632 und einen Nachweiswert 611, 621, 631 und optional einen Zeitstempel 613, 623, 633 umfasst.
  • Die Transaktionen 71-79 umfassen jeweils Nutzdaten des verteilten Datenbanksystems 1. Im Speziellen kann eine jeweilige Transaktion 71-79 Daten und/oder Programmcode (sog. Smart Contracts) umfassen, welche einen Übergang von einem von dem Zustand des verteilten Datenbanksystems 1 vor dem Bestätigen der Transaktion 71-79 in einen Zustand des verteilten Datenbanksystems 1 nach dem Bestätigen der Transaktion 71-79 beschreiben. Durch Nachverfolgen des Pfads 7 und Nachvollziehen der einzelnen Transaktionen 71-79 kann der von dem Pfad 7 beschriebene Zustand des verteilten Datenbanksystems 1 zu jedem aktuellen und vergangenen Zeitpunkt transparent nachvollzogen werden.
  • Der jeweilige Datenblock-Hashwert 614, 624, 634 ist ein kryptographischer Hashwert, der die Transaktionen 71-73, 74-76, 77-79 des jeweiligen Blocks 61, 62, 63 gegen Manipulationen schützt. Insbesondere kann der Datenblock-Hashwert 614, 624, 634 ein Wurzelwert eines Merkle- oder Patricia-Hashbaums sein.
  • Der jeweilige Zeitstempel 613, 623, 633 ist ein optionales Merkmal und kann den Zeitpunkt (Datum und Uhrzeit) bezeichnen, zu dem der entsprechende Block 61, 62, 63 gebildet wurde.
  • Der jeweilige Verkettungs-Hashwert 612, 622, 632 ist ein Hashwert des jeweils vorangehenden Blocks 61, 62. Insbesondere ist der Verkettungs-Hashwerkt 622 ein Hashwert des gesamten Blocks 61. Der Verkettungs-Hashwert 632 ist ein Hashwert des gesamten Blocks 62. Der jeweilige Verkettungs-Hashwert 612, 622, 632 kann die Reihenfolge der Verkettung der Blöcke 61, 62, 63 definieren sowie den Pfad 7 gegen Manipulationen sichern. Würde etwa die Transaktion 71 nachträglich manipuliert, würde dadurch nicht nur der Datenblock-Hashwert 614 invalidiert, sondern auch der Verkettungs-Hashwerte 622 und jeder nachfolgende Verkettungs-Hashwert 632.
  • Der jeweilige Nachweiswert 611, 621, 631 ist ein Wert, der dazu dient, ein berechtigtes Interesse der Konteneinrichtung 20-24, die den jeweiligen Block 61, 62, 63 gebildet hat, an der Aufnahme des Blocks 61, 62, 63 in das Transaktionsbuch 6 des verteilten Datenbanksystems 1 zu dokumentieren. Der Nachweiswert 611, 621, 631 ist insbesondere derart eingerichtet, dass er auf nachprüfbare Weise eine Menge von durch die Blockbildungs-Einrichtung 202 (Fig. 4) des betreffenden Knotens 20-24 aufgewandter Rechenleistung (sog. Proof-of-Work), eine für eine bestimmte Dauer vorgehaltene Menge an Kryptotoken (sog. Proof-of-Stake) oder eine Menge anderweitig eingesetzter Ressourcen dokumentiert.
  • Die Anforderung der Konsensregel, dass ein jeweiliger Block 61, 62, 63 einen solchen Nachweiswert 611, 621, 631 enthalten soll, damit er von einer Blockbestätigungs-Einrichtung 203 der jeweiligen Knoteneinrichtung 20-24 des verteilten Datenbanksystems 1 erfolgreich bestätigt werden kann, erschwert bzw. verteuert das Bilden eines korrekten, der Konsensregel entsprechenden Blocks 61-63. Dies kann dem Manipulationsschutz dienen, da ein nachträgliches Verändern des Pfades 7 auch ein erneutes ressourcenaufwändiges Bestimmen veränderter Nachweiswerte 611, 621, 631 erforderlich machen kann.
  • Es folgt eine Beschreibung von Varianten, auf welche Weise die Pfadermittlungseinrichtung 10 eine Blockgüte des jeweiligen Blocks 61-63 und die Pfadgüte des Pfads 7 bestimmen kann.
  • Allgemein ist eine Pfadgüte P des Pfads 7 eine Funktion der Blockgüten B der Blöcke 61, 62, 63 des Pfads 7: P = f B i , mit i = 61 , 62 , 63
    Figure imgb0001
  • Gemäß einer Variante ist die Pfadgüte P eine Summe der Blockgüten B der Blöcke 61, 62, 63 des Pfads 7: P = B i , mit i = 61 , 62 , 63
    Figure imgb0002
  • Demgemäß kann eine Pfadgüte von der Anzahl der Blöcke des Pfads abhängen. Sind alle Blockgüten Bi zweier Pfade 7 identisch, wird der längere der Pfade 7 als Konsensversion des Transaktionsbuchs 6 ermittelt. Es kann jedoch auch ein kürzerer der Pfade 7 als Konsensversion des Transaktionsbuchs 6 ermittelt werden, wenn die Blöcke 61-63 des kürzeren der Pfade 7 im Mittel eine höhere Blockgüte B aufweisen.
  • Gemäß einer Variante ist die Blockgüte B des jeweiligen Blocks 61, 62, 63 eine Funktion einer Nachweisgüte N des Nachweiswerts 611, 621, 631 des jeweiligen Blocks 61, 62, 63.
  • Insbesondere kann der jeweilige Nachweiswert 611, 621, 631 ein relativer oder Best-Effort-Proof-of-Work sein. Beispielsweise kann eine an den Nachweiswert 611, 621, 631 gestellte Anforderung lauten, dass der Nachweiswert 611, 621, 631 derart zu wählen ist, dass ein Hashwert des gesamten Blocks 61, 62, 63 möglichst klein ist. Aufgrund einer Unumkehrbarkeitseigenschaft kryptographischer Hashfunktionen kann ein entsprechender Nachweiswert 611, 621, 631 nur durch Ausprobieren ermittelt werden, und je mehr Rechenleistung aufgewandt wird, desto besser kann die gestellte Anforderung erfüllt werden.
  • Ein solcher relativer Proof-of-Work 611, 621, 631 kann beispielsweise vorteilhaft sein, wenn gefordert ist, den jeweiligen Block 61, 62, 63 binnen einer vorgegeben Zeitspanne mit Garantie bilden und bestätigen zu können. In diesem Fall kann das Ausprobieren zum Ermitteln des Nachweiswerts 611, 621, 631 abgebrochen werden, wenn die Zeitspanne abgelaufen ist, und der bis dahin ermittelte beste Nachweiswert 611, 621, 631 verwendet worden, wobei sich dann Nachweiswerte 611, 621, 631 von unterschiedlicher Güte ergeben können.
  • Gemäß einer Variante ist die Blockgüte B des jeweiligen Blocks 61, 62, 63 eine Funktion einer Transaktionsgüte T jeder der Transaktionen 71-73, 74-76, 77-79 des Blocks 61, 62, 63.
  • Die Transaktionsgüte T der jeweiligen Transaktion 71-79 kann beispielsweise abhängen von einer Menge von transferierten Kryptotokens, von einer Echtzeitbedürftigkeit der Transaktion 71-79 und/oder von einer Art der Transaktion (beispielsweise Messwert-/Steuerwerttransaktion, Kryptotoken-Transaktion, Smart Contract, Parametrisierungstransaktion etc.). Somit kann einem Block 61-63, der Transaktionen 71-79 umfasst, die in dem verteilten Datenbanksystem 1 mit Priorität zu bestätigen sind, eine höhere Güte zugewiesen werden.
  • Gemäß einer Variante ist die Transaktionsgüte T abhängig von einer rechnerischen Komplexität der Transaktion 71-79.
  • Unter einer "rechnerischen Komplexität" der jeweiligen Transaktion 71-79 kann eine Rechenlast verstanden werden, die die Blockbildungs-Einheit 202 beim Bilden des die Transaktion 71-79 umfassenden Blocks 61-63 aufbringen musste, um die Transaktion 71-79 auf Gültigkeit zu prüfen. Sofern beispielsweise die Transaktion einen Smart Contract enthält oder referenziert, kann diese Rechenlast erheblich sein.
  • Die rechnerische Komplexität der jeweiligen Transaktion 71-79 kann beispielsweise durch Messen der Rechenlast bzw. Ausführungszeit erfasst werden, die die Blockbestätigungseinheit 203 zum Prüfen der Transaktion 71-79 auf Gültigkeit verwendet. Alternativ hierzu kann die rechnerische Komplexität der jeweiligen Transaktion 71-79 auch durch Codeanalyse erfasst werden. Beispielsweise können die von der Transaktion referenzierten Smart Contracts ermittelt werden, deren Ausführungszeiten von vorangegangenen Ausführungen derselben Smart Contracts bekannt sein können, und die bekannten Ausführungszeiten der referenzierten Smart Contracts können aufsummiert werden, um die gesamte zum Prüfen der Transaktion 71-79 auf Gültigkeit aufzubringende Rechenlast zu ermitteln.
  • Besonders vorteilhaft kann die Blockgüte B des jeweiligen Blocks 61, 62, 63 sowohl von der Nachweisgüte N des Nachweiswerts 611, 621, 631 als auch von den rechnerischen Komplexitäten der Transaktionen 71-73, 74-76, 77-79 des Blocks 61, 62, 63 abhängen.
  • Beispielsweise kann eine Konsensregel des verteilten Datenbanksystems 1 derart gestaltet werden, dass ein zum Erstellen eines gültigen, d.h. einer vorgegebenen Mindestgüteanforderung entsprechenden Blocks 61-63 aufzuwendende Rechenlast konstant ist. Auf diese Weise können die zum Aufbringen des Arbeitsnachweises 611, 622 und 631 erforderliche Rechenlast und die zum Prüfen der Transaktionen 71-73, 74-76, 77-79, insbesondere zum Ausführen der entsprechenden Smart Contracts, aufzubringende Rechenlast aufeinander abgestimmt werden.
  • Dadurch kann vorteilhaft einer Situation entgegengewirkt werden, bei welcher eine Konteneinrichtung 20-24 des verteilten Datenbanksystems 1, die eine rechnerisch komplexe Transaktion 71-79 in einen von ihrer Blockbildungseinrichtung 202 zu bildenden Block 61-63 aufnimmt, aufgrund der zum Prüfen der rechnerisch komplexen Transaktion 71-79 erforderliche Rechenlast im Wettbewerb mit den anderen Knoteneinrichtungen 20-24 dadurch benachteiligt ist, dass der von ihr gebildete Block mit der rechnerisch komplexen Transaktion 71-79 wegen der höheren Rechenlast später fertiggestellt wird. Vielmehr kann die Blockbildungseinrichtung 202 ohne Benachteiligung bei der Konsensfindung umso weniger Rechenlast für das Ermitteln des Nachweiswerts 611, 621, 631 aufbringen, je mehr Rechenlast sie für das Prüfen der Transaktionen 71-73, 74-76, 77-79 des Blocks 61-63 aufgewendet hat.
  • Somit kann dafür gesorgt werden, dass das verteilte Datenbanksystem 1 Transaktionen 71-79, die komplexe Smart Contracts umfassen oder referenzieren, zügig und stabil bestätigen kann.
  • Gemäß einer Variante weisen die Transkationen 71-79 jeweils einen Zeitstempel (nicht gezeigt) auf, der einen Zeitpunkt des Erstellens der Transaktion 71-79 und/oder einen Zeitpunkt des Bereitstellens der Transaktion 71-79 an das verteilte Datenbanksystem 1 angibt. Der jeweilige Block 61-63 weist jeweils einen Zeitstempel 613, 623, 633 auf, der einen Zeitpunkt des Bildens des Blocks 61-63 angibt. Die Transaktionsgüte T der jeweiligen Transaktion 71-73, 74-76, 77-79 des jeweiligen Blocks 61-63 ist abhängig von einer zeitlichen Differenz zwischen dem Zeitstempel der Transaktion 71-79 und dem Zeitstempel 613, 623, 633 des Blocks 61-63. Diese zeitliche Differenz kann auch als Zeitstempelgüte C bezeichnet werden.
  • Durch geeignetes Einrichten der Abhängigkeit der Transaktionsgüte T von der zeitlichen Differenz kann beispielsweise ein Anreiz dafür geschaffen werden, eine Transaktion 71-79 möglichst bald in einen zu bildenden Block 61-63 aufzunehmen, und/oder ein Anreiz dafür, eine schon lange auf Aufnahme in einen zu bildenden Block 61-63 wartende Transaktion 71-79 in den zu bildenden Block 61-63 aufzunehmen.
  • Somit können auch rechnerisch wenig komplexe Transaktionen 71-79 zu einer hohen Blockgüte B des Blocks 61-63 beitragen, sofern sie in kurzer Zeit nach ihrem Bereitstellen an das verteilte Datenbanksystem 1 bereits in einen gebildeten Block 61-63 aufgenommen worden sind. Hierdurch kann ein Ausgleich zwischen komplexen und einfachen, aber zeitkritischen Transaktionen 71-79 geschaffen werden.
  • Gemäß einer Variante kann nach Bestimmen der Blockgüte B des jeweiligen Blocks 61-63 eine Verteilung der Transaktionsgüten T der Transaktionen 71-79 analysiert werden. Die Blockgüte B kann gemäß einem Fairness-Kriterium erhöht werden, sofern der Block 61-63 Transaktionen unterschiedlicher Transaktionsgüte und/oder Transaktionen unterschiedlichen Typs umfasst.
  • Anders ausgedrückt kann einerseits das Bilden von Blöcken 61-63 mit besonders hochwertigen Blockgüten honoriert werden. Andererseits kann auch honoriert werden, wenn eine vordefinierte Anzahl der Transaktionsdatensätze 71-73, 74-76, 77-79 des jeweiligen Blocks 61-63 für Transaktionen 71-79 von minderer Transaktionsgüte verwendet wird. Somit kann dafür gesorgt werden, dass auch Transaktionen 71-79 minderer Güte von dem verteilten Datenbanksystem 1 bestätigt werden können. Es kann somit über das Fairness-Kriterium eine adaptive Partitionierung des Transaktionsdurchsatzes des verteilten Datenbanksystems 1 einerseits für hochpriore bzw. hochwertige und andererseits für administrative, niederwertige Transaktionen 71-79 erzielt werden.
  • Gemäß einer Variante ist die Blockgüte B des jeweiligen Blocks 61, 62, 63 abhängig von der Anzahl der Transaktionen 71-73, 74-76, 77-79 des Blocks 61, 62, 63. Beispielsweise kann die Blockgüte B des jeweiligen Blocks 61, 62, 63 als Summe der Transaktionsgüten T der Transaktionen 71-73, 74-76, 77-79 des Blocks 61, 62, 63 ermittelt werden. Hierdurch kann ein Anreiz geschaffen werden, möglichst viele Transaktionen 71-79 in den Block 61, 62, 63 aufzunehmen.
  • Gemäß einer Variante kann die Pfadgüte P des Pfads 7 abhängig von einem statistischen Parameter einer Verteilung der bestimmten Blockgüten B der Blöcke 61-63 des Pfads 7 bestimmt und/oder nach angepasst werden. Beispielsweise könnte in die Bestimmung der Pfadgüte P eine Varianz oder dergleichen der Blockgüten B der Blöcke 61, 62, 63 einfließen.
  • Diesem Vorschlag liegt der Gedanke zugrunde, dass bei einem großen verteilten Datenbanksystem 1 mit einem hohen und diversen Transaktionsdurchsatz sich im Rahmen der Konsensfindung unter Verwendung der vorgeschlagenen Pfadermittlungseinrichtung 10 mit ihren block- und pfadgütenabhängigen Ermittlungskriterien sich in dem Transaktionsbuch 6 des verteilten Datenbanksystems 1 eine im Mittel konstante Blockgüte B einstellen sollte. Weist ein Pfad 7 zu große Schwankungen der Blockgüten B seiner Blöcke 61-63 auf, kann dies ein Hinweis auf Manipulationsversuche sein. Eins solcher Pfad 7 kann vorteilhaft als verdächtig erkannt und aus der Konsensfindung ausgeschlossen bzw. als potentielles Problem an einen Betreiber gemeldet werden.
  • Die beschriebenen Varianten können vom Fachmann einzeln ausgewählt und/oder nach Bedarf miteinander kombiniert werden. Im allgemeinsten Fall kann eine Pfadgüte P und können die Blockgüten Bi des Pfads 7 somit gemäß den Formeln P = f B i , mit i = 61 , 62 , 63
    Figure imgb0003
    B i = f T i , j C i N i , mit i = 61 , 62 , 63 ; j = 71 79
    Figure imgb0004
    ermittelt werden.
  • Die Formeln und ihre Parameter zum Ermitteln jeweiliger Pfadgüten P, Blockgüten B, Transaktionsgüten T, Zeitstempelgüten C, Nachweisgüten N und dergleichen (im Weiteren "Gütebestimungsparameter") können in der jeweiligen Pfadermittlungseinrichtung 10 und/oder Überwachungsvorrichtung 30 fest vorgegeben sein.
  • Besonders vorteilhaft können die Gütebestimmungsparameter jedoch in einer Parametrisierungstransaktion 71-79 der Konsensversion des Transaktionsbuchs 6 abgelegt und insbesondere von der Pfadermittlungseinrichtung 10 von dort abgerufen werden.
  • Somit ist es möglich, die Gütebestimmungsparameter im Laufe der Zeit im Abhängigkeit eines Betriebszustands des verteilten Datenbanksystems 1 anzupassen. Eine solche Anpassung kann manuell und/oder automatisch erfolgen. Bei einer automatischen Anpassung kann ein Smart Contract mit Regeln zum Anpassen der Gütebestimmungsparameter in dem Transaktionsbuch 6 des verteilten Datenbanksystems 1 gespeichert sein. Der Smart Contract kann insbesondere Code zum maschinellen Lernen umfassen. Somit könnte eine automatische Anpassung automatisch durch Mehrheitskonsens zwischen den Knoteneinrichtungen 20-24 erfolgen. Somit kann dem verteilten Datenbanksystem 1 die Fähigkeit verliehen werden, Aspekte seiner Konsensregel, insbesondere die Gütebestimmungsparameter, anhand deren Eigenschaften von Pfaden und Blöcken bei der Konsensfindung beurteilt werden, adaptiv an sich ändernde Nutzungsmuster oder sonstige in dem verteilten Datenbanksystem 1 auftretende oder dem verteilten Datenbanksystem 1 beispielsweise über ein Orakel bekannt gemachte Bedingungen anzupassen.
  • Obwohl die vorliegende Erfindung anhand von Ausführungsbeispielen beschrieben wurde, ist sie vielfältig modifizierbar.
  • Zusammenfassend wird eine Pfadgüte eines jeweiligen Pfads aus verketten Blöcken eines verteilten Datenbanksystems anhand einer Blockgüte des jeweiligen Blocks bestimmt. Die bestimmte Pfadgüte wird zum Ermitteln der Konsensversion des Transaktionsbuchs unter mehreren möglichen Pfaden benutzt und/oder zur Überprüfung der Konsensversion des Transaktionsbuchs zum Erkennen von missbräuchlichem Betrieb.
  • Mit der vorgeschlagenen Lösung kann Flexibilität beim Anpassen der Konsensregel eines verteilten Datensystems an gewünschte Eigenschaften wie schnelles Bestätigen umfangreicher oder komplexer Transkationen, hoher und gleichmäßiger Transaktionsdurchsatz, Zeitbeschränkungen beim Bilden von Blöcken und dergleichen erlangt und gleichzeitig ein Missbrauch durch böswillige Knoteneinrichtungen, insbesondere ein Missbrauch der gewonnenen Flexibilität, verhindert werden.
  • Referenzen

Claims (15)

  1. Einrichtung (10) zum Ermitteln einer Konsensversion eines Transaktionsbuchs (6) eines verteilten Datenbanksystems (1) unter einer Anzahl Pfade (4, 5) aus verketteten Blöcken (61-67), wobei die Einrichtung (10) umfasst:
    eine erste Einheit (101) zum Erhalten einer Anzahl Pfade (4, 5), wobei ein jeweiliger Pfad (4, 5) eine Anzahl verketteter Blöcke (61-67) umfasst,
    eine zweite Einheit (102) zum Bestimmen einer Blockgüte des jeweiligen Blocks (61-67) des jeweiligen Pfads (4, 5),
    eine dritte Einheit (103) zum Bestimmen einer Pfadgüte des jeweiligen Pfads (4, 5) in Abhängigkeit der Blockgüten der Anzahl verketteter Blöcke (61-67) des Pfads (4, 5), und
    eine vierte Einheit (104) zum Ermitteln, aus der Anzahl Pfade (4, 5), desjenigen Pfads (4, 5) mit der höchsten Pfadgüte und Bereitstellen des ermittelten Pfads (4, 5) als die Konsensversion des Transaktionsbuchs (6) des verteilten Datenbanksystems (1).
  2. Einrichtung nach Anspruch 1,
    gekennzeichnet durch
    eine fünfte Einheit (105), die dazu eingerichtet ist, einen Pfad (4, 5) aus der Anzahl Pfade zu entfernen, wenn ein Block der Anzahl Blöcke (61-67) des Pfads (4, 5) eine Blockgüte aufweist, die geringer als eine erste Schwelle ist, und/oder wenn eine Pfadgüte des Pfads (4, 5) geringer als eine zweite Schwelle ist.
  3. Einrichtung nach Anspruch 1 oder 2,
    dadurch gekennzeichnet,
    dass die zweite Einheit (102) dazu eingerichtet ist, die Blockgüte des jeweiligen Blocks (61-67) in Abhängigkeit von der Güte eines von dem Block (61-67) umfassten Nachweiswerts (611, 621, 631) zu bestimmen.
  4. Einrichtung nach einem der Ansprüche 1 bis 3,
    dadurch gekennzeichnet,
    dass die zweite Einheit (102) dazu eingerichtet ist, die Blockgüte des jeweiligen Blocks (61-67) in Abhängigkeit von der Anzahl der Transaktionen (71-79) des Blocks (61-67) zu bestimmen.
  5. Einrichtung nach einem der Ansprüche 1 bis 4,
    dadurch gekennzeichnet,
    dass die zweite Einheit (102) dazu eingerichtet ist, für jede der Anzahl Transaktionen (71-79) des jeweiligen Blocks (61-67) eine Transaktionsgüte zu bestimmen und die Blockgüte eines jeweiligen Blocks (61-67) in Abhängigkeit von den bestimmten Transaktionsgüten der Anzahl Transaktionen (71-79) des Blocks (61-67) zu bestimmen.
  6. Einrichtung nach Anspruch 5,
    dadurch gekennzeichnet,
    dass die zweite Einheit (102) dazu eingerichtet ist, die Transaktionsgüte der jeweiligen Transaktion (71-79) in Abhängigkeit einer rechnerischen Komplexität der Transaktion (71-79) zu bestimmen.
  7. Einrichtung nach Anspruch 5 oder 6,
    dadurch gekennzeichnet,
    dass die zweite Einheit (102) dazu eingerichtet ist, die Transaktionsgüte der jeweiligen Transaktion (71-79) in Abhängigkeit einer zeitlichen Differenz zwischen einem Zeitstempel der Transaktion (71-79) und einem Zeitstempel (613, 623, 633) des die Transaktion (71-79) umfassenden Blocks (61-67) zu bestimmen.
  8. Einrichtung nach einem der Ansprüche 5 bis 7,
    dadurch gekennzeichnet,
    dass die zweite Einheit (102) ferner dazu eingerichtet ist, die bestimmte Blockgüte des jeweiligen Blocks (61-67) gemäß einem vorgegebenen Fairness-Kriterium zu erhöhen, wobei das vorgegebene Fairness-Kriterium eine Erhöhung der Blockgüte in Abhängigkeit davon vorsieht, in welchem Maße die von dem Block umfassten Transaktionen (71-79) Transaktionen (71-79) unterschiedlicher Transaktionsgüte und/oder Transaktionen (71-79) unterschiedlichen Typs sind.
  9. Einrichtung nach einem der Ansprüche 1 bis 8,
    dadurch gekennzeichnet,
    dass die dritte Einheit dazu eingerichtet ist, die jeweilige Pfadgüte ferner in Abhängigkeit von einem statistischen Parameter einer Verteilung der bestimmten Blockgüten der verketteten Blöcke (61-67) des jeweiligen Pfads (4, 5, 7) zu bestimmen.
  10. Knoteneinrichtung (20-24), eingerichtet zur Teilnahme an einem verteilten Datenbanksystem (1), das eine Blockketten-Technologie implementiert, wobei die Knoteneinrichtung (20-24) eine Einrichtung (10) nach einem der Ansprüche 1 bis 9 umfasst.
  11. Verteiltes Datenbanksystem (1), das eine Blockketten-Technologie implementiert und mehrere miteinander vernetzte Knoteneinrichtungen (20-24) nach Anspruch 10 umfasst.
  12. Verfahren zum Ermitteln einer Konsensversion eines Transaktionsbuchs (6) eines verteilten Datenbanksystems (1) unter einer Anzahl Pfade (4, 5) aus verketteten Blöcken (61-67), wobei das Verfahren umfasst:
    Erhalten (S101) einer Anzahl Pfade (4, 5), wobei ein jeweiliger Pfad (4, 5) eine Anzahl verketteter Blöcke (61-67) umfasst,
    Bestimmen (S102) einer Blockgüte des jeweiligen Blocks (61-67) des jeweiligen Pfads (4, 5),
    Bestimmen (S103) der Pfadgüte des jeweiligen Pfads (4, 5) in Abhängigkeit der Blockgüten der Anzahl verketteter Blöcke (61-67) des Pfads (4, 5), und
    Ermitteln (S104), aus der Anzahl Pfade (4, 5), desjenigen Pfads (4, 5) mit der höchsten Pfadgüte und Bereitstellen des ermittelten Pfads (4, 5) als die Konsensversion des Transaktionsbuchs (6) des verteilten Datenbanksystems (1).
  13. Vorrichtung (30) zum Überwachen eines verteilten Datenbanksystems (1), das eine Blockketten-Technologie implementiert, wobei die Vorrichtung (30) umfasst:
    eine erste Einheit (301) zum Erhalten eines Transaktionsbuchs (6) des verteilten Datenbanksystems (1), wobei das Transaktionsbuch (6) eine Anzahl verketteter Blöcke (61-67) umfasst,
    eine zweite Einheit (302) zum Bestimmen einer Blockgüte des jeweiligen Blocks (61-67) des Transaktionsbuchs (6),
    eine dritte Einheit (303) zum Bestimmen einer Pfadgüte des Transaktionsbuchs (6) in Abhängigkeit der Blockgüten der Anzahl verketteter Blöcke (61-67) des Transaktionsbuchs (6), und
    eine sechste Einheit (306) zum Melden, dass eine Knoteneinrichtung (20-24) des verteilten Datenbanksystems (1) missbräuchlich betrieben wird, in Abhängigkeit von den bestimmten Blockgüten und/oder der bestimmten Pfadgüte des Transaktionsbuchs (6).
  14. Verfahren zum Überwachen eines verteilten Datenbanksystems (1), das eine Blockketten-Technologie implementiert, wobei das Verfahren umfasst:
    Erhalten (S301) eines Transaktionsbuchs (6) des verteilten Datenbanksystems (1), wobei das Transaktionsbuch (6) eine Anzahl verketteter Blöcke (61-67) umfasst,
    Bestimmen (S302) einer Blockgüte des jeweiligen Blocks (61-67) des Transaktionsbuchs (6),
    Bestimmen (S303) einer Pfadgüte des Transaktionsbuchs (6) in Abhängigkeit der Blockgüten der Anzahl verketteter Blöcke (61-67) des Transaktionsbuchs (6), und
    Melden (S306), dass eine Knoteneinrichtung (20-24) des verteilten Datenbanksystems (1) missbräuchlich betrieben wird, in Abhängigkeit von den bestimmten Blockgüten und/oder der bestimmten Pfadgüte des Transaktionsbuchs (6).
  15. Computerprogrammprodukt, welches auf einer programmgesteuerten Einrichtung die Durchführung des Verfahrens nach einem der Ansprüche 12 oder 14 veranlasst.
EP18191977.0A 2018-08-31 2018-08-31 Einrichtung und verfahren zum ermitteln einer konsensversion eines transaktionsbuchs und einrichtung und verfahren zum überwachen eines verteilten datenbanksystems Ceased EP3617977A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP18191977.0A EP3617977A1 (de) 2018-08-31 2018-08-31 Einrichtung und verfahren zum ermitteln einer konsensversion eines transaktionsbuchs und einrichtung und verfahren zum überwachen eines verteilten datenbanksystems
PCT/EP2019/072447 WO2020043588A1 (de) 2018-08-31 2019-08-22 Einrichtung und verfahren zum ermitteln einer konsensversion eines transaktionsbuchs und einrichtung und verfahren zum überwachen eines verteilten datenbanksystems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP18191977.0A EP3617977A1 (de) 2018-08-31 2018-08-31 Einrichtung und verfahren zum ermitteln einer konsensversion eines transaktionsbuchs und einrichtung und verfahren zum überwachen eines verteilten datenbanksystems

Publications (1)

Publication Number Publication Date
EP3617977A1 true EP3617977A1 (de) 2020-03-04

Family

ID=63528515

Family Applications (1)

Application Number Title Priority Date Filing Date
EP18191977.0A Ceased EP3617977A1 (de) 2018-08-31 2018-08-31 Einrichtung und verfahren zum ermitteln einer konsensversion eines transaktionsbuchs und einrichtung und verfahren zum überwachen eines verteilten datenbanksystems

Country Status (2)

Country Link
EP (1) EP3617977A1 (de)
WO (1) WO2020043588A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112507371A (zh) * 2021-02-05 2021-03-16 中航信移动科技有限公司 基于区块链的民航安检数据处理系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11915236B2 (en) * 2021-03-05 2024-02-27 Capital One Services, Llc Immutable database for bitemporal analysis

Citations (2)

* Cited by examiner, † Cited by third party
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
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

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10158527B2 (en) * 2016-10-28 2018-12-18 International Business Machines Corporation Changing an existing blockchain trust configuration

Patent Citations (2)

* Cited by examiner, † Cited by third party
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
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

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
Title
"The Ethereum Book Project/Mastering Ethereum"
ANDREAS M. ANTONOPOULOS: "Mastering Bitcoin: Unlocking Digital Cryptocurrencies", December 2014, O'REILLY MEDIA
BLOCKCHAIN ORACLES, Retrieved from the Internet <URL:https://blockchainhub.net/blockchain-oracles/>
HENNING DIEDRICH: "Ethereum: Blockchains, Digital Assets, Smart Contracts, Decentralized Autonomous Organizations", 2016, CREATESPACE INDEPENDENT PUBLISHING PLATFORM
LEEMON BAIRD, OVERVIEW OF SWIRLDS HASHGRAPH, 31 May 2016 (2016-05-31)
LEEMON BAIRD: "The Swirlds Hashgraph Consensus Algorithm: Fair, Fast, Byzantine Fault Tolerance", SWIRLDS TECH REPORT SWIRLDS-TR-2016-01, 31 May 2016 (2016-05-31)
NEM: "NEM Technical Reference", 23 February 2018 (2018-02-23), XP055518295, Retrieved from the Internet <URL:https://nem.io/wp-content/themes/nem/files/NEM_techRef.pdf> [retrieved on 20181023] *
NXT WIKI: "Whitepaper:Nxt - Nxt Wiki", 2 July 2018 (2018-07-02), XP055518168, Retrieved from the Internet <URL:https://nxtwiki.org/wiki/Whitepaper:Nxt> [retrieved on 20181023] *
ROGER M. NEEDHAM; MICHAEL D. SCHROEDER: "Using encryption for authentication in large networks of computers", ACM: COMMUNICATIONS OF THE ACM, vol. 21, no. 12, December 1978 (1978-12-01), XP058231706, DOI: doi:10.1145/359657.359659
ROSS ANDERSON: "Security Engineering. A Guide to Building Dependable Distributed Systems", 2001, WILEY

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112507371A (zh) * 2021-02-05 2021-03-16 中航信移动科技有限公司 基于区块链的民航安检数据处理系统
CN112507371B (zh) * 2021-02-05 2021-04-27 中航信移动科技有限公司 基于区块链的民航安检数据处理系统

Also Published As

Publication number Publication date
WO2020043588A1 (de) 2020-03-05

Similar Documents

Publication Publication Date Title
EP3652656B1 (de) Vorrichtungen zum bereitstellen einer menge von kryptographisch geschützten und gefilterten sowie sortierten transaktionsdatensätzen eines gliedes einer blockkette
EP3673623B1 (de) Verfahren und steuersystem zum steuern und/oder überwachen von geräten
EP3125492B1 (de) Verfahren und system zum erzeugen eines sicheren kommunikationskanals für endgeräte
EP3388994A1 (de) Verfahren und vorrichtung zum rechnergestützten testen einer blockkette
EP3637345A1 (de) Verknüpfung von identitäten in einer verteilten datenbank
EP3763089B1 (de) Verfahren und steuersystem zum steuern und/oder überwachen von geräten
EP3617926B1 (de) Blockbildungs-einrichtung und -verfahren, knoteneinrichtung und blockbestätigungs-verfahren
EP3714575B1 (de) Verfahren und system zum steuern und/oder überwachen von geräten
EP3576368A1 (de) Verfahren und system zum steuern einer freigabe einer ressource
EP3617977A1 (de) Einrichtung und verfahren zum ermitteln einer konsensversion eines transaktionsbuchs und einrichtung und verfahren zum überwachen eines verteilten datenbanksystems
EP4154070A1 (de) Digital-twin basierte prozesssteuerung in einem iot-netzwerk
EP3723007B1 (de) Verfahren und steuersystem zum steuern einer ausführung von transaktionen
EP3934195A1 (de) Vorrrichtungen, computerimplementiertes verfahren und computerprogrammprodukt zum erteilen eines zugriffs auf eine steuerfunktion anhand eines objektes
EP3599740A1 (de) Steuern eines datennetzes hinsichtlich eines einsatzes einer verteilten datenbank
WO2020193136A1 (de) Intrusionserkennung bei computersystemen
EP3877935A1 (de) Verfahren zum betreiben eines verteilten datenbanksystems, verteiltes datenbanksystem und industrieautomatisierungssystem
EP3764266A1 (de) Verfahren und vorrichtung zum handeln auf einer elektronischen handelsplattform
EP3618348B1 (de) Verfahren zum betreiben eines verteilten datenbanksystems, verteiltes datenbanksystem und industrieautomatisierungssystem
EP3617974A1 (de) Einrichtung und verfahren zum bereitstellen einer orakel-transaktion in einem verteilten datenbanksystem
EP3945702A1 (de) Kanalbasierte kommunikation in einem iot-netzwerk
EP3617976A1 (de) Verfahren zum betreiben eines verteilten datenbanksystems, verteiltes datenbanksystem und industrieautomatisierungssystem
EP3787251A1 (de) Verfahren, kommunikationsvorrichtung und netzwerkapplikation zum geschützten übermitteln von einem datensatz
EP3828798A1 (de) Vorrichtung und verfahren zum bilden von datenblöcken
EP3617978A1 (de) Verteiltes datenbanksystem mit mehreren datenbankinstanzen und verfahren zum betreiben desselben
EP3786831A1 (de) Verfahren und vorrichtung zum prüfen von einem datensatz

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 HAS BEEN REFUSED

18R Application refused

Effective date: 20200913