Apparatuses for Providing a Set of Cryptographically Protected, Filtered, and Sorted Transaction Data Records of a Link of a Blockchain

Forming a set of protected and sorted transaction datasets of a blockchain may include: a) forming a second block chained to the first block; b) defining a search term in the second block; c) selecting a transaction dataset from a set of unsorted transaction datasets, wherein the selected transaction dataset has been checked for integrity; d) assigning the selected transaction dataset to the search term; e) repeating steps b) to d) until a predefined number of transaction datasets to be selected is reached or the set of unsorted transaction datasets is empty; f) semantically sorting the selected and assigned transaction datasets on the basis of a predefined sorting criterion, wherein the assigned search terms are in an order corresponding to the sorting criterion; and g) forming the set of cryptographically protected and semantically sorted transaction datasets using the order.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a U.S. National Stage Application of International Application No. PCT/EP2018/065299 filed Jun. 11, 2018, which designates the United States of America, and claims priority to EP Application No. 17186826.8 filed Aug. 18, 2017, the contents of which are hereby incorporated by reference in their entirety.

TECHNICAL FIELD

The present disclosure relates to blockchain technology. Various embodiments include devices for providing a set of cryptographically protected and filtered and sorted transaction datasets of a block of a blockchain, methods for forming a set of sorted transaction datasets, communication network arrangements, and associated computer program products.

BACKGROUND

A large number of transactions of different types may be contained in a single blockchain. If a blockchain is used for industrial applications, for example to control a smart energy grid, nodes of the network may have to process a multiplicity of transactions that are irrelevant to them. Blockchain technology or distributed ledger technology is at present a technology that is subject to intense discussion. It is described inter alia at https://en.wikipedia.org/wiki/Blockchain (database).

FIG. 1 shows one example of such a blockchain. A blockchain is generally understood to mean a database whose integrity (security against subsequent manipulation) is ensured by storing the one-way function value PH, also called hash value, of the preceding dataset or block B10 in the respective following block B11, that is to say by cryptographic chaining. The protection is given by a multiplicity of trusted nodes BCN, illustrated by way of example in FIG. 3, in a blockchain network N that performs what is known as mining or validation of blocks.

In the network of nodes participating in a blockchain, a new block for example B11 is formed at regular intervals, for example every 10 minutes, and in the process the hash value PH of an existing block is stored therewith. In this case, a predefinable number, in the example 4, of transactions for example Tx0, Tx1, Tx2 and Tx3 are selected from a set M of transactions for example Tx0, Tx1, Tx2, Tx3, Tx4, Tx5 and Tx6 and are appended in a hash tree in the form of leaves in any desired order, at best a syntactic order numbered from 0 to 3. The use of a Merkle tree or Patricia tree is conventional for example as hash trees. The root node TxR of such a hash tree is anchored in a block for example B11.

Transactions Tx0, Tx1, Tx2, Tx3 cannot be changed without being noticed once they arise in the blockchain. The validity or the integrity of transactions to be stored in the block is checked in this mining process. The transaction may be executed by way of a transaction dataset. A transaction is understood to mean a reciprocal transmission of virtual or real goods or of a payment (for example by way of Bitcoin or Ethereum) or other information from a sender to a receiver. In the case of Bitcoin, a relatively simple stack-based runtime environment is used in order to check the reliability of a transaction. A transaction in this case comprises the checksum for checking the validity of the transaction.

The blockchain platform Ethereum supports a freely programmable runtime environment, such that the program code of a blockchain may be created flexibly. In this case, for example, business logic is stored in the transaction dataset and thus in the blockchain or in a blockchain infrastructure node as program code. In this sense, the transaction to be executed is stored in a (chain) block of the blockchain. In this connection, it is accordingly barely possible to draw a distinction between the transaction to be executed and the transaction dataset that is configured for the execution of the transaction.

In the case of blockchains, it is possible for some nodes to completely validate a block, that is to say check all of the transactions of a block. Since this is burdensome, simple validation nodes that validate only individual transactions are also conceivable. To this end, they should in each case comb through and check the path through the hash tree of the transactions in question.

