WO2023012867A1 - 情報処理装置、ノードの選択方法、及びプログラム - Google Patents

情報処理装置、ノードの選択方法、及びプログラム Download PDF

Info

Publication number
WO2023012867A1
WO2023012867A1 PCT/JP2021/028624 JP2021028624W WO2023012867A1 WO 2023012867 A1 WO2023012867 A1 WO 2023012867A1 JP 2021028624 W JP2021028624 W JP 2021028624W WO 2023012867 A1 WO2023012867 A1 WO 2023012867A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
inbound
adjacent
area
predetermined
Prior art date
Application number
PCT/JP2021/028624
Other languages
English (en)
French (fr)
Inventor
洋 松浦
良則 後藤
英博 佐尾
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to JP2023539392A priority Critical patent/JPWO2023012867A1/ja
Priority to PCT/JP2021/028624 priority patent/WO2023012867A1/ja
Publication of WO2023012867A1 publication Critical patent/WO2023012867A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units

Definitions

  • the present disclosure relates to an information processing device, a node selection method, and a program.
  • a blockchain is a database that stores data by generating encrypted data units called blocks and linking the blocks like a chain.
  • Blockchain technology is widely used as a platform for virtual currencies represented by Bitcoin.
  • Each node belonging to the blockchain network becomes a miner and generates new blocks that satisfy the hash function conditions. Nodes that produce approved blocks from a certain number of nodes can earn rewards. However, if multiple different miners generate blocks that satisfy the hash function conditions at approximately the same time, multiple blocks may be approved at the same time, causing the blockchain to branch (fork). In this case, blocks belonging to branch destination chains other than the chain with the longest number of blocks must be discarded as orphan blocks later.
  • block propagation time is the time it takes for a block to spread throughout the network. This is because if the block propagation time is short enough, blocks generated later will not be approved.
  • each node in the blockchain network retains eight neighboring nodes as outbound neighboring nodes, and directly transmits blocks generated by the node or blocks transferred from other nodes to the neighboring outbound nodes. Also, each node maintains an inbound neighbor node separately from the outbound neighbor node.
  • a node's Inbound neighbors are neighbors from which the node can directly receive blocks. Each node can hold up to 125 adjacent nodes in total for Outbound and Inbound.
  • Each node has two tables from which to select outbound neighboring nodes.
  • the first table is the new table, and this new table lists nodes that the node has never maintained an adjacency relationship with. stored in
  • the second table is the tried table, and the tried table lists nodes that have had an adjacency relationship with the node in question.
  • each node in the blockchain network has 8 Outbound Adjacent Nodes that are initially set, but it is also possible to change the Adjacent Nodes periodically according to the addition of new nodes, the downing of adjacent nodes, etc.
  • the node is randomly stored in the inbound adjacent node list within a range where the total number of adjacent nodes does not exceed 125 (method 1).
  • Non-Patent Document 1 focuses on the fact that there is a high possibility of selecting an adjacent node outside the area with a large propagation delay when the above-described method 1 randomly selects the OutBound adjacent node, and outside the area within the OutBound adjacent node It is proposed to suppress the number of adjacent nodes to 1 or 2 or less (Method 2).
  • each node of method 2 there is no restriction on the number of adjacent nodes outside the area, and when an inbound adjacent node addition request is received from a certain node, each node Accept if the number of inbound neighboring nodes has not reached the upper limit.
  • the upper limit of the number of inbound adjacent nodes is set to 30, and when a specific node receives an adjacent node addition request from the requesting node, only 29 adjacent nodes are set in the inbound adjacent node list. If not, the requesting node is added as the specified node's Inbound neighbor list.
  • method 2 sets the upper limit of the number of outbound neighboring nodes outside the region of each node to 1 or 2, so until one block reaches all nodes belonging to each region of the world As a result, the block transmission time required for one block to reach all nodes is shortened.
  • the first issue is that there is a difference in the number of inbound neighboring nodes for each node, and a node with a small number of inbound neighboring nodes may receive block data later than a node with a large number of inbound neighboring nodes, or it may not be received within the set time. It is a matter of nature. A node that receives block data late may delay the start time of mining the next block, and a node that fails to receive block data will miss a mining opportunity. In other words, it will give unfairness among miners.
  • the second issue is the difference in the number or ratio of out-of-region adjacent nodes among the inbound adjacent nodes of each node. Nodes with many neighboring nodes outside the region may receive block data from outside the region early, but block data from within the region may be received late. In this way, there is a possibility that the variation in the time to receive block data between nodes becomes large.
  • the present invention has been made in view of the above points, and aims to efficiently improve fairness between nodes in a blockchain network.
  • the invention according to claim 1 is an information processing device as a predetermined node among a plurality of nodes constituting a block chain network spanning a plurality of regions, wherein an inbound adjacent node
  • a selection means capable of selecting a requesting node that made an addition request as an inbound adjacent node, and a receiving means for receiving an addition request of the inbound adjacent node from a predetermined requesting node,
  • the selection means does not perform the selection when the selection is made.
  • the invention according to claim 6 is an information processing device as a predetermined node among a plurality of nodes constituting a block chain network spanning a plurality of regions, wherein an additional request for an inbound adjacent node is made.
  • a selection means capable of selecting a requesting node as an inbound adjacent node; and receiving means for receiving a request for adding the inbound adjacent node from a predetermined requesting node, wherein the predetermined requesting source node belongs to is different from the specific region to which the information processing device belongs, and in the upper limit value that can be selected as the inbound adjacent node, the node belonging to the region different from the specific region is used as the inbound adjacent node
  • the information processing apparatus is characterized in that the selection means does not perform the selection when the ratio of possible selections reaches a predetermined value.
  • FIG. 1 is a schematic diagram of a blockchain network
  • FIG. 3 is an electrical hardware configuration diagram of a node
  • FIG. 3 is a functional configuration diagram of a node
  • FIG. Fig. 4 is a flow chart showing a method for selecting Outbound neighbor nodes
  • Fig. 10 is a flow chart showing a method for selecting an Inbound neighbor node
  • FIG. 13 shows a matrix of propagation delays (ms) for data transfers into and out of regions in SimBlock settings
  • 7 is a graph showing the effect of reducing the transmission time of block data for each method
  • FIG. 1 is a schematic diagram of a blockchain network. Note that FIG. 1 is a simplified block chain network, and only five nodes are shown due to space limitations. Also, for the same reason, only three regions are shown.
  • the blockchain network 1 of this embodiment is constructed by nodes 2a, 2b, 3, 4a, and 4b.
  • a blockchain network 1 is constructed within a communication network such as the Internet.
  • Each node is a computer.
  • FIG. 1 shows a notebook computer as an example of a computer.
  • nodes 2a, 3 and 4a belong to the same area (specific area A3).
  • Each region is a region as shown in FIG. 6, which will be described later.
  • Node 2b belongs to area A2, which is different from specific area A3.
  • Node 4b belongs to area A4, which is different from specific area A3. Note that the area A2 and the area A4 may be the same area.
  • Any node can request addition of inbound neighboring nodes, select inbound neighboring nodes, and select outbound neighboring nodes.
  • nodes 2a and 2b are shown as requesting nodes requesting node 3 to select an inbound adjacent node.
  • nodes 4a and 4b are shown as candidate nodes for node 3 to select as Outbound adjacent nodes.
  • Each node is an information processing device, but in FIG. 1, the node 3 is indicated as an information processing device in order to distinguish the node 3 from the other nodes 2a, 2b, 4a, and 4b.
  • FIG. 2 is an electrical hardware configuration diagram of a node.
  • the node 3 includes a CPU (Central Processing Unit) 301, a ROM (Read Only Memory) 302, a RAM (Random Access Memory) 303, an SSD (Solid State Drive) 304, a display 305 , keyboard 306 , external device I/F 307 , network I/F 308 , media I/F 309 and bus line 310 .
  • CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • SSD Solid State Drive
  • the CPU 301 controls the operation of the node 3 as a whole.
  • the ROM 302 stores programs used to drive the CPU 301, such as an IPL (Initial Program Loader).
  • a RAM 303 is used as a work area for the CPU 301 .
  • the SSD 304 is a storage device that reads or writes various data such as node programs under the control of the CPU 301 .
  • a storage device such as an HDD (Hard Disk Drive) may be used instead of the SSD.
  • the display 305 is a type of display means such as liquid crystal or organic EL (Electro Luminescence) that displays characters, images, and the like.
  • liquid crystal or organic EL Electro Luminescence
  • the keyboard 306 is a type of input means having multiple keys for inputting characters, numerical values, various instructions, and the like.
  • the external device I/F 307 is an interface for connecting various external devices.
  • the external device in this case includes an external display as an example of a display means, a mouse, an external keyboard or a microphone as an example of an input means, a printer or a speaker as an example of an output means, and an example of a storage means.
  • USB Universal Serial Bus
  • the network I/F 308 is a circuit for transmitting and receiving data to and from other nodes via the Internet.
  • the media I/F 309 controls reading or writing (storage) of data to a recording medium 309m such as a flash memory.
  • the recording medium 309m also includes a DVD (Digital Versatile Disc), a Blu-ray Disc (registered trademark), and the like.
  • the bus line 310 is an address bus, a data bus, etc. for electrically connecting each component such as the CPU 301 shown in FIG.
  • nodes 2a, 2b, 4a, and 4b have the same configuration as the node 3, so description thereof will be omitted.
  • FIG. 3 is a functional configuration diagram of a node in the embodiment of the present invention.
  • the node 3 has a transmitting/receiving section 31, a determining section 33, and a selecting section 35. These units are functions realized by instructions from the CPU 301 in FIG. 2 based on programs.
  • the node 3 has a storage unit 30 constructed by at least one of the RAM 303 and the SSD 304 in FIG.
  • the storage unit 30 stores an inbound adjacent node list L1, a new table Tn, a tried table Tt, and an outbound adjacent node list L2.
  • the inbound adjacent node list L1 shows information indicating the latest nodes selected as inbound adjacent nodes outside the specific area A3 and within the specific area A3.
  • the upper limit that can be selected as an Inbound neighbor node is eight.
  • the predetermined value n11 is 2, which allows a node in an area other than the specific area A3 to be selected as an inbound adjacent node.
  • the predetermined value n12 is 6, which allows the nodes in the area within the specific area A3 to be selected as the inbound adjacent nodes.
  • the predetermined value n11 is preferably smaller than the average value of the number of nodes that belong to an area different from the specific area A3 when the selection unit 35 randomly selects the inbound adjacent nodes.
  • the new table contains a list of information including the domain names and IP addresses of nodes with which the node 3 connected to the blockchain network 1 has never maintained an adjacency relationship. Initially, information obtained from DNS (DomainNameSystem) is registered in the new table. Note that the adjacency relationship means a relationship in which direct exchange (transmission/reception) of block data is permitted.
  • a list of information including domain names and IP addresses of nodes that have had an adjacency relationship with node 3 is registered in the tried table.
  • the outbound adjacent node list L2 shows information indicating the latest nodes selected as outbound adjacent nodes outside the specific area A3 and within the specific area A3.
  • the upper limit that can be selected as an Outbound neighbor node is the same as the upper limit that can be selected as an Inbound neighbor node (eg, 8).
  • the predetermined value with which a node in an area outside the specific area A3 can be selected as an Outbound adjacent node is the same n11 ( For example, 2).
  • the predetermined value with which a node within the specific area A3 can be selected as an Outbound adjacent node is the same as the predetermined value with which a node within the specific area A3 can be selected as an Inbound adjacent node, n12 (for example, 6).
  • the fairness between the nodes of the blockchain network 1 can be improved more efficiently. can be substantially improved.
  • the transmission/reception unit 31 is mainly implemented by the processing of the CPU 301 for the network I/F 307, and transmits/receives various data (or information) to/from other devices (eg, nodes) via the communication network.
  • the judgment unit 33 is implemented by the processing of the CPU 301 and makes various judgments. For example, the determination unit 33 determines whether the area to which the requesting node belongs is different from the specific area A3 to which the node 3 belongs, based on the IP address of the requesting node that has requested the addition of the inbound adjacent node.
  • the selection unit 35 is implemented by the processing of the CPU 301 and selects an inbound adjacent node or an outbound adjacent node. At this time, the selection unit 35 determines whether a predetermined value n11 has been reached at which a node belonging to an area different from the specific area A3 can be selected as an inbound adjacent node or an outbound adjacent node. In addition, the selection unit 35 determines whether a predetermined value n12 is reached at which a node belonging to the same area as the specific area A3 can be selected as an inbound adjacent node or an outbound adjacent node.
  • the selection unit 35 selects a node belonging to an area different from the specific area A3 as an inbound adjacent node (or an outbound adjacent node) within the upper limit value that can be selected as an inbound adjacent node (or an outbound adjacent node). It may be determined whether the ratio of possible cases reaches a predetermined value n21. In addition, the selection unit 35 selects a node belonging to the same area as the specific area A3 as an inbound adjacent node (or outbound adjacent node) at the upper limit value that can be selected as an inbound adjacent node (or outbound adjacent node). It may be determined whether the ratio of possible cases has reached a predetermined value n22.
  • FIG. 4 [Processing or operation of the embodiment] Next, the processing or operation of this embodiment will be described in detail with reference to FIGS. 4 to 7.
  • FIG. 4
  • FIG. 4 is a flow chart showing the process of selecting an outbound adjacent node. It should be noted that the processing for selecting an outbound adjacent node described below is a detailed description of method 2 described above.
  • the determination unit 33 initially reads out the domain name and IP address of the candidate node for the Outbound adjacent node from the new table Tn (S11).
  • the determination unit 33 determines whether the region to which the candidate node belongs differs from the specific region A3 to which the node 3 belongs, based on the domain name and IP address (S12). IP addresses are managed by a global organization called ICANN (InternetCorporationAssignedNamesandNumbers) ”). The determination unit 33 of the node 3 may use the public information to determine whether the node with the IP address registered in the DNS is in the specific area A3 (own area) or in another area.
  • ICANN InternetCorporationAssignedNamesandNumbers
  • the selection unit 35 can select a node belonging to a region different from the specific region A3 as an Outbound adjacent node. It is determined whether or not it has reached a predetermined value n11 (S13). Specifically, the selection unit 35 determines whether the number of selected outbound adjacent nodes belonging to the outside of the specific area A3 has reached a predetermined value n11 (for example, 2) in the outbound adjacent node list L2. Then, if the predetermined value n11 has not been reached (S13; NO), the selection unit 35 selects the candidate node as an Outbound adjacent node (S14). On the other hand, in step S13, when the predetermined value n11 is reached (S13; YES), the process returns to step S11.
  • n11 for example, 2
  • the selection unit 35 does not select the candidate node 4b in FIG. 1 as an Outbound adjacent node.
  • the selection unit 35 sets the rate at which a node belonging to an area different from the specific area A3 can be selected as an outbound adjacent node to the upper limit value that can be selected as an outbound adjacent node is a predetermined value. It may be determined whether n21 (eg, 25%) has been reached.
  • step S12 if not different (same) (S12; NO), the selection unit 35 sets the predetermined value n12 to enable selection of a node belonging to the same area as the specific area A3 as an Outbound adjacent node. It is determined whether it has reached (S15). Specifically, the selection unit 35 determines whether the number of selected outbound adjacent nodes belonging to the specific area A3 has reached a predetermined value n12 (eg, 6) in the outbound adjacent node list L2. Then, if the predetermined value n12 has not been reached (S15; NO), the selection unit 35 selects the candidate node as an Outbound adjacent node in step S14. On the other hand, in step S15, when the predetermined value n12 is reached (S15; YES), the process returns to step S11.
  • n12 eg, 6
  • the selection unit 35 selects the candidate node 4a as an Outbound adjacent node.
  • step S15 the selection unit 35 determines that the rate at which a node belonging to the same area as the specific area A3 can be selected as an outbound adjacent node is set to a predetermined value in the upper limit value that can be selected as an outbound adjacent node. It may be determined whether n22 (eg, 75%) has been reached.
  • step S14 the selection unit 35 determines whether the upper limit (for example, 8) that can be selected as an outbound adjacent node has been reached (S16). Then, if the upper limit value has not been reached (S16; NO), the process returns to step S11. Also, when the upper limit is reached (S16; YES), the process of selecting the outbound adjacent node in FIG. 4 ends.
  • the upper limit for example, 8
  • each node can always keep the number of outbound neighboring nodes outside the region to, for example, 2 or less.
  • FIG. 5 is a flowchart showing selection processing of an inbound adjacent node. It should be noted that the processing for selecting an inbound adjacent node to be described below is a detailed description of method 3.
  • the transmitting/receiving unit 31 of node 3 receives a request to add an inbound adjacent node from a predetermined request source node (S21).
  • the transmitter/receiver 31 of the node 3 receives from the node 2a or the node 2b.
  • the transmitting/receiving unit 31 also receives the IP address of the requesting node.
  • the IP address is an example of identification information for identifying a request source node on the Internet.
  • the determination unit 33 determines whether the region to which the requesting node belongs is different from the specific region A3 to which node 3 belongs (S22). For example, the determination unit 33 can use ICANN public information to determine whether the region to which the requesting node belongs is different from the specific region 3A (own region). If they are different (S22; YES), the selection unit 35 determines whether the predetermined value n11 has been reached, at which a node belonging to an area different from the specific area A3 can be selected as an inbound adjacent node (S23). .
  • the selection unit 35 determines whether the number of selected inbound adjacent nodes belonging to the outside of the specific region A3 has reached a predetermined value n11 in the inbound adjacent node list L1. Then, if the predetermined value n11 has not been reached (S23; NO), the selection unit 35 selects the request source node as an inbound adjacent node (S24). On the other hand, in step S23, if the predetermined value n11 has been reached (S23; YES), the inbound adjacent node selection process of FIG. 5 ends.
  • the selection unit 35 does not select the request source node 2b as an inbound adjacent node.
  • the selection unit 35 sets the rate at which a node belonging to an area different from the specific area A3 can be selected as an inbound adjacent node to the upper limit value that can be selected as an inbound adjacent node is a predetermined value. It may be determined whether n21 (eg, 25%) has been reached.
  • step S22 if not different (same) (S22; NO), the selection unit 35 sets the predetermined value n12 to enable selection of a node belonging to the same area as the specific area A3 as an inbound adjacent node. It is determined whether it has reached (S25). Specifically, the selection unit 35 determines whether the number of selected inbound adjacent nodes belonging to the specific area A3 has reached a predetermined value n12 in the inbound adjacent node list L1. Then, if the predetermined value n12 has not been reached (S25; NO), the selection unit 35 selects the request source node as an inbound adjacent node in step S24. On the other hand, in step S25, if the predetermined value n12 has been reached (S25; YES), the inbound adjacent node selection process of FIG. 5 ends.
  • the selection unit 35 selects the request source node 2a as an inbound adjacent node.
  • step S25 the selection unit 35 determines that the rate at which a node belonging to the same area as the specific area A3 can be selected as an inbound adjacent node is set to a predetermined value in the upper limit value that can be selected as an inbound adjacent node. It may be determined whether n22 (for example, 75% percent) has been reached.
  • each node can always keep the number of inbound neighboring nodes outside the region to, for example, 2 or less.
  • FIG. 6 is a diagram showing a matrix of propagation delays (in milliseconds) for data transfer within and outside a region in SimBlock settings. This matrix is based on 2019 Bitcoin network statistics.
  • SimBlock can randomly place nodes in each of the six regions of the world as shown in Fig. 6 and set adjacency relationships between nodes.
  • the evaluation environment used in this comparative evaluation using the allocation ratio of Bitcoin nodes in 2019, North America (33.16%), EU (49.98%), South America (0.9%) , Asia Pacific (11.77%), Japan (2.24%), and Australia (1.95%).
  • FIG. 7 is a graph showing the effect of reducing the block data transmission time of each method.
  • Method 1 is a method that randomly selects eight outbound neighboring nodes.
  • Method 2 is a method of fixing the number of adjacent nodes outside the specific area A3 among the outbound adjacent nodes to 1 or 2 or less.
  • the upper limit of the number of inbound adjacent nodes is 30, and an inbound adjacent node addition request is accepted by each node if the number is 30 or less.
  • the upper limit of the inbound adjacent node is set to 8, which is the same as the upper limit of the outbound adjacent node, and the predetermined value, which is the upper limit of the number of adjacent nodes outside the specific area A3 among the inbound adjacent nodes, is the specific area among the outbound adjacent nodes.
  • method 3 (outside area 1) means that the predetermined value, which is the upper limit of the number of adjacent nodes outside the specific area A3, is 1 for both Outbound and Inbound.
  • One of the factors that generate orphan blocks is the transmission time of block data. If the block data spreads over the entire blockchain network 1 at high speed, when a notification of generation of other block data arrives at a certain node, since the block data has already arrived at the node, the block data will arrive later. This is because block data is not approved.
  • Method 2 can significantly reduce the average block data transmission time of method 1 when the number of inbound adjacent nodes outside the specific area A3 is both 1 and 2.
  • method 3 (outside region 1) was able to significantly reduce the average transmission time of method 2 (outside region 1) across all blockchain networks 1 (14.8% on average).
  • method 3 (outside region 2) was also able to further reduce the average transmission time of method 2 (outside region 2) to (7.8% on average) across all blockchain networks 1.
  • the node 3 is different from the specific area A3 to which the predetermined requesting node belongs (S22; YES).
  • the predetermined value n11 at which a node belonging to the region can be selected as an inbound adjacent node is reached (S23; YES)
  • the predetermined request source node is not selected as an inbound adjacent node (S24). This has the effect of efficiently improving the fairness between the nodes of the blockchain network 1 .
  • the node 3 can also be realized by a computer and a program, but it is also possible to record this program on a recording medium or to provide it via a communication network.
  • a laptop computer is shown as an example of a node, but the node is not limited to this, and may be, for example, a desktop computer, a tablet terminal, a smart phone, or the like.
  • Each CPU 301 may be not only single but also plural.
  • Blockchain network 2a (belonging to specific area A3) requesting node 2b (belonging to area A2) requesting node 3 node (an example of an information processing device) 4a Candidate node (belonging to specific area A3) 4b Candidate node (belonging to specific area A4) 30 Storage unit 31 Transmission/reception unit (an example of receiving means, an example of transmitting means) 33 Determination unit (an example of determination means) 35 selection unit (an example of selection means)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

