IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧

特許7597228情報処理装置、ノードの選択方法、及びプログラム
<>
  • 特許-情報処理装置、ノードの選択方法、及びプログラム 図1
  • 特許-情報処理装置、ノードの選択方法、及びプログラム 図2
  • 特許-情報処理装置、ノードの選択方法、及びプログラム 図3
  • 特許-情報処理装置、ノードの選択方法、及びプログラム 図4
  • 特許-情報処理装置、ノードの選択方法、及びプログラム 図5
  • 特許-情報処理装置、ノードの選択方法、及びプログラム 図6
  • 特許-情報処理装置、ノードの選択方法、及びプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】情報処理装置、ノードの選択方法、及びプログラム
(51)【国際特許分類】
   H04L 67/1042 20220101AFI20241203BHJP
【FI】
H04L67/1042
【請求項の数】 8
(21)【出願番号】P 2023539392
(86)(22)【出願日】2021-08-02
(86)【国際出願番号】 JP2021028624
(87)【国際公開番号】W WO2023012867
(87)【国際公開日】2023-02-09
【審査請求日】2023-11-20
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【弁理士】
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】松浦 洋
(72)【発明者】
【氏名】後藤 良則
(72)【発明者】
【氏名】佐尾 英博
【審査官】田中 秀樹
(56)【参考文献】
【文献】特開2020-060821(JP,A)
【文献】特表2020-516109(JP,A)
【文献】特表2020-505839(JP,A)
【文献】米国特許出願公開第2020/0403777(US,A1)
【文献】米国特許出願公開第2021/0152357(US,A1)
【文献】米国特許出願公開第2021/0165891(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 51/00-51/58
H04L 67/00-67/75
(57)【特許請求の範囲】
【請求項1】
複数の地域に跨がるブロックチェーンネットワークを構成する複数のノードのうちの所定のノードとしての情報処理装置であって、
Inbound隣接ノードの追加要求を行った要求元のノードをInbound隣接ノードとして選択することが可能な選択手段と、
所定の要求元のノードから、前記Inbound隣接ノードの追加要求を受信する受信手段と、
を有し、
前記所定の要求元のノードの属する地域が前記情報処理装置の属する特定地域と異なる場合であって、前記特定地域と異なる地域に属するノードInbound隣接ノードとして選択された数が第1の所定値に達しているときには、前記選択手段は、前記選択することを行わないことを特徴とする情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記受信手段は、前記所定の要求元のノードから、インターネット上で前記所定の要求元のノードを識別するための識別情報を受信し、
前記識別情報に基づいて、前記所定の要求元のノードの属する地域が前記特定地域と異なるかを判断する判断手段を有し、
前記判断手段によって異なると判断された場合であって、前記選択された数が前記所定値に達しているときには、前記選択手段は、前記選択することを行わないことを特徴とする情報処理装置。
【請求項3】
前記所定値は、前記選択手段がランダムにInbound隣接ノードを選択する場合に、前記特定地域とは異なる地域に属するノードを選択する数の平均値よりも小さいことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記選択手段は、所定の候補のノードをOutbound隣接ノードとして選択することが可能であり、
前記選択手段は、前記所定の候補のノードの属する地域が前記特定地域と異なる場合であって、前記特定地域と異なる地域に属するノードOutbound隣接ノードとして選択された数が第2の所定値に達しているときには、前記選択手段は、前記所定の候補のノードをOutbound隣接ノードとして選択することを行わないことを特徴とする請求項1に記載の情報処理装置。
【請求項5】
Inbound隣接ノードとして選択することが可能なノード数の上限値と、Outbound隣接ノードとして選択することが可能なノード数の上限値が同じであり、前記第1の所定値と前記第2の所定値が同じであることを特徴とする請求項4に記載の情報処理装置。
【請求項6】
複数の地域に跨がるブロックチェーンネットワークを構成する複数のノードのうちの所定のノードとしての情報処理装置であって、
Inbound隣接ノードの追加要求を行った要求元のノードをInbound隣接ノードとして選択することが可能な選択手段と、
所定の要求元のノードから、前記Inbound隣接ノードの追加要求を受信する受信手段と、
を有し、
前記所定の要求元のノードの属する地域が前記情報処理装置の属する特定地域と異なる場合であって、前記Inbound隣接ノードとして選択することが可能なノード数の上限値において、前記特定地域と異なる地域に属するノードをInbound隣接ノードとして選択することが可能である割合が所定値に達しているときには、前記選択手段は、前記選択することを行わないことを特徴とする情報処理装置。
【請求項7】
複数の地域に跨がるブロックチェーンネットワークを構成する複数のノードのうちの所定のノードとしての情報処理装置が実行するノードの選択方法であって、
所定の要求元のノードから、Inbound隣接ノードの追加要求を受信する受信ステップと、
前記所定の要求元のノードの属する地域が前記情報処理装置の属する特定地域と異なる場合であって、前記特定地域と異なる地域に属するノードInbound隣接ノードとして選択された数が所定値に達しているときには、前記要求元のノードをInbound隣接ノードとして選択しない選択ステップと、
を実行することを特徴とするノードの選択方法。
【請求項8】
コンピュータに、請求項7に記載の方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示内容は、情報処理装置、ノードの選択方法、及びプログラムに関する。
【背景技術】
【0002】
ブロックチェーンは、ブロックと呼ばれる暗号化されたデータの単位を生成し、ブロックを鎖(チェーン)のように連結していくことによりデータを保管するデータベースである。ビットコインに代表される仮想通貨のプラットフォームとしてブロックチェーン技術は広く使われている。
【0003】
ブロックチェーンネットワークに所属する各ノードはマイナー(採掘者)となり、ハッシュ関数条件を満たす新たなブロックを生成する。一定数のノードから承認されたブロックを生成したノードは報酬を得ることができる。但し、ほぼ同時期に異なる複数のマイナーがハッシュ関数条件を満たすブロックを生成した場合、複数ブロックが同時に承認されてしまい、ブロックチェーンが分岐(フォーク)してしまう場合がある。この場合、ブロック数が最長のチェーン以外の分岐先のチェーンに所属するブロックは後に孤児ブロックとして廃棄されなければならない。このフォークの原因の一つとしてブロックがネットワーク全体に行き渡るまでの時間であるブロック伝達時間が挙げられる。仮に、ブロック伝達時間が十分に短ければ、後に生成されたブロックは承認されないからである。
【0004】
ブロックチェーンネットワークの各ノードは、デフォルトで8つの隣接ノードをOutbound隣接ノードとして保持し、自ノードで生成したブロック、又は他ノードから転送されてきたブロックをOutbound隣接ノードに直接送信する。また、各ノードは、Outbound隣接ノードとは別にInbound隣接ノードを保持する。或るノードのInbound隣接ノードとは、当該或るノードがブロックを直接受け取ることができる隣接ノードのことである。各ノードは、Outbound及びInboundをあわせて最大125隣接ノードまで保持することが可能である。
【0005】
各ノードは、2つのテーブルを持ち、その中からOutbound隣接ノードを選択する。一つ目のテーブルは、newテーブルであり、このnewテーブルには当該ノードが隣接関係を保持したことのないノードがリストアップされ、当初はDNS(Domain Name System)から得られた情報がnewテーブルに格納される。二つ目のテーブルは、triedテーブルであり、このtriedテーブルには、当該ノードと隣接関係を持ったことのあるノードがリストアップされる。
【0006】
ブロックチェーンネットワークの各ノードにおいてデフォルトで8台有るOutbound隣接ノードは最初に設定されるが、新規ノードの追加、隣接ノードのダウン等に応じて隣接ノードを定期的に変更することもできる。「bitcoin/bitcoin: https://github.com/bitcoin/bitcoin」のURLから代表的なブロックチェーンネットワークであるビットコインノードのソースコードをダウンロードできるが、各ノードは、デフォルト設定において、当該ノードが保持するnewテーブルとtriedテーブルからランダムに8台のOutbound隣接ノードを選択する。また、他ノードからInbound隣接ノード追加要求があった場合は、そのノードをInbound隣接ノードリストに隣接ノード数の合計が125を超えない範囲でランダムに格納していく(方式1)。
【0007】
非特許文献1では、上述の方式1がOutBound隣接ノードをランダムに選択する場合に伝搬遅延の大きい地域外の隣接ノードを選択する可能性が高いことに着眼し、OutBound隣接ノードの内の地域外隣接ノード数を1又は2以下に抑えることを提案している(方式2)。
【0008】
ところが、方式1と同様に方式2の各ノードにおけるInbound隣接ノード選択方法では、地域外隣接ノード数に制約を設けておらず、あるノードからのInbound隣接ノード追加要求を受けた場合、ノード毎のInbound隣接ノード数の上限に達していない場合は受け付ける。例えばInbound隣接ノード数の上限が30と設定されており、特定のノードが、要求元のノードからの隣接ノード追加要求を受けた際に、Inbound隣接ノードリスト内に29の隣接ノードしか設定されていない場合は、要求元のノードは特定のノードのInbound隣接ノードリストとして追加される。
【0009】
方式2は方式1に比較して、各ノードの地域外のOutbound隣接ノード数の上限を1又は2と設定しているので、1ブロックが全世界の各地域に所属するすべてのノードに行き渡るまでに地域間通信が少なくなり、結果として1ブロックが全ノードに行き渡るまでのブロック伝達時間が短くなる。
【先行技術文献】
【非特許文献】
【0010】
【文献】松浦 洋, 後藤良則, 佐尾英博, "ブロックチェーンネットワークにおける地域ベース隣接ノード選択",電子情報通信学会総合大会B-6-30, 2021.
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、上述の方式2には以下の課題が生じる。
【0012】
1つ目の課題は、各ノードのInbound隣接ノード数に差が生じて、Inbound隣接ノード数が少ないノードは多いノードに比較してブロックデータの受信時間が遅れる、又は設定時間以内に受け取れない可能性があることである。ブロックデータの受信が遅れたノードは、次のブロックをマイニングする開始時間が遅れる可能性があり、ブロックデータが受信できなかったノードはマイニング機会を逸することになる。つまりマイナー間に不公平を与えることになる。
【0013】
2つ目の課題は、各ノードのInbound隣接ノード中の地域外隣接ノード数又は割合に差が生じることである。地域外の隣接ノードが多いノードは地域外からのブロックデータを早く受け取れる可能性があるが、地域内からのブロックデータは受信が遅れる可能性がある。このようにノード間でブロックデータを受け取る時間のばらつきが大きくなる可能性がある。
【0014】
本発明は、上記の点に鑑みてなされたものであって、ブロックチェーンネットワークのノード間の公平性を効率的に向上させることを目的とする。
【課題を解決するための手段】
【0015】
上記課題を解決するため、請求項1に係る発明は、 複数の地域に跨がるブロックチェーンネットワークを構成する複数のノードのうちの所定のノードとしての情報処理装置であって、Inbound隣接ノードの追加要求を行った要求元のノードをInbound隣接ノードとして選択することが可能な選択手段と、所定の要求元のノードから、前記Inbound隣接ノードの追加要求を受信する受信手段と、を有し、前記所定の要求元のノードの属する地域が前記情報処理装置の属する特定地域と異なる場合であって、前記特定地域と異なる地域に属するノードInbound隣接ノードとして選択された数が第1の所定値に達しているときには、前記選択手段は、前記選択することを行わないことを特徴とする情報処理装置である。
【0016】
また、請求項6に係る発明は、複数の地域に跨がるブロックチェーンネットワークを構成する複数のノードのうちの所定のノードとしての情報処理装置であって、Inbound隣接ノードの追加要求を行った要求元のノードをInbound隣接ノードとして選択することが可能な選択手段と、所定の要求元のノードから、前記Inbound隣接ノードの追加要求を受信する受信手段と、を有し、前記所定の要求元のノードの属する地域が前記情報処理装置の属する特定地域と異なる場合であって、前記Inbound隣接ノードとして選択することが可能なノード数の上限値において、前記特定地域と異なる地域に属するノードをInbound隣接ノードとして選択することが可能である割合が所定値に達しているときには、前記選択手段は、前記選択することを行わないことを特徴とする情報処理装置である。
【発明の効果】
【0017】
以上説明したように本発明によれば、ブロックチェーンネットワークのノード間の公平性を効率的に向上させることができるという効果を奏する。
【図面の簡単な説明】
【0018】
図1】ブロックチェーンネットワークの概略図である。
図2】ノードの電気的なハードウェア構成図である。
図3】ノードの機能構成図である。
図4】Outbound隣接ノードの選択方法を示すフローチャートである。
図5】Inbound隣接ノードの選択方法を示すフローチャートである。
図6】SimBlock設定における地域内外へのデータ転送における伝搬遅延(ミリ秒)のマトリクスを示す図である。
図7】各方式のブロックデータの伝達時間の縮小効果を示すグラフである。
【発明を実施するための形態】
【0019】
以下、図面に基づいて本発明の実施形態を説明する。
【0020】
〔ブロックチェーンネットワークの概略〕
まず、図1を用いて、本実施形態のブロックチェーンネットワークの概略について説明する。図1は、ブロックチェーンネットワークの概略図である。なお、図1は、ブロックチェーンネットワークを簡略化したものであって、紙面の都合上、5つのノードのみが示されている。また、同様の理由で、地域も3つのみが示されている。
【0021】
図1に示されているように、本実施形態のブロックチェーンネットワーク1は、ノード2a、ノード2b、ノード3、ノード4a、及びノード4bによって構築されている。ブロックチェーンネットワーク1は、インターネット等の通信ネットワーク内で構築されている。
各ノードは、コンピュータである。図1では、コンピュータの一例としてノート型パソコンが示されている。図1では、ノード2a,3,4aは、同じ地域(特定地域A3)に所属している。各地域は、後述の図6に示されているような地域である。ノード2bは、特定地域A3とは異なる地域A2に属している。ノード4bは、特定地域A3とは異なる地域A4に属している。なお、地域A2と地域A4は同じ地域であってもよい。
【0022】
いずれのノードであっても、Inbound隣接ノードの追加要求、Inbound隣接ノードの選択及びOutbound隣接ノードの選択を行うことができる。図1では、ノード3に対してInbound隣接ノードの選択を要求する要求元のノードとして、ノード2a,2bが示されている。また、ノード3がOutbound隣接ノードとして選択する候補のノードとして、ノード4a,4bが示されている。なお、いずれのノードも情報処理装置であるが、図1では、ノード3と他のノード2a,2b,4a,4bとを区別するため、ノード3を情報処理装置と示している。
【0023】
〔ノードのハードウェア構成〕
次に、図2を用いて、ノード3の電気的なハードウェア構成を説明する。図2は、ノードの電気的なハードウェア構成図である。
【0024】
ノード3は、コンピュータとして、図2に示されているように、CPU(Central Processing Unit)301、ROM(Read Only Memory)302、RAM(Random Access Memory)303、SSD(Solid State Drive)304、ディスプレイ305、キーボード306、外部機器I/F307、ネットワークI/F308、メディアI/F309、及びバスライン310を備えている。
【0025】
これらのうち、CPU301は、ノード3全体の動作を制御する。ROM302は、IPL(Initial Program Loader)等のCPU301の駆動に用いられるプログラムを記憶する。RAM303は、CPU301のワークエリアとして使用される。
【0026】
SSD304は、CPU301の制御にしたがって、ノードのプログラム等の各種データの読み出し又は書き込みを行う記憶装置である。なお、SSDではなく、HDD(Hard Disk Drive)等の記憶装置であってもよい。
【0027】
ディスプレイ305は、文字や画像等を表示する液晶や有機EL(Electro Luminescence)などの表示手段の一種である。
【0028】
キーボード306は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。
【0029】
外部機器I/F307は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、表示手段の一例としての外付けのディスプレイ、入力手段の一例としてのマウス、外付けのキーボード、又はマイク、及び出力手段の一例としてのプリンタ又はスピーカ、記憶手段の一例としてのUSB(Universal Serial Bus)メモリ等である。
【0030】
ネットワークI/F308は、インターネットを介して、他のノードとデータ等を送受信するための回路である。
【0031】
メディアI/F309は、フラッシュメモリ等の記録メディア309mに対するデータの読み出し又は書き込み(記憶)を制御する。記録メディア309mには、DVD(Digital Versatile Disc)やBlu-ray Disc(登録商標)等も含まれる。
【0032】
バスライン310は、図2に示されているCPU301等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
【0033】
なお、他のノード2a、2b,4a,4bは、ノード3と同様の構成であるため、説明を省略する。
【0034】
〔ノードの機能構成〕
次に、図3を用いて、ノードの機能構成について説明する。図3は、本発明の実施形態におけるノードの機能構成図である。
【0035】
図3において、ノード3は、送受信部31、判断部33、及び選択部35を有する。これら各部は、プログラムに基づき図2のCPU301による命令によって実現される機能である。
【0036】
また、ノード3は、図2のRAM303及びSSD304の少なくとも一方によって構築される記憶部30を有している。
【0037】
<記憶データ>
記憶部30には、Inbound隣接ノードリストL1、newテーブルTn、triedテーブルTt、及びOutbound隣接ノードリストL2が記憶されている。
【0038】
Inbound隣接ノードリストL1には、特定地域A3外及び特定地域A3内毎に、Inbound隣接ノードとして選択された最新のノードを示す情報が示されている。ここでは、Inbound隣接ノードとして選択することが可能な上限値は8である。また、ここでは、特定地域A3外の地域のノードをInbound隣接ノードとして選択することが可能な所定値n11は2である。特定地域A3内の地域のノードをInbound隣接ノードとして選択することが可能な所定値n12は6である。なお、所定値n11は、選択部35がランダムにInbound隣接ノードを選択する場合に、特定地域A3とは異なる地域に属するノードを選択する数の平均値よりも小さいことが好ましい。
【0039】
newテーブルには、ブロックチェーンネットワーク1につながったノード3が、隣接関係を保持したことのないノードのドメイン名及びIPアドレス等を含む情報のリストが登録されている。当初は、DNS(Domain Name System)から得られた情報がnewテーブルに登録される。なお、隣接関係とは、ブロックデータの直接的なやりとり(送受信)が許容される関係をいう。
【0040】
triedテーブルには、ノード3と隣接関係を持ったことのあるノードのドメイン名及びIPアドレス等を含む情報のリストが登録される。
【0041】
Outbound隣接ノードリストL2には、特定地域A3外及び特定地域A3内毎に、Outbound隣接ノードとして選択された最新のノードを示す情報が示されている。ここでは、Outbound隣接ノードとして選択することが可能な上限値は、Inbound隣接ノードとして選択することが可能な上限値と同じ(例えば、8)である。また、特定地域A3外の地域のノードをOutbound隣接ノードとして選択することが可能な所定値は、特定地域A3外の地域のノードをInbound隣接ノードとして選択することが可能な所定値と同じn11(例えば、2)である。特定地域A3内の地域のノードをOutbound隣接ノードとして選択することが可能な所定値は、特定地域A3内の地域のノードをInbound隣接ノードとして選択することが可能な所定値と同じn12(例えば、6)である。このように、Inbound隣接ノードの選択の場合とOutbound隣接ノードの選択の場合とで、上限値、所定値n11、及び所定値n12を合わせると、ブロックチェーンネットワーク1のノード間の公平性を更に効率的に向上させることができる。
【0042】
<各機能構成>
続いて、ノードの各機能構成について説明する。
【0043】
送受信部31は、主に、ネットワークI/F307に対するCPU301の処理によって実現され、通信ネットワークを介して、他の装置(例えば、ノード)との間で各種データ(または情報)の送受信を行う。
【0044】
判断部33は、CPU301の処理によって実現され、各種判断を行う。例えば、判断部33は、Inbound隣接ノードの追加要求を行った要求元のノードのIPアドレスに基づいて、要求元のノードの属する地域が、ノード3の属する特定地域A3と異なるかを判断する。
【0045】
選択部35は、CPU301の処理によって実現され、Inbound隣接ノード又はOutbound隣接ノードの選択を行う。この際、選択部35は、特定地域A3と異なる地域に属するノードをInbound隣接ノード又はOutbound隣接ノードとして選択することが可能な所定値n11に達しているかを判断する。また、選択部35は、特定地域A3と同じ地域に属するノードをInbound隣接ノード又はOutbound隣接ノードとして選択することが可能な所定値n12に達しているかを判断する。
【0046】
なお、選択部35は、Inbound隣接ノード(又はOutbound隣接ノード)として選択することが可能な上限値において、特定地域A3と異なる地域に属するノードをInbound隣接ノード(又はOutbound隣接ノード)として選択することが可能である割合が所定値n21に達しているかを判断してもよい。また、選択部35は、Inbound隣接ノード(又はOutbound隣接ノード)として選択することが可能な上限値において、特定地域A3と同じ地域に属するノードをInbound隣接ノード(又はOutbound隣接ノード)として選択することが可能である割合が所定値n22に達しているかを判断してもよい。
【0047】
〔実施形態の処理又は動作〕
続いて、図4乃至図7を用いて、本実施形態の処理又は動作について詳細に説明する。
【0048】
<Outbound隣接ノードの選択>
図4を用いて、Outbound隣接ノードの選択処理を説明する。図4は、Outbound隣接ノードの選択処理を示すフローチャートである。なお、以下に示すOutbound隣接ノードの選択処理は、上述の方式2を詳細に示した内容である。
【0049】
まず、判断部33は、当初はnewテーブルTnから、Outbound隣接ノードの候補のノードのドメイン名及びIPアドレスを読み出す(S11)。
【0050】
次に、判断部33は、ドメイン名及びIPアドレスに基づいて、候補のノードの属する地域が、ノード3の属する特定地域A3と異なるかを判断する(S12)。IPアドレスは、ICANN(Internet Corporation Assigned Names and Numbers)という世界組織が管理している(「ICANNの役割:https://www.icann.org/resources/pages/what-2012-02-25-ja」)。ノード3の判断部33は、その公開情報を使って、DNSに登録されているIPアドレスのノードが特定地域A3(自地域)であるか他地域であるかを判断してもよい。
【0051】
そして、例えば、候補のノード4bのように、所属する地域が異なる場合には(S12;YES)、選択部35は、特定地域A3と異なる地域に属するノードをOutbound隣接ノードとして選択することが可能な所定値n11に達しているかを判断する(S13)。具体的には、選択部35は、Outbound隣接ノードリストL2において、特定地域A3外に属するOutbound隣接ノードの選択数が所定値n11(例えば、2)に達しているかを判断する。そして、所定値n11に達していない場合には(S13;NO)、選択部35は、候補のノードをOutbound隣接ノードとして選択する(S14)。一方、ステップS13において、所定値n11に達している場合には(S13;YES)、ステップS11に戻る。
【0052】
例えば、図3の場合、特定地域A3外のノードは既に2つ(4y,4z)選択されているため、所定値n11に達している。そのため、選択部35は、図1の候補のノード4bをOutbound隣接ノードとして選択しない。
【0053】
なお、選択部35は、ステップS13では、Outbound隣接ノードとして選択することが可能な上限値において、特定地域A3と異なる地域に属するノードをOutbound隣接ノードとして選択することが可能である割合が所定値n21(例えば、25%)に達しているかを判断してもよい。
【0054】
また、上記ステップS12において、異ならない(同じ)場合には(S12;NO)、選択部35は、特定地域A3と同じ地域に属するノードをOutbound隣接ノードとして選択することが可能な所定値n12に達しているかを判断する(S15)。具体的には、選択部35は、Outbound隣接ノードリストL2において、特定地域A3内に属するOutbound隣接ノードの選択数が所定値n12(例えば、6)に達しているかを判断する。そして、所定値n12に達していない場合には(S15;NO)、選択部35は、ステップS14として、候補のノードをOutbound隣接ノードとして選択する。一方、ステップS15において、所定値n12に達している場合には(S15;YES)、ステップS11に戻る。
【0055】
例えば、図3の場合、地域内のノードは、まだ5つ(4d,4e,4f,4g,4h)しか選択されていないため、所定値n12に達していない。そのため、選択部35は、候補のノード4aをOutbound隣接ノードとして選択する。
【0056】
なお、選択部35は、ステップS15では、Outbound隣接ノードとして選択することが可能な上限値において、特定地域A3と同じ地域に属するノードをOutbound隣接ノードとして選択することが可能である割合が所定値n22(例えば、75%)に達しているかを判断してもよい。
【0057】
次に、ステップS14の後、選択部35は、Outbound隣接ノードとして選択することが可能な上限値(例えば、8)に達したかを判断する(S16)。そして、上限値に達していない場合には(S16;NO)、ステップS11に戻る。また、上限値に達した場合には(S16;YES)、図4のOutbound隣接ノードの選択処理が終了する。
【0058】
以上の処理によって、各ノードでは、常に地域外のOutbound隣接ノード数を、例えば2以下に抑えることが可能になる。
【0059】
<Inbound隣接ノードの選択>
図5を用いて、Inbound隣接ノードの選択処理を説明する。図5は、Inbound隣接ノードの選択処理を示すフローチャートである。なお、以下に説明するInbound隣接ノードの選択処理は、方式3を詳細に示した内容である。
【0060】
まず、ノード3の送受信部31は、所定の要求元のノードから、Inbound隣接ノードの追加要求を受信する(S21)。図1においては、ノード3の送受信部31は、ノード2a又はノード2bから受信する。この際、送受信部31は、要求元のノードのIPアドレスも受信する。なお、IPアドレスは、インターネット上で要求元のノードを識別するための識別情報の一例である。
【0061】
次に、判断部33は、ステップS21で受信されたIPアドレスに基づいて、要求元のノードの属する地域が、ノード3の属する特定地域A3と異なるかを判断する(S22)。例えば、判断部33は、ICANN公開情報を使って、要求元のノードの属する地域が、特定地域3A(自地域)と異なるかを判定することができる。そして、異なる場合には(S22;YES)、選択部35は、特定地域A3と異なる地域に属するノードをInbound隣接ノードとして選択することが可能な所定値n11に達しているかを判断する(S23)。具体的には、選択部35は、Inbound隣接ノードリストL1において、特定地域A3外に属するInbound隣接ノードの選択数が所定値n11に達しているかを判断する。そして、所定値n11に達していない場合には(S23;NO)、選択部35は、要求元のノードをInbound隣接ノードとして選択する(S24)。一方、ステップS23において、所定値n11に達している場合には(S23;YES)、図5のInbound隣接ノードの選択処理は終了する。
【0062】
例えば、図3の場合、地域外のノードは既に2つ(2x,2y)選択されているため、所定値n11に達している。そのため、選択部35は、要求元のノード2bをInbound隣接ノードとして選択しない。
【0063】
なお、選択部35は、ステップS23では、Inbound隣接ノードとして選択することが可能な上限値において、特定地域A3と異なる地域に属するノードをInbound隣接ノードとして選択することが可能である割合が所定値n21(例えば、25%)に達しているかを判断してもよい。
【0064】
また、上記ステップS22において、異ならない(同じ)場合には(S22;NO)、選択部35は、特定地域A3と同じ地域に属するノードをInbound隣接ノードとして選択することが可能な所定値n12に達しているかを判断する(S25)。具体的には、選択部35は、Inbound隣接ノードリストL1において、特定地域A3内に属するInbound隣接ノードの選択数が所定値n12に達しているかを判断する。そして、所定値n12に達していない場合には(S25;NO)、選択部35は、ステップS24として、要求元のノードをInbound隣接ノードとして選択する。一方、ステップS25において、所定値n12に達している場合には(S25;YES)、図5のInbound隣接ノードの選択処理は終了する。
【0065】
例えば、図3の場合、特定地域A3内のノードは、まだ5つ(2c,2d,2e,2f,2g)しか選択されていないため、所定値n12に達していない。そのため、選択部35は、要求元のノード2aをInbound隣接ノードとして選択する。
【0066】
なお、選択部35は、ステップS25では、Inbound隣接ノードとして選択することが可能な上限値において、特定地域A3と同じ地域に属するノードをInbound隣接ノードとして選択することが可能である割合が所定値n22(例えば、75%割)に達しているかを判断してもよい。
【0067】
以上の処理によって、各ノードでは、常に地域外のInbound隣接ノード数を、例えば2以下に抑えることが可能になる。
【0068】
〔各方式の比較評価〕
続いて、図6及び図7を用いて、各方式1,2,3の比較評価について説明する。図6は、SimBlock設定における地域内外へのデータ転送における伝搬遅延(ミリ秒)のマトリクスを示す図である。このマトリクスは、2019年のビットコインネットワークの統計情報に基づいている。
【0069】
以下に、方式1、方式2、方式3との定量的な比較評価を示す。シミュレータとしては、「東工大ニュース:パブリックブロックチェーンのシミュレータ「SimBlock」を開発・配布開始:https://www.titech.ac.jp/news/2019/044557.html」のSimBlockを利用した。
【0070】
SimBlockは、図6に示されるような6つの世界の各地域にノードをランダム配置して、ノード間に隣接関係を設定することが可能である。本比較評価で利用した評価環境では、2019年におけるビットコインのノードの配置割合を利用して、北アメリカ(33.16%)、EU(49.98%)、南アメリカ(0.9%)、アジアパシフィック(11.77%)、日本(2.24%)、オーストラリア(1.95%)の配置可能性でノードを世界の各地域にランダム配置した。
【0071】
図7は、各方式のブロックデータの伝達時間の縮小効果を示すグラフである。
【0072】
「方式1」は、ランダムにOutbound隣接ノードを8台選択する方式である。「方式2」は、Outbound隣接ノード中の特定地域A3外の隣接ノード数を1又は2以下に固定する方式である。但し、方式1、方式2ともに、Inbound隣接ノード数の上限は30として、Inbound隣接ノード追加要求は、この30以下であれば各ノードで受け付ける。方式3では、Inbound隣接ノードの上限値をOutbound隣接ノードの上限値と同じ8として、Inbound隣接ノード中の特定地域A3外の隣接ノード数の上限である所定値は、Outbound隣接ノード中の特定地域A3外の隣接ノード数の上限である所定値と同じとしている。つまり、図7において「方式3(地域外1)」は、Outbound、Inboundともに特定地域A3外の隣接ノード数の上限である所定値は1であるということである。
【0073】
評価の条件としてメインチェーンのブロック高=200としたため、201個のメインチェーンのブロックがブロックチェーンネットワーク1全体に行き渡るまで評価が行われた。なお、ブロックデータの平均伝達時間とは、各メインチェーンのブロックが生成されてから、ブロックチェーンネットワーク1上の全てのノードに行き渡るまでの時間の平均値を示している。但し、仮にメインチェーンのあるブロックデータがフォークや、既定の時間(ビットコイン=10分)までにすべてのノードに行き渡らなかった場合は、当該ブロックの伝達時間はこの平均値に含まれない。
【0074】
ここで、フォークについて詳細に説明する。ブロックチェーンネットワーク1では、ほぼ同じ時間に異なるブロックが異なるマイナー(採掘者)により生成された場合に、どちらのブロックも規定数の承認が得られて、同一の親ブロックの下でフォークして生成される場合がある(「ウィキペディア:ブロックチェーン:https://ja.wikipedia.org/wiki/%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3」(以下、「参考文献」という。))。その場合、フォークした後にメインチェーンになれなかったブロックは孤児ブロック(参考文献)として廃棄され、この孤児ブロック上で行われたトランザクションも廃棄されてしまうため、孤児ブロックはなるべく生成されない方がよい。孤児ブロックが生成される一つの要因として、ブロックデータの伝達時間が挙げられる。仮に、ブロックデータが高速にブロックチェーンネットワーク1全体に行き渡れば、或るノードに他ブロックデータの生成通知が到着した場合に、当該ノードに既にブロックデータが到着しているため、後から到着したブロックデータは承認されないからである。
【0075】
また、評価においては、ブロックチェーンのコンセンサスアルゴリズム(「BLOCKCHAIN business community:ブロックチェーンを支える技術「プルーフ・オブ・ワーク(PoW)」とは:https://www.businessblockchain.org/what-is-proof-of-work-for-blockchain/」)としては、PoW(Proof of Work)を用いた。
【0076】
方式2は、特定地域A3外のInbound隣接ノード数が1,2の両方で、方式1のブロックデータの平均伝達時間を大幅に縮めることができる。しかし、方式3(地域外1)は、全てのブロックチェーンネットワーク1で方式2(地域外1)の平均伝達時間をさらに大幅(平均14.8%)に縮めることができた。また、方式3(地域外2)も、すべてのブロックチェーンネットワーク1で方式2(地域外2)の平均伝達時間をさらに(平均7.8%)に縮めることができた。
【0077】
〔実施形態の主な効果〕
以上説明したように本実施形態によれば、ノード3は、所定の要求元のノードの属する地域がノード3の属する特定地域A3と異なる場合であって(S22;YES)、特定地域A3と異なる地域に属するノードをInbound隣接ノードとして選択することが可能な所定値n11に達しているときには(S23;YES)、所定の要求元のノードをInbound隣接ノードとして選択すること(S24)を行わない。これにより、ブロックチェーンネットワーク1のノード間の公平性を効率的に向上させることができるという効果を奏する。
【0078】
特に、Inbound隣接ノードの選択の場合とOutbound隣接ノードの選択の場合とで、Inbound隣接ノード及びOutbound隣接ノードとして選択することが可能な上限値、所定値n11、(n21)及び所定値n12(n22)を合わせることで、ブロックチェーンネットワーク1のノード間の公平性を更に効率的に向上させることができるという効果を奏する。
【0079】
〔補足〕
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、以下のように種々の変形及び変更が可能である。
(1)ノード3はコンピュータとプログラムによっても実現できるが、このプログラムを記録媒体に記録することも、通信ネットワークを介して提供することも可能である。
(2)上記実施形態では、ノードの一例としてノート型パソコンが示されているが、これに限るものではなく、例えば、デスクトップパソコン、タブレット端末、スマートフォン等であってもよい。
(3)各CPU301は、単一だけでなく、複数であってもよい。
【符号の説明】
【0080】
1 ブロックチェーンネットワーク
2a (特定地域A3に属する)要求元のノード
2b (地域A2に属する)要求元のノード
3 ノード(情報処理装置の一例)
4a (特定地域A3に属する)候補のノード
4b (特定地域A4に属する)候補のノード
30 記憶部
31 送受信部(受信手段の一例、送信手段の一例)
33 判断部(判断手段の一例)
35 選択部(選択手段の一例)
図1
図2
図3
図4
図5
図6
図7