JP7339965B2 - ノードのネットワークにおいてデータ・パケットを伝搬するためのシステム及び方法 - Google Patents

ノードのネットワークにおいてデータ・パケットを伝搬するためのシステム及び方法 Download PDF

Info

Publication number
JP7339965B2
JP7339965B2 JP2020562715A JP2020562715A JP7339965B2 JP 7339965 B2 JP7339965 B2 JP 7339965B2 JP 2020562715 A JP2020562715 A JP 2020562715A JP 2020562715 A JP2020562715 A JP 2020562715A JP 7339965 B2 JP7339965 B2 JP 7339965B2
Authority
JP
Japan
Prior art keywords
node
mapping
data packets
nodes
relay
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
JP2020562715A
Other languages
English (en)
Other versions
JP2021523619A (ja
Inventor
バルトルッチ,シルビア
マデオ,シモーネ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nchain Holdings Ltd
Original Assignee
Nchain Holdings Ltd
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 Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of JP2021523619A publication Critical patent/JP2021523619A/ja
Priority to JP2023136871A priority Critical patent/JP2023159363A/ja
Application granted granted Critical
Publication of JP7339965B2 publication Critical patent/JP7339965B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、一般にコンピュータ・ネットワークに関し、特に、ノードのネットワークにおいてデータを伝搬するための方法及び装置、電子通信、及びネットワーキング技術に関する。それはブロックチェーン技術に関連する用途に特に適している。特に、データの安全な伝送、第三者による潜在的に悪意のあるイベント、即ち攻撃の低減に関連する。
この文書において「ブロックチェーン」という用語は電子的な、コンピュータ・ベースの、分散型のあらゆる形態の台帳を含むように使用される。これらはコンセンサス・ベースのブロックチェーン及びトランザクション・チェーン技術、許可型及び非許可型の台帳、共有台帳、及びそれらの変形を含む。ブロックチェーン技術の最も広く知られたアプリケーションはビットコイン台帳であるが、他のブロックチェーン実装も提案され開発されている。便宜上及び説明の目的のために、ビットコインが本願で参照されるかもしれないが、本発明はビットコイン・ブロックチェーンの用途に限定されず、代替的なブロックチェーン実装及びプロトコルも本開示の範囲に該当することに留意すべきである。用語「ユーザー」は、本願では人間又はプロセッサ・ベースのリソースを指す可能性がある。用語「ビットコイン」は、(元来の)ビットコイン・プロトコル/実装/プラットフォームから派生するプロトコル/実装/プラットフォームのすべてのバージョン及びバリエーションを含むように意図されている。
ブロックチェーンは、ピア・ツー・ピアの電子台帳であり、これはブロックから構成されるコンピュータ・ベースの非セントラル化された分散型のシステムとして実装され、そのブロックはトランザクションから構成される。各トランザクションは、ブロックチェーン・システムの参加者の間でデジタル資産のコントロールの移転をエンコードするデータ構造であり、少なくとも1つの入力と少なくとも1つの出力とを含む。各ブロックは、先行するブロックのハッシュを含み、それらのブロックは、その発端以来ブロックチェーンに書き込まれてきたすべてのトランザクションの永続的で変更できない記録を作成するようにともにチェーン化される。トランザクションは、トランザクションの出力が誰によってどのようにアクセスされ得るかを指定する、各自の入力及び出力に埋め込まれたスクリプトとして知られる小さなプログラムを含む。ビットコイン・プラットフォームでは、これらのスクリプトはスタック・ベースのスクリプト言語を使用して書かれる。
トランザクションがブロックチェーンに書き込まれるために、それは「検証」されなければならない。ネットワーク・ノード(マイナー)は、各々のトランザクションが有効であることを保証するための作業を実行し、有効でないトランザクションはネットワークから拒否される。ノードにインストールされているソフトウェア・クライアントは、ロッキング及びアンロッキング・スクリプトを実行することによって、未使用トランザクション(UTXO)に関するこの検証作業を実行する。ロッキング及びアンロッキング・スクリプトの実行がTRUEと評価する場合、トランザクションは有効であり、そのトランザクションはブロックチェーンに書き込まれる。従って、トランザクションがブロックチェーンに書き込まれるためには、i)トランザクションを受信する第1ノードにより検証され---トランザクションが検証されると、ノードはそれをネットワーク内の他のノードへ中継し;ii)マイナーにより構築される新たなブロックに追加され;iii)マイニングされる、即ち過去のトランザクションの公の台帳に追加されなければならない。
ブロックチェーン技術は、暗号通貨実装の用途で最も広く知られているが、デジタル起業家は、新しいシステムを実装するために、ビットコインが基礎を置く暗号セキュリティ・システムと、ブロックチェーンに格納されることが可能なデータとの両方の利用を検討し始めている。ブロックチェーンが、暗号通貨の領域には限定されない、自動化されたタスク及びプロセスに使用され得るならば、非常に有利であろう。このようなソリューションは、ブロックチェーンの利点(例えば、イベントの永続的な改竄できない記録、分散処理など)を活用することができる一方、そのアプリケーションには、より豊富な汎用性がある。
ビットコインのようなブロックチェーン技術の認識されている利点の1つは、トランザクションの匿名性である。ビットコイン・ユーザーの個人的な詳細は、ビットコイン・アドレスに正式かつ明示的にはアタッチされておらず、ブロックチェーンのビットコイン台帳は、公のアドレス情報を含むだけである。しかしながら、ブロックチェーンは、インターネット上で動作する分散型のピア・ツー・ピア・ネットワークとして構造化されているので、ユーザーをネットワーク活動にリンクさせるためにインターネット・プロトコル(IP)アドレス情報を利用する攻撃によって、トランザクションの匿名性は損なわれてしまう可能性がある。例として、ブロックチェーン・ベースのネットワークで実行される、IPトラフィック分析のような匿名解除攻撃は、例えばネットワーク上でユーザーによってサブミットされるトランザクションを監視し、公に利用可能な情報を使ってトランザクションをそのソースにリンクすることを(例えばユーザーの公開鍵を彼らのIPアドレスにリンクすることによって)、関心のある第三者が実行できるようにする可能性がある。
トラフィック分析はブロックチェーン・ベースのネットワークにとって特に問題であり、それはネットワーク・ノードによる及びそれらの間のトランザクションの伝搬を当てにする。トランザクションを受信するネットワーク内の各ノードは、トランザクションを検証し、それをピア・ノードに送信する。ビットコイン・プロトコルでは、ノードはトランザクションのリストを含む“INV”メッセージをピア・ノードに送信し、“INV”メッセージで通知されたトランザクションの何らかのサブセットを選択する“GETDATA”応答メッセージを受信する。次いで、ノードは要求されたトランザクションをピア・ノードに送信する。このプロセスは、ノードが接続されている各ピア・ノードに対して実行される。攻撃者は、トランザクションがネットワーク内で伝搬される場合に伝送されるデータを傍受して分析し、最終的に、トランザクションの送信元と送信先をリンクするために使用することが可能な情報を獲得する可能性がある。
トラフィック分析又は他のタイプの匿名解除攻撃によってネットワーク匿名性が害を受ける可能性を減らすことが可能な、ブロックチェーン・ベースのネットワークでトランザクションを伝搬するための技術を提供することが望ましい。より一般的には、匿名解除攻撃に対する脆弱性を減らすために、ピア・ツー・ピアネットワークのノード間でデータを中継する技術を提供することが望ましい。
そのような対策が本件で考案されている。
即ち、本発明によれば、添付の特許請求の範囲で定められるような方法及び装置が提供される。
本発明は、ノードのネットワークでデータ・パケットを伝搬する、コンピュータで実行される方法を提供することが可能である。ネットワーク内の各ノードは他のノードに対する1つ以上のコネクションを有することが可能である。方法は、第1期間の間に第1データ・パケットのセット(集合)を収集するステップであって、セットはネットワーク内の1つ以上の第1ノードから受信した少なくとも1つのデータ・パケットを含む、ステップ;ノードに接続された1つ以上の隣接ノードへの中継のために、セットのうちの第1データ・パケットを指定する第1マッピングを生成するステップ;第1マッピングに対する非相関メトリック値を計算するステップ;及び、第1マッピングに対する非相関メトリック値が第1条件を満足するかどうかを判断するステップを含むことが可能である。第1マッピングに対する非相関メトリック値が第1条件を満足しない旨の判断に応答して、本方法は:ノードに接続された1つ以上の隣接ノードへの中継のために、セットのうちの第1データ・パケットを指定する、第1マッピングのものとは異なる指定を定める第2マッピングを生成し;第2マッピングに対する非相関メトリック値を計算し;及び、第2マッピングに対する非相関メトリック値が第1条件を満足する旨の判断に応答して、第2マッピングに従ってセットの第1データ・パケットを隣接ノードへ伝送するステップを更に含む。
一部の実装において、第1マッピングは、セットのうちの第1データ・パケット各々を隣接ノードへ中継する予想される時間を示し、第1マッピングを生成するステップは:1つ以上の隣接ノードの異なるサブセット(部分集合)への中継のために、同じ送信元を有する任意の2つのデータ・パケットを指定する第1サブ・マッピング;及び、同じ時間インターバルの中で1つ以上の第1ノードからノードにより受信された又はノードで生成された任意の2つのデータ・パケットに対して中継の異なる予想される時間を指定する第2サブ・マッピング;のうちの少なくとも1つを決定するステップを含むことが可能である。
一部の実装において、第2マッピングを生成するステップは:セットの第1データ・パケットのうちの少なくとも1つについて:第1データ・パケットのうちの少なくとも1つが第1マッピングによって中継のために指定される隣接ノードの第1セットを決定するステップ;第1セットとは異なる隣接ノードの第2セットであって、第1セットと同じ濃度(cardinality)を有する第2セットを選択するステップ;及び、隣接ノードの第2セットへの中継のために少なくとも1つの第1データ・パケットを指定するステップを含むことが可能である。
一部の実装において、方法は、セットのうちの任意の2つの異なる第1データ・パケットについて:2つの第1データ・パケットそれぞれが第1マッピングにより指定される隣接セット間の類似性尺度を取得するステップ;及び、類似性尺度が第2条件を満足している旨の判断に応答して、セットの第1データ・パケットの、1つ以上の隣接ノードに対する第3マッピングを生成するステップ;を更に含むことが可能である。
一部の実装において、隣接セットはベクトルとして表現可能であってもよく、類似性尺度は隣接セットのベクトル表現間のコサイン類似度を含むことが可能である。
一部の実装において、類似性尺度が第2条件を満足していることを判断するステップは、コサイン類似度が、値の所定の範囲の外に出ることを判断するステップを含むことが可能である。
一部の実装において、隣接セット間の類似性尺度は、第1マッピングの非相関メトリック値を算出する前に取得されることが可能である。
一部の実装において、第1マッピングが第1条件を満足するかどうかを判断するステップは:第1マッピングに対する非相関メトリック値S(R,n)と第1非相関メトリック値Snc(R,n)との間の差分を計算するステップであって、第1マッピングに対する非相関メトリック値は、第1期間の間に収集される第1データ・パケットの総数と、第1マッピングにより1つ以上の隣接ノードのそれぞれに指定された第1データ・パケット数とに基づいて計算される、ステップ;及び、計算された差分を所定の差分閾値と比較するステップを含むことが可能である。
一部の実装において、第1マッピングに対する非相関メトリック値は、
Figure 0007339965000001
として計算されることが可能であり、cは第1マッピングによりそれぞれの隣接ノードに指定された第1データ・パケット数を表し、nは1つ以上の隣接ノードの総数を表し、Rは第1期間の間に収集された第1データ・パケットの総数を表す。
一部の実装において、第1非相関メトリック値は、
Figure 0007339965000002
として計算され、nは1つ以上の隣接ノードの総数を表し、Rは第1期間の間に収集された第1データ・パケットの総数を表す。
一部の実装において、方法は、1つ以上の隣接ノードへの中継のための、セットのうちの第1データ・パケットの新たなマッピングを生成する反復回数;第1非相関メトリック値からの計算された最小の差分に関連する現在の非相関メトリック値;及び、現在の非相関メトリック値に関連する現在のマッピング;をデータベースに格納するステップを更に含むことが可能である。
一部の実装において、方法は、反復回数は所定数に等しいかどうかを判断するステップ;及び、反復回数は所定数に等しい旨の判断に応答して、現在のマッピングに従って、セットのうちの第1データ・パケットを隣接ノードへ伝送するステップを更に含むことが可能である。
一部の実装において、方法は、第1マッピングに対する非相関メトリック値が第1条件を満足する旨の判断に応答して、第1マッピングに従って、セットのうちの第1データ・パケットを隣接ノードへ伝送するステップを更に含むことが可能である。
本発明は、上記又は本願の他の箇所で定められるような方法を実行するためのコンピュータ実現システムを提供することが可能である。
本発明は、プロセッサ実行可能命令を記憶する非一時的なプロセッサ読み取り可能な媒体を提供することが可能であり、プロセッサ実行可能命令は、プロセッサによって実行されると、上記又は本願の他の箇所で定められるような方法を、プロセッサに実行させる。
本願で説明される多くの実装例では、ブロックチェーン・トランザクションが具体的に参照されるが、本願で説明される方法及び装置は、非ブロックチェーン・トランザクション伝搬に関連して実装及び適用されてもよいことが理解されるであろう。より一般的には、本開示で説明される方法及び装置は、ピア・ツー・ピア・ネットワークのノード間で様々な異なるタイプのデータを伝搬する用途に適しているかもしれない。
本発明のこれら及び他の態様は、本願で説明される実施形態から明らかであり、実施形態を参照しながら解明されるであろう。次いで、本発明の実施形態を、単なる例示として、添付の図面を参照しながら説明する。
ブロックチェーンに関連付けられた例示的なネットワークを示す。 入力バッファ及び出力バッファを有する例示的なブロックチェーン・ノードを図式的に示す。 ノードの例示的なネットワーク内でトランザクションを伝搬するためのプロトコル、拡散ミキサ・プロトコル(DMP)の概略図である。 DMPによるノードのネットワークでのトランザクションの中継の例を示す。 DMPに従ってブロックチェーン・ネットワークでデータ・パケットを伝搬するための例示的なプロセスをフローチャート形式で示す。 DMPに従ってブロックチェーン・ネットワークでデータ・パケットを伝搬するための別の例示的なプロセスをフローチャート形式で示す。 DMPに従ってブロックチェーン・ネットワークでデータ・パケットを伝搬するための別の例示的なプロセスをフローチャート形式で示す。 ブロックチェーン・ネットワーク内のノードで生成又は受信したデータ・パケットを伝送するための例示的なプロセスをフローチャート形式で示す。 ブロックチェーン・ネットワーク内のノードで生成されたデータ・パケットを伝送するための例示的なプロセスをフローチャート形式で示す。 ブロックチェーン・ネットワーク内のノードで受信されたデータ・パケットを中継するための例示的なプロセスをフローチャート形式で示す。 ノードのネットワークにおけるデータ・パケットの伝搬における宛先混合の例を示す。 ノードのネットワークにおけるデータ・パケットの遅延中継の例を示す。 データ・パケットをピア・ノードに中継するための例示的なプロセスをフローチャート形式で示す。 データ・パケットをピア・ノードに中継するための別の例示的なプロセスをフローチャート形式で示す。 ピア・ノードに対する中継の割り当てを生成するための例示的なアルゴリズムを示す。 ピア・ノードに対する中継の割り当てを生成するための例示的なアルゴリズムを示す。 ピア・ノードに対する中継の割り当てを生成するための例示的なアルゴリズムを示す。 例示的なブロックチェーン・ノードをブロック図の形式で示す。
本願において、用語「及び/又は」は、リスト化された要素の任意の1つ単独、任意の部分的な組み合わせ、又はすべての要素、を含むリストされた要素のすべての可能な組み合わせ及び部分的な組み合わせを、必ずしも追加の要素を排除することなくカバーするように意図されている。
本願において、「・・・又は・・・の少なくとも1つ」という言い回しは、リスト化された要素の任意の1つ単独、任意の部分的な組み合わせ、又はすべての要素、を含むリストされた要素の任意の1つ以上を、必ずしも何らかの追加の要素を除外することなく、また必ずしもすべての要素を必須とすることなく、カバーするように意図されている。
図1が先ず参照され、これは本願においてブロックチェーン・ネットワーク100と呼ばれてもよいブロックチェーンに関連した例示的なネットワークをブロック図の形式で示している。ブロックチェーン・ネットワーク100はピア・ツー・ピアのオープン・メンバーシップ・ネットワークであり、招待なしに、又は他のメンバーからの同意なしに、誰でも参加することができる。ブロックチェーン・ネットワーク100が動作する前提のブロックチェーン・プロトコルのインスタンスを実行する分散された電子装置は、ブロックチェーン・ネットワーク100に参加することができる。そのような分散された電子装置は、ノード102と呼ばれてもよい。ブロックチェーン・プロトコルは、例えばビットコイン・プロトコル、又は他の暗号通貨であってもよい。
ブロックチェーン・プロトコルを実行し、ブロックチェーン・ネットワーク100のノード102を形成する電子装置は、例えば、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、サーバーのようなコンピュータ、スマートフォンのようなモバイル・デバイス、スマート・ウォッチのようなウェアラブル・コンピュータ、又はその他の電子装置を含む種々のタイプのものであってよい。
ブロックチェーン・ネットワーク100のノード102は、有線及び無線の通信技術を含むことが可能な適切な通信技術を使用して互いに結合される。多くの場合、ブロックチェーン・ネットワーク100は、少なくとも部分的にインターネット上に実装され、一部のノード102は、地理的に分散された位置に配置されてもよい。
ノード102は、ブロックにグループ化されたブロックチェーン上のすべてのトランザクションのグローバル台帳を維持し、各ブロックは、チェーン内で先行するブロックのハッシュを含む。グローバル台帳は分散された台帳であり、各ノード102は、グローバル台帳の完全なコピー又は部分的なコピーを記憶することができる。グローバル台帳に影響を及ぼすノード102によるトランザクションは、グローバル台帳の有効性が維持されるように、他のノード102によって検証される。ビットコイン・プロトコルを使用するもののようなブロックチェーン・ネットワークの実装及び動作の詳細は、当業者に理解されるであろう。
各トランザクションは、典型的には、1つ以上の入力及び1つ以上の出力を有する。入力及び出力に埋め込まれたスクリプトは、トランザクションの出力が誰によってどのようにアクセスされ得るのかを指定する。トランザクションの出力は、トランザクションの結果として値が転送される先のアドレスであってもよい。従って、この値は、未使用トランザクション出力(UTXO)として、その出力アドレスに関連付けられる。そして、後続のトランザクションは、その価値(value)を消費又は分配するために、入力としてそのアドレスを参照することができる。
ノード102は、堅牢で安全な分散された公の台帳を維持するために、ネットワーク・ルーティングから財布(ウォレット)サービスに至るまで、多くの異なる機能を果たすことができる。「フル・ノード」は、ブロックチェーンの完全かつ最新のコピーを含み、それゆえにパブリック台帳における任意のトランザクション(使用済み又は未使用のもの)を検証することができる。「ライトウェイト・ノード」(又はSPV)は、ブロックチェーンのサブセットを維持し、「簡易決済検証」技術を用いてトランザクションを検証することができる。ライトウェイト・ノードは、ブロックのヘッダをダウンロードするだけであり、各ブロック内のトランザクションをダウンロードしない。従ってこれらのノードは、それらのトランザクションを検証するためにピアを当てにする。フル又はライトウェイト・ノードであることが可能な「マイニング・ノード」は、トランザクションを検証し、ブロックチェーン上で新たなブロックを作成する責任を負う。典型的にはライトウェイト・ノードである「ウォレット・ノード」は、ユーザーのウォレット・サービスを処理する。ノード102は、TCP/IP(伝送制御プロトコル)のようなコネクション指向プロトコルを用いて互いに通信する。
ノードがトランザクションをピアに送信することを望む場合、「INVENTORY」メッセージがピアに送信され、送信ノードに知られている1つ以上のインベントリ・オブジェクトを伝送する。ピアが「GETDATA」メッセージ、即ち完全なトランザクション要求を返す場合、トランザクションは「TRANSACTION」メッセージを使用して送信される。トランザクションを受信したノードは、それが有効なトランザクションであることを前提に、それを同じ方法でピアに転送する。
図2をここで参照すると、これは入力バッファ202及び出力バッファ204を有する例示的なノード200を図式的に示している。例示的なノード200は、intA、intB、intC、intDなどとして参照される複数のピア・ノードとのネットワーク・インターフェースを有する。入力バッファ202は、種々のピア・ノードからの入力トランザクションを示し、出力バッファ204は、それぞれのインターフェースを介してピア・ノードへ伝送するための、トランザクションに対応する出力ネットワーク・パケットを示す。ネットワーク・パケットは、ノード200のオペレーティング・システムによって提供されるプリミティブに従って、アプリケーション・レベルでシリアルに送受信される。トランザクションxが単一のイーサーネット/IPパケットに合っていたと仮定すると、m個のピアへのその伝送は、m個の異なる出力ネットワーク・パケットのバッファリングを必要とする。入力及び出力の双方のネットワーク・パケットは、他の情報と共に、シリアル化されたトランザクションと、送信/受信ピアに対するTCP/IP接続を表す論理インターフェースIDとを含む。
ビットコイン・トランザクションが生成されると、ソース・ノードはトランザクション・メッセージをネットワーク上でブロードキャストする。一般に、クライアントがトランザクションを生成すると、それは出力バッファ204に入れられる。トランザクションは、直ちにピアへ転送される場合とされない場合がある。ビットコイン・ネットワークの現在の実装では、トランザクションは「拡散伝搬」と呼ばれるメカニズムによって伝搬され、これにより各トランザクション・ソースはトランザクションを自身の近隣へ独立した指数遅延(independent,exponential delay)とともに送信する。伝搬における遅延はランダムであり、悪意の攻撃者のタイミング推定に不確実性を導入するのに有用である。ピアが特定のトランザクションを受信すると、ピアは同じトランザクションの将来の中継を受け入れない可能性があり;例えば、トランザクション・ハッシュはピアのメモリ・プールに格納され、ピアが同一のトランザクションを拒否できるようにすることが可能である。ネットワークを介するトランザクションの「拡散」は対称的であり、これは、転送ノードが、トランザクション・ブロードキャストに影響を及ぼすために、近隣ノードのIPアドレスに関する情報を利用しないことを意味する。例えば、「標準の」拡散プロセス(ビットコイン・プロトコルで利用されているもの)では、ブロードキャストするノードのピアすべてが同じトランザクションを受け取り、各々のリレー・インスタンスにおいて、一度に1つのトランザクションのみがピアごとに中継される。この「拡散」の対称的な性質は、匿名解除攻撃を行う際に、ネットワークのピア・ツー・ピア・グラフ構造の知識を有する悪意ある第三者によって悪用される可能性がある。
本開示は、トラフィック分析攻撃に対する保護を改善するために、ブロックチェーン・ネットワークでのトランザクション中継のための代替技術を提供する。より詳細には、提案される中継プロトコルは、トランザクションのソース・ノードとそれらのIPアドレスとの間のコネクションを偽装、隠蔽、又は不明瞭化するために使用されることが可能である。
トランザクション中継プロトコル、拡散ミキサ・プロトコル(DMP)が提案される。DMPは2つの独立した拡散ステージを含む。第1ステージ(「ランダム差分リレー」、即ちRDR)は、中継されるトランザクションの混合、及びトランザクション・ソースの不明瞭化を可能にする。ランダム差分リレー・ステージでは、各ノードは、トランザクションをネットワークにブロードキャストする前に、所定の長さの時間を待機し、ピアから複数のトランザクションを受信及び収集する。次いで、ノードは「エントリ・ノード」に対する出力コネクションを作成し、ほぼ同じタイムスタンプを有する異なるトランザクションを、これらのエントリ・ノードのうちの任意に(例えばランダムに)選択されたサブセットに送信する。ノードのエントリ・ノードは、出力コネクションがノードから確立されることが可能な先の隣接ノードである。エントリ・ノードの選択におけるランダム性と中継されるトランザクションのダイバーシティは、ネットワーク・トポロジの再構成を、攻撃者にとってより困難にすることが可能である。
第2ステージ(「標準拡散」)は、ネットワーク内でのトランザクションのタイムリーで信頼性の高い伝搬を保証する。標準拡散ステージでは、各ノードは、同じトランザクションを自身のすべてのエントリ・ノードに中継し、各々の中継インスタンスにおいて、一度に1つのトランザクションのみが、エントリ・ノードごとに中継される。
ブロックチェーン・ネットワークのようなノードのネットワークでは、1つ以上のノードがDMPを実装することができることに留意されたい。具体的には、ネットワークの1つ以上のノードは、DMPに参加することによって、受信したデータ・パケットをそのエントリ・ノードに中継できる可能性がある。参加するノードは、例えば特定のデータ・パケットを伝搬するために、RDRプロセスと標準拡散プロセスとの間で選択を行うことができる。ネットワークのノードは、DMPに参加することを選択することができ、非セントラル化された方式によって、又は中央当局によって組織される参加ノードのグループへの包括によって、プロトコルに参加することができる。参加ノードは、DMPに従って出力ネットワーク・パケットを中継する。特に、参加ノードがデータ・パケットを受信した場合、ノードは、DMPによって規定されたルールを使用して、そのノードに対して選択された伝搬モードに従って、受信データ・パケットを転送することができる。
トランザクション中継のために提案されるDMPは、図3~7を参照して説明される。DMPの概略的な可視化は図3に示される。ノードのブロックチェーン・ネットワーク300の例が示されている。各ノードはネットワーク端末(即ち、ブロックチェーン・ノード)を表し、エッジはノード間のリンクを表す。この説明の目的のために、各リンクに関し、一度に単一ビットを送受信することが可能であると想定される。
この例のネットワーク300では、ノードが新しいトランザクションを受信した場合に、それがネットワークを介して他のすべてのノードに伝搬されるように、各ノードは未確認のトランザクションのセットを維持する。各ノードは、新しいトランザクションを検証して各自それぞれのローカル・セットに格納し、新しいトランザクションを未だ有していない任意のピア・ノードに、新しいトランザクションを転送する。ブロックチェーン・ネットワーク300のピア・ツー・ピアの性質に起因して、すべてのノードは新しいトランザクションを同時には受信せず、これは、新しいトランザクションが、ネットワーク300内のすべてのノードに到達するまでに幾らか時間がかかることを意味する。
図3は、特定のトランザクションTx1を伝搬するためのDMPの2つのステージ、即ちTx1のためのランダム差分リレー302及び標準拡散304を示す。トランザクションTx1のソース・ノード310は、時間tにおいてトランザクションTx1を生成するか、又はピア・ノードからそれを受信する可能性がある。DMPに従って、ソース・ノード310は、受信した/待ち行列化されたトランザクションのブロードキャストを開始する前に、隣接ノードから少なくとも1つ以上の入力トランザクションを受信するように待機する。図3の例では、トランザクションTx2が時間tにおいてソース・ノード310によって受信されると、トランザクションTx1及びTx2は、時間tにおいてソース・ノード310のエントリ・ノードのうちの任意に選択されたサブセットに送信される。トランザクションTx1は、エントリ・ノード310c及び310dに転送される一方、トランザクションTx2は、エントリ・ノード310a及び310bに転送される。図3の例は例示であるに過ぎず;特に、ソース・ノード310は、その受信したトランザクションの何れかを伝搬する前に、2つより多い入力トランザクションを受信することを待機することができる。
エントリ・ノードは、受信したトランザクションを自身のピアに中継する。例えば、ノード310b及び310dそれぞれは、Tx2及びTx1を1つ以上の各自の近隣ノードに転送する。DMPでは、トランザクションの各々の受信者は、受信したトランザクションを伝搬するモードを独立に選択する。ノード320は、自身の拡散モードとして標準拡散を選択するノードの例である。図3に示すように、ノード320は、同じトランザクションTx1を、そのすべてのエントリ・ノード、即ち320a、320b、320c、320d、及び320eに転送する。
図5をここで参照すると、これはDMPのRDRステージにおいてネットワーク内でデータ・パケットを伝搬するための例示的なプロセス500をフローチャート形式で示している。プロセス500は、例えばネットワーク100のようなブロックチェーン・ネットワークのノードによって実現される。この文脈では、ノードは、マイニング・ノード、フル・ノード、検証ノード、又は、ブロックチェーン・ネットワーク内の他のタイプの個別のブロックチェーン・ノードを指すように理解されてもよい。ノードは、ネットワーク/コネクション、コンピューティング・リソース、及びブロックチェーン・プロトコルを実装した実行ソフトウェアを備えたコンピューティング・デバイスである。
オペレーション502において、ノードに関連するクライアントは、第1タイプの少なくとも1つのデータ・パケットを生成する。ブロックチェーン・ネットワークの状況では、第1タイプのデータ・パケットはブロックチェーン・トランザクションを含むことができる。即ち、クライアントは、ネットワークの他のノードに伝搬されるべきブロックチェーン・トランザクションを生成してもよい。
オペレーション504において、ノードは、第1期間Tの間に第1タイプのデータ・パケットのセットを収集する。即ち、ノードは、ある期間にわたって、第1タイプのデータ・パケットを蓄積する。このセットは、少なくとも1つの生成されたデータ・パケットと、ネットワーク内の1つ以上のピア・ノードから受信された第1タイプの少なくとも1つのデータ・パケットとを含む。このようにして、ノードによって生成されたデータ・パケットは、隣接ノードから受信した同じタイプのこれらのデータ・パケットと混合される。ブロックチェーン・ネットワークでは、期間Tの間に、ノードは、中継されるべき入力トランザクションのためにネットワークを監視することによって、トランザクションのセットを蓄積する。期間Tの長さは、事前に定められてもよい。幾つかの例示的な実装では、時間の長さは、平均接続時間、単位時間当たりに受信されるトランザクションの平均数、又は、ネットワーク内のノードの中心性(即ち、そのノードへの入力コネクションの数)などのパラメータに基づいて変化してもよい。期間Tの間に、ノードは、第1タイプのデータ・パケットを蓄積するように許可されているだけであってもよく、従って、期間Tの間に、第1タイプの如何なるデータ・パケットの送信も防止される可能性がある。
オペレーション506において、ノードは、収集されたデータ・パケットの異なるセットが転送されることになるエントリ・ノードのサブセットを任意に選択する。より具体的には、収集されたデータ・パケットのセット内の各データ・パケットに対して、ノードは、そのエントリ・ノード(即ち、ノードが出力コネクションを有する相手である隣接ノード)のうちの2つ以上を任意に選択し、選択されたエントリ・ノードに、中継のためのデータ・パケットを割り当てる。例えば、エントリ・ノードは、ランダムに選択されてもよい。ノードは、幾つかの実装において、ピアの新鮮なアドレスを取得するためにネットワークに問い合わせを行う可能性がある。ビットコイン・ネットワークでは、ノードは、ビットコイン・コア、ビットコインJ、又はその他のブロックチェーン・プロトコルに埋め込まれ、ビットコイン(又は他のブロックチェーン)コミュニティ・メンバーによって維持される1つ以上のデータベース・ソース名(DSN)を照会することができる。応答として、ノードは、入力コネクションを受け入れる可能性がある、利用可能なフル・ノードのIPアドレスを示す1つ以上のDSNレコードを受け取る。ピア・ディスカバリの非セントラル化されたバージョンは、IPアドレス及びポート番号を含む「ADDR」メッセージを、ネットワークに参加する新しいノードにピアが送信することによって、実現される可能性がある。
幾つかの実装において、オペレーション506の一部として、ネットワーク内の1つ以上のノードは、テーブル又は他のデータ構造を維持し、データ・パケットが中継されるべきエントリ・ノードに対する、収集されたデータ・パケット各々の割り当てを追跡することができる。図4は、ブロックチェーン・ネットワークにおけるDMPのRDRステージにおけるソース・ノード410のトランザクション中継の例を示す。表1は、収集されたトランザクションTx1-Tx5の、ソース・ノード410のエントリ・ノードへの割り当て例である。エントリ・ノードは、ノードA、B、C、D、E、F、G、及びHとして示されている。図4及び表1に示すように、ソース・ノード410は、各トランザクションを少なくとも2つのエントリ・ノードに中継し、複数のトランザクションが同じノードを介して中継されることが可能である。例えば、トランザクションTx3、Tx4、及びTx5は、すべてエントリ・ノードEを介して同時に中継される。より一般的には、RDRプロセスでは、複数のデータ・パケットが、転送ノードによって同じピア・ノードに同時に中継されることが可能である。すべてのエントリ・ノードが、DMPの所与のインスタンスでソース・ノード410からトランザクションを受信するわけではない。表1の例では、エントリ・ノードC及びGは、ソース・ノード410から如何なるトランザクションも受信していない。
表1
Figure 0007339965000003
図5を再び参照すると、オペレーション508において、収集された各データ・パケットについて、ノードは(任意に又はランダムに)選択されたエントリ・ノードの各々にデータ・パケットを送信する。選択された各エントリ・ノードは、そのエントリ・ノードに対してランダムに選択されたデータ伝搬モードを使用して、ネットワーク内の1つ以上の第2ノード(例えば、エントリ・ノードのピア)にデータ・パケットを中継するように構成される。即ち、選択された各エントリ・ノードは、そのエントリ・ノードに対して独立に選択された伝搬モードを使用して、受信したデータ・パケットを1つ以上の自身のピアに転送する。図4の例示的なトランザクション中継では、トランザクションTx1-Tx5の各々は、トランザクションが割り当てられるエントランス・ノードに転送される。
ソース・ノード410からトランザクションを受信する各ノードは、次いで、受信したトランザクションを(もしあれば)1つ以上の自身のピア・ノードに転送する際に使用する伝搬/拡散モードをランダムに選択する。特に、トランザクションを受信するエントリ・ノードは、標準拡散プロセス又はRDRプロセスに従ってトランザクションを中継することをランダムに選択する。2つのオプションの間の選択はランダムである。従って、DMPでは、2つの拡散プロセスが確率的に交替し、即ち、RDRステージと標準拡散ステージとの間に明確な分離はない。拡散プロセスのこの「混合(ミキシング)」の結果として、ランダム・データ伝搬により又は標準拡散により中継するノードの集合の間の分かれ目を識別することに基づいてネットワークのトポロジを再構築することは、攻撃者にとって、より困難になる。
幾つかの実装において、拡散モードのエントリ・ノードによるランダム選択は、中継されるデータ・パケットに加えて、ソース・ノードからメッセージを受信することを含んでもよい。その後、エントリ・ノードは、ランダム値(例えば、乱数)を生成し、それを受信メッセージに追加し、その結果を例えばSHA-256を使用してハッシュすることができる。その後、エントリ・ノードはハッシュ値を検査し、以後、ハッシュ値に関する所定のルールに基づいて拡散モードを取得することができる(例えば、ハッシュの最後の文字が数字であるならば、拡散モードとしてRDRを選択する)。代替的又は追加的に、拡散モードの選択は、任意のランダム化されたプロセス(例えば、乱数発生器)を用いて実行されることが可能であり、ここで、入力及び/又は出力コネクションの数、単位時間当たりに受信されるデータ・パケットの平均数などのような要因に依存して、一方のモードを選択する確率は、他方のモードを選択する確率より大きくてもよい。
特定のデータ・パケットを伝搬する際に、伝搬ノードに対する匿名性保護のレベルと全体的な伝搬速度とのバランスをとることが望ましい場合がある。特定のレベルの匿名性を保証する手段が過剰に煩雑である場合(例えば、過剰に多くのネットワーク・リソースを必要とする場合、ネットワークのノードがデータ・パケットの中継に意図的に十分に活用されていない等の場合)、タイムリーに拡散するデータにおけるネットワークの有効性が損なわれる可能性がある。従って、幾つかの実装において、中継ノードによる伝搬モードのランダム選択は、重み付けされてもよい。特に、2つ以上の伝搬モード(即ち、RDR、標準拡散など)の各々に異なる確率が指定されてもよく、その結果、確率は、データ伝搬の匿名性及び速度の比例重要性を反映する。例えば、幾つかの例では、より高い予め定められた確率が、特定のネットワークのノードについてRDRモードに関連付けられ、伝搬されるデータの匿名性を維持することに比例的により大きな重みを置くことを反映してもよい
図5のプロセス500は、第1タイプのそれ自身のデータ・パケットを生成するノードによって実現される。特に、DMPに参加し、ネットワークの残りの部分への伝搬のためにデータ・パケットを生成するノードは、プロセス500を実行する。図6は、中継ノード、又は異なるノードによって生成されたデータ・パケットを転送又は中継するノード、によって実行されるプロセス例を示す。即ち、中継ノードは、特定のデータ・パケットの中継の間に、転送するためのデータを自らは生成せず、その代わりに、データ・パケットを「中継」する機能を果たすノードである。オペレーション550において、中継ノードは、自身のデータ伝搬モードを独立に選択する。中継ノードは、例えば、RDRモードと標準拡散モードとの間で選択することができる。標準拡散モードが選択され場合(オペレーション552で判別されることが可能である)、中継ノードは、オペレーション554において、データ・パケットを自身のすべてのエントリ・ノードに転送する。図6の例では、伝搬モードの選択は、2つの可能なオプションの間にあるが;この例は限定ではなく、他の例では3つ以上の可能な伝搬モードがあり得る。プロセス500において、選択されたモードがRDR である場合(オペレーション552で判別されることが可能である)、中継ノードは、図5のオペレーション504、506、及び508に対応するステップ556、558、及び560を実行する。
図7をここで参照すると、これはネットワークでデータ・パケットを伝搬するための例示的なプロセス600をフローチャート形式で示している。プロセス600は、ブロックチェーン・ネットワークの他のノードへの複数の入力及び出力コネクションを有するブロックチェーン・ノードで実装されてもよい。
プロセス600のオペレーション602、604、606、及び610はそれぞれ、プロセス500のオペレーション502、504、506、及び508に対応する。オペレーション608において、ノードは、トリガ条件が満たされているかどうかを、(収集されたデータ・パケットをオペレーション610で指定されるエントリ・ノードに送信する前に)判断する。特に、適切なトリガ条件が満たされていることを検出したことに応答して、データ・パケットの送信が実行される。トリガ条件が満たされない場合、ノードは、そのエントリ/ピア・ノードに上記の如何なるデータ・パケットも中継することなく、第1タイプのデータ・パケットを収集し続ける。
トリガ条件は、十分な数の入力データ・パケットを収集すること、及び/又は十分な期間にわたって入力データ・パケットを収集することを、ノードに指示するために使用されることが可能である。例えば、十分であることは、所定の閾値に基づいて判断されてもよい。複数の入力データ・パケットを、例えばネットワーク内のピア・ノードにそれらを同時に伝搬する前に、収集することによって、ノードから発信される中継トラフィックを監視する攻撃者は、中継されるデータ・パケットの正しいソースとしてノードを容易には識別できない可能性がある。
幾つかの実装において、トリガ条件は、オペレーション602においてノード602による少なくとも1つの第1タイプのデータ・パケットの生成時点以降の所定の期間の満了であってもよい。即ち、ノードは、上記の何らかのデータ・パケットがノードにより伝搬される前に、ノードが同じタイプのデータ・パケットを生成した時に始まる所定の期間にわたって、入力データ・パケット(例えば、トランザクション)を監視及び収集するように設計されてもよい。この条件は、同時にブロードキャストされることが可能な同じタイプのより多くのデータ・パケットを収集した後に、ノードによって生成されたデータ・パケットが伝搬されることを保証しようとする際に有用であり、それによって、生成されたデータ・パケットのソースとしてノードを正確に識別することを、攻撃者にとって困難にする。
幾つかの実装において、トリガ条件は、ノードのピアから少なくとも1つの第1タイプの入力データ・パケットの最初の受信時点からの所定の継続時間の満了であってもよい。即ち、ノードは、そのような入力データ・パケットのうちの最初のものが受信された時に始まる所定の期間にわたって、入力データ・パケットを監視及び収集するように設計されてもよい。この条件は、より多くのデータ・パケット(ノード自体によって生成されたか、又は他のピアから受信された何れかのデータ・パケット)が、ネットワークの残りの部分への何らかのブロードキャストの前に、ノードによって収集されることを保証しようとする際に有用である可能性がある。
幾つかの実装において、トリガ条件は、第1期間の間に収集されたデータ・パケットの数が閾値数に到達することであってもよい。特に、ノードは、第1期間の満了、又は所定の閾値数のデータ・パケットがノードによって収集されること、のうちの早い方まで入力データ・パケットを監視及び収集するように設計されてもよい。
ランダム差分リレーのための発見的方法
上述したように、ランダム差分リレーは、ノードのネットワークでトランザクションを伝搬するための「標準拡散」プロトコルから新しい試みを表す。RDRを実装する際、伝搬ノードは、ランダムに選択されたエントリ・ノードのサブセットに、異なるトランザクションを同時に中継する。伝搬ノードは、トランザクションが中継されるべき1つ以上のエントリ・ノードを、収集されたトランザクション各々にランダムに割り当てることによって、表1に示されるデータ構造のようなデータ構造を生成することができる。より一般的には、データ・パケットをピアに中継するネットワーク・ノードは、ノードによって収集された複数のデータ・パケット(即ち、受信されたか、又は、ローカルに生成されたもの)の各々に対して実行する中継タイプを指定する自身の内部ルーティング・データ構造を維持することができる。
本願で提案される拡散ミキサ・プロトコルの文脈では、RDRを実装するブロックチェーン・ネットワークの各ノードは、自身のルーティング・データ構造、即ち「RDRテーブル」を独立して構築することができる。RDRテーブルは、RDRプロトコルを採用する各ノードのトランザクション割り当て方式を定める。即ち、個々のノードのRDRテーブルは、どのトランザクションがどのピアに何時リレー又はルーティングされるべきかを管理するために使用される。RDRテーブルは、与えられた長さ等の時間、ΔTRDR、及びトランザクションのソース・ピアの受信又は生成されたすべてのトランザクションを追跡することが可能である。RDRテーブルは、例えば:トランザクションの最初のインスタンスの到着時間(「ToAタイムスタンプ」);トランザクションを中継するために選択された時間(「ToRタイムスタンプ」);及び/又はノードによって受信された同じトランザクションのインスタンス数のカウンタ、のような追加情報を含む可能性がある。RDRテーブルの例を以下に示す。
表2
Figure 0007339965000004
ノードのローカルRDRテーブルは、新しい情報(タイムアウト、受信/生成したトランザクション、ノード入力/出力キャパシティ制約など)が利用可能になると、動的に(即ち、リアルタイムで)更新されることが可能である。本開示は、個々のRDRテーブルの構築及び更新に寄与する様々な発見的方法、即ち「サブ・システム」を提供する。これらのサブ・システムは、RDRテーブルで指定されるトランザクション割り当てを更新するために適用される一組のルール又はガイドラインと考えられることが可能である。これらのサブ・システムにより包含される戦略は、個々のノードの中継動作によって生成されるネットワーク・トラフィックのバランスをとること及びトランザクション・ソースの不明瞭化を改善するのに有用である可能性がある。提案されるサブ・システムのセット、即ち、送信元(ソース)混合、中継(リレー)混合、送信先混合、到着時間(ToA)混合、及びソース制御は、並列に動作することが可能である一方、収集したトランザクション中継情報を併合し、ネットワーク・リソースの最適化された割り当てを提供するために、ロード・バランシング・モジュールを使用することができる。
図8をここで参照すると、これはネットワーク内のノードで生成又は受信したデータ・パケットを伝送するための例示的なプロセス700をフローチャート形式で示している。プロセス700は、提案されたサブ・システム/発見的方法の少なくとも1つのルールに従うトランザクション割り当て方式に従って、ネットワーク内でデータを伝搬する技術を表す。プロセス700は、例えば、図1のネットワーク100のようなブロックチェーン・ネットワークのノードによって実現される。より具体的には、プロセス700は、DMPに参加するノードによって実行され、ネットワークの残りの部分に伝搬するための第1タイプのデータ・パケット(例えば、トランザクション)を生成又は受信するように構成される。
オペレーション702において、ノードに関連するクライアントは、第1タイプの少なくとも1つのデータ・パケットを生成する。データ・パケットは、例えばブロックチェーン・トランザクションを含むことが可能である。
オペレーション704において、ノードは、第1期間Tの間に第1タイプのデータ・パケットのセットを収集する。即ち、ノードは、ある期間にわたって、第1タイプのデータ・パケットを蓄積する。このセットは、少なくとも1つの生成されたデータ・パケットと、ネットワーク内の1つ以上のピア・ノードから受信された第1タイプの少なくとも1つのデータ・パケットとを含む。このようにして、ノードによって生成されたデータ・パケットは、隣接するノードから受信されるのと同じタイプのデータ・パケットと混合される。
オペレーション706では、収集されたデータ・パケットの、ノードに接続された複数の隣接ノードへのマッピングが、決定される。マッピングは、セットの各データ・パケットの、隣接ノードに対する予想される中継時間を示す。この「マッピング」は、ネットワークのノードについて、個々のローカルRDRテーブルを構築するために使用される。本開示で説明される1つ以上のサブ・システム/発見的方法は、RDRテーブルの構築に(並行して、又は独立して)寄与することが可能である。特に、1つ以上の異なるサブ・マッピングが、収集されたデータ・パケットの隣接ノードへのマッピングを決定する際に適用されてもよい。サブ・マッピングは、少なくとも2つの異なるタイプのものであってもよい。サブ・マッピングの第1タイプは、隣接ノードの異なるサブセットに中継するために、同じソース(即ち、発信ノード)を有する任意の2つのデータ・パケットを指定する。以下に詳細に説明する「送信元混合」及び「中継混合」サブ・システムは、この第1タイプのサブ・マッピングの例である。第2タイプのサブ・マッピングは、ノードで生成されるか、又は同じ時間インターバル内でピア・ノードからノードにより受信された、任意の2つのデータ・パケットに異なる期待される時間を指定する。「到着時間混合」サブ・システムはこの第2タイプのサブ・マッピングの例である。
オペレーション708において、収集されたセットのデータ・パケットの隣接ノードへのマッピングが決定されると、データ・パケットは、決定されたマッピングに従って隣接ノードへ伝送される。
個々のサブ・システムは、RDRテーブルで定められるトランザクション割り当てを更新するために独立して実装されてもよいことが理解されるであろう。即ち、各サブ・システムは、他のサブ・システムとは独立に、RDRテーブルに対して別々に採用することができる。従って、個々のサブ・システムは、中継ノードにトランザクションを割り当てる異なる方法、従ってトランザクションを伝搬するための異なる技術を提供することができる。
送信元混合
送信元混合サブ・システムの根底にある原則は、ノードでローカルに生成されたトランザクションは、重複しないピアのサブセットに転送されるべきである、ということである。例示として、ノードxが2つのトランザクションtx及びtxi+1を生成する場合、それらのトランザクションの中継のために選択されたピアのセットS(tx)及びS(txi+1)はそれぞれ、以下を満たす。
Figure 0007339965000005

即ち、2つの連続するトランザクションに対するピアのセットは、少なくとも1つのピアだけ相違する。この不等式は、ノードで生成されたトランザクションの最初の中継のパターンに関し、悪意のある探索を分かりにくくするのに役立つ可能性がある。この概念は、次のように、送信元混合の度合いδSMに拡張することができる:
Figure 0007339965000006
図9をここで参照すると、これはネットワーク内のノードで生成されたデータ・パケットを伝送するための例示的なプロセス800をフローチャート形式で示している。プロセス800は、送信元混合サブ・システム/ヒューリスティックのルールに従ったトランザクション割当方式に従って、ネットワークでデータを伝搬する技術を表す。プロセス800は、例えば図1のネットワーク100のようなブロックチェーン・ネットワークのノードによって実現される。より具体的には、プロセス800は、DMPに参加し、ネットワークの残りの部分に伝搬するための第1タイプのデータ・パケット(例えば、トランザクション)を生成するノードによって実行される。
オペレーション802において、ノードに関連するクライアントは、少なくとも1つの第1タイプのデータ・パケットを生成する。データ・パケットは、例えば、ブロックチェーン・トランザクションを含むことが可能である。
ノードは、少なくとも1つの生成されたデータ・パケットの、隣接するノード(即ち、ピア)への第1マッピングを決定する。特に、ピアの複数のサブセットが、ノードで生成されたデータ・パケットを中継するために選択される。各データ・パケットは、第1マッピングによって中継ノードの特定のサブセットに関連付けられる。各データ・パケットについて、オペレーション804において、ノードによって以前に生成されていた所定数の第1タイプの第1データ・パケットが識別される。これらは、ノードによってピアに既に送信されたデータ・パケットであるか、又は以前に生成されたがノードのピアに未だ中継されていないデータ・パケットであるかもしれない。
オペレーション806において、第1データ・パケットに関連する中継ノード・セットのリストが得られる。中継ノード・セットは、第1データ・パケットがそれぞれ中継される(又は中継のために指定される)隣接ノード(ピア)を含む。即ち、中継ノード・セットは、第1データ・パケットの個々のものが割り当てられるノードのピアのサブセットを示す。
オペレーション808において、第1セットの中継ノードは、オペレーション806で得られたリスト内の中継ノード・セットとは異なる隣接ノードのセットを識別することに基づいて、選択される。例えば、第1セットの中継ノードは、取得された中継ノード・セットのリストに含まれていない2つ以上の隣接ノードのセットを任意に選択することによって、選択されてもよい。幾つかの実装において、選択された第1セットは、2つ以上のピアによって取得されたリストの中継ノード・セットと異なる、という要件が課される可能性がある。即ち、選択された第1セットの中継ノード・セットと、取得されたリスト内の任意の1つの中継ノード・セットとの間の交わり集合に属する要素の数に、上限が設定されてもよい。
プロセス800は、単一のデータ・パケットがノードで生成された後に、又はノードが複数の生成されたデータ・パケットを収集した後に、ノードによって実行されてもよい。特に、ノードは、(DMPのRDR段階と同様に)ある期間にわたって第1タイプのデータ・パケットを生成及び蓄積し、蓄積されたデータ・パケットの、中継ノード・セットへの第1マッピングを決定することができる。これらの場合、データ・パケットは、中継ノードの任意に選択されたサブセットにそれぞれ割り当てられてもよく、2つのそのようなサブセットが互いに等しくないことを保証する。
中継ノードの第1セットに含めるために選択される隣接ノードの数は、任意に決定されることが可能である。少なくとも幾つかの実装において、第1セットのために選択されるピアの数は、伝搬ノードの帯域幅要件(例えば、固定時間フレーム内の入力及び出力データの累積量)に従って制限される。特に、ローカルに生成されたトランザクションの中継のために選択されるピアの数は、ネットワーク負荷の問題に対処するため、又はソースの不明瞭化を向上させるために調整されることが可能である。例えば、第1セットに含まれるピアの数は、次式により定められてもよい。
Figure 0007339965000007
ここで、mSMは、送信元混合サブ・システムにおける中継のために選択されるピアの平均数を表す公称値であり、rnd(ξSM)は0とξSM-1の間にあるランダムな整数を表す。
次いで、第1セットの中継ノードの選択は、個々のデータ・パケットに関連する第1マッピングにおいて設定されることが可能である。言い換えれば、第1マッピングは、データ・パケットが第1セットの中継ノードに関連付けられていること(即ち、割り当てられていること)を示してもよい。オペレーション810では、データ・パケットは、決定された第1マッピングに従って伝送される。
リレー混合
リレー混合サブ・システムは、ノードによって受信されたトランザクションがノードのピアの重複しないサブセットに中継されるべきである、という概念を前提としている。同じノードにより受信された2つの異なるトランザクションに対して選択される中継ピアの間の交わり集合に属する要素の数を表現するためにパラメータλを利用すると、リレー混合の背後にあるアイデアは、次のように把握することが可能である。
Figure 0007339965000008
ここで、δRMはリレー混合の度合いである。不等式(A)は、不等式を満たす中継ノードへのトランザクションの割り当てを発見するトランザクション割り当て問題を定める。従って、(A)におけるパラメータλを変化させることにより、リレー混合戦略を制御することが可能である。一旦λが設定されると、トランザクション割り当て問題に対する準最適解を求める反復的な探索が実行される。リレー混合サブ・システムは、ノードが1つ以上のトランザクションを受信する送信元の各ピアpに対して不等式(A)が満たされることを要求する可能性がある。例えば、ピアpから受信される最新のδRM個のトランザクション(tx,txj+1,...,txj+δRM-1,)は、それらのトランザクションに対して不等式(A)が充足されることを要求することによって、リレー混合を実装するために使用されることが可能である。従って、幾つかの実装において、個々のパラメータλは、それぞれのピアpに対して定められてもよい。このようにして、ソース不明瞭化は、ノードがトランザクションを受信する送信元の各ピアp,p,...,pのトランザクション中継のための独立したデータ構造を作成し、受信したトランザクションの中継ノードへの割り当てを識別することによって、実装されてもよい。
あるいは、他の実装において、パラメータλは、固有のシステム・パラメータ;特定の時間ウィンドウ及びRDRテーブルに格納された情報を使用して更新される時変パラメータλ;又は、特定の時間ウィンドウ及びRDRテーブルに格納された情報を使用して更新される、各ピアについての時変パラメータλ であってもよい。
汎用ピアのトランザクション割り当ての組み合わせ数は、C=( δRMであり、ここで、mはノードのピアの数であり、δRMはリレー混合の程度であり、xはリレーのために選択されるピアの平均数である。部分最適解に対する反復的な探索は、幾つかの可能な方法で進めることが可能である:
・最大反復回数を設定し、交わりのピアの最小数のトランザクション割り当てを選択する。
・最大反復回数を設定するが、交わりのピアの所定の閾値数に達した場合は、早期にプロセスを中断する。
・最大反復回数を設定し、要件が満たされない場合はλの値を増やし、プロセスをリスタートする。
・最大反復回数を設定し、要件が満たされない場合はxの値を修正し、プロセスをリスタートする。
・最大反復回数を設定し、要件が満たされない場合はmの値を減らし、プロセスをリスタートする。
反復の最大回数が固定時間ウィンドウΔTRMで置き換えられる場合には、別の一連のアプローチを考慮することが可能である。
中継ノードのセットに含めるために選択される隣接ノードの数は、任意に決定されてもよい。少なくとも幾つかの実装において、セットのために選択されたピアの数は、伝搬ノードの帯域幅要件(例えば、固定時間フレーム内の入力及び出力データの累積量)に従って制限される。特に、ローカルに生成されたトランザクションの中継のために選択されるピアの数は、ネットワーク負荷の問題に対処するため、又はソースの不明瞭化を向上させるために調整されることが可能である。例えば、第1セットに含まれるピアの数は、次式により定められてもよい。
Figure 0007339965000009
ここで、mRMは、リレー混合サブ・システムにおける中継のために選択されるピアの平均数を表す公称値であり、rnd(ξRM)は0とξRM-1の間にあるランダムな整数を表す。幾つかの実装では、ξSM及びξRMは同じ値を有していてもよい。
図10をここで参照すると、これはネットワーク内のノードで受信されたデータ・パケットを中継するための例示的なプロセス900をフローチャート形式で示している。プロセス900は、リレー混合サブ・システム/ヒューリスティックのルールに従ったトランザクション割り当て方式に従って、ネットワーク内でデータを伝搬する技術を表す。プロセス900は、例えば、図1のネットワーク100のようなブロックチェーン・ネットワークのノードによって実現される。より具体的には、プロセス900は、DMPに参加し、ネットワークの残りの部分への伝搬のために第1タイプのデータ・パケット(例えば、トランザクション)を受信するノードによって実行される。
オペレーション902において、ノードに関連するクライアントは、少なくとも1つの第1タイプのデータ・パケットを受信する。データ・パケットは、例えば、ブロックチェーン・トランザクションを含むことが可能である。
ノードは、少なくとも1つの受信したデータ・パケットの、隣接ノード(即ち、ピア)への第2マッピングを決定する。特に、ピアの複数のサブセットが、ノードで生成されるデータ・パケットを中継するために選択される。各データ・パケットは、第2マッピングによって、中継ノードの特定のサブセットに関連付けられる。各データ・パケットについて、オペレーション904において、ノードによって最近受信された所定数の第1タイプの第2データ・パケットが識別される。これらは、ノードによってピアに既に送信されているデータ・パケットであるか、又は以前に受信されたがノードのピアに未だ中継されていないデータ・パケットである可能性がある。
オペレーション906において、近隣ノードの固定セットへの第2データ・パケットの第1割り当てが決定される。特に、第1割り当ては、所定の条件を満たす近隣ノードへの、第2データ・パケットの1つ以上の割り当てから選択される。この動作は、上述の不等式(A)に対する部分最適解に対する反復的な探索に対応する。即ち、(A)を満たす中継ノードへのデータ・パケットの割り当てのうち、固有の割り当て(例えば、交わりのピアが最も少ない割り当て)が決定される。(A)によって把握されるように、第2データ・パケットのうちの任意の2つに対して、両方の第2データ・パケットが(中継のために)割り当てられる近隣ノードの数が所定の閾値以下である場合に、近隣ノードの固定セットへの第2データ・パケットの割り当ては、所定の条件を満たす。
次いで、オペレーション906において識別された近隣ノードへの第2データ・パケットの一意の割り当ては、第2マッピングで設定されることが可能である。換言すれば、第2マッピングは、第2データ・パケット(即ち、ピアからノードによって受信されたデータ・パケット)がそれぞれ割り当てられる中継ノードを示すことができる。オペレーション908において、少なくとも1つの受信データ・パケットは、決定された第2マッピングに従って中継される。
プロセス900は、単一のデータ・パケットがノードで受信された後、又はノードが複数の受信データ・パケットを収集した後に、ノードによって実行されてもよい。特に、ノードは、(DMPのRDRステージと同様に)ある期間にわたって第1タイプのデータ・パケットを受信して蓄積し、蓄積したデータ・パケットの中継ノード・セットへのマッピングを決定することができる。これらの場合、データ・パケットは、中継ノードの任意に選択されたサブセットにそれぞれ割り当てられてもよく、2つのそのようなサブセットは互いに等しくないことを保証する。
宛先混合
宛先混合ヒューリスティックは、ノードの出力コネクションが異なるピアによって中継されたトランザクションを実行すべきである、というアイデアを捉えている。この発見的方法は、リレー混合サブ・システムの特殊なケースとして考えられてもよく、なぜなら、リレー混合サブ・システムは、同じ送信元ピアからの中継のために、ピアの重複しないサブセットを作成することを含むからである。プロセス900において、宛先混合は、オペレーション906において、第1ノードのうちの任意の2つに対して(即ち、ノードがデータ・パケットを受信する送信元のノード)、2つの第1ノードから受信したすべての第2データ・パケットのセットが、第1割り当てにおいて少なくとも2つの異なる近隣ノードに割り当てられる、ということを保証することによって実行されてもよい。例えば、図11は、ノードiに対する宛先混合の例を示す。宛先混合サブ・システムは、ノードaが、所与の時間ウィンドウΔTDMにおいて、同じノードcによって中継される2つのトランザクションを受信しないことを保証する。従って、ノードiでノードcから受信される2つのトランザクションのうち1つだけがノードaに中継される。
幾つかの実装において、宛先混合は、各々の時間ウィンドウΔTDMについて、ピアの異なるサブセットで行われることが可能である。例えば、サブセットは、パラメータ(mDM,ΔDM,ξDM)を使用するソース混合に関して説明されたものと同様の方法で割り当てられてもよい。その戦略は、与えられたトランザクションの送信元と送信先の非相関化に寄与する可能性がある。
タイム・オブ・アライバル混合
到着時間混合(ToA混合)の発見的方法は、データ・パケット中継に関する送信元と送信先の情報を非相関化することを支援するために、データ・パケットの遅延中継を実装する。例えば、(例えば、DMPのRDRステージにおける)時間ウィンドウΔTの中で収集される(又は生成される)データ・パケット(例えば、トランザクション)は、ΔT(図12のRDR)の終わりに中継のためにスケジュールされることが可能である。到着時間混合サブ・システムは、RDRを過ぎるまで中継を遅らせる。幾つかの実装において、データ・パケットの中継は、例えば、RDR,RDRi+1,RDRi+2などのような倍数qΔTによって遅延されてもよい。従って、到着時間発見的方法に従って、ノードによって受信された(又は生成された)データ・パケットを中継することは、受信したデータ・パケットを近隣ノードに中継するための次のスケジューリングされた時間を決定すること、及び、中継のための次のスケジューリングされた時間の後の所定の長さの時間において、データ・パケットを中継することを含む。ΔTの中で収集されたすべてのトランザクションは、ΔT+qΔTで中継されてもよいし、あるいはΔTの中で収集された各トランザクションjは所与のΔT+qΔTで中継されてもよい。
確率変数qは、幾つかの例では、負の指数の確率密度関数を有する。
Figure 0007339965000010
ここで、c及びgはそれぞれ乗算定数及び加算定数である。
ソース制御
悪意のピアは、同じデータ・パケット(又はデータ・パケットのグループ)を、所与のノードiに複数回プッシュすることを試みて、iのローカル中継戦略におけるパターンを発見しようとする可能性がある。例えば、悪意のピア・ノードは、ノードiへの2つのコネクションを作成し、iに対する入力及び出力トラフィックがどのように相関しているかを監視する可能性がある。ソース制御サブ・システムは、各ピアから受信することが可能なデータ・パケットの数について特定の閾値を設定することによって実装される。ピアが所与のデータ・パケットに対する閾値を超える場合、そのコネクションは永続的又は一時的に閉鎖されるであろう。ブロックチェーン・トランザクションなどのような、ノードが所与のデータ・パケットを受信するインスタンスの数は、RDRテーブルに格納されてもよい。
負荷バランシング
負荷バランシング(負荷分散)は、他のサブ・システムによってピアに中継するために既に割り当てられているデータ・パケットのシャッフルを定期的に実行するために使用されてもよい。負荷バランシング・モジュールの目的は、ピアの間で中継分布を平均化して、一部のピア・コネクション又は単一故障点におけるトラフィックのオーバーロードを回避することである。負荷バランシングに対する2つの異なるアプローチが実装されてもよい:
・各々のデータ・パケットjは、それらのサイズによらず、同じ重みwを有する(即ち、入力の数、出力の数、アンロッキング、及びロッキング・スクリプトのサイズによらない)。
・各データ・パケットjは、バイト数のサイズに比例した自身の重みwを有する。
例えば、プロセス800において、近隣ノードの固定セットに対する第2データ・パケットの第2割り当てが決定されることが可能であり、第2割り当ては、ノードの出力インターフェースにおけるトラフィックのバランスをとるための第1割り当ての再構築である。累積値は、中継するようにスケジューリングされたデータ・パケットの数nにわたって、各ピアiに対して計算されることが可能である:
Figure 0007339965000011
次いで、中継するデータ・パケットをシャッフルし、各ピアの平均値cを取得するために反復的なプロセスが実行される:
Figure 0007339965000012
データ・パケットのこのシャッフルに対処する様々な異なる発見的方法が利用可能である。例えば、データ・パケットのサブセットの中継を予測したり、或いは出力トラフィックの負荷バランシングを強化したりするために、異なるサブ・システムに異なる優先度が割り当てられてもよい。更に、異なるサブ・システムの実行は、データ・パケットの重複又は矛盾した割り当てを引き起こす可能性があり、これは、中継を作動させる前に解決される必要がある。
データ・ルーティング情報の動的な評価及び更新
上述の技術は、どのようにしてデータ・ルーティング情報を構築し更新するのかについての具体例を提供する。データ構造(RDRテーブル)は、少なくとも以下のことを指定するために、ノードで維持される:ノードで受信及び/又は生成される何れのデータ・パケットがネットワーク内でピア・ノードに中継されるべきか;どのピア・ノードがデータ・パケットの中継ノードとして選択されるべきか;及び、いつデータ・パケットが選択されたピア・ノードに中継されるべきか。RDRテーブルの使用は、情報がノードのネットワーク全体に分散されるゴシップ・ベースのブロードキャスト・プロトコルの状況において特に有用である可能性がある。サブ・システムは、RDRテーブルの更新を制御するための様々なロジックを実装するために選択的に使用されることが可能なディレクティブである。具体的には、1つ以上のサブ・システムは、ネットワーク・ノードのピアに中継するためのデータ・パケットの割り当てを定義及び更新するために使用されることが可能である。
本願は、データ中継/ブロードキャストのセキュリティ、匿名性、及び適時性を提供する際のRDRテーブルの有効性を評価するための方式を導入する。ノードのRDRテーブルの評価は、リアルタイムで行うことが可能である。評価の結果に基づいて、ノードは、現在のRDRテーブルで定義されるような中継の割り当てを進めるか、又は、新しい中継の割り当てを得るためにRDRテーブルを修正又は再生成する、ことが可能である。例えば、評価時にノードのRDRテーブルが不満足なものであると判断された場合、ノードは、ノードのピアへのデータ・パケットの新しい割り当てを得るために、そのRDRテーブルを自動的に再生成するように構成されてもよい。一方、評価の結果、現行のRDRテーブルが満足できるものであると判断された場合、ノードは、現行のRDRテーブルの中継の割り当てに従って、データをブロードキャスト/中継することを進めることができる。このように、(評価の結果に基づいて)RDRテーブルは満足できるものであると判断されるまで、ノードのRDRテーブルを評価及び再生成する「フィードバック・ループ」が、ノードに対して定義されることが可能である。この評価プロセスは、ネットワーク・ノードのためのパフォーマンス及び/又は有効性の予め定義された基準を満足する中継割り当ての導出を促進することが可能である。
ネットワーク・ノードのRDRテーブルを評価するためのフレームワークを説明するために、中継割り当て情報の計算操作を容易にするRDRテーブルの異なる表現を導入することが有用であるかもしれない。より具体的には、RDRテーブルに含まれる中継割り当てデータが、定量的な分析に適した形式にマッピングされるように、RDRテーブル(例えば、表2)のノードに対する中継割り当てを表すモデルを拡張することができる。少なくとも幾つかの実装において、RDRテーブルは、エントリμijを有するk×n行列Mにマッピングされることが可能であり、ここで、μijは次のとおりである:
Figure 0007339965000013
即ち、RDRテーブルがデータ・パケットtxはピア・ノードに中継されるべきであることを指定する場合、μijエントリは1に設定され、そうでない場合、エントリは0に設定される。従って、行列Mの列はノードのピアに対応し、行列Mの行は、ノードによってそのピアに中継されるべきデータ・パケットに対応する。以下の量が行列Mに対して定義されることが可能である:
- R:分析されるトランザクション中継の総数
- c= Σi=1 μij:ピアごとの中継するデータ・パケット数
- r= Σj=1 μij:データ・パケットごとの中継数
パラメータk及びnは、各ノードに対してグローバルに又はローカルに固定されてもよいシステム・パラメータである。従って、上述のサブ・システム/発見的方法の1つ以上を適用することによって構築及び更新されるRDRテーブルは、RDRテーブルに含まれる中継割り当て情報の定量的な表現を可能にする形式に変換されることが可能である。
RDRテーブルで定義される中継割り当てを評価する場合、データ伝搬のセキュリティ、匿名性、及び/又は適時性の観点からそれらの「パフォーマンス」又は有効性を測定するために、幾つかの異なる基準が受け入れられる可能性がある。RDRテーブルの匿名性パフォーマンスを測定する可能な方法の1つは、任意の2つの異なるデータ・パケットが中継されるように指定された先のピアの集合の間の対の交わり(pairwise intersections)を考察することである。特に、任意の2つの異なるデータ・パケットがそれぞれ指定されるピアの集合は、可能な限り分離されることが望ましいかもしれない。言い換えると、RDRテーブル(及びそこに含まれる中継割り当て)の有効性は、対になって異なるデータ・パケットに対する中継ノードの集合がどの程度多様であるのか、によって特徴づけられることが可能である。このような中継ノード・セットの多様性は、データ中継におけるパターンの、攻撃者による認識を妨げる又は邪魔することが可能であり、それにより、データ・パケットのソース/発信元の識別を保護することに役立つ。
データ中継の匿名性に関してデータ・パケットの中継ノードへの最適割り当てを導出することの実行は、定量的な方法で定義されることが可能である。特に、RDRテーブルの行列表現Mに関し、最適割り当てを導出する概念は、Mの列ごとに非ゼロ・エントリの数を最小化することに対応する可能性がある。別様に表現すると、この最小化問題は、ノードによって同じピアに中継される異なるデータ・パケットの数を最小化することに対応する可能性がある。場合によっては、最小化問題は、ノードによって中継されるべきデータ・パケットの総数、及び/又は1つ以上のデータ・パケットの各々についての中継の所定数、によって制約されることが可能である。
RDRテーブルの匿名性パフォーマンスを測定する目的のために、定量的な尺度が有用に定義されてもよい。この尺度が与えられると、上述のサブ・システムによって実行されたデータ・パケットのランダム割り当てによって生成された経験的RDRテーブルから得られた結果を、理論的に最適なRDRテーブルと比較することができる。
情報理論において、エントロピーは、データの確率的ソースによって生成される平均情報内容として定義される。エントロピーは、状態の予測不可能性の尺度、又はそれと同等に、その平均的な情報内容の尺度である。プロセスの匿名性を高めることは、プロセスを表すデータ構造のエントロピーを最大化することに対応する可能性がある。
xが確率変数の値を表す場合に、アンサンブルX=(x,A,Π)のエントロピーは、Π(x=a)=πで確率Π={π,...,π}を有する可能な値A={a,...,a}の集合の1つに関し、次のように定義することができる。
Figure 0007339965000014
RDRテーブルを表す行列Mの文脈において、各々の確率πはi番目のピアについてc個の中継を有する確率として定義され、ここで、i=1,...,nである。より具体的には、π=c/Rであり、
Figure 0007339965000015
は、ピアごとの中継されるデータ・パケット数を表し、Rは第1データ・パケットのピア・ノードへの中継の総数を表す。
図13をここで参照すると、これはデータ・パケットをピア・ノードに中継するための例示的なプロセス1000をフローチャート形式で示している。プロセス1000は、例えばネットワーク100のようなブロックチェーン・ネットワークのノードによって実現される。
オペレーション1002において、ノードは、第1期間の間に第1データ・パケットのセット(集合)を収集する。このセットは、ネットワーク内の1つ以上の第1ノードから受信される少なくとも1つのデータ・パケットを含む。即ち、集合は、ノード自体とは異なるソースから伝送される1つ以上のデータ・パケットを含む。
オペレーション1004において、第1マッピングが生成され、第1マッピングは、ノードに接続されている1つ以上の近隣ノードに対する中継のために集合のうちの収集された第1データ・パケットを割り当てる。第1マッピングは、ピア・ノードへのデータ・パケットの中継割り当てを定義する。第1マッピングの生成は、1つ以上のプロセス500、600、700、800及び900を実装することによって行われることが可能な、ノードのためのRDRテーブルの構築に対応することが可能である。
例えば、第1マッピングは、中継割り当てを定義するために、上述のソース混合、リレー混合などの種々のサブ・システムのロジックを適用することに基づいて生成及び更新されてもよい。従って、第1マッピングは、集合の第1データ・パケット各々の近隣/ピア・ノードへの中継の予想される時間を示すことができる。更に、1つ以上のサブ・システムがRDRテーブルを構築するために使用される場合、第1マッピングを生成することは、近隣ノードの異なるサブセットへの中継するために同じ送信元を有する任意の2つのデータ・パケットを割り当てる第1サブ・マッピング、及び、ネットワーク・ノードで生成されるか、又は同じ時間インターバルの中で1つ以上の第1ノードからネットワーク・ノードによって受信された任意の2つのデータ・パケットに対する中継の異なる予想される時間を割り当てる第2サブ・マッピング、のうちの少なくとも1つを決定することを含んでもよい。
少なくとも幾つかの実装において、第1マッピングは、ノードの出力インターフェース・キャパシティに依存する可能性がある。即ち、第1マッピングは、ノードを1つ以上のピアに接続する出力インターフェースのキャパシティ制約に少なくとも部分的に基づいて生成されてもよい。出力インターフェース・キャパシティ情報は、収集された第1データ・パケットの詳細(例えば、サイズ、タイプなど)と組み合わせて、第1マッピングの中継割り当てを生成及び/又は修正してもよい。
オペレーション1006において、オペレーション1004で生成された第1マッピングのための非相関メトリック値(decorrelation metric value)が計算される。非相関メトリック値は、例えば第1マッピングによって定義された中継割り当てのための非相関メトリックに関連する値を表すことができる。非相関メトリックは、RDRテーブルを生成及び更新するために使用されるアルゴリズムが、ピアに対するデータ・パケット中継を効率的に混合して割り当てること、をチェックするために使用されることが可能である。特に、非相関メトリックは、ピアにデータ中継を割り当てるためのアルゴリズムが、その送信元から中継されたデータ・パケットをどの程度良好に「非相関化」するのか、を評価するために有用である可能性がある。非相関メトリックは、例えば、第1マッピングによって指定された割り当てられたデータ中継によって達成される可能性がある匿名性のレベルの指標/尺度であり得る。即ち、非相関メトリックは、中継されるデータ・パケットをその送信元/ソースに関連させないようにするアルゴリズムの有効性を反映する可能性がある。
幾つかの実装において、非相関メトリック値は、式(1)を使用して計算されてもよい。即ち、非相関メトリック値は、データ・パケットの中継ノードへのマッピングの定義された中継割り当てに関連するエントロピーを表すことができる。特に、所与のパラメータR(第1データ・パケットのピア・ノードへの中継の総数)及びn(ピア・ノードの数)が与えられた場合に、非相関メトリック値は、次式を計算することによって得られてもよい:
Figure 0007339965000016
ここで、cは、第1マッピングによってそれぞれのピア/近隣ノードに割り当てられる第1データ・パケットの数を表す。cは、例えば第1マッピングに対応するRDRテーブル(「M-RDRテーブル」)の行列表現から決定されることが可能である。特に、cは、M-RDRテーブルの列のうちの非ゼロ・エントリの数である。
式(1)を用いて計算されるとは異なる、第1マッピングの匿名性パフォーマンスを測定するのに適した他のメトリックを得ることができる。
オペレーション1008において、第1マッピングのための計算された非相関メトリック値S(R,n)が第1条件を満たすかどうかが判断される。例えば、非相関メトリック値S(R,n)は、予め定義された数値(例えば、閾値)と比較されてもよい。少なくとも幾つかの実装において、2つの非相関メトリック値がどの程度近いのかを測定するために、非相関メトリック値S(R,n)は、第1の予め定義された(「最適」)非相関メトリック値と比較されてもよい。第1の予め定義された非相関メトリック値は、「最適」と考えられる中継ノードへのデータ・パケットの割り当てに関連付けることができる。非相関メトリック値S(R,n)と第1の予め定義された非相関メトリック値との間の差分を計算することができ、計算された差分Δentrは閾値差分と比較され、第1マッピングが「最適な」中継割り当てにどれだけ「近い」のかを判定することができる。具体的には、第1マッピングのための非相関メトリック値S(R,n)は、計算された差分Δentrが差分閾値ε以下であるならば、第1条件を満たしていると判断されてもよい。
ピア・ノードへのデータ・パケットの「最適な」中継割り当てを定義する多くの様々な方法が存在する可能性がある。そのような「最適な」中継割り当てを定義する方法の1つは、任意の単独のピア・ノードに中継されるデータ・パケットの数を最小化し、従って複数の異なるパケットの送信者間の重複を避けることである。即ち、データ・パケットが中継のためにピア・ノードに均等に分配される場合には、中継割り当ては「最適」である又は最適に近いと考えられる可能性がある。例えば、最適な割り当ては、M-RDRテーブルのi番目の列(即ち、i番目のピア、i=1,...,n)に、c=(R-R)/n個のデータ・パケットを割り当てることに対応する可能性があり、R=R mod nである。最適な割り当てに対する複数の等価な解は、インデックスのモジュロ順列で発見される可能性がある。
例えば、R=23及びn=5である場合、M-RDRテーブルの各列は、c=(R-R)/n=4個のデータ・パケットを受信するであろう。残りのR個のデータ・パケットは、所定のアルゴリズムに従って分配されてもよい。例えば、R個のデータ・パケットは、使い尽くすまで、M-RDRテーブルの最も左側の列の各々に1つずつ分配されてもよい。一般に、ピアに割り当てられるデータ・パケットの数cは、次のように表現されてもよい:
Figure 0007339965000017
中継されるR個のデータ・パケット及びn個のピアの最適な割り当てのこの定義に基づいて、最適な中継割り当てのための非相関メトリック値は、式(1)を用いて次のように計算されてもよい:
Figure 0007339965000018
最適な中継割り当てを定義する別の方法が、図15A~図15Cに示されている。幾つかの実装において、最適な割り当ては、入力パラメータの所与のセット及び中継における特定の制約に基づいて決定されてもよい。例えば、入力のセットは:中継されるべきデータ・パケットの数k;ピア・ノードの数n;トランザクション中継の総数R;及び、データ・パケット当たりの中継の数を含むベクトルr=(r,...,r),r=Σj=1 μijを含んでもよい。ベクトルrは、例えばデータ・パケットの中継ノードへの第1マッピングが生成される場合に決定されてもよい。即ち、第1マッピングにより決定されるデータ・パケット当たりの中継の数は、最適な中継割り当てのための制約として役立つ可能性がある。
図15A~図15Cは、データ・パケットごとの中継数に関する制約及び所与の入力の下での「最適な」中継割り当てに対応するM-RDRテーブルを構築するためのアルゴリズムである対角割り当てアルゴリズム(DAA)を示す。これらの図に示されるように、ピアに中継されるデータ・パケットは「対角線状に」割り振られる。図15Aでは、5×8のM-RDRテーブルが示されており、合計R=16個の中継が、データ・パケットごとの中継数に関するr=(2,5,2,4,3)という制約の下で割り当てられる。
一旦M-RDRが空の行列に初期化されると、アルゴリズムは、データ・パケット中継をピアに割り当て、最適なM-RDRテーブルを構築することを開始する。重複を避けるために、行列は、与えられたすべてのデータ・パケットが斜めに移動しながら割り当てられるまで、埋められてゆく。複数の等価な最適解は、インデックス/ピアの順列に基づいて構築されることが可能である。
第1ラウンドにおいて、アルゴリズムはi=1,...,5についてμii=1を設定し、ベクトルrをr’=(1,4,1,3,2)に更新することにより、M-RDRテーブルのエントリを更新する。M-RDRテーブルに追加された最後の非ゼロ・エントリはμ55である。第2ラウンドにおいて、データ・パケットは、重複を避けるために、列6から始まる割り当てを行う。エントリμ16,μ27,μ38,μ41,μ52は1に設定され、データ・パケット当たりの中継を含むベクトルはr”=(0,3,0,2,1)に更新される。
アルゴリズムは、図15Cに示されるように、割り当てる中継を使い尽くすまで、M-RDRテーブルを埋め続ける。より一般的には、DAAの主要なステップは以下のように定義されてもよい:
1.入力パラメータ、ξ=(k,n,r,R)を定義する。
2.k×nの行列Moptを初期化する。
3.主対角線から始めて、斜めにMoptを充填し始める。
4.ベクトルを更新する。r→r’
5.中継するデータ・パケットを割り当てるために新たな対角線を選択する。n>kである場合、i=1,...,nについて、μi,(k+1)mod nを更新する。
6.ベクトルを更新する。r’→r”
7.r=(0,...,0)となるまで反復する。
一旦、最適M-RDRがDAAにより生成されると、Moptのエントリは確率π=c/Rを計算することを可能にし、その確率は最適M-RDRテーブルに対する非相関メトリックSop(R,n)を計算するために使用される。第1の予め定義された非相関メトリック値は式(2)を使用して計算されるか、又はDAAに基づいて計算されるかにかかわらず、オペレーション1008において、ノードは、第1マッピングのための非相関メトリック値S(R,n)及びSop(R,n)の間の差分を計算し、計算された差分を所定の閾値と比較する。
非相関メトリック値S(R,n)が第1条件を満足しない場合(例えば、計算された差分が閾値より大きい場合)、第1データ・パケットの近隣ノードへの第2マッピングがオペレーション1010において生成され、ここで、第2マッピングは、第1マッピングのものとは異なる中継割り当てを定義する。即ち、第1マッピングが、定義された最適な中継割り当てに十分に「近い」ものではないと判断されると、データ・パケットのピアへの第2の異なるマッピングが生成される。
幾つかの実装において、第2マッピングを生成することは、1つ以上の第1データ・パケット各々の中継のためのピアの選択を修正することを含んでもよい。特に、収集された第1データ・パケットの少なくとも1つに対して、少なくとも1つの第1データ・パケットが第1マッピングによって割り当てられる近隣ノードのセットとは異なる近隣ノードの第2セットが選択されてもよく、少なくとも1つの第1データ・パケットは、選択された近隣ノードの第2セットに割り当てられることが可能である。このように、データ・パケット当たりの中継の数は固定されてもよく、データ・パケットを中継するピアの選択のみが変更されてもよい。
オペレーション1012において、上述の技術を使用して、第2マッピングの非相関メトリック値S(R,n)が計算される。オペレーション1008と同様に、S(R,n)が第1条件(即ち、計算された差分Δentr=|S(R,n)-Sop(R,n)|≧ε)を満足するかどうかを判定するために、非相関メトリック値S(R,n)は、最適な中継割り当てのための非相関メトリック値Sop(R,n)と比較されることが可能である。
このように、所定の条件を満足する(例えば最適な中継割り当てに近い)マッピング/中継割り当てを取得するまで、マッピング/中継割り当てを反復的に生成こと、及び関連する非相関メトリック値を評価すること、のための「フィードバック・ループ」が定義されてもよい。ある場合には、RDRテーブル生成及びデータ中継における過剰な遅延を避けるために、フィードバック・ループの最大反復回数が予め定義されてもよい。このような反復の最大数は、ローカルに(ノードごとに)又はグローバルに(ネットワーク全体で)定義されてもよい。
従って、少なくとも幾つかの実装において、ノードの1つ以上のピアへの中継のための収集された集合の第1データ・パケットの新しいマッピングを生成する反復の回数が維持されてもよい(例えば、データベースに記憶される)。更に、最初の非相関メトリック値から現在までの計算された最低の差分に関連する現在の非相関メトリック値、及び、現在の非相関メトリック値に関連する現在のマッピング/中継割り当てもまた、格納されてもよい。次いで、ノードは、反復の回数が所定の最大数に到達したかどうかを判定し、もしそうであれば、現在のマッピングに従って、即ちフィードバック・ループの更なる反復を実行することなく、収集されたセットの第1データ・パケットを送信することができる。
オペレーション1016において、第1条件を満足するマッピングが取得されると、取得されたマッピングに従って、第1データパケットはノードによって近隣/ピア・ノードに伝送される。少なくとも幾つかの実装において、第1データ・パケットのピアへの伝送は、同時に又はほぼ同時に行うことができる。
図14をここで参照すると、これはデータ・パケットをピア・ノードに中継するための別の例示的なプロセス1100をフローチャート形式で示している。プロセス1100は、例えばネットワーク100のようなブロックチェーン・ネットワークのノードによって実現される。
オペレーション1102、1104、及び1108~1118はそれぞれ、プロセス1000のオペレーション1002、1004、及び1006~1016に対応する。プロセス1100は、サブ・システム・レベルでRDRテーブルの作成中にリアルタイム・チェックを実行するための追加的なオペレーション1106を含む。具体的には、オペレーション1106において、ノードは、収集された集合の任意の2つの異なる第1データ・パケットについて、第1データ・パケットが第1マッピングによってそれぞれ割り当てられる近隣の集合どうしの類似性の尺度を取得する。オペレーション1106は、異なるデータ・パケットが割り当てられるピアの集合の類似性を測定することを可能にする。上述したように、2つの異なるデータ・パケットはピアの異なる集合に中継されること、即ち、異なるデータ・パケットに対する中継ノードの集合は互いに素(disjoint)であることが望ましい。
類似性の尺度の一例は、コサイン類似度である。同じ次元を有する所与の2つのベクトルA及びBの下で、コサインの類似度sは次式で与えられる。
Figure 0007339965000019
この量は間隔[-1,1]の値をとることが可能である。1に十分に近いか又は1に等しい値は、ベクトルAとBの間に強い相関があることを意味し、s=0は2つのベクトルが完全に非相関であることを示し、s=-1は2つのベクトルが逆向きであることを示す。
M-RDRテーブルの行は、データ・パケットの中継のために選択される近隣ノードの集合に対応する。特に、行はベクトルとして表現されることが可能であり、ここで、M-RDRテーブルの行の各々の非ゼロ・エントリは、対応するベクトル形式において非ゼロ・エントリとして示される。従って、M-RDRテーブルの任意の2つの異なる行の間のコサイン類似度は、行のベクトル表現(即ち、中継に関する近隣の集合)に基づいて計算されることが可能である。コサイン類似度は、データ・パケットの中継がどの程度相違するのかについての推定を得るために使用されてもよい。例えば、2つの行/ベクトルのコサイン類似度がs=1に近い場合、中継は十分に変わっていないこと、及びノードはRDR生成ステージの間に1つ以上のサブ・システムのパラメータをリセットすべきであること、をシグナリングすることが可能である。この尺度は、中継のパフォーマンスを改善するためにRDRテーブルを構築する間に、リアルタイムで行われることが可能である。類似性の尺度は、幾つかの実装において、第1マッピングのための非相関メトリック値を計算する前に取得されてもよく、即ち、第1マッピングの生成中又はその直後に取得されてもよい。
従って、類似性の尺度が第2条件(例えば、s=1、又は少なくとも所定の値の範囲外に落ちること)を満足することの判定に応答して、1つ以上の近隣ノードに対する集合の第1データ・パケットの第3マッピング(第1マッピングとは異なる)が生成されてもよい。
図16をここで参照すると、これは参加ノード1600の簡略化された例をブロック図形式で示している。ノード1600は、1つ以上のマイクロプロセッサ、特定用途向け集積チップ(ASIC)、マイクロコントローラ、又は類似のコンピュータ処理デバイスを含む可能性があるプロセッサ1602を含む。ノード1600は、値、変数を格納し、及び場合によってはプロセッサ実行可能なプログラム命令を格納するための永続的及び非永続的メモリを含み得るメモリ1604と、有線又は無線ネットワークを介してネットワーク接続を提供するためのネットワーク・インターフェース1606とを更に含む。
ノード1600は、プロセッサ実行可能命令を含むプロセッサ実行可能ブロックチェーン・アプリケーション1608を含み、その命令は実行されると、本願で説明される1つ以上の機能又は動作をプロセッサ1602に実行させる。
本願で説明される装置及びプロセス、並びにブロックチェーン・ノードを構成するために説明された方法/プロセスを実装する任意のモジュール、ルーチン、プロセス、スレッド、アプリケーション、又はその他のソフトウェア構成要素は、標準的なコンピュータ・プログラミング技術及び言語を用いて実現されてもよいことが理解されるであろう。本願は、特定のプロセッサ、コンピュータ言語、コンピュータ・プログラミング慣習、データ構造、又は他のこのような実装の詳細には限定されない。
上述の実装は、本発明を限定するものではなく例示するものであり、当業者は、添付の特許請求の範囲によって規定される本発明の範囲から逸脱することなく、多くの代替的な実装を設計することが可能であろうということに留意すべきである。特許請求の範囲において、括弧内に付した如何なる参照符号も、特許請求の範囲を限定するものとして解釈されないものとする。「含んでいる」及び「含む」等の言葉は、任意の請求項又は明細書全体において列挙されたもの以外の要素又はステップの存在を排除していない。本願において、「備える」は「含む又はから構成される」を意味し、「備えている」は「含んでいる又はから構成されている」を意味する。要素の単独の参照は、そのような要素複数個の参照を排除しておらず、その逆もまた同様である。本発明は、幾つかの別個の要素を含むハードウェアを利用することによって、及び適切にプログラムされたコンピュータを利用することによって実現されてもよい。幾つかの手段を列挙する装置の請求項において、これらの手段の幾つかは、1つの同じハードウェア・アイテムによって具体化されてもよい。特定の複数の事項が相互に異なる従属請求項に記載されているという単なるその事実は、これらの事項の組み合わせが有利に利用できないことを示してはいない。

Claims (15)

  1. ノードのネットワークでデータ・パケットを伝搬する、コンピュータが実行する方法であって:
    第1期間の間に第1データ・パケットのセットを収集するステップであって、前記セットは前記ネットワーク内の1つ以上の第1ノードから受信した少なくとも1つのデータ・パケットを含む、ステップ;
    前記ノードに接続された1つ以上の隣接ノードへの中継のために前記セットのうちの前記第1データ・パケットを指定する第1マッピングを生成するステップ;
    前記第1マッピングに対する非相関メトリック値を計算するステップ;
    前記第1マッピングに対する前記非相関メトリック値が第1条件を満足するかどうかを判断するステップ;
    前記第1マッピングに対する前記非相関メトリック値が前記第1条件を満足しない旨の判断に応答して行うステップであって:
    前記ノードに接続された1つ以上の隣接ノードへの中継のために、前記セットのうちの前記第1データ・パケットを指定する、前記第1マッピングのものとは異なる指定を定める第2マッピングを生成し;
    前記第2マッピングに対する非相関メトリック値を計算し;及び
    前記第2マッピングに対する前記非相関メトリック値が前記第1条件を満足する旨の判断に応答して、前記第2マッピングに従って前記セットの前記第1データ・パケットを隣接ノードへ伝送する、ステップ;
    を含む方法。
  2. 前記第1マッピングは、前記セットのうちの第1データ・パケット各々を隣接ノードへ中継する予想される時間を示し、前記第1マッピングを生成するステップは:
    前記1つ以上の隣接ノードの異なるサブセットへの中継のために、同じ送信元を有する任意の2つのデータ・パケットを指定する第1サブ・マッピング;及び
    同じ時間インターバルの中で前記1つ以上の第1ノードから前記ノードにより受信された又は前記ノードで生成された任意の2つのデータ・パケットに対して中継の異なる予想される時間を指定する第2サブ・マッピング;
    のうちの少なくとも1つを決定するステップを含む、請求項1に記載の方法。
  3. 前記第2マッピングを生成するステップは:
    前記セットの前記第1データ・パケットのうちの少なくとも1つについて:
    前記第1データ・パケットのうちの前記少なくとも1つが前記第1マッピングによって中継のために指定される隣接ノードの第1セットを決定するステップ;
    前記第1セットとは異なる隣接ノードの第2セットであって、前記第1セットと同じ濃度を有する第2セットを選択するステップ;及び
    隣接ノードの前記第2セットへの中継のために前記少なくとも1つの前記第1データ・パケットを指定するステップ;
    を含む、請求項1又は2に記載の方法。
  4. 前記セットのうちの任意の2つの異なる第1データ・パケットについて:
    前記2つの第1データ・パケットそれぞれが前記第1マッピングにより指定される隣接セット間の類似性尺度を取得するステップ;及び
    前記類似性尺度が第2条件を満足している旨の判断に応答して、前記1つ以上の隣接ノードに対する前記セットの前記第1データ・パケットの第3マッピングを生成するステップ;
    を更に含む請求項1-3のうちの何れか1項に記載の方法。
  5. 前記隣接セットはベクトルとして表現可能であり、前記類似性尺度は前記隣接セットのベクトル表現間のコサイン類似度を含む、請求項4に記載の方法。
  6. 前記類似性尺度が前記第2条件を満足していることを判断するステップは、前記コサイン類似度が、所定の値の範囲外に出ることを判断するステップを含む、請求項5に記載の方法。
  7. 前記隣接セット間の前記類似性尺度は、前記第1マッピングの前記非相関メトリック値を算出する前に取得される、請求項4-6のうちの何れか1項に記載の方法。
  8. 前記第1マッピングが前記第1条件を満足するかどうかを判断するステップは:
    前記第1マッピングに対する前記非相関メトリック値S(R,n)と第1非相関メトリック値Snc(R,n)との間の差分を計算するステップであって、前記第1マッピングに対する前記非相関メトリック値は、前記第1期間の間に収集される第1データ・パケットの総数と、前記第1マッピングにより前記1つ以上の隣接ノードのそれぞれに指定された第1データ・パケットの数とに基づいて計算される、ステップ;及び
    計算された前記差分を所定の差分閾値と比較するステップ;
    を含む、請求項1-7のうちの何れか1項に記載の方法。
  9. 前記第1マッピングに対する前記非相関メトリック値は、
    Figure 0007339965000020
    として計算され、cは前記第1マッピングによりそれぞれの隣接ノードに指定された第1データ・パケットの数を表し、nは前記1つ以上の隣接ノードの総数を表し、Rは前記第1期間の間に収集された第1データ・パケットの総数を表す、請求項1-8のうちの何れか1項に記載の方法。
  10. 前記第1非相関メトリック値は、
    Figure 0007339965000021
    として計算され、nは前記1つ以上の隣接ノードの総数を表し、Rは前記第1期間の間に収集された第1データ・パケットの総数を表す、請求項8又は9に記載の方法。
  11. 前記1つ以上の隣接ノードへの中継のための、前記セットのうちの前記第1データ・パケットの新たなマッピングを生成する反復回数;
    前記第1非相関メトリック値からの計算された最低の差分に関連する現在の非相関メトリック値;及び
    前記現在の非相関メトリック値に関連する現在のマッピング;
    をデータベースに格納するステップを更に含む請求項8-10のうちの何れか1項に記載の方法。
  12. 前記反復回数は所定数に等しいかどうかを判断するステップ;及び
    前記反復回数は前記所定数に等しい旨の判断に応答して、前記現在のマッピングに従って、前記セットのうちの前記第1データ・パケットを隣接ノードへ伝送するステップ;
    を更に含む請求項11に記載の方法。
  13. 前記第1マッピングに対する前記非相関メトリック値が前記第1条件を満足する旨の判断に応答して、前記第1マッピングに従って、前記セットのうちの前記第1データ・パケットを隣接ノードへ伝送するステップ;
    を更に含む請求項1-12のうちの何れか1項に記載の方法。
  14. 請求項1-13のうちの何れか1項に記載の方法を実行するためにコンピュータで実現されるシステム。
  15. 請求項1-13のうちの何れか1項に記載の方法を実行するためにコンピュータ・システムを適合させる命令を格納する非一時的なコンピュータ読み取り可能な媒体。
JP2020562715A 2018-05-15 2019-05-09 ノードのネットワークにおいてデータ・パケットを伝搬するためのシステム及び方法 Active JP7339965B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023136871A JP2023159363A (ja) 2018-05-15 2023-08-25 ノードのネットワークにおいてデータ・パケットを伝搬するための方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB1807835.2A GB201807835D0 (en) 2018-05-15 2018-05-15 Computer-implemented system and method
GB1807835.2 2018-05-15
PCT/IB2019/053826 WO2019220281A1 (en) 2018-05-15 2019-05-09 Systems and methods for propagating data packets in a network of nodes

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023136871A Division JP2023159363A (ja) 2018-05-15 2023-08-25 ノードのネットワークにおいてデータ・パケットを伝搬するための方法

Publications (2)

Publication Number Publication Date
JP2021523619A JP2021523619A (ja) 2021-09-02
JP7339965B2 true JP7339965B2 (ja) 2023-09-06

Family

ID=62623406

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020562715A Active JP7339965B2 (ja) 2018-05-15 2019-05-09 ノードのネットワークにおいてデータ・パケットを伝搬するためのシステム及び方法
JP2023136871A Pending JP2023159363A (ja) 2018-05-15 2023-08-25 ノードのネットワークにおいてデータ・パケットを伝搬するための方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023136871A Pending JP2023159363A (ja) 2018-05-15 2023-08-25 ノードのネットワークにおいてデータ・パケットを伝搬するための方法

Country Status (6)

Country Link
US (2) US11496945B2 (ja)
EP (2) EP4102781A1 (ja)
JP (2) JP7339965B2 (ja)
CN (2) CN112119620B (ja)
GB (1) GB201807835D0 (ja)
WO (1) WO2019220281A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201807835D0 (en) * 2018-05-15 2018-06-27 Nchain Holdings Ltd Computer-implemented system and method
US11961142B2 (en) * 2019-08-26 2024-04-16 Compound Labs, Inc. Systems and methods for pooling and transferring digital assets
CN112566211B (zh) * 2020-12-11 2022-04-15 安徽大学 一种基于区块链智能合约的蜂窝小区中继协作通信方法
CN113590721B (zh) * 2021-06-25 2024-01-30 中国人民银行数字货币研究所 一种区块链地址分类方法和装置
US11902426B2 (en) * 2021-06-26 2024-02-13 Ceremorphic, Inc. Efficient storage of blockchain in embedded device
CN115396918A (zh) * 2022-08-09 2022-11-25 中国联合网络通信集团有限公司 区块链数据传输方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266704B1 (en) 1997-05-30 2001-07-24 The United States Of America As Represented By The Secretary Of The Navy Onion routing network for securely moving data through communication networks
JP2002529779A (ja) 1998-10-30 2002-09-10 サイエンス アプリケーションズ インターナショナル コーポレイション 保証されたシステム可用性を有する安全な通信のためのアジル・ネットワーク・プロトコル
JP2002529965A5 (ja) 1999-10-29 2006-11-09
US20090217351A1 (en) 2008-02-25 2009-08-27 Lloyd Leon Burch Techniques for anonymous internet access
US7739497B1 (en) 2001-03-21 2010-06-15 Verizon Corporate Services Group Inc. Method and apparatus for anonymous IP datagram exchange using dynamic network address translation

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2164258A4 (en) * 2007-06-11 2011-06-22 Sharp Kk DEVICE FOR CONTENT DELIVERY, PROGRAM AND RECORDING MEDIUM
JP2011109471A (ja) 2009-11-18 2011-06-02 Oki Electric Industry Co Ltd 通信経路制御装置及び通信経路制御方法
CN103430494A (zh) * 2011-02-17 2013-12-04 岩星社团美国有限公司 用于等价多路径分组交换网络的下一跳计算函数
KR101889378B1 (ko) * 2011-10-14 2018-08-21 삼성전자주식회사 사용자 단말 장치 및 그 컨텐츠 공유 방법
US8934389B2 (en) * 2012-01-18 2015-01-13 Microsoft Corporation Mechanism for connecting a mobile device to a network
US9264974B2 (en) * 2013-10-07 2016-02-16 Avaya Inc. Mobility integration with fabric enabled network
JP6737086B2 (ja) * 2016-09-06 2020-08-05 大日本印刷株式会社 アドレス管理装置、データ管理システム及びプログラム
CN106534085B (zh) * 2016-10-25 2019-09-06 杭州云象网络技术有限公司 一种基于区块链技术的隐私保护方法
CN107294963B (zh) * 2017-06-14 2019-09-06 广东工业大学 一种基于联盟区块链的数据的安全加密方法及装置
GB201802347D0 (en) * 2018-02-13 2018-03-28 Nchain Holdings Ltd Computer-implemented system and method
GB201807835D0 (en) * 2018-05-15 2018-06-27 Nchain Holdings Ltd Computer-implemented system and method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266704B1 (en) 1997-05-30 2001-07-24 The United States Of America As Represented By The Secretary Of The Navy Onion routing network for securely moving data through communication networks
JP2002529779A (ja) 1998-10-30 2002-09-10 サイエンス アプリケーションズ インターナショナル コーポレイション 保証されたシステム可用性を有する安全な通信のためのアジル・ネットワーク・プロトコル
JP2002529965A5 (ja) 1999-10-29 2006-11-09
US7739497B1 (en) 2001-03-21 2010-06-15 Verizon Corporate Services Group Inc. Method and apparatus for anonymous IP datagram exchange using dynamic network address translation
US20090217351A1 (en) 2008-02-25 2009-08-27 Lloyd Leon Burch Techniques for anonymous internet access

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BOJJA, S., FANTI, G. and VISWANATH, P.,Dandelion: Redesigning the Bitcoin Network for Anonymity,arXiv,1701.04439v1,[online],2017年01月16日,pp.1-19,<URL:https://arxiv.org/abs/1701.044339v1>

Also Published As

Publication number Publication date
GB201807835D0 (en) 2018-06-27
CN116318735A (zh) 2023-06-23
EP3794795B1 (en) 2022-06-15
WO2019220281A1 (en) 2019-11-21
US11496945B2 (en) 2022-11-08
CN112119620A (zh) 2020-12-22
US20230128585A1 (en) 2023-04-27
US20210204189A1 (en) 2021-07-01
EP4102781A1 (en) 2022-12-14
JP2021523619A (ja) 2021-09-02
EP3794795A1 (en) 2021-03-24
CN112119620B (zh) 2023-04-18
US11937162B2 (en) 2024-03-19
JP2023159363A (ja) 2023-10-31

Similar Documents

Publication Publication Date Title
JP7339965B2 (ja) ノードのネットワークにおいてデータ・パケットを伝搬するためのシステム及び方法
JP7295872B2 (ja) ネットワークでデータを伝搬させるブロックチェーン・ベースのシステム及び方法
JP7401465B2 (ja) ノードのネットワークにおいてデータパケットを伝搬させるシステム及び方法
KR102519197B1 (ko) 블록체인 네트워크와 같은 네트워크에서 데이터의 전파 및 통신을 위한 컴퓨터 구현 시스템 및 방법
JP2024010228A (ja) ランダム差動リレー及びネットワークコーディングのシステム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220411

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: 20230627

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230726

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230825

R150 Certificate of patent or registration of utility model

Ref document number: 7339965

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150