(57)【要約】      （修正有）【課題】トランザクションを検証するための方法において、検証速度の高速化を図る。【解決手段】ブロックチェーン・ネットワークにおいて、第１のノードは、トランザクション（ｔｘ）を受け取るＳ２０１。第１のノードは、受け取ったｔｘをブルームフィルターに対する入力として与えるＳ２０２。ブルームフィルターは、ブロックチェーンに含まれる過去の１又は複数のｔｘに基づいて生成される。ブルームフィルターが真を返す場合Ｓ２０２Ｔ、第１のノードは、検証対象となるｔｘのｔｘｉｄをキーにディクショナリを検索して、その有無を判定するＳ２０３。ディクショナリは、過去に合意されたブロックに含まれる１又は複数のｔｘに基づいて生成される。ディクショナリの検索結果が偽であるときはＳ２０３Ｆ、検証対象のトランザクションを有効と判定し、ブルームフィルターが偽を返すときＳ２０２Ｆも検証対象のｔｘを同様に有効と判定するＳ２０４。【選択図】図２
2019146137.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法であって、
検証対象となるトランザクションを受け取るステップと、
前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたブルームフィルターに対して前記トランザクションを入力するステップと、
前記ブルームフィルターの出力が偽である場合、前記トランザクションを有効と判定するステップと、
前記ブルームフィルターの出力が真である場合、前記トランザクションのｔｘｉｄをキーに、前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたディクショナリを検索するステップと、
前記ディクショナリの検索結果が偽である場合、前記トランザクションを有効と判定するステップと
を含むことを特徴とする方法。
【請求項２】
前記ディクショナリの検索結果が真である場合、前記トランザクションを無効と判定するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ブルームフィルターを構成するためのデータは、前記過去に合意されたブロックに含まれる１又は複数のトランザクションに対応する１又は複数のｔｘｉｄから生成されたデータ列であることを特徴とする請求項１又は２に記載の方法。
【請求項４】
前記検証対象となるトランザクションは、合意形成の対象となるブロックに含まれる１又は複数のトランザクションのうちのいずれかであることを特徴とする請求項１から３のいずれかに記載の方法。
【請求項５】
コンピュータに、ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法を実行させるためのプログラムであって、前記方法は、
検証対象となるトランザクションを受け取るステップと、
前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたブルームフィルターに対して前記トランザクションを入力するステップと、
前記ブルームフィルターの出力が偽である場合、前記トランザクションを有効と判定するステップと、
前記ブルームフィルターの出力が真である場合、前記トランザクションのｔｘｉｄをキーに、前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたディクショナリを検索するステップと、
前記ディクショナリの検索結果が偽である場合、前記トランザクションを有効と判定するステップと
を含むことを特徴とするプログラム。
【請求項６】
ブロックチェーン・ネットワークにおいてトランザクションを検証するための前記ブロックチェーン・ネットワークを構成するノードであって、
検証対象となるトランザクションを受け取り、
前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたブルームフィルターに対して前記トランザクションを入力し、
前記ブルームフィルターの出力が偽である場合、前記トランザクションを有効と判定し、
前記ブルームフィルターの出力が真である場合、前記トランザクションのｔｘｉｄをキーに、前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたディクショナリを検索し、
前記ディクショナリの検索結果が偽である場合、前記トランザクションを有効と判定することを特徴とするノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノードに関する。
【背景技術】
【０００２】
複数のノードを備えるブロックチェーン・ネットワークにおいて、各ノードは、採択について合意が形成されたブロックが連なったブロックチェーンを有する。各ブロックは、ヘッダと、１又は複数のトランザクションを含むボディとを有する。
【０００３】
各トランザクションは、当該トランザクションのハッシュ値をその識別子とすることができ、当該識別子は「トランザクションｉｄ（ｔｘｉｄ）」と呼ばれることがある。ｔｘｉｄは、過去のトランザクションを参照する際に用いられ、そのディクショナリが必要に応じて、１若しくは複数又はすべてのノードにおいて保持されることがある。
【０００４】
ｔｘｉｄが用いられる場面の１つとして、同一のトランザクションの二重実行の防止が挙げられる。採択についての合意形成が図られるブロックは、いずれかのノードが、メモリプールに蓄積したトランザクションの中から１又は複数のトランザクションを選んで生成するものであるが、トランザクションをメモリプールに記憶する際に、過去に合意されたブロックに含まれるトランザクションではないかについての検証（ｖａｉｌｄａｔｉｏｎ）がなされることがある。また、他のノードにおいて生成されたブロックに含まれるトランザクションに対する検証がなされることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、検証を行うためには、過去に合意されたブロックに含まれるすべてのトランザクションに対するｔｘｉｄのディクショナリを保持しておき、新たなトランザクションを受け取るたびに当該ディクショナリを参照して、過去に存在していないことの確認を行わなければならず、これは、ブロック高の増大とともに時間又は記憶領域を要する処理となっていく。
【０００６】
本発明は、このような問題点に鑑みてなされたものであり、その目的は、ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノードにおいて、検証速度の高速化又は記憶領域増大の抑制を図ることにある。
【課題を解決するための手段】
【０００７】
このような目的を達成するために、本発明の第１の態様は、ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法であって、検証対象となるトランザクションを受け取るステップと、前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたブルームフィルターに対して前記トランザクションを入力するステップと、前記ブルームフィルターの出力が偽である場合、前記トランザクションを有効と判定するステップとを含むことを特徴とする。
【０００８】
また、本発明の第２の態様は、第１の態様において、前記ブルームフィルターの出力が真である場合、前記トランザクションのｔｘｉｄをキーに、前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたディクショナリを検索するステップと、前記ディクショナリの検索結果が偽である場合、前記トランザクションを有効と判定するステップとを含むことを特徴とする。
【０００９】
また、本発明の第３の態様は、第２の態様において、前記ディクショナリの検索結果が真である場合、前記トランザクションを無効と判定するステップをさらに含むことを特徴とする。
【００１０】
また、本発明の第４の態様は、第１から第３のいずれかの態様において、前記ブルームフィルターを構成するためのデータは、メモリに記憶されていることを特徴とする。
【００１１】
また、本発明の第５の態様は、第４の態様において、前記データは、前記過去に合意されたブロックに含まれる１又は複数のトランザクションに対応する１又は複数のｔｘｉｄから生成されたデータ列であることを特徴とする。
【００１２】
また、本発明の第６の態様は、第５の態様において、前記データ列は、前記トランザクションのｔｘｉｄよりもビット長が長いことを特徴とする。
【００１３】
また、本発明の第７の態様は、第１から第６のいずれかの態様において、前記検証対象となるトランザクションは、合意形成の対象となるブロックに含まれる１又は複数のトランザクションのうちのいずれかであることを特徴とする。
【００１４】
また、本発明の第８の態様は、第７の態様において、前記検証対象となるトランザクションのｔｘｉｄをキーに、前記ブロックに含まれる１又は複数のトランザクションに対応する１又は複数のｔｘｉｄを保持するテンポラリーディクショナリを検索するステップをさらに含むことを特徴とする。
【００１５】
また、本発明の第９の態様は、コンピュータに、ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法を実行させるためのプログラムであって、前記方法は、検証対象となるトランザクションを受け取るステップと、前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたブルームフィルターに対して前記トランザクションを入力するステップと、前記ブルームフィルターの出力が偽である場合、前記トランザクションを有効と判定するステップとを含むことを特徴とする。
【００１６】
また、本発明の第１０の態様は、ブロックチェーン・ネットワークにおいてトランザクションを検証するための前記ブロックチェーン・ネットワークを構成するノードであって、検証対象となるトランザクションを受け取り、前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたブルームフィルターに対して前記トランザクションを入力し、前記ブルームフィルターの出力が偽である場合、前記トランザクションを有効と判定することを特徴とする。
【発明の効果】
【００１７】
本発明の一態様によれば、ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたブルームフィルターに対して、検証対象となるトランザクションを入力し、真が出力として得られた場合にのみディクショナリへのアクセスを行うことによって、時間を要するディクショナリへのアクセスを抑制してトランザクションの検証を高速化することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施形態にかかるブロックチェーン・ネットワークを示す図である。
【図２】本発明の第１の実施形態にかかるトランザクションの検証方法の流れ図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【００２０】
（第１の実施形態）  
図１に、本発明の第１の実施形態にかかるブロックチェーン・ネットワークを示す。ネットワーク１００は、第１のノード１０１と、第２のノード１０２と、第３のノード１０３と、第４のノード１０４とを備える。これらのノードは、それぞれブロックチェーンを有し、新たなブロックの採択にかかる合意形成に参加する。図１では、４個の例を示しているが、これはあくまで例示である。また、合意形成に参加しないノードがネットワーク１００に含まれることもある。以下では、第１のノード１０１に着目して説明する。その他のノードについても、以下に述べる構成を有することが出来る。
【００２１】
第１のノード１０１は、通信インターフェースなどの通信部１０１−１と、プロセッサ、ＣＰＵ等の処理部１０１−２と、メモリ等の主記憶装置１０１−３と、ハードディスク等の補助記憶装置１０１−４とを備え、各処理を行うためのプログラムを実行することによって構成することができる。第１のノード１０１は、１又は複数の装置ないしサーバを含むことがあり、また当該プログラムは、１又は複数のプログラムを含むことがあり、また、コンピュータ読み取り可能な記憶媒体に記録して非一過性のプログラムプロダクトとすることができる。
【００２２】
また、主記憶装置１０１−３と補助記憶装置１０１−４とを分けて説明するものの、これらを同一の記憶装置又は記憶媒体とし、又はこれらを包含する記憶装置又は記憶媒体を記憶部とみることも考えられる。また、主記憶装置１０１−３及び補助記憶装置１０１−４は、それぞれ複数の記憶装置又は記憶媒体を含むことも考えられる。また、主記憶装置１０１−３に記憶されるものとして以下で説明するデータは、ＣＰＵ等の処理部１０１−２が有するＬ１、Ｌ２、Ｌ３等のキャッシュメモリに記憶されることもあることを付言する。この場合、主記憶装置１０１−３と処理部１０１−２が有するキャッシュメモリとを包含して「第１の記憶装置」と呼び、補助記憶装置１０１−４を包含して「第２の記憶装置」と呼ぶこともできる。
【００２３】
第１のノード１０１は、まずブロックチェーン・ネットワーク１００内又は外で生成されたトランザクション（ｔｘ）を受け取る（Ｓ２０１）。ここで、ネットワーク１００においてトランザクションが生成され、自ら受け取ることもある。図１の例では、ネットワーク１００の外で生成されたトランザクションが第１のノードによって受け取られている。
【００２４】
検証の対象となるトランザクションの受け取りは、１又は複数のトランザクションを直接受け取る場合のほか、他のノードにおいて生成されたブロックを受信することによって、当該ブロックに含まれる１又は複数のトランザクションを受け取る場合がある。
【００２５】
第１のノード１０１は、受け取ったトランザクションをブルームフィルターに対する入力として与える（Ｓ２０２）。ブルームフィルターは、当該フィルターを構成するためのプログラム及びデータを有するモジュールを主記憶装置１０１−３又は第１の記憶装置に記憶しておき、当該プログラムを実行することによって動作させることができる。
【００２６】
当該データは、ネットワーク１００を構成する各ノードが有するブロックチェーンに含まれる過去の１又は複数のトランザクションに基づいて生成されるものであり、より具体的には、当該過去の１又は複数のトランザクションに対応する１又は複数のｔｘｉｄに基づいて生成することができる。
【００２７】
ｔｘｉｄは、３２バイトのハッシュ値とすることができるが、一例として、４ビットの場合について説明する。第１のｔｘｉｄとして０１０１、第２のｔｘｉｄとして１００１が過去のトランザクションに対応するｔｘｉｄとして存在するものとする。これらの２つのｔｘｉｄの各ビットを重ね合わせて、１１０１という４ビットのデータ列を生成し、上記ブルームフィルターを構成するためのデータとすることができる。換言すれば、過去の１又は複数のトランザクションに対応する１又は複数のｔｘｉｄに基づいて、値が１であるビットを重ね合わせて生成したデータ列を当該フィルターを構成するためのデータとすることができる。
【００２８】
実際には、ｔｘｉｄの長さとデータ列の長さを同一とする必要はなく、過去の１又は複数のトランザクションに対応する１又は複数のｔｘｉｄになんらかの変換を行ってデータ列をｔｘｉｄよりも長く生成することもできる。たとえば、ｔｘｉｄのビット長よりも１０万倍、より好ましくは５０万倍、１００万倍以上長いのが望ましい。３２バイトのｔｘｉｄに対して１００万倍とすると３２ＭＢとなり、このようにしても一般的な主記憶装置１０１−３又は第１の記憶装置に格納することができる。
【００２９】
上記ブルームフィルターは、検証対象として入力されたトランザクションが過去に合意されたブロックに含まれないトランザクションである場合には、出力として必ず偽（Ｆａｌｓｅ）を返し、出力として真（Ｔｒｕｅ）を返すときは、過去に存在したトランザクションであるときとそうでないときがある。過去に存在しないにも関わらず真を返すことを偽陽性と呼ぶ。
【００３０】
実際にはより複雑な処理も可能であるが、上述の４ビットの例で説明すれば、検証対象として４ビットのハッシュ値１００１が第１のノード１０１において新たにブルームフィルターに与えられると、当該フィルターを構成するためのプログラムが、検証対象のトランザクションの値が１であるビットが当該データ列においても１であるか否かを判定する。検証対象のトランザクションの値が１であるビットのすべてにおいて肯定的に判定された場合、ブルームフィルフィルターは真を返す。過去のｔｘｉｄに１００１は存在しないものの、１１０１との対比において、偽陽性となる。
【００３１】
上記ブルームフィルターが真を返す場合、第１のノード１０１は、検証対象となるトランザクションのｔｘｉｄをキーに又は当該ｔｘｉｄに基づいてディクショナリを検索して、その有無を判定する（Ｓ２０３）。ディクショナリは、過去に合意されたブロックに含まれる１若しくは複数又はすべてのトランザクションに対するｔｘｉｄを順序付けて保持したものであり、補助記憶装置１０１−４又は第２の記憶装置に記憶しておくことができる。
【００３２】
ディクショナリの検索結果が偽、すなわち、検証対象のトランザクションのｔｘｉｄが当該ディクショナリに含まれないときは、検証対象のトランザクションを有効と判定する（Ｓ２０４）。
【００３３】
上記ブルームフィルターが偽を返す場合、検証対象のトランザクションを同様に有効と判定する（Ｓ２０４）。
【００３４】
ディクショナリの検索結果が真、すなわち、検証対象のトランザクションのｔｘｉｄが当該ディクショナリに含まれるときは、検証対象のトランザクションを無効と判定する（Ｓ２０５）。
【００３５】
以上のように、過去に合意されたブロックに含まれる１又は複数のトランザクション又はそのｔｘｉｄに基づき、ディクショナリに加えてブルームフィルターを生成し、記憶しておくことによって、時間を要するディクショナリへのアクセスを抑制してトランザクションの検証を高速化することができる。特に、ブルームフィルターモジュールをメモリ等の主記憶装置１０１−３又は第１の記憶装置に記憶しておくことによって、一層の高速化が図られる。
【００３６】
ブルームフィルター及びディクショナリは、新たなブロックについて合意形成がなされた後であって次の検証対象のトランザクションを受け取る前に、当該ブロックに含まれる１又は複数のトランザクションについて更新を行うのが望ましい。
【００３７】
上述のブルームフィルターの変形形態として、当該フィルターを構成するためのデータ列の各値をビットではなくバイトの単位として、ｔｘｉｄの値が１であるビットに対応する位置のバイトの値を当該位置の値が１であるｔｘｉｄの数に応じてインクリメントしていくようにしてもよい。第１のｔｘｉｄとして０１０１、第２のｔｘｉｄとして１００１が過去のトランザクションに対応するｔｘｉｄとして存在するものとした場合、生成されるデータ列は、４バイトの１１０２となる。第３のｔｘｉｄとして０００１をさらに考えると、データ列は、１１０３となる。このようにすることによって、過去に反映されたｔｘｉｄの削除が可能となる。この形態においては、一例として、検証対象のトランザクションの値が１であるビットに対応するバイトが当該データ列において１以上の値であるか否かの判定を行うことで真又は偽が定めることができる。ブルームフィルターとして本明細書において説明したフィルターは、説明した所要の動作を行うフィルターであればよい。
【００３８】
なお、「××のみに基づいて」、「××のみに応じて」、「××のみの場合」というように「のみ」との記載がなければ、本明細書においては、付加的な情報も考慮し得ることが想定されていることに留意されたい。
【００３９】
また、念のため、なんらかの方法、プログラム、端末、装置、サーバ又はシステム（以下「方法等」）において、本明細書で記述された動作と異なる動作を行う側面があるとしても、本発明の各態様は、本明細書で記述された動作のいずれかと同一の動作を対象とするものであり、本明細書で記述された動作と異なる動作が存在することは、当該方法等を本発明の各態様の範囲外とするものではないことを付言する。
【００４０】
（第２の実施形態）  
第１の実施形態においては、検証対象のトランザクションが過去に合意されたブロックに含まれるトランザクションであるか否かの検証について記述したところ、合意対象のブロックに複数の同一のトランザクションが含まれることを防止することはできない。
【００４１】
そこで、本発明の第２の実施形態においては、第１のノード１０１は、自ら生成したブロック又は他のノードから受け取ったブロックについて、当該ブロックに含まれる１又は複数のトランザクションに対応する１又は複数のｔｘｉｄを保持する一時的なテンポラリーディクショナリを生成する。
【００４２】
たとえば、第１の実施形態において説明した検証方法において、ブルームフィルターが偽を返したとしても（Ｓ２０２）、当該テンポラリーディクショナリを検索して同一のｔｘｉｄが検出される可能性がある。この場合、検証対象のトランザクションを無効と判定されなければならない。ディクショナリが偽を返したとき（Ｓ２０３）も同様である。また、一律にブルームフィルターを適用する前にすべてのトランザクションについてテンポラリーディクショナリの検索を検証対象のトランザクションのｔｘｉｄをキーとして行うようにすることもできる。テンポラリーディクショナリの検索時点をランダムに又は所定の規則に従い可変としたり、図２に示すループとは並列な処理として実行することもできる。
【符号の説明】
【００４３】
１００      ブロックチェーン・ネットワーク
１０１      第１のノード
１０１−１  通信部
１０１−２  処理部
１０１−３  主記憶装置
１０１−４  補助記憶装置
１０２      第２のノード
１０３      第３のノード
１０４      第４のノード
【図１】
2019146137.tif 000003
【図２】
2019146137.tif 000004
【手続補正書】
【提出日】平成30年7月17日(2018.7.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法であって、
検証対象となるトランザクションを受け取るステップと、
前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに対応する１又は複数のｔｘｉｄに基づいて生成されたブルームフィルターに対して前記トランザクションに対応するｔｘｉｄを入力するステップと、
前記ブルームフィルターの出力が偽である場合、前記トランザクションを有効と判定するステップと、
前記ブルームフィルターの出力が真である場合、前記トランザクションのｔｘｉｄをキーに、前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたディクショナリを検索するステップと、
前記ディクショナリの検索結果が偽である場合、前記トランザクションを有効と判定するステップと、
前記ディクショナリの検索結果が真である場合、前記トランザクションを無効と判定するステップと
を含むことを特徴とする方法。
【請求項２】
前記検証対象となるトランザクションは、合意形成の対象となるブロックに含まれる１又は複数のトランザクションのうちのいずれかであることを特徴とする請求項１に記載の方法。
【請求項３】
コンピュータに、ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法を実行させるためのプログラムであって、前記方法は、
検証対象となるトランザクションを受け取るステップと、
前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに対応する１又は複数のｔｘｉｄに基づいて生成されたブルームフィルターに対して前記トランザクションに対応するｔｘｉｄを入力するステップと、
前記ブルームフィルターの出力が偽である場合、前記トランザクションを有効と判定するステップと、
前記ブルームフィルターの出力が真である場合、前記トランザクションのｔｘｉｄをキーに、前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたディクショナリを検索するステップと、
前記ディクショナリの検索結果が偽である場合、前記トランザクションを有効と判定するステップと、
前記ディクショナリの検索結果が真である場合、前記トランザクションを無効と判定するステップと
を含むことを特徴とするプログラム。
【請求項４】
ブロックチェーン・ネットワークにおいてトランザクションを検証するための前記ブロックチェーン・ネットワークを構成するノードであって、
検証対象となるトランザクションを受け取り、
前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに対応する１又は複数のｔｘｉｄに基づいて生成されたブルームフィルターに対して前記トランザクションに対応するｔｘｉｄを入力し、
前記ブルームフィルターの出力が偽である場合、前記トランザクションを有効と判定し、
前記ブルームフィルターの出力が真である場合、前記トランザクションのｔｘｉｄをキーに、前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたディクショナリを検索し、
前記ディクショナリの検索結果が偽である場合、前記トランザクションを有効と判定し、
前記ディクショナリの検索結果が真である場合、前記トランザクションを無効と判定することを特徴とするノード。
【手続補正書】
【提出日】平成30年10月2日(2018.10.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法であって、
検証対象となるトランザクションを受け取るステップと、
前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたブルームフィルターに対して前記トランザクション又は前記トランザクションに対応するｔｘｉｄを入力するステップと、
前記ブルームフィルターの出力が偽である場合、前記トランザクションを有効と判定するステップと、
前記ブルームフィルターの出力が真である場合、前記トランザクションのｔｘｉｄをキーに、前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたディクショナリを検索するステップと、
前記ディクショナリの検索結果が偽である場合、前記トランザクションを有効と判定するステップと、
前記ディクショナリの検索結果が真である場合、前記トランザクションを無効と判定するステップと
を含むことを特徴とする方法。
【請求項２】
前記ブルームフィルターを構成するためのデータは、前記過去に合意されたブロックに含まれる１又は複数のトランザクションに対応する１又は複数のｔｘｉｄから生成されたデータ列であることを特徴とする請求項１に記載の方法。
【請求項３】
前記検証対象となるトランザクションは、合意形成の対象となるブロックに含まれる１又は複数のトランザクションのうちのいずれかであることを特徴とする請求項１又は２に記載の方法。
【請求項４】
コンピュータに、ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法を実行させるためのプログラムであって、前記方法は、
検証対象となるトランザクションを受け取るステップと、
前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたブルームフィルターに対して前記トランザクション又は前記トランザクションに対応するｔｘｉｄを入力するステップと、
前記ブルームフィルターの出力が偽である場合、前記トランザクションを有効と判定するステップと、
前記ブルームフィルターの出力が真である場合、前記トランザクションのｔｘｉｄをキーに、前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたディクショナリを検索するステップと、
前記ディクショナリの検索結果が偽である場合、前記トランザクションを有効と判定するステップと、
前記ディクショナリの検索結果が真である場合、前記トランザクションを無効と判定するステップと
を含むことを特徴とするプログラム。
【請求項５】
ブロックチェーン・ネットワークにおいてトランザクションを検証するための前記ブロックチェーン・ネットワークを構成するノードであって、
検証対象となるトランザクションを受け取り、
前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたブルームフィルターに対して前記トランザクション又は前記トランザクションに対応するｔｘｉｄを入力し、
前記ブルームフィルターの出力が偽である場合、前記トランザクションを有効と判定し、
前記ブルームフィルターの出力が真である場合、前記トランザクションのｔｘｉｄをキーに、前記ブロックチェーン・ネットワークにおいて過去に合意されたブロックに含まれる１又は複数のトランザクションに基づいて生成されたディクショナリを検索し、
前記ディクショナリの検索結果が偽である場合、前記トランザクションを有効と判定し、
前記ディクショナリの検索結果が真である場合、前記トランザクションを無効と判定することを特徴とするノード。