JP2020522922A - ブロックチェーンネットワークにおいてトランザクションを伝播するためにネットワークコーディングを選択的に使用する方法及びシステム - Google Patents

ブロックチェーンネットワークにおいてトランザクションを伝播するためにネットワークコーディングを選択的に使用する方法及びシステム Download PDF

Info

Publication number
JP2020522922A
JP2020522922A JP2019565427A JP2019565427A JP2020522922A JP 2020522922 A JP2020522922 A JP 2020522922A JP 2019565427 A JP2019565427 A JP 2019565427A JP 2019565427 A JP2019565427 A JP 2019565427A JP 2020522922 A JP2020522922 A JP 2020522922A
Authority
JP
Japan
Prior art keywords
node
nodes
network
transaction
transactions
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.)
Granted
Application number
JP2019565427A
Other languages
English (en)
Other versions
JP7237016B2 (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 JP2020522922A publication Critical patent/JP2020522922A/ja
Priority to JP2023029326A priority Critical patent/JP2023065543A/ja
Application granted granted Critical
Publication of JP7237016B2 publication Critical patent/JP7237016B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/085Payment architectures involving remote charge determination or related payment systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • 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/38Flow control; Congestion control by adapting coding or compression rate
    • 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/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/14Relay systems
    • H04B7/15Active relay systems
    • H04B7/155Ground-based stations
    • H04B7/15521Ground-based stations combining by calculations packets received from different stations before transmitting the combined packets as part of network coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • 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/11Identifying congestion

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

ノードのネットワークにおいてトランザクションを伝播する方法及び装置であり、各ノードは他のノードに対する1つ以上の接続を有する。方法は、ノードのうちの1つがトランザクションの伝播に対するボトルネックであると決定するステップと、第1の期間にわたり、ノードのネットワーク内の1つ以上の第1のノードから複数の新しいトランザクションを受信するステップと、複数の新しいトランザクションをネットワークコーディング及びローカルエンコーディングベクトルを使用して結合してメッセージを生成するステップと、複数の新しいトランザクションをノードのネットワーク内の1つ以上の第2のノードに送信する代わりに、メッセージ及びグローバルエンコーディングベクトルを1つ以上の第2のノードに送信するステップと、を含む。ネットワークは、ブロックチェーンネットワークでもよい。

Description

本発明は、一般に、ネットワーク内でメッセージ及びデータを伝播することに関し、より詳細には、動作処理及び移転速度を改善するための方法及び装置に関する。
本文献では、用語「ブロックチェーン」を用いて、電子的なコンピュータベースの分散台帳の全ての形態を含める。これらには、合意に基づくブロックチェーン及びトランザクションチェーン技術、許可あり(permissioned)及び許可なし(un-permissioned)台帳、共有台帳、及びこれらの変形が含まれるが、これらに限定されない。ブロックチェーン技術の最も広く知られている適用はビットコイン(登録商標)台帳であるが、他のブロックチェーン実装が提案され、開発されている。本明細書では、簡便さ及び例示の目的でビットコインが参照されることがあるが、本発明はビットコインブロックチェーンでの使用に限定されず、代替的なブロックチェーンの実装及びプロトコルが本発明の範囲内に入ることに留意されたい。
ブロックチェーンは、合意に基づく電子台帳であり、これは、ブロックから構成されるコンピュータベースの非中央集権的な分散システムとして実現され、同様に、ブロックはトランザクションから構成される。各トランザクション(Tx)は、ブロックチェーンシステム内の参加者間のデジタルアセットの制御の移転をエンコードするデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、それにより、ブロックが一緒にチェーン化されて、ブロックチェーンの開始以降にそれに書き込まれた全てのトランザクションの永続的で改変不可能なレコードを作成する。トランザクションは、そのインプット及びアウトプットに埋め込まれたスクリプトとして知られる小さいプログラムを含み、これは、トランザクションのアウトプットに如何にして及び誰がアクセスできるかを指定する。ビットコインプラットフォームでは、これらのスクリプトはスタックベースのスクリプト言語を使用して書かれる。
新しいトランザクションを受信したネットワークノードは、すぐにそのトランザクションをネットワーク内の他のノードへプッシュするよう試みる。新しいトランザクションを他のノードに伝送する前に、それは「検証され」、このことは、それが基準のセットに対してチェックされて、トランザクションが適用可能なブロックチェーンプロトコルに従って適切なトランザクションの基本要件を満たすことを保証することを意味する。
トランザクションがブロックチェーンに書き込まれるために、それは、トランザクションを収集してこれらをブロックにするように設計されたノード(「マイナー」又は「マイニングノード」)によりブロックに組み込まれる。次いで、マイナーは、ノードに関する「プルーフオブワーク(proof of work)」を完成させるよう試みる。ブロックチェーンネットワーク全体にわたるマイナーが、トランザクションのブロックを組み立て、そのブロックに関連するプルーフオブワークを完成させるのが最初であるよう競争する。成功したマイナーは、その確認されたブロックをブロックチェーンに追加し、該ブロックは、ネットワークを通じて伝播され、それにより、ブロックチェーンのコピーを維持する他のノードは、そのレコードを更新することができる。ブロックを受信したノードもまた、そのブロック及びその中の全てのトランザクションを「検証し」、それがプロトコルの形式要件に準拠することを保証する。
ビットコインのようなブロックチェーンベースのネットワークを使用して、広範な暗号的に保護された交換の使用を可能にし、あるいは容易にすることは、有利である。このような交換は、例えば、クレジットカードトランザクションなどの支払い処理に関連し得る。しかしながら、約毎秒3件のトランザクションスループットは、現在約毎秒50,000件のトランザクション量で動作しているこのような電子支払いを処理するには不十分である。ブロックチェーンネットワークの速度に関連するボトルネックの1つは、トランザクションの伝播である。トランザクションを受信した各ノードは、トランザクションを検証し、次いでそれをピアノードに送信する。実際、ビットコインプロトコルでは、ノードは、トランザクションのリストを含むINVメッセージをピアノードに送信し、INVメッセージで広告されたトランザクションの何らかのサブセットを選択するGETDATA応答メッセージを受信する。次いで、ノードは、要求されたトランザクションをピアノードに送信する。この処理は、ノードが接続されている各ピアノードに関して実行される。
したがって、トランザクション伝播の速度を改善することにより、大量トランザクションを処理するブロックチェーンの能力を現在制限している速度及びスケーラビリティの制約に対して解決策を見出すことが望ましい。ブロックチェーン又は他のアプリケーションに関連するかどうかにかかわらず、ノードのネットワークにおけるトランザクションの伝播により一般的に適用可能な解決策を見出すことが望ましい。
このような解決法が次に考案されている。
ゆえに、本発明によれば、別記の特許請求の範囲に定義される方法及び装置が提供される。
本出願は、トランザクション(TX)の高速な伝播を可能にする方法及び装置を記載し、開示する。いくつかの例において、ノードは、ネットワークコーディング(network coding)の使用を選択的に可能にして、トランザクションをピアノードに送信するために単一のメッセージへ結合する。ネットワークコーディングの選択的な使用は、ノードが潜在的なボトルネックであるとの決定に基づいてもよい。この解決策は、いくつかの実装においてブロックチェーンネットワークの文脈で適用され得る。新しいトランザクションのセットを伝播する際に、それがボトルネックであると決定したノードは、新しいトランザクションをネットワークコーディング及びローカルエンコーディングベクトル(local encoding vector)を使用して結合して、メッセージを生成することができる。次いで、メッセージは、グローバルエンコーディングベクトル(global encoding vector)と共に別のノードに送信される。
一態様において、本出願は、ブロックチェーンネットワーク条件が変化したときネットワークコーディングの選択的な使用を提供して、ノードがボトルネックであるかどうかと、結果としてネットワークコーディングが使用されるべきかどうかとを動的に決定する。ブロックチェーンネットワークの性質、及びネットワーク内の全てのノードへのトランザクションの迅速な伝播の重要性は、普遍的なネットワークコーディングを不要にし、計算的に高コストにする可能性があるが、一方、その時点においてボトルネックであると決定されたノードに対するネットワークコーディングの選択使用は、全てのノード通信に対するネットワークコーディングの全面的な使用に関連づけられた不要な複雑さ及びコストなく速度の利点を提供する可能性がある。本出願は、ブロックチェーンネットワークの文脈においてノードがボトルネックであるかどうかを動的に決定するための効率的かつ効果的なメカニズムを提供する。
さらなる又は代替的な態様において、本出願は、ノードのネットワークにおいてトランザクションを伝播するためのコンピュータにより実現される方法を記載し、各ノードは、他のノードへの1つ以上の接続を有する。本方法は、ノードのうちの1つで実現され、ノードのうちの1つがトランザクションの伝播に対するボトルネックであると決定するステップと、第1の期間(time period)にわたり、ノードのネットワーク内の1つ以上の第1のノードから複数の新しいトランザクションを受信するステップと、複数の新しいトランザクションをネットワークコーディング及びローカルエンコーディングベクトルを使用して結合してメッセージを生成するステップと、複数の新しいトランザクションをノードのネットワーク内の1つ以上の第2のノードに送信する代わりに、メッセージ及びグローバルエンコーディングベクトルを1つ以上の第2のノードに送信するステップとを含む。
さらなる又は代替的な態様において、本出願は、プロセッサと、メモリと、ネットワークインターフェースと、命令を含むアプリケーションとを含むノードを記載し、該命令は、プロセッサにより実行されたときに、本明細書に記載される方法のうち1つ以上を実行する。
いくつかの実装において、方法又はノードは、ノードへのインリンクの数及びノードからのアウトリンクの数を評価することと、インリンクの数がアウトリンクの数を超えているときノードがボトルネックであると決定することとにより、ノードがボトルネックであると決定する。評価は、複数の新しいトランザクションのうち最初のトランザクション(first transaction)の受信のときに生じてもよい。別の実装において、評価は、ある時間にわたりインリンクのカウント及びアウトリンクのカウントを追跡することを通して生じてもよく、インリンクの数は平均であり、アウトリンクの数は平均である。いくつかの例示的な実装において、ノードは、複数の新しいトランザクションのうち最初のトランザクションの受信に応答して、それがボトルネックであるとの決定を開始する。
いくつかの実装において、結合及び送信は、停止条件が満たされたとの決定に応答して実行される。停止条件は、一例において、複数の新しいトランザクションのうち最初のもの(first)の受信か又はノードのうちの上記1つがボトルネックであるとの決定かのいずれかからの継続時間(time duration)の満了である。別の例において、停止条件は、複数の新しいトランザクションが新しいトランザクションの最大数に達したことである。
いくつかの実装において、メッセージは、複数の新しいトランザクションの中の最長トランザクションより長くない(no longer than)長さを有する。
さらなる又は代替的な態様において、本出願は、ノードのネットワーク内でトランザクションを伝播するためのプロセッサ実行可能命令を記憶した非一時的プロセッサ読取可能媒体を記載し、プロセッサ実行可能命令は、ノードのうちの1つにおけるプロセッサにより実行されたときにプロセッサに、本明細書に記載される方法のうち1つ以上を実行させる。
本明細書に記載される例示的な実装の多くで、ブロックチェーントランザクションを具体的に参照する。しかしながら、本明細書に記載される方法及び装置は、非ブロックチェーントランザクション伝播に関連して実現及び適用されてもよいことが理解されるであろう。
本発明のこれら及び他の態様は、本明細書に記載した実施形態から明らかであり、それを参照して解明されるであろう。次に、本発明の一実施形態が、単に例示として、添付の図面を参照して説明される。
ブロックチェーンに関連づけられた一例示的なネットワークを示す。 インプットバッファ及びアウトプットバッファを有する一例示的なブロックチェーンノードを図式的に示す。 ブロックチェーンネットワーク内のノードの簡略化された例示的なネットワークを示す。 別の時間における図3のブロックチェーンネットワークを示す。 一例示的なブロックチェーンネットワークの一部を図式的に示す。 複数のインリンク及び1つのアウトリンクを有するノードを示す。 ブロックチェーンネットワークにおいてトランザクションを伝播するための一例示的な処理をフローチャート形式で示す。 ブロックチェーンネットワークにおいてトランザクションを伝播するための別の例示的な処理をフローチャート形式で示す。 一例示的なブロックチェーンノードをブロック図形式で示す。
本出願において、用語「及び/又は」は、列挙された要素のうち任意の1つ単独、任意の副組み合わせ、又は要素の全てを含み、必ずしもさらなる要素を排除することなく、列挙された要素の全ての可能な組み合わせ及び副組み合わせを、カバーすることが意図される。
本出願において、フレーズ「・・・又は・・・のうち少なくとも1つ」は、列挙された要素のうち任意の1つ単独、任意の副組み合わせ、又は要素の全てを含み、必ずしも任意のさらなる要素を排除することなく、必ずしも要素の全てを要することなく、列挙された要素のうち任意の1つ以上をカバーすることが意図される。
最初に、図1を参照する。図1は、ブロックチェーンに関連づけられた一例示的なネットワークをブロック図形式で示し、これは、本明細書においてブロックチェーンネットワーク100と呼ばれ得る。ブロックチェーンネットワーク100は、ピアツーピアのオープンメンバーシップネットワークであり、これは、招待なく、又は他のメンバーからの同意なく、誰でも参加できる。ブロックチェーンネットワーク100が動作するブロックチェーンプロトコルのインスタンスを実行する分散電子装置は、ブロックチェーンネットワーク100に参加することができる。このような分散電子装置は、ノード102と呼ばれ得る。ブロックチェーンプロトコルは、例えば、ビットコイン(Bitcoin)プロトコル、又は他の暗号通貨であってもよい。
ブロックチェーンプロトコルを実行し、ブロックチェーンネットワーク100のノード102を形成する電子装置は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、スマートフォンなどのモバイルデバイス、スマートウォッチなどのウェアラブルコンピュータ、又は他の電子装置などのコンピュータを含む様々なタイプのものであってもよい。
ブロックチェーンネットワーク100のノード102は、有線及び無線通信技術を含み得る適切な通信技術を使用して互いに結合される。多くの場合、ブロックチェーンネットワーク100は、少なくとも部分的にインターネットを通じて実現され、ノード102のいくつかは、地理的に分散された場所に位置してもよい。
ノード102は、ブロックにグループ化された、ブロックチェーン上の全てのトランザクションのグローバル台帳を維持し、該ブロックの各々は、チェーン内の前のブロックのハッシュを含む。グローバル台帳は、分散された台帳であり、各ノード102は、グローバル台帳の完全なコピー又は部分的なコピーを記憶することができる。グローバル台帳に影響するノード102によるトランザクションは、他のノード102により立証され、それにより、グローバル台帳の正当性が維持される。ビットコインプロトコルを使用するものなどのブロックチェーンネットワークの実現及び動作の詳細は、当業者に十分理解されるであろう。
各トランザクションは、1つ以上のインプット及び1つ以上のアウトプットを典型的に有する。インプット及びアウトプットに埋め込まれたスクリプトは、トランザクションのアウトプットに如何にして及び誰がアクセスできるかを指定する。トランザクションのアウトプットは、トランザクションの結果として価値が移転される先のアドレスであってもよい。この価値は、未使用トランザクションアウトプット(unspent transaction output、UTXO)として、そのアウトプットアドレスに関連づけられる。次いで、後続のトランザクションが、インプットとしてそのアドレスを参照して、その価値を消費し、あるいは分散させることができる。
ノード102は、その機能性に依存して、異なるタイプ又はカテゴリのものであってもよい。ノード102に関連づけられた4つの基本機能、すなわち、ウォレット、マイニング、フルブロックチェーンメンテナンス、及びネットワークルーティングがあることが示唆されている。これらの機能にはバリエーションがあり得る。ノード102は、機能のうち2つ以上を有してもよい。例えば、「フルノード」は、4つの機能全てを提供する。例えば、デジタルウォレットで実現され得るような軽量ノードは、ウォレット及びネットワークルーティング機能のみを特徴とする。デジタルウォレットは、フルのブロックチェーンを記憶するのでなく、ブロックヘッダの経過を追うことができる。ブロックヘッダは、ブロックをクエリするときインデックスとして機能する。ノード102は、TCP/IP(トランスミッションコントロールプロトコル)などのコネクション指向プロトコルを使用して互いに通信する。
大抵のブロックチェーンネットワークでは、管理プロトコルにかかわらず、新しいトランザクションがネットワークを通して迅速に伝播され、それにより、未確認トランザクションのプール(典型的には「メムプール(mempool)」と呼ばれる)を維持する全てのノードが、新しいブロックに含まれることを待っているトランザクションの最新かつ正確なデータベースを有することを保証することが有利である。マイニングノードは、この未確認トランザクションのプールを利用して、潜在的な新しいブロックを構築する。場合により、マイニングノードは、フルのメムプールをローカルに維持し、それにより、これらは、未確認トランザクションをマイニングのための新しいブロックへ組み立てることができる。いくつかの実施形態において、メムプールは、(バリデータ(validator)ノードと呼ばれ得る)ノードの別個のネットワークにより管理され、維持されてもよく、これらのノードは、未確認トランザクションのセットをメムプールからマイニングノードに送信して、マイニングノードがブロックをマイニングするよう試みることを可能にできる。いくつかの実装において、メムプールは、複数のノード間で分散ハッシュテーブルに記憶されてもよい。構造にかかわらず、任意の新しいトランザクションが、ネットワークを通して伝播されて可能な限りすぐに必要なノードに到達することが望ましい。さらに、任意の新しい成功裏にマイニングされたブロックが、可能な限り速く伝播されてオーファンブロックの発生を削減することが望ましい。
ビットコインネットワークの現在の実装では、一例として、新しいトランザクションを受信した各ノードは、トランザクションを検証し、次いで、該ノードが接続されているノードがこの新しいトランザクションをまだ受信していない場合、これらのノードの全てに該トランザクション送信する。ビットコインの場合、ノードは、TCP/IP(トランスミッションコントロールプロトコル)を使用する。新しいトランザクションを受信したノードは、利用可能な新しいトランザクションに関するデータを有するINVメッセージを各ピアノードに送信し、新しいトランザクションの受信に関心のある各ノードからGETDATAメッセージを戻りで受信する。次いで、ノードは、それを要求したノードの各々に、(別個の)TCPメッセージでトランザクションを送信する。
次に、図2を参照する。図2は、インプットバッファ202及びアウトプットバッファ204を有する一例示的なノード200を図式的に示す。例示的なノード200は、intA、intB、intC、intD等として参照される複数のピアノードとのネットワークインターフェースを有する。インプットバッファ202は、様々なピアノードからの入ってくるトランザクションを示し、アウトプットバッファ204は、それぞれのインターフェースを通じてのピアノードへの特定の受信トランザクションの伝送を示す。ネットワークパケットは、ノード202のオペレーティングシステムにより提供されるプリミティブに従って、アプリケーションレベルでシリアルに送受信される。トランザクションxが単一のイーサネット(登録商標)/IPパケットに適合すると仮定すると、m個のピアへのその伝送は、m個の異なるアウトプットパケットのバッファリングを必要とする。インプット及びアウトプット双方のネットワークパケットが、他の情報と共に、シリアライズされたトランザクションと、送信/受信ピアへのTCP/IP接続を表す論理インターフェースIDとを含む。
入ってくるトランザクションが処理されるための期待時間は、インプットキューの(パケット単位の)平均長Liに依存し、一方、処理されたトランザクションが正しく伝送されるための期待時間は、アウトプットキューの平均長Loに依存する。したがって、トランザクションの効率的な中継は、Li及びLo双方の値の削減に依存する。しかしながら、ピアへのトランザクションの選択的中継の確率モデルは、Loに、及び帰納(induction)によりLiにも直接影響する。
現在のビットコイン実装において、INV及びGETDATAメッセージパケットは、トランザクションと同じ方法でI/Oバッファにキューイングされ、伝送及び受信の遅延に深刻な影響を与える。
より大量の高速トランザクションにブロックチェーンを使用する提案がある。例えば、支払いを処理するためにブロックチェーンを使用することが検討されている。支払い処理は、例えば、クレジットカードトランザクションを含んでもよい。このようなトランザクションの量は、ブロックチェーンネットワークの現在の実装に対して圧倒的である。ゆえに、ノード間のトランザクションの送信などの通信を処理するためのブロックチェーンネットワークのキャパシティを改善する方法及び装置を提供することは有利であろう。
本出願の一態様によれば、ブロックチェーンノードは、特定の期間にわたり新しいトランザクションをバッファリングし、次いで、ネットワークコーディングを使用してトランザクションを単一のメッセージに結合し、次いで、該単一のメッセージは、1つ以上の他のブロックチェーンノードに送信される。すなわち、ブロックチェーンノードは、新しいトランザクションをエンコードして、分解可能だが結合されたメッセージを生成する方法で新しいトランザクションを混合したメッセージを生成する。結合されたメッセージは、トランザクションのうち最大のものに小さいオーバーヘッドを加えたサイズを有する。
ブロックチェーンノードがネットワークコーディングを使用する場合、ノードは、TCP/IP INV及びGETDATAメッセージに依存することをやめてもよく、なぜならば、ノードは、新しいトランザクションのどのサブセットをノードが受信したいかをノードに選別(pick-and-choose)させるのでなく、エンコードされたメッセージの形式で全ての新しいトランザクションを送信するからである。
次に、図3を参照する。図3は、ブロックチェーンネットワーク300内のノードの簡略化された例示的なネットワークを示す。各ノードはネットワーク端末(すなわちブロックチェーンノード)を表し、一方、エッジはノード間のリンクを表す。本例示を目的として、各リンクについて、一度に単一のビットを送信又は受信することが可能であると仮定される。
ノードのうち2つは、ソースS1及びS2としてラベル付けされ、これらは、2つの新しいトランザクションtx1及びtx2を受信する。この例示的なブロックチェーンネットワーク300において、各ノードは未確認トランザクションのメムプールを維持し、ゆえに、ノードが新しいトランザクションを受信したとき、それはネットワークを通して他の全てのノードに伝播される。各ノードは、新しいトランザクションを検証し、そのそれぞれのローカルメムプールに保存し、新しいトランザクションをまだ新しいトランザクションを有していないピアノードに転送する。ブロックチェーンネットワーク300のピアツーピアの性質に起因して、全てのノードが同時に新しいトランザクションを受信することはなく、このことは、新しいトランザクションがネットワーク300内の全てのノードに到達するためにいくらかの時間がかかることを意味する。例えば、ビットコインネットワークの現在の実装において、新しい有効なトランザクションは、ビットコインネットワークの90%のノードに到達するのに平均3.5秒かかる。理論的には、トランザクションの伝送が即時である、例えば、ネットワークの全てのノードに到達するのにt=0である場合、ネットワークは、二重消費(double spending)攻撃の可能性から保護される。ゆえに、ブロックチェーンネットワークのスループットを改善することは、システム全体のスケーラビリティ及び信頼性を可能にするための重要な要素である。
ブロックチェーンネットワーク300のノードのうち2つは、受信者R1及びR2としてラベル付けされる。ノードI1及びI2は中間ノードを表し、これらは、メムプールのコピーを記憶してもよく、あるいはそうでなくてもよいが、より有意には、時間Tにおけるネットワーク300のボトルネックを表す。ノードI1が、2つの新しいトランザクションTx1及びTx2をほぼ同時に受信したとき、ノードI1は、どのトランザクションを最初に送信するかを決定しなければならない。すなわち、I1からI2への出ていくエッジは、少なくとも時間Tにおいてボトルネックである。
ネットワークコーディングを使用し、ノードI1は、新しいトランザクションTx1及びTx2を、Tx1とTx2とのうちより大きいものと同じサイズである合成メッセージMへ結合することができる。ノードI1は、メッセージMをノードI2に送信し、ノードI2は、メッセージMを受信者R1及びR2に転送する。受信者R1及びR2は、個々のトランザクションTx1及びTx2を復元することができる。例えば、受信者R1は、Tx1及びMを受信する。Mは、Tx1及びTx2の結合に基づくため、R1は、Tx2を引き出すために式(Tx1,Tx1+Tx2)を解くだけでよい。反対に、R2はTx2を受信し、Tx1を引き出すために式(Tx2,Tx1+Tx2)を解く必要がある。
ボトルネックは、ネットワークの構成と、トランザクションが任意の所与の時間にどこに生成されるかとに依存して、ある時間にわたり現れ、あるいは消える可能性がある。ボトルネックは、ノード間のリンク(エッジ)であり、これは、ネットワークの性能を大きく制限し、具体的にブロックチェーンネットワークの場合、トランザクション(又はブロック)の伝送を遅くする。しかしながら、ボトルネック(ノード間のリンク)のソースはノードである。
次に、図4を参照する。図4は、時間T’における同じブロックチェーンネットワーク300を示す。この例では、トランザクションTx1がノードR1で受信され、トランザクションTx3がノードI2で受信される。この場合、ノードI1に再度ボトルネックがあるが、今回は、ノードI1とノードS1との間のリンクに関してであり、ノードI1におけるTx2及びTx3双方の同時の到着に起因する。ノードI1は、ネットワークコーディングを使用し、Tx2及びTx3をメッセージM’へ結合することができる。
1つの選択肢は、あらゆるノードに、全ての状況においてネットワークコーディングを適用させることである。しかしながら、その時間にそれが有利であると期待され得る特定のノードでネットワークコーディングを選択的に適用することにより、性能をさらに改善することが可能であり得る。一例として、ノードが、それが任意の所与の時点でボトルネックを表すかどうかを決定することができる場合、そのノードは、メッセージの伝送にネットワークコーディングを選択的又は適応的に適用してもよく、一方、それがボトルネックでない場合、それはトランザクションの通常の伝送を使用してもよい。
したがって、ノードは、それが所与の時点においてボトルネックの可能性があるかどうかを査定又は決定するように構成されてもよい。ある意味では、これは、インリンクとアウトリンクとの間のバランスに基づいて決定されてもよい。すなわち、所与の時点において、ノードは、1つ以上のリンク上でトランザクションを受信することがあり、これらのトランザクションを1つ以上のリンク上で外部へ送信することを意図し得る。ノード間の接続(すなわち、エッジ)は、ネットワーク内のトラフィックのフローに依存して、任意の所与の時点においてインリンク又はアウトリンクとして機能することができる。いくつかの場合、インリンクの数は「ファンイン(fan-in)」と呼ばれることがあり、アウトリンクの数は「ファンアウト(fan-out)」と呼ばれることがある。
一実装において、ブロックチェーンネットワーク内のノードの少なくともいくつかは、最初の近隣ノード(first-neighbour nodes)へのファンイン及びファンアウトリンクの相対数を追跡するテーブル又は他のデータ構造を維持する。図5は、一例示的なネットワークの一部を図式的に示しており、第1のノードI1及び第2のノードI2は各々、任意の所与の時間にそのノードのファンイン及びファンアウト数量を識別するテーブル又は他のデータ構造をローカルに記憶する。ノードは、相対的なファンイン及びファンアウトの数に基づいて、それがボトルネックの可能性があるか否かを決定することができる。一般に、決定は、インリンクの数(ファンイン)がアウトリンクの数(ファンアウト)を超えているかどうかに基づくことができ、その場合、ノードは、その時間にボトルネックであり得る。
一例示的な実装において、ノードがボトルネックであるかどうかの評価は、期間ΔTにわたる。テーブル中の数量は、期間ΔTにわたる平均のファンイン及びファンアウトであってもよい。
また、決定は、いくつかの実装において、ネットワークトポロジの認識に部分的に基づいてもよい。例えば、少なくともいくつかの場合に、末梢(peripheral)ノードであるノードはボトルネックである可能性は低く、一方、中間ノードであるノードはボトルネックである可能性がより高い。
さらに他の実装において、ノードがボトルネックであるかどうかの決定は、アウトプットキューのステータス、又はある時間にわたるアウトプットキュー内のバックログの評価に基づいてもよい。
ボトルネックの決定又は識別は、いくつかの実装において、上記要因の組み合わせ又は副組み合わせを含むことができる。
ネットワークコーディングは、当時の支配的なパケット交換ネットワークに対する一代替として、20年弱前に開発された。ネットワークコーディングは、ネットワークをリンクキャパシティを有する有向グラフ(N,L)としてモデル化し、ノードn∈Nがブロードキャストキャパシティhを達成するレートで受信者R⊆Nのセットに情報を通信できることを実証し、hは、ネットワークの内部ノードにおけるエンコーディングを条件として、sと任意のr∈Rとの間の最小カットの値である。
カットCは、グラフG=(V,E)の頂点Vの、2つの分離したサブセットS及びTへの分割として定義される。カットC=(S,T)のカットセットは、一方の端点をSに、及び他方の端点をTに有するエッジのセット{(u,v)∈E|u∈S,v∈T}である。
ネットワークコーディングのための一例示的な方法論が、P.A.Chou、Y.Wu、及びK.Jainの「Practical Network Coding」により、Proceedings of the annual Allerton conference on communication control and computing、v.41、pp.40-49、The University (2003)(以降「Chou」)に記載されており、これはここで参照により援用される。この方法論は、ネットワークトポロジ又はエンコーディング若しくはデコーディング機能のいかなる中央集権的な知識についてもその必要を取り除いた。Chouは、ネットワークNが、単位キャパシティエッジ(e)、送信者s∈V、及び特定数の受信者T⊆Eを有する非巡回グラフG=(V,E)として表現できると述べている。ノードの各エッジe∈Eのアウトプットv=in(e)は、シンボルy(e)を有し、シンボルy(e)は、vに入るエッジe’上のシンボルy(e’)の線形結合である。図6は、ノードv及びアウトプットy(e)を示す。詳細には、アウトプットは、
Figure 2020522922
により与えられる。ここで、y(e’)=x、i=1,...,hであり、ベクトルmは、エッジeについてのノードvにおけるエンコーディング機能を表すローカルエンコーディングベクトルであり、hは、ブロードキャストキャパシティを、送信者と受信者との間の任意のカットにおけるエッジの最小数として示す。
Chouは、任意のエッジe∈E上のアウトプットy(e)は、ソースシンボルの線形結合
Figure 2020522922
であり、係数のh次元ベクトルg(e)=[g(e),...,g(e)]は、
Figure 2020522922
により再帰的に取得できると述べており、ここで、エッジe’上のg(e’)は、i番目の単位ベクトルに対して開始される(initiated)。ベクトルg(e)は、eに沿ったグローバルエンコーディングベクトルと呼ばれてもよい。そのh個の入ってくるエッジに沿ってシンボル
Figure 2020522922
を受信する任意のノードtは、グローバルエンコーディングベクトルの行列Gがランクhを有する場合、ソースシンボルx,...,xを復元することができる。この上記例では、ブロックチェーントランザクションにネットワークコーディングを適用されたとき、トランザクションは、アレイ[x,...,x]に記憶される。Chouではさらなる詳細が見出されている。
出ていくエッジeのグローバルエンコーディングベクトルは、入ってくるエッジe’のグローバルエンコーディングベクトルのローカルエンコーディングに基づくものとして特徴付けられてもよい。
ネットワークコーディングは、ネットワークを通してトランザクションを伝播させるために使用され得ることが理解されるであろう。それはさらに、未確認トランザクションの分散ハッシュテーブルを実現するように設計されたオーバレイネットワーク内で使用されてもよく、これにおいて、各トランザクションは少なくとも2つのノードにより記憶されて、分散ハッシュテーブル内の冗長性を保証する。この場合、ネットワークコーディングは、トランザクションを記憶のために2つ以上のノードに送信する際に使用されてもよい。しかしながら、ネットワークコーディングの使用は、トランザクションを記憶する2つ以上のノードの損失から回復することができるというさらなる利点を提供し得る。中間ノードが、トランザクションに関する結合されたデータを含む1つ以上のメッセージを受信しているため、欠落したトランザクションは、ネットワークコーディングメッセージから復元され得る。
次に、図7を参照する。図7は、ブロックチェーンネットワークにおいてトランザクションを伝播するための一例示的な処理700をフローチャート形式で示す。処理700は、ブロックチェーンネットワークのノードにより実現される。この文脈において、ノードは、マイニングノード、フルノード、バリデータノード、又はブロックチェーンネットワーク内の他タイプの個別のブロックチェーンノードを参照するものと理解されてもよい。ノードは、ネットワーク接続と、コンピューティングリソースと、ブロックチェーンプロトコルを実現する実行ソフトウェアとを有するコンピューティング装置である。
動作702において、ノードは、それが時間Tにおいてネットワークにおける潜在的なボトルネックであると決定する。この決定は、上述したように、時間Tにおけるファンイン及びファンアウトの比較に基づいてもよい。例えば、ファンインが時間Tにおいてファンアウトを超えている場合、ノードはそれがボトルネックであると決定することができる。ノードがボトルネックであるかどうかを決定する際に、他の要因が代替的又は追加的に考慮されてもよい。例としては、ある期間にわたる平均のファンイン及びファンアウト、ネットワークトポロジ内のノード位置、ノードのアウトプットキューの現在若しくは過去のステータス、又は受信トランザクションを伝播するためのノードキャパシティに関する任意の他の要因が含まれる。
動作704において、ノードは、それがボトルネックであると決定すると、期間ΔTにわたりトランザクションを蓄積する。期間は、所定の時間長であってもよい。いくつかの例示的な実装において、期間は、ネットワークトラフィック測定、地理的情報、又は双方に基づいて変化してもよい。期間が固定された時間ではなく、むしろ、最小数のトランザクションが受信されるまでトランザクションの蓄積が発生してもよく、これは、蓄積されたトランザクションが過度に長く保持されないように最大時間をさらに課されてもよい。
動作706において、ノードが蓄積した複数のトランザクションは、ネットワークコーディングを使用して単一のメッセージに結合される。メッセージは、いくつか実装において、トランザクションのうち最長のものと同様に長い長さを有してもよい。メッセージは、いくつかの実装において、トランザクションのうち最長のものより長くない(ビット単位の)長さを有してもよい。メッセージは、ローカルエンコーディングベクトル及びネットワークコーディングアルゴリズムを使用して生成される。
動作708において、ノードは、次いで、メッセージ及びグローバルエンコーディングベクトルを1つ以上のノードに送信する。メッセージは、実際のトランザクションを送信する代わりに送信される。すなわち、ノードは、複数の蓄積されたトランザクションを送信せず、その代わりに、メッセージ及びグローバルエンコーディングベクトルを全てのそのアウトリンク上のピアノードに送信する。
次に、図8を参照する。図8は、ブロックチェーンネットワークにおいてトランザクションを伝播するための一例示的な方法800をフローチャート形式で示す。上述のように、方法800は、複数のインリンク及びアウトリンクを有するブロックチェーンノードで実現されてもよい。
動作802において、ブロックチェーンノードは、トランザクションを受信する。受信トランザクションは、インリンクを介して受信される。ブロックチェーンは、プロトコル要件に対してトランザクションを検証して、トランザクションが適法であることを保証することができる。動作804において、ノードは、それがトランザクションに関するボトルネックであるかどうかを決定することができる。決定は、その時間におけるインリンク(ファンイン)及びアウトリンク(ファンアウト)の間のバランスの評価に基づいてもよい。決定は、上述のように、他の要因に基づいてもよい。
ノードが、それがボトルネックでないと決定した場合、動作806において、それは、通常通り、そのアウトリンク上のブロックチェーンネットワーク内の1つ以上のピアノードにトランザクションを転送する。しかしながら、ノードが、それがボトルネックの可能性があると決定した場合、動作807において、ノードは、トランザクションをメモリに(例えば、バッファ又は他のメモリ要素に)記憶する。
次いで、ノードは、動作808により示されるように、トランザクションを引き続き受信し、それが停止条件が満たされたと決定するまで該トランザクションを記憶する。この例において、停止条件は、継続時間ΔTが経過したことである。継続時間は、例えば、ノードがボトルネックであるという決定から、又は動作802における最初のトランザクションの受信から続いてもよい。継続時間の代わりに、他の条件が使用されてもよく、例えば、メモリにおける最大数のトランザクションの蓄積、又はこのような要素の任意の組み合わせである。
ひとたび停止条件が満たされると、例えば、この場合ではΔTが経過すると、ノードは、次いで、動作812により示されるように、ネットワークコーディング及びローカルエンコーディングベクトルを使用して、記憶されたトランザクションからメッセージMを構築する。動作814において、ノードは、次いで、このメッセージ及びグローバルエンコーディングベクトルを、全てのそのアウトリンクを通じて他のノードに送信する。
次に、図9を参照する。図9は、参加ノード900の簡略化された例をブロック図形式で示す。ノード900は、プロセッサ902を含み、プロセッサ902は、1つ以上のマイクロプロセッサ、特定用途向け集積チップ(ASIC)、マイクロコントローラ、又は同様のコンピュータ処理装置を含んでもよい。ノード900は、値、変数、及びいくつかの例ではプロセッサ実行可能プログラム命令を記憶する永続的及び非永続的メモリを含み得るメモリ904と、有線又は無線ネットワークを通じてのネットワーク接続性を提供するネットワークインターフェース906とをさらに含む。
ノード900は、プロセッサ実行可能命令を含むプロセッサ実行可能ブロックチェーンアプリケーション908を含み、該命令は実行されたときに、プロセッサ902に本明細書に記載の機能又は動作の1つ以上を実行させる。
本明細書に記載された装置及び処理、並びにブロックチェーンノードを構成するための記載された方法/処理を実現する任意のモジュール、ルーチン、プロセス、スレッド、アプリケーション、又は他のソフトウェアコンポーネントは、標準的なコンピュータプログラミング手法及び言語を用いて実現され得ることが理解されよう。本出願は、特定のプロセッサ、コンピュータ言語、コンピュータプログラミング規則、データ構造、又は他のこのような実装詳細に限定されない。
上述の実施形態は、本発明を限定するものでなく例示するものであり、当業者は、別記の特許請求の範囲により定義される本発明の範囲から逸脱することなく多くの代替的な実施形態を設計できることに留意されたい。特許請求の範囲において、括弧内に付したいかなる参照符号も、特許請求の範囲を限定するものと解釈してはならない。単語「含む」及び「含んでいる」などは、いずれかの請求項又は明細書全体に列挙されたもの以外の要素又はステップの存在を除外しない。本明細書において、「含む」は、「含み、あるいは〜から成る」を意味し、「含んでいる」は、「含んでおり、あるいは〜から成っている」ことを意味する。要素の単数形の参照は、このような要素の複数形の参照を除外するものでなく、その逆もまた同様である。本発明は、いくつかの区別可能な要素を含むハードウェアを用いて、及び適切にプログラムされたコンピュータを用いて実現されてもよい。いくつかの手段を挙げる装置の請求項において、これらの手段のいくつかは、1つの、及び同じアイテムのハードウェアにより具体化されてもよい。特定の方策が相互に異なる従属請求項に記載されているという単なる事実は、これらの方策の組み合わせが利益をもたらすように使用できないことを示すわけではない。

Claims (19)

  1. ノードのネットワークにおいてトランザクションを伝播するノードであって、各ノードは他のノードに対する1つ以上の接続を有し、前記ノードは、
    プロセッサと、
    メモリと、
    ネットワークインターフェースと、
    プロセッサ実行可能命令を含むアプリケーションと、を含み、
    前記プロセッサ実行可能命令は、前記プロセッサにより実行されたときに前記プロセッサに、
    前記ノードがトランザクションの伝播に対するボトルネックであると決定し、
    前記ネットワークインターフェースを介して、及び第1の期間にわたり、前記ノードのネットワーク内の1つ以上の第1のノードから複数の新しいトランザクションを受信し、
    前記複数の新しいトランザクションをネットワークコーディング及びローカルエンコーディングベクトルを使用して結合してメッセージを生成し、
    前記複数の新しいトランザクションを前記ノードのネットワーク内の1つ以上の第2のノードに送信する代わりに、前記メッセージ及びグローバルエンコーディングベクトルを前記1つ以上の第2のノードに送信する
    ことをさせる、ノード。
  2. 前記命令は、実行されたときに前記プロセッサに、前記ノードへのインリンクの数及び前記ノードからのアウトリンクの数を評価することと、前記インリンクの数が前記アウトリンクの数を超えているとき前記ノードのうちの前記1つがボトルネックであると決定することとにより、前記ノードのうちの前記1つがボトルネックであると決定することをさせる、請求項1に記載のノード。
  3. 前記評価することは、前記複数の新しいトランザクションのうち最初のトランザクションの受信のときに評価することを含む、請求項2に記載のノード。
  4. 前記評価することは、ある時間にわたりインリンクのカウント及びアウトリンクのカウントを追跡することを含み、前記インリンクの数は平均であり、前記アウトリンクの数は平均である、請求項2に記載のノード。
  5. 前記命令は、実行されたときに前記プロセッサに、前記複数の新しいトランザクションのうち最初のトランザクションの受信に応答して、前記ノードのうちの前記1つがボトルネックであるとの前記決定を開始することをさせる、請求項1乃至4のうちいずれか1項に記載のノード。
  6. 前記命令は、実行されたときに前記プロセッサに、停止条件が満たされたとの決定に応答して前記結合及び送信を実行することをさせる、請求項1乃至5のうちいずれか1項に記載のノード。
  7. 前記停止条件は、前記複数の新しいトランザクションのうち最初のものの受信か又は前記ノードのうちの前記1つがボトルネックであるとの前記決定かのいずれかからの継続時間の満了を含む、請求項6に記載のノード。
  8. 前記停止条件は、前記複数の新しいトランザクションが新しいトランザクションの最大数に達することを含む、請求項6に記載のノード。
  9. 前記メッセージは、前記複数の新しいトランザクションの中の最長トランザクションより長くない長さを有する、請求項1乃至8のうちいずれか1項に記載のノード。
  10. ノードのネットワークにおいてトランザクションを伝播する、コンピュータにより実現される方法であって、各ノードは他のノードに対する1つ以上の接続を有し、前記方法は、前記ノードうちの1つで実現され、
    前記ノードのうちの前記1つがトランザクションの伝播に対するボトルネックであると決定するステップと、
    第1の期間にわたり、前記ノードのネットワーク内の1つ以上の第1のノードから複数の新しいトランザクションを受信するステップと、
    前記複数の新しいトランザクションをネットワークコーディング及びローカルエンコーディングベクトルを使用して結合してメッセージを生成するステップと、
    前記複数のトランザクションを前記ノードのネットワーク内の1つ以上の第2のノードに送信する代わりに、前記メッセージ及びグローバルエンコーディングベクトルを前記1つ以上の第2のノードに送信するステップと、
    を含む方法。
  11. 前記ノードのうちの前記1つがボトルネックであると決定するステップは、前記ノードへのインリンクの数及び前記ノードからのアウトリンクの数を評価するステップと、前記インリンクの数が前記アウトリンクの数を超えているとき前記ノードのうちの前記1つがボトルネックであると決定するステップとを含む、請求項10に記載の方法。
  12. 前記評価するステップは、前記複数の新しいトランザクションのうち最初のトランザクションの受信のときに評価するステップを含む、請求項11に記載の方法。
  13. 前記評価するステップは、ある時間にわたりインリンクのカウント及びアウトリンクのカウントを追跡するステップを含み、前記インリンクの数は平均であり、前記アウトリンクの数は平均である、請求項11に記載の方法。
  14. 前記ノードのうちの前記1つがボトルネックであると決定するステップは、前記複数の新しいトランザクションのうち最初のトランザクションの受信に応答して開始される、請求項10乃至13のうちいずれか1項に記載の方法。
  15. 前記結合するステップ及び送信するステップは、停止条件が満たされたとの決定に応答して生じる、請求項10乃至14のうちいずれか1項に記載の方法。
  16. 前記停止条件は、前記複数の新しいトランザクションのうち最初のものの受信と前記ノードのうちの前記1つがボトルネックであるとの前記決定とのいずれかからの継続時間の満了を含む、請求項15に記載の方法。
  17. 前記停止条件は、前記複数の新しいトランザクションが新しいトランザクションの最大数に達することを含む、請求項15に記載の方法。
  18. 前記メッセージは、前記複数の新しいトランザクションの中の最長トランザクションより長くない長さを有する、請求項10乃至17のうちいずれか1項に記載の方法。
  19. 複数の参加ノード間のトランザクションに参加するためのプロセッサ実行可能命令を記憶した非一時的プロセッサ読取可能媒体であって、前記プロセッサ実行可能命令は、前記参加ノードのうちの1つにおけるプロセッサにより実行されたときに前記プロセッサに、請求項10乃至18のうちいずれか1項に記載の方法を実行させる、非一時的プロセッサ読取可能媒体。
JP2019565427A 2017-06-09 2018-06-04 ブロックチェーンネットワークにおいてトランザクションを伝播するためにネットワークコーディングを選択的に使用する方法及びシステム Active JP7237016B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023029326A JP2023065543A (ja) 2017-06-09 2023-02-28 ブロックチェーンネットワークにおいてトランザクションを伝播するためにネットワークコーディングを選択的に使用する方法及びシステム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1709219.8 2017-06-09
GBGB1709219.8A GB201709219D0 (en) 2017-06-09 2017-06-09 Computer-implemented system and method
PCT/IB2018/053978 WO2018224942A1 (en) 2017-06-09 2018-06-04 Method and system for selectively using network coding for propagating transactions in a blockchain network

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023029326A Division JP2023065543A (ja) 2017-06-09 2023-02-28 ブロックチェーンネットワークにおいてトランザクションを伝播するためにネットワークコーディングを選択的に使用する方法及びシステム

Publications (2)

Publication Number Publication Date
JP2020522922A true JP2020522922A (ja) 2020-07-30
JP7237016B2 JP7237016B2 (ja) 2023-03-10

Family

ID=59358381

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019565427A Active JP7237016B2 (ja) 2017-06-09 2018-06-04 ブロックチェーンネットワークにおいてトランザクションを伝播するためにネットワークコーディングを選択的に使用する方法及びシステム
JP2023029326A Pending JP2023065543A (ja) 2017-06-09 2023-02-28 ブロックチェーンネットワークにおいてトランザクションを伝播するためにネットワークコーディングを選択的に使用する方法及びシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023029326A Pending JP2023065543A (ja) 2017-06-09 2023-02-28 ブロックチェーンネットワークにおいてトランザクションを伝播するためにネットワークコーディングを選択的に使用する方法及びシステム

Country Status (7)

Country Link
US (1) US20200202312A1 (ja)
EP (1) EP3635880A1 (ja)
JP (2) JP7237016B2 (ja)
CN (2) CN116506101A (ja)
GB (1) GB201709219D0 (ja)
TW (1) TWI812623B (ja)
WO (1) WO2018224942A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11823178B2 (en) * 2017-11-17 2023-11-21 International Business Machines Corporation Optimization of high volume transaction performance on a blockchain
GB201719654D0 (en) * 2017-11-27 2018-01-10 Nchain Holdings Ltd Computer-implemented system and method
GB201804479D0 (en) * 2018-03-21 2018-05-02 Nchain Holdings Ltd Computer-implemented system and method
CN109327528B (zh) * 2018-10-31 2020-10-20 创新先进技术有限公司 一种基于区块链的节点管理方法和装置
EP3566393B1 (en) 2018-12-28 2021-09-01 Advanced New Technologies Co., Ltd. Accelerating transaction deliveries in blockchain networks using transaction resending
JP2020516108A (ja) 2018-12-28 2020-05-28 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited グローバル加速ノードを用いたブロックチェーントランザクション速度の改善
WO2019072307A2 (en) 2018-12-28 2019-04-18 Alibaba Group Holding Limited ACCELERATION OF TRANSACTION DELIVERIES IN BLOCK CHAIN NETWORKS USING ACCELERATION NODES
CN111260076B (zh) * 2020-01-13 2022-03-29 天津大学 基于区块链的边缘节点训练方法、区块链及存储介质
CN111401868B (zh) * 2020-03-19 2022-07-01 南开大学 一种费用最小的区块链链下交易路由算法
CN113763077A (zh) * 2020-07-24 2021-12-07 北京沃东天骏信息技术有限公司 用于检测虚假交易订单的方法和装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101267450A (zh) * 2008-03-18 2008-09-17 上海大学 基于网络编码的分布式网络应用层组播路由方法
JP2010016721A (ja) * 2008-07-04 2010-01-21 Nippon Telegr & Teleph Corp <Ntt> 無線通信システム、中継局装置および無線通信方法
JP2011217235A (ja) * 2010-04-01 2011-10-27 Advanced Telecommunication Research Institute International 無線装置
US20130051324A1 (en) * 2011-08-24 2013-02-28 Industry-Academic Cooperation Foundation Gyeongsang National University Wireless network using network coding, and method of adaptively adjusting buffering time in wireless network
JP2013239786A (ja) * 2012-05-11 2013-11-28 Mitsubishi Electric Corp 端末装置
JP2014112788A (ja) * 2012-12-05 2014-06-19 Mitsubishi Electric Corp センサ情報配信システム
US20150188819A1 (en) * 2013-12-27 2015-07-02 Korea Advanced Institute Of Science And Technology Method and Apparatus for Deciding Network Coding Method Based on Link Utilization
JP2015162878A (ja) * 2014-02-28 2015-09-07 沖電気工業株式会社 通信装置及び通信方法、並びに通信システム
JP2015220621A (ja) * 2014-05-19 2015-12-07 日本電信電話株式会社 マルチキャスト量子ネットワーク符号化方法
JP2016092833A (ja) * 2014-10-31 2016-05-23 富士通株式会社 復号手法、復号器及び受信機

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8861356B2 (en) * 2007-03-13 2014-10-14 Ntt Docomo, Inc. Method and apparatus for prioritized information delivery with network coding over time-varying network topologies
US7911962B2 (en) * 2007-05-29 2011-03-22 Bae Systems Information And Electronic Systems Integration Inc. Integrating local congestion and path interference into QoS routing for wireless mobile AD HOC networks
CN101635606A (zh) * 2008-07-23 2010-01-27 电子科技大学 无线多跳级联自适应网络编码协作方法
CN101764675B (zh) * 2009-12-23 2013-06-19 北京邮电大学 分布式网络中的编码资源自适应调度算法
US9389841B2 (en) * 2012-07-18 2016-07-12 Micron Technology, Inc. Methods and systems for using state vector data in a state machine engine
US9235798B2 (en) * 2012-07-18 2016-01-12 Micron Technology, Inc. Methods and systems for handling data received by a state machine engine
US9369255B2 (en) * 2012-10-18 2016-06-14 Massachusetts Institute Of Technology Method and apparatus for reducing feedback and enhancing message dissemination efficiency in a multicast network
CN103415063A (zh) * 2013-08-23 2013-11-27 哈尔滨工业大学深圳研究生院 一种基于网络编码的ZigBee 网络节能方法
US10042782B2 (en) * 2015-06-02 2018-08-07 ALTR Solutions, Inc. Immutable datastore for low-latency reading and writing of large data sets
US9967909B2 (en) * 2015-11-04 2018-05-08 Motorola Mobility Llc Wireless ad hoc network assembly using network coding
KR102599073B1 (ko) * 2016-05-09 2023-11-10 스트롱 포스 아이오티 포트폴리오 2016, 엘엘씨 산업용 사물 인터넷을 위한 방법들 및 시스템들
CN106603198A (zh) * 2016-12-02 2017-04-26 深圳大学 具有网络编码的区块链分布式存储方法及系统

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101267450A (zh) * 2008-03-18 2008-09-17 上海大学 基于网络编码的分布式网络应用层组播路由方法
JP2010016721A (ja) * 2008-07-04 2010-01-21 Nippon Telegr & Teleph Corp <Ntt> 無線通信システム、中継局装置および無線通信方法
JP2011217235A (ja) * 2010-04-01 2011-10-27 Advanced Telecommunication Research Institute International 無線装置
US20130051324A1 (en) * 2011-08-24 2013-02-28 Industry-Academic Cooperation Foundation Gyeongsang National University Wireless network using network coding, and method of adaptively adjusting buffering time in wireless network
JP2013239786A (ja) * 2012-05-11 2013-11-28 Mitsubishi Electric Corp 端末装置
JP2014112788A (ja) * 2012-12-05 2014-06-19 Mitsubishi Electric Corp センサ情報配信システム
US20150188819A1 (en) * 2013-12-27 2015-07-02 Korea Advanced Institute Of Science And Technology Method and Apparatus for Deciding Network Coding Method Based on Link Utilization
JP2015162878A (ja) * 2014-02-28 2015-09-07 沖電気工業株式会社 通信装置及び通信方法、並びに通信システム
JP2015220621A (ja) * 2014-05-19 2015-12-07 日本電信電話株式会社 マルチキャスト量子ネットワーク符号化方法
JP2016092833A (ja) * 2014-10-31 2016-05-23 富士通株式会社 復号手法、復号器及び受信機

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NICOLAE CLEJU ET AL.: "Selection of Network Coding Nodes for Minimal Playback Delay in Streaming Overlays", IEEE TRANSACTIONS ON MULTIMEDIA, VOL. 13, NO. 5, JPN6022014747, 12 July 2011 (2011-07-12), pages 1103 - 1115, ISSN: 0004753668 *

Also Published As

Publication number Publication date
WO2018224942A1 (en) 2018-12-13
US20200202312A1 (en) 2020-06-25
TW201903623A (zh) 2019-01-16
TWI812623B (zh) 2023-08-21
JP7237016B2 (ja) 2023-03-10
CN110741573B (zh) 2023-05-23
GB201709219D0 (en) 2017-07-26
CN116506101A (zh) 2023-07-28
EP3635880A1 (en) 2020-04-15
CN110741573A (zh) 2020-01-31
JP2023065543A (ja) 2023-05-12

Similar Documents

Publication Publication Date Title
JP7237016B2 (ja) ブロックチェーンネットワークにおいてトランザクションを伝播するためにネットワークコーディングを選択的に使用する方法及びシステム
CN110915188B (zh) 用于区块链网络中的高效传播的概率中继的方法和系统
US20230239200A1 (en) Optimisation of network parameters for enabling network coding
US11895123B2 (en) Systems and methods for random differential relay and network coding
CN110191066A (zh) 一种确定最大传输单元pmtu的方法、设备及系统
JP5479710B2 (ja) データを処理するためのプロセッサ‐サーバ・ハイブリッド・システムおよび方法
Zhu et al. Improvement of contact graph routing algorithm in LEO satellite DTN network
KR101884162B1 (ko) 데이터 전송 방법 및 장치
Kim Efficient and secure NDN

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220419

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221017

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230228

R150 Certificate of patent or registration of utility model

Ref document number: 7237016

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150