(57)【要約】      （修正有）【課題】イーサリアムコンセンサスアルゴリズムの耐タンパー性検証が工学的に実現できないという問題を解決可能な、イーサリアムに基づく改ざんされたトランザクションの処理方法、デバイス及び記憶媒体を提供する。【解決手段】イーサリアムに基づく改ざんされたトランザクションの処理方法において、イーサリアムネットワーク内のすべてのノードに対して改ざんされたトランザクションが含まれるブロックを事前設定されたノードによってブロードキャストするように、改ざんされたトランザクションをイーサリアムネットワーク内の事前設定されたノードに送信する１０１。次いで、イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、改ざんされたトランザクションによるイーサリアムネットワークへの攻撃が成功したかどうかを判定する１０２。【選択図】図１
2020161112.tif 000002
【特許請求の範囲】
【請求項１】
イーサリアムに基づく改ざんされたトランザクションの処理方法であって、
改ざんされたトランザクションが含まれるブロックをイーサリアムネットワーク内の事前設定されたノードによってイーサリアムネットワーク内のすべてのノードにブロードキャストするように、前記改ざんされたトランザクションを前記事前設定されたノードに送信するステップと、
前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するステップと、を含むことを特徴とするイーサリアムに基づく改ざんされたトランザクションの処理方法。
【請求項２】
前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するステップは、
前記イーサリアムネットワーク内の事前設定されたノードと設定されていないノードに対して、それぞれノードによって維持されるチェーン上の最後のブロックの情報を取得するためのブロック情報取得要求を送信することと、
前記事前設定されたノードによって返された第１のブロック情報と前記設定されていないノードによって返された第２のブロック情報を受信し、前記第１のブロック情報内のヘッダー情報と前記第２のブロック情報内のヘッダー情報が同じであるかどうかを比較することと、
前記第１のブロック情報内のヘッダー情報が前記第２のブロック情報内のヘッダー情報と同じである場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したと判定することと、
前記第１のブロック情報内のヘッダー情報が前記第２のブロック情報内のヘッダー情報とは異なる場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が失敗したと判定することと、を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するステップは、
前記イーサリアムネットワーク内の設定されていないノードに対して、前記改ざんされたトランザクションの識別子が含まれるトランザクション情報要求を送信することと、
前記設定されていないノードから返された応答メッセージを受信し、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれているかどうかを確認することと、
前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれている場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したと判定することと、
前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれていない場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が失敗したと判定することと、を含むことを特徴とする請求項１に記載の方法。
【請求項４】
イーサリアムに基づく改ざんされたトランザクションの処理方法であって、
改ざんされたトランザクションを受信し、前記改ざんされたトランザクションをブロックにパッケージ化して、前記改ざんされたトランザクションが含まれるブロックを取得するステップと、
前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するために、前記ブロックを自ノードが配置されているイーサリアムネットワーク内のすべてのノードにブロードキャストするステップと、を含むことを特徴とするイーサリアムに基づく改ざんされたトランザクションの処理方法。
【請求項５】
前記改ざんされたトランザクションを受信した後、前記方法は、
前記改ざんされたトランザクションを前記イーサリアムネットワーク内の事前設定されたノードにブロードキャストするステップを更に含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記ブロックを自ノードが配置されているイーサリアムネットワーク内のすべてのノードにブロードキャストした後、前記方法は、
自ノードにブロードキャストされたブロックを受信し、該ブロック内のトランザクション情報を取得するステップと、
該ブロック内のトランザクション情報が、自ノードによって維持されているチェーン上のトランザクション情報内に存在しているかどうかを判断するステップと、
該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在している場合、該ブロックを破棄するステップと、
該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在していない場合、該ブロック内のヘッダー署名を取得するステップと、
前記ヘッダー署名におけるノード識別子が事前設定されたノード識別子内に存在するかどうかを判断するステップと、
前記ヘッダー署名におけるノード識別子が前記事前設定されたノード識別子内に存在する場合、該ブロックを自ノードによって維持されているチェーンにマージするステップを更に含むことを特徴とする請求項４に記載の方法。
【請求項７】
イーサリアムに基づく改ざんされたトランザクションの処理装置であって、
改ざんされたトランザクションが含まれるブロックをイーサリアムネットワーク内の事前設定されたノードによってイーサリアムネットワーク内のすべてのノードにブロードキャストするように、前記改ざんされたトランザクションを前記事前設定されたノードに送信するための送信ユニットと、
前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するための処理ユニットと、を含むことを特徴とするイーサリアムに基づく改ざんされたトランザクションの処理装置。
【請求項８】
前記送信ユニットは更に、前記イーサリアムネットワーク内の事前設定されたノードと設定されていないノードに対して、それぞれノードによって維持されるチェーン上の最後のブロックの情報を取得するためのブロック情報取得要求を送信することに用いられ、
前記装置は、前記事前設定されたノードによって返された第１のブロック情報と前記設定されていないノードによって返された第２のブロック情報を受信するための受信ユニットを更に備え、
前記処理ユニットは、前記第１のブロック情報内のヘッダー情報と前記第２のブロック情報内のヘッダー情報が同じであるかどうかを比較することに用いられ、前記第１のブロック情報内のヘッダー情報が前記第２のブロック情報内のヘッダー情報と同じである場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したと判定し、前記第１のブロック情報内のヘッダー情報が前記第２のブロック情報内のヘッダー情報とは異なる場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が失敗したと判定することを特徴とする請求項７に記載の装置。
【請求項９】
前記送信ユニットは更に、前記イーサリアムネットワーク内の設定されていないノードに対して、前記改ざんされたトランザクションの識別子が含まれるトランザクション情報要求を送信することに用いられ、
前記装置は、前記設定されていないノードによって返された応答メッセージを受信するための受信ユニットを更に備え、
前記処理ユニットは更に、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれているかどうかを確認することに用いられ、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれている場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したと判定し、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれていない場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が失敗したと判定することを特徴とする請求項７に記載の装置。
【請求項１０】
イーサリアムに基づく改ざんされたトランザクションの処理装置であって、
改ざんされたトランザクションを受信するための受信ユニットと、
前記改ざんされたトランザクションをブロックにパッケージ化して、前記改ざんされたトランザクションが含まれるブロックを取得するための処理ユニットと、
前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するために、前記ブロックを自ノードが配置されているイーサリアムネットワーク内のすべてのノードにブロードキャストするための送信ユニットと、を備えることを特徴とするイーサリアムに基づく改ざんされたトランザクションの処理装置。
【請求項１１】
前記送信ユニットは更に、前記改ざんされたトランザクションを前記イーサリアムネットワーク内の事前設定されたノードにブロードキャストすることに用いられることを特徴とする請求項１０に記載の装置。
【請求項１２】
前記受信ユニットは更に、自ノードにブロードキャストされたブロックを受信し、該ブロック内のトランザクション情報を取得することに用いられ、
前記処理ユニットは更に、該ブロック内のトランザクション情報が、自ノードによって維持されているチェーン上のトランザクション情報内に存在しているかどうかを判断することに用いられ、該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在している場合、該ブロックを破棄し、該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在していない場合、該ブロック内のヘッダー署名を取得し、前記ヘッダー署名におけるノード識別子が事前設定されたノード識別子内に存在するかどうかを判断し、前記ヘッダー署名におけるノード識別子が前記事前設定されたノード識別子内に存在する場合、該ブロックを自ノードによって維持されているチェーンにマージすることを特徴とする請求項１０に記載の装置。
【請求項１３】
記憶媒体であって、
前記記憶媒体に命令が格納されており、前記命令がコンピュータに実行されると、コンピュータに請求項１〜３のいずれか１項に記載のイーサリアムに基づく改ざんされたトランザクションの処理方法及び／又は請求項４〜６のいずれか１項に記載のイーサリアムに基づく改ざんされたトランザクションの処理方法を実行させることを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、ブロックチェーンの技術分野に関し、具体的にイーサリアムに基づく改ざんされたトランザクションの処理方法、デバイス及び記憶媒体に関する。
【背景技術】
【０００２】
ブロックチェーン技術は、複数の不信感を持たれている参加者の間でコンセンサスを得るための技術であり、イーサリアムはブロックチェーン技術の適用である。イーサリアムを介して、複数の参加者がブロックチェーンを共同で維持できるため、参加者は１本のチェーン内のトランザクションに関する合意に達し、どちらの当事者も許可なくチェーン上のトランザクションを変更できない。
【０００３】
１本のブロックチェーンにおける合意に達するために、ブロックチェーンの研究者は、初期のＰＯＷから後のＰＯＳ、ＰＯＡなど、さまざまなコンセンサスアルゴリズムを設計した。異なるコンセンサスアルゴリズムには異なる特性があるが、合意に達するという基本的な目標はすべて同じである。トランザクションの整合性と否認不可性は、すべてのコンセンサスアルゴリズムが考慮する必要がある重要な性能である。トランザクションの整合性としては、コンセンサスアルゴリズムは、ブロックチェーンに入ったトランザクションが常に整合性の取れた状態にあるものであり、参加者のいずれも許可なくそれを変更できないように確保する必要があり、否認不可性としては、コンセンサスアルゴリズムは、ブロックチェーンに入ったトランザクションが参加者のいずれかによって勝手に拒否又は撤回されないように確保する必要がある。
【０００４】
従来技術では、耐タンパー能力の検証は数学的操作によって検証されており、実際の工学的実現は欠けている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本出願の目的は、従来技術においてイーサリアムコンセンサスアルゴリズムの耐タンパー性検証が工学的に実現できないという問題を解決し、イーサリアムに基づく改ざんされたトランザクションの処理方法、デバイス及び記憶媒体を提供することである。改ざんされたトランザクションをイーサリアムネットワーク内の設定されたノードに送信して、「不良ノード」を構築することにより、前記イーサリアムネットワーク内のすべてのノードに対して改ざんされたトランザクションが含まれるブロックを該不良ノードを介してブロードキャストし、前記イーサリアムネットワーク内の正常のノードが改ざんされたトランザクションが含まれるブロックを受け入れるかどうかを観察し、これにより該イーサリアムネットワーク内のコンセンサスアルゴリズムの耐タンパー性能を検証する。
【課題を解決するための手段】
【０００６】
上記目的を実現するために、本出願の第１の態様の実施例は、イーサリアムに基づく改ざんされたトランザクションの処理方法であって、改ざんされたトランザクションが含まれるブロックをイーサリアムネットワーク内の事前設定されたノードによってイーサリアムネットワーク内のすべてのノードにブロードキャストするように、前記改ざんされたトランザクションを前記事前設定されたノードに送信するステップと、前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するステップと、を含むイーサリアムに基づく改ざんされたトランザクションの処理方法を提供する。
【０００７】
更に、前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するステップは、前記イーサリアムネットワーク内の事前設定されたノードと設定されていないノードに対して、それぞれノードによって維持されるチェーン上の最後のブロックの情報を取得するためのブロック情報取得要求を送信することと、前記事前設定されたノードによって返された第１のブロック情報と前記設定されていないノードによって返された第２のブロック情報を受信し、前記第１のブロック情報内のヘッダー情報と前記第２のブロック情報内のヘッダー情報が同じであるかどうかを比較することと、前記第１のブロック情報内のヘッダー情報が前記第２のブロック情報内のヘッダー情報と同じである場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したと判定することと、前記第１のブロック情報内のヘッダー情報が前記第２のブロック情報内のヘッダー情報とは異なる場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が失敗したと判定することと、を含む。
【０００８】
更に、前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するステップは、前記イーサリアムネットワーク内の設定されていないノードに対して、前記改ざんされたトランザクションの識別子が含まれるトランザクション情報要求を送信することと、前記設定されていないノードから返された応答メッセージを受信し、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれているかどうかを確認することと、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれている場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したと判定することと、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれていない場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が失敗したと判定することと、を含む。
【０００９】
本出願の第２の態様の実施例は、イーサリアムに基づく改ざんされたトランザクションの処理方法であって、改ざんされたトランザクションを受信し、前記改ざんされたトランザクションをブロックにパッケージ化して、前記改ざんされたトランザクションが含まれるブロックを取得するステップと、前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するために、前記ブロックを自ノードが配置されているイーサリアムネットワーク内のすべてのノードに対してブロードキャストするステップと、を含むイーサリアムに基づく改ざんされたトランザクションの処理方法を提供する。
【００１０】
更に、前記改ざんされたトランザクションを受信した後、前記方法は、前記改ざんされたトランザクションを前記イーサリアムネットワーク内の事前設定されたノードにブロードキャストするステップを更に含む。
【００１１】
更に、前記ブロックを自ノードが配置されているイーサリアムネットワーク内のすべてのノードに対してブロードキャストした後、前記方法は、自ノードにブロードキャストされたブロックを受信し、該ブロック内のトランザクション情報を取得するステップと、該ブロック内のトランザクション情報が、自ノードによって維持されているチェーン上のトランザクション情報内に存在しているかどうかを判断するステップと、該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在している場合、該ブロックを破棄するステップと、該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在していない場合、該ブロック内のヘッダー署名を取得するステップと、前記ヘッダー署名におけるノード識別子が事前設定されたノード識別子内に存在するかどうかを判断するステップと、前記ヘッダー署名におけるノード識別子が前記事前設定されたノード識別子内に存在する場合、該ブロックを自ノードによって維持されているチェーンにマージするステップを更に含む。
【００１２】
本出願の第３の態様の実施例は、イーサリアムに基づく改ざんされたトランザクションの処理装置であって、改ざんされたトランザクションが含まれるブロックをイーサリアムネットワーク内の事前設定されたノードによってイーサリアムネットワーク内のすべてのノードにブロードキャストするように、前記改ざんされたトランザクションを前記事前設定されたノードに送信するための送信ユニットと、前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するための処理ユニットと、を含むイーサリアムに基づく改ざんされたトランザクションの処理装置を提供する。
【００１３】
更に、前記送信ユニットは更に、前記イーサリアムネットワーク内の事前設定されたノードと設定されていないノードに対して、それぞれノードによって維持されるチェーン上の最後のブロックの情報を取得するためのブロック情報取得要求を送信することに用いられ、前記装置は、前記事前設定されたノードによって返された第１のブロック情報と前記設定されていないノードによって返された第２のブロック情報を受信するための受信ユニットを更に備え、前記処理ユニットは、前記第１のブロック情報内のヘッダー情報と前記第２のブロック情報内のヘッダー情報が同じであるかどうかを比較することに用いられ、前記第１のブロック情報内のヘッダー情報が前記第２のブロック情報内のヘッダー情報と同じである場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したと判定し、前記第１のブロック情報内のヘッダー情報が前記第２のブロック情報内のヘッダー情報とは異なる場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が失敗したと判定する。
【００１４】
更に、前記送信ユニットは更に、前記イーサリアムネットワーク内の設定されていないノードに対して、前記改ざんされたトランザクションの識別子が含まれるトランザクション情報要求を送信することに用いられ、前記装置は、前記設定されていないノードによって返された応答メッセージを受信するための受信ユニットを更に備え、前記処理ユニットは更に、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれているかどうかを確認することに用いられ、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれている場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したと判定し、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれていない場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が失敗したと判定する。
【００１５】
本出願の第４の態様の実施例は、イーサリアムに基づく改ざんされたトランザクションの処理装置であって、改ざんされたトランザクションを受信するための受信ユニットと、前記改ざんされたトランザクションをブロックにパッケージ化して、前記改ざんされたトランザクションが含まれるブロックを取得するための処理ユニットと、前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するために、前記ブロックを自ノードが配置されているイーサリアムネットワーク内のすべてのノードにブロードキャストするための送信ユニットと、を備えるイーサリアムに基づく改ざんされたトランザクションの処理装置を提供する。
【００１６】
更に、前記送信ユニットは更に、前記改ざんされたトランザクションを前記イーサリアムネットワーク内の事前設定されたノードにブロードキャストすることに用いられる。
【００１７】
更に、前記受信ユニットは更に、自ノードにブロードキャストされたブロックを受信し、該ブロック内のトランザクション情報を取得することに用いられ、前記処理ユニットは更に、該ブロック内のトランザクション情報が、自ノードによって維持されているチェーン上のトランザクション情報内に存在しているかどうかを判断することに用いられ、該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在している場合、該ブロックを破棄し、該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在していない場合、該ブロック内のヘッダー署名を取得し、前記ヘッダー署名におけるノード識別子が事前設定されたノード識別子内に存在するかどうかを判断し、前記ヘッダー署名におけるノード識別子が前記事前設定されたノード識別子内に存在する場合、該ブロックを自ノードによって維持されているチェーンにマージする。
【００１８】
本出願の第５の態様の実施例は、記憶媒体であって、前記記憶媒体に命令が格納されており、前記命令がコンピュータに実行されると、コンピュータに前記第１の態様の実施例に記載のイーサリアムに基づく改ざんされたトランザクションの処理方法及び／又は前記第２の態様の実施例に記載のイーサリアムに基づく改ざんされたトランザクションの処理方法を実行させる記憶媒体を提供する。
【００１９】
上記の技術的手段により、改ざんされたトランザクションを事前設定されたノードである「不良ノード」に送信することにより、「不良ノード」が改ざんされたトランザクションを使用してチェーン上のデータを改ざんして攻撃する効果をシミュレートし、更に、改ざんされたトランザクションが「正常ノード」である設定されていないノードによって受け入れられるかどうかを観察することで、コンセンサスアルゴリズムの耐タンパー性能の工学的検証が実現された。
【００２０】
本発明の他の特徴及び利点は、以下の具体的な実施形態で詳細に説明される。
【００２１】
図面は、本出願を更に理解するために提供され、明細書の一部を構成しており、以下の具体的な実施形態と共に本出願を説明するために用いられ、本出願を限定するものではない。
【図面の簡単な説明】
【００２２】
【図１】本出願の実施例によるイーサリアムに基づく改ざんされたトランザクションの処理方法を示す概略フローチャートである。
【図２】本出願の実施例によるイーサリアムネットワークのトランザクション伝播を示す概略図である。
【図３】本出願の実施例によるイーサリアムに基づく改ざんされたトランザクションの処理方法の別の例を示す概略フローチャートである。
【図４】本出願の実施例によるイーサリアムネットワークのブロック伝播を示す概略図である。
【図５】本出願の実施例によるイーサリアムに基づく改ざんされたトランザクションの処理装置を示す構造概略図である。
【図６】本出願の実施例によるイーサリアムに基づく改ざんされたトランザクションの処理装置の別の例を示す構造概略図である。
【図７】本出願の実施例によるイーサリアムに基づく改ざんされたトランザクションの処理装置のもう一つの例を示す構造概略図である。
【発明を実施するための形態】
【００２３】
以下、添付図面を参照しながら、本出願の具体的な実施形態を詳しく説明する。本明細書に記載の具体的な実施形態は、単なる例示であり、本出願を限定するものではないことを理解されたい。
【００２４】
図１は、本出願の実施例によるイーサリアムに基づく改ざんされたトランザクションの処理方法を示す概略フローチャートである。図１に示すように、前記方法は、ステップ１０１〜１０２を含む。
【００２５】
ステップ１０１：改ざんされたトランザクションが含まれるブロックをイーサリアムネットワーク内の事前設定されたノードによってイーサリアムネットワーク内のすべてのノードにブロードキャストするように、前記改ざんされたトランザクションを前記事前設定されたノードに送信する。
【００２６】
ステップ１０２：前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定する。
【００２７】
ここで、ブロックチェーンにはチェーンにおけるブロック情報自体に対する独立したストレージがないため、すべてのブロック情報はトランザクションへの処理によって取得される。したがって、チェーンにおけるブロック情報を改ざんする場合、改ざん対象となるオブジェクトはチェーン上のトランザクションである。正当なトランザクション自体は、署名の検証に合格することを要求する必要があるため、検証方法においては、トランザクションは、通常のトランザクションと改ざんされたトランザクションの２つのタイプに分けられ、ここでは、通常のトランザクションはいずれのノードによって生成されたブロックに含まれてもよく、改ざんされたトランザクションは、いわゆる「不良ノード」によって生成されたブロックにのみ含まれ得る。したがって、上記の要件を満たす改ざんされたトランザクションをシミュレートするために、「不良ノード」、即ち事前設定されたノードをイーサリアムネットワークにおいて事前構成する。次に、改ざんされたトランザクションを正常ノード、即ち設定されていないノードに送信せず、前記イーサリアムネットワーク内の事前設定されたノード、即ち「不良ノード」に送信するだけで、「不良ノード」のみ見える改ざんされたトランザクションをシミュレートすることができ、これにより、前記事前設定されたノードが前記改ざんされたトランザクションをブロックにパッケージ化して、前記改ざんされたトランザクションが含まれるブロックを取得することで、該改ざんされたトランザクションを前記事前設定されたノードによって生成されたブロックに伴って前記イーサリアムネットワーク内のすべてのノードにブロードキャストする。
【００２８】
ここで、本出願の一実施形態では、図２に示すイーサリアムネットワークにおいては、黒ノードが「攻撃者」によって制御される事前設定されたノード、すなわち「不良ノード」を表し、白ノードが正常ノードを表す。改ざんされたトランザクションを前記イーサリアムネットワークの事前設定されたノードに送信するとき、該改ざんされたトランザクションを事前設定されたノードに送信して、該ノードによって他の事前設定されたノードにブロードキャストすることができ、あるいは、該改ざんされたトランザクションを、前記イーサリアムネットワーク内のすべての事前設定されたノードに直接送信することができる。これらの実施形態のどちらも、その最終的な効果は、事前設定されたノードのみによって前記改ざんされたトランザクションが含まれるブロックをブロードキャストできるようにシミュレートすることである。更に、図２に示すように、通常のユーザーによって開始された正常トランザクションは、事前設定されたノードと設定されていないノードに平等にブロードキャストされる。したがって、正常トランザクションと改ざんされたトランザクションは、事前設定されたノードのｔｘｐｏｏｌで照会でき、設定されていないノードのｔｘｐｏｏｌにおいては、正常トランザクションのみが照会でき、改ざんされたトランザクションが照会できないため、改ざんされたトランザクションが事前設定されたノード、即ち不良ノードによって生成される効果をシミュレートできる。
【００２９】
次に、前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定できる。
【００３０】
前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを２つの方法で判断でき、一つの方法は、事前設定されたノードによって維持されているチェーン上の最後のブロック情報と、設定されていないノードによって維持されているチェーン上の最後のブロック情報とを比較することである。ここで、各ノードによって維持されているチェーン上のブロック情報内のヘッダー情報には、チェーン上の前のヘッダー情報のハッシュ値が含まれ、つまり、チェーン上の最後のブロック情報内のヘッダー情報には、該チェーン上の以前のすべてのブロック情報内のヘッダー情報のハッシュ値が含まれる。したがって、改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判断する場合、つまり、該イーサリアムネットワークのコンセンサスアルゴリズムの耐タンパー性能が信頼できるかどうかを判断する場合、前記イーサリアムネットワーク内での事前設定されたノード、即ち「不良ノード」によって維持されているチェーン上の最後のブロック情報内のヘッダー情報と、前記イーサリアムネットワーク内での設定されていないノード、即ち「正常ノード」によって維持されているチェーン上の最後のブロック情報内のヘッダー情報を確認する必要がある。さらに、事前設定されたノード間のコンセンサスアルゴリズム、即ち「不良ノード」間のコンセンサスアルゴリズムに従って、すべての事前設定されたノードが同チェーン上で合意に達するため、事前設定されたノードによって維持されているチェーン上の最後のブロック情報を確認する場合、すべての事前設定されたノードからいずれか１つを選択して確認できる。同様に、設定されていないノードによって維持されているチェーン上の最後のブロック情報を確認する場合、設定されていないノードからいずれか１つを選択して確認することもできる。したがって、ノードによって維持されるチェーン上の最後のブロック情報を取得するために、前記イーサリアムネットワーク内でのすべての事前設定されたノードのいずれかにブロック情報取得要求を送信することができ、また、前記イーサリアムネットワーク内でのすべての設定されていないノードのいずれかにブロック情報取得要求を送信することができる。それぞれ前記事前設定されたノード及び前記設定されていないノードから最後のブロック情報を受信するとき、それぞれ第１のブロック情報及び第２のブロック情報として対応して設定する。前記第１のブロック情報内のヘッダー情報と前記第２のブロック情報内のヘッダー情報とが同じであるかどうかを比較する。前記第１のブロック情報内のヘッダー情報と前記第２のブロック情報内のヘッダー情報とが同じである場合、前記設定されていないノード、即ち「正常ノード」によって維持されているチェーンには改ざんされたトランザクションによって生成されたブロックが含まれていることを意味するので、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したと判定され、即ち、前記イーサリアムネットワークのコンセンサスアルゴリズムの耐タンパー性能が信頼できないと判定される。前記第１のブロック情報内のヘッダー情報と前記第２のブロック情報内のヘッダー情報とが異なる場合、「正常ノード」によって維持されているチェーンには改ざんされたトランザクションによって生成されたブロックが含まれていないことを意味するので、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が失敗したと判定され、即ち、前記イーサリアムネットワークのコンセンサスアルゴリズムの耐タンパー性能が信頼できると判定される。
【００３１】
本出願の実施例においては、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定する別の方法は、前記イーサリアムネットワーク内でのすべての設定されていないノードのいずれかに対して、前記改ざんされたトランザクションの識別子が含まれるトランザクション情報要求を直接送信する。前記設定されていないノードが前記トランザクション情報要求を受信すると、前記改ざんされたトランザクションの識別子を直接使用して自ノードのｔｘｐｏｏｌにおいて前記改ざんされたトランザクションが含まれているかどうかを認識し、前記改ざんされたトランザクションが見つかった場合、該改ざんされたトランザクションの情報を直接返送し、前記改ざんされたトランザクションが見つからない場合、認識されていない応答メッセージを直接返送する。即ち、前記設定されていないノードから返された応答メッセージを受信した後、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれているかどうかを確認する。前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれている場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したと判定され、即ち、前記イーサリアムネットワークのコンセンサスアルゴリズムの耐タンパー性能が信頼できないと判定される。前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれていない場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が失敗したと判定され、即ち、前記イーサリアムネットワークのコンセンサスアルゴリズムの耐タンパー性能が信頼できると判定される。
【００３２】
本出願の実施例によれば、改ざんされたトランザクションを事前設定されたノードである「不良ノード」に送信することにより、「不良ノード」が改ざんされたトランザクションを使用してチェーン上のデータを改ざんして攻撃する効果をシミュレートし、更に、改ざんされたトランザクションが「正常ノード」である設定されていないノードによって受け入れられるかどうかを観察することで、コンセンサスアルゴリズムの耐タンパー性能の工学的検証が実現された。
【００３３】
相応して、図３は、本出願の実施例によるイーサリアムに基づく改ざんされたトランザクションの処理方法を示す概略フローチャートである。図３に示すように、前記方法は前記イーサリアムネットワークでの事前設定されたノード、すなわち「不良ノード」に適用され、前記方法はステップ３０１〜３０２を含む。
【００３４】
ステップ３０１：改ざんされたトランザクションを受信し、前記改ざんされたトランザクションをブロックにパッケージ化して、前記改ざんされたトランザクションが含まれるブロックを取得する。
【００３５】
ステップ３０２：前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するために、前記ブロックを自ノードが配置されているイーサリアムネットワーク内のすべてのノードにブロードキャストする。
【００３６】
イーサリアムネットワークのチェーン内のデータに対する改ざん攻撃をシミュレートする「不良ノード」を構築するために、前記イーサリアムネットワークの事前設定されたノードに改ざんされたトランザクションを受信させる。前記イーサリアムネットワークの事前設定されたノードが改ざんされたトランザクションを受信するには、２つの実現方法がある。１つは、前記イーサリアムネットワークのすべての事前設定されたノードが前記改ざんされたトランザクションを同時に受信することであり、もう一つは、前記イーサリアムネットワークのすべての事前設定されたノードのうちの１つが前記改ざんされたトランザクションを受信し、該ノードは前記改ざんされたトランザクションを、前記イーサリアムネットワークの設定されていないノードである「正常ノード」にブロードキャストせずに、前記イーサリアムネットワーク内の他の事前設定されたノードに送信することである。上記の実施態様のいずれも、最終的な目標は、事前設定されたノードである「不良ノード」のみが前記改ざんされたトランザクションを見えるようにされ、前記改ざんされたトランザクションをブロックにパッケージ化して前記改ざんされたトランザクションが含まれるブロックを取得し、その後、前記改ざんされたトランザクションが含まれるブロックを自ノードが配置されている前記イーサリアムネットワーク内のすべてのノードにブロードキャストするようにシミュレートすることである。
【００３７】
さらに、「不良ノード」自体によって維持されるチェーンには前記改ざんされたトランザクションが含まれているため、「正常ノード」と同じ検証ブロックポリシーは使用できない。さもなければ、「不良ノード」における改ざんされたトランザクションは「正常ノード」によって取り消される。該改ざんされたトランザクションが他の「正常ノード」では見えず、「不良ノード」によって生成されたブロックにのみ存在するため、「不良ノード」のチェーンが再編成されると、前記改ざんされたトランザクションが含まれるブロックを破棄して、改ざんを無効にする可能性がある。したがって、「不良ノード」が自身にブロードキャストされたブロックを受信した場合、再編成を防ぐためにブロックのソースを検証する必要もある。具体的には、事前設定されたノードが自ノードにブロードキャストされたブロックを受信すると、該ブロック内のトランザクション情報を取得し、該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在しているかどうかを判断する。該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在している場合、該ブロックを破棄する。該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在していない場合、該ブロック内のヘッダー署名を取得する。ヘッダー署名の信憑性が検証された後、「不良ノード」が相互に認識されるため、ヘッダー署名が真であると検証された後、前記ヘッダー署名内のノード識別子が事前設定されたノード識別子内に存在するかどうかを判断する。前記ヘッダー署名内のノード識別子が前記事前設定されたノード識別子内に存在する場合、該ブロックが別の「不良ノード」からのものであることを示すため、「不良ノード」間のコンセンサスアルゴリズムに従って、「不良ノード」間が維持されているチェーンにおいて合意に達することを確保するためには、該ブロックを自ノードによって維持されているチェーンにマージする。図４に示すイーサリアムネットワークにおいては、黒ノードが事前設定されたノード、即ち「不良ノード」を表し、白ノードが設定されていないノード、即ち「正常ノード」を表す。図４からわかるように、「不良ノード」によって生成された改ざんされたトランザクションが含まれるブロックは、「不良ノード」と「正常ノード」の２種類のノードにブロードキャストされる。他の「不良ノード」が該ブロックを受信すると、該ブロックを検出し、該ブロックが改ざんされたトランザクションが含まれている原因で破棄されないように確保する。
【００３８】
本出願の実施例においては、事前設定されたノードに対してシミュレートすべき「不良ノード」の必要な特性は以下を含む。即ち、受信された改ざんされたトランザクションについては、正常ノードにブロードキャストせずに、改ざんされたトランザクションが「不良ノード」のみで生じる効果をシミュレートし、受信されたブロードキャストのブロックについては、ブロックのソースを検証する必要があり、ブロックが他の事前設定されたノードから由来すると検証された場合、該ブロックをチェーンに組み込み、改ざんされたトランザクションが含まれるブロックが破棄されないように確保する。
【００３９】
オープンソースのＧｅｔｈに基づいてこのような「不良ノード」の機能を実現する場合、主に次の２つの実現ロジックを変更する。１つはＢｒｏａｄｃａｓｔＴｘｓのブロードキャストトランザクションのロジックであり、改ざんされたトランザクションを「正常ノード」にブロードキャストせずに、事前設定されたノードである「不良ノード」のみにブロードキャストするように変更し、もう１つのロジックは、ＰｒｏｔｏｃｏｌＭａｎａｇｅｒのｈａｎｄｌｅＭｓｇでＮｅｗＢｌｏｃｋＭｓｇを処理するロジックであり、「不良ノード」は、受信したブロードキャストのブロックをスクリーニングして、改ざんされたトランザクションが含まれるブロックがチェーンの再編成により破棄されるのを防止する。
【００４０】
上記の実施例により、改ざんされたトランザクションを事前設定されたノードに送信することで、いわゆる「不良ノード」によって改ざんされたトランザクションが含まれるブロックをブロードキャストする効果をシミュレートし、前記イーサリアムネットワークの「正常ノード」には「不良ノード」によって生成された改ざんされたトランザクションが含まれているかどうかを確認することで、チェーン上のデータの整合性と否認不可性に対する「不良ノード」が存在するイーサリアムネットワークのコンセンサスアルゴリズムの効果を検証できる。改ざんされたトランザクションが「正常ノード」から確認された場合、「不良ノード」と「正常ノード」は前記改ざんされたトランザクションについて合意に達し、「不良ノード」によって生成された前記改ざんされたトランザクションは「正常ノード」によって受け入れられ、それによって「不良ノード」によるチェーンデータへの攻撃が成功し、即ち、前記イーサリアムネットワークのコンセンサスアルゴリズムの耐タンパー性能が信頼できないことを意味している。逆に、「正常ノード」が「不良ノード」によって生成された前記改ざんされたトランザクションを受け入れておらず、攻撃が失敗し、即ち、前記イーサリアムネットワークのコンセンサスアルゴリズムの耐タンパー性能が信頼できることを意味する。
【００４１】
図５は、本出願の実施例によるイーサリアムに基づく改ざんされたトランザクションの処理装置を示す構造概略図である。図５に示すように、前記装置５０は、改ざんされたトランザクションが含まれるブロックをイーサリアムネットワーク内の事前設定されたノードによってイーサリアムネットワーク内のすべてのノードにブロードキャストするように、前記改ざんされたトランザクションを前記事前設定されたノードに送信するための送信ユニット５１と、前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するための処理ユニット５２と、を備える。
【００４２】
更に、前記送信ユニットは更に、前記イーサリアムネットワーク内の事前設定されたノードと設定されていないノードに対して、それぞれノードによって維持されるチェーン上の最後のブロックの情報を取得するためのブロック情報取得要求を送信することに用いられ、図６に示すように、前記装置は、前記事前設定されたノードによって返された第１のブロック情報と前記設定されていないノードによって返された第２のブロック情報を受信するための受信ユニット６１を更に備え、前記処理ユニットは、前記第１のブロック情報内のヘッダー情報と前記第２のブロック情報内のヘッダー情報が同じであるかどうかを比較することに用いられ、前記第１のブロック情報内のヘッダー情報が前記第２のブロック情報内のヘッダー情報と同じである場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したと判定し、前記第１のブロック情報内のヘッダー情報が前記第２のブロック情報内のヘッダー情報とは異なる場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が失敗したと判定する。
【００４３】
本出願の他の実施形態においては、前記送信ユニットは更に、前記イーサリアムネットワーク内の設定されていないノードに対して、前記改ざんされたトランザクションの識別子が含まれるトランザクション情報要求を送信することに用いられ、前記受信ユニットは更に、前記設定されていないノードによって返された応答メッセージを受信するために用いられ、前記処理ユニットは更に、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれているかどうかを確認することに用いられ、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれている場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したと判定し、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれていない場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が失敗したと判定する。
【００４４】
本出願の実施例によれば、改ざんされたトランザクションを事前設定されたノードである「不良ノード」に送信することにより、「不良ノード」が改ざんされたトランザクションを使用してチェーン上のデータを改ざんして攻撃する効果をシミュレートし、更に、改ざんされたトランザクションが「正常ノード」である設定されていないノードによって受け入れられるかどうかを観察することで、コンセンサスアルゴリズムの耐タンパー性能の工学的検証が実現された。
【００４５】
図７は、本出願の実施例によるイーサリアムに基づく改ざんされたトランザクションの処理装置を示す構造概略図である。図７に示すように、前記装置７０は、改ざんされたトランザクションを受信するための受信ユニット７１と、前記改ざんされたトランザクションをブロックにパッケージ化して、前記改ざんされたトランザクションが含まれるブロックを取得するための処理ユニット７２と、前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するために、前記ブロックを自ノードが配置されているイーサリアムネットワーク内のすべてのノードにブロードキャストするための送信ユニット７３と、を備える。
【００４６】
更に、前記送信ユニットは更に、前記改ざんされたトランザクションを前記イーサリアムネットワーク内の事前設定されたノードにブロードキャストすることに用いられる。
【００４７】
更に、前記受信ユニットは更に、自ノードにブロードキャストされたブロックを受信し、該ブロック内のトランザクション情報を取得することに用いられ、前記処理ユニットは更に、該ブロック内のトランザクション情報が、自ノードによって維持されているチェーン上のトランザクション情報内に存在しているかどうかを判断することに用いられ、該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在している場合、該ブロックを破棄し、該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在していない場合、該ブロック内のヘッダー署名を取得し、前記ヘッダー署名におけるノード識別子が事前設定されたノード識別子内に存在するかどうかを判断し、前記ヘッダー署名におけるノード識別子が前記事前設定されたノード識別子内に存在する場合、該ブロックを自ノードによって維持されているチェーンにマージする。
【００４８】
上記の実施例により、改ざんされたトランザクションを事前設定されたノードに送信することで、いわゆる「不良ノード」によって改ざんされたトランザクションが含まれるブロックをブロードキャストする効果をシミュレートし、前記イーサリアムネットワークの「正常ノード」には「不良ノード」によって生成された改ざんされたトランザクションが含まれているかどうかを確認することで、チェーン上のデータの整合性と否認不可性に対する「不良ノード」が存在するイーサリアムネットワークのコンセンサスアルゴリズムの効果を検証できる。改ざんされたトランザクションが「正常ノード」から確認された場合、「不良ノード」と「正常ノード」は前記改ざんされたトランザクションについて合意に達し、「不良ノード」によって生成された前記改ざんされたトランザクションは「正常ノード」によって受け入れられ、それによって「不良ノード」によるチェーンデータへの攻撃が成功し、即ち、前記イーサリアムネットワークのコンセンサスアルゴリズムの耐タンパー性能が信頼できないことを意味している。逆に、「正常ノード」が「不良ノード」によって生成された前記改ざんされたトランザクションを受け入れておらず、攻撃が失敗し、即ち、前記イーサリアムネットワークのコンセンサスアルゴリズムの耐タンパー性能が信頼できることを意味する。
【００４９】
本出願の実施例は更に、記憶媒体であって、前記記憶媒体に命令が格納されており、前記命令がコンピュータに実行されると、コンピュータに上述した図１に示される実施例に記載のイーサリアムに基づく改ざんされたトランザクションの処理方法及び／又は上述した図３に示される実施例に記載のイーサリアムに基づく改ざんされたトランザクションの処理方法を実行させる記憶媒体を提供する。
【００５０】
本出願の実施例は、方法、システム、又はコンピュータプログラム製品として提供され得ることを当業者は理解すべきである。従って、本出願は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、又はハードウェアとソフトウェアを組み合わせた実施形態の形をとることができる。さらに、本出願は、コンピュータで使用可能なプログラムコードが含まれる１つ又は複数のコンピュータ使用可能記憶媒体（ディスク記憶装置、ＣＤ−ＲＯＭ、光学記憶装置などを含むが、これらに限定されない）に実装されるコンピュータプログラム製品の形態を取り得る。
【００５１】
本出願は、本出願の実施例による方法、装置（システム）及びコンピュータプログラム製品のフローチャート及び／又はブロック図を参照しながら説明された。フローチャート及び／又はブロック図の各フロー及び／又はブロック、並びにフローチャート及び／又はブロック図のフロー及び／又はブロックの組み合わせは、コンピュータプログラム命令によって実施できることを理解されたい。これらのコンピュータプログラム命令が汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、又はその他のプログラム可能なデータ処理装置のプロセッサに提供されることで機器を生成し、それによってコンピュータのプロセッサ又はその他のプログラム可能なデータ処理装置のプロセッサによって実行される命令が、フローチャートの１つ又は複数のフロー及び／又はブロック図の１つ又は複数のブロックで指定された機能を実現するための装置を生成する。
【００５２】
これらのコンピュータプログラム命令は、コンピュータ又は他のプログラム可能なデータ処理装置に特定の方法で動作するように指示できるコンピュータ可読メモリに格納することができ、それによって該コンピュータ可読メモリに格納された命令は命令実行装置を含む製品を生成し、該命令実行装置により、フローチャートの１つ又は複数のフロー及び／又はブロック図の１つ又は複数のブロックで指定された機能が実現される。
【００５３】
これらのコンピュータプログラム命令は、コンピュータ又はその他のプログラム可能な装置で一連の操作ステップを実行してコンピュータで実行される処理を生成するように、コンピュータ又はその他のプログラム可能なデータ処理装置にロードすることもでき、それによって、コンピュータ又はその他のプログラム可能な装置で実行される命令が、フローチャートの１つ又は複数のフロー及び／又はブロック図の１つ又は複数のブロックで指定された機能を実現するためのステップを提供する。
【００５４】
典型的な構成において、コンピューティングデバイスは、１つ又は複数のプロセッサ（ＣＰＵ）、入出力インターフェース、ネットワークインターフェース、及びメモリを含む。
【００５５】
メモリは、例えば、読み取り専用メモリ（ＲＯＭ）又はフラッシュＲＡＭ（ｆｌａｓｈ  ＲＡＭ）などのような、コンピュータ可読媒体内の非永続性メモリ、ランダムアクセスメモリ（ＲＡＭ）、及び／又は不揮発性メモリなどを含んでいてもよい。メモリは、コンピュータ可読媒体の一例である。
【００５６】
コンピュータ可読媒体は、永続性及び非永続性媒体、並びにリムーバブル及びノンリムーバブルメディアを含む任意の方法又は技術によって情報記憶を実現できるものである。情報は、コンピュータで読み取り可能な命令、データ構造、プログラムのモジュール、又はその他のデータであり得る。コンピュータの記憶媒体の例としては、コンピューティングデバイスがアクセスできる情報を格納するために使用できる、相変化メモリ（ＰＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、他の種類のランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、電気的に消去可能なプログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ又はその他のメモリテクノロジー、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタルバーサタイルディスク（ＤＶＤ）又はその他の光学記憶装置、磁気カセットテープ、磁気テープ・磁気ディスク記憶装置、又はその他の磁気記憶装置又はその他の如何なる非伝送媒体も含まれるが、それらに限定されない。本明細書で定義されるように、コンピュータ可読媒体は、例えば変調データ信号及び搬送波などの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｍｅｄｉａ）を含まない。
【００５７】
なお、「含む」、「含まれる」という用語又は他の如何なる変形は、非排他的包含を含むことを意図しており、一連の要素を含むプロセス、方法、商品又は装置は、これらの要素を含むだけでなく、明示的にリストされていない他の要素も含まれ、あるいはそのようなプロセス、方法、商品、又は装置に固有の要素も含まれる。さらなる限定がない限り、「１つ…を含む」という語句によって定義される要素は、その要素を含むプロセス、方法、商品、又は装置において他の同一の要素が存在することを排除するものではない。
【００５８】
本出願の実施例は、方法、システム、又はコンピュータプログラム製品として提供され得ることを当業者は理解すべきである。従って、本出願は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、又はハードウェアとソフトウェアを組み合わせた実施形態の形をとることができる。さらに、本出願は、コンピュータで使用可能なプログラムコードが含まれる１つ又は複数のコンピュータ使用可能記憶媒体（ディスク記憶装置、ＣＤ−ＲＯＭ、光学記憶装置などを含むが、これらに限定されない）に実装されるコンピュータプログラム製品の形態を取り得る。
【００５９】
以上は、あくまでも本出願の実施例に過ぎず、本出願を限定するものではない。当業者には、本出願に対して様々な変更及び変形を行うことができる。本出願の精神及び原理内で行われた如何なる補正、同等物及び置換、改善などもいずれも本出願の特許請求の範囲内に含まれるべきである。
【図１】
2020161112.tif 000003
【図２】
2020161112.tif 000004
【図３】
2020161112.tif 000005
【図４】
2020161112.tif 000006
【図５】
2020161112.tif 000007
【図６】
2020161112.tif 000008
【図７】
2020161112.tif 000009
【手続補正書】
【提出日】令和2年3月13日(2020.3.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
イーサリアムに基づく改ざんされたトランザクションの処理方法であって、
改ざんされたトランザクションが含まれるブロックをイーサリアムネットワーク内の事前設定されたノードによってイーサリアムネットワーク内のすべてのノードにブロードキャストするように、前記改ざんされたトランザクションを前記事前設定されたノードに送信するステップと、
前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するステップと、を含むことを特徴とするイーサリアムに基づく改ざんされたトランザクションの処理方法。
【請求項２】
前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するステップは、
前記イーサリアムネットワーク内の事前設定されたノードと設定されていないノードに対して、それぞれノードによって維持されるチェーン上の最後のブロックの情報を取得するためのブロック情報取得要求を送信することと、
前記事前設定されたノードによって返された第１のブロック情報と前記設定されていないノードによって返された第２のブロック情報を受信し、前記第１のブロック情報内のヘッダー情報と前記第２のブロック情報内のヘッダー情報が同じであるかどうかを比較することと、
前記第１のブロック情報内のヘッダー情報が前記第２のブロック情報内のヘッダー情報と同じである場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したと判定することと、
前記第１のブロック情報内のヘッダー情報が前記第２のブロック情報内のヘッダー情報とは異なる場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が失敗したと判定することと、を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するステップは、
前記イーサリアムネットワーク内の設定されていないノードに対して、前記改ざんされたトランザクションの識別子が含まれるトランザクション情報要求を送信することと、
前記設定されていないノードから返された応答メッセージを受信し、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれているかどうかを確認することと、
前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれている場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したと判定することと、
前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれていない場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が失敗したと判定することと、を含むことを特徴とする請求項１に記載の方法。
【請求項４】
イーサリアムに基づく改ざんされたトランザクションの処理方法であって、
改ざんされたトランザクションを受信し、前記改ざんされたトランザクションをブロックにパッケージ化して、前記改ざんされたトランザクションが含まれるブロックを取得するステップと、
前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するために、前記ブロックを自ノードが配置されているイーサリアムネットワーク内のすべてのノードにブロードキャストするステップと、を含むことを特徴とするイーサリアムに基づく改ざんされたトランザクションの処理方法。
【請求項５】
前記改ざんされたトランザクションを受信した後、前記方法は、
前記改ざんされたトランザクションを前記イーサリアムネットワーク内の事前設定されたノードにブロードキャストするステップを更に含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記ブロックを自ノードが配置されているイーサリアムネットワーク内のすべてのノードにブロードキャストした後、前記方法は、
自ノードにブロードキャストされたブロックを受信し、該ブロック内のトランザクション情報を取得するステップと、
該ブロック内のトランザクション情報が、自ノードによって維持されているチェーン上のトランザクション情報内に存在しているかどうかを判断するステップと、
該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在している場合、該ブロックを破棄するステップと、
該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在していない場合、該ブロック内のヘッダー署名を取得するステップと、
前記ヘッダー署名におけるノード識別子が事前設定されたノード識別子内に存在するかどうかを判断するステップと、
前記ヘッダー署名におけるノード識別子が前記事前設定されたノード識別子内に存在する場合、該ブロックを自ノードによって維持されているチェーンにマージするステップを更に含むことを特徴とする請求項４に記載の方法。
【請求項７】
イーサリアムに基づく改ざんされたトランザクションの処理装置であって、
改ざんされたトランザクションが含まれるブロックをイーサリアムネットワーク内の事前設定されたノードによってイーサリアムネットワーク内のすべてのノードにブロードキャストするように、前記改ざんされたトランザクションを前記事前設定されたノードに送信するための送信ユニットと、
前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するための処理ユニットと、を含むことを特徴とするイーサリアムに基づく改ざんされたトランザクションの処理装置。
【請求項８】
前記送信ユニットは更に、前記イーサリアムネットワーク内の事前設定されたノードと設定されていないノードに対して、それぞれノードによって維持されるチェーン上の最後のブロックの情報を取得するためのブロック情報取得要求を送信することに用いられ、
前記装置は、前記事前設定されたノードによって返された第１のブロック情報と前記設定されていないノードによって返された第２のブロック情報を受信するための受信ユニットを更に備え、
前記処理ユニットは、前記第１のブロック情報内のヘッダー情報と前記第２のブロック情報内のヘッダー情報が同じであるかどうかを比較することに用いられ、前記第１のブロック情報内のヘッダー情報が前記第２のブロック情報内のヘッダー情報と同じである場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したと判定し、前記第１のブロック情報内のヘッダー情報が前記第２のブロック情報内のヘッダー情報とは異なる場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が失敗したと判定することを特徴とする請求項７に記載の装置。
【請求項９】
前記送信ユニットは更に、前記イーサリアムネットワーク内の設定されていないノードに対して、前記改ざんされたトランザクションの識別子が含まれるトランザクション情報要求を送信することに用いられ、
前記装置は、前記設定されていないノードによって返された応答メッセージを受信するための受信ユニットを更に備え、
前記処理ユニットは更に、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれているかどうかを確認することに用いられ、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれている場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したと判定し、前記応答メッセージにおいて前記改ざんされたトランザクションの情報が含まれていない場合、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が失敗したと判定することを特徴とする請求項７に記載の装置。
【請求項１０】
イーサリアムに基づく改ざんされたトランザクションの処理装置であって、
改ざんされたトランザクションを受信するための受信ユニットと、
前記改ざんされたトランザクションをブロックにパッケージ化して、前記改ざんされたトランザクションが含まれるブロックを取得するための処理ユニットと、
前記イーサリアムネットワーク内のノードによって維持されるチェーン上の情報に基づいて、前記改ざんされたトランザクションによる前記イーサリアムネットワークへの攻撃が成功したかどうかを判定するために、前記ブロックを自ノードが配置されているイーサリアムネットワーク内のすべてのノードにブロードキャストするための送信ユニットと、を備えることを特徴とするイーサリアムに基づく改ざんされたトランザクションの処理装置。
【請求項１１】
前記送信ユニットは更に、前記改ざんされたトランザクションを前記イーサリアムネットワーク内の事前設定されたノードにブロードキャストすることに用いられることを特徴とする請求項１０に記載の装置。
【請求項１２】
前記受信ユニットは更に、自ノードにブロードキャストされたブロックを受信し、該ブロック内のトランザクション情報を取得することに用いられ、
前記処理ユニットは更に、該ブロック内のトランザクション情報が、自ノードによって維持されているチェーン上のトランザクション情報内に存在しているかどうかを判断することに用いられ、該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在している場合、該ブロックを破棄し、該ブロック内のトランザクション情報が自ノードによって維持されているチェーン上のトランザクション情報内に存在していない場合、該ブロック内のヘッダー署名を取得し、前記ヘッダー署名におけるノード識別子が事前設定されたノード識別子内に存在するかどうかを判断し、前記ヘッダー署名におけるノード識別子が前記事前設定されたノード識別子内に存在する場合、該ブロックを自ノードによって維持されているチェーンにマージすることを特徴とする請求項１０に記載の装置。
【請求項１３】
記憶媒体であって、
前記記憶媒体に命令が格納されており、前記命令がコンピュータに実行されると、コンピュータに請求項１〜３のいずれか１項に記載のイーサリアムに基づく改ざんされたトランザクションの処理方法及び／又は請求項４〜６のいずれか１項に記載のイーサリアムに基づく改ざんされたトランザクションの処理方法を実行させることを特徴とする記憶媒体。
【請求項１４】
コンピュータプログラムであって、
前記コンピュータプログラムがコンピュータに実行されると、コンピュータに請求項１〜３のいずれか１項に記載のイーサリアムに基づく改ざんされたトランザクションの処理方法及び／又は請求項４〜６のいずれか１項に記載のイーサリアムに基づく改ざんされたトランザクションの処理方法を実行させることを特徴とするコンピュータプログラム。
【外国語明細書】
Ｔｉｔｌｅ  ｏｆ  Ｉｎｖｅｎｔｉｏｎ
2020161112.tif 000010
2020161112.tif 000011
2020161112.tif 000012
2020161112.tif 000013
2020161112.tif 000014
2020161112.tif 000015
2020161112.tif 000016
2020161112.tif 000017
2020161112.tif 000018
2020161112.tif 000019
2020161112.tif 000020
2020161112.tif 000021
2020161112.tif 000022
2020161112.tif 000023
2020161112.tif 000024
2020161112.tif 000025
2020161112.tif 000026
2020161112.tif 000027
2020161112.tif 000028
2020161112.tif 000029
2020161112.tif 000030
2020161112.tif 000031
2020161112.tif 000032
Ｆｉｇｕｒｅ  １
2020161112.tif 000033
Ｆｉｇｕｒｅ  ２
2020161112.tif 000034
Ｆｉｇｕｒｅ  ３
2020161112.tif 000035
Ｆｉｇｕｒｅ  ４
2020161112.tif 000036
Ｆｉｇｕｒｅ  ５
2020161112.tif 000037
Ｆｉｇｕｒｅ  ６
2020161112.tif 000038
Ｆｉｇｕｒｅ  ７
2020161112.tif 000039