In addition to a mining process as proof of work, alternatives are also known, in particular a proof of stake, in which a block is confirmed by a pseudo-randomly but deterministically selected blockchain node, or an access-controlled blockchain (permissioned blockchain). A blockchain-protected and thus cryptographically protected transaction dataset generally comprises program code. The term “smart contract” is understood to mean a program code in which conditions may be defined at the time of creation and evaluated at its runtime, such that particular transactions of a certain (monetary) amount to one particular or several particular receivers may or may not be performed.

SUMMARY

The teachings of the present disclosure provide methods and devices that allow efficient and improved processing of those transactions by the nodes that are relevant to the nodes. For example, some embodiments of the teachings here include a method for forming a set of cryptographically protected and semantically sorted transaction datasets of a blockchain from a set of unsorted transaction datasets, comprising the following steps:

    • a) forming at least one second block (B11) of a blockchain that has been chained or is chained to a first block (B10) thereof or a further blockchain,
    • b) defining at least one search term in the second block or reading at least one previously defined search term that the second block contains,
    • c) selecting a transaction dataset (Tx0) from the set (M) of unsorted transaction datasets (Tx0 to Tx6), wherein the selected transaction dataset has been checked for integrity,
    • d) assigning the selected transaction dataset (Tx0) to the defined or read search term or to one of the defined or read search terms,
    • e) repeating steps b) to d) until a predefinable number of transaction datasets to be selected is reached and/or the set of unsorted transaction datasets is empty,
    • f) semantically sorting the selected and assigned transaction datasets on the basis of a predefinable sorting criterion, wherein the assigned search terms are put in an order corresponding to the sorting criterion, and
    • g) forming the set of cryptographically protected and semantically sorted transaction datasets (Tx2, Tx1, Tx0, Tx3) using said order.

In some embodiments, in the case of a plurality of defined or read search terms in the second block (B11), these are arranged in a search tree (TT), wherein the search terms form the nodes of the search tree.

In some embodiments, a search term is formed from a main term and a plurality of sub-terms, possibly in each case separated by a separation symbol.

In some embodiments, the search term is arranged hierarchically with the main term in the root node of the search tree as far as a furthest-away subordinate sub-term in the leaf node of the search tree and a separation symbol possibly identifies an edge of the search tree situated between the associated nodes.

As another example, some embodiments include a device for providing a set of cryptographically protected and filtered transaction datasets from a set of integrity-checked and semantically sorted transaction datasets (Tx2, Tx1, Tx0, Tx3) of a block (B10, B11) of a blockchain that is formed in particular according to the method as described above, having: provision means for providing at least one such block of a blockchain and coupling means for coupling the provision means to a filtering apparatus that determines the set of filtered transaction datasets from the set of checked and semantically sorted transaction datasets of the blockchain using a filtering criterion, and output means for providing the determined set of filtered transaction datasets.

As another example, some embodiments include a filtering apparatus suitable for coupling to the provision means of the device as described above, characterized by determination means for determining a set of filtered transaction datasets from the set of integrity-checked and sorted transaction datasets (Tx2, Tx1, Tx0, Tx3) of a blockchain (B11) using the filtering criterion.

In some embodiments, the filtering criterion is able to be defined using a further search term and/or at least part of the further search term that is identical to the search term in the provided block of the blockchain or is able to be derived therefrom or is derived therefrom.

As another example, some embodiments include an access unit (G) comprising a filtering apparatus as described above, characterized in that the further search term is able to be defined by a device (IoT) or a plurality of devices (IoTC, FD1, FD2, FD3) of a group (AN) and/or is able to be subscribed to such that the transaction datasets assigned to the search term are subscribed to thereby, and only the blocks of the blockchain that contain the defined and/or subscribed-to transaction datasets are forwarded to the device or the plurality of devices.