ブロックチェーンネットワークのノード間の公平性を効率的に向上させることを目的とする。 本発明のノード3としての情報処理装置は、所定の要求元のノードから、Inbound隣接ノードの追加要求を受信し、所定の要求元のノードの属する地域が情報処理装置の属する特定地域A3と異なる場合であって、特定地域A3と異なる地域に属するノードをInbound隣接ノードとして選択することが可能な所定値n11に達しているときには、要求元のノード2bをInbound隣接ノードとして選択しない。これにより、ブロックチェーンネットワーク1のノード間の公平性を効率的に向上させることができるという効果を奏する。

Description

情報処理装置、ノードの選択方法、及びプログラム
 本開示内容は、情報処理装置、ノードの選択方法、及びプログラムに関する。
 ブロックチェーンは、ブロックと呼ばれる暗号化されたデータの単位を生成し、ブロックを鎖(チェーン)のように連結していくことによりデータを保管するデータベースである。ビットコインに代表される仮想通貨のプラットフォームとしてブロックチェーン技術は広く使われている。
 ブロックチェーンネットワークに所属する各ノードはマイナー(採掘者)となり、ハッシュ関数条件を満たす新たなブロックを生成する。一定数のノードから承認されたブロックを生成したノードは報酬を得ることができる。但し、ほぼ同時期に異なる複数のマイナーがハッシュ関数条件を満たすブロックを生成した場合、複数ブロックが同時に承認されてしまい、ブロックチェーンが分岐(フォーク)してしまう場合がある。この場合、ブロック数が最長のチェーン以外の分岐先のチェーンに所属するブロックは後に孤児ブロックとして廃棄されなければならない。このフォークの原因の一つとしてブロックがネットワーク全体に行き渡るまでの時間であるブロック伝達時間が挙げられる。仮に、ブロック伝達時間が十分に短ければ、後に生成されたブロックは承認されないからである。
 ブロックチェーンネットワークの各ノードは、デフォルトで8つの隣接ノードをOutbound隣接ノードとして保持し、自ノードで生成したブロック、又は他ノードから転送されてきたブロックをOutbound隣接ノードに直接送信する。また、各ノードは、Outbound隣接ノードとは別にInbound隣接ノードを保持する。或るノードのInbound隣接ノードとは、当該或るノードがブロックを直接受け取ることができる隣接ノードのことである。各ノードは、Outbound及びInboundをあわせて最大125隣接ノードまで保持することが可能である。
 各ノードは、2つのテーブルを持ち、その中からOutbound隣接ノードを選択する。一つ目のテーブルは、newテーブルであり、このnewテーブルには当該ノードが隣接関係を保持したことのないノードがリストアップされ、当初はDNS(Domain Name System)から得られた情報がnewテーブルに格納される。二つ目のテーブルは、triedテーブルであり、このtriedテーブルには、当該ノードと隣接関係を持ったことのあるノードがリストアップされる。
 ブロックチェーンネットワークの各ノードにおいてデフォルトで8台有るOutbound隣接ノードは最初に設定されるが、新規ノードの追加、隣接ノードのダウン等に応じて隣接ノードを定期的に変更することもできる。「bitcoin/bitcoin: https://github.com/bitcoin/bitcoin」のURLから代表的なブロックチェーンネットワークであるビットコインノードのソースコードをダウンロードできるが、各ノードは、デフォルト設定において、当該ノードが保持するnewテーブルとtriedテーブルからランダムに8台のOutbound隣接ノードを選択する。また、他ノードからInbound隣接ノード追加要求があった場合は、そのノードをInbound隣接ノードリストに隣接ノード数の合計が125を超えない範囲でランダムに格納していく(方式1)。
 非特許文献1では、上述の方式1がOutBound隣接ノードをランダムに選択する場合に伝搬遅延の大きい地域外の隣接ノードを選択する可能性が高いことに着眼し、OutBound隣接ノードの内の地域外隣接ノード数を1又は2以下に抑えることを提案している(方式2)。
 ところが、方式1と同様に方式2の各ノードにおけるInbound隣接ノード選択方法では、地域外隣接ノード数に制約を設けておらず、あるノードからのInbound隣接ノード追加要求を受けた場合、ノード毎のInbound隣接ノード数の上限に達していない場合は受け付ける。例えばInbound隣接ノード数の上限が30と設定されており、特定のノードが、要求元のノードからの隣接ノード追加要求を受けた際に、Inbound隣接ノードリスト内に29の隣接ノードしか設定されていない場合は、要求元のノードは特定のノードのInbound隣接ノードリストとして追加される。
 方式2は方式1に比較して、各ノードの地域外のOutbound隣接ノード数の上限を1又は2と設定しているので、1ブロックが全世界の各地域に所属するすべてのノードに行き渡るまでに地域間通信が少なくなり、結果として1ブロックが全ノードに行き渡るまでのブロック伝達時間が短くなる。
