U.S. patent application number 16/639870 was filed with the patent office on 2020-11-19 for apparatuses for providing a set of cryptographically protected, filtered, and sorted transaction data records of a link of a blockchain.
This patent application is currently assigned to Siemens Aktiengesellschaft. The applicant listed for this patent is Siemens Aktiengesellschaft. Invention is credited to Rainer Falk.
Application Number | 20200366463 16/639870 |
Document ID | / |
Family ID | 1000005016117 |
Filed Date | 2020-11-19 |
United States Patent
Application |
20200366463 |
Kind Code |
A1 |
Falk; Rainer |
November 19, 2020 |
Apparatuses for Providing a Set of Cryptographically Protected,
Filtered, and Sorted Transaction Data Records of a Link of a
Blockchain
Abstract
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.
Inventors: |
Falk; Rainer; (Poing,
DE) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Siemens Aktiengesellschaft |
Munchen |
|
DE |
|
|
Assignee: |
Siemens Aktiengesellschaft
Munchen
DE
|
Family ID: |
1000005016117 |
Appl. No.: |
16/639870 |
Filed: |
June 11, 2018 |
PCT Filed: |
June 11, 2018 |
PCT NO: |
PCT/EP2018/065299 |
371 Date: |
February 18, 2020 |
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04L 9/0643 20130101;
H04L 9/0637 20130101; G06F 21/602 20130101; G06F 16/9027 20190101;
H04L 2209/38 20130101; G06F 7/08 20130101; G06F 16/2379
20190101 |
International
Class: |
H04L 9/06 20060101
H04L009/06; G06F 16/23 20060101 G06F016/23; G06F 16/901 20060101
G06F016/901; G06F 7/08 20060101 G06F007/08; G06F 21/60 20060101
G06F021/60 |
Foreign Application Data
Date |
Code |
Application Number |
Aug 18, 2017 |
EP |
17186826.8 |
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)
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] 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
[0002] 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
[0003] 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).
[0004] 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.
[0005] 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.
[0006] 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.
[0007] 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.
[0008] 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.
[0009] 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
[0010] 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: [0011] 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, [0012] 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, [0013] 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, [0014] d) assigning the selected
transaction dataset (Tx0) to the defined or read search term or to
one of the defined or read search terms, [0015] 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, [0016] 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 [0017] g) forming the
set of cryptographically protected and semantically sorted
transaction datasets (Tx2, Tx1, Tx0, Tx3) using said order.
[0018] 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.
[0019] 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.
[0020] 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.
[0021] 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.
[0022] 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.
[0023] 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.
[0024] 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.
[0025] 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.
[0026] 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.
[0027] 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
[0028] 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:
[0029] FIG. 1 shows an exemplary embodiment in the form of a
blockchain according to the prior art;
[0030] 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;
[0031] FIG. 3 shows an exemplary embodiment of how the teachings of
the present disclosure may be embedded into a network
infrastructure;
[0032] FIG. 4 shows a flowchart of a method incorporating teachings
of the present disclosure.
DETAILED DESCRIPTION
[0033] 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.
[0034] 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.
[0035] 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.
[0036] 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.
[0037] "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.
[0038] 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.
[0039] 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.
[0040] 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.
[0041] 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: [0042] provision means for
providing at least one such block of a blockchain and [0043]
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 [0044]
output means for providing the determined set of filtered
transaction datasets.
[0045] "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.
[0046] 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.
[0047] 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.
[0048] 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.
[0049] 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).
[0050] 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.
[0051] In some embodiments, there is a communication network
arrangement comprising the following components: [0052] at least
one network node processing a blockchain and that in each case has
a device of the abovementioned type, [0053] one or more devices
that are assigned to a group, [0054] at least one filtering
apparatus of the abovementioned type or at least one access unit
according to the abovementioned type, and [0055] comprising a
network infrastructure by way of which said components are able to
communicate with one another.
[0056] 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.
[0057] 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.
[0058] 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.
[0059] 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.
[0060] 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.
[0061] 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.
[0062] 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.
[0063] 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".
[0064] 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.
[0065] 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.
[0066] 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.
[0067] 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.
[0068] 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.
[0069] 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.
[0070] 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).
[0071] 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-b-
lockchainca97c2fc3e6c#.lu511vbrd).
[0072] 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.
[0073] The example method in this case comprises:
[0074] 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).
[0075] 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;
[0076] 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
[0077] S04: assigning the selected transaction dataset to the
defined or read search term or to one of the defined or read search
terms;
[0078] 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;
[0079] 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
[0080] S06: forming the set of cryptographically protected and
semantically sorted transaction datasets using said order.
[0081] 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.
[0082] 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.
[0083] 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.
[0084] 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.
[0085] 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.
[0086] 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.
* * * * *
References