As another example, some embodiments include a communication network arrangement comprising the following components: at least one network node (BCN) processing a blockchain and that in each case has a device as described above, one (IoT) or more devices (IoTC, FD1, FD2, FD3) that are assigned to a group (AN), at least one filtering apparatus as described above or at least one access unit (G) as described above, and a network infrastructure (N) by way of which said components are able to communicate with one another.

In some embodiments, what is known as a publish-subscribe protocol is able to be applied in the network infrastructure (N), in which the filtering apparatus is designed to allow the one or more devices of the group to subscribe to and/or define search terms.

As another example, some embodiments include a computer program product containing program commands for a network node (BCN) processing a blockchain and that is configured by way of the program commands that are suitable for executing the method as described above.

BRIEF DESCRIPTION OF THE DRAWINGS

The above-described properties, features, and advantages of the teachings herein and the way in which these are achieved will become clearer and better comprehensible in connection with the following description of the exemplary embodiments that are explained in more detail in connection with the figures. In this case, in each case schematically:

FIG. 1 shows an exemplary embodiment in the form of a blockchain according to the prior art;

FIG. 2 shows an exemplary embodiment incorporating teachings of the present disclosure in one or more transaction dataset(s) incorporated into a block of a blockchain;

FIG. 3 shows an exemplary embodiment of how the teachings of the present disclosure may be embedded into a network infrastructure;

FIG. 4 shows a flowchart of a method incorporating teachings of the present disclosure.

DETAILED DESCRIPTION

Some embodiments of the teachings herein include a method for forming or for generating a set of cryptographically protected and semantically sorted transaction datasets of a blockchain from a set of unsorted transaction datasets, comprising the following steps: a) forming at least one second block of a blockchain that has been chained or is chained to a first block thereof or a further blockchain, b) defining at least one search term in the second block or reading at least one previously defined search term that the second block contains, c) selecting a transaction dataset from the set of unsorted transaction datasets, wherein the selected transaction dataset has been checked for integrity, d) assigning the selected transaction dataset to the defined or read search term or to one of the defined or read search terms, e) repeating steps b) to d) until a predefinable number of transaction datasets to be selected is reached and/or the set of unsorted transaction datasets is empty, f) semantically sorting the selected and assigned transaction datasets on the basis of a predefinable sorting criterion, wherein the assigned search terms are put in an order corresponding to the sorting criterion, and g) forming the set of cryptographically protected and semantically sorted transaction datasets using said order.

Such methods may be repeated such that it is ultimately possible to form or generate a plurality of blocks beginning with a starting block, which may also be the originating block (Genesis block), wherein each block on its own may accordingly contain a check function of the type mentioned at the outset or sub-functions thereof. “Semantically sorted” as used herein is understood to mean that the sorting depends on the meaning of a search term. In this case, the semantic sorting may, purely randomly, give the same order as in the syntactic sorting mentioned at the outset in the arrangement of said transactions. This is however generally not the case. The order of the arranged transactions normally turns out differently semantically than it does syntactically or even than it does in unsorted form.

A search term may in this case be formed from a main term and one or more further subordinate sub-terms. A separation symbol, for example “.”, may in each case be inserted between the main term and the sub-terms. In the case of a plurality of defined or read search terms in said second block, these may be arranged in a search tree, e.g. a hash tree, wherein the search terms form the nodes of the search tree. A search term may also be arranged hierarchically with the main term in the root node of the search tree as far as a furthest-away subordinate sub-term in the leaf node of the search tree, wherein a separation symbol possibly identifies an edge of the search tree situated between the associated nodes. The search tree of a block is thus structured on the basis of search terms.

The method may be performed in a computer-assisted manner. Unless specified otherwise in the following description, the terms “perform”, “calculate”, “computer-assisted”, “compute”, “establish”, “generate”, “configure”, “reconstruct”, and the like preferably relate to operations and/or processes and/or processing steps that change and/or generate data and/or convert the data into other data, wherein the data may be represented or be present in particular in the form of physical variables, for example in the form of electrical impulses. The expression “computer” should in particular be interpreted as broadly as possible in order in particular to cover all electronic devices having data processing properties. Computers may thus for example be personal computers, servers, programmable logic controllers (PLCs), hand-held computer systems, pocket PC devices, mobile radio devices and other communication devices able to process data in a computer-assisted manner, processors and other electronic data processing devices.

“Computer-assisted” as used in this disclosure may 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 may include, for example, a machine or an electronic circuit. A processor may include a main processor (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 storage unit for storing program commands, etc. A processor may 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 may include a virtualized processor, a virtual machine, or a soft CPU. It may also be for example a programmable processor that is equipped with configuration steps for executing the methods described herein or configured by way of configuration steps such that the programmable processor implements the features of the methods, the components, the modules, the means, or other aspects and/or partial aspects of the teachings herein.

A “storage unit” may include for example a memory in the form of working memory (random access memory, RAM) or a hard drive. Memory may include for example a processor and/or a storage unit for storing program commands. By way of example, the processor is specifically configured so as to execute the program commands such that the processor thereby executes functions in order to implement or perform the methods herein or a step of the methods.

A blockchain may be used relatively efficiently by nodes, in particular control computers or devices in an industrial IoT (Internet of Things) environment. Real-time behavior is furthermore improved, since less irrelevant information has to be evaluated by these nodes in terms of content. Nevertheless, a common blockchain platform may be used for a multiplicity of different tasks, as a result of which such a blockchain platform is able to be operated efficiently. The blockchain platform may furthermore be executed on different hardware platforms.

Some embodiments include a device for providing a set of cryptographically protected and filtered transaction datasets from a set of integrity-checked and semantically sorted transaction datasets of a block of a blockchain that is formed in one or more of the preceding methods, having:

    • provision means for providing at least one such block of a blockchain and
    • coupling means for coupling the provision means to a filtering apparatus that determines the set of filtered transaction datasets from the set of checked and semantically sorted transaction datasets of the blockchain using a filtering criterion, and
    • output means for providing the determined set of filtered transaction datasets.

“Providing” in connection with the instant disclosure may be understood to mean for example creating, loading, and/or storing the transaction dataset on or from a data carrier or platform.

The filtering criterion allows simple filtering of the relevant transactions of a blockchain block. The filtering criterion may be organized such that a node is thus able to process not the entire search tree containing all of the transactions, but is rather able to determine, in a targeted manner, a subtree that contains the transactions relevant thereto.

The filtering criterion may be designed as a kind of “publish-subscribe” criterion. Publish-subscribe protocols, for example MQTT, XMPP, OPC UA PubSub, may be used. In this case, what are known as publisher nodes publish messages, and subscribers, for example devices of a group, receive messages. Search terms identify topics of messages. A publisher (publication node) specifies the topic (or search term) of a message, and subscribers subscribe to the messages about particular topics. The messages are conveyed for example through a message broker. The search terms are in this case generally hierarchically structured, for example using the abovementioned search tree embodiment.

Some embodiments include a filtering apparatus suitable for coupling to the provision means of the abovementioned device, characterized by determination means for determining a set of filtered transaction datasets from the set of integrity-checked and sorted transaction datasets of a blockchain using the filtering criterion.

In some embodiments, the filtering apparatus makes provision for the filtering criterion to be able to be defined using a further search term and/or at least part of the further search term that is identical to the search term in the provided block of the blockchain or is able to be derived therefrom or is derived therefrom. The further search term may be a topic of the type already explained above (publish-subscribe) that is assigned to a search term in the search tree or is possibly identical thereto. The assignment or derivation may then be performed by way of an assignment table (search term—topic).

In some embodiments, there is an access unit comprising a filtering apparatus of the abovementioned type, characterized in that the further search term is able to be defined by a device or a plurality of devices of a group and/or is able to be subscribed to such that the transaction datasets assigned to the search term are subscribed to thereby, and only the blocks of the blockchain that contain the defined and/or subscribed-to transaction datasets are forwarded to the device or the plurality of devices. The access unit is thus a kind of gateway in particular for the devices, e.g. for IoT devices (which are often not able to process blockchains). The further search terms or topics may be defined via a user interface (UI). The search terms may also be predefined as projection data for an industrial system. The device may then subscribe to particular further search terms. The transactions that match the further search term are filtered, and only these are executed for said device or made available to the device.

In some embodiments, there is a communication network arrangement comprising the following components:

    • at least one network node processing a blockchain and that in each case has a device of the abovementioned type,
    • one or more devices that are assigned to a group,
    • at least one filtering apparatus of the abovementioned type or at least one access unit according to the abovementioned type, and
    • comprising a network infrastructure by way of which said components are able to communicate with one another.

A publish-subscribe protocol for example of the type already explained above may be applied in the network infrastructure, in the case of which protocol the filtering apparatus is designed to allow the one or more devices of the group to subscribe to and/or define search terms.

In some embodiments, the network infrastructure may be such that said components are able to communicate with one another in a wired manner or wirelessly via an air interface. The air interface may be designed in accordance with the GSM, UMT, LTE, 5G, WLAN, Zigbee, Bluetooth or NFC, etc. standard.

In some embodiments, a computer program (product) containing program commands for a network node processing a blockchain, in particular of the type mentioned at the outset, that is configured by way of the program commands that are suitable for executing the methods as described above. In some embodiments, the computer program product contains program commands for configuring a creation device, for example a 3D printer, a computer system, and/or a manufacturing machine suitable for creating processors and/or devices, may additionally be provided. The uses, devices and computer program (products) may be designed in accordance with the developments/embodiments of the abovementioned method and the developments/embodiments thereof.

Some embodiments include a provision device for storing and/or providing the computer program product. The provision device is for example a data carrier that stores and/or provides the computer program product. In some embodiments, the provision device is for example a network service, a computer system, a server system, in particular a distributed computer system, a cloud-based computer system and/or virtual computer system that stores and/or provides the computer program product preferably in the form of a data stream.

This provision takes place for example as a download in the form of a program data block and/or command data block, preferably as a file, in particular as a download file, or as a data stream, in particular as a download data stream, of the complete computer program product. This provision may however also for example take place as a partial download that consists of several parts and is downloaded in particular via a peer-to-peer network or is provided as a data stream. Such a computer program product is read into a system for example using the provision device in the form of the data carrier and executes the program commands such that the method according to the invention is executed on a computer or the creation device is configured such that it creates the block and/or the blockchain.

In the figures, functionally similar elements are provided with the same reference signs unless specified otherwise. FIG. 1 shows the blocks, for example a first block B10 and a second block B11, of a blockchain. The blocks each comprise a plurality of transactions Tx0 to Tx3. The hash value PH, which is formed depending on the preceding block, may in particular be a cryptographic hash value that is able to be determined for example by way of SHA2-256, SHA2-384, SHA-3, BLAKE2.

FIG. 2 shows an exemplary embodiment of the teachings of the present disclosure of one or more transaction dataset(s) incorporated into a block of a blockchain. The blocks may in each case comprise a hash (function) value, which may serve as root hash value TxR of a hash tree TT, to form their transactions T.

The hash tree, also called search tree, contains both a hash value, for example H01, H23, regarding the next node containing the hash values H0 and H1 of the hash tree TT and at least one search term—as shown in FIG. 2—“eon” or “Telecom”. The node containing H0 contains the search term “M-city” and the node containing H1 contains the search term for example as a main term “M-state”.

Further nodes are depicted proceeding from the node containing H1, containing sub-terms such as for example locations “Vaterstetten”, “Poing” and “Aschheim”. These nodes also each contain a hash value that is not illustrated in FIG. 2. Possible transaction names—as illustrated in FIG. 2—“Load shedding”, “Reduce infeed”, which as it were represent the root of a following hash tree HT, in the example formed as a Merkle tree, are provided on the leaves of the hash tree TT. The further nodes of the Merkle tree are not illustrated in FIG. 2. The transactions Tx2, Tx1, and Tx0, Tx3 are shown on the leaves of the Merkle tree, these reaching the Merkle tree at the positions shown therein by being semantically sorted from an unsorted set M (see FIG. 1) of transactions. In other words, the hash tree HT (for example Merkle tree, Patricia tree or the like) of a block is sorted, that is to say the transactions of a block are sorted. As a result, all of the transactions that meet a common sorting criterion (search term) are located in one branch of the tree.

In some embodiments, the transactions of a “search term” are able to be checked efficiently. A node BCN (see FIG. 3) may load and check the subregion of the tree HT that contains the transactions of this search term. As a result, it is easy to distinguish between different types of transaction. A node that wishes to evaluate only particular types of transaction is able to process, in a targeted manner, that or those parts of the tree HT containing relevant transactions.

The structure of the tree HT may be predefined or it may be determined adaptively (per block or over longer periods of time). The structure of the tree HT (that is to say the sorting) may furthermore be published as a transaction in the blockchain. The information is thereby easily able to be evaluated and may possibly be adapted. It is thereby efficiently possible to evaluate the blockchain transactions even for IoT nodes, for example in the Internet of Things. The transactions regarding a “search term” are accordingly not distributed arbitrarily in the Merkle tree.

According to FIG. 3, a device, for example IoT, that is assigned to a group AN, for example to an energy grid, that has subscribed for example to a topic “eon.M-state.Poing.Reduceinfeed”, then only the transactions Tx0 and Tx1 are filtered from the semantically sorted Merkle tree and possibly executed for this device.

The topic or the search term in the example of FIG. 2 consists of the main term “eon” and further subordinate sub-terms “M-state” and “Poing” and finally with the transaction reference “Reduceinfeed”, with a full stop separation symbol between the terms. Such a separation symbol could identify an edge between the nodes “eon” and the nodes “M-state” in the tree TT. In the same way, all of the edges of the tree TT could be marked with separation symbols.

FIG. 3 shows, by way of example, a communication network arrangement comprising nodes BCN that are able to form a blockchain (distributed database) and that are able to communicate with one another via a network infrastructure N that is indicated by the arrows. The abovementioned device IoT is additionally provided. The group AN comprises for example further devices FD1, FD2, FD3 and an IoT controller IoTC that is connected to the device IoT. A gateway G is also provided in the communication arrangement. This may be implemented for example as a server, appliance or as a cloud-based service (for example a specific app for an industrial platform). The gateway G generates, from a message of a publish-subscribe protocol (for example XMPP, MQTT, AMQP, OPC UA PubSub) that is provided by a publisher and that is assigned to a topic, a blockchain transaction, the eway in the opposite direction, a transaction, which is dnet, and which is confirmed in a block that is validated, provide it as a PubSub message to subscribers (devices of a group) as a PubSub message that contains the search term of the blockchain transaction as topic. A device (not illustrated) that filters the transactions by way of an integrated or (remote) coupled filtering apparatus may preferably be implemented in the gateway or else in one of the nodes BCN. The filtering may be performed using the publish-subscribe approach described above. The topic (further search term) determines a filtering criterion using which the filtered transactions or transaction datasets are able to be provided and forwarded to devices, for example IoT, or other nodes BCN.

In some embodiments, there may be a 1:1 assignment of the blockchain search term to the PubSub topics (further search terms, see above), that is to say the terms are identical. Blockchain search terms may also be assigned to PubSub topics and vice versa via a table Tab that may be integrated into the gateway G. This has the advantage that a blockchain infrastructure is easily able to be used by IoT devices or Industry 4.0 devices, for example FD1, FD2, without the devices themselves having to support the blockchain technology. They are able to access blockchains via PubSub protocols that may be used in the IoT environment. A topic (further search term) may be defined and subscribed to by a device for example via a user interface and/or predefined by a device, for example FD3, as projection data (for example application field: Industry 4.0, system: substation, device x in the substation, region: state of Munich, operator: Eon, etc.). To this end, a transaction is assigned to a topic (for example by a (sorting) attribute). A topic may in this case be structured hierarchically (topic tree), for example topic1.topic2.topic3 (also see above). Namespaces may for example be used as a topic in order accordingly to be able to use the group communication for a particular topic. One example is a virtual power plant (VPP) belonging to Eon in the region of the state of Munich (M-state) that has a separate group for the communication of infeed reductions: VPP.eon.M-state-Poing.reduce_infeed (see FIG. 2).

The sorting criterion or the multiplicity of sorting attributes may be predefined explicitly, for example administratively, or determined implicitly depending on the transaction. A hash value of the smart contract or of part of the smart contract may be formed and used as sorting criterion. In the communication arrangement (see FIG. 3) a node BCN may also be formed as a blockchain oracle. By virtue of what are known as blockchain oracles, nodes that are deemed to be trusted are able to code information about the real world into a blockchain transaction and thus make information from the real world accessible to smart contracts in the blockchain (https://blog.ledger.co/hardware-oracles-bridging-the-real-world-to-the-blockchainca97c2fc3e6c#.lu511vbrd).

FIG. 4 shows a flowchart of an example method incorporating teachings of the present disclosure. Since a blockchain is a decentralized, distributed database, it is normally possible to communicate with one of the multiplicity of identical blockchain nodes, for example BCN in FIG. 3.

The example method in this case comprises:

S01: forming one or more (second) block(s) of a blockchain that has been chained or is chained to a first block thereof or a further blockchain. As already mentioned above, the first block may be a starting block and/or Genesis block (originating block).

S02: defining at least one search term in the second block or each second block or reading at least one previously defined search term that the second block contains. The search terms have already been explained above;

S03: selecting a transaction dataset from the set M (see for example FIG. 1) of unsorted transaction datasets, wherein the selected transaction dataset has been checked for integrity; and

S04: assigning the selected transaction dataset to the defined or read search term or to one of the defined or read search terms;

B1: repeating steps S02 to S04 until a predefinable number of transaction datasets to be selected is reached and/or the set of unsorted transaction datasets is empty;

S05: semantically sorting the selected and assigned transaction datasets on the basis of a predefinable sorting criterion, wherein the assigned search terms are put in an order corresponding to the sorting criterion, and

S06: forming the set of cryptographically protected and semantically sorted transaction datasets using said order.

B2: The method is repeated, starting with S01, up to a sufficient length of the blockchain or until a predefinable or predefined number of blocks are formed in the blockchain.

Although the teachings have been described and illustrated in more detail through the exemplary embodiments, the scope of the disclosure is not restricted by the disclosed examples and other variations may be derived therefrom by a person skilled in the art without departing from the scope of protection herein.

In some embodiments, the processes or method sequences described above may be implemented on the basis of instructions that are present in computer-readable storage media or in volatile computer memories (referred to collectively below as computer-readable memories). Computer-readable memories are for example volatile memories such as caches, buffers or RAMS, as well as non-volatile memories such as exchangeable data carriers, hard disks, etc.

The functions or steps described above may in this case be present in the form of at least one set of instructions in/on a computer-readable memory. The functions or steps are in this case not linked to a particular set of instructions or to a particular form of sets of instructions or to a particular storage medium or to a particular processor or to a particular execution scheme, and may be implemented by software, firmware, microcode, hardware, processors, integrated circuits, etc. operating on their own or in any desired combination. In this case, a wide variety of processing strategies may be used, for example series processing using a single processor or multiprocessing or multitasking or parallel processing, etc.

The instructions may be stored in local memories, but it is also possible to store the instructions on a remote system and to access them via a network.

The term “processor”, “central signal processing”, “control unit” or “data evaluation means” as used here comprises processing means in the broadest sense, that is to say for example servers, universal processors, graphics processors, digital signal processors, application-specific integrated circuits (ASICs), programmable logic circuits such as FPGAs, discrete analog or digital circuits and any desired combinations thereof, including all other processing means known to a person skilled in the art or developed in the future. Processors may in this case consist of one or more devices or apparatuses or units. If a processor consists of a plurality of devices, these may be designed or configured so as to process or execute instructions in parallel or sequentially.

Claims

1. A method for forming a set of cryptographically protected and semantically sorted transaction datasets of a blockchain from a set of unsorted transaction datasets, the method comprising:

a) forming a second block of a blockchain chained to a first block of a blockchain;
b) defining a search term in the second block or reading a previously defined search term contained in the second block;
c) selecting a transaction dataset from a set of unsorted transaction datasets, wherein the selected transaction dataset has been checked for integrity;
d) assigning the selected transaction dataset to the search term;
e) repeating steps b) to d) until a predefined number of transaction datasets to be selected is reached and/or the set of unsorted transaction datasets is empty;
f) semantically sorting the selected and assigned transaction datasets on the basis of a predefined sorting criterion, wherein the assigned search terms are in an order corresponding to the sorting criterion; and
g) forming the set of cryptographically protected and semantically sorted transaction datasets using the order.

2. The method as claimed in claim 1, wherein, in the case of a plurality of defined or read search terms in the second block, the plurality is arranged in a search tree, wherein the search terms form nodes of the search tree.

3. The method as claimed in claim 1, wherein a search term is formed from a main term and a plurality of sub-terms.

4. The method as claimed in claim 3, wherein the search term is arranged hierarchically with the main term in a root node of the search tree as far as a furthest-away subordinate sub-term in the leaf node of the search tree and a separation symbol identifies an edge of the search tree situated between the associated nodes.

5. A device for providing a set of cryptographically protected and filtered transaction datasets from a set of integrity-checked and semantically sorted transaction datasets of a block, the device comprising:

provision means for: forming a second block of a blockchain chained to a first block of a blockchain; and defining a search term in the second block or reading a previously defined search term contained in the second block;
coupling means for coupling the provision means to a filtering apparatus;
filtering means for selecting a transaction dataset from a set of unsorted transaction datasets, wherein the selected transaction dataset has been checked for integrity, assigning the selected transaction dataset to the search term, and semantically sorting the selected and assigned transaction datasets on the basis of a predefined sorting criterion, wherein the assigned search terms are in an order corresponding to the sorting criterion, and determining the set of filtered transaction datasets from the set of checked and semantically sorted transaction datasets of the blockchain using a filtering criterion; and
output means for providing the determined set of filtered transaction datasets.