松浦 洋, 後藤良則, 佐尾英博, "ブロックチェーンネットワークにおける地域ベース隣接ノード選択",電子情報通信学会総合大会B-6-30, 2021.
 しかしながら、上述の方式2には以下の課題が生じる。
 1つ目の課題は、各ノードのInbound隣接ノード数に差が生じて、Inbound隣接ノード数が少ないノードは多いノードに比較してブロックデータの受信時間が遅れる、又は設定時間以内に受け取れない可能性があることである。ブロックデータの受信が遅れたノードは、次のブロックをマイニングする開始時間が遅れる可能性があり、ブロックデータが受信できなかったノードはマイニング機会を逸することになる。つまりマイナー間に不公平を与えることになる。
 2つ目の課題は、各ノードのInbound隣接ノード中の地域外隣接ノード数又は割合に差が生じることである。地域外の隣接ノードが多いノードは地域外からのブロックデータを早く受け取れる可能性があるが、地域内からのブロックデータは受信が遅れる可能性がある。このようにノード間でブロックデータを受け取る時間のばらつきが大きくなる可能性がある。
 本発明は、上記の点に鑑みてなされたものであって、ブロックチェーンネットワークのノード間の公平性を効率的に向上させることを目的とする。
 上記課題を解決するため、請求項1に係る発明は、複数の地域に跨がるブロックチェーンネットワークを構成する複数のノードのうちの所定のノードとしての情報処理装置であって、Inbound隣接ノードの追加要求を行った要求元のノードをInbound隣接ノードとして選択することが可能な選択手段と、所定の要求元のノードから、前記Inbound隣接ノードの追加要求を受信する受信手段と、を有し、前記所定の要求元のノードの属する地域が前記情報処理装置の属する特定地域と異なる場合であって、前記特定地域と異なる地域に属するノードをInbound隣接ノードとして選択することが可能な所定値に達しているときには、前記選択手段は、前記選択することを行わない ことを特徴とする情報処理装置である。
 また、請求項6に係る発明は、複数の地域に跨がるブロックチェーンネットワークを構成する複数のノードのうちの所定のノードとしての情報処理装置であって、Inbound隣接ノードの追加要求を行った要求元のノードをInbound隣接ノードとして選択することが可能な選択手段と、所定の要求元のノードから、前記Inbound隣接ノードの追加要求を受信する受信手段と、を有し、前記所定の要求元のノードの属する地域が前記情報処理装置の属する特定地域と異なる場合であって、前記Inbound隣接ノードとして選択することが可能な上限値において、前記特定地域と異なる地域に属するノードをInbound隣接ノードとして選択することが可能である割合が所定値に達しているときには、前記選択手段は、前記選択することを行わないことを特徴とする情報処理装置である。
 以上説明したように本発明によれば、ブロックチェーンネットワークのノード間の公平性を効率的に向上させることができるという効果を奏する。
ブロックチェーンネットワークの概略図である。 ノードの電気的なハードウェア構成図である。 ノードの機能構成図である。 Outbound隣接ノードの選択方法を示すフローチャートである。 Inbound隣接ノードの選択方法を示すフローチャートである。 SimBlock設定における地域内外へのデータ転送における伝搬遅延(ミリ秒)のマトリクスを示す図である。 各方式のブロックデータの伝達時間の縮小効果を示すグラフである。
 以下、図面に基づいて本発明の実施形態を説明する。
 〔ブロックチェーンネットワークの概略〕
 まず、図1を用いて、本実施形態のブロックチェーンネットワークの概略について説明する。図1は、ブロックチェーンネットワークの概略図である。なお、図1は、ブロックチェーンネットワークを簡略化したものであって、紙面の都合上、5つのノードのみが示されている。また、同様の理由で、地域も3つのみが示されている。
 図1に示されているように、本実施形態のブロックチェーンネットワーク1は、ノード2a、ノード2b、ノード3、ノード4a、及びノード4bによって構築されている。ブロックチェーンネットワーク1は、インターネット等の通信ネットワーク内で構築されている。
各ノードは、コンピュータである。図1では、コンピュータの一例としてノート型パソコンが示されている。図1では、ノード2a,3,4aは、同じ地域(特定地域A3)に所属している。各地域は、後述の図6に示されているような地域である。ノード2bは、特定地域A3とは異なる地域A2に属している。ノード4bは、特定地域A3とは異なる地域A4に属している。なお、地域A2と地域A4は同じ地域であってもよい。
 いずれのノードであっても、Inbound隣接ノードの追加要求、Inbound隣接ノードの選択及びOutbound隣接ノードの選択を行うことができる。図1では、ノード3に対してInbound隣接ノードの選択を要求する要求元のノードとして、ノード2a,2bが示されている。また、ノード3がOutbound隣接ノードとして選択する候補のノードとして、ノード4a,4bが示されている。なお、いずれのノードも情報処理装置であるが、図1では、ノード3と他のノード2a,2b,4a,4bとを区別するため、ノード3を情報処理装置と示している。
 〔ノードのハードウェア構成〕
 次に、図2を用いて、ノード3の電気的なハードウェア構成を説明する。図2は、ノードの電気的なハードウェア構成図である。
 ノード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を備えている。
 これらのうち、CPU301は、ノード3全体の動作を制御する。ROM302は、IPL(Initial Program Loader)等のCPU301の駆動に用いられるプログラムを記憶する。RAM303は、CPU301のワークエリアとして使用される。
 SSD304は、CPU301の制御にしたがって、ノードのプログラム等の各種データの読み出し又は書き込みを行う記憶装置である。なお、SSDではなく、HDD(Hard Disk Drive)等の記憶装置であってもよい。
 ディスプレイ305は、文字や画像等を表示する液晶や有機EL(Electro Luminescence)などの表示手段の一種である。
 キーボード306は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。
 外部機器I/F307は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、表示手段の一例としての外付けのディスプレイ、入力手段の一例としてのマウス、外付けのキーボード、又はマイク、及び出力手段の一例としてのプリンタ又はスピーカ、記憶手段の一例としてのUSB(Universal Serial Bus)メモリ等である。
 ネットワークI/F308は、インターネットを介して、他のノードとデータ等を送受信するための回路である。
 メディアI/F309は、フラッシュメモリ等の記録メディア309mに対するデータの読み出し又は書き込み(記憶)を制御する。記録メディア309mには、DVD(Digital Versatile Disc)やBlu-ray Disc(登録商標)等も含まれる。
 バスライン310は、図2に示されているCPU301等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
 なお、他のノード2a、2b,4a,4bは、ノード3と同様の構成であるため、説明を省略する。
 〔ノードの機能構成〕
 次に、図3を用いて、ノードの機能構成について説明する。図3は、本発明の実施形態におけるノードの機能構成図である。
 図3において、ノード3は、送受信部31、判断部33、及び選択部35を有する。これら各部は、プログラムに基づき図2のCPU301による命令によって実現される機能である。
 また、ノード3は、図2のRAM303及びSSD304の少なくとも一方によって構築される記憶部30を有している。
 <記憶データ>
 記憶部30には、Inbound隣接ノードリストL1、newテーブルTn、triedテーブルTt、及びOutbound隣接ノードリストL2が記憶されている。
 Inbound隣接ノードリストL1には、特定地域A3外及び特定地域A3内毎に、Inbound隣接ノードとして選択された最新のノードを示す情報が示されている。ここでは、Inbound隣接ノードとして選択することが可能な上限値は8である。また、ここでは、特定地域A3外の地域のノードをInbound隣接ノードとして選択することが可能な所定値n11は2である。特定地域A3内の地域のノードをInbound隣接ノードとして選択することが可能な所定値n12は6である。なお、所定値n11は、選択部35がランダムにInbound隣接ノードを選択する場合に、特定地域A3とは異なる地域に属するノードを選択する数の平均値よりも小さいことが好ましい。
 newテーブルには、ブロックチェーンネットワーク1につながったノード3が、隣接関係を保持したことのないノードのドメイン名及びIPアドレス等を含む情報のリストが登録されている。当初は、DNS(Domain Name System)から得られた情報がnewテーブルに登録される。なお、隣接関係とは、ブロックデータの直接的なやりとり(送受信)が許容される関係をいう。
 triedテーブルには、ノード3と隣接関係を持ったことのあるノードのドメイン名及びIPアドレス等を含む情報のリストが登録される。
 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のノード間の公平性を更に効率的に向上させることができる。
 <各機能構成>
 続いて、ノードの各機能構成について説明する。
 送受信部31は、主に、ネットワークI/F307に対するCPU301の処理によって実現され、通信ネットワークを介して、他の装置(例えば、ノード)との間で各種データ(または情報)の送受信を行う。
 判断部33は、CPU301の処理によって実現され、各種判断を行う。例えば、判断部33は、Inbound隣接ノードの追加要求を行った要求元のノードのIPアドレスに基づいて、要求元のノードの属する地域が、ノード3の属する特定地域A3と異なるかを判断する。
 選択部35は、CPU301の処理によって実現され、Inbound隣接ノード又はOutbound隣接ノードの選択を行う。この際、選択部35は、特定地域A3と異なる地域に属するノードをInbound隣接ノード又はOutbound隣接ノードとして選択することが可能な所定値n11に達しているかを判断する。また、選択部35は、特定地域A3と同じ地域に属するノードをInbound隣接ノード又はOutbound隣接ノードとして選択することが可能な所定値n12に達しているかを判断する。
 なお、選択部35は、Inbound隣接ノード(又はOutbound隣接ノード)として選択することが可能な上限値において、特定地域A3と異なる地域に属するノードをInbound隣接ノード(又はOutbound隣接ノード)として選択することが可能である割合が所定値n21に達しているかを判断してもよい。また、選択部35は、Inbound隣接ノード(又はOutbound隣接ノード)として選択することが可能な上限値において、特定地域A3と同じ地域に属するノードをInbound隣接ノード(又はOutbound隣接ノード)として選択することが可能である割合が所定値n22に達しているかを判断してもよい。
 〔実施形態の処理又は動作〕
 続いて、図4乃至図7を用いて、本実施形態の処理又は動作について詳細に説明する。
 <Outbound隣接ノードの選択>
 図4を用いて、Outbound隣接ノードの選択処理を説明する。図4は、Outbound隣接ノードの選択処理を示すフローチャートである。なお、以下に示すOutbound隣接ノードの選択処理は、上述の方式2を詳細に示した内容である。
 まず、判断部33は、当初はnewテーブルTnから、Outbound隣接ノードの候補のノードのドメイン名及びIPアドレスを読み出す(S11)。
 次に、判断部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(自地域)であるか他地域であるかを判断してもよい。
 そして、例えば、候補のノード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に戻る。
 例えば、図3の場合、特定地域A3外のノードは既に2つ(4y,4z)選択されているため、所定値n11に達している。そのため、選択部35は、図1の候補のノード4bをOutbound隣接ノードとして選択しない。
 なお、選択部35は、ステップS13では、Outbound隣接ノードとして選択することが可能な上限値において、特定地域A3と異なる地域に属するノードをOutbound隣接ノードとして選択することが可能である割合が所定値n21(例えば、25%)に達しているかを判断してもよい。
 また、上記ステップ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に戻る。
 例えば、図3の場合、地域内のノードは、まだ5つ(4d,4e,4f,4g,4h)しか選択されていないため、所定値n12に達していない。そのため、選択部35は、候補のノード4aをOutbound隣接ノードとして選択する。
 なお、選択部35は、ステップS15では、Outbound隣接ノードとして選択することが可能な上限値において、特定地域A3と同じ地域に属するノードをOutbound隣接ノードとして選択することが可能である割合が所定値n22(例えば、75%)に達しているかを判断してもよい。
 次に、ステップS14の後、選択部35は、Outbound隣接ノードとして選択することが可能な上限値(例えば、8)に達したかを判断する(S16)。そして、上限値に達していない場合には(S16;NO)、ステップS11に戻る。また、上限値に達した場合には(S16;YES)、図4のOutbound隣接ノードの選択処理が終了する。
 以上の処理によって、各ノードでは、常に地域外のOutbound隣接ノード数を、例えば2以下に抑えることが可能になる。
 <Inbound隣接ノードの選択>
 図5を用いて、Inbound隣接ノードの選択処理を説明する。図5は、Inbound隣接ノードの選択処理を示すフローチャートである。なお、以下に説明するInbound隣接ノードの選択処理は、方式3を詳細に示した内容である。
 まず、ノード3の送受信部31は、所定の要求元のノードから、Inbound隣接ノードの追加要求を受信する(S21)。図1においては、ノード3の送受信部31は、ノード2a又はノード2bから受信する。この際、送受信部31は、要求元のノードのIPアドレスも受信する。なお、IPアドレスは、インターネット上で要求元のノードを識別するための識別情報の一例である。
 次に、判断部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隣接ノードの選択処理は終了する。
 例えば、図3の場合、地域外のノードは既に2つ(2x,2y)選択されているため、所定値n11に達している。そのため、選択部35は、要求元のノード2bをInbound隣接ノードとして選択しない。
 なお、選択部35は、ステップS23では、Inbound隣接ノードとして選択することが可能な上限値において、特定地域A3と異なる地域に属するノードをInbound隣接ノードとして選択することが可能である割合が所定値n21(例えば、25%)に達しているかを判断してもよい。
 また、上記ステップ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隣接ノードの選択処理は終了する。
 例えば、図3の場合、特定地域A3内のノードは、まだ5つ(2c,2d,2e,2f,2g)しか選択されていないため、所定値n12に達していない。そのため、選択部35は、要求元のノード2aをInbound隣接ノードとして選択する。
 なお、選択部35は、ステップS25では、Inbound隣接ノードとして選択することが可能な上限値において、特定地域A3と同じ地域に属するノードをInbound隣接ノードとして選択することが可能である割合が所定値n22(例えば、75%割)に達しているかを判断してもよい。
 以上の処理によって、各ノードでは、常に地域外のInbound隣接ノード数を、例えば2以下に抑えることが可能になる。
 〔各方式の比較評価〕
 続いて、図6及び図7を用いて、各方式1,2,3の比較評価について説明する。図6は、SimBlock設定における地域内外へのデータ転送における伝搬遅延(ミリ秒)のマトリクスを示す図である。このマトリクスは、2019年のビットコインネットワークの統計情報に基づいている。
 以下に、方式1、方式2、方式3との定量的な比較評価を示す。シミュレータとしては、「東工大ニュース:パブリックブロックチェーンのシミュレータ「SimBlock」を開発・配布開始:https://www.titech.ac.jp/news/2019/044557.html」のSimBlockを利用した。
 SimBlockは、図6に示されるような6つの世界の各地域にノードをランダム配置して、ノード間に隣接関係を設定することが可能である。本比較評価で利用した評価環境では、2019年におけるビットコインのノードの配置割合を利用して、北アメリカ(33.16%)、EU(49.98%)、南アメリカ(0.9%)、アジアパシフィック(11.77%)、日本(2.24%)、オーストラリア(1.95%)の配置可能性でノードを世界の各地域にランダム配置した。
 図7は、各方式のブロックデータの伝達時間の縮小効果を示すグラフである。
 「方式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であるということである。
 評価の条件としてメインチェーンのブロック高=200としたため、201個のメインチェーンのブロックがブロックチェーンネットワーク1全体に行き渡るまで評価が行われた。なお、ブロックデータの平均伝達時間とは、各メインチェーンのブロックが生成されてから、ブロックチェーンネットワーク1上の全てのノードに行き渡るまでの時間の平均値を示している。但し、仮にメインチェーンのあるブロックデータがフォークや、既定の時間(ビットコイン=10分)までにすべてのノードに行き渡らなかった場合は、当該ブロックの伝達時間はこの平均値に含まれない。
 ここで、フォークについて詳細に説明する。ブロックチェーンネットワーク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全体に行き渡れば、或るノードに他ブロックデータの生成通知が到着した場合に、当該ノードに既にブロックデータが到着しているため、後から到着したブロックデータは承認されないからである。
 また、評価においては、ブロックチェーンのコンセンサスアルゴリズム(「BLOCKCHAIN business community:ブロックチェーンを支える技術「プルーフ・オブ・ワーク(PoW)」とは:https://www.businessblockchain.org/what-is-proof-of-work-for-blockchain/」)としては、PoW(Proof of Work)を用いた。
 方式2は、特定地域A3外のInbound隣接ノード数が1,2の両方で、方式1のブロックデータの平均伝達時間を大幅に縮めることができる。しかし、方式3(地域外1)は、全てのブロックチェーンネットワーク1で方式2(地域外1)の平均伝達時間をさらに大幅(平均14.8%)に縮めることができた。また、方式3(地域外2)も、すべてのブロックチェーンネットワーク1で方式2(地域外2)の平均伝達時間をさらに(平均7.8%)に縮めることができた。
 〔実施形態の主な効果〕
 以上説明したように本実施形態によれば、ノード3は、所定の要求元のノードの属する地域がノード3の属する特定地域A3と異なる場合であって(S22;YES)、特定地域A3と異なる地域に属するノードをInbound隣接ノードとして選択することが可能な所定値n11に達しているときには(S23;YES)、所定の要求元のノードをInbound隣接ノードとして選択すること(S24)を行わない。これにより、ブロックチェーンネットワーク1のノード間の公平性を効率的に向上させることができるという効果を奏する。
 特に、Inbound隣接ノードの選択の場合とOutbound隣接ノードの選択の場合とで、Inbound隣接ノード及びOutbound隣接ノードとして選択することが可能な上限値、所定値n11、(n21)及び所定値n12(n22)を合わせることで、ブロックチェーンネットワーク1のノード間の公平性を更に効率的に向上させることができるという効果を奏する。
 〔補足〕
 以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、以下のように種々の変形及び変更が可能である。
(1)ノード3はコンピュータとプログラムによっても実現できるが、このプログラムを記録媒体に記録することも、通信ネットワークを介して提供することも可能である。
(2)上記実施形態では、ノードの一例としてノート型パソコンが示されているが、これに限るものではなく、例えば、デスクトップパソコン、タブレット端末、スマートフォン等であってもよい。
(3)各CPU301は、単一だけでなく、複数であってもよい。
1 ブロックチェーンネットワーク
2a (特定地域A3に属する)要求元のノード
2b (地域A2に属する)要求元のノード
3 ノード(情報処理装置の一例)
4a (特定地域A3に属する)候補のノード
4b (特定地域A4に属する)候補のノード
30 記憶部
31 送受信部(受信手段の一例、送信手段の一例)
33 判断部(判断手段の一例)
35 選択部(選択手段の一例)

Claims (8)

  1.  複数の地域に跨がるブロックチェーンネットワークを構成する複数のノードのうちの所定のノードとしての情報処理装置であって、
     Inbound隣接ノードの追加要求を行った要求元のノードをInbound隣接ノードとして選択することが可能な選択手段と、
     所定の要求元のノードから、前記Inbound隣接ノードの追加要求を受信する受信手段と、
     を有し、
     前記所定の要求元のノードの属する地域が前記情報処理装置の属する特定地域と異なる場合であって、前記特定地域と異なる地域に属するノードをInbound隣接ノードとして選択することが可能な所定値に達しているときには、前記選択手段は、前記選択することを行わないことを特徴とする情報処理装置。
  2.  請求項1に記載の情報処理装置であって、
     前記受信手段は、前記所定の要求元のノードから、インターネット上で前記所定の要求元のノードを識別するための識別情報を受信し、
     前記識別情報に基づいて、前記所定の要求元のノードの属する地域が前記特定地域と異なるかを判断する判断手段を有し、
     前記判断手段によって異なると判断された場合であって、前記所定値に達しているときには、前記選択手段は、前記選択することを行わないことを特徴とする情報処理装置。
  3.  前記所定値は、前記選択手段がランダムにInbound隣接ノードを選択する場合に、前記特定地域とは異なる地域に属するノードを選択する数の平均値よりも小さいことを特徴とする請求項1又は2に記載の情報処理装置。
  4.  前記選択手段は、所定の候補のノードをOutbound隣接ノードとして選択することが可能であり、
     前記選択手段は、前記所定の候補のノードの属する地域が前記特定地域と異なる場合であって、前記特定地域と異なる地域に属するノードをOutbound隣接ノードとして選択することが可能な所定値に達しているときには、前記選択手段は、前記所定の候補のノードをOutbound隣接ノードとして選択することを行わないことを特徴とする請求項1に記載の情報処理装置。
  5.  Inbound隣接ノードとして選択することが可能な上限値と、Outbound隣接ノードとして選択することが可能な上限値が同じであり、前記特定地域と異なる地域に属するノードをInbound隣接ノードとして選択することが可能な所定値と前記特定地域と異なる地域に属するノードをOutbound隣接ノードとして選択することが可能な所定値が同じであることを特徴とする請求項4に記載の情報処理装置。
  6.  複数の地域に跨がるブロックチェーンネットワークを構成する複数のノードのうちの所定のノードとしての情報処理装置であって、
     Inbound隣接ノードの追加要求を行った要求元のノードをInbound隣接ノードとして選択することが可能な選択手段と、
     所定の要求元のノードから、前記Inbound隣接ノードの追加要求を受信する受信手段と、
     を有し、
     前記所定の要求元のノードの属する地域が前記情報処理装置の属する特定地域と異なる場合であって、前記Inbound隣接ノードとして選択することが可能な上限値において、前記特定地域と異なる地域に属するノードをInbound隣接ノードとして選択することが可能である割合が所定値に達しているときには、前記選択手段は、前記選択することを行わないことを特徴とする情報処理装置。
  7.  複数の地域に跨がるブロックチェーンネットワークを構成する複数のノードのうちの所定のノードとしての情報処理装置が実行するノードの選択方法であって、
     所定の要求元のノードから、前記Inbound隣接ノードの追加要求を受信する受信ステップと、
     前記所定の要求元のノードの属する地域が前記情報処理装置の属する特定地域と異なる場合であって、前記特定地域と異なる地域に属するノードをInbound隣接ノードとして選択することが可能な所定値に達しているときには、前記要求元のノードをInbound隣接ノードとして選択しない選択ステップと、
     を実行することを特徴とするノードの選択方法。
  8.  コンピュータに、請求項7に記載の方法を実行させるプログラム。
PCT/JP2021/028624 2021-08-02 2021-08-02 情報処理装置、ノードの選択方法、及びプログラム WO2023012867A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2023539392A JPWO2023012867A1 (ja) 2021-08-02 2021-08-02
PCT/JP2021/028624 WO2023012867A1 (ja) 2021-08-02 2021-08-02 情報処理装置、ノードの選択方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/028624 WO2023012867A1 (ja) 2021-08-02 2021-08-02 情報処理装置、ノードの選択方法、及びプログラム

Publications (1)

Publication Number Publication Date
WO2023012867A1 true WO2023012867A1 (ja) 2023-02-09

Family

ID=85154356

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/028624 WO2023012867A1 (ja) 2021-08-02 2021-08-02 情報処理装置、ノードの選択方法、及びプログラム

Country Status (2)

Country Link
JP (1) JPWO2023012867A1 (ja)
WO (1) WO2023012867A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020505839A (ja) * 2017-01-31 2020-02-20 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ネットワークのトポロジのネットワークの認識を更新するコンピュータにより実装されるシステム及び方法
JP2020060821A (ja) * 2018-10-05 2020-04-16 株式会社日立製作所 組織管理支援システム、組織管理支援方法、および、組織管理支援装置
JP2020516109A (ja) * 2018-12-28 2020-05-28 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited トランザクションの再送信を使用してブロックチェーンネットワークにおけるトランザクション配信の加速化
US20200403777A1 (en) * 2018-08-31 2020-12-24 Simplecredit Micro-Lending Co., Ltd. Blockchain System, Information Sharing Method and Related Equipment
US20210152357A1 (en) * 2018-12-25 2021-05-20 Advanced New Technologies Co., Ltd. Method and device for identity verification
US20210165891A1 (en) * 2018-10-18 2021-06-03 Verizon Patent And Licensing Inc. Systems and methods for providing multi-node resiliency for blockchain peers

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020505839A (ja) * 2017-01-31 2020-02-20 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ネットワークのトポロジのネットワークの認識を更新するコンピュータにより実装されるシステム及び方法
US20200403777A1 (en) * 2018-08-31 2020-12-24 Simplecredit Micro-Lending Co., Ltd. Blockchain System, Information Sharing Method and Related Equipment
JP2020060821A (ja) * 2018-10-05 2020-04-16 株式会社日立製作所 組織管理支援システム、組織管理支援方法、および、組織管理支援装置
US20210165891A1 (en) * 2018-10-18 2021-06-03 Verizon Patent And Licensing Inc. Systems and methods for providing multi-node resiliency for blockchain peers
US20210152357A1 (en) * 2018-12-25 2021-05-20 Advanced New Technologies Co., Ltd. Method and device for identity verification
JP2020516109A (ja) * 2018-12-28 2020-05-28 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited トランザクションの再送信を使用してブロックチェーンネットワークにおけるトランザクション配信の加速化

Also Published As

Publication number Publication date
JPWO2023012867A1 (ja) 2023-02-09

Similar Documents

Publication Publication Date Title
US8689280B2 (en) DNS-based content routing
US20140068177A1 (en) Enhanced memory savings in routing memory structures of serial attached scsi expanders
US10693834B2 (en) Client subnet efficiency by equivalence class aggregation
CN110572451B (zh) 一种数据处理的方法、装置及存储介质
CN111338806B (zh) 一种业务控制方法及装置
US20190108229A1 (en) Configuration-aware micro-database caches
CN111064804B (zh) 网络访问方法和装置
WO2021104458A1 (zh) 域名查询方法以及相关设备
CN111753223A (zh) 一种访问控制的方法和装置
US10237233B2 (en) Allocating identifiers with minimal fragmentation
JP2016177688A (ja) データ処理装置、データ処理方法およびコンピュータプログラム
US10986065B1 (en) Cell-based distributed service architecture with dynamic cell assignment
CN112214276A (zh) 信息处理设备、系统和方法及非暂态计算机可读记录介质
JPWO2012114889A1 (ja) アプリケーション構築配置システム、アプリケーション構築配置方法、およびプログラム
WO2023012867A1 (ja) 情報処理装置、ノードの選択方法、及びプログラム
EP3249539B1 (en) Method and device for accessing data visitor directory in multi-core system
RU2716748C1 (ru) Способ выравнивания нагрузки и связанное с ним устройство
WO2015108202A1 (en) Information processing system
JP6484166B2 (ja) 名前解決装置、名前解決方法及び名前解決プログラム
WO2022149239A1 (ja) 情報処理装置、隣接ノード選択方法及びプログラム
CN109768897B (zh) 一种服务器部署方法及装置
JP7206991B2 (ja) 情報処理システム、中継装置、及び転送方法
JP2007221522A (ja) ポーリング装置及び端末装置及びポーリング方法及びプログラム
CN109088913B (zh) 请求数据的方法和负载均衡服务器
US8615600B2 (en) Communication between a host operating system and a guest operating system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21952698

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023539392

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE