JP7295872B2 - ネットワークでデータを伝搬させるブロックチェーン・ベースのシステム及び方法 - Google Patents

ネットワークでデータを伝搬させるブロックチェーン・ベースのシステム及び方法 Download PDF

Info

Publication number
JP7295872B2
JP7295872B2 JP2020542414A JP2020542414A JP7295872B2 JP 7295872 B2 JP7295872 B2 JP 7295872B2 JP 2020542414 A JP2020542414 A JP 2020542414A JP 2020542414 A JP2020542414 A JP 2020542414A JP 7295872 B2 JP7295872 B2 JP 7295872B2
Authority
JP
Japan
Prior art keywords
nodes
node
data packets
relay
network
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
JP2020542414A
Other languages
English (en)
Other versions
JP2021513265A (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 JP2021513265A publication Critical patent/JP2021513265A/ja
Priority to JP2023095302A priority Critical patent/JP2023113898A/ja
Application granted granted Critical
Publication of JP7295872B2 publication Critical patent/JP7295872B2/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/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、一般にコンピュータ・ネットワークに関し、特にノードのネットワークでデータを伝搬させるための方法及び装置、電子通信、並びにネットワーク技術に関する。それはブロックチェーン技術に関連して使用することに特に適している。特に、データの安全な伝送に関連し、第三者による攻撃や潜在的な悪意のあるイベント、即ち攻撃の緩和に関連する。
この文書において我々は「ブロックチェーン」という用語を電子的な、コンピュータ・ベースの、分散型のあらゆる形式の台帳を含むように使用する。これらは、ブロックチェーン及びトランザクション・チェーンの技術、許可型及び非許可型の台帳、共有台帳、並びにそれらの変形を含むが、これらに限定されない。ブロックチェーン技術の最も広く知られているアプリケーションはビットコイン台帳であるが、他のブロックチェーン実装も提案され開発されている。便宜上及び説明の目的で本願ではビットコインが言及されるかもしれないが、本発明はビットコイン・ブロックチェーンで使用することに限定されず、代替的なブロックチェーン実装及びプロトコルも、本発明の範囲内にあることに留意すべきである。用語「ビットコイン」は本願ではビットコイン・プロトコル又はブロックチェーンに由来するプロトコル、ブロックチェーン及び実装の任意の及び全てのバリエーションを含むように使用される。
ブロックチェーンは、コンピュータ・ベースの非セントラル化された分散システムとして実現されるコンセンサス・ベースの電子台帳であり、これはトランザクションを成すブロックから構成される。各トランザクションは、ブロックチェーン・システムの参加者間でのデジタル資産のコントロールの移転をエンコードするデータ構造であり、少なくとも1つの入力及び少なくとも1つの出力を含む。各ブロックは前のブロックのハッシュを含み、その結果、ブロックは共にチェーン化されるようになり、ブロックチェーンの開始以来そこに書き込まれてきた全てのトランザクションの永続的で変更不可能な記録を作成する。トランザクションは、トランザクションの入力及び出力に組み込まれたスクリプトとして知られる小さなプログラムを含み、それはトランザクションの出力がどのように、そして誰によってアクセスされ得るかを指定する。ビットコイン・プラットフォームでは、これらのスクリプトはスタック・ベースのスクリプト言語を使用して書き込まれる。
新しいトランザクションを受信したネットワーク・ノードは、そのトランザクションをネットワーク内の他のノードにプッシュすることを速やかに試みるであろう。新しいトランザクションを他のノードに送信する前に、それは「検証され」、適用可能なブロックチェーン・プロトコルに従ってトランザクションが適切なトランザクションの基本要件を充足することを保証するために、一組の基準に対して検査されることを意味する。
ブロックチェーンに書き込まれるトランザクションのために、それはノード(「マイナー」又は「マイニング・ノード」)によりブロックに組み込まれ、そのノードはトランザクションを収集し且つトランザクションをブロックに形成するように設計されている。次に、マイナーはそのノードに関する「プルーフ・オブ・ワーク」を完了することを試みる。ブロックチェーン・ネットワーク中のマイナーは、トランザクションのブロックを組み立てた1番になること、及びそのブロックに対する関連するプルーフ・オブ・ワークを完了することを競う。勝利したマイナーは、確認したブロックをブロックチェーンに追加し、そのブロックはネットワークを介して伝搬され、その結果、ブロックチェーンのコピーを保持する他のノードは各自の記録を更新することが可能である。ブロックを受け取るそれらのノードは、そのブロック及びそこの全てのトランザクションを「検証」し、それがプロトコルの正式な要件に従っていることを保証する。
ビットコインのようなブロックチェーン技術の認識されている利点のうちの1つは、取引の匿名性(anonymity)である。ビットコイン・ユーザーの個人的な詳細は、形式的にも明示的にもビットコイン・アドレスに付いてはおらず、ブロックチェーンのビットコイン台帳は、公のアドレス情報を含むだけである。しかしながら、ブロックチェーンは、インターネットのトップで動作する分散型のピア・ツー・ピア・ネットワークとして構成されているので、インターネット・プロトコル(IP)アドレス情報を使用してユーザーをネットワーク活動にリンクさせる攻撃によって、トランザクションの匿名性は損なわれてしまう可能性がある。例として、ブロックチェーン・ベースのネットワークで行われるIPトラフィック分析のような非匿名化攻撃(de-anonymization attacks)は、関心のある第三者が、ネットワークでユーザーによってサブミットされたトランザクションを監視し、公に利用可能な情報を使ってトランザクションをそれらのソースに、例えばユーザーの公開鍵を彼らのIPアドレスにリンクすることによって結び付けることが可能であるかもしれない。
トラフィック分析は、ネットワーク・ノードによる及びネットワーク・ノード間のトランザクションの伝搬を当てにするブロックチェーン・ベースのネットワークにとって特に問題である。トランザクションを受信するネットワーク内の各ノードは、トランザクションを検証し、次いでそれをピア・ノードに送信する。例えば、ビットコイン・プロトコルでは、ノードは、トランザクションのリストを含む「INV」メッセージをピア・ノードに送信し、「INV」メッセージで通知されたトランザクションのうちの一部のサブセットを選択する「GETDATA」応答メッセージを受信する。次いで、ノードは要求されたトランザクションをピア・ノードに送信する。このプロセスは、ノードが接続されている各ピア・ノードに対して実行される。攻撃者は、トランザクションがネットワーク内で伝搬される場合に伝送されるデータを傍受して分析し、最終的に、トランザクションの送信元及び送信先をリンクするために使用することが可能な情報を獲得する可能性がある。
トラフィック分析又は他のタイプの非匿名化攻撃によりネットワーク匿名性を損なう可能性を減少させることが可能な、ブロックチェーン・ベースのネットワークにおけるトランザクションを伝搬する技術を提供することが望ましい。より一般的には、非匿名化攻撃に対する脆弱性を減らすために、ピア・ツー・ピア・ネットワークのノード間でデータを中継する技術を提供することが望ましい。
そのような解決策が講じられる。
従って本発明によれば添付の特許請求の範囲で規定されるような方法及び装置が提供される。
本願は、ノードのネットワーク内でデータ・パケットを伝搬させるためのノードを述べており、ここで、ネットワーク内の各ノードは他のノードに対する1つ以上のコネクションを有する。ノードは、少なくとも1つの第1タイプのデータ・パケットを生成するステップと;第1期間の間に第1タイプのデータ・パケットのセットを収集するステップであって、そのセットは、少なくとも1つの生成したデータ・パケットと、ネットワーク内の1つ以上の第1ノードから受信した少なくとも1つの第1タイプのデータ・パケットとを含む、ステップと;セットのうちのデータ・パケットとノードに接続される複数の隣接ノードとのマッピングを決定するステップであって、マッピングは、セットのうちの各データ・パケットの隣接ノードに対する中継予想時間を指定している、ステップと;を実行するように構成されることが可能である。セットのうちのデータ・パケットと複数の隣接ノードとのマッピングを決定するステップは:中継に同じ送信元を含む任意の2つのデータ・パケットを、隣接ノードの異なるサブセットに割り当てる第1サブ・マッピング;及び同じ時間インターバル内に1つ以上の第1ノードからノードにより受信した又はノードで生成した任意の2つのデータ・パケットに、異なる中継予想時間を指定する第2サブ・マッピング;のうちの少なくとも1つを決定するステップを含むことが可能である。ノードは、決定されたマッピングに従って、セットのうちのデータ・パケットを複数の隣接ノードに送信するように更に構成される可能性がある。
ノードは、プロセッサと、ネットワーク接続を提供するネットワーク・インターフェースと、メモリとを含む可能性がある。メモリは、プロセッサによって実行されると、上述の動作をプロセッサに実行させるプロセッサ実行可能命令を含む可能性がある。
本願はコンピュータで実行される方法を述べている。これは、ノードのネットワークでデータ・パケットを伝搬させる方法として述べることが可能であり、ネットワーク内の各ノードは他ノードに対する1つ以上のコネクションを有する。方法は、複数のノードのうちの1つで実行されることが可能であり、本方法は:少なくとも1つの第1タイプのデータ・パケットを生成するステップと;第1期間の間に第1タイプのデータ・パケットのセットを収集するステップであって、そのセットは、少なくとも1つの生成したデータ・パケットと、ネットワーク内の1つ以上の第1ノードから受信した少なくとも1つの第1タイプのデータ・パケットとを含む、ステップと;セットのうちのデータ・パケットとノードに接続される複数の隣接ノードとのマッピングを決定するステップであって、マッピングは、セットのうちの各データ・パケットの、隣接ノードに対する中継の予想時間を指定する、ステップと;を含む可能性がある。セットのうちのデータ・パケットと複数の隣接ノードとのマッピングを決定するステップは:中継に同じ送信元を含む任意の2つのデータ・パケットを、隣接ノードの異なるサブセットに割り当てる第1サブ・マッピング;及び同じ時間インターバル内に1つ以上の第1ノードからノードにより受信された又はノードで生成された任意の2つのデータ・パケットに、異なる中継予想時間を指定する第2サブ・マッピング;のうちの少なくとも1つを決定するステップを含む可能性がある。本方法は、決定されたマッピングに従って、セットのうちのデータ・パケットを複数の隣接ノードに送信するステップを更に含む可能性がある。
一部の実装において、第1サブ・マッピングを決定するステップは、少なくとも1つの生成したデータ・パケットの各々について:ノードにより以前に生成した所定数の第1タイプの第1データ・パケットを識別するステップと;第1データ・パケットに関連する中継ノード・セットのリストを取得するステップであって、中継ノード・セットは、第1データ・パケットがそれぞれ中継される先の隣接ノードを含む、ステップと;取得したリストにおける中継ノード・セットとは異なる隣接ノードのセットを識別することに基づいて、中継ノードの第1セットを選択するステップと;を含む可能性がある。
一部の実装において、中継ノードの第1セットを選択するステップは、取得したリストに含まれていない2つ以上の隣接ノードのセットを任意に選択するステップを含む可能性がある。
一部の実装において、中継ノードの選択された第1セットは、少なくとも2つのノードにより取得されたリストにおける中継ノード・セットとは異なる可能性がある。
一部の実装において、第1セットに含まれるように選択される隣接ノードの数は任意に決定される可能性がある。
一部の実装において、第1セットに含まれるように選択される隣接ノードの数は、ノードの帯域幅条件に従って制限される可能性がある。
一部の実装において、第1サブ・マッピングを決定するステップは、1つ以上の第1ノードの各々について:第1ノードから最近受信した第1タイプの所定数の第2データ・パケットを識別するステップと;第2データ・パケットの、隣接ノードの固定セットに対する第1割り当てを決定するステップであって、第1割り当ては、第2データ・パケットの、所定の条件を充足する隣接ノードに対する1つ以上の割り当てから選択される、ステップと;を含む可能性がある。
一部の実装において、第2データ・パケットの、隣接ノードの固定セットに対する割り当ては、第2データ・パケットのうちの任意の2つについて、第2データ・パケットの双方が割り当てられる隣接ノードの数が所定の閾値以下である場合に、所定の条件を充足している可能性がある。
一部の実装において、第1ノードのうちの任意の2つについて、2つの第1ノードから受信した全ての第2データ・パケットのセットは、第1割り当てにおいて、少なくとも2つの異なる隣接ノードに割り当てられる可能性がある。
一部の実装において、本方法は、第2データ・パケットの、隣接ノードの固定セットに対する第2割り当てを決定するステップを更に含む可能性があり、第2割り当ては、ノードの出力インターフェースにおけるトラフィックの均衡を図るための第1割り当ての再設定である。
一部の実装において、第2サブ・マッピングを決定するステップは、セットの1つ以上のデータ・パケットの各々について:データ・パケットの隣接ノードに対する次の中継予定時間を決定するステップと;次の中継予定時間の後、所定の時間内に、データ・パケットを中継するステップと;を含む可能性がある。
一部の実装において、所定の時間は第1期間の倍数である可能性がある。
一部の実装において、本方法は、1つ以上の第1ノードの各々から受信することが可能なデータ・パケットの最大数を設定するステップを更に含む可能性がある。
本願は、エンティティのためのコンテンツをブロックチェーンに送信するプロセスに参加するコンピューティング・デバイスも述べており、コンピューティング・デバイスは、本願で説明される1つ以上の方法の動作を実行するように構成される。
本願は、ノードのネットワークでデータ・パケットを伝搬させるプロセスに参加するためのプロセッサ実行可能命令を記憶する非一時的なプロセッサ読み取り可能な媒体も述べており、プロセッサ実行可能命令は、複数の参加ノードのうちの1つにおけるプロセッサで実行されると、本願で説明される1つ以上の方法の動作をプロセッサに実行させる。
本願は、ネットワークにおけるノード・レベルの匿名化を提供するための(好ましくはブロックチェーン・ベースの)ソリューションを述べている。特に、本願で説明される方法及びシステムは、ネットワーク内のデータ伝搬方式におけるノードの機能を分かりにくくすることを促進する。たとえ攻撃者がネットワーク内のノード間トラフィックを監視したり、特定のノードの隣接ノードへのアクセスを獲得したりしたとしても、本方法は、特定のノードがネットワーク内で伝搬しているデータ・パケットの送信元であるか又は中継ノードであるかどうかを、そのような攻撃者が判別することを困難にする。ブロックチェーン・ネットワークにおけるノードの機能/役割を分かりにくくすることによって、ネットワークにおける非匿名化攻撃の効率は低下する可能性があり、ブロックチェーンにおける又はブロックチェーンを介したデータ伝送のセキュリティは改善される可能性がある。
本願で説明される多くの実装例において、ブロックチェーン・トランザクションを具体的に参照するが;本願で記載される方法及びデバイスは、ブロックチェーン以外のトランザクション伝搬に関連して実装及び適用されてもよいことが理解されるであろう。より一般的には、本開示で説明される方法及びデバイスは、ピア・ツー・ピア・ネットワークのノード間で多種多様なデータを伝搬するために使用することに適している可能性がある。
本発明の1つの態様又は実施形態に関連して記載される任意の特徴は、1つ以上の他の態様/実施形態に関連して使用されてもよい。本発明のこれら及び他の態様は、本願で説明される実施形態から明らかになり、それに関連して説明される。本発明の実施形態は、単なる例示として、添付図面に関連して参照して説明される:
ブロックチェーンに関連付けられる例示的なネットワークを示す。
入力バッファ及び出力バッファを有する例示的なブロックチェーン・ノードを図式的に示す。
ノードの例示的なネットワーク内でトランザクションを伝搬するためのプロトコル、拡散ミキサ・プロトコル(Diffusion Mixer Protocol,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つ以上の出力を有する。入力及び出力に組み込まれるスクリプトは、トランザクションの出力がどのように、誰によってアクセスされ得るかを指定する。トランザクションの出力は、トランザクションの結果として価値(value)が転送される先のアドレスであってもよい。この価値は、次いで未使用のトランザクション出力(UTXO)として、その出力アドレスに関連付けられる。その後、後続のトランザクションは、その価値を使用又は消費するために、そのアドレスを入力として参照することが可能である。
ノード102は、ネットワーク・ルーティングから財布サービスに至るまで、多くの様々な機能を果たし、堅牢で安全な非セントラル化されたパブリック台帳を維持することが可能である。「フル・ノード(Full nodes)」は、ブロックチェーンの完全かつ最新のコピーを含み、それゆえに、パブリック台帳における任意のトランザクション(使用済み又は未使用)を検証することができる。「軽量ノード」(又はSPV)は、ブロックチェーンのサブセットを維持し、「簡易化された決済検証」技術を用いてトランザクションを検証することができる。軽量ノードは、ブロックのヘッダをダウンロードするだけであり、各ブロック内のトランザクションをダウンロードしない。従ってこれらのノードは各自のトランザクションを検証ためにピアを当てにする。フル又は軽量ノードであり得る「マイニング・ノード」は、トランザクションを検証し、ブロックチェーンにおいて新しいブロックを作成する責任を負う。典型的には軽量ノードである「ウォレット・ノード(Wallet nodes)」は、ユーザーのウォレット・サービスを処理する。ノード102は、TCP/IP(Transmission Control Protocol)のようなコネクション指向プロトコルを用いて互いに通信する。
ノードがトランザクションをピアに送信することを希望する場合、「INVENTORY」メッセージがピアに送信され、送信ノードに知られている1つ以上のインベントリ・オブジェクトを伝える。ピアが「GETDATA」メッセージ、即ち完全なトランザクション・リクエストで応える場合、トランザクションは「TRANSACTION」メッセージを利用して送信される。トランザクションを受信したノードは、それが有効なトランザクションである条件の下で、同じ方法でピアに転送する。
図2を次に参照すると、これは入力バッファ202及び出力バッファ204を有する例示的なノード200を図式的に示している。例示的なノード200は、intA、intB、intC、intDなどとして参照される複数のピア・ノードとのネットワーク・インターフェースを有する。入力バッファ202は、種々のピア・ノードからの入力トランザクションを示し、出力バッファ204は、それぞれのインターフェースを介してピア・ノードへ伝送するための、トランザクションに対応する出力ネットワーク・パケットを示す。ネットワーク・パケットは、ノード200のオペレーティング・システムによって提供されるプリミティブに従って、アプリケーション・レベルでシリアルに送受信される。トランザクションxが単一のイーサーネット/IPパケットに適合すると仮定すると、m個のピアへの送信は、m個の異なる出力ネットワーク・パケットのバッファリングを必要とする。入力及び出力ネットワーク・パケットは両方とも、他の情報と共に、シリアル化されたトランザクションと、送信/受信ピアへのTCP/IP接続を表す論理インターフェースIDとを含む。
一旦トランザクションが生成されると、ソース・ノードはネットワーク上でトランザクション・メッセージをブロードキャストする。一般に、クライアントがトランザクションを生成すると、それは出力バッファ204に入れられる。トランザクションは、直ちにピアに転送される場合とされない場合がある。ノード・ネットワークの一部の実装では、トランザクションは「拡散伝搬(diffusion propagation)」と呼ばれるメカニズムによって伝搬され、それにより、各トランザクション・ソースは、トランザクションを、独立した指数遅延でその隣接ノードに伝送する。伝搬の遅延はランダムであり、悪意のある攻撃者のタイミング推定に不確定性を導入するのに有用である。ピアが特定のトランザクションを受信すると、ピアは同じトランザクションの将来の中継を受け入れない可能性があり;例えば、トランザクション・ハッシュがピアのメモリ・プールに格納され、ピアが同一のトランザクションを拒否することを可能にする。ネットワークを介するトランザクションの「拡散」は、対称的であり、つまり転送ノードはトランザクション・ブロードキャストに影響を及ぼす隣接ノードのIPアドレスに関する情報を使用しないことを意味する。例えば「標準(standard)」拡散プロセスでは、ブロードキャスト・ノードのピアは全て同じトランザクションを受信し、各々の中継インスタンスでは、一度に唯一つのトランザクションがピア毎に中継される。この「拡散」の対称的な性質は、非匿名化攻撃を行う際に、ネットワークのピア・ツー・ピア・グラフ構造の知識を有する悪意の第三者によって悪用される可能性がある。
本開示は、ブロックチェーン・ネットワークでのトランザクション中継のための代替技術を提供し、トラフィック分析攻撃に対する保護を改善する。特に、提案される中継プロトコルは、トランザクションの送信元ノードとそれらのIPアドレスとの間の結び付きを偽装、隠蔽、又は不明瞭化するために使用されることが可能である。
トランザクション中継プロトコル、拡散ミキサ・プロトコル(DMP)が提案される。DMPは2つの独立した拡散ステージを含む。第1ステージ(「ランダム差分中継(random differential relay,RDR)」)は、中継されるトランザクションの混合、及びトランザクション・ソースの不明瞭化を可能にする。ランダム差分中継ステージの間に、各ノードは、トランザクションをネットワークにブロードキャストする前に、所定の時間長だけ待機し、ピアから複数のトランザクションを受信及び収集する。ノードは、次いで「エントリ・ノード」に対する進出コネクションを作成し、ほぼ同じタイムスタンプを有する異なるサブセットを、これらのエントリ・ノードのうちの任意に(例えばランダムに)選択されたサブセットに送信する。ノードのうちのエントリ・ノードは、直接的な進出コネクションがそのノードからそこへ確立されることが可能な隣接ノードである。エントリ・ノードの選択におけるランダム性と中継トランザクションにおけるダイバーシティは、攻撃者にとって、ネットワーク・トポロジの再構成をより困難にすることが可能である。
第2ステージ(「標準拡散」)は、ネットワーク内でのトランザクションの時宜にかなった信頼できる伝搬を保証する。標準拡散ステージでは、各ノードは、同じトランザクションを全てのエントリ・ノードに中継し、各々の中継インスタンスでは、一度に唯一つのトランザクションがエントリ・ノードごとに中継される。
ブロックチェーン・ネットワークのようなノードのネットワークでは、1つ以上のノードがDMPを実装することが可能であることに留意すべきである。具体的には、ネットワークの1つ以上のノードは、DMPに参加することによって、受信したデータ・パケットをそのエントリ・ノードに中継することができる。参加ノードは、例えば特定のデータ・パケットを伝搬するために、RDRプロセスと標準拡散プロセスとの間で選択することが可能である。ネットワークのノードは、DMPに参加することを選択することが可能であり、非セントラル化された方式によって、又は中央当局によって構成される参加ノードのグループへの包含によって、プロトコルに参加することができる。参加ノードは、DMPに従って出力ネットワーク・パケットを中継する。特に、参加ノードがデータ・パケットを受信した場合、ノードは、DMPによって規定されるルールを使用して、そのノードに対して選択される伝搬モードに従って、受信したデータ・パケットを転送することが可能である。
トランザクション中継のための提案されるDMPは、図3~7を参照して説明される。DMPの概略的な眺めは図3において提供される。ノードの例示的なブロックチェーン・ネットワーク300が示されている。各ノードはネットワーク端末(即ちブロックチェーン・ノード)を表す一方、エッジはノード間のリンクを表す。この説明の目的のために、各リンクに対して、一度に単一ビットを送受信することが可能であることが想定される。
この例のネットワーク300では、ノードが新しいトランザクションを受信した場合に、それがネットワークを介して他の全てのノードに伝搬されるように、各ノードは、一組の未確認のトランザクションを維持する。各ノードは、新しいトランザクションを検証して各自それぞれのローカル・セットに格納し、新しいトランザクションを、その新しいトランザクションを有していない何らかのピア・ノードに転送する。ブロックチェーン・ネットワーク300のピア・ツー・ピアの性質に起因して、全てノードが新しいトランザクションを同時に受信してはおらず、これは、新しいトランザクションにとって、ネットワーク300内の全てのノードに到達するまでに幾らか時間がかかることを意味する。
図3は、特定のトランザクションTx1を伝搬するためのDMPの2つのステージ、即ちランダム差分リレー302及びTx1の標準拡散304を示す。トランザクションTx1のソース・ノード310は、時間tにおいて、トランザクションTx1を生成するか、又はピア・ノードからそれを受信する可能性がある。DMPに従って、ソース・ノード310は、受信した/待ち行列に入ったトランザクションのブロードキャストを開始する前に、隣接ノードから少なくとも1つ以上の到来するトランザクションを受信するために待機する。図3の例では、一旦トランザクションTx2が時間tでソース・ノード310によって受信されると、トランザクションTx1及びTx2は、ソース・ノード310のエントリ・ノードのうちの任意に選択されたサブセットへ時間tで送信される。トランザクション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つ以上(即ち、ノードが進出コネクションを有する接続先の隣接ノード)を任意に選択し、選択されたエントリ・ノードにデータ・パケットを割り当てる。例えば、エントリ・ノードは、ランダムに選択されてもよい。一部の実装において、ノードは、ピアの新しいアドレスを得るためにネットワークに問い合わせを行う可能性がある。例えば、ビットコイン・ネットワークにおいて、ノードは、Bitcoin Core、BitcoinJ、又はその他のブロックチェーン・プロトコルに組み込まれ、且つビットコイン(又は他のブロックチェーン)コミュニティ・メンバーによって維持される1つ以上のデータベース・ソース名(database source names,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 0007295872000001
再び図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においてノードにより少なくとも1つの第1タイプのデータ・パケットを生成した時点以降の所定の持続時間の満了であってもよい。即ち、ノードは、何らかのデータ・パケットがノードによって伝搬される前に、ノードが同じタイプのデータ・パケットを生成する時に始まる所定の時間的な期間にわたって、到来するデータ・パケットを監視して収集するように設計されてもよい。この条件は、ノードによって生成されたデータ・パケットが、同時ブロードキャストされることが可能な同じタイプのよりデータ・パケットをより多く収集した後に、伝搬されることを保証しようとするのに有用である可能性があり、それによって、生成されたデータ・パケットのソースとしてノードを的確に識別することを攻撃者にとって困難にする。
一部の実装において、トリガ条件は、ノードのピアから少なくとも1つの到来する第1タイプのデータ・パケットのうちの最初のものを受信した時点以来の所定の継続時間の満了であってもよい。即ち、ノードは、そのような到来するデータ・パケットのうちの最初のものが受信された時に始まる所定の時間的な期間にわたって、到来するデータ・パケットを監視して収集するように設計されてもよい。この条件は、ノード自体によって生成されたか、又は他のピアから受信されたデータ・パケットのうちの何れかである、より多くのデータ・パケットが、ネットワークの残りの部分への何らかのブロードキャストの前に、ノードによって収集されることを保証しようとするのに有用である可能性がある。
一部の実装において、トリガ条件は、第1の時間的な期間の間に収集されたデータ・パケットの数が閾値数に到達することであってもよい。特に、ノードは、第1の時間的な期間が満了すること、又は所定の閾値数のデータ・パケットがノードによって収集されること、のうちの何れか早い方に至るまで、到来するデータ・パケットを監視して収集するように設計されてもよい。
ランダム差分中継のための発見的方法
上述したように、ランダム差分中継は、ノードのネットワーク内でトランザクションを伝搬するための「標準拡散」プロトコルからの新発展を表す。RDRを実装する際、伝搬ノードは、異なるトランザクションを、エントリ・ノードのうちのランダムに選択されたサブセットに同時に中継する。伝搬ノードは、トランザクションが中継されるべき中継先の1つ以上のエントリ・ノードを、収集されたトランザクション各々にランダムに割り当てることによって、テーブル1に示されるデータ構造のようなデータ構造を生成することができる。より一般的には、データ・パケットを自身のピアに中継するネットワーク・ノードは、ノードによって収集される複数のデータ・パケット(即ち、受信された、又は、ローカルに生成されたもの)の各々に対して実行する中継のタイプを指定する自身の内部ルーティング・データ構造を維持することができる。
本願で提案される拡散ミキサ・プロトコルの文脈において、RDRを実装するブロックチェーン・ネットワークの各ノードは、自身のルーティング・データ構造、即ち「RDRテーブル」を独立に構築することができる。RDRテーブルは、RDRプロトコルを採用する各ノードのトランザクション割り当て方式を定める。即ち、個々のノードのRDRテーブルは、どのトランザクションがどのピアにいつ中継すべきかを管理するために使用される。RDRテーブルは、所与の長さの時間ΔTRDRの中で受信又は生成される全てのトランザクションと、トランザクションのソース・ピアとを追跡することが可能である。RDRテーブルは:トランザクションの最初のインスタンスの到着時刻(「ToAタイムスタンプ」);トランザクションを中継するために選択された時間(「ToRタイムスタンプ」);及び/又はノードによって受信された同じトランザクションのインスタンス数のカウンタ;のような追加情報を含む可能性がある。以下にRDRテーブルの例を示す。
テーブル2
Figure 0007295872000002
ノードのローカルRDRテーブルは、新たな情報(タイムアウト、受信又は生成したトランザクション)が利用可能になる場合に、動的に(即ち、リアルタイムで)更新されてもよい。本開示は、個々のRDRテーブルの構築及び更新に寄与する様々な発見的方法、即ち「サブシステム」を提供する。これらのサブシステムは、RDRテーブルで指定されるようにトランザクション割り当てを更新するために適用される一組のルール又はガイドラインと考えることが可能である。これらのサブシステムに包含される方策は、個々のノードの中継動作によって生成されるネットワーク・トラフィックのバランスをとること、及びトランザクション・ソースの不明瞭化を強化することに有用である可能性がある。提案されるサブシステムのセット、即ち、送信元ミキシング、中継ミキシング、送信先ミキシング、到着時間(time-of-arrival)ミキシング、及び送信元制御は、並列的に動作することが可能である一方、負荷バランス・モジュールは、収集したトランザクション中継情報をマージし(merge)、ネットワーク・リソースの最適化された割り当てを提供するために使用されることが可能である。
図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)と記される)は、
S(tx)≠S(txi+1
を充足する。
即ち、続く2つトランザクションに対するピアのセットは、少なくとも1つのピアの分だけ異なる。この不等式は、ノードで生成されたトランザクションの最初の中継のパターンを探すための何らかの悪意の探索を難しくするのに役立つことが可能である。この概念は、次のように、送信元ミキシング度δSMに拡張されることが可能である。
Figure 0007295872000003
図9を次に参照すると、これはネットワーク内のノードで生成されたデータ・パケットを送信するための例示的な方法800をフローチャート形式で示す。方法800は、送信元ミキシング・サブシステム/発見的方法のルールに準拠するトランザクション割当方式に従って、ネットワークでデータを伝搬する技術を表す。方法800は、例えば、図1のネットワーク100のようなブロックチェーン・ネットワークのノードによって実現される。より具体的には、方法800は、DMPに参加するノードであって、ネットワークの残りの部分に伝搬するための第1タイプのデータ・パケット(例えば、トランザクション)を生成するノードによって実行される。
オペレーション802において、ノードに関連するクライアントは、少なくとも1つの第1タイプのデータ・パケットを生成する。データ・パケットは例えばブロックチェーン・トランザクションを含む可能性がある。
ノードは、少なくとも1つの生成されたデータ・パケットと隣接ノード(即ち、ピア)との第1マッピングを決定する。特に、複数のピアのサブセットが、ノードで生成されたデータ・パケットを中継するために選択される。各データ・パケットは、第1マッピングによって中継ノードの特定のサブセットに関連付けられる。各データ・パケットに関し、オペレーション804において、ノードによって以前に生成された所定数の第1タイプの第1データ・パケットが識別される。これらは、ノードによってピアに既に送信されているデータ・パケットか、あるいは以前に生成されたがノードのピアに未だ中継されていないデータ・パケットである可能性がある。
オペレーション806において、第1データ・パケットに関連する中継ノード・セットのリストが取得される。中継ノード・セットは、第1データ・パケットがそれぞれ中継される(又は中継のために割り当てられる)中継先の隣接ノード(ピア)を含む。即ち、中継ノード・セットは、第1データ・パケットのうちの個々のものが割り当てられるノードのピアのサブセットを示す。
オペレーション808において、オペレーション806で得られたリスト内の中継ノード・セットとは異なる隣接ノードのセットを識別することに基づいて、第1セットの中継ノードが選択される。例えば、第1セットの中継ノードは、取得された中継ノード・セットのリストに含まれていない2つ以上の隣接ノードのセットを任意に選択することによって選択されてもよい。一部の実装では、選択された第1セットは、2つ以上のピアによって取得されたリスト内の中継ノード・セットとは異なる、という要件が課される可能性がある。即ち、中継ノードの選択された第1セットと、取得されたリスト内の中継ノード・セットのうちの任意の1つと、の間の交わり集合に属する要素の数に、上限が設定されてもよい。
方法800は、単一のデータ・パケットがノードで生成された後、又はノードが複数の生成されたデータ・パケットを収集した後に、ノードによって実行されてもよい。特に、ノードは、ある時間的な期間にわたって(DMPのRDRステージと同様に)第1タイプのデータ・パケットを生成及び蓄積し、蓄積されたデータ・パケットの中継ノード・セットに対する第1マッピングを決定することが可能である。これらの場合に、データ・パケットは、中継ノードの任意に選択されたサブセットにそれぞれ割り当てられてもよく、2つのそのようなサブセットが互いに等しくないことを保証する。
中継ノードの第1セットに含まれるために選択される隣接ノードの数は、任意に決定されてもよい。少なくとも幾つかの実装において、第1セットのために選択されるピアの数は、伝搬するノードの帯域幅条件(例えば、固定された時間フレーム内に出入りするデータの累積量)に従って制限される。特に、ローカルに生成されたトランザクションの中継のために選択されるピアの数は、ネットワーク負荷の問題に対処するため、又は送信元の不明瞭化を強化するために調整されることが可能である。例えば、第1セットに含まれるピアの数は、次のようにして決定されてもよい:
Figure 0007295872000004
ここで、mSMは、送信元ミキシング・サブシステムで中継のために選択されるピアの平均数を表す公称値であり、rnd(ξSM)は0とξSM-1との間のランダムな整数を表す。
次いで、中継ノードの第1セットの選択は、各データ・パケットに関連付けられる第1マッピングにおいて設定されてもよい。言い換えれば、第1マッピングは、データ・パケットが中継ノードの第1セットに関連付けられること(即ち、割り当てられること)を示してもよい。オペレーション810において、データ・パケットは、決定された第1マッピングに従って送信される。
中継ミキシング
中継ミキシング・サブシステムは、ノードによって受信されたトランザクションは、ノードのピアの重複しないサブセットに中継されるべきである、という概念を前提とする。同じノードにより受信される2つの異なるトランザクションに対して選択される中継ピア間の交差集合に属する要素の数を表すためにパラメータλを利用すると、中継ミキシングの背後にあるアイディアは次のように捉えることができる。
Figure 0007295872000005
ここで、δRMは中継ミキシング度である。不等式(1)は、トランザクションの中継ノードへの割り当て(不等式を満たすもの)を見出すトランザクション割り当て問題を規定する。従って、中継ミキシングの方策は、(1)におけるパラメータλを変化させることによって制御することができる。一旦λが設定されると、トランザクション割り当て問題に対する次善最適解に対する反復的な探索が実行される。中継ミキシング・サブシステムは、ノードが1つ以上のトランザクションを受信する送信元の各ピアに対して不等式(1)が充足されることを要求してもよい。例えば、ピアから受信した最新のδRM個のトランザクション(tx,txj+1,...、txj+δRM-1)は、それらのトランザクションに対して不等式(1)が充足されることを要求することによって、中継ミキシングを実現するために使用されることが可能である。従って、一部の実装では、個々のパラメータλが各ピアpに対してそれぞれ定義されてもよい。このように、送信元を分かりにくくすることは、ノードがトランザクションを受信する際の送信元の各ピアp,p,...,pのトランザクション中継のための独立したデータ構造を作成し、受信したトランザクションの中継ノードへの割り当てを識別することによって、実現されてもよい。
代替的に、他の実装において、パラメータλは、固有のシステムパラメータ;特定の時間ウィンドウ及びRDRテーブルに格納された情報を使用して更新される時変パラメータλ;又は各ピアに対する時変パラメータλ であって、特定の時間ウィンドウ及びRDRテーブルに格納された情報を使用して更新されるもの;であってもよい。
一般的なピアのトランザクション割り当ての組み合わせ数はC=( )δRMであり、ここで、mはノードのピアの数であり、δRMは中継ミキシングの程度であり、xは中継に選択されるピアの平均数である。次善最適解の反復探索は幾つかの可能な方法で進行する可能性がある:
・最大反復数を設定し、交わりのピアの最小数によりトランザクション割り当てを選択する。
・最大反復数を設定するが、交わりのピアの所定の閾値に達した場合は、早期にプロセスを中断する。
・最大反復数を設定し、要件が満たされない場合はλの値を増やし、プロセスをリスタートする。
・最大反復数を設定し、要件が満たされない場合はxの値を修正し、プロセスをリスタートする。
・最大反復数を設定し、要件が満たされない場合はmの値を減らし、プロセスをリスタートする。
反復の最大回数が固定時間ウィンドウΔTRMで置き換えられるならば、別の一連のアプローチを考慮することが可能である。
中継ノードのセットに含めるために選択される隣接ノードの数は、任意に決定されてもよい。少なくとも幾つかの実装において、セットために選択されるピアの数は、伝搬ノードの帯域幅条件(例えば、固定時間フレーム内に出入りするデータの累積量)に従って制限される。特に、ローカルに生成されるトランザクションの中継のために選択されるピアの数は、ネットワーク負荷の問題に対処するため、又はソースの不明瞭化を強化するために調整されることが可能である。例えば、第1セットに含まれるピアの数は、次のようにして決定されてもよい。
Figure 0007295872000006
ここで、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つ以上の割り当てから選択される。このオペレーションは、上述の不等式(1)に対する次善最適解を求める反復探索に対応する。即ち、(1)を充足する中継ノードへのデータ・パケットの割り当てのうち、特有の割り当て(例えば、交わりのピアが最も少ない割り当て)が決定される。(1)により得られるように、第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)による送信元ミキシングに対して説明されたものと同様の方法で割り当てられてもよい。この方策は、所与のトランザクションの送信元及び送信先の非相関化に寄与する可能性がある。
到着時間ミキシング
到着時間ミキシング発見的方法は、データ・パケット中継についての送信元及び送信先の情報の非相関化を支援するために、データ・パケットの遅延中継を実装する。例えば、時間ウィンドウΔT(例えば、DMPのRDRステージ)において収集される(又は生成される)データ・パケット(例えば、トランザクション)は、ΔTの終わりに(図12のRDR)中継のためにスケジューリングされることが可能である。到着時間ミキシング・サブシステムは、中継をRDRが過ぎるまで遅らせる。一部の実装において、データ・パケットの中継は、複数のqΔT、例えば、RDR、RDRi+1、RDRi+2などによって遅延させられてもよい。従って、到着時間発見的方法に従って、ノードによって受信された(又は生成された)データ・パケットを中継することは、受信したデータ・パケットを隣接ノードに中継するための次のスケジューリングされた時間を決定すること、及び中継のための次のスケジューリングされた時間の後、所定の長さの時間に、データ・パケットを中継することを含む。ΔTの中で収集された全てのトランザクションは、ΔT+qΔTで中継されてもよいし、あるいはΔTの中で収集された各々のトランザクションjは所与のΔT+qΔTで送信されてもよい。
ランダム変数qは、一部の例では、負の指数確率密度関数を有する:
Figure 0007295872000007
ここで、c及びgはそれぞれ乗算定数及び加算定数である。
送信元制御
悪意のピアは、同じデータ・パケット(又はデータ・パケットのグループ)を所与のノードiに複数回プッシュして、iのローカルな中継方策のパターンを発見しようとする可能性がある。例えば、悪意のピア・ノードは、ノードiに対する2つのコネクションを作成し、iに対して出入りするトラフィックがどのように相関しているかを監視する可能性がある。送信元制御サブシステムは、各ピアから受信できるデータ・パケットの数について特定の閾値を設定することによって、実現される。ピアが所与のデータ・パケットの閾値を超える場合、そのコネクションは永久的又は一時的にクローズされる。ブロックチェーン・トランザクションなど、ノードが所与のデータ・パケットを受信する際のインスタンスの数は、RDRテーブルに格納されてもよい。
負荷バランス
負荷バランスは、他のサブシステムによってピアに中継するために既に割り当てられているデータ・パケットのシャッフルを定期的に実行するために使用されてもよい。負荷バランス・モジュールの目的は、ピア間の中継分布を平均化し、一部のピア・コネクションにおけるトラフィック・オーバーロード、又は単一障害点を回避することである。負荷バランスに対する2つの異なるアプローチが実装されてもよい:
・各々のデータ・パケットjは各自のサイズ(即ち、入力の数、出力の数、アンロッキング・スクリプト・サイズ、及びロッキング・スクリプト・サイズ)によらず同じウェイトwを有する。
・各々のデータ・パケットjは、そのバイト・サイズに比例する自身のウェイトwを有する。
例えば、方法800では、隣接ノードの固定セットに対する第2データ・パケットの第2割り当てが決定されてもよく、第2割り当ては、ノードの出力インターフェースにおけるトラフィックのバランスを考慮した第1割り当ての再配置である。累積値cは、中継するようにスケジューリングされるデータ・パケットの数nにわたって、各ピアiに対して計算されることが可能である。:
Figure 0007295872000008
続いて、中継するデータ・パケットをシャッフルし、各ピアの平均c値を得るために、反復法が実行される:
Figure 0007295872000009
データ・パケットのこのシャッフルに対処する様々な異なる発見的方法が利用可能である可能性がある。例えば、データ・パケットのサブセットの中継を予期したり、出て行くトラフィックの負荷バランスを保つことを強化したりするために、異なる優先度が異なるサブシステムに割り当てられてもよい。更に、異なるサブシステムの実行は、データ・パケットの重複又は矛盾した割り当てを招く可能性があり、これは中継の起動前に解決されることを要する。
図13を次に参照すると、これは参加ノード1000の簡略化された例をブロック図形式で示している。ノード1000は、1つ以上のマイクロプロセッサ、特定用途向け集積チップ(ASIC)、マイクロコントローラ、又は類似のコンピュータ処理デバイスを含む可能性があるプロセッサ1002を含む。ノード1000は更に、値、変数、及び場合によってはプロセッサ実行可能なプログラム命令を格納するための永続的及び非永続的なメモリを含む可能性があるメモリ1004と、有線又は無線ネットワークでネットワーク接続性を提供するためのネットワーク・インターフェース1006とを含む。
ノード1000は、プロセッサ実行可能命令を含むプロセッサ実行可能ブロックチェーン・アプリケーション1008を含み、その命令は、実行されると、本願で説明される1つ以上の機能又は動作をプロセッサ1002に実行させる。
本願で述べられるデバイス及びプロセス、並びにブロックチェーン・ノードを構成するために説明された方法/プロセスを実装する任意のモジュール、ルーチン、プロセス、スレッド、アプリケーション、又はその他のソフトウェア・コンポーネントは、標準的なコンピュータ・プログラミング技術及び言語を用いて実現されてもよいことが理解されるであろう。本願は、特定のプロセッサ、コンピュータ言語、コンピュータ・プログラミング慣習、データ構造、又はその他のそのような実装の詳細に限定されない。
上述の実施形態は、本発明を限定するものではなく、本発明を例示するものであること、及び当業者は、添付の特許請求の範囲によって規定される本発明の範囲から逸脱することなく、多くの代替的な実施形態を設計することが可能であろうということに留意すべきである。特許請求の範囲において、括弧内に記載された如何なる符号も、特許請求の範囲を限定するように解釈されないものとする。「含んでいる」及び「含む」等の言葉は、何れかの請求項において又は明細書全体として列挙されたもの以外の要素又はステップの存在を除外していない。本明細書において、「含む」は「含む又はから構成される」を意味し、「含んでいる」は「含んでいる又はから構成されている」を意味する。要素の単独の参照は、そのような要素の複数の参照を除外するものではなく、その逆もまた同様である。本発明は、幾つかの別個の要素を含むハードウェアによって、及び適切にプログラムされたコンピュータによって実現されることが可能である。幾つかの手段を列挙する装置の請求項において、これらの手段のうちの幾つかは、ハードウェアの1つの同じアイテムによって具体化されてもよい。所定の複数の事項が相互に異なる従属請求項で述べられているという単なるその事実は、これらの事項の組み合わせが有利に利用できないことを示すものではない。

Claims (15)

  1. ノードのネットワークでデータ・パケットを伝搬させる、コンピュータが実行する方法であって、前記ネットワーク内の各ノードは他ノードに対する1つ以上のコネクションを有し、前記方法は:
    少なくとも1つの第1タイプのデータ・パケットを生成するステップ;
    第1期間の間に前記第1タイプのデータ・パケットのセットを収集するステップであって、前記セットは、少なくとも1つの生成したデータ・パケットと、前記ネットワーク内の1つ以上の第1ノードから受信した少なくとも1つの第1タイプのデータ・パケットとを含む、ステップ;及び
    前記セットのうちのデータ・パケットとノードに接続される複数の隣接ノードとのマッピングを決定するステップであって、前記マッピングは、前記セットのうちの各データ・パケットの隣接ノードに対する中継予想時間を指定し、前記マッピングを決定するステップは:
    中継に同じ送信元を含む任意の2つのデータ・パケットを、前記隣接ノードの異なるサブセットに割り当てる第1サブ・マッピング;及び
    同じ時間インターバル内に前記1つ以上の第1ノードから前記ノードにより受信した又は前記ノードで生成した任意の2つのデータ・パケットに、異なる中継予想時間を指定する第2サブ・マッピング;
    のうちの少なくとも1つを決定するステップを含む、ステップ;及び
    決定されたマッピングに従って、前記セットのうちのデータ・パケットを前記複数の隣接ノードに送信するステップ;
    を含む方法。
  2. 前記第1サブ・マッピングを決定するステップは、少なくとも1つの生成したデータ・パケットの各々について:
    前記ノードにより以前に生成した所定数の第1タイプの第1データ・パケットを識別するステップ;
    前記第1データ・パケットに関連する中継ノード・セットのリストを取得するステップであって、前記中継ノード・セットは、前記第1データ・パケットがそれぞれ中継される先の隣接ノードを含む、ステップ;及び
    取得した前記リストにおける中継ノード・セットとは異なる隣接ノードのセットを識別することに基づいて、中継ノードの第1セットを選択するステップ;
    を含む、請求項1に記載の方法。
  3. 前記中継ノードの第1セットを選択するステップは、取得した前記リストに含まれていない2つ以上の隣接ノードのセットを任意に選択するステップを含む、請求項2に記載の方法。
  4. 選択された前記第1セットは、少なくとも2つのノードにより取得された前記リストにおける中継ノード・セットとは異なる、請求項2又は3に記載の方法。
  5. 前記第1セットに含まれるように選択される隣接ノードの数は任意に決定される、請求項2~4のうちの何れか1項に記載の方法。
  6. 前記第1セットに含まれるように選択される隣接ノードの数は、前記ノードの帯域幅条件に従って制限される、請求項2~5のうちの何れか1項に記載の方法。
  7. 前記第1サブ・マッピングを決定するステップは、1つ以上の第1ノードの各々について:
    前記第1ノードから最近受信した第1タイプの所定数の第2データ・パケットを識別するステップ;及び
    前記第2データ・パケットの、隣接ノードの固定セットに対する第1割り当てを決定するステップであって、前記第1割り当ては、前記第2データ・パケットの、所定の条件を充足する隣接ノードに対する1つ以上の割り当てから選択される、ステップ;
    を含む、請求項1~6のうちの何れか1項に記載の方法。
  8. 第2データ・パケットの、隣接ノードの固定セットに対する割り当ては、前記第2データ・パケットのうちの任意の2つについて、前記第2データ・パケットの双方が割り当てられる隣接ノードの数が所定の閾値以下である場合に、前記所定の条件を充足する、請求項7に記載の方法。
  9. 前記第1ノードのうちの任意の2つについて、前記2つの第1ノードから受信した全ての第2データ・パケットのセットは、前記第1割り当てにおいて、少なくとも2つの異なる隣接ノードに割り当てられる、請求項7又は8に記載の方法。
  10. 前記第2データ・パケットの、隣接ノードの固定セットに対する第2割り当てを決定するステップであって、前記第2割り当ては、前記ノードの出力インターフェースにおけるトラフィックのバランスをとるための前記第1割り当ての再設定である、ステップを更に含む請求項7~9のうちの何れか1項に記載の方法。
  11. 前記第2サブ・マッピングを決定するステップは、前記セットの1つ以上のデータ・パケットの各々について:
    前記データ・パケットの隣接ノードに対する次の中継予定時間を決定するステップ;
    前記次の中継予定時間の後、所定の長さの時間に、前記データ・パケットを中継するステップ;
    を含む、請求項1~10のうちの何れか1項に記載の方法。
  12. 前記所定の長さの時間は第1期間の倍数である、請求項11に記載の方法。
  13. 前記1つ以上の第1ノードの各々から受信することが可能なデータ・パケットの最大数を設定するステップを更に含む請求項1~12のうちの何れか1項に記載の方法。
  14. エンティティのためのコンテンツをブロックチェーンに送信するプロセスに参加するコンピューティング・デバイスであって、請求項1~13のうちの何れか1項に記載の方法を実行するように構成されたプロセッサを備えるコンピューティング・デバイス。
  15. ノードのネットワークでデータ・パケットを伝搬させるプロセスに参加するためのプロセッサ実行可能命令を記憶する非一時的なプロセッサ読み取り可能な媒体であって、前記プロセッサ実行可能命令は、参加ノードのうちの1つにおけるプロセッサにより実行されると、請求項1~13のうちの何れか1項に記載の方法を前記プロセッサに実行させる、記憶媒体。
JP2020542414A 2018-02-13 2019-02-08 ネットワークでデータを伝搬させるブロックチェーン・ベースのシステム及び方法 Active JP7295872B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023095302A JP2023113898A (ja) 2018-02-13 2023-06-09 データ・パケット送信方法、演算デバイス及び記憶媒体

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1802347.3 2018-02-13
GBGB1802347.3A GB201802347D0 (en) 2018-02-13 2018-02-13 Computer-implemented system and method
PCT/IB2019/051019 WO2019159045A1 (en) 2018-02-13 2019-02-08 Blockchain-based methods and device for propagating data in a network

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023095302A Division JP2023113898A (ja) 2018-02-13 2023-06-09 データ・パケット送信方法、演算デバイス及び記憶媒体

Publications (2)

Publication Number Publication Date
JP2021513265A JP2021513265A (ja) 2021-05-20
JP7295872B2 true JP7295872B2 (ja) 2023-06-21

Family

ID=61731395

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020542414A Active JP7295872B2 (ja) 2018-02-13 2019-02-08 ネットワークでデータを伝搬させるブロックチェーン・ベースのシステム及び方法
JP2023095302A Pending JP2023113898A (ja) 2018-02-13 2023-06-09 データ・パケット送信方法、演算デバイス及び記憶媒体

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023095302A Pending JP2023113898A (ja) 2018-02-13 2023-06-09 データ・パケット送信方法、演算デバイス及び記憶媒体

Country Status (6)

Country Link
US (3) US11489751B2 (ja)
EP (2) EP4054154A1 (ja)
JP (2) JP7295872B2 (ja)
CN (2) CN111801925B (ja)
GB (1) GB201802347D0 (ja)
WO (1) WO2019159045A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201719654D0 (en) * 2017-11-27 2018-01-10 Nchain Holdings Ltd Computer-implemented system and method
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
US11961142B2 (en) * 2019-08-26 2024-04-16 Compound Labs, Inc. Systems and methods for pooling and transferring digital assets
US11838400B2 (en) * 2019-11-19 2023-12-05 International Business Machines Corporation Image encoding for blockchain
CN112968969B (zh) * 2020-09-25 2023-05-12 支付宝(杭州)信息技术有限公司 区块链系统、消息传输方法及装置
CN111934999B (zh) * 2020-09-25 2021-01-22 支付宝(杭州)信息技术有限公司 消息传输方法及装置
GB2601540A (en) * 2020-12-04 2022-06-08 Nchain Holdings Ltd Methods and systems for synchronizing a streamed template to a solved block
CN115396918A (zh) * 2022-08-09 2022-11-25 中国联合网络通信集团有限公司 区块链数据传输方法、装置及存储介质
CN116155958A (zh) * 2023-04-19 2023-05-23 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 一种车联网分布式信息收集方法、系统及储存介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011147195A (ja) 2004-04-06 2011-07-28 Nortel Networks Ltd アドレス型キャリアネットワークにおける区別転送
JP2015164295A (ja) 2014-01-31 2015-09-10 国立大学法人 東京大学 情報伝送システム、情報通信装置、情報伝送装置、及びプログラム
JP2021504783A (ja) 2017-11-27 2021-02-15 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーンネットワークなどのネットワーク内でのデータの伝搬及び通信のための、コンピュータにより実施されるシステム及び方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549522B1 (en) 1997-12-17 2003-04-15 British Telecommunications Public Limited Company Mobile data rate enhancement via foreign agent load balancing
EP1733528A1 (en) * 2004-04-05 2006-12-20 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Method, communication device and system for address resolution mapping in a wireless multihop ad hoc network.
JP2006295401A (ja) * 2005-04-07 2006-10-26 Ttt Kk 中継装置
US7496667B2 (en) 2006-01-31 2009-02-24 International Business Machines Corporation Decentralized application placement for web application middleware
US8427944B2 (en) 2008-05-19 2013-04-23 Entropic Communications, Inc. Bitloading applied to network multicast messages
US9699043B2 (en) 2012-05-31 2017-07-04 Netsweeper (Barbados) Inc. Policy service logging using graph structures
US20150043554A1 (en) 2013-08-07 2015-02-12 Qualcomm Incorporated Management of interfaces for wireless communications
NO2776466T3 (ja) 2014-02-13 2018-01-20
CN104168265B (zh) * 2014-07-16 2018-01-05 南京邮电大学 一种基于分布式哈希表网络的匿名通信方法
US9923874B2 (en) * 2015-02-27 2018-03-20 Huawei Technologies Co., Ltd. Packet obfuscation and packet forwarding
KR20160109126A (ko) * 2015-03-10 2016-09-21 한국전자통신연구원 다중 전송경로 환경에서 네트워크 코딩을 이용한 데이터 송수신 장치
US10438207B2 (en) * 2015-04-13 2019-10-08 Ciena Corporation Systems and methods for tracking, predicting, and mitigating advanced persistent threats in networks
US10362106B2 (en) 2015-07-21 2019-07-23 Cisco Technology, Inc. Adaptive gossip protocol
US20170070912A1 (en) 2015-09-08 2017-03-09 Argela-USA, Inc. Method and apparatus for programmable spectrum switching licensed and unlicensed spectrum
CN105141641B (zh) * 2015-10-14 2018-05-11 武汉大学 一种基于SDN的Chaos移动目标防御方法及系统
CN105979508B (zh) * 2016-07-27 2019-05-03 河海大学常州校区 无线传感器网络中基于定向随机路由的节点隐私保护方法
CN106302450B (zh) * 2016-08-15 2019-08-30 广州华多网络科技有限公司 一种基于ddos攻击中恶意地址的检测方法及装置
CN107276978B (zh) * 2017-04-25 2019-12-03 中国科学院信息工程研究所 一种基于主机指纹的匿名网络隐藏服务溯源方法
US10929823B2 (en) * 2017-09-12 2021-02-23 Northwestern University Peer auditing in a blockchain distribution network
US10477543B2 (en) * 2017-09-27 2019-11-12 Trellisware Technologies, Inc. Methods and systems for improved communication in multi-hop networks
GB201802347D0 (en) 2018-02-13 2018-03-28 Nchain Holdings Ltd Computer-implemented system and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011147195A (ja) 2004-04-06 2011-07-28 Nortel Networks Ltd アドレス型キャリアネットワークにおける区別転送
JP2015164295A (ja) 2014-01-31 2015-09-10 国立大学法人 東京大学 情報伝送システム、情報通信装置、情報伝送装置、及びプログラム
JP2021504783A (ja) 2017-11-27 2021-02-15 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーンネットワークなどのネットワーク内でのデータの伝搬及び通信のための、コンピュータにより実施されるシステム及び方法

Also Published As

Publication number Publication date
WO2019159045A1 (en) 2019-08-22
EP3753220B1 (en) 2022-05-18
EP3753220A1 (en) 2020-12-23
CN111801925B (zh) 2023-04-18
US20240171497A1 (en) 2024-05-23
GB201802347D0 (en) 2018-03-28
CN116722995A (zh) 2023-09-08
US11863422B2 (en) 2024-01-02
US11489751B2 (en) 2022-11-01
EP4054154A1 (en) 2022-09-07
US20200403899A1 (en) 2020-12-24
US20230124712A1 (en) 2023-04-20
JP2023113898A (ja) 2023-08-16
JP2021513265A (ja) 2021-05-20
CN111801925A (zh) 2020-10-20

Similar Documents

Publication Publication Date Title
JP7295872B2 (ja) ネットワークでデータを伝搬させるブロックチェーン・ベースのシステム及び方法
US11916955B2 (en) Systems and methods of propagating data packets in a network of nodes
US11743328B2 (en) Computer-implemented system and method for propagation and communication of data in a network such as a blockchain network
JP7339965B2 (ja) ノードのネットワークにおいてデータ・パケットを伝搬するためのシステム及び方法
JP2021517767A (ja) ランダム差動リレー及びネットワークコーディングのシステム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230421

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230609

R150 Certificate of patent or registration of utility model

Ref document number: 7295872

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150