6. A filtering apparatus suitable for coupling to the provision means of the device as claimed in claim 5, further comprising determination means for determining a set of filtered transaction datasets from the set of integrity-checked and sorted transaction datasets of a blockchain using the filtering criterion.

7. The filtering apparatus as claimed in claim 6, wherein the filtering criterion is defined using a further search term and/or at least part of the further search term identical to the search term in the provided block of the blockchain or is able to be derived therefrom or is derived therefrom.

8. An access unit comprising a filtering apparatus as claimed in claim 7, wherein the further search term is defined by a device or a plurality of devices of a group and/or is able to be subscribed to such that the transaction datasets assigned to the search term are subscribed to thereby, and only the blocks of the blockchain that contain the defined and/or subscribed-to transaction datasets are forwarded to the device or the plurality of devices.

9. A communication network arrangement comprising:

a network node processing a blockchain with device as claimed in claim 5,
one or more devices assigned to a group;
a filtering apparatus as claimed in claim 6; and
a network infrastructure by way of which said components are able to communicate with one another.

10. The communication arrangement as claimed in claim 9, wherein:

a publish-subscribe protocol is applied in the network infrastructure; and
the filtering apparatus allows the one or more devices of the group to subscribe to and/or define search terms.

11. (canceled)

Patent History
Publication number: 20200366463
Type: Application
Filed: Jun 11, 2018
Publication Date: Nov 19, 2020
Applicant: Siemens Aktiengesellschaft (München)
Inventor: Rainer Falk (Poing)
Application Number: 16/639,870
Classifications
International Classification: H04L 9/06 (20060101); G06F 16/23 (20060101); G06F 16/901 (20060101); G06F 7/08 (20060101); G06F 21/60 (20060101);