(57)【要約】  本発明は、ブロックチェーンのリンクの暗号保護され且つフィルタリングされ且つソートされたトランザクションデータセットの集合を提供する装置と、ソートされたトランザクションデータセットの集合を形成するための方法とに関する。本発明の一態様は、ブロックチェーンのリンク（Ｂ１０，Ｂ１１）の、整合性が検証され且つセマンティックにソートされたトランザクションデータセット（Ｔｘ２，Ｔｘ１，Ｔｘ０，Ｔｘ３）の集合から、暗号保護され且つフィルタリングされたトランザクションデータセットの集合を提供する装置であって、リンクが本発明による方法によって形成されており、ブロックチェーンの少なくとも１つの当該リンクを提供する提供手段と、フィルタ基準を使用して、ブロックチェーンの検証され且つセマンティックにソートされたトランザクションデータセットの集合から、フィルタリングしたトランザクションデータセットの集合を決定するフィルタリング機器に対し前記提供手段を結合する結合手段と、フィルタリングしたトランザクションデータセットの決定された集合を提供する出力手段とを有する。
2020531975.tif 000002
【特許請求の範囲】
【請求項１】
未ソートのトランザクションデータセットの集合から、分散データベースシステムの暗号保護され且つセマンティックにソートされたトランザクションデータセットの集合を形成するための方法であって、
ａ）同じ又は別の分散データベースシステムの第１のリンク（Ｂ１０）にリンクされているか又はリンクされる分散データベースシステムの少なくとも１つの第２のリンク（Ｂ１１）を形成するステップと、
ｂ）前記第２のリンクにおいて少なくとも１つの検索語を確定するか、又は、前記第２のリンクが含む少なくとも１つの以前に確定された検索語を読み出すステップと、
ｃ）前記未ソートのトランザクションデータセット（Ｔｘ０〜Ｔｘ６）の集合（Ｍ）から整合性について検証済みのトランザクションデータセット（Ｔｘ０）を選択するステップステップと、
ｄ）前記選択したトランザクションデータセット（Ｔｘ０）を、前記確定した又は読み出した検索語、又は、前記確定した又は読み出した検索語のうちの１つ、に割り当てるステップと、
ｅ）少なくとも、選択すべきトランザクションデータセットが所定の数に達するまで、又は、前記未ソートのトランザクションデータセットの集合が空になるまで、前記ステップｂ）から前記ステップｄ）までを繰り返すステップと、
ｆ）所定のソート基準に基づいて、前記選択し且つ割り当てたトランザクションデータセットをセマンティックにソートし、前記割り当てられた検索語を前記ソート基準に対応する順序にするステップと、
ｇ）前記順序を使用して、前記暗号保護され且つセマンティックにソートされたトランザクションデータセット（Ｔｘ２，Ｔｘ１，Ｔｘ０，Ｔｘ３）の集合を形成するステップとを含む、方法。
【請求項２】
前記第２のリンク（Ｂ１１）において複数の検索語を確定し又は読み出す場合、該検索語が検索ツリー（ＴＴ）に配置され、そして前記検索語が前記検索ツリーのノードを形成する、請求項１に記載の方法。
【請求項３】
前記検索語は、それぞれ区切り記号によって分離され得る、上位語と複数の下位語から構成されている、請求項１又は２に記載の方法。
【請求項４】
前記検索語は、前記検索ツリーのルートノード内の前記上位語から前記検索ツリーのリーフノード内の最下位の前記下位語までが階層的に配置され、区切り記号によって前記検索ツリーの関連する前記ノード間にあるエッジを明示することができる、請求項３に記載の方法。
【請求項５】
分散データベースシステムのリンク（Ｂ１０，Ｂ１１）の整合性が検証され且つセマンティックにソートされたトランザクションデータセット（Ｔｘ２，Ｔｘ１，Ｔｘ０，Ｔｘ３）の集合から、暗号保護され且つフィルタリングされたトランザクションデータセットの集合を提供する装置であって、前記リンクが請求項１〜４のいずれか１項に記載の方法に従って形成され、
分散データベースシステムの少なくとも１つの前記記リンクを提供する提供手段と、
フィルタ基準を使用して、前記分散データベースシステムの前記検証され且つセマンティックにソートされたトランザクションデータセットの集合から、フィルタリングしたトランザクションデータセットの集合を決定するフィルタリング機器に、前記提供手段を結合する結合手段と、
前記フィルタリングしたトランザクションデータセットの決定された集合を提供する出力手段とを有する、装置。
【請求項６】
前記フィルタ基準を使用して、分散データベースシステム（Ｂ１１）の前記整合性が検証され且つソートされたトランザクションデータセット（Ｔｘ２，Ｔｘ１，Ｔｘ０，Ｔｘ３）の集合から、フィルタリングしたトランザクションデータセットの集合を決定する決定手段を備える、請求項５に記載の装置の前記提供手段に結合するべく構成されたフィルタリング機器。
【請求項７】
前記フィルタ基準は、前記分散データベースシステムの前記提供されたリンク内の前記検索語と同一であるか、又は、前記検索語から誘導可能であるか、又は、前記検索語から誘導されている、さらなる検索語又は該さらなる検索語の少なくとも一部を少なくとも用いて確定可能である、請求項６に記載のフィルタリング機器。
【請求項８】
請求項６又は７に記載のフィルタリング機器を備えるアクセスユニット（Ｇ）であって、
前記さらなる検索語が、少なくとも、１つのデバイス（ＩｏＴ）又はグループ（ＡＮ）の複数のデバイス（ＩｏＴＣ、ＦＤ１、ＦＤ２、ＦＤ３）によって確定可能であるか、又は、前記検索語に割り当てられた前記トランザクションデータセットが前記デバイスによってサブスクライブされるようにサブスクライブ可能であり、前記少なくとも確定されるか又はサブスクライブされるトランザクションデータセットを含む分散データベースシステムのリンクのみが、前記１つのデバイス又は前記複数のデバイスに伝達される、アクセスユニット（Ｇ）。
【請求項９】
通信ネットワークの構成であって、構成要素として、
請求項５に記載の装置を有し、分散データベースシステムを処理する少なくとも１つのネットワークノード（ＢＣＮ）と、
１つのデバイス（ＩｏＴ）又はグループ（ＡＮ）に割り当てられている複数のデバイス（ＩｏＴＣ，ＦＤ１，ＦＤ２，ＦＤ３）と、
請求項６又は７に記載のフィルタリング機器を少なくとも１つ、又は、請求項８に記載のアクセスユニット（Ｇ）を少なくとも１つと、
これらの構成要素が相互に通信できるネットワークインフラストラクチャ（Ｎ）とを含む、通信ネットワークの構成。
【請求項１０】
前記ネットワークインフラストラクチャ（Ｎ）においていわゆるパブリッシュ／サブスクライブプロトコルが適用可能であり、前記フィルタリング機器が、前記１つのデバイス又は前記グループの複数のデバイスに検索語のサブスクリプション又は確定を少なくとも可能にするように構成される、請求項９に記載の通信ネットワークの構成。
【請求項１１】
分散データベースシステムを処理するネットワークノード（ＢＣＮ）のためのプログラム命令を含むコンピュータプログラムであって、
前記ネットワークノード（ＢＣＮ）が、請求項１〜４のいずれか１項に記載の方法を実行するべく適合させた前記プログラム命令によって構成される、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロックチェーンのリンクの暗号保護され且つフィルタリングされ且つソートされたトランザクションデータセットの集合を提供する装置と、ソートされたトランザクションデータセットの集合を形成するための方法と、関連する通信ネットワークの構成と、関連するコンピュータプログラム（を記憶した製品）とに関する。
【背景技術】
【０００２】
ブロックチェーンには様々な種類の多数のトランザクションが結果的に含まれている。例えば、スマートエネルギーグリッド（インテリジェントなエネルギーグリッド）の制御など、産業用途にブロックチェーンを使用する場合、ネットワークのノードは、ノードに無関係の大量のトランザクションを処理する必要がある。
【０００３】
ブロックチェーン又は分散台帳技術（Distributed Ledger Technology）は、現在、議論が集中している技術である。これについては、例えば、https://en.wikipedia.org/wiki/Blockchain(database)に説明されている。
【０００４】
図１は、そのようなブロックチェーンの一例を示す。ブロックチェーンとは、一般的に、先行するデータセット（又はブロック、リンク）Ｂ１０の、ハッシュ値とも呼ばれる一方向性関数値ＰＨを、各後続のリンクＢ１１に保存することによって、すなわち、暗号デイジーチェーンによって、整合性（事後改ざんに対する保護）が確保されているデータベースであると解釈される。その保護は、ブロックチェーンネットワークＮにおいて、いわゆるマイニング又はブロックの検証を実行する、例えば図３に図示した、信頼できるノードＢＣＮの大部分によって成立する。ブロックチェーンに参加するノードのネットワークでは、例えば、１０分ごとなどの定期的な間隔で、新規ブロック、例えば、Ｂ１１が形成され、この場合、現存するブロックのハッシュ値ＰＨが一緒に保存される。このときに、トランザクション、例えばＴｘ０、Ｔｘ１、Ｔｘ２、Ｔｘ３、Ｔｘ４、Ｔｘ５、Ｔｘ６の集合Ｍから、事前に決定可能な数のトランザクション、図１の例では４つのトランザクション、例えばＴｘ０、Ｔｘ１、Ｔｘ２、Ｔｘ３が選択され、所定の順序、好ましくは０から３までの番号付けの構文的順序で、ハッシュツリーにおいてリーフとしてマウントされる。例えば、マークルツリー又はパトリシアツリーの使用がハッシュツリーとして普通である。このようなハッシュツリーのルートノードＴｘＲは、ブロック、例えばＢ１１に固定されている。
【０００５】
一度ブロックチェーンにおいて出現することとなるトランザクションＴｘ０、Ｔｘ１、Ｔｘ２、Ｔｘ３は、もはや気付かれることなく変更することは不可能である。このマイニングプロセスでは、ブロックに保存されるトランザクションの有効性又は整合性を検証する。トランザクションデータセットを使用してトランザクションを実行できる。トランザクションとは、送信者から受信者への、仮想物か実物の又は（例えば、ビットコイン又はイーサリアムを使用する）支払い又は他の情報の、相互転送であると解釈される。ビットコインでは、比較的単純なスタックベースのランタイム環境を使用して、トランザクションの許容性を検証する。この場合、トランザクションには、トランザクションの有効性を検証するためのチェックサムが含まれる。ブロックチェーンプラットフォームのイーサリアムは、ブロックチェーンのプログラムコードを柔軟に実装できるように、自由にプログラマブルなランタイム環境をサポートする。このとき、例えば、ビジネスロジックは、トランザクションデータセットに、したがってブロックチェーン又はブロックチェーンインフラストラクチャノードに、プログラムコードとして保存される。このような観点から、実行されるトランザクションは、ブロックチェーンの（チェーン）リンクに保存されている。したがって、これに関連して、実行されるトランザクションと、トランザクションを実行するために形成されたトランザクションデータセットとを区別することは、ほとんど不可能である。
【０００６】
ブロックチェーンでは、相当数のノードがブロックを完全にバリデーションする、すなわち、ブロックのすべてのトランザクションを検証することが可能である。これは手間がかかるため、個々のトランザクションのみをバリデーションする、「シンプルバリデーションノード」もまた考えられる。そのために、ノードはそれぞれ、関係するトランザクションのハッシュツリーを通るパスを注意深く探索して検証しなければならない。
【０００７】
「プルーフオブワーク」としてのマイニングプロセスに加えて、代替形態、特に擬似ランダムではあるが決定論的に選択されたブロックチェーンノードによってブロックが確認される「プルーフオブステーク」、又はアクセス制御されたブロックチェーン（許可されたブロックチェーン）もまた既知である。ブロックチェーンで保護された、したがって暗号保護されたトランザクションデータセットは、一般にプログラムコードを含む。「スマートコントラクト」という用語は、プログラムコードであると解釈され、そのプログラムコードにおいて、作成時に条件を定義でき、そのランタイムに解析できるため、特定のトランザクションを特定の（金額の）程度で１つの特定の受信者又は複数の特定の受信者において実行できるか、又は実行できない。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の課題は、ノードに関連するトランザクションの効率的で改善された処理を、ノードによって可能にする方法及び装置を提供することである。
【課題を解決するための手段】
【０００９】
本課題は、独立形式請求項において特定されている特徴によって解決される。本発明の有利な発展態様が引用形式請求項に示されている。
【００１０】
以下の説明では特に明記しない限り、「実行する」、「算出する」、「コンピュータ支援された」、「計算する」、「確定する」、「生成する」、「構成する」、「再構成する」などの用語は、好適には、データを変更したり生成する、あるいはデータを他のデータに変換する、演算、プロセス、処理するステップなどに関連し、データは、具体的には物理量として、例えば、電気的インパルスとして、表されているか又は存在する。「コンピュータ」という用語は、例えば、データ処理特性を備えたすべての電子デバイスをカバーするために、可能な限り広く解釈すべきである。したがって、コンピュータは、例えば、パーソナルコンピュータ、サーバ、プログラマブルロジックコントローラ（ＰＬＣ）、ハンドヘルドコンピュータシステム、ポケットＰＣデバイス、モバイル無線デバイス、及びコンピュータ支援されてデータを処理できるその他の通信デバイス、プロセッサ及びデータ処理用のその他の電子デバイスであり得る。
【００１１】
本発明に関して言う「コンピュータ支援された」とは、例えば、プロセッサが本方法の少なくとも１つの方法ステップを実行する、本方法の実装であると解釈できる。
【００１２】
本発明に関して言うプロセッサは、例えば、装置又は電子回路であると解釈できる。プロセッサは、具体的には、メインプロセッサ（中央処理装置、ＣＰＵ）、マイクロプロセッサ又はマイクロコントローラ、例えば特定用途向け集積回路又はデジタル信号プロセッサ、であり、場合によって、プログラム命令などを記憶するための記憶ユニットと組み合わせてもよい。プロセッサはまた、例えば、ＩＣ（集積回路）、特にＦＰＧＡ（フィールドプログラマブルゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）又はＤＳＰ（デジタルシグナルプロセッサ）又はグラフィックプロセッサＧＰＵ（グラフィックプロセッシングユニット）であり得る。さらに、プロセッサは、仮想化プロセッサ、仮想マシン又はソフトＣＰＵであるとも解釈できる。また、例えば、本発明による上述の方法を実行するための構成（コンフィグレーション）ステップが実装されているプログラマブルプロセッサ、又はプログラマブルプロセッサが、本発明の方法、構成要素、モジュール、手段、他の態様、部分的な態様の１つ以上の本発明による特徴を実現するように構成ステップによって構成されている、プログラマブルプロセッサであり得る。
【００１３】
本発明に関して言う「記憶ユニット」又は「記憶モジュール」などは、例えば、ワーキングメモリ（ランダムアクセスメモリ、ＲＡＭ）の形態の揮発性メモリ、ハードディスク又はデータキャリアなどの不揮発性メモリであると解釈できる。
【００１４】
本発明に関して言う「モジュール」、「手段」、「機器」などは、プロセッサ又はプログラム命令を記憶するための記憶ユニット、あるいはその両方であると解釈できる。例えば、プロセッサは、本発明による方法又は本発明による方法のステップを実装又は実現するための機能をプロセッサに実行させるプログラム命令を実行するように特別に構成されている。モジュールは、例えば、該当するモジュールの特定の機能／特徴を実現する分散データベースシステムのノードである。それぞれのモジュール／手段／機器は、例えば、別個の又は独立したモジュール／手段／機器として構成してもよい。このために、該当するモジュール／手段／機器は、例えば、別の要素を含んでもよい。その要素は、例えば、１つ以上のインターフェース（例えば、データベースインターフェース、通信インターフェース、例えばネットワークインターフェース、ＷＬＡＮインターフェース）、評価ユニット（例えば、プロセッサ）、記憶ユニットの１つ以上である。例えば、インターフェースを使用してデータを交換できる（受信、伝送、送信又は提供する）。評価ユニットを用いて、データは、例えば、コンピュータ支援か又は自動化された方法で、あるいはその両方で、比較、検証、処理、割り当て、又は計算することができる。記憶ユニットを用いて、データは、例えば、コンピュータ支援か又は自動化された方法で、あるいはその両方で、記憶できる、読み出すことができる、又は提供できる。
【００１５】
特にデータや情報について、本発明に関して言う「含む」とは、例えば、該当する情報又は該当する日付を（例えば、同様に記憶ユニットに記憶されている）データ構造／データセットに（コンピュータ支援により）記憶することであると解釈できる。
【００１６】
特にデータや情報について、本発明に関して言う「割り当てる」とは、例えば、データや情報をコンピュータ支援により割り当てることであると解釈できる。このために、例えば、メモリアドレス又はユニーク識別子（unique identifier：ＵＩＤ）を用いて、第１の日付に第２の日付が割り当てられ、その第２の日付では、例えば、第１の日付が、第２の日付のメモリアドレス又はユニーク識別子と共にデータセットに一緒に記憶される。
【００１７】
本発明に関して言う「提供する」とは、特にデータや情報について、例えば、コンピュータ支援により提供することであると解釈できる。提供は、例えば、インターフェース（例えば、データベースインターフェース、ネットワークインターフェース、記憶ユニットへのインターフェース）を介して行われる。このインターフェースを介して、例えば、提供時に、該当するデータや情報に対する伝送、送信、読み出し、受信のいずれか１つ以上を行うことができる。
【００１８】
本発明に関して言う「提供する」とは、例えば、該当するデータを伴うトランザクションを、例えば、ロードすること又は記憶することであると解釈できる。これは、例えば、記憶モジュールで又は記憶モジュールにより行うことができる。「提供」は、例えば、ブロックチェーン又は分散データベースシステム（又はそれらのインフラストラクチャ）のあるノードから別のノードへの該当するデータの転送（又は送信、伝送）であると解釈できる。
【００１９】
本発明に関して言う「スマートコントラクトプロセス」は、特にプロセスにおいて分散データベースシステム又はそのインフラストラクチャによってプログラムコード（例えば、制御命令）を実行することであると解釈できる。
【００２０】
本発明に関して言う「チェックサム」、例えば、データブロックチェックサム、データチェックサム、ノードチェックサム、トランザクションチェックサム、デイジーチェーンチェックサムなどは、例えば、暗号チェックサム、暗号ハッシュ、あるいは暗号ハッシュ値であると解釈でき、これらは、特に暗号ハッシュ関数を用いて、データセット、データ、トランザクション、データブロックのサブエリア（例えば、ブロックチェーンのブロックのブロックヘッダ又は分散データベースシステムのデータブロックのデータブロックヘッダ又はデータブロックのトランザクションの一部のみ）のいずれか１つ以上を介して形成されるか、又は計算される。チェックサムは、特にハッシュツリー（例えば、マークルツリー、パトリシアツリー）のチェックサム（複数可）又はハッシュ値（複数可）であってもよい。さらに、これは、特にデジタル署名又は暗号メッセージ認証コードであると解釈してもよい。チェックサムを用いて、例えば、トランザクション及びトランザクションに記憶されているデータ（セット）の暗号化保護／改ざん保護を、データベースシステムの様々なレベルで実装できる。例えば、高レベルのセキュリティが必要な場合、例えば、チェックサムがトランザクションレベルで生成されて検証される。セキュリティがそれほど高くなくてもよい場合、例えば、チェックサムがブロックレベルで（例えば、データブロック全体にわたって、又はデータブロックの一部やトランザクションの一部のみにわたって）生成されて検証される。
【００２１】
本発明に関して言う「データブロックチェックサム」は、例えば、データブロックのトランザクションの一部又は全体にわたって計算されるチェックサムであると解釈できる。この場合、ノードは、例えば、データブロックチェックサムを用いて、データブロックの対応する部分の整合性／真正性を検証／決定できる。追加的又は代替的に、データブロックチェックサムは、特に、先行するデータブロック／データブロックの先行データブロックのトランザクションを介して形成されていてもよい。この場合、データブロックチェックサムは、特にハッシュツリー、例えば、マークルツリー［１］又はパトリシアツリーを用いて実装してもよく、データブロックチェックサムは、特にマークルツリー又はパトリシアツリー又はバイナリハッシュツリーのルートチェックサムである。トランザクションは、マークルツリー又はパトリシアツリーに由来るするさらなるチェックサムを用いて（例えば、トランザクションチェックサムを使用することで）保護され、さらなるチェックサムは、マークルツリー又はパトリシアツリー内のリーフである。したがって、データブロックチェックサムは、例えば、さらなるチェックサムからルートチェックサムを形成することにより、トランザクションを保護できる。データブロックチェックサムは、特に、データブロックのうちの特定のデータブロックのトランザクションに対して計算できる。特に、そのようなデータブロックチェックサムを特定のデータブロックの後続のデータブロックに含めて、この後続のデータブロックを、例えば、その先行するデータブロックとリンクさせて、分散データベースシステムの整合性を検証可能にすることができる。これによって、データブロックチェックサムは、例えば、デイジーチェーンチェックサムの関数を引き継ぐか、又はデイジーチェーンチェックサムに含めることができる。データブロック（例えば、新規データブロック又はそれに対してデータブロックチェックサムが形成されたデータブロック）のヘッダは、例えば、データブロックチェックサムを含むことができる。
【００２２】
本発明に関して言う「トランザクションチェックサム」は、特にデータブロックのトランザクションを介して形成されるチェックサムであると解釈できる。さらに、例えば、既に計算されたトランザクションチェックサムを、例えば、マークルツリーのリーフとしてすぐに利用できることから、例えば、データブロックチェックサムの計算を該当するデータブロックに対して高速化できる。
【００２３】
本発明に関して言う「デイジーチェーンチェックサム」は、分散データベースシステムの各データブロックを、分散データベースシステムの先行するデータブロック（専門文献では特に「１つ前のブロックハッシュ（previous block hash）」と称する）を指定又は参照するチェックサムであると解釈できる［１］。このために、対応する先行のデータブロックに対して、対応するデイジーチェーンチェックサムが形成される。デイジーチェーンチェックサムとして、例えば、トランザクションチェックサム又はデータブロック（すなわち、分散データベースシステムの既存のデータブロック）のデータブロックチェックサムは、新規データブロックを分散データベースシステムの（既存の）データブロックとリンクさせるために利用できる。ただし、例えば、先行するデータブロックのヘッダにわたって、又は先行するデータブロック全体にわたって、チェックサムを形成し、デイジーチェーンチェックサムとして利用することもできる。これは、例えば、先行するデータブロックのうちのいくつか又はすべてに対してもまた計算できる。また、例えば、データブロック及びデータブロックチェックサムのヘッダにわたってデイジーチェーンチェックサムを形成することが実装可能である。ただし、分散データベースシステムの各データブロックは、好適にはそれぞれ、各データブロックに先行するデータブロックに対して、さらに好ましくは直前のデータブロックに対して、計算された、又はそのデータブロックを参照するデイジーチェーンチェックサムを含む。また、例えば、対応するデイジーチェーンチェックサムは、対応するデータブロック（例えば、先行するデータブロック）の一部のみにわたって形成することもできる。これによって、例えば、整合性保護された部分及び保護されていない部分を含むデータブロックを実装できる。したがって、例えば、その整合性保護された部分が不変であり、その保護されていない部分が、後になってからでもまた変更できるデータブロックを実装できる。その場合、整合性保護された、とは、例えば、整合性保護されたデータの変更がチェックサムを用いて決定可能であると解釈すべきである。
【００２４】
例えば、データブロックのトランザクションに記憶されるデータは、様々な手法で提供できる。データ、例えば測定データ又は資産のデータ／所有権構造などのユーザデータ、の代わりに、例えば、データブロックのトランザクションは、このデータに対するチェックサムのみを含んでもよい。この場合、対応するチェックサムは、様々な手法で実装できる。これは、例えば、別のデータベース又は分散データベースシステムの（対応するデータを有する）データブロックの対応するデータブロックチェックサム、（分散データベースシステム又は別のデータベースの）対応するデータを有するデータブロックのトランザクションチェックサム、又はデータを介して形成されたデータチェックサムであり得る。
【００２５】
加えて、該当するトランザクションは、記憶場所に関する参照又は表示（例えば、ファイルサーバのアドレス及び該当するデータをファイルサーバ上で見出すことができる場所の表示、又はデータを含む別の分散データベースのアドレス）を含み得る。この場合、該当するデータは、例えば、分散データベースシステムのさらなるデータブロックのさらなるトランザクションにおいて（例えば、対応するデータ及び関連するチェックサムが異なるデータブロックに含まれている場合に）提供できる場合もある。ただし、例えば、このデータが別の通信チャネルを介して（例えば、別のデータベースや暗号で保護された通信チャネルを介して）提供することもまた考えられる。
【００２６】
また、例えば、チェックサムに加えて、追加データセット（例えば、保存場所に関する参照又は表示）を対応するトランザクションに保存することもでき、この追加データセットは、例えばデータを読み出すことができる保存場所を示す。これは、特に、ブロックチェーン又は分散データベースシステムのデータサイズを可能な限り小さく保つために有利である。
【００２７】
本発明に関して言う「セキュリティ保護された」とは、例えば、暗号化法によって実装される保護であると解釈できる。例えば、その保護は、該当するデータ／トランザクションの提供又は伝送又は送信のために分散データベースシステムを使用することによって実装できる。これは、好適には、様々な（暗号化）チェックサムの組み合わせによって、特にチェックサムが相乗的に相互作用して、例えば、トランザクションのデータに対するセキュリティ又は暗号化セキュリティを改善することによって達成される。言い換えれば、本発明に関して言う「セキュリティ保護された」とは、「暗号化保護された」又は「改ざん保護された」（又はその両方）であるともまた解釈でき、「改ざん保護された」はまた、「整合性保護された」と称してもよい。
【００２８】
本発明に関して言う「分散データベースシステムのデータブロックの連結」は、例えば、データブロックがそれぞれ、分散データベースシステムの１つの別のデータブロック又は複数の別のデータブロックを参照するか、又はこれらを照会する情報（例えば、デイジーチェーンチェックサム）を含むことであると解釈できる［１］［４］［５］。
【００２９】
本発明に関して言う「分散データベースシステムへの挿入」などは、例えば、１つのトランザクション、複数のトランザクション、又はそのトランザクションを含むデータブロックが、分散データベースシステムの１つ以上のノードに伝送されることであると解釈できる。例えば、これらのトランザクションが（例えば、ノード（複数可）によって）正常にバリデーションされた場合、これらのトランザクションは、新規データブロックとして、分散データベースシステムの少なくとも１つの既存のデータブロックとリンクされる［１］［４］［５］。このために、該当するトランザクションは、例えば、新規データブロックに記憶される。このバリデーションと連結は、信頼できるノード（例えば、マイニングノード、ブロックチェーンオラクル、ブロックチェーンプラットフォーム）によって実行できる。特に、この場合、ブロックチェーンプラットフォームは、例えばＭｉｃｒｏｓｏｆｔ又はＩＢＭが提案しているように、サービスとしてのブロックチェーンであると解釈できる。ノードや信頼できるノードはそれぞれ、ノードチェックサム（例えば、デジタル署名）をデータブロックに保存できる（例えば、信頼できるノードやノードによりバリデーションされて生成されたそのデータブロックに保存でき、そのデータブロックがその場合にリンクされる）ため、データブロックの作成者が識別可能になるし、ノードが識別可能になる。この場合、このノードチェックサムは、例えば、どのノードが、該当するデータブロックを分散データベースシステムの少なくとも１つの別のデータブロックにリンクしたかを示す。
【００３０】
本発明に関して言う「トランザクション」又は「複数のトランザクション」は、例えば、スマートコントラクト［４］［５］、データ構造又はそれぞれ１つのトランザクション又は複数のトランザクションを含むトランザクションデータセットであると解釈できる。本発明に関して言う「トランザクション」又は「複数のトランザクション」とは、例えば、ブロックチェーンのデータブロックのトランザクションのデータでもあると解釈できる。特に、トランザクションは、例えば、スマートコントラクトを実装するプログラムコードを含んでもよい。例えば、本発明に関して言うトランザクションはまた、制御トランザクションや確認トランザクションであると解釈できる。あるいは、トランザクションは、例えば、データ（例えば、制御命令、契約データや、ビデオデータ、ユーザデータ、測定データなどの他のデータの１つ以上）を記憶するデータ構造であってもよい。
【００３１】
本発明に関して言う「対象」は、例えば、デバイス、電子デバイス、電子部品、電子通信デバイス（例えば、携帯電話機）、技術設備、建物又は技術システムであると解釈でき、それらは、特にそれぞれ、好適にはその状態がセンサによって検知可能である少なくとも１つの電子部品を含む。この場合、対象又は対象の電子部品の状態の変化は、同様にセンサで検知可能である。状態変化又は状態はまた、対象の非電子部品にも関係する可能性がある。これは、例えば、建物の静力学の変化又は金属部品（例えば、フレーム）の変形であり得る。状態又は状態変化は、少なくとも、コンピュータ支援により又は自動的に感知されるか、インターフェースを用いて制御システム又は分散データベースシステムに提供される。
【００３２】
「データブロックにトランザクションを記憶する」、「トランザクションを記憶する」などは、直接記憶又は間接記憶であると解釈すべきである。この場合、直接記憶は、例えば、（分散データベースシステムの）該当するデータブロック又は分散データベースシステムの）該当するトランザクションが各データを含むことであると解釈できる。また、間接記憶は、例えば、該当するデータブロック又は該当するトランザクションが、該当するデータに関するチェックサム及び場合に応じて追加データセット（例えば、記憶場所の参照又は表示）を含み、したがって該当するデータがデータブロック（又はトランザクション）に直接記憶されていないこと（すなわち、その代わりにこのデータに関するチェックサムのみ）であると解釈できる。トランザクションをデータブロックに記憶する場合、例えば、「分散データベースシステムへの挿入」において例示的に説明したように、これらのチェックサムをバリデーションできる。
【００３３】
本発明に関して言う「プログラムコード」（例えば、スマートコントラクト）は、例えば、１つ以上のトランザクションに記憶されている１つのプログラム命令又は複数のプログラム命令であると解釈できる。プログラムコードは実行可能であり、例えば分散データベースシステムによって実行される。これは、例えば、実行環境（例えば、仮想マシン）を用いて実装でき、実行環境又はプログラムコードは、好適にはチューリング完全である。プログラムコードは、好適には分散データベースシステムのインフラストラクチャによって実行される［４］［５］。この場合、例えば、仮想マシンは、分散データベースシステムのインフラストラクチャによって実装される。
【００３４】
本発明に関して言う「スマートコントラクト」は、例えば、実行可能なプログラムコードであると解釈できる［４］［５］（特に定義「プログラムコード」を参照）。スマートコントラクトは、好適には分散データベースシステム（例えば、ブロックチェーン）のトランザクションに、例えば分散データベースシステムのデータブロックに、記憶される。例えば、本発明に関して言うスマートコントラクトは、「プログラムコード」の定義で説明されているのと同じ手法で実行できる。
【００３５】
本発明に関して言う「プルーフオブワーク」は、例えば、特定のトランザクションのデータブロックコンテンツ／コンテンツに応じて解決されるべき計算集約的なタスクを解決することであると解釈できる［１］［４］［５］。このような計算集約的なタスクは、例えば、暗号パズルとも称する。
【００３６】
例えば分散データベースとも称する場合がある本発明に関して言う「分散データベースシステム」は、例えば、非集中型分散データベース、ブロックチェーン、分散台帳、分散型記憶システム、分散台帳、分散台帳技術（ＤＬＴ）ベースのシステム（ＤＬＴＳ）、不正改ざん防止データベースシステム、クラウド、クラウドサービス、クラウド内のブロックチェーン、又はピアツーピアデータベースであると解釈できる。また、例えば、有向非巡回グラフ（ＤＡＧ）、暗号パズル、ハッシュグラフを用いるブロックチェーン、ＤＬＴＳ、又はこれら実装態様の組み合わせなどの、ブロックチェーン又はＤＬＴＳの様々な実装も例示的に使用できる［６］［７］。また、例えば、様々なコンセンサスプロセス（コンセンサスアルゴリズム）を実装してもよい。これは、例えば、暗号パズル、ゴシップに関するゴシップ、仮想投票を用いるコンセンサスプロセス、又はこれらプロセスの組み合わせであってもよい（例えば、仮想投票を組み合わせたゴシップに関するゴシップ）［６］［７］。例えば、ブロックチェーンを使用する場合、ブロックチェーンは、特にビットコインベースの実装又はイーサリアムベースの実装を用いて実施できる［１］［４］［５］。「分散データベースシステム」はまた、例えば、そのノード、デバイス、インフラストラクチャの１つ以上の少なくとも一部がクラウドによって実装されている分散データベースシステムであると解釈できる。例えば、対応する構成要素は、クラウドにおけるノード／デバイスとして（例えば、仮想マシンにおける仮想ノードとして）実装されている。これは、ＶＭ−Ｗａｒｅ、Ａｍａｚｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ、Ｍｉｃｒｏｓｏｆｔ  Ａｚｕｒｅなどを用いて実行できる。説明した実装態様の柔軟性が高いため、例えば、ハッシュグラフをブロックチェーンとして使用することにより、当該実装態様の部分態様は、互いに組み合わせることができ、ブロックチェーン自体はまた、ブロックレスであってもよい。
【００３７】
例えば、有向非巡回グラフ（ＤＡＧ）を使用する場合（例えば、ＩＯＴＡ又はＴａｎｇｌｅなど）、特にグラフのトランザクション又はブロック又はノードは、互いに有向エッジを介して相互に接続される。これは、特に（すべての）エッジが（常に）同じ方向を有していることを意味し、これは、例えば、時間の場合と同様である。言い換えると、グラフのトランザクション又はブロック又はノードへは逆方向に（すなわち、共通の同じ方向とは反対に）経由する又は通過することは不可能である。この場合、非巡回は、特にグラフが通過した場合にループがないことを意味する。
【００３８】
分散データベースシステムは、例えば、パブリック分散データベースシステム（例えば、パブリックブロックチェーン）又はクローズド（もしくはプライベート）分散データベースシステム（例えば、プライベートブロックチェーン）であってもよい。
【００３９】
例えば、パブリック分散データベースシステムの場合、これは、新規ノードやデバイスが、資格認証なし、又は認証なし、又は登録情報なし、又は証明情報なしで分散データベースシステムに参加できるか又は分散データシステムによって受け入れられることを意味する。このような場合には、ノードやデバイスのオペレータは、匿名のままであってもよい。
【００４０】
分散データベースシステムが、例えば、クローズド分散データベースシステムである場合、新規ノードやデバイスは、分散データベースシステムに参加できるようにするため又は分散データベースシステムによって受け入れられるようにするために、例えば、有効な資格認証、有効な認証情報、有効な証明情報、有効なログイン情報の１つ以上を必要とする。
【００４１】
分散データベースシステムは、例えば、データ交換のための分散型通信システムであってよい。これは、例えば、ネットワーク又はピアツーピアネットワークであってもよい。
【００４２】
コンテキスト及び実装に応じて、「リンク」又は「ブロック」とも称する場合がある本発明に関して言う「データブロック」は、例えば、分散データベースシステムのデータブロック（例えば、ブロックチェーン又はピアツーピアデータベース）であると解釈でき、ブロックチェーン又はピアツーピアデータベースは、データ構造として実現され、好適にはそれぞれトランザクションのうちの１つ又はトランザクションのうちの複数を含む。実装では、例えば、データベース（又はデータベースシステム）は、ＤＬＴベースのシステム（ＤＬＴＳ）又はブロックチェーンであり、データブロックは、ブロックチェーン又はＤＬＴＳのブロックである。データブロックは、例えば、データブロックのサイズ（バイト単位のデータサイズ）に関する情報、データブロックヘッダ（ブロックヘッダ）、トランザクションカウンタ及び１つ以上のトランザクションを含んでもよい［１］。データブロックヘッダは、例えば、バージョン、デイジーチェーンチェックサム、データブロックチェックサム、タイムスタンプ、プルーフオブワーク証明、ノンス（１回値、ランダム値又はプルーフオブワーク証明に使用されるカウンタ）を含んでもよい［１］［４］［５］。データブロックはまた、例えば、分散データベースシステムに記憶されているデータ全体の特定の記憶領域又はアドレス領域のみであってもよい。したがって、例えば、ＩｏＴチェーン（ＩＴＣ）、ＩＯＴＡ及びバイトボールなどの、例えば、ブロックレス分散データベースシステムが実装できる。この場合、特に、ブロックチェーンのブロックの関数及びトランザクションの関数は、例えば、トランザクション自体が（分散データベースシステムの）トランザクションのシーケンス又はチェーンを保護する（すなわち、特にセキュリティ保護されて記憶される）ように、互いに結合される。このために、例えば、好適には、個別のチェックサム又は１つ以上のトランザクションのトランザクションチェックサムが、新規トランザクションを分散データベースシステムに記憶するときに対応する新規トランザクションに記憶されるデイジーチェーンチェックサムとして機能することにより、トランザクション自体は、デイジーチェーンチェックサムにより相互にリンクできる。そのような態様では、データブロックはまた、例えば、１つ以上のトランザクションを含んでもよく、最も単純なケースでは、例えば、１つのトランザクションは、１つのデータブロックに相当する。
【００４３】
本発明に関して言う「ノンス」は、例えば、暗号化ノンスであると解釈できる（「ｕｓｅｄ  ｏｎｌｙ  ｏｎｃｅ（１回のみ使用）」［２］又は「ｎｕｍｂｅｒ  ｕｓｅｄ  ｏｎｃｅ（１回使用番号）」［３］の略語）。特に、ノンスは、数字又は文字の組み合わせを示し、好適には、それぞれのコンテキスト（例えば、トランザクション、データ伝達）で１回使用される。
【００４４】
本発明に関して言う「分散データベースシステムの（特定の）データブロックの先行するデータブロック」は、（特定の）データブロックの直前にある分散データベースシステムのデータブロックであると解釈できる。あるいは、「分散データベースシステムの（特定の）データブロックの先行するデータブロック」は、特定のデータブロックに先行する分散データベースシステムのすべてのデータブロックであるとも解釈できる。これによって、例えば、デイジーチェーンチェックサム又はトランザクションチェックサムは、例えば、特定のデータブロックの直前のデータブロック（又はそのトランザクション）にわたってのみ、又は最初のデータブロックに先行するすべてのデータブロック（又はそのトランザクション）にわたってのみ形成できる。
【００４５】
本発明に関して言う「ブロックチェーンノード」、「ノード」、「分散データベースシステムのノード」などは、例えば、分散データベースシステム（例えば、ブロックチェーン）（により）操作を実行する、デバイス（例えば、フィールドデバイス、携帯電話機）、コンピュータ、スマートフォン、クライアント又は参加者であると解釈できる［１］［４］［５］。このようなノードは、例えば、分散データベースシステム又はそのデータブロックのトランザクションを実行できるか、又は、新規トランザクションを有する新規データブロックを、新規データブロックを用いて分散データベースシステムに挿入できるかもしくはリンクできる。特に、このバリデーションと連結は、信頼できるノード（例えば、マイニングノード）によって、又は信頼できるノードによってのみ実行できる。信頼できるノードは、例えば、ノードの改ざんを防ぐために追加のセキュリティ対策（例えば、ファイアウォール、ノードへのアクセス制限など）を有するノードである。代替的又は追加的に、例えば、新規データブロックが分散データベースシステムにリンクされた場合、信頼できるノードは、新規データブロックにノードチェックサム（例えば、デジタル署名又は証明書）を記憶してもよい。したがって、該当するデータブロックが特定のノードによって挿入されたこと、又はそのデータブロックの起源を示すことを提示する証明を提供してもよい。デバイス（例えば、該当するデバイス）は、例えば、分散データベースシステムのノードでもある、技術システム、産業プラント、自動化ネットワーク、製造プラントの１つ以上のデバイスである。この場合、デバイスは、例えば、分散データベースシステムのノードでもある、フィールドデバイス又はモノのインターネットのデバイスであってもよい。ノードはまた、例えば、コンピュータに実装されたノードの機能を実行するために、例えば、少なくとも１つのプロセッサを含み得る。
【００４６】
本発明に関して言う「ブロックチェーンオラクル」などは、例えば、セキュリティモジュールを用いるノード、デバイス又はコンピュータであると解釈でき、セキュリティモジュールは、例えば、ソフトウェア保護メカニズム（例えば、暗号化方法）、機械的保護機器（例えば、ロック可能なハウジング）又は電子的保護機器（例えば、タンパープロテクション又はブロックチェーンオラクルの不正な使用／処理の場合にセキュリティモジュールのデータを削除することを含む保護システム）を用いて処理する。この場合、セキュリティモジュールは、例えば、チェックサム（例えば、トランザクションチェックサム又はノードチェックサム）の計算に必要な暗号化キーを含む。
【００４７】
本発明に関して言う「コンピュータ」又は「デバイス」は、例えば、コンピュータ（システム）、クライアント、スマートフォン、デバイス、又はサーバと解釈でき、これらはそれぞれ、ブロックチェーンの外部に配置されているか、又は分散データベースシステム（例えば、ブロックチェーン）の参加者ではない（すなわち、分散データベースシステムによる操作を実行しないか、又はトランザクションを実行しないが操作を問い合わせるだけ、データブロックを挿入するか、又はプルーフオブワーク証明を計算する）。あるいは、コンピュータは、分散データベースシステムのノードであると解釈できる。言い換えれば、デバイスは、分散データベースシステムのノードであると解釈できるか、又はブロックチェーン又は分散データベースシステムの外部のデバイスであるともまた解釈できる。分散データベースシステムの外部のデバイスは、例えば、分散データベースシステムのデータ（例えば、トランザクション又は制御トランザクションなど）にアクセスできるし、ノードによって（例えば、スマートコントラクトやブロックチェーンオラクルを用いて）制御できる。例えば、デバイス（例えば、ノードとして形成されたデバイス又は分散データベースシステムの外部のデバイス）の操作又は制御がノードによって実装されている場合、これは、例えば、分散データベースシステムのトランザクションに記憶されているスマートコントラクトによって行われる。
【００４８】
本発明は、未ソートのトランザクションデータセットの集合から、ブロックチェーンの暗号保護され且つセマンティックにソートされたトランザクションデータセットの集合を形成する又は発生させる方法に係り、該方法は、
ａ）同じ又は別のブロックチェーンの第１のリンクにリンクされているか又はリンクされるブロックチェーンの少なくとも１つの第２のリンクを形成するステップと、
ｂ）その第２のリンクにおいて少なくとも１つの検索語を確定するか、又は第２のリンクが含んでいる少なくとも１つの以前に確定された検索語を読み出すステップと、
ｃ）未ソートのトランザクションデータセットの集合から、整合性について検証済みのトランザクションデータセットを選択するステップと、
ｄ）選択したトランザクションデータセットを、前記確定した又はは読み出した検索語に、又は、前記確定した又は読み出した検索語のうちの１つに、割り当てるステップと、
ｅ）少なくとも、選択すべきトランザクションデータセットが所定数に達するまで、又は、未ソートのトランザクションデータセットの集合が空になるまで、ステップｂ）からステップｄ）までを繰り返すステップと、
ｆ）所定のソート基準に基づいて、選択して割り当てたトランザクションデータセットをセマンティックにソートし、割り当てられた検索語を前記ソート基準に対応する順序にするステップと、
ｇ）該順序を使用して、暗号保護され且つセマンティックにソートされたトランザクションデータセットの集合を形成するステップと、を含む。
【００４９】
本方法は、起点リンク（起源リンク）でもあり得る開始リンクで始まる多数のリンクを最終的に形成又は生成できるように繰り返し可能であり、各リンクは、それ自身、前述した種類の検証機能又はその一部の機能を対応して含むことができる。
【００５０】
本発明に関して言うセマンティックにソートされたとは、ソートが検索語の意味に依存することであると解釈される。この場合、該セマンティックなソートは、単なる偶然で、上記トランザクションの構成において前述した構文ソートと同じ順序で生じてもよい。ただし、これは通常のケースではない。配置されたトランザクションの順序は、通常、セマンティックにソートから得られた順序が、構文ソートから得られた順序とは異なるか、又は未ソートの順序とは全く異なる。
【００５１】
この場合、検索語は、１つの上位語及び１つ以上のそれより下位の下位語から構成されていてもよい。上位語と下位語との間に、それぞれ、区切り記号、例えば、「．」が挿入され得る。
【００５２】
上述の第２のリンクにおける確定した又は読み出した検索語が複数の場合、これらの検索語は、検索ツリーに、好ましくはハッシュツリーに配置でき、当該検索語が検索ツリーのノードを形成する。検索語はまた、検索ツリー内のルートノードの上位語から検索ツリーのリーフノードの最下位の下位語までが階層的に配置されてもよく、場合によって区切り記号が、関連するノード間にある検索ツリーのエッジを明示する。
【００５３】
したがって、リンクの検索ツリーは、検索語に基づいて構造化されている。
【００５４】
本方法は、好ましくは、コンピュータ支援されて実行される。以下の説明では特に明記しない限り、「実行する」、「算出する」、「コンピュータ支援された」、「計算する」、「確定する」、「生成する」、「構成する」、「再構成する」などの用語は、好適には、データを変更したり生成する、あるいはデータを他のデータに変換する、演算、プロセス、処理するステップなどに関連し、データは、具体的には物理量として、例えば、電気的インパルスとして、表されるか又は存在する。「コンピュータ」という用語は、例えば、データ処理特性を備えたすべての電子デバイスをカバーするために、可能な限り広く解釈すべきである。したがって、コンピュータは、例えば、パーソナルコンピュータ、サーバ、プログラマブルロジックコントローラ（ＰＬＣ）、ハンドヘルドコンピュータシステム、ポケットＰＣデバイス、モバイル無線デバイス、及びコンピュータ支援されてデータを処理できるその他の通信デバイス、プロセッサ及びデータ処理用のその他の電子デバイスであり得る。
【００５５】
本発明に関して言う「コンピュータ支援された」とは、例えば、特にプロセッサが本方法の少なくとも１つの方法ステップを実行する、本方法の実装であると解釈できる。
【００５６】
本発明に関して言うプロセッサは、例えば、装置又は電子回路であると解釈できる。プロセッサは、具体的には、メインプロセッサ（中央処理装置、ＣＰＵ）、マイクロプロセッサ又はマイクロコントローラ、例えば特定用途向け集積回路又はデジタル信号プロセッサ、であり、場合によって、プログラム命令などを記憶するための記憶ユニットと組み合わせてもよい。プロセッサはまた、例えば、ＩＣ（集積回路）、特にＦＰＧＡ（フィールドプログラマブルゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）又はＤＳＰ（デジタルシグナルプロセッサ）又はグラフィックプロセッサＧＰＵ（グラフィックプロセッシングユニット）であり得る。さらに、プロセッサは、仮想化プロセッサ、仮想マシン又はソフトＣＰＵであるとも解釈できる。また、例えば、本発明による上述の方法を実行するための構成（コンフィグレーション）ステップが実装されているプログラマブルプロセッサ、又はプログラマブルプロセッサが、本発明の方法、構成要素、モジュール、手段、他の態様、部分的な態様の１つ以上の本発明による特徴を実現するように構成ステップによって構成されている、プログラマブルプロセッサであり得る。
【００５７】
本発明に関して言う「記憶ユニット」は、例えば、ワーキングメモリ（ランダムアクセスメモリ、ＲＡＭ）の形態のメモリ又はハードドライブであると解釈できる。
【００５８】
本発明に関して言う手段は、例えば、プロセッサ又はプログラム命令を記憶するための記憶ユニット、あるいはその両方であると解釈できる。例えば、プロセッサは、本発明による方法又は本発明による方法のステップを実装又は実現するための機能をプロセッサに実行させるプログラム命令を実行するよう特別に構成されている。
【００５９】
ブロックチェーンは、ノードによって、特に産業用ＩｏＴ（モノのインターネット）環境の制御コンピュータ又は制御デバイスによって、より効率的に使用できる。さらに言えば、関連性がない情報をこれらのノードによって内容に関して解析する必要がほとんどないことから、リアルタイム挙動がさらに改善される。それでもなお、共通のブロックチェーンプラットフォームを複数の異なるタスクに使用できるため、そのようなブロックチェーンプラットフォームを効率的に運用可能である。さらに、ブロックチェーンプラットフォームは、異なるハードウェアプラットフォームで実行できる。
【００６０】
本発明の別の態様は、ブロックチェーンのリンクの整合性が検証され且つセマンティックにソートされたトランザクションデータセットの集合から、暗号保護され且つフィルタリングされたトランザクションデータセットの集合を提供する装置であって、そのリンクが上記方法により形成され、
ブロックチェーンの少なくとも１つの上記リンクを提供する提供手段と、
フィルタ基準を使用して、ブロックチェーンの検証され且つセマンティックにソートされたトランザクションデータセットの集合から、フィルタリングしたトランザクションデータセットの集合を決定するフィルタリング機器に、前記提供手段を結合する結合手段と、
フィルタリングしたトランザクションデータセットの決定した集合を提供するための出力手段とを有する、装置である。
【００６１】
本発明に関して言う「提供する」とは、例えば、データキャリア又はプラットフォームで、又はデータキャリア又はプラットフォームから、トランザクションデータセットを作成すること、ロードすること又は記憶することであると解釈できる。
【００６２】
フィルタ基準を用いることで、ブロックチェーンブロックの関連トランザクションの単純なフィルタリングが可能になる。フィルタ基準は、その結果ノードがすべてのトランザクションを含む検索ツリー全体を処理しないように編成できるが、その代わりに、ノードに関連するトランザクションを含むサブツリーを目的に合わせて決定できる。
【００６３】
フィルタ基準は、一種の「パブリッシュ／サブスクライブ」基準として設定される。パブリッシュ／サブスクライブプロトコル、例えば、ＭＱＴＴ、ＸＭＰＰ、ＯＰＣ  ＵＡ  ＰｕｂＳｕｂが使用可能である。その場合、いわゆるパブリッシャーノードがメッセージを発行し、サブスクライバー、例えばグループのデバイスがメッセージを受信する。検索語は、メッセージのテーマを識別する。パブリッシャー（発行ノード）は、メッセージのテーマ（トピック又は検索語）を指定し、サブスクライバーは、特定のテーマのメッセージをサブスクライブする。メッセージは、例えば、メッセージブローカーによって伝達される。その場合、検索語は、一般に、例えば、上記検索ツリーの態様を使用して階層的に構造化されている。
【００６４】
本発明の別の態様は、上述の装置の提供手段に対する結合に適したフィルタリング機器であり、フィルタ基準を使用して、整合性が検証され且つソートされた、ブロックチェーンのトランザクションデータセットの集合から、フィルタリングしたトランザクションデータセットの集合を決定する決定手段を特徴とする。
【００６５】
フィルタリング機器の一態様は、さらなる検索語やさらなる検索語の少なくとも一部を用いて確定可能なフィルタ基準を提供し、当該検索語は、ブロックチェーンの提供されたリンク内の検索語と同一であるか、又はその検索語から導出可能な、又はその検索語から導出されている。この、さらなる検索語は、上述した種類のトピック（パブリッシュ／サブスクライブ）であってもよく、検索ツリー内の検索語に割り当てられているか、又は場合によっては検索語と同一である。この場合、割当テーブル（検索語−トピック）を使用して、割当又は誘導を実行できる。
【００６６】
本発明の別の態様は、上述の種類のフィルタリング機器を含むアクセスユニットであり、さらなる検索語が、少なくとも、１つのデバイス又はグループ内の複数のデバイスによって確定可能であるか、又は、該検索語に割り当てられたトランザクションデータセットが該デバイスによってサブスクライブされるようにしてサブスクライブ可能であり、そして、その少なくとも確定した又はサブスクライブしたトランザクションデータセットを含むブロックチェーンのリンクのみが、前記１つのデバイス又は複数のデバイスに伝達されることを特徴とする。すなわちこのアクセスユニットは、具体的には、前記デバイス用の、好適には（ブロックチェーンを処理できないことが多い）ＩｏＴデバイス用の、ゲートウェイの一種である。さらなる検索語又はトピックは、ユーザインターフェース（ＵＩ）を介して確定されてもよい。検索語は、工業施設の事業計画データとしても規定され得る。この場合の当該デバイスは、特定のさらなる検索語をサブスクライブできる。さらなる検索語に一致するトランザクションは、フィルタリングされ、該トランザクションのみが、前記デバイスに対して実行されるか、又は該デバイスに提供される。
【００６７】
本発明の別の態様は、通信ネットワークの構成であり、構成要素として、
上記種類のデバイスを有し、ブロックチェーンを処理する少なくとも１つのネットワークノードと、
上記種類の少なくとも１つのフィルタリング機器、又は上記種類に係る少なくとも１つのアクセスユニットと、
これら構成要素が相互に通信できるネットワークインフラストラクチャとを含む。
【００６８】
そのネットワークインフラストラクチャにおいて例えば上述した種類のパブリッシュ／サブスクライブプロトコルを適用でき、この場合、フィルタリング機器は、グループ内の１つ以上のデバイスに検索語のサブスクリプションか確定を少なくとも可能にするように設計される。
【００６９】
ネットワークインフラストラクチャは、上記構成要素が有線又はエアインターフェースによる無線で相互に通信できるように構成される。エアインターフェースは、ＧＳＭ、ＵＭＴ、ＬＴＥ、５Ｇ、ＷＬＡＮ、ＺｉｇＢｅｅ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）又はＮＦＣなどの規格に従って形成され得る。
【００７０】
上記のデバイス、機器、構成は、上述の本発明に係る方法の発展態様及び具体的態様に対応してさらに発展させることができる。
【００７１】
さらに、プログラム命令を含むコンピュータプログラム（を記憶した製品）は、例えば既述した種類のブロックチェーンを処理するネットワークノード用であり、当該ネットワークノードは、上述の方法を実行するべく適合させたプログラム命令に従って構成される。
【００７２】
このコンピュータプログラムの派生態様として、例えば、３Ｄプリンタ、コンピュータシステム、又は、プロセッサやデバイスの作製に適した製造機械といった創造装置を構成するプログラム命令を含むものがさらに提供され得る。
【００７３】
用途、装置（デバイス）及びコンピュータプログラム（の製品）は、上記本発明に係る方法の発展態様／具体的態様及びそれらの発展態様／具体的態様に対応させて構成することが可能である。
【００７４】
さらに、コンピュータプログラムを少なくとも記憶するか又は提供する提供装置が可能である。この提供装置は、例えば、コンピュータプログラムを少なくとも記憶するか又は提供するデータキャリアである。代替として又は追加して、提供装置は、好ましくはデータストリームとしてコンピュータプログラムを記憶したり提供する、例えば、ネットワークサービス、コンピュータシステム、サーバシステム、特に分散コンピュータシステム、クラウドベースのコンピュータシステム、仮想コンピュータシステムのいずれか１つ以上である。
【００７５】
この提供は、例えば、完全なコンピュータプログラムの、プログラムデータブロックや命令データブロックの方式でのダウンロードとして、好ましくはファイルとして、特にダウンロードファイルとして、又は、データストリームとして、特にダウンロードデータストリームとして、行われる。ただし、この提供は、例えば、ピアツーピアネットワーク経由でダウンロードされるか又はデータストリームとして提供される、複数の部分からなる部分的なダウンロードとしても行い得る。このようなコンピュータプログラム（の製品）は、例えば、データキャリアの形態の提供装置を使用してシステムに読み込まれ、プログラム命令の実行により、本発明による方法がコンピュータで実行されるか、又は、創造装置が少なくともリンク又はブロックチェーンを生成するように構成される。
【００７６】
本発明の上述の特性、特徴、利点、そしてそれらが達成される仕組みは、図面と関連させて以下に詳細に説明する実施形態の説明においてさらに明らかになり、より明確に理解される。
【図面の簡単な説明】
【００７７】
【図１】従来技術に係るブロックチェーンの形態の具体例を示す。
【図２】ブロックチェーンのリンクに統合された１つ以上のトランザクションデータセットの本発明に係る実施形態を示す。
【図３】ネットワークインフラストラクチャに本発明を組み込む手法の実施形態を示す。
【図４】本発明に係る方法に関するフローチャートを示す。
【発明を実施するための形態】
【００７８】
図中、特に明記しない限り、類似の機能をもつ要素には同じ参照符号が付されている。
【００７９】
既述したように、図１は、一例としてブロックチェーンの第１のリンクＢ１０、第２のリンクＢ１１とした、リンクを示す。リンクは、それぞれ複数のトランザクションＴｘ０〜Ｔｘ３を含む。先行リンクに応じて形成されるハッシュ値ＰＨは、具体的に、例えばＳＨＡ２−２５６、ＳＨＡ２−３８４、ＳＨＡ−３、ＢＬＡＫＥ２を使用して決定可能な暗号ハッシュ値である。
【００８０】
図２は、ブロックチェーンのリンクに統合された１つ以上のトランザクションデータセットの例を示す。
【００８１】
リンクは、それぞれ、ハッシュツリーＴＴのルートハッシュ値ＴｘＲとして機能できる、トランザクションＴのハッシュ（関数）値を含むことができる。検索ツリーとも称するハッシュツリーは、該ハッシュツリーが、ハッシュツリーＴＴのハッシュ値Ｈ０及びＨ１をもつ次のノードに関する、例えばＨ０１やＨ２３のハッシュ値と、図２に示す「ｅｏｎ」や「Ｔｅｌｅｋｏｍ」ような少なくとも１つの検索語との両方を含むように、構成されている。Ｈ０をもつノードは、検索語「Ｍ−Ｃｉｔｙ」を含み、Ｈ１をもつノードは、例えば上位語「Ｍ−Ｓｔａｔｅ」である検索語を含む。例えば、場所の「Ｖａｔｅｒｓｔｅｔｔｅｎ」、「Ｐｏｉｎｇ」、「Ａｓｃｈｈｅｉｍ」などの下位語を含むその下のノードは、Ｈ１のノードを起点として表示されている。また、これらのノードはそれぞれ、図２には図示していないハッシュ値も含む。ハッシュツリーＴＴのリーフには、図２に示すように、「Ｌｏａｄ  ｓｈｅｄｄｉｎｇ」（負荷制限）、「Ｒｅｄｕｃｅ  ｉｎｆｅｅｄ」（インフィードの低減）などの可能なトランザクションラベルが与えられ、トランザクションラベルは、この例においては、マークルツリーとして形成される続くハッシュツリーＨＴのルートを擬似的に表す。マークルツリーのさらなるノードは、図２には図示していない。マークルツリーのリーフに、トランザクションＴｘ２、Ｔｘ１及びＴｘ０、Ｔｘ３が示され、このトランザクションは、マークルツリーにおいてセマンティックのソートによって、トランザクションの未ソート集合Ｍ（図１参照）から、図２に示した位置に到達している。換言すれば、リンクのハッシュツリーＨＴ（例えば、マークルツリー、パトリシアツリーなど）がソートされる、すなわち、リンクのトランザクションがソートされる。その結果、共通のソート基準（検索語）を満たすすべてのトランザクションは、ツリーの１つのブランチにある。
【００８２】
これには、「検索語」のトランザクションが効率的に検証可能であるという利点がある。ノードＢＣＮ（図３を参照）は、この検索語のトランザクションを含むツリーＨＴの部分領域をロードして検証することができる。これにより、異なる種類のトランザクションを簡単に区別できる。特定の種類のトランザクションのみを解析しようとするノードは、関連するトランザクションを含むツリーＨＴの部分を目的に合わせて処理できる。
【００８３】
ツリーＨＴの構造は、不変に規定されるか、又は（ブロックごとに、又はより長い期間で）適応性をもって決定される。さらに、ツリーＨＴの構造（すなわち、ソート）は、ブロックチェーン内のトランザクションとして既知になってもよい。これにより、情報は、容易に解析可能であり、可能ならば調整される。
【００８４】
このようにして、ブロックチェーントランザクションの解析は、例えばモノのインターネットにおいてノードＩｏＴについても効率的に可能である。したがって、「検索語」に関するトランザクションは、マークルツリーにおいて勝手には分散されない。
【００８５】
図３によれば、デバイスは、例えばＩｏＴであり、該デバイスがグループＡＮに、例えばトピック「ｅｏｎ．Ｍ−Ｓｔａｔｅ．Ｐｏｉｎｇ．Ｒｅｄｕｃｅｉｎｆｅｅｄ」をサブスクライブしていた、例えばエネルギーグリッドに割り当てられており、そして、このデバイスに対して、セマンティックにソートされたマークルツリーからトランザクションＴｘ０及びＴｘ１のみがフィルタリングされ、場合によって実行される。
【００８６】
トピック又は検索語は、図２の例では、用語間のピリオド区切り記号を伴って、上位語「ｅｏｎ」と、その下位の下位語「Ｍ−Ｓｔａｔｅ」及び「Ｐｏｉｎｇ」と、最後にトランザクション名「Ｒｅｄｕｃｅｉｎｆｅｅｄ」とから構成されている。当該区切り記号は、ノード「ｅｏｎ」とノード「Ｍ−Ｓｔａｔｅ」との間のツリーＴＴにおけるエッジを識別できる。同様にして、ツリーＴＴのすべてのエッジに区切り記号を付けてもよい。
【００８７】
図３は、一例として、ブロックチェーン（分散データベース）を実装でき、ネットワークインフラストラクチャＮを介して相互に通信できるノードＢＣＮを含む通信ネットワークの構成を示し、これが矢印によって示されている。さらに、上述のデバイスＩｏＴが設けられている。グループＡＮは、例えば、さらなるデバイスＦＤ１、ＦＤ２、ＦＤ３及びデバイスＩｏＴに接続しているＩｏＴコントローラＩｏＴＣを含む。さらに、ゲートウェイＧがこの通信の構成に設けられている。ゲートウェイＧは、例えば、サーバ、電化製品又はクラウドベースのサービス（例えば、産業プラットフォーム用の特別なアプリ）として実装されてもよい。ゲートウェイＧは、パブリッシャーによって提供され且つトピックに割り当てられているパブリッシュ／サブスクライブプロトコル（例えば、ＸＭＰＰ、ＭＱＴＴ、ＡＭＱＰ、ＯＰＣ  ＵＡ  ＰｕｂＳｕｂ）のメッセージからブロックチェーントランザクションを生成し、そのブロックチェーントランザクションは、逆方向でｅｗａｙ、ｄｎｅｔであり且つ検証されているリンクにおいて確認されているトランザクションを、トピックとしてブロックチェーントランザクションの検索語を含むＰｕｂＳｕｂメッセージとして、サブスクライバー（グループのデバイス）にＰｕｂＳｕｂメッセージを提供する。好適には、ゲートウェイに、又はノードＢＣＮのうちの１つにもまた、内蔵又は（リモート）結合したフィルタリング機器によってトランザクションをフィルタリングする装置（図示せず）を実装できる。フィルタリングは、上述のパブリッシュ／サブスクライブアプローチを使用して実行してもよい。フィルタ基準は、トピック（さらなる検索語）によって決定され、該フィルタ基準を使用して、フィルタリングされたトランザクション又はトランザクションデータセットが提供され、デバイス、例えばＩｏＴ又は他のノードＢＣＮに伝達できる。
【００８８】
この場合、ブロックチェーンの検索語のＰｕｂＳｕｂトピックへの１：１割当（さらなる検索語は上記参照）を行うことができる。すなわち、用語は、同一である。ブロックチェーンの検索語のＰｕｂＳｕｂトピックへの割当及びその逆はまた、ゲートウェイＧに内蔵され得るテーブルタブを介して行ってもよい。これには、デバイス自体がブロックチェーンテクノロジーをサポートする必要なしに、ブロックチェーンインフラストラクチャをＩｏＴデバイス又はインダストリー４.０デバイス、例えば、ＦＤ１、ＦＤ２によって簡単に使用できるという利点がある。デバイスは、ＩｏＴ環境で使用できるＰｕｂＳｕｂプロトコルを介してブロックチェーンにアクセスできる。トピック（さらなる検索語）は、事業計画データとして例えばＦＤ３に、少なくとも、例えばユーザインターフェースを介してデバイスによって確定されるか、デバイスによってサブスクライブされる（例えば、適用分野：インダストリー４.０、プラント：変電所、変電所内のデバイスｘ、地域：ミュンヘン地方、運用者：Ｅｏｎなど）。このために、トランザクションは、（例えば、（ソート）属性により）トピックに割り当てられる。この場合、トピックは、例えば、ｔｏｐｉｃ１.ｔｏｐｉｃ２.ｔｏｐｉｃ３など、階層構造化してもよい（トピックツリー）（上記も参照）。特定のテーマについて対応してグループ通信を使用できるようにするために、トピックとして、例えば、名前空間を使用してもよい。ミュンヘン地方（Ｍ−Ｓｔａｔｅ）のエリアにあるＥｏｎ社の仮想発電所（ＶＰＰ、Ｖｉｒｔｕａｌ  Ｐｏｗｅｒ  Ｐｌａｎｔ）が一例であり、該仮想発電所には、インフィード低減の通信用の別個のグループがある：VPP.eon.M-Land.Poing.reduce_infeed（図２を参照）。
【００８９】
ソート基準又は複数のソート属性は、例えば管理上、明示的に規定されるか、又はトランザクションに応じて暗黙的に決定される。スマートコントラクト又はスマートコントラクトの一部のハッシュ値を作成し、ソート基準として使用できる。
【００９０】
通信の構成（図３を参照）において、ノードＢＣＮは、ブロックチェーンオラクルとしても形成できる。いわゆるブロックチェーンオラクルにより、信頼できると見なされるノードは、ブロックチェーントランザクションにおいて現実世界に関する情報をエンコードし、したがって、ブロックチェーンのスマートコントラクトに対して現実世界からの情報にアクセスできるようにする（https://blog.ledger.co/hardware-oracles-bridging-the-real-world-to-the-blockchainca97c2fc3e6c#.lu511vbrd）。
【００９１】
図４には、本発明による方法に関するフローチャートが示されている。ブロックチェーン又はブロックチェーンは、集中排除型の分散データベースであるため、複数の同様のブロックチェーンノードのうちの１つ、例えば、図３のＢＣＮとの通信が通常可能である。
【００９２】
この方法は、以下のステップを有する。
Ｓ０１：同じブロックチェーン又は別のブロックチェーンの第１のリンクにリンクされているか又はリンクされるブロックチェーンの１つ以上の（第２の）リンクを形成するステップ。既述のように、第１のリンクは、開始リンク、起源リンク（起点リンク）とすることができる。
Ｓ０２：第２のリンク又は各第２のリンクにおいて少なくとも１つの検索語を確定するか、又は、第２のリンクが含む少なくとも１つの以前に確定された検索語を読み出すステップ。検索語は既に説明した。
Ｓ０３：未ソートのトランザクションデータセットの集合Ｍ（例えば、図１を参照）から１つのトランザクションデータセットを選択し、該選択したトランザクションデータセットが整合性について検証されている、ステップ。
Ｓ０４：選択したトランザクションデータセットを、前記確定した又は読み出した検索語に割り当てる、又は、前記確定した又は読み出した検索語のうちの１つに割り当てる、ステップ。
Ｂ１：少なくとも、選択すべきトランザクションデータセットが所定の数に達するまでか、又は、未ソートのトランザクションデータセットの集合が空になるまで、ステップＳ０２からＳ０４までを繰り返すステップ。
Ｓ０５：所定のソート基準に基づいて、選択されて割り当てられたトランザクションデータセットをセマンティックにソートし、割り当てられた検索語をソート基準に対応する順序にするステップ。
Ｓ０６：該順序を使用して、暗号保護され且つセマンティックにソートされたトランザクションデータセットの集合を形成するステップ。
Ｂ２：本方法を、ブロックチェーンの十分な長さまで、又は、ブロックチェーン内に所定数のリンクが形成されるまで、Ｓ０１から開始して繰り返すステップ。
【００９３】
好ましい実施形態を例示して本発明を詳細に図示し説明したが、本発明は、開示された例によって限定されず、本発明の保護範囲から逸脱することなく他の変形、派生を当業者は導き出すことができる。
【００９４】
上述のプロセス又は方法シーケンスの実装は、コンピュータ可読記憶媒体又は揮発性コンピュータメモリ（以下、コンピュータ可読メモリと総称する）に存在するインストラクション（命令）に基づいて行うことができる。コンピュータ可読メモリは、例えば、キャッシュ、バッファ又はＲＡＭなどの揮発性メモリ、及びリムーバブルメディア、ハードディスクなどの不揮発性メモリである。
【００９５】
この場合、上述の機能又はステップは、少なくとも１つのインストラクションセットの方式でコンピュータ可読メモリに存在し得る。このとき、機能又はステップは、インストラクションの特定のセット又はインストラクションセットの特定の形態又は特定の記憶媒体又は特定のプロセッサ又は特定の実行スキームにリンクされず、ソフトウェア、ファームウェア、マイクロコード、ハードウェア、プロセッサ、集積回路などによって単独で、又は任意の組み合わせで実行できる。その場合、例えば、単一のプロセッサによるシリアル処理又はマルチプロセッシング又はマルチタスク又は並列処理など、様々な処理ストラテジーを使用してもよい。
【００９６】
インストラクションは、ローカルメモリに記憶してもよいが、インストラクションをリモートシステムに保存して、ネットワーク経由でアクセスしてもよい。
【００９７】
「プロセッサ」、「中央信号処理」、「制御ユニット」又は「データ解析手段」という用語は、本明細書で使用される場合、最も広義の処理手段、すなわち、例えば、サーバ、ユニバーサルプロセッサ、グラフィックプロセッサ、デジタル信号プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、ＦＰＧＡなどのプログラマブルロジック回路、個別のアナログ回路又はデジタル回路、及びそれらの任意の組み合わせを含み、当業者に既知であるか、又は将来開発される他のすべての処理手段を含む。この場合、プロセッサは、１つ以上の装置又は機器又はユニットからなっていてもよい。プロセッサが複数の装置からなる場合、装置は、並列処理か順次処理又はインストラクションの実行のために設計又は構成されていてもよい。
【００９８】
［参考文献］
[1]
Andreas M.Antonopoulos "Mastering Bitcoin: Unlocking Digital Cryptocurrencies", O'Reilly Media, 2014年12月
[2]
Roger M.Needham, Michael D.Schroeder "Using encryption for authentication in large networks of computers" ACM:Communications of the ACM. Vol. 21, No. 12, 1978年12月
[3]
Ross Anderson "Security Engineering. A Guide to Building Dependable Distributed Systems" Wiley, 2001
[4]
Henning Diedrich "Ethereum: Blockchains, Digital Assets, Smart Contracts, Decentralized Autonomous Organizations", CreateSpace Independent Publishing Platform, 2016
[5]
"The Ethereum Book Project/Mastering Ethereum" https://github.com/ethereumbook/ethereumbook, 2017年10月5日現在
[6]
Leemon Baird
"The Swirlds Hashgraph Consensus Algorithm: Fair, Fast, Byzantine Fault Tolerance",
Swirlds Tech Report SWIRLDS-TR-2016-01, 2016年5月31日
[7]
Leemon Baird
"Overview of Swirlds Hashgraph",
2016年5月31日
[8]
Blockchain Oracles
https://blockchainhub. net/blockchain-oracles/
2018年03月14日現在
【図１】
2020531975.tif 000003
【図２】
2020531975.tif 000004
【図３】
2020531975.tif 000005
【図４】
2020531975.tif 000006
【国際調査報告】
2020531975.tif 000007
2020531975.tif 000008
2020531975.tif 000009