JP6905059B2 - リプレイ攻撃の検出のためのシステム及び方法 - Google Patents

リプレイ攻撃の検出のためのシステム及び方法 Download PDF

Info

Publication number
JP6905059B2
JP6905059B2 JP2019528022A JP2019528022A JP6905059B2 JP 6905059 B2 JP6905059 B2 JP 6905059B2 JP 2019528022 A JP2019528022 A JP 2019528022A JP 2019528022 A JP2019528022 A JP 2019528022A JP 6905059 B2 JP6905059 B2 JP 6905059B2
Authority
JP
Japan
Prior art keywords
identification
transaction
candidate transaction
time stamp
blockchain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019528022A
Other languages
English (en)
Other versions
JP2020505663A (ja
Inventor
コイルー シエ
コイルー シエ
Original Assignee
アドバンスド ニュー テクノロジーズ カンパニー リミテッド
アドバンスド ニュー テクノロジーズ カンパニー リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アドバンスド ニュー テクノロジーズ カンパニー リミテッド, アドバンスド ニュー テクノロジーズ カンパニー リミテッド filed Critical アドバンスド ニュー テクノロジーズ カンパニー リミテッド
Publication of JP2020505663A publication Critical patent/JP2020505663A/ja
Application granted granted Critical
Publication of JP6905059B2 publication Critical patent/JP6905059B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Telephonic Communication Services (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

この出願は、一般的には、リプレイ攻撃の検出のためのシステム及び方法に関する。
(プレイバック攻撃、フレッシュネス攻撃、中間者攻撃としても知られている)リプレイ攻撃は、有効なデータ送信が悪意を持って又は不正に繰り返される又は遅延されるネットワーク攻撃の形態である。これは、ノード(例えば、サーバ)に対する送信の発信元によって又はデータを盗む若しくはデータをノードに再送信する敵によって行われることがある。例えば、リプレイ攻撃は、インターネットプロトコル(IP)パケットの置き換えによる仮装攻撃の一部として行われる。リプレイ攻撃を説明する別の方法は、別のコンテキストから意図した(又は元の予測される)コンテキストへのメッセージのリプレイを用いるセキュリティプロトコルへの攻撃であり、これによって、プロトコルの実行の完了を成功したと(一つ以上の)オネストノード(honest node(s))が騙される。例えば、プロトコルは、ブロックチェーン取引プロトコルであってもよい。ブロックチェーンは、同一のアドレス、暗号鍵及び取引システムに従う二つ以上のサブチェーンに分岐してもよい。サブチェーンの合法的取引は、リプレイ攻撃によって他のサブチェーンで悪意を持って繰り返されることがあり、これによって、発信者にとっての損失が生じる。
ブロックチェーンが通常のネットワークに対する様々な利点に対して有利であるとしても、リプレイ攻撃を受けやすい。例えば、ブロックチェーンを通じてAからBに20イーサを送る取引は、継続的にAの残高から抜き出すリプレイ攻撃においてBによって繰り返される。したがって、リプレイ攻撃検出は、悪意を持ったブロックチェーン動作の回避及び個人財産の保管に重大である。
本願の種々の実施の形態は、リプレイ攻撃の検出のためのシステム、方法及び非一時的コンピュータ可読媒体を有する。
一態様によれば、リプレイ攻撃の検出のためのコンピュータで実施される方法は、ブロックチェーンに加えるための少なくとも一つの候補取引を取得することと、候補取引の識別が識別データベースに存在するか否かを確認し、識別データベースは、確認範囲内に複数の識別を備えることと、識別が識別データベースに存在しないという判断に応答して、候補取引がリプレイ攻撃に関連しないと判断することと、を備える。
一部の実施の形態において、取得した候補取引は、タイムスタンプを備え、候補取引の識別が識別データベースに存在するか否かを確認することは、タイムスタンプが確認範囲内に存在するか否か及び候補取引の識別が識別データベースに存在するか否かを確認することを備え、識別が識別データベースに存在しないという判断に応答して、候補取引がリプレイ攻撃に関連しないと判断することは、タイムスタンプが確認範囲内に存在するとともに識別が識別データベースに存在しないという判断に応答して、候補取引がリプレイ攻撃に関連しないと判断することを備える。
一部の実施の形態において、候補取引は、タイムスタンプと、取引情報と、を備える。少なくとも一つの候補取引を取得した後であるとともに候補取引の識別が識別データベースに存在するか否かを確認する前に、少なくともタイムスタンプ及び取引情報に基づいて、方法は、識別としての役割を果たすハッシュ値を決定することを更に備える。
一部の実施の形態において、候補取引は、タイムスタンプと、取引情報と、少なくともタイムスタンプ及び取引情報に基づいて決定されるとともに識別としての役割を果たすハッシュ値と、を備える。少なくとも一つの候補取引を取得した後であるとともに候補取引の識別が識別データベースに存在するか否かを確認する前に、方法は、少なくともタイムスタンプ及び取引情報に基づくハッシュ値を確認することによって識別を確認することを更に備える。
一部の実施の形態において、タイムスタンプは、少なくとも一つの候補取引を開始したユーザ端末によって構成され、ブロックチェーンに加えるための少なくとも一つの候補取引を取得することは、候補取引をユーザ端末から受け取ることを備える。
一部の実施の形態において、タイムスタンプは、ブロックチェーンノードによって構成され、ブロックチェーンに加えるための少なくとも一つの候補取引を取得することは、少なくとも一つの開始した取引をユーザ端末から受け取ることと、少なくとも一つの候補取引を取得するために開始した取引にタイムスタンプを付与することと、を備える。
一部の実施の形態において、方法は、タイムスタンプが確認範囲内に存在するとともに識別が識別データベースに存在しないという判断に応答して、識別を識別データベースに加えることを更に備える。
一部の実施の形態において、方法は、タイムスタンプが確認範囲内に存在するとともに識別が識別データベースに存在しないという判断に応答して、候補取引を、候補取引を記憶するためのキャッシュメモリに加えることを更に備える。
一部の実施の形態において、方法は、タイムスタンプが確認範囲内に存在しないという判断に応答して、エラーメッセージを、候補取引を提示したコンピュータデバイスに返すことを更に備える。
一部の実施の形態において、方法は、識別が識別データベースに存在するという判断に応答して、候補取引がリプレイ攻撃に関連すると判断することを更に備える。
一部の実施の形態において、方法は、コンセンサス確認を行うことを更に備え、候補取引は、候補取引がリプレイ攻撃に関連しないと判断された場合にコンセンサス確認に含まれる。
一部の実施の形態において、方法は、識別データベースを一つ以上の他のブロックチェーンに同期させることと、タイムスタンプが確認範囲内に存在するか否か及び候補取引の識別が同期した識別データベースに存在するか否かを確認することと、タイムスタンプが確認範囲内に存在するとともに識別が識別データベースに存在しないという判断に応答して、候補取引がリプレイ攻撃に関連しないと判断することと、候補取引の識別が同期した識別データベースに存在するという判断に応答して、候補取引がリプレイ攻撃に関連すると判断することと、を更に備える。
一部の実施の形態において、少なくとも一つの候補取引を取得する前に、方法は、識別データベースを一つ以上の他のブロックチェーンに同期させることを更に備える。
一部の実施の形態において、識別データベースは、確認範囲に対応する最近の期間内のタイムスタンプを有する取引の情報を備える。
一部の実施の形態において、確認範囲は、ブロックチェーンの最後のブロックの他のタイムスタンプに基づき、確認範囲は、ブロックチェーンの起源ブロックに含まれる。
一部の実施の形態において、確認範囲は、タイムスタンプが確認範囲内にあるか否かの確認を行うブロックチェーンノードの内部クロックに基づく。
他の態様によれば、リプレイ攻撃の検出のためのシステムは、一つ以上のプロセッサ及び一つ以上のプロセッサに結合された一つ以上の非一時的コンピュータ可読記憶媒体を備え、一つ以上の非一時的コンピュータ可読記憶媒体は、ブロックチェーンに加えるための少なくとも一つの候補取引を取得することと、候補取引の識別が識別データベースに存在するか否かを確認し、識別データベースは、確認範囲内に複数の識別を備えることと、識別が識別データベースに存在しないという判断に応答して、候補取引がリプレイ攻撃に関連しないと判断することと、を備える動作をシステムによって実行させるために一つ以上のプロセッサによって実行可能な命令を有するように構成される。
他の態様によれば、非一時的コンピュータ可読記憶媒体は、ブロックチェーンに加えるための少なくとも一つの候補取引を取得することと、候補取引の識別が識別データベースに存在するか否かを確認し、識別データベースは、確認範囲内に複数の識別を備えることと、識別が識別データベースに存在しないという判断に応答して、候補取引がリプレイ攻撃に関連しないと判断することと、を備える動作を一つ以上のプロセッサによって実行させるために一つ以上のプロセッサによって実行可能な命令を有するように構成される。
ここに開示したスステム、方法及び非一時的コンピュータ可読記憶媒体のこれらの特徴及び他の特徴並びに動作の方法及び構造の関連の素子及び製造のパーツ及び経済性の組合せの機能は、添付図面を参照することにより以下の説明及び添付した特許請求の範囲の考察から更に明らかになり、その全ては、明細書の一部を形成し、同様な参照願号を種々の図面の対応する部分に付す。しかしながら、図面が図示及び説明のみのためのものであるとともに発明の限定を規定することを意図しないことを明示的に理解すべきである。
本技術の種々の実施の形態の所定の特徴を、特に、添付した特許請求の範囲で説明する。技術の特徴及び利点の更なる理解は、発明の原理を利用する理解を助ける実施の形態を説明する以下の詳細な説明及び図面を参照することによって得られる。
種々の実施の形態によるリプレイ攻撃の検出のための例示的なシステムを示す。 種々の実施の形態によるリプレイ攻撃検出が行われる例示的な取引を示す。 種々の実施の形態によるリプレイ攻撃の検出のための例示的な方法のフローチャートである。 種々の実施の形態によるリプレイ攻撃の検出のための例示的な方法のフローチャートである。 種々の実施の形態によるリプレイ攻撃の検出のための例示的な方法のフローチャートである。 種々の実施の形態によるリプレイ攻撃の検出のための例示的なコンピュータシステムのブロック図を示す。 種々の実施の形態によるリプレイ攻撃の検出のための例示的なコンピュータシステムのブロック図を示す。 ここで説明する実施の形態のいずれかを実現することができる例示的なコンピュータシステムのブロック図を示す。
ブロックチェーンを、一般的に分散型台帳と称される分散データベースと見なしてもよい。その理由は、動作がネットワークの種々のノード(例えば、コンピュータデバイス)によって実行されるからである。あらゆる情報をブロックチェーンに書き込むとともにブロックチェーンへの保存又はブロックチェーンからの読出しを行ってもよい。ノードは、例えば、ブロックチェーンネットワークをサポートするとともにブロックチェーンネットワークの運営を円滑に保つコンピュータデバイス又は大型コンピュータシステムである。各ノードは、ブロックチェーンの機能の一部又は全てを提供してもよい。例えば、コンセンサス確認を行うノードを、コンセンサス参加ノード(又はコンセンサスノード)と称してもよい。
種々の実施の形態において、コンセンサスは、一般的に受け入れられる処理結果を実現するためのブロックチェーンノードのネットワークの規則のアルゴリズムであってもよい。例えば、ブロックチェーンノードは、ネットワークラグのために異なる順序で取引を受け取ってもよく、その問題を、コンセンサスによって取り組んでもよい。一例において、「プルーフオブワーク」コンセンサスシステムの下で、ブロックチェーンノードは、ブロックチェーンのブロック及び受け取る報酬を確認するためにハードウェア又は計算能力を適用するマイナーの装置を備えてもよい。プルーフオブワークを生成することは、有効なプルーフオブワークが生成される前に概して多くの試行錯誤を必要とするために低い可能性を有するランダムなプロセスとなることがある。ビットコイン(登録商標)は、ハッシュキャッシュ(Hashcash)プルーフオブワークシステムを用いる。他の例において、「プルーフオブステーク/サービス」コンセンサスシステムの下では、所定のレベルの議決権を有するブロックチェーンノードを、非コンセンサスノードとは対照的に、取引確認の責任を引き受けるコンセンサス/マスタ/プライマリノードと称してもよい。コンセンサスノードは、新たなブロックチェーンブロックを生成するとともに、例えば、ブロックチェーンのサービス料を設定するブロックチェーンに代わって決定を下すことができる。コンセンサスノードは、多量の暗号通貨に関連するとともに互いに合意した所定のコンセンサス規則に基づいて新たな取引を確認してもよい。コンセンサスノードを決定する規則に基づいて、プルーフオブステーク/サービスコンセンサスシステムを、チェーンベースのプルーフオブステーク/サービスコンセンサスシステム、ビサンチンフォールトトレランスアルゴリズム(BFT)プルーフオブステーク/サービスコンセンサスシステム等として実現してもよい。本明細書において、開示したブロックチェーンシステム又は他のブロックチェーンシステムのフルノード、コンセンサスノード又は他の同等のノードは、取引をブロックチェーンノードとして確認することができる。例えば、ブロックチェーンシステムは、パブリックブロックチェーン、コンソーシアムブロックチェーン、プライベートブロックチェーン等を備えてもよい。
UTXO(未使用トランザクションアウトプット)モデルとは異なり、イーサリアムは、大域状態(global state)としての各勘定残高を追跡し続ける(アカウントベース取引モデルとも称される)勘定残高モデルに基づく。取引中、勘定残高は、勘定残高が使用される取引金額以上であることを確実にするためにチェックされる。勘定残高モデルがイーサリアムで作動する方法の一例を提供する。
1.アリスは、マイニングによって5イーサを獲得する。アリスが5イーサを有することがシステムに記録される。
2.アリスがボブに1イーサを与えることを所望し、システムは、アリスの預金額から1イーサを差し引き、したがって、アリスは、4イーサを有する。
3.その後、システムは、ボブの預金額を1イーサだけ増やす。システムは、ボブが最初に2イーサを有することを知っており、したがって、ボブの預金額は、3イーサに増える。
勘定残高モデルの下では、ブロックチェーンノードは、イーサ取引の全てに加えて各スマートコントラクトの最近の状態を記憶する。各イーサリアムアプリケーションに対して、ネットワークは、アカウントナンス、各ユーザの残高、全てのスマートコントラクトコード(例えば、2進コード)及び(例えば、ハッシュを記憶するための)記憶領域を含む「状態」又は現在の情報を記録してもよい。
以前の取引から使用されていない量として利用できる残高を規定することによってリプレイ攻撃又は二重支払いを防止するUTXOモデルとは異なり、勘定残高モデルは、リプレイ攻撃を確かめるための機構としてアカウントナンスを用いる。アカウントナンスは、リプレイ攻撃を防止するための各口座の取引カウンタである。アカウントナンスとプルーフオブワークナンスの両方が勘定残高モデルに存在することがあるとしても、アカウントナンスを、プルーフオブワークコンセンサスシステムのプルーフオブワークナンスと区別することができ、プルーフオブワークナンスは、UTXOモデルの下でプルーフオブワーク条件を満たすことを試みるために調整することができるブロックの意味のない値である。勘定残高モデル(プルーフオブステーク/サービスシステム)を最も参照して説明したが、開示したシステム及び方法は、勘定残高モデル(例えば、イーサリアムシステム)の下での応用に限定されない。
リプレイ攻撃は、しばしば、所定の資産を二重払いすることによって違法に利益を得るために用いられる。二重払いを「成功させる」ために、悪意あるユーザは、典型的には、取引をある関係者に送り、関係者が手続を行うのを待機し、この第1の取引から返ってくるものを収集し、高いガス価格(gas price)(イーサリアムでの計算の価格)を有する他の取引を迅速に送り、最初の取引を無効にする最初にマイニングされた第2の取引を有する。第2の取引は、しばしば、一部の変更(例えば、時間、ガス価格、受信者又は送信者によって構成される他のパラメータ)を有する第1の取引の複製である。第2の取引は、第1の取引と同一の識別(例えば、ハッシュ)を用いてもよい。高いガス価格が、第2の取引を最初にマイニングするマイナーに影響を及ぼすので、第1の取引の前にマイニングされた第2の取引を有することによって、悪意のあるユーザは、第2の取引を実行しながら第1の取引からの利益(return)を保持できるようになることがあり、したがって、二重払いを実現する。アカウントナンスの使用は、この問題を除去することを意図する。
イーサリアムで取引を行うとき、連続番号が、アカウントナンスとして同一の口座の各取引に付される。したがって、アカウントナンスは、所定の口座アドレスから送られた取引の数を表してもよい。アカウントナンスは、ノードを含むブロックチェーンネットワークによって維持される。各ノードは、アカウントナンスの値に従って特定の口座からの取引を厳密に処理する。したがって、アカウントナンス値を正確に増分し損なう結果として、種々のエラーが生じる。例えば、最近のアカウントナンスが121であると仮定すると、口座の所有者が、(アカウントナンスの再使用を試みようとして)121以下のアカウントナンスの同一の口座に対する新たな取引を送る場合、ノードは、取引を拒否する。同一の仮定の下で、口座の所有者が、123以上のアカウントナンスの新たな取引を送る場合、取引は、このギャップが埋まるまで、すなわち、アカウントナンス122の取引が処理されるまで処理されない。
背景技術で説明したように、リプレイ攻撃検出は、悪意を持ったブロックチェーン動作の回避及び個人財産の保管に重大である。ブロックチェーンが分散型コンセンサス確認に有利であるとしても、リプレイ攻撃を受けやすい。特に、アカウントナンス機構は、所定の不都合又は欠陥を有する。例えば、取引を開始するために、ユーザ端末は、最初に、ブロックチェーンノードからアカウントナンスを取得する必要があり、これによって、通信負荷(communication burden)がブロックチェーンノードに課される。他の例として、アカウントナンス機構は、以下のような複数の状況に対して信頼性がない。状況(1)において、口座は、同一の取引手数料の第1の取引及び次に行われる第2の取引を同一のブロックチェーンノードに送る。しかしながら、順序不同のネットワークデータパケット伝送のために第1の取引の前に第2の取引を受け取る場合、ブロックチェーンノードは、第2の取引を行った後に第1の取引を行い、これによって、アカウントナンス機構に従わないことによる両方の取引の実行の失敗が生じる。状況(2)において、口座は、第1の取引及び次に行われる第2の取引を同一のブロックチェーンノードに送り、第2の取引は、更に高い取引手数料を有する。利益を最大にするために、ブロックチェーンノードは、第2の取引を優先的に行った後に第1の取引を行うようにプログラムされることがあり、これによって、アカウントナンス機構に従わないことによる両方の取引の実行の失敗が生じる。状況(3)において、口座は、種々のユーザ端末から並列に種々の取引を送るが、これらの取引は、同一のアカウントナンス値を有する。その結果、取引のうちの最大でも一つしか処理が成功しない。
現在の技術の欠陥を少なくとも軽減し、上述した技術的課題の技術的解決を提供し、かつ、コンピュータ機能を向上させるために、リプレイ攻撃の検出のためのシステム及び方法を開示する。後に議論するように、種々の実施の形態において、タイムスタンプ確認及び取引識別確認の組合せを、安定したリプレイ攻撃の検出を実現するためにアカウントナンスの使用に取って代わるために用いることができる。したがって、悪意のある取引を、公正な取引から適時に識別するとともに廃棄することができる。
図1は、種々の実施の形態による種々の開示したステップ及び方法を実施する例示的なシステム100を示す。図示したように、ブロックチェーンネットワークは、複数のブロックチェーンノード(例えば、ノード1、ノード2、ノード3、ノード4、ノードi等)を備えてもよい。ブロックチェーンノードは、通信を行う一つのブロックチェーンノードを有するネットワーク(例えば、ピアツーピアネットワーク)を形成してもよい。図示したようなブロックチェーンノードの順番及び数は、単なる例示であり、説明のために簡単化している。ブロックチェーンノードを、サーバ、コンピュータ等で実現してもよい。各ブロックチェーンノードは、TCP/IPのような種々のタイプの通信方法によって互いに結合された一つ以上の物理的はハードウェアデバイス又は仮想的なデバイスに対応してもよい。分類に応じて、ブロックチェーンノードは、フルノード、Gethノード、コンセンサスノード等を備えてもよい。
種々の実施の形態において、ユーザA及びユーザBは、ブロックチェーンコントラクト(例えば、スマートコントラクト)に関与する又は関与しない取引をブロックチェーンノードに行わせるためにラップトップ及び携帯電話のような対応する装置を用いてもよい。一例において、ユーザAは、ユーザAの口座の一部の資産をユーザBの口座に移すことによってユーザBとの取引を所望してもよい。ユーザA及びユーザBは、取引の開始、進行又はアクセスを行うために適切なブロックチェーンソフトウェア(例えば、暗号通貨ウォレット)がインストールされた(ユーザ端末とも称される)対応するデバイスノードA及びデバイスノードBを用いてもよい。ユーザAのデバイスノードAを、着信者ノードと称されるユーザBのデバイスノードBとの取引を開始する開始ノード称してもよい。ノードAは、ノード1との通信を介してブロックチェーンにアクセスしてもよく、ノードBは、ノード2との通信を介してブロックチェーンにアクセスしてもよい。ノードA、ノードB又は同様のノードは、取引をブロックチェーンに加えることを要求するためにノード1、ノード2又は同様のノードを介してブロックチェーンに取引を提示してもよい。ブロックチェーンをオフにすることによって、ノードA及びノードBは、通信の他のチャネル(例えば、ノード1及びノード2を介することのない通常のインターネット通信)を有してもよい。一部の実施の形態において、ノードAのブロックチェーンソフトウェアを、ブロックチェーンノード1のフロントエンドとみなしてもよく、ブロックチェーンノード1は、ブロックチェーンソフトウェアのバックエンドを実行する。
図1のノードの各々は、プロセッサと、ここで説明するリプレイ攻撃の検出のための種種の動作をノード(例えば、プロセッサ)によって実行させるためにプロセッサによって実行可能な命令を有するように構成された非一時的コンピュータ可読記憶媒体を備える。各ノードは、他のノード及び/又は他の装置と通信を行うためにソフトウェア(例えば、取引プログラム)及び/又はハードウェア(例えば、有線、無線接続)がインストールされてもよい。例えば、ノードA及びノードBのようなユーザ装置に暗号通貨ウォレットのようなユーザエンドソフトウェアをインストールしてもよく、ブロックチェーンノードにブロックチェーン取引処理ソフトウェアをインストールしてもよい。ノードハードウェア及びソフトウェアの更なる詳細を、図5〜7を参照しながら後に説明する。
ブロックチェーンノードはそれぞれ、メモリを備えてもよい又はメモリに結合してもよい。一部の実施の形態において、メモリは、プールデータベースを格納してもよい。プールデータベースは、分散して複数のブロックチェーンノードにアクセス可能であってもよい。例えば、プールデータベースはそれぞれブロックチェーンノードのメモリに格納されてもよい。プールデータベースは、ユーザによって操作されるノードA及びノードBのような一つ以上のユーザ装置によって提示される複数の取引を記憶してもよい。イーサリアムシステムに関連する一部の実施の形態において、未確認の取引の取引要求を受け取った後、着信者ブロックチェーンノードは、取引の一部の予備確認を行ってもよい。例えば、図1を参照すると、ノード1は、ノードAからの取引を受け取った後に予備確認を行ってもよい。一旦確認が行われると、取引を、着信者ブロックチェーンノードのプールデータベースに記憶してもよく、着信者ブロックチェーンノードは、取引を一つ以上の他のブロックチェーンノード(例えば、ノード3、ノード4)に送ってもよく、他のブロックチェーンノードは、着信者ノードによって行われる処理を繰り返す。一旦対応するプールデータベースの取引が所定のレベルに到達すると、ブロックチェーンノードはそれぞれ、コンセンサス規則又は他の方法に従う対応するプールデータベースの取引のバッチを確認してもよい。取引がブロックチェーンコントラクトに関与する場合、ブロックチェーンノードは、ブロックチェーンコントラクトをローカルに実行してもよい。(例えば、コンセンサス規則に従う)取引のバッチの確認に成功する所定のブロックチェーンノードは、ブロックチェーンのローカルコピーを加えるとともに結果を他のブロックチェーンノードに分散させるために取引をパックしてもよい。所定のブロックチェーンノードは、最初の確認の成功を完了するもの、取得される確認権限(verification priviledge)を有するもの又は他のコンセンサス規則に基づいて決定されるものであってもよい。他のブロックチェーンノードは、取引をローカルに行い、(例えば、ハッシュ計算を行うことによって)実行結果を互いに確認し、ブロックチェーンのコピーを所定のブロックチェーンノードのコピーに同期させてもよい。ブロックチェーンのローカルコピーを更新することによって、ブロックチェーンノードは、そのような情報をローカルメモリに書き込んでもよい。確認をある時点で失敗した場合、取引は拒否される。
図2は、種々の実施の形態によるリプレイ攻撃検出を行う例示的な取引を示す。
一部の実施の形態において、開始ノードは、アドレス3df53hの口座(口座A)からアドレス45wqr1の口座(口座B)への2イーサの取引Xを開始する。取引前に、口座Aは、10イーサを有し、口座Bは、1イーサを有する。取引Xを、開始ノード(例えば、コンピュータ、携帯電話)によってブロックチェーンノード(例えば、フルノード)に提示してもよい。例えば、取引Xが開始ノードによってブロックチェーンノードを介して提示されたとき、取引Xがブロックチェーンノードによって提示されたとき又は取引Xがコンセンサス確認を行う他のブロックチェーンノードによって受け取られたとき、取引Xをタイムスタンプに関連させてもよい。取引Xを、取引Xが確認されるとともにブロックチェーンに加えられる前の候補取引と称してもよい。ブロックチェーンノードは、候補取引Xを他の候補取引と共にプールデータベースに保存してもよい。ブロックチェーンノードは、取引Xの識別(例えば、ハッシュ)を識別データベース(例えば、ハッシュテーブル)に保存してもよい。
一部の実施の形態において、複数のブロックチェーンノードは、コンセンサス規則に従ってプールデータベースの候補取引を確認してもよい。例えば、ブロックチェーンノードは、送金する口座が十分な資金を有するか否か、送金する関係者及び受け取る関係者が取引を承認したか否か、取引口座が許可された範囲内にあるか否か等を確認してもよい。コンセンサス確認によって、ブロックチェーンノードは、識別データベースに記憶された取引の全ての識別を含むために識別データベースを同期させてもよい。例えば、識別データベースはそれぞれ、所定の最近の期間の取引を記憶してもよい。リプレイ攻撃検出のために、ブロックチェーンノードは、タイムスタンプが最近の期間内にあるか否かを確認し、タイムスタンプが最近の期間内にある場合に、識別データベースに対する候補取引をリプレイ攻撃から守ってもよい。
タイムスタンプ確認及び識別確認を、コンセンサス確認後に1回行ってもよい又はコンセンサス確認前及びコンセンサス確認後の2回行ってもよい。コンプライアンスを満たす場合、ブロックチェーンノードは、確認した候補取引を、ブロックチェーンに加えるために新たなブロックにパックしてもよい。したがって、取引Xがブロックチェーンに加えられたときに、2イーサを口座Bに移す口座Aの取引Xが認識される。
図3は、種々の実施の形態によるリプレイ攻撃検出のための例示的なステップ300を示す。ステップ300を、図1のシステム100の一つ以上の構成要素(例えば、ノードA、ノード1、ノードAとノード1との組合せ、ノード2、ノードi)によって実現してもよい。後に示す動作は、説明を意図したものである。実現に応じて、例示的なステップ300は、種々の順番で又は並列に実行される追加のステップ、更に少ないステップ又は代替的なステップを有してもよい。
種々の実施の形態において、上述したように、タイムスタンプが、例えば、勘定残高モデルの下で取引に付与される。一例において、取引開始ノード(例えば、図1のノードA)又は代替的なユーザ端末は、確認のためにブロックチェーンノードの未確認取引の提示にタイムスタンプ(例えば、タイムスタンプパラメータ)を付与してもよい。代替的には、未確認取引を受け取るブロックチェーンノード(例えば、図1のノード1)は、タイムスタンプを付与してもよい。タイムスタンプは、種々のレベル(例えば、ミリ秒レベル)で正確となることができる。タイムスタンプの精度を上げるに従って、開示したシステム及び方法は、単位時間内に一つの口座によって開始される更に多くの取引をサポートすることができる。例えば、タイムスタンプが10ミリ秒で正確である場合、開示したシステム及び方法は、リプレイ攻撃として意図されたものを阻止しながら100の互いに異なるユーザ端末にログオンされた同一の口座によって開始される最大で約100の互いに異なる取引をサポートすることができる。
一部の実施の形態において、確認範囲を、アカウントナンスの上述した不都合を少なくとも克服するために用いてもよい。確認範囲は、最近の取引がリプレイ攻撃から守られた時間窓である。確認範囲を、例えば、最近のブロックのタイムスタンプがブロックチェーンで広く受け入れられた後のブロックチェーンの最近のブロックのタイムスタンプからの期間内で世界基準に関連して規定してもよい。例えば、ブロックチェーンの最近のブロックを2018年6月8日の8時42分44秒の北京時間に加えてもよく、確認範囲を、当該時間の2時間前及び/又は2時間後としてもよい。コンセンサス確認の前に、(例えば、内部クロックに基づく)ノードの現地時間を代替的に用いてもよい。コンセンサス確認の前後に、ノードの内部クロックが世界基準に略一致する場合、ノードの現地時間を代替的に用いてもよい。有効範囲を、リプレイ攻撃検出を効果的に持続するのに十分長くするとともにデータ記憶要求を制限するのに十分短くすることができる。有効範囲を、各ブロックノードが同一の確認範囲に合意するとともに用いることを確実にするためにブロックチェーンの起源ブロック(初めてのブロック)に含めてもよい。確認範囲を用いることによって、リプレイ攻撃検出は、開始ノードの時間とブロックチェーンノードの時間の間の同期も互いに異なるブロックチェーンノードの間のシステム時間の間の同期も必要としない。また、ブロックチェーンノードは、異なる時間で同一の候補取引を確認するとともに同一の結果を取得してもよい。
一部の実施の形態において、ブロックチェーンノードは、候補取引を受け取ると、確認範囲に基づいて候補取引のタイムスタンプを確認してもよい。タイムスタンプの確認が成功するとともにリプレイ攻撃が検出されない場合、ブロックチェーンノードは、確認範囲の候補取引の識別を記憶してもよい。例えば、ブロックチェーンノードは、確認した取引のハッシュをブロックチェーンノードのメモリ(例えば、キャッシュメモリ)の取引ハッシュテーブルに記憶させてもよい。キャッシュメモリへの記憶によって、取引ハッシュテーブルからの迅速なデータの問合せが可能になり、したがって、全体的な取引効率が上がる(例えば、1秒ごとの取引の数が増加する)。記憶されるハッシュテーブルは、確認範囲に対応する最近の期間(例えば、最近の2時間)内の情報を記憶してもよい。確認範囲を与えることによって、ブロックチェーンノードは、もはやブロックチェーン全体に対するリプレイ攻撃を調べる必要がなく、リプレイ攻撃を調べることは、しばしば、ハードディスクから調べることによって長時間を要し、ブロックチェーンに継続的に加えられるブロックが増加する。それに対し、確認範囲から収集した情報に対応するキャッシュメモリから調べることは、リプレイ攻撃検出の効率を著しく上げることができる。ステップの概要を以下で説明する。
ステップ301において、ブロックチェーンノードは、確認のために開始ノードによって提示されるとともにブロックチェーンに加えられる候補取引を取得してもよい。ステップ302において、ブロックチェーンノードは、取引タイムスタンプを確認してもよい。確認が成功した場合、ステップ303を実行し、ブロックチェーンノードは、候補取引の取引ハッシュがハッシュテーブルに存在するか否かを判断する。ハッシュテーブルは、確認範囲に対応する期間中の全ての取引のハッシュを記憶してもよい。候補取引の取引ハッシュがハッシュテーブルに既に存在する場合、候補取引がリプレイ攻撃に関するものであることを表し、確認が失敗する。それに対し、ステップ304で確認が成功すると、ステップ305において、ブロックチェーンノードは、取引ハッシュをハッシュテーブルに保存する。ステップ302の確認が失敗した場合、ステップ306を実行し、エラーメッセージを、取引を提示したユーザ端末に返す。ステップ303の判断が失敗である場合、ステップ306を実行し、最古のタイムスタンプを有する取引は、真正の取引として取り扱われ、後の全ての取引は、潜在的なリプレイ攻撃とみなされ、廃棄される。後の取引のハッシュをハッシュテーブルから除去してもよい。
一部の実施の形態において、各ノードによって(コンセンサス規則に従う取引を確認する)取引のマイニングを開始できるようにするコンセンサス合意に対して、リプレイ攻撃は、種々のブロックチェーンノードをターゲットとすることがあり、ターゲットにされたブロックチェーンノードは、コンセンサス規則に従う取引の確認を行う前に脅威を検出することができない。したがって、ブロックチェーンノードがコンセンサス規則に従う取引の確認を行った後に、ブロックチェーンノードは、ハッシュテーブルの完全な情報を取得するとともにリプレイ攻撃から守るためにステップ302〜305を実行することができる。したがって、ステップ302〜305を、ブロックチェーンノードがコンセンサス規則に従う取引の確認を行った後に実行してもよい。しかしながら、ステップ302〜305を、ブロックチェーンノードがコンセンサス規則に従う取引の確認を行う前に実行してもよい。取引の確認の前にステップ302〜305を実行することによって、潜在的なリプレイ攻撃を事前に除去することができる。すなわち、ステップ302〜305を、(1)コンセンサス規則に従う取引の確認を行う前とコンセンサス規則に従う取引の確認を行った後の両方で実行してもよい又は(2)コンセンサス規則に従う取引の確認を行った後に実行してもよい。ステップ302〜305を1回行うか2回行うかに関係なく、ステップ302及びステップ3030を、結果に影響を及ぼすことなく任意の順番で実行してもよい。
図4Aは、本開示の種々の実施の形態による情報保護のための例示的な方法400のフローチャートを示す。方法400を、図1のシステム100の一つ以上の構成要素(例えば、ノード1、ノードAとノード1の組合せ、ノード2,...,ノードi)によって実施してもよい。方法400を、一つ以上のブロックチェーンノードによって実施してもよい。方法400を、システム又は装置(例えば、コンピュータ、サーバ)によって実施してもよい。システム又は装置は、一つ以上のプロセッサと、一つ以上のプロセッサに結合された一つ以上の非一時的コンピュータ可読媒体とを備え、非一時的コンピュータ可読媒体は、システム又は装置(例えば、プロセッサ)によって方法400を実施させるために一つ以上のプロセッサによって実行可能な命令を有するように構成される。実現に応じて、方法400は、種々の順番で又は並列に実行される追加のステップ、更に少ないステップ又は代替的なステップを有してもよい。
ブロック441は、ブロックチェーンに加えるための少なくとも一つの候補取引を取得し、取得した候補取引は、タイムスタンプを備えることを備える。
ブロック442は、タイムスタンプが確認範囲内に存在するか否か及び候補取引の識別(例えば、ハッシュ値又は代替的な識別)が識別データベース(例えば、ハッシュテーブル)に存在するか否かを確認することを備える。
ブロック443は、タイムスタンプが確認範囲内に存在するとともに識別が識別データベースに存在しないという判断に応答して、候補取引がリプレイ攻撃に関連しないと判断することを備える。
後に説明する方法450の種種の用語、実施の形態及び例を方法400に同様に適用してもよい。
図4Bは、本開示の種々の実施の形態による情報保護のための例示的な方法450のフローチャートを示す。方法450を、図1のシステム100の一つ以上の構成要素(例えば、ノード1、ノードAとノード1の組合せ、ノード2,...,ノードi)によって実施してもよい。方法450を、一つ以上のブロックチェーンノードによって実施してもよい。方法450を、システム又は装置(例えば、コンピュータ、サーバ)によって実施してもよい。システム又は装置は、一つ以上のプロセッサと、一つ以上のプロセッサに結合された一つ以上の非一時的コンピュータ可読媒体とを備え、非一時的コンピュータ可読媒体は、システム又は装置(例えば、プロセッサ)によって方法450を実施させるために一つ以上のプロセッサによって実行可能な命令を有するように構成される。実現に応じて、方法450は、種々の順番で又は並列に実行される追加のステップ、更に少ないステップ又は代替的なステップを有してもよい。
ブロック451は、ブロックチェーンに加えるための少なくとも一つの候補取引を取得することを備える。取得した候補取引は、タイムスタンプを備えてもよい。一部の実施の形態において、ブロックチェーンは、勘定残高モデル(例えば、イーサリアムシステム、実用ビサンチンフォールトトレランス(PBFT)システムのようなBFTシステム、ハニーバジャー又はハッシュグラフシステム)に基づいてもよいが、開示したシステムは、リプレイ攻撃の検知のための(存在する場合の)アカウントナンスの使用に取って代わる。
一部の実施の形態において、取得した候補取引は、タイムスタンプを備える。候補取引は、タイムスタンプと、取引情報と、少なくともタイムスタンプ及び取引情報に基づいて決定されるとともに識別としての役割を果たすハッシュ値と、を備える。少なくとも一つの候補取引を取得した後であるとともに候補取引の識別が識別データベースに存在するか否かを確認する前に、方法は、少なくともタイムスタンプ及び取引情報に基づくハッシュ値を確認することによって識別を確認することを更に備える。例えば、候補取引は、タイムスタンプ、起点(取引発信者アドレス)、宛先(取引着信者アドレス)、価値(取引アイテム)、データ(存在する場合のブロックチェーンコントラクト)、取引の支払い(例えば、ガスリミット(Gas Limit)、ガス価格)、ハッシュ値(取引の固有の識別として用いるためのハッシュ値)及び/又は他の情報(例えば、署名(発信者による承認の証明))のような一つ以上のパラメータを備えてもよい。そのようなパラメータを、取引構造体と集合的に称してもよい。タイムスタンプ(及び署名)以外に含まれるパラメータを取引情報と称してもよい。ハッシュ値を、例えば、タイムスタンプ及び取引情報を入力としてとるハッシュ関数を使って、取引情報に基づいて(例えば、候補取引を開始したノードAのようなノードによって)決定してもよい。少なくともタイムスタンプ及び取引情報に基づいてハッシュ値を確認するために、候補取引を取得するブロックチェーンノード(例えば、ノード1)は、ハッシュ値をチェックするために入力を有するハッシュ関数を再計算してもよい。
一部の実施の形態において、候補取引は、タイムスタンプと、取引情報と、を備える。少なくとも一つの候補取引を取得した後であるとともに候補取引の識別が識別データベースに存在するか否かを確認する前に、少なくともタイムスタンプ及び取引情報に基づいて、方法は、識別としての役割を果たすハッシュ値を決定することを更に備える。例えば、候補取引は、タイムスタンプ、起点、宛先、価値、データ、取引の支払い及び/又は他の情報のような一つ以上のパラメータを備えてもよい。タイムスタンプ以外の含まれるパラメータを取引情報と称してもよい。ハッシュ値を、例えば、タイムスタンプ及び取引情報を入力としてとるハッシュ関数を使って、タイムスタンプ及び取引情報に基づいて(例えば、候補取引を受け取ったノード1のようなブロックチェーンノードによって)決定してもよい。
一部の実施の形態において、タイムスタンプは、少なくとも候補取引を開始したユーザ端末によって構成され、ブロックチェーンに加えるための少なくとも一つの候補取引を取得することは、候補取引をユーザ端末から受け取ることを備える。例えば、ユーザ端末は、候補取引をノード1に送る図1のノードAであってもよい。ノードAは、候補取引をノード1に送る前に候補取引にタイムスタンプを付与してもよい。
一部の実施の形態において、タイムスタンプは、ブロックチェーンノードによって構成され、ブロックチェーンに加えるための少なくとも一つの候補取引を取得することは、少なくとも一つの開始した取引をユーザ端末から受け取ることと、少なくとも一つの候補取引を取得するために開始した取引にタイムスタンプを付与することと、を備える。例えば、ユーザ端末は、候補取引をノード1に送る図1のノードAであってもよい。ノードAは、候補取引をノード1に送る前に候補取引にタイムスタンプを付与しなくてもよく、ノード1は、受け取った候補取引にタイムスタンプを付与してもよい。候補取引を受け取る最初のブロックチェーンノードとして、ノード1は、ノード1の内部クロック又は代替的な時間源(time source)に基づいてタイムスタンプを付与してもよい。一旦他のブロックチェーンノードが後に候補取引を受け取ると、他のブロックチェーンノードは、ノード1によって付与されたタイムスタンプを取得してもよい。
ブロック452は、タイムスタンプが確認範囲内に存在するか否か及び候補取引の識別(例えば、ハッシュ値又は代替的な識別)が識別データベース(例えば、プールデータベースのハッシュテーブル)に存在するか否かを確認し、識別データベースは、確認範囲内に複数の識別を備えることを備える。
一部の実施の形態において、候補取引の識別が識別データベースに存在するか否かを確認することは、タイムスタンプが確認範囲内に存在するか否か及び候補取引の識別が識別データベースに存在するか否かを確認することを備える。タイムスタンプの確認及び識別の確認を任意の順番で行うことができる。識別データベースを記憶媒体に格納してもよい。識別データベースをキャッシュメモリに格納してもよい。
一部の実施の形態において、識別データベースは、確認範囲に対応する最近の期間内のタイムスタンプを有する取引の情報を備える。例えば、各ブロックチェーンノードは、ブロックチェーンの最後のブロックのタイムスタンプから2時間の間にブロックチェーンノードによって受け取られた候補取引のハッシュを記憶する識別データベースを維持してもよい。ブロックチェーンノードは、記憶したハッシュをプールするために各コンセンサス確認で識別データベースの同期をとってもよい。各コンセンサス確認の後、新たなブロックをブロックチェーンに加えてもよく、ブロックチェーンの最後のブロックのタイムスタンプが適用される。例えば、ブロックチェーンの最後のブロックに所定の日付の午前5時を付与してもよく、確認範囲は、所定の日付の午前5時から午前7時までであってもよい。そして、新たなブロックに午前7時が付与された後、確認範囲は、所定の日付の午前7時から午前9時までとなる。したがって、識別データベースのハッシュを、確認範囲内のハッシュを加えることによって及び/又は確認範囲外のハッシュを除去することによって更新してもよい。各ハッシュを、ハッシュが確認範囲内であるか確認範囲外であるかを判断するために対応するタイムスタンプに関連させてもよい。
一部の実施の形態において、確認範囲は、ブロックチェーンの最後のブロックの他のタイムスタンプに基づき(例えば、ブロックチェーンネットワークによって一般的に合意された他のタイムスタンプ+他のタイムスタンプからの確認範囲)、確認範囲は、ブロックチェーンの起源ブロックに含まれる。
一部の実施の形態において、確認範囲は、タイムスタンプが確認範囲内にあるか否かの確認を行うブロックチェーンノードの内部クロックに基づく。
ブロック453は、識別が識別データベースに存在しないという判断に応答して、候補取引がリプレイ攻撃に関連しないと判断することを備える。一部の実施の形態において、識別が識別データベースに存在しないという判断に応答して、候補取引がリプレイ攻撃に関連しないと判断することは、タイムスタンプが確認範囲内に存在するとともに識別が識別データベースに存在しないという判断に応答して、候補取引がリプレイ攻撃に関連しないと判断することを備える。
一部の実施の形態において、方法450は、タイムスタンプが確認範囲内に存在するとともに識別が識別データベースに存在しないという判断に応答して、識別を識別データベースに加えることを更に備える。
一部の実施の形態において、方法450は、タイムスタンプが確認範囲内に存在するとともに識別が識別データベースに存在しないという判断に応答して、候補取引を、候補取引を記憶するためのキャッシュメモリに加えることを更に備える。例えば、キャッシュメモリは、プールデータベースであってもよい。キャッシュメモリは、識別データベース(例えば、ハッシュテーブル)も記憶してもよい。
一部の実施の形態において、方法450は、タイムスタンプが確認範囲内に存在しないという判断に応答して、エラーメッセージを、候補取引を提示したコンピュータデバイスに返すことを更に備える。候補取引は、リプレイ攻撃に関連しても関連しなくてもよいが、無効な取引である。その理由は、取引候補が確認範囲外(例えば、現在の時間よりずっと前)であるからである。したがって、候補取引をブロックチェーンに加えるのを拒否される。
一部の実施の形態において、方法450は、識別が識別データベースに存在するという判断に応答して、候補取引がリプレイ攻撃に関連すると判断することを更に備える。したがって、候補取引をブロックチェーンに加えるのを拒否される。
方法450を、イーサリアムシステム、PBFTシステム、ハニーバジャー又はハッシュグラフシステムのような種々のブロックチェーンシステムで実施してもよい。一部の実施の形態において、方法は、コンセンサス確認を行うことを更に備え、候補取引は、候補取引がリプレイ攻撃に関連しないと判断された場合にコンセンサス確認に含まれる。例えば、イーサリアムシステムにおいて、タイムスタンプ及び識別確認を、コンセンサスノードがコンセンサス確認のラウンドを行う前に行ってもよい。開示したブロックチェーンシステムのいずれかにおいて、コンセンサス確認を行うことによってリプレイ攻撃を検出できないことがあり、開示した方法は、リプレイ攻撃検出を行うことができる。
一部の実施の形態において、方法450は、識別データベースを一つ以上の他のブロックチェーンに同期させることと、タイムスタンプが確認範囲内に存在するか否か及び候補取引の識別が同期した識別データベースに存在するか否かを確認することと、タイムスタンプが確認範囲内に存在するとともに識別が識別データベースに存在しないという判断に応答して、候補取引がリプレイ攻撃に関連しないと判断することと、候補取引の識別が同期した識別データベースに存在するという判断に応答して、候補取引がリプレイ攻撃に関連すると判断することと、を更に備える。例えば、イーサリアムシステムにおいて、オプションとして、タイムスタンプ及び識別確認を、コンセンサスノードがコンセンサス確認のラウンドを行った後に再び行ってもよい。コンセンサス確認によって、識別データベース及び/又はプールデータベースをブロックチェーンノードの間で同期させてもよい。
一部の実施の形態において、少なくとも一つの候補取引を取得する前に、方法450は、識別データベースを一つ以上の他のブロックチェーンに同期させることを更に備える。例えば、PBFTシステムにおいて、単一のブロックチェーンノード(例えば、プライマリノード)がコンセンサス確認の開始を担ってもよい。候補取引を受け取った後、非プライマリブロックチェーンノード(例えば、バックアップノード)が候補取引をプライマリノードに送り出してもよい。プライマリノードは、候補取引を受け取った後及びコンセンサス確認を行う前に方法450を実施してもよい。コンセンサス確認を行った後、非プライマリノードは、候補取引を行うために候補取引のリストをプライマリノードに同期させてもよい。したがって、非プライマリノードは、候補取引を受け取った後及びコンセンサス確認を行う前に方法450を実施しても実施しなくてもよい。
他の例に対して、ハニーバジャー又はハッシュグラフシステムにおいて、各ブロックチェーンノードは、受け取る候補取引を送り出さなくてもよい。各ブロックチェーンノードは、受け取った候補取引のコンセンサス確認を開始してもよい。したがって、真正の取引及びリプレイ攻撃取引が、方法450を実施する互いに異なる二つのブロックチェーンノードにそれぞれ送られる場合、これらは両方をパスしてもよい。リプレイ攻撃を検出するために、コンセンサス確認が行われた後、ブロックチェーンノードは、コンセンサス確認を通じて候補取引を共有するとともに方法450を再び実施してもよい。すなわち、ハニーバジャー又はハッシュグラフシステムのブロックチェーンノードは、識別データベース及び/又はプールデータベースの同期をとるとともに方法450を実施してもよい。コンセンサス確認の後に方法450を実施することによって、ブロックチェーンノードは、(例えば、更新したブロックチェーンをローカルメモリに書き込むことによって)新たな取引をブロックチェーンに加えてもよい。
したがって、開示したシステム及び方法は、安定したリプレイ攻撃検出を行うために既存の技術の欠陥を軽減又は克服することができる。アカウントナンスをタイムスタンプ確認及び識別確認の開示した組合せに代えることによって、ユーザ端末は、もはやブロックチェーンノードにノンス値を問い合わせる必要がない。したがって、ユーザ端末とブロックチェーンノードの間の通信コストが低減される。
状況(1)に対して、口座は、同一の取引手数料の第1の取引及び次に行われる第2の取引を同一のブロックチェーンノードに送る。しかしながら、順序不同のネットワークデータパケット伝送のために第1の取引の前に第2の取引を受け取る場合、ブロックチェーンノードは、第2の取引を行った後に第1の取引を行い、これによって、アカウントナンス機構に従わないことによる両方の取引の実行の失敗が生じる。開示したシステム及び方法は、アカウントナンスをタイムスタンプ確認及び識別確認の開示した組合せに代えるものであり、これによって、同一の口座からの有効な取引を予め規定された順番で行う必要がなくなる。すなわち、同一の口座から有効な取引を受け取る順番は、取引の実行の成功を妨げない。
状況(2)に対して、口座は、第1の取引及び次に行われる第2の取引を同一のブロックチェーンノードに送り、第2の取引は、更に高い取引手数料を有する。利益を最大にするために、ブロックチェーンノードは、第2の取引を優先的に行った後に第1の取引を行うようにプログラムされることがあり、これによって、アカウントナンス機構に従わないことによる両方の取引の実行の失敗が生じる。開示したシステム及び方法は、この問題を回避することができる。その理由は、状況(1)と同様に、同一の口座から有効な取引を受け取る順番が取引の実行の成功を妨げないからである。
状況(3)に対して、口座は、種々のユーザ端末から並列に種々の取引を送るが、これらの取引は、同一のアカウントナンス値を有する。その結果、取引のうちの最大でも一つしか処理が成功しない。開示したシステム及び方法は、この問題を回避することができ、全ての取引の実行を成功させることができる。その理由は、アカウントナンスが切り離されるからである。また、上述したように、タイムスタンプの正確さは、新たなブロックを加える前に十分に互いに近い時間内に同一の口座によって開始される多数の取引の実行をサポートすることができる。
追加的には、ブロックチェーンのコンセンサス規則に従って候補取引を確認する前及びブロックチェーンのコンセンサス規則に従って候補取引を確認した後(又は直後)にリプレイ攻撃から守ることによって、アカウントナンスを確認することを含んだ元のコンセンサス確認の負荷を軽減させることができる。確認範囲の使用は、調べるためのデータベースのサイズを著しく減少させるとともにブロックチェーン全体を調べる必要をなくす。したがって、識別データベースによって、高効率かつ低コストでリプレイ攻撃を防ぐことができる。さらに、タイムスタンプと確認範囲とを関連させることによって、取引処理が途絶えることなく任意の順番で同一の口座からの複数の取引の提示を許容する。また、この確認範囲は、ユーザ端末とブロックチェーンノードの間の同期を必要としなくなり、ブロックチェーンノードは、同一の確認結果を実現するために互いに異なる時間で同一の取引を確認することができる。
ここで説明する技術は、一つ以上の専用コンピュータデバイスによって実現される。専用コンピュータデバイスを、デスクトップコンピュータシステム、サーバコンピュータシステム、ポータブルコンピュータシステム、携帯装置、ネットワーク装置又は技術を実現する有線及び/又はプログラム論理を包含する他の任意の装置若しくは装置の組合せとしてもよい。(一つ以上の)コンピュータ装置は、一般的には、オペレーティングシステムソフトウェアによって制御及び調整される。通常のオペレーティングシステムは、実行、メモリ管理の実現、ファイルシステムの提供、ネットワーキング、I/Oサービス及び特にグラフィカルユーザインタフェース(GUI)のようなユーザインタフェースの提供のためにコンピュータ処理を制御及びスケジューリングする。
図5は、種々の実施の形態によるリプレイ攻撃を検出する例示的なコンピュータシステム550のブロック図を示す。システム550は、図1のシステム100のノード1、ノードAとノード1の組合せ、ノード2,...,ノードi又は同様な装置の例示的な実現であってもよい。方法400を、コンピュータシステム550によって実施してもよい。コンピュータシステム550は、一つ以上のプロセッサと、一つ以上のプロセッサに結合された一つ以上の非一時的コンピュータ可読媒体(例えば、一つ以上のメモリ)とを備え、非一時的コンピュータ可読媒体は、システム又は装置(例えば、プロセッサ)によって方法400を実施させるために一つ以上のプロセッサによって実行可能な命令を有するように構成されてもよい。コンピュータシステム550は、命令(例えば、ソフトウェア命令)に対応する種々のユニット/モジュールを備えてもよい。一部の実施の形態において、コンピュータシステム550は、ブロックチェーンに加えるための少なくとも一つの候補取引を取得し、取得した候補取引は、タイムスタンプを備えるように構成された第1の取得モジュール551と、タイムスタンプが確認範囲内に存在するか否か及び候補取引の識別が識別データベースに存在するか否かを確認するように構成された第1の確認モジュール552と、タイムスタンプが確認範囲内に存在するとともに識別が識別データベースに存在しないという判断に応答して、候補取引がリプレイ攻撃に関連しないと判断するように構成された第1の判断モジュール553と、を備えてもよい。
図6は、種々の実施の形態によるリプレイ攻撃を検出する例示的なコンピュータシステム560のブロック図を示す。システム560は、図1のシステム100のノード1、ノードAとノード1の組合せ、ノード2,...,ノードi又は同様な装置の例示的な実現であってもよい。方法450を、コンピュータシステム560によって実施してもよい。コンピュータシステム560は、一つ以上のプロセッサと、一つ以上のプロセッサに結合された一つ以上の非一時的コンピュータ可読媒体(例えば、一つ以上のメモリ)とを備え、非一時的コンピュータ可読媒体は、システム又は装置(例えば、プロセッサ)によって方法450を実施させるために一つ以上のプロセッサによって実行可能な命令を有するように構成されてもよい。コンピュータシステム560は、命令(例えば、ソフトウェア命令)に対応する種々のユニット/モジュールを備えてもよい。一部の実施の形態において、コンピュータシステム560は、ブロックチェーンに加えるための少なくとも一つの候補取引を取得するように構成された第2の取得モジュール561と、候補取引の識別が識別データベースに存在するか否かを確認し、識別データベースは、確認範囲内に複数の識別を備えるように構成された第2の確認モジュール562と、識別が識別データベースに存在しないという判断に応答して、候補取引がリプレイ攻撃に関連しないと判断するように構成された第2の判断モジュール563と、を備えてもよい。
図7は、ここで説明する実施の形態のいずれかを実現することができる例示的なコンピュータシステム700のブロック図を示す。システム700を、ここで説明するノードのいずれかにおいて実現してもよく、リプレイ攻撃を検出する対応するステップを実行するように構成してもよい。コンピュータシステム700は、情報の通信を行うためのバス702又は他の通信機構と、情報を処理するためにバス702に結合された一つ以上のハードウェアプロセッサ704と、を有する。(一つ以上の)ハードウェアプロセッサ704は、例えば、一つ以上の汎用マイクロプロセッサであってもよい。
コンピュータシステム700は、情報と(一つ以上の)プロセッサ704によって実行される命令とを記憶するためにバス702に結合されたランダムアクセスメモリ(RAM)、キャッシュ及び/又は他のダイナミック記憶装置のような主記憶装置706も有する。主記憶装置706を、(一つ以上の)プロセッサ704によって実行される命令の実行中に変数又は他の中間情報(intermediate information)を一時的に記憶するのに用いてもよい。そのような命令は、(一つ以上の)プロセッサ704にアクセス可能な記憶媒体に記憶されるときに、カスタマイズされた専用マシンのコンピュータシステム700によって、命令で指定された動作を実行する。コンピュータシステム700は、(一つ以上の)プロセッサ704の静的情報及び命令を記憶するためにバス702に結合されたリードオンリーメモリ(ROM)も有する。磁気ディスク、光ディスク、USBサムドライブ(フラッシュドライブ)のような記憶装置710を、情報及び命令を記憶するために設けるとともにバス702に結合する。
システム700は、コンピュータシステムと協働してコンピュータシステム700を専用マシンにする又は専用マシンにプログラムするカスタマイズされたハードワイヤード論理、一つ以上のASIC又はFPGA、ファームウェア及び/又はプログラム論理を用いることによって、ここで説明する技術を実現してもよい。一実施の形態によれば、ここで説明する動作、方法及びプロセスを、主記憶装置706に含まれる一つ以上の命令の一つ以上のシーケンスを実行する(一つ以上の)プロセッサ704に応答してコンピュータシステム700によって実行する。そのような命令を、記憶装置710のような他の記憶媒体から主記憶装置706に読み込んでもよい。主記憶装置706に含まれる命令のシーケンスを実行することによって、一つ以上のプロセッサ704は、ここで説明する処理工程を実行する。代替的な実施の形態において、ハードワイヤード回路を、ソフトウェア命令の代わりに又はソフトウェア命令と共に用いてもよい。
主記憶装置706、ROM708及び/又は記憶装置710は、非一時的記憶媒体を有してもよい。ここで用いるような用語「非一時的媒体」及び同様な用語は、マシンを特定の方法で動作させるデータ及び/又は命令を記憶する媒体を意味し、当該媒体は、一時的な信号を除外する。そのような非一時的媒体は、不揮発性媒体及び/又は揮発性媒体を備えてもよい。不揮発性媒体は、例えば、記憶装置710のような光ディスク又は磁気ディスクを含む。揮発性媒体は、主記憶装置706のようなダイナミックメモリを含む。非一時的媒体の一般的形式は、例えば、フロッピーディスク(登録商標)、フレキシブルディスク、ハードディスク、固体ドライブ、磁気テープ又は他の任意の磁気データ記憶媒体、CD−ROM、他の任意の光データ記憶媒体、孔のパターンを有する任意の物理媒体、RAM、PROM、EPROM、フラッシュEPROM、NVRAM、他の任意のメモリチップ若しくはカートリッジ及びこれらのネットワーク形態を含む。
コンピュータシステム700は、バス702に結合されたネットワークインタフェース718も有する。ネットワークインタフェース718は、一つ以上のローカルネットワークに接続された一つ以上のネットワークリンクに結合する双方向データ通信を提供する。例えば、ネットワークインタフェース718は、総合デジタル通信網(ISDN)カード、ケーブルモデム、衛星モデム又は対応するタイプの電話線に対するデータ通信を提供するモデムであってもよい。他の例として、ネットワークインタフェース718は、互換性のあるLAN(又はWANと通信を行うWAN構成要素)に対するデータ通信接続を提供するローカルエリアネットワーク(LAN)カードであってもよい。無線リンクを実現してもよい。そのようないずれかの実現において、ネットワークインタフェース718は、種々のタイプの情報を表すデジタルデータストリームを搬送する電気信号、電磁信号又は光信号を送受信する。
コンピュータシステム700は、(一つ以上の)ネットワーク、ネットワークリンク及びネットワークインタフェース718を介してメッセージを送信するとともにプログラムコードを含むデータを受信することができる。インターネットの例において、サーバは、インターネット、ISP,ローカルネットワーク及びネットワークインタフェース718を介して、アプリケーションプログラムの要求されるコードを送信する。
受信したコードを、受信の際に(一つ以上の)プロセッサ704によって実行してもよい及び/又は後の実行のために記憶装置710又は他の不揮発性記憶装置に記憶してもよい。
前のセクションで説明したプロセス、方法及びアルゴリズムの各々を、コンピュータハードウェアを備える一つ以上のコンピュータシステム又はコンピュータプロセッサによって実行されるコードモジュールで実施するとともに当該コードモジュールによって完全に又は部分的に自動化してもよい。プロセス及びアルゴリズムを、特定用途向け回路で部分的に又は完全に実現してもよい。
上述した種々の特徴及びプロセスを互いに独立して用いてもよい又は種々の方法で組み合わせて用いてもよい。全てのあり得る組合せ及び部分的組合せは、本開示の範囲に入ることを意図する。追加的に、所定の方法又は処理ブロックを一部の実現において省略してもよい。ここで説明する方法及びプロセスは、任意の特定の順番に限定されず、それに関連するブロック及び段階(state)を、適切な他の順番で実行してもよい。例えば、説明したブロック又は段階を特に開示した順番以外の順番で実行してもよい又は複数のブロック又は段階を単一のブロック又は段階で組み合わせてもよい。例示的なブロック又は段階を、シリアルに、並列に又は他の方法で実行してもよい。ブロック又は段階を開示した例示的な実施の形態に加えてもよい又は開示した例示的な実施の形態から除去してもよい。ここで説明する例示的なシステム及び構成要素を、開示したのと異なるように構成してもよい。例えば、素子を、開示した例示的な実施の形態に追加してもよい、開示した例示的な実施の形態から除外してもよい又は開示した例示的な実施の形態において位置を変えてもよい。
ここで説明する例示的な方法の種種の動作を、アルゴリズムによって少なくとも部分的に実行してもよい。アルゴリズムは、メモリ(例えば、上述した非一時的コンピュータ可読記憶媒体)に記憶されたプログラムコード又は命令に含まれてもよい。そのようなアルゴリズムは、機械学習アルゴリズムを備えてもよい。一部の実施の形態において、機械学習アルゴリズムは、機能を実行するためにコンピュータを明示的にプログラムしなくてもよいが、機能を実行する予測モデルを形成するためにトレーニングデータから学習を行うことができる。
ここで説明する例示的な方法の種種の動作を、関連の動作を実行するために(例えば、ソフトウェアによって)一時的に構成された又は永久的に構成された一つ以上のプロセッサによって少なくとも部分的に実行してもよい。一時的に構成されているか永久的に構成されているかに関係なく、そのようなプロセッサは、ここで説明する一つ以上の動作又は機能を実行するために動作するプロセッサで実施されるエンジンを構成してもよい。
同様に、ここで説明する方法を、ハードウェアの例である特定の一つ以上のプロセッサを用いることによって少なくとも部分的にプロセッサで実施してもよい。例えば、方法の動作の少なくとも一部を、一つ以上のプロセッサ又はプロセッサで実施されるエンジンによって実行してもよい。さらに、一つ以上のプロセッサは、「クラウドコンピューティング」環境において又は「サービスとしてのソフトウェア」(SaaS)として関連の動作の実行をサポートするように動作してもよい。例えば、動作の少なくとも一部を、(プロセッサを有するマシンの例としての)一群のコンピュータによって実行してもよく、これらの動作は、ネットワーク(例えば、インターネット)を介して及び一つ以上の適切なインタフェース(例えば、アプリケーションプログラムインタフェース(API))を介して利用可能である。
所定の動作の性能(performance)を、単一のマシン内に存在するプロセッサの間だけでなく複数のマシンに亘って配置されたプロセッサの間に分布させることができる。一部の例示的な実施の形態において、プロセッサ又はプロセッサで実施するエンジンを、(例えば、家庭環境、オフィス環境又はサーバファーム内の)単一の地理的な位置に配置してもよい。他の例示的な実施の形態において、プロセッサ又はプロセッサで実施するエンジンを、複数の地理的な位置にわたって分布させてもよい。
本明細書を通じて、複数の例は、単一の例として説明した構成要素、動作又は構造を実現してもよい。一つ以上の方法の個別の動作を個別の動作として図示及び説明したが、個別の動作の一つ以上を同時に実行してもよく、説明した順番で動作を実行する必要はない。例示的な形態において個別の構成要素として示した構造及び機能を、組み合わせた構造又は構成要素として実現してもよい。同様に、単一の構成要素として示した構造及び機能を、個別の構成要素として実現してもよい。これらの変形、変更、追加及び改善並びに他の変形、変更、追加及び改善は、ここでの主題の範囲内にある。
主題の概観を特定の例示的な実施の形態を参照しながら説明したが、種々の変更及び変形を、本開示の実施の形態の広い範囲から逸脱することなくこれらの実施の形態において行ってもよい。主題のそのような実施の形態を、本願の範囲を実際に一つ以上の開示又は概念が存在する場合の任意の一つの開示又は概念に自発的に限定することを意図することなく単なる便宜上の用語「発明」によって個別に又は集合的にここに示す。詳細な説明を限定の意味ととるべきではなく、種々の実施の形態の範囲は、添付した特許請求の範囲によって、そのような特許請求の範囲の権利が与えられる等価物の全範囲と共に規定される。

Claims (39)

  1. リプレイ攻撃の検出のためのコンピュータで実施される方法であって、
    ブロックチェーンに加えるための少なくとも一つの候補取引を取得することと、
    前記候補取引の識別が識別データベースに存在するか否かを確認し、前記識別データベースは、確認範囲に対応する期間内のタイムスタンプを有する取引の複数の識別を備え、前記期間は、前記ブロックチェーンの最新のブロックが前記ブロックチェーンに加えられる時点から開始することと、
    前記識別が前記識別データベースに存在しないという判断に応答して、前記候補取引がリプレイ攻撃に関連しないと判断することと、
    を備える方法。
  2. 取得した前記候補取引は、タイムスタンプを備え、
    前記候補取引の前記識別が前記識別データベースに存在するか否かを確認することは、前記タイムスタンプが前記確認範囲内に存在するか否か及び前記候補取引の前記識別が前記識別データベースに存在するか否かを確認することを備え、
    前記識別が前記識別データベースに存在しないという判断に応答して、前記候補取引がリプレイ攻撃に関連しないと判断することは、前記タイムスタンプが前記確認範囲内に存在するとともに前記識別が前記識別データベースに存在しないという判断に応答して、前記候補取引がリプレイ攻撃に関連しないと判断することを備える請求項1に記載の方法。
  3. 前記候補取引は、タイムスタンプと、取引情報と、を備え、
    少なくとも一つの前記候補取引を取得した後であるとともに前記候補取引の識別が識別データベースに存在するか否かを確認する前に、少なくとも前記タイムスタンプ及び前記取引情報に基づいて、前記識別としての役割を果たすハッシュ値を決定することを更に備える請求項2に記載の方法。
  4. 前記候補取引は、タイムスタンプと、取引情報と、少なくとも前記タイムスタンプ及び前記取引情報に基づいて決定されるとともに前記識別としての役割を果たすハッシュ値と、を備え、
    少なくとも一つの前記候補取引を取得した後であるとともに前記候補取引の識別が識別データベースに存在するか否かを確認する前に、少なくとも前記タイムスタンプ及び前記取引情報に基づく前記ハッシュ値を確認することによって前記識別を確認することを更に備える請求項2に記載の方法。
  5. 前記タイムスタンプは、少なくとも一つの前記候補取引を開始したユーザ端末によって構成され、
    前記ブロックチェーンに加えるための少なくとも一つの前記候補取引を取得することは、前記候補取引を前記ユーザ端末から受け取ることを備える請求項2に記載の方法。
  6. 前記タイムスタンプは、ブロックチェーンノードによって構成され、
    前記ブロックチェーンに加えるための少なくとも一つの前記候補取引を取得することは、
    少なくとも一つの開始した取引をユーザ端末から受け取ることと、
    少なくとも一つの前記候補取引を取得するために開始した前記取引に前記タイムスタンプを付与することと、
    を備える請求項2に記載の方法。
  7. 前記タイムスタンプが前記確認範囲内に存在するとともに前記識別が前記識別データベースに存在しないという判断に応答して、前記識別を前記識別データベースに加えることを更に備える請求項2に記載の方法。
  8. 前記タイムスタンプが前記確認範囲内に存在するとともに前記識別が前記識別データベースに存在しないという判断に応答して、前記候補取引を、前記候補取引を記憶するためのキャッシュメモリに加えることを更に備える請求項2に記載の方法。
  9. 前記タイムスタンプが前記確認範囲内に存在しないという判断に応答して、エラーメッセージを、前記候補取引を提示したコンピュータデバイスに返すことを更に備える請求項2に記載の方法。
  10. 前記識別が前記識別データベースに存在するという判断に応答して、前記候補取引が前記リプレイ攻撃に関連すると判断することを更に備える請求項2に記載の方法。
  11. コンセンサス確認を行うことを更に備え、前記候補取引は、前記候補取引が前記リプレイ攻撃に関連しないと判断された場合に前記コンセンサス確認に含まれる請求項2に記載の方法。
  12. 少なくとも一つの前記候補取引を取得する前に、
    前記識別データベースを一つ以上の他のブロックチェーンに同期させることを更に備える請求項1に記載の方法。
  13. 前記確認範囲は、前記ブロックチェーンの最後のブロックの他のタイムスタンプに基づき、
    前記確認範囲は、前記ブロックチェーンの起源ブロックに含まれる請求項1に記載の方法。
  14. リプレイ攻撃の検出のためのシステムであって、一つ以上のプロセッサ及び前記一つ以上のプロセッサに結合された一つ以上の非一時的コンピュータ可読記憶媒体を備え、前記一つ以上の非一時的コンピュータ可読記憶媒体は、
    ブロックチェーンに加えるための少なくとも一つの候補取引を取得することと、
    前記候補取引の識別が識別データベースに存在するか否かを確認し、前記識別データベースは、確認範囲に対応する期間内のタイムスタンプを有する取引の複数の識別を備え、前記期間は、前記ブロックチェーンの最新のブロックが前記ブロックチェーンに加えられる時点から開始することと、
    前記識別が前記識別データベースに存在しないという判断に応答して、前記候補取引がリプレイ攻撃に関連しないと判断することと、
    を備える動作を前記システムによって実行させるために前記一つ以上のプロセッサによって実行可能な命令を有するように構成されたシステム。
  15. 取得した前記候補取引は、タイムスタンプを備え、
    前記候補取引の前記識別が前記識別データベースに存在するか否かを確認することは、前記タイムスタンプが前記確認範囲内に存在するか否か及び前記候補取引の前記識別が前記識別データベースに存在するか否かを確認することを備え、
    前記識別が前記識別データベースに存在しないという判断に応答して、前記候補取引がリプレイ攻撃に関連しないと判断することは、前記タイムスタンプが前記確認範囲内に存在するとともに前記識別が前記識別データベースに存在しないという判断に応答して、前記候補取引がリプレイ攻撃に関連しないと判断することを備える請求項14に記載のシステム。
  16. 前記候補取引は、タイムスタンプと、取引情報と、を備え、
    少なくとも一つの前記候補取引を取得した後であるとともに前記候補取引の識別が識別データベースに存在するか否かを確認する前に、前記動作は、少なくとも前記タイムスタンプ及び前記取引情報に基づいて、前記識別としての役割を果たすハッシュ値を決定することを更に備える請求項15に記載のシステム。
  17. 前記候補取引は、タイムスタンプと、取引情報と、少なくとも前記タイムスタンプ及び前記取引情報に基づいて決定されるとともに前記識別としての役割を果たすハッシュ値と、を備え、
    少なくとも一つの前記候補取引を取得した後であるとともに前記候補取引の識別が識別データベースに存在するか否かを確認する前に、前記動作は、少なくとも前記タイムスタンプ及び前記取引情報に基づく前記ハッシュ値を確認することによって前記識別を確認することを更に備える請求項15に記載のシステム。
  18. 前記タイムスタンプは、少なくとも一つの前記候補取引を開始したユーザ端末によって構成され、
    前記ブロックチェーンに加えるための少なくとも一つの前記候補取引を取得することは、前記候補取引を前記ユーザ端末から受け取ることを備える請求項15に記載のシステム。
  19. 前記タイムスタンプは、ブロックチェーンノードによって構成され、
    前記ブロックチェーンに加えるための少なくとも一つの前記候補取引を取得することは、
    少なくとも一つの開始した取引をユーザ端末から受け取ることと、
    少なくとも一つの前記候補取引を取得するために開始した前記取引に前記タイムスタンプを付与することと、
    を備える請求項15に記載のシステム。
  20. 前記動作は、前記タイムスタンプが前記確認範囲内に存在するとともに前記識別が前記識別データベースに存在しないという判断に応答して、前記識別を前記識別データベースに加えることを更に備える請求項15に記載のシステム。
  21. 前記動作は、前記タイムスタンプが前記確認範囲内に存在するとともに前記識別が前記識別データベースに存在しないという判断に応答して、前記候補取引を、前記候補取引を記憶するためのキャッシュメモリに加えることを更に備える請求項15に記載のシステム。
  22. 前記動作は、前記タイムスタンプが前記確認範囲内に存在しないという判断に応答して、エラーメッセージを、前記候補取引を提示したコンピュータデバイスに返すことを更に備える請求項15に記載のシステム。
  23. 前記動作は、前記識別が前記識別データベースに存在するという判断に応答して、前記候補取引が前記リプレイ攻撃に関連すると判断することを更に備える請求項15に記載のシステム。
  24. 前記動作は、コンセンサス確認を行うことを更に備え、前記候補取引は、前記候補取引が前記リプレイ攻撃に関連しないと判断された場合に前記コンセンサス確認に含まれる請求項15に記載のシステム。
  25. 少なくとも一つの前記候補取引を取得する前に、前記動作は、
    前記識別データベースを一つ以上の他のブロックチェーンに同期させることを更に備える請求項14に記載のシステム。
  26. 前記確認範囲は、前記ブロックチェーンの最後のブロックの他のタイムスタンプに基づき、
    前記確認範囲は、前記ブロックチェーンの起源ブロックに含まれる請求項14に記載のシステム。
  27. ブロックチェーンに加えるための少なくとも一つの候補取引を取得することと、
    前記候補取引の識別が識別データベースに存在するか否かを確認し、前記識別データベースは、確認範囲に対応する期間内のタイムスタンプを有する取引の複数の識別を備え、前記期間は、前記ブロックチェーンの最新のブロックが前記ブロックチェーンに加えられる時点から開始することと、
    前記識別が前記識別データベースに存在しないという判断に応答して、前記候補取引がリプレイ攻撃に関連しないと判断することと、
    を備える動作を一つ以上のプロセッサによって実行させるために前記一つ以上のプロセッサによって実行可能な命令を有するように構成された非一時的コンピュータ可読記憶媒体。
  28. 取得した前記候補取引は、タイムスタンプを備え、
    前記候補取引の前記識別が前記識別データベースに存在するか否かを確認することは、前記タイムスタンプが前記確認範囲内に存在するか否か及び前記候補取引の前記識別が前記識別データベースに存在するか否かを確認することを備え、
    前記識別が前記識別データベースに存在しないという判断に応答して、前記候補取引がリプレイ攻撃に関連しないと判断することは、前記タイムスタンプが前記確認範囲内に存在するとともに前記識別が前記識別データベースに存在しないという判断に応答して、前記候補取引がリプレイ攻撃に関連しないと判断することを備える請求項27に記載の非一時的コンピュータ可読記憶媒体。
  29. 前記候補取引は、タイムスタンプと、取引情報と、を備え、
    少なくとも一つの前記候補取引を取得した後であるとともに前記候補取引の識別が識別データベースに存在するか否かを確認する前に、前記動作は、少なくとも前記タイムスタンプ及び前記取引情報に基づいて、前記識別としての役割を果たすハッシュ値を決定することを更に備える請求項28に記載の非一時的コンピュータ可読記憶媒体。
  30. 前記候補取引は、タイムスタンプと、取引情報と、少なくとも前記タイムスタンプ及び前記取引情報に基づいて決定されるとともに前記識別としての役割を果たすハッシュ値と、を備え、
    少なくとも一つの前記候補取引を取得した後であるとともに前記候補取引の識別が識別データベースに存在するか否かを確認する前に、前記動作は、少なくとも前記タイムスタンプ及び前記取引情報に基づく前記ハッシュ値を確認することによって前記識別を確認することを更に備える請求項28に記載の非一時的コンピュータ可読記憶媒体。
  31. 前記タイムスタンプは、少なくとも一つの前記候補取引を開始したユーザ端末によって構成され、
    前記ブロックチェーンに加えるための少なくとも一つの前記候補取引を取得することは、前記候補取引を前記ユーザ端末から受け取ることを備える請求項28に記載の非一時的コンピュータ可読記憶媒体。
  32. 前記タイムスタンプは、ブロックチェーンノードによって構成され、
    前記ブロックチェーンに加えるための少なくとも一つの前記候補取引を取得することは、
    少なくとも一つの開始した取引をユーザ端末から受け取ることと、
    少なくとも一つの前記候補取引を取得するために開始した前記取引に前記タイムスタンプを付与することと、
    を備える請求項28に記載の非一時的コンピュータ可読記憶媒体。
  33. 前記動作は、前記タイムスタンプが前記確認範囲内に存在するとともに前記識別が前記識別データベースに存在しないという判断に応答して、前記識別を前記識別データベースに加えることを更に備える請求項28に記載の非一時的コンピュータ可読記憶媒体。
  34. 前記動作は、前記タイムスタンプが前記確認範囲内に存在するとともに前記識別が前記識別データベースに存在しないという判断に応答して、前記候補取引を、前記候補取引を記憶するためのキャッシュメモリに加えることを更に備える請求項28に記載の非一時的コンピュータ可読記憶媒体。
  35. 前記動作は、前記タイムスタンプが前記確認範囲内に存在しないという判断に応答して、エラーメッセージを、前記候補取引を提示したコンピュータデバイスに返すことを更に備える請求項28に記載の非一時的コンピュータ可読記憶媒体。
  36. 前記動作は、前記識別が前記識別データベースに存在するという判断に応答して、前記候補取引が前記リプレイ攻撃に関連すると判断することを更に備える請求項28に記載の非一時的コンピュータ可読記憶媒体。
  37. 前記動作は、コンセンサス確認を行うことを更に備え、前記候補取引は、前記候補取引が前記リプレイ攻撃に関連しないと判断された場合に前記コンセンサス確認に含まれる請求項28に記載の非一時的コンピュータ可読記憶媒体。
  38. 少なくとも一つの前記候補取引を取得する前に、前記動作は、
    前記識別データベースを一つ以上の他のブロックチェーンに同期させることを更に備える請求項27に記載の非一時的コンピュータ可読記憶媒体。
  39. 前記確認範囲は、前記ブロックチェーンの最後のブロックの他のタイムスタンプに基づき、
    前記確認範囲は、前記ブロックチェーンの起源ブロックに含まれる請求項27に記載の非一時的コンピュータ可読記憶媒体。
JP2019528022A 2018-12-29 2018-12-29 リプレイ攻撃の検出のためのシステム及び方法 Active JP6905059B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/125782 WO2019072314A2 (en) 2018-12-29 2018-12-29 SYSTEM AND METHOD FOR ATTACK DETECTION BY REINTEGRATION

Publications (2)

Publication Number Publication Date
JP2020505663A JP2020505663A (ja) 2020-02-20
JP6905059B2 true JP6905059B2 (ja) 2021-07-21

Family

ID=66100039

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019528022A Active JP6905059B2 (ja) 2018-12-29 2018-12-29 リプレイ攻撃の検出のためのシステム及び方法

Country Status (7)

Country Link
US (1) US11323475B2 (ja)
EP (1) EP3545665B1 (ja)
JP (1) JP6905059B2 (ja)
KR (1) KR102239398B1 (ja)
CN (1) CN110431577B (ja)
PH (1) PH12019501152A1 (ja)
WO (1) WO2019072314A2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11283634B2 (en) * 2018-12-29 2022-03-22 Advanced New Technologies Co., Ltd. System and method for detecting replay attack
EP3545665B1 (en) 2018-12-29 2023-05-03 Advanced New Technologies Co., Ltd. System and method for detecting replay attack
US11010394B2 (en) * 2019-02-15 2021-05-18 Drfirst.Com, Inc. Efficient access of chainable records
CN110276688B (zh) * 2019-06-14 2024-02-06 深圳前海微众银行股份有限公司 一种区块链中交易处理的方法及装置
CN111108734B (zh) * 2019-06-26 2022-05-31 蚂蚁双链科技(上海)有限公司 基于存储空间互换的改进的防重放设备
CN110349029B (zh) * 2019-07-17 2022-04-15 中国银行股份有限公司 一种基于区块链的交易一致性的处理方法、设备以及系统
SG11202002734SA (en) * 2019-09-02 2020-04-29 Alibaba Group Holding Ltd Managing blockchain-based centralized ledger systems
US20210184859A1 (en) * 2019-12-16 2021-06-17 CONCERTvdc, Inc. Validation and certification of digital assets using a blockchain
WO2020143856A2 (en) 2020-04-22 2020-07-16 Alipay (Hangzhou) Information Technology Co., Ltd. Managing transaction requests in ledger systems
CN111630549B (zh) 2020-04-22 2022-05-27 支付宝(杭州)信息技术有限公司 管理账本系统中的交易请求
WO2020143854A2 (en) 2020-04-22 2020-07-16 Alipay (Hangzhou) Information Technology Co., Ltd. Managing transaction requests in ledger systems
CN112346825A (zh) * 2020-11-11 2021-02-09 湖南智慧政务区块链科技有限公司 一种基于位图算法的区块链事务防重机制
CN112819628B (zh) * 2021-02-01 2024-02-02 网易(杭州)网络有限公司 交易防重放的检测方法及装置、系统、电子设备、存储介质
CN112968912B (zh) * 2021-04-01 2023-01-13 上海帆立信息科技有限公司 长链路互联网业务多模式安全验证码方法
EP4117229A1 (fr) * 2021-07-05 2023-01-11 Bull SAS Procédé de détection d'anomalie(s) dans un réseau blockchain et réseau blockchain mettant en uvre un tel procédé

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8555062B1 (en) * 2001-03-26 2013-10-08 Access Co., Ltd. Protocol to prevent replay attacks on secured wireless transactions
CN101340289B (zh) * 2008-08-19 2011-11-09 北京飞天诚信科技有限公司 防重放攻击方法及其系统
US8392709B1 (en) 2009-04-28 2013-03-05 Adobe Systems Incorporated System and method for a single request—single response protocol with mutual replay attack protection
CN102035801B (zh) 2009-09-28 2014-05-14 西门子(中国)有限公司 一种用于防止攻击的方法和装置
US9858401B2 (en) * 2011-08-09 2018-01-02 Biogy, Inc. Securing transactions against cyberattacks
US11824991B2 (en) * 2012-03-05 2023-11-21 Biogy, Inc. Securing transactions with a blockchain network
CN103020671B (zh) * 2012-11-20 2015-08-19 南京邮电大学 一种基于哈希函数的无线射频识别双向认证方法
US20140258110A1 (en) 2013-03-11 2014-09-11 Digimarc Corporation Methods and arrangements for smartphone payments and transactions
US9853949B1 (en) 2013-04-19 2017-12-26 Amazon Technologies, Inc. Secure time service
CA2985040A1 (en) 2014-05-06 2015-12-03 Case Wallet, Inc. Cryptocurrency virtual wallet system and method
WO2016010527A1 (en) * 2014-07-15 2016-01-21 Hewlett-Packard Development Company, L. P. Database transaction replay
US10230526B2 (en) 2014-12-31 2019-03-12 William Manning Out-of-band validation of domain name system records
US20160283939A1 (en) 2015-03-25 2016-09-29 Qualcomm Incorporated System and method to prevent loss of bitcoins due to address errors
US11329980B2 (en) * 2015-08-21 2022-05-10 Veridium Ip Limited System and method for biometric protocol standards
US10303887B2 (en) 2015-09-14 2019-05-28 T0.Com, Inc. Data verification methods and systems using a hash tree, such as a time-centric merkle hash tree
US10230756B2 (en) 2015-11-25 2019-03-12 International Business Machines Corporation Resisting replay attacks efficiently in a permissioned and privacy-preserving blockchain network
US10262164B2 (en) 2016-01-15 2019-04-16 Blockchain Asics Llc Cryptographic ASIC including circuitry-encoded transformation function
US11130042B2 (en) * 2016-02-02 2021-09-28 Bao Tran Smart device
US9849364B2 (en) * 2016-02-02 2017-12-26 Bao Tran Smart device
WO2017180382A1 (en) * 2016-04-12 2017-10-19 Pcms Holdings, Inc. System and method for data validation in a decentralized sensor network
US10417217B2 (en) 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
CN106295401A (zh) * 2016-08-13 2017-01-04 深圳市樊溪电子有限公司 一种用于区块链的只读安全文件存储系统及其方法
US10733602B2 (en) 2016-09-29 2020-08-04 Microsoft Technology Licensing, Llc. Heartbeats and consensus in verifiable outsourced ledgers
US10769602B2 (en) 2017-01-03 2020-09-08 Soo Hyang KANG System and method for customer initiated payment transaction using customer's mobile device and card
US11233656B2 (en) 2017-02-24 2022-01-25 Nec Corporation Method for mining a block in a decentralized blockchain consensus network
CN113766035B (zh) 2017-03-28 2023-05-23 创新先进技术有限公司 一种业务受理及共识的方法及装置
CN106991607B (zh) 2017-03-29 2020-04-10 杭州溪塔科技有限公司 一种基于区块链账户模型的无序交易控制方法
WO2018195364A1 (en) 2017-04-19 2018-10-25 Baton Systems, Inc. Time stamping systems and methods
US20180322489A1 (en) 2017-05-03 2018-11-08 Meredith Altenhofen System and method for restricted transaction processing
CN108881120B (zh) 2017-05-12 2020-12-04 创新先进技术有限公司 一种基于区块链的数据处理方法及设备
US11182380B2 (en) 2017-06-30 2021-11-23 Nchain Licensing Ag Flow control for probabilistic relay in a blockchain network
US10592979B2 (en) 2017-07-26 2020-03-17 International Business Machines Corporation Managing blockchain transactions
KR102042739B1 (ko) 2017-09-22 2019-11-08 서강대학교산학협력단 블록체인을 이용한 메시지 히스토리 기반의 보안 키를 이용하는 통신 장치 및 방법
US11165862B2 (en) 2017-10-24 2021-11-02 0Chain, LLC Systems and methods of blockchain platform for distributed applications
US11057225B2 (en) 2017-12-07 2021-07-06 International Business Machines Corporation Enforcing compute equity models in distributed blockchain
US10833844B2 (en) 2017-12-20 2020-11-10 International Business Machines Corporation Blockchain lifecycle management
US11315110B2 (en) 2017-12-27 2022-04-26 International Business Machines Corporation Private resource discovery and subgroup formation on a blockchain
US11205178B2 (en) 2017-12-28 2021-12-21 International Business Machines Corporation Converting processes into multiple blockchain smart contracts
US11271717B2 (en) 2018-02-21 2022-03-08 Thunder Token Inc. Blockchain consensus methods and systems
US10554412B2 (en) 2018-03-06 2020-02-04 Robust Analytics, Inc. Method and network to implement decentralized validation and authentication mechanisms to prevent ADS-B cyber-attacks
CN108494775B (zh) 2018-03-26 2020-12-15 四川长虹电器股份有限公司 防止利用合法数据或篡改合法数据进行网络攻击的方法
US11531661B2 (en) 2018-03-27 2022-12-20 International Business Machines Corporation Vehicle incident documentation for blockchain
US10833864B2 (en) * 2018-04-13 2020-11-10 International Business Machines Corporation Gaming concensus protocol for blockchain
US11531975B2 (en) 2018-04-13 2022-12-20 International Business Machines Corporation Network node management on a blockchain
US10256974B1 (en) 2018-04-25 2019-04-09 Blockchain Asics Llc Cryptographic ASIC for key hierarchy enforcement
CN108805569A (zh) * 2018-05-29 2018-11-13 阿里巴巴集团控股有限公司 基于区块链的交易处理方法及装置、电子设备
CN108764870B (zh) 2018-05-29 2020-07-07 阿里巴巴集团控股有限公司 基于区块链的交易处理方法及装置、电子设备
CN108989043B (zh) 2018-05-31 2021-01-26 中国联合网络通信集团有限公司 区块处理方法、装置及区块链节点
US10972279B2 (en) * 2018-06-07 2021-04-06 International Business Machines Corporation Efficient validation for blockchain
US10171992B1 (en) 2018-06-22 2019-01-01 International Business Machines Corporation Switching mobile service provider using blockchain
US10243748B1 (en) 2018-06-28 2019-03-26 Jonathan Sean Callan Blockchain based digital certificate provisioning of internet of things devices
US11068834B2 (en) 2018-06-29 2021-07-20 Intel Corporation Secure shipment receive apparatus with delegation-chain
US11010728B2 (en) 2018-07-12 2021-05-18 International Business Machines Corporation Timestamping changes to smart-contract state
CN109064171A (zh) 2018-07-26 2018-12-21 杭州秘猿科技有限公司 一种区块链并行交易的方法、装置及电子系统
US20200043115A1 (en) 2018-08-02 2020-02-06 Zaius Networks Inc. doing business as (d.b.a.) BIGcontrols Permissioned blockchain ecosystem for economic development incentives
US10764070B2 (en) 2018-08-30 2020-09-01 International Business Machines Corporation High precision timestamps in blockchain
US20200090143A1 (en) 2018-09-14 2020-03-19 Andrea Iervolino System, Method, and Apparatus for Online Content Platform and Related Cryptocurrency
US10608829B1 (en) 2018-10-08 2020-03-31 International Business Machines Corporation Blockchain timestamp agreement
US10805094B2 (en) 2018-10-08 2020-10-13 International Business Machines Corporation Blockchain timestamp agreement
US11769573B2 (en) 2018-10-16 2023-09-26 Netspective Communications Llc Team-based tele-diagnostics blockchain-enabled system
EP3545665B1 (en) 2018-12-29 2023-05-03 Advanced New Technologies Co., Ltd. System and method for detecting replay attack
US10681083B2 (en) 2018-12-29 2020-06-09 Alibaba Group Holding Limited System and method for detecting replay attack
US10735464B2 (en) 2018-12-29 2020-08-04 Alibaba Group Holding Limited System and method for detecting replay attack

Also Published As

Publication number Publication date
KR102239398B1 (ko) 2021-04-13
KR20200083931A (ko) 2020-07-09
JP2020505663A (ja) 2020-02-20
CN110431577A (zh) 2019-11-08
EP3545665A2 (en) 2019-10-02
CN110431577B (zh) 2023-08-22
WO2019072314A2 (en) 2019-04-18
EP3545665B1 (en) 2023-05-03
WO2019072314A3 (en) 2019-10-24
US20200296130A1 (en) 2020-09-17
US11323475B2 (en) 2022-05-03
EP3545665A4 (en) 2020-01-22
PH12019501152A1 (en) 2019-12-11

Similar Documents

Publication Publication Date Title
JP6882474B2 (ja) リプレイ攻撃の検出のためのシステム及び方法
JP6905059B2 (ja) リプレイ攻撃の検出のためのシステム及び方法
US10681083B2 (en) System and method for detecting replay attack
US10735464B2 (en) System and method for detecting replay attack
US20230289788A1 (en) Systems and methods for addressing security-related vulnerabilities arising in relation to off-blockchain channels in the event of failures in a network
US10764031B2 (en) Blockchain system for pattern recognition
AU2020414467B2 (en) Partially-ordered blockchain
EP4332870A1 (en) Transaction data processing method and apparatus, computer device and storage medium
US20200136833A1 (en) Asset management method and apparatus, and electronic device
CN112868210B (zh) 区块链时间戳协议
JP7319961B2 (ja) 一対の結合ブロックチェーンを構成するバイナリブロックチェーンに関連するコンピュータ実装システム及び方法
CN111445333A (zh) 区块生成方法、装置、计算机设备以及存储介质
CN113259130B (zh) 一种交易数据处理方法、装置、设备以及介质
CN112074862A (zh) 基于消息反馈的存储管理
WO2024093593A1 (zh) 基于多区块链的数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品
Peterson Detecting Selfish Mining Attacks Against a Blockchain Using Machine Learning
Hartenstein TEE-Based Distributed Watchtowers for Fraud Protection in the Lightning Network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210525

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210624

R150 Certificate of patent or registration of utility model

Ref document number: 6905059

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250