WO2021039453A1 - 制御方法、サーバ、および、プログラム - Google Patents

制御方法、サーバ、および、プログラム Download PDF

Info

Publication number
WO2021039453A1
WO2021039453A1 PCT/JP2020/030941 JP2020030941W WO2021039453A1 WO 2021039453 A1 WO2021039453 A1 WO 2021039453A1 JP 2020030941 W JP2020030941 W JP 2020030941W WO 2021039453 A1 WO2021039453 A1 WO 2021039453A1
Authority
WO
WIPO (PCT)
Prior art keywords
peer
transaction data
information
ledger
peer information
Prior art date
Application number
PCT/JP2020/030941
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 JP2021542753A priority Critical patent/JPWO2021039453A1/ja
Priority to CN202080057252.1A priority patent/CN114222992A/zh
Publication of WO2021039453A1 publication Critical patent/WO2021039453A1/ja
Priority to US17/590,220 priority patent/US20220159065A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • H04L67/1055Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers involving connection limits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting
    • 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/76Proxy, i.e. using intermediary entity to perform cryptographic operations

Definitions

  • the present invention relates to a control method, a server, and a program.
  • a peer participating in a peer-to-peer (P2P) network makes a peer connection based on peer information acquired from a server or another peer (Non-Patent Document 1).
  • an object of the present invention is to provide a control method or the like for appropriately managing peer information.
  • the control method is a control method executed by one of the plurality of servers in a P2P management system including a plurality of servers having a distributed ledger, and the P2P system is used.
  • This is a control method in which the received transaction data is verified by using the signature included in the transaction data, and when the verification is successful, the transaction data is stored in the distributed ledger.
  • a recording medium such as a system, device, integrated circuit, computer program or computer-readable CD-ROM, and the system, device, integrated circuit, computer program. And may be realized by any combination of recording media.
  • peer information can be appropriately managed.
  • FIG. 1 is a schematic diagram showing the overall configuration of the system according to the first embodiment.
  • FIG. 2 is a block diagram showing a functional configuration of the peer according to the first embodiment.
  • FIG. 3 is a block diagram showing a functional configuration of the proxy server according to the first embodiment.
  • FIG. 4 is a block diagram showing a functional configuration of the ledger server according to the first embodiment.
  • FIG. 5 is an explanatory diagram showing an example of transaction data according to the first embodiment.
  • FIG. 6 is a flow chart showing a process executed by the peer for writing the peer information of the own device according to the first embodiment.
  • FIG. 7 is a flow chart showing a process executed when a peer in the first embodiment acquires peer information of another device and participates in the P2P system.
  • FIG. 1 is a schematic diagram showing the overall configuration of the system according to the first embodiment.
  • FIG. 2 is a block diagram showing a functional configuration of the peer according to the first embodiment.
  • FIG. 3 is a block diagram showing a functional configuration
  • FIG. 8 is a flow chart showing a process executed by the proxy server for writing and acquiring peer information in the first embodiment.
  • FIG. 9 is a flow chart showing a process executed by the ledger server for writing and reading peer information in the first embodiment.
  • FIG. 10 is a sequence diagram showing a process executed by the system when registering and updating peer information according to the first embodiment.
  • FIG. 11 is a sequence diagram showing a process executed by the system when newly connecting to a peer in the first embodiment.
  • FIG. 12 is a schematic diagram showing the overall configuration of the system according to the second embodiment.
  • FIG. 13 is a block diagram showing the function of the peer in the second embodiment.
  • FIG. 14 is a schematic diagram showing the overall configuration of the system according to the third embodiment.
  • FIG. 15 is a block diagram showing the function of the peer in the third embodiment.
  • FIG. 16 is an explanatory diagram showing a data structure of the blockchain.
  • FIG. 17 is an explanatory diagram showing a data structure of transaction data.
  • each peer inquires to a server that manages information of all peers participating in the P2P network (hybrid type), or , There is a method of exchanging information between connected peers (pure type). In either method, peers participating in the P2P network make peer connections based on peer information obtained from the server or other peers (Non-Patent Document 1).
  • the information of the centrally managed peer management server may be improperly rewritten intentionally or accidentally. In that case, there is a problem that the peers participating in the P2P network can be guided to a DoS attack, or the P2P network itself is stopped.
  • a new peer who newly joins the P2P network needs to know the first peer connection destination in some way. At this time, if a new peer connects to a malicious peer, there is a problem that the same DoS attack as described above is induced or the malicious P2P network is joined.
  • an object of the present invention is to provide a control method or the like for a server to appropriately manage peer information used in a P2P system.
  • the control method is executed by one of the plurality of servers in a P2P management system including a plurality of servers having a distributed ledger.
  • the transaction data including the above is received, the received transaction data is verified by using the signature included in the received transaction data, and when the verification is successful, the transaction data is transmitted to the distributed ledger. It is a control method to store in.
  • the server stores and manages transaction data including peer information in a distributed ledger.
  • the peer information stored in the distributed ledger is managed so as not to be tampered with based on the characteristic that tampering is practically difficult. Therefore, the server can appropriately manage the peer information.
  • the transaction data to be received may be transaction data generated including the updated peer information when the peer information possessed by the first peer is updated.
  • the server receives the transaction data including the updated peer information, stores it in the distributed ledger, and manages it. Therefore, the transaction data stored in the distributed ledger is maintained in a state including the latest peer information. Therefore, the server can appropriately manage the latest peer information.
  • the peer information is read from the transaction data stored in the distributed ledger, and the read peer information is transmitted to the requester of the acquisition request. You may.
  • the server transmits the peer information stored in an appropriate state in response to the peer information acquisition request.
  • the server can appropriately manage the peer information by appropriately providing the peer information.
  • a predetermined range indicating that the parameter included in the peer information is a peer suitable for connection may be transmitted.
  • the server since the server transmits peer information indicating a peer suitable for connection, the peer receiving the peer information is suitable for connection by connecting to the peer indicated in the peer information transmitted from the server. You can select and connect to the peers. Therefore, the server can appropriately manage the peer information by providing the peer information of the peer suitable for the connection.
  • a peer suitable for connection may be determined based on the read peer information with reference to the distributed ledger, and the determined peer information of the peer may be transmitted. Good.
  • the server transmits peer information indicating the peer determined by the server as a suitable peer for connection, so that the peer that receives the peer information connects to the peer indicated in the peer information transmitted from the server.
  • the server can appropriately manage the peer information and control the P2P network by determining and providing the peer information of the peer suitable for the connection.
  • the transaction data when the transaction data is stored in the distributed ledger, when the transaction data is shared by the plurality of servers and the validity of the transaction data is agreed by executing a predetermined consensus algorithm.
  • the transaction data may be stored in the distributed ledger.
  • the server stores the transaction data in the distributed ledger after confirming that the validity of the transaction data to be stored in the distributed ledger has been agreed among the plurality of servers. Therefore, the server can manage peer information more appropriately by the distributed ledger of a plurality of servers.
  • the peer information includes identification information of the first peer, an IP (Internet Protocol) address of the first peer, a port number used by the first peer for communication with the other peer, and the first peer is currently
  • the identification information of the connected peer the duration of participation of the first peer in the P2P system, the duration of connection with the peer to which the first peer is currently connected, the public key of the first peer, and It may include at least one of the maximum allowed connections of the first peer.
  • the server uses the peer identification information, the IP address, the port number, the connection destination identification information, the participation duration, the connection duration, the public key, or the maximum allowable number of connections as the peer information.
  • peer information can be managed appropriately and the P2P network can be controlled.
  • the P2P management system is connected to the P2P system via a proxy server, the first peer transmits the peer information and the signature to the proxy server, and the proxy server is the first.
  • Proxy transaction data which is transaction data including the peer information and the signature transmitted by one peer, is generated and transmitted to the one server, and when the transaction data is received, the proxy server transmits the data.
  • the proxy transaction data may be received as the transaction data.
  • the server manages transaction data including peer information transmitted from the peer via the proxy server by the distributed ledger.
  • the peer since the peer only needs to send the peer information and the signature to the proxy server, it is not necessary to implement and execute the processing related to the distributed ledger such as the transaction data generation processing. Therefore, there is an effect of reducing the processing load and the power consumption in the peer.
  • the server can appropriately manage the peer information without implementing the processing related to the distributed ledger in the peer.
  • the P2P management system may be connected to the P2P system.
  • the server manages the transaction data including the peer information transmitted from the peer by the distributed ledger. Therefore, since it is not necessary for another device to intervene between the peer and the server, the server manages the P2P system in a configuration excluding a single point of failure (in other words, a configuration without a single point of failure). Has the effect of being able to. Therefore, the server can appropriately manage peer information in a configuration having relatively high availability.
  • control method is a control method of a proxy server interposed between a P2P management system including a plurality of servers having a distributed ledger and the P2P system, and is the P2P system.
  • the peer information used for connecting the first peer among the plurality of peers constituting the system to the other peer and the signature given by the first peer to the peer information are received and received.
  • Transaction data including the information and the signature is generated and transmitted to a plurality of servers constituting the P2P management system.
  • the proxy server generates transaction data including peer information transmitted from the peer and stores it in the distributed ledger of the server.
  • the peer since the peer only needs to send the peer information and the signature to the proxy server, it is not necessary to implement and execute the processing related to the distributed ledger such as the transaction data generation processing. Therefore, there is an effect of reducing the processing load and the power consumption in the peer.
  • the proxy server can appropriately manage the peer information by the server without implementing the processing related to the distributed ledger in the peer.
  • the server is one of the plurality of servers in a P2P management system including a plurality of servers having a distributed ledger, and is a ledger control unit and the distributed.
  • the ledger control unit includes a storage unit that stores a ledger, and the ledger control unit uses peer information used for connecting the first peer among a plurality of peers constituting the P2P system and other peers, and the peer information.
  • the transaction data including the signature given by the first peer is received, and the received transaction data is verified by using the signature included in the received transaction data, and the verification is successful. If so, the transaction data is stored in the distributed ledger.
  • the server has the same effect as the above control method.
  • the program according to one aspect of the present invention is a program for causing a computer to execute the above control method.
  • the program has the same effect as the above control method.
  • a recording medium such as a system, device, integrated circuit, computer program or computer-readable CD-ROM, and the system, device, integrated circuit, computer program. Alternatively, it may be realized by any combination of recording media.
  • FIG. 1 is a diagram showing an overall configuration of the system 1 according to the present embodiment.
  • the system 1 includes peers 100A, 100B and 100C, a proxy server 200, and a ledger server 300A, 300B and 300C, and these devices are connected via a network N.
  • Peer 100A, 100B and peer 100C are computers constituting the P2P system 10.
  • the number of peers constituting the P2P system 10 is not limited to 3, and may be 1 or more.
  • the ledger servers 300A, 300B and 300C are server devices (also simply referred to as servers) constituting the P2P management system 30.
  • the number of peers constituting the P2P management system 30 is not limited to 3, and may be 1 or more.
  • Peer 100A is one of the P2P peers constituting the P2P system 10.
  • the peer 100A is communicably connected to other peers 100B and 100C constituting the P2P system 10 via the network N.
  • the peer 100A exhibits a part of a predetermined function provided by the P2P system 10 by transmitting and receiving information by communication between peers.
  • a predetermined function is, for example, a function of distributing and holding a large number of electronic files by a plurality of peers and providing them to a requester, or a function of distributing a large-scale calculation process by a plurality of peers and requesting a result.
  • the peer 100A holds peer information (described later) used for connecting the peers constituting the P2P system 10, and registers the peer information in the P2P management system 30 via the proxy server 200. Further, the peer 100A acquires the peer information registered in the P2P management system 30 via the proxy server 200, and uses the acquired peer information to connect to the unconnected peer.
  • Peer 100B and 100C are peers having the same function as peer 100A, respectively, and operate independently of peer 100A. Then, by operating the peers 100A, 100B and 100C, the P2P system 10 exerts a predetermined function.
  • the proxy server 200 is a server that registers peer information in the distributed ledger held by the P2P management system 30 on behalf of the peer 100A and the like, and also reads the peer information from the distributed ledger.
  • the ledger server 300A is one of the P2P peers constituting the P2P management system 30.
  • the ledger server 300A is a server that manages peer information of peers in the P2P system 10 by a distributed ledger.
  • the ledger server 300A is communicably connected to other ledger servers 300B and 300C constituting the P2P management system 30 via the network N.
  • the ledger server 300A is connected to the peer 100A or the like via the proxy server 200, and stores transaction data including peer information received from the peer 100A or the like in the distributed ledger, and transaction data stored in the distributed ledger.
  • the peer information is read from and provided to the peer 100A and the like via the proxy server 200.
  • the ledger servers 300B and 300C are ledger servers having the same functions as the ledger server 300A, respectively, and operate independently of the ledger server 300A. Then, by operating the ledger servers 300A, 300B and 300C, the P2P management system 30 exerts a function for managing the P2P system 10.
  • FIG. 2 is a block diagram showing a functional configuration of the peer 100A according to the present embodiment.
  • the peers 100B and 100C also have the same configuration as the peer 100A.
  • the peer 100A includes a write request unit 101, an acquisition request unit 102, a determination unit 103, a communication unit 104, and an execution unit 105.
  • Each functional unit included in the peer 100A can be realized by a processor (for example, a CPU (Central Processing Unit)) included in the peer 100A executing a predetermined program using a memory.
  • a processor for example, a CPU (Central Processing Unit)
  • the write request unit 101 is a functional unit that requests to write the peer information of the own device, that is, the peer 100A, to the distributed ledger.
  • the write request unit 101 creates peer information which is information for P2P connection between its own device, that is, peer 100A, and other peers included in the P2P system 10. Further, the write request unit 101 requests writing to the distributed ledger by generating write request data of the created peer information, adding a signature, and transmitting the data to the proxy server 200. Specific examples of peer information will be described in detail later.
  • the acquisition request unit 102 is a functional unit that requests to acquire peer information from the distributed ledger.
  • the acquisition request unit 102 generates and transmits acquisition request data (also simply referred to as an acquisition request) for acquiring peer information recorded in the distributed ledger to the proxy server 200.
  • acquisition request unit 102 acquires the peer information transmitted by the ledger server 300A or the like in response to the acquisition request data via the proxy server 200.
  • the acquisition request unit 102 performs a detection process for detecting falsification of the peer information acquired in this way. Falsification is detected by using the signature given to the written peer information.
  • the determination unit 103 is a functional unit that determines the peer to which the own device makes a P2P connection. The peer determination may be made using the peer information acquired by the acquisition requesting unit 102.
  • the communication unit 104 is a communication interface device connected to the network N.
  • the communication unit 104 communicates with the proxy server 200 and the other peers 100B and 100C via the network N.
  • the execution unit 105 is a functional unit that exerts a part of a predetermined function provided by the P2P system 10 by executing a predetermined program.
  • FIG. 3 is a block diagram showing a functional configuration of the proxy server 200 according to the present embodiment.
  • the proxy server 200 includes a request proxy unit 201, a ledger processing unit 202, and a communication unit 203.
  • Each functional unit included in the proxy server 200 can be realized by the processor (for example, CPU) included in the proxy server 200 executing a predetermined program using the memory.
  • the request agency unit 201 is a functional unit that writes or reads data to a distributed ledger such as a ledger server 300A on behalf of a peer 100A or the like. Specifically, when the request agency unit 201 receives a request from the peer 100A or the like, the request agency unit 202 controls the ledger processing unit 202 based on the received request. For example, when the request proxy unit 201 receives the peer information write request data, the request proxy unit 201 instructs the ledger processing unit 202 to generate transaction data. When the acquisition request data of the peer information is received, the ledger processing unit 202 is instructed to read the peer information by referring to the distributed ledger.
  • the ledger processing unit 202 is a functional unit that writes or reads data to the distributed ledger of the ledger server 300A or the like. Specifically, the ledger processing unit 202 generates transaction data including the write request data received from the peer 100A and transmits it to the ledger server 300A or the like under the control of the request agency unit 201. Further, under the control of the request proxy unit 201, the ledger processing unit 202 generates read request data for reading peer information from the distributed ledger based on the acquisition request data received from the peer 100A, and transmits the read request data to the ledger server 300A or the like. .. When a response to the read request data is received from the ledger server 300A or the like, the response is transmitted to the peer 100A.
  • the ledger processing unit 202 may take part in processing such as execution of a consensus algorithm or mining when transmitting transaction data to the ledger server 300A or the like.
  • the communication unit 203 is a communication interface device connected to the network N.
  • the communication unit 203 communicates with the peer 100A and the like and the ledger server 300A and the like via the network N.
  • FIG. 4 is a block diagram showing a functional configuration of the ledger server 300A according to the present embodiment.
  • the ledger servers 300B and 300C also have the same configuration as the ledger server 300A.
  • the ledger server 300A includes a ledger control unit 301, a communication unit 302, and a storage unit 303.
  • Each functional unit included in the ledger server 300A can be realized by the processor (for example, CPU) included in the ledger server 300A executing a predetermined program using the memory.
  • the ledger control unit 301 is a functional unit that controls the distributed ledger 305. Specifically, the ledger control unit 301 writes transaction data to the distributed ledger 305 stored in the storage unit 303, or reads out transaction data stored in the distributed ledger 305.
  • the ledger control unit 301 includes peer information used for connecting the first peer (for example, peer 100A) and another peer (for example, peer 100B) among the plurality of peers constituting the P2P system 10. Receives transaction data including a signature given by the first peer to the peer information. The ledger control unit 301 verifies the received transaction data by using the signature included in the received transaction data. The ledger control unit 301 stores the transaction data in the distributed ledger 305 when the verification is successful. The transaction data is transmitted by the proxy server 200.
  • transaction data received by the ledger control unit 301 may be transaction data generated including the updated peer information when the peer information held by the first peer is updated.
  • the ledger control unit 301 when the ledger control unit 301 receives the read request data of the peer information (also simply referred to as a read request), the ledger control unit 301 reads the peer information from the transaction data stored in the distributed ledger 305 and reads the read peer information as described above. Read request Send to the requester of data.
  • the ledger control unit 301 When transmitting the read peer information, the ledger control unit 301 indicates that among the peer information read by referring to the distributed ledger 305, the parameter included in the peer information is a peer suitable for connection. One or more peer information included in a predetermined range may be transmitted. Further, when transmitting the read peer information, the ledger control unit 301 determines a peer suitable for connection based on the read peer information with reference to the distributed ledger 305, and the peer information of the determined peer. May be sent.
  • the format of the distributed ledger 305 may be any form, for example, a blockchain, and this case will be described as an example, but another type of distributed ledger (for example, IOTA or hash graph) shall be adopted. Is also possible.
  • the distributed ledger can correct the transaction data by executing a consensus algorithm (for example, PBFT (Practical Byzantine stake Resource), PoW (Proof of Work) or PoS (Proof of Stake)) when storing new transaction data. It may or may not be gender-agreeing.
  • PBFT Practice Byzantine stake Resource
  • PoW Proof of Work
  • PoS Proof of Stake
  • Hyperledger fabric is an example of a distributed ledger technology that does not execute a consensus algorithm.
  • the communication unit 302 is a communication interface device connected to the network N.
  • the communication unit 302 communicates with the proxy server 200 and the other ledger servers 300B and 300C via the network N.
  • the storage unit 303 is a storage device that stores the distributed ledger 305. Transaction data is written to the storage unit 303 by the ledger control unit 301, and transaction data is read out by the ledger control unit 301.
  • FIG. 5 is an explanatory diagram showing an example of transaction data 50 in the present embodiment.
  • the transaction data 50 includes peer information 51 and signature 52.
  • the peer information 51 is information regarding a P2P connection between one peer (for example, peer 100A) included in the P2P system 10 and another peer (for example, 100B or 100C).
  • the peer information 51 includes, for example, peer identification information, peer IP (Internet Protocol) address, port number used by the peer for communication with other peers, peer identification information to which the peer is currently connected, and the peer's P2P system. Includes at least one of the ten participation duration, the connection duration with the peer to which the peer is currently connected, the peer's public key, and the maximum allowed number of connections for the peer.
  • peer IP Internet Protocol
  • the signature 52 is an electronic signature given to the peer information 51 by the peer that generated the peer information 51.
  • the transaction data 50 is generated by the proxy server 200.
  • the proxy server 200 generates transaction data 50 including the peer information and signature of the one peer received from one peer and transmits the transaction data 50 to the ledger server 300A or the like so that the transaction data 50 is stored in the ledger server 300A.
  • the stored transaction data 50 is stored and managed so as not to be tampered with based on the characteristic that the information recorded in the distributed ledger 305 is difficult to tamper with.
  • FIG. 6 is a flow chart showing a process executed by the peer 100A for writing the peer information of the own device in the present embodiment. The process shown in FIG. 6 is started, for example, when peer 100A joins the P2P system 10.
  • step S101 the write request unit 101 acquires the peer information of the peer 100A, which is its own device.
  • step S102 the write request unit 101 generates and assigns a signature to the peer information acquired in step S101 using the private key of its own device.
  • step S103 the write request unit 101 generates write request data with the signature generated in step S102 added to the peer information acquired in step S101, and transmits the write request data to the proxy server 200.
  • the peer information and signature included in the transmitted write request data are included in the transaction data by the proxy server 200, and are managed so as not to be tampered with by the ledger server 300A or the like.
  • step S104 the write request unit 101 determines whether or not the peer information of the own device has been updated since the last acquisition of the peer information of the own device until the present time. If it is determined that the peer information of the own device has been updated (Yes in step S104), the process proceeds to step S105, and if not (No in step S104), the process proceeds to step S104. That is, the write request unit 101 takes a standby state in step S104 until the peer information is updated.
  • the peer information is updated, for example, when the IP address of the peer 100A or the port number used by the peer 100A for communication with other peers is updated.
  • step S105 the write request unit 101 acquires the peer information of the peer 100A, which is its own device.
  • step S106 the write request unit 101 generates a signature for the peer information acquired in step S105.
  • step S107 the write request unit 101 generates write request data with the signature generated in step S106 added to the peer information acquired in step S105, and transmits the write request data to the proxy server 200.
  • the peer information and signature included in the transmitted write request data are included in the transaction data by the proxy server 200 and managed so as not to be tampered with by the ledger server 300A or the like, as in the case of step S103.
  • the process proceeds to step S104.
  • the peer 100A stores the peer information of its own device in the ledger server 300A or the like when participating in the P2P system 10, and updates each time the peer information of its own device is updated.
  • the peer information of the own device is stored in the ledger server 300A or the like.
  • FIG. 7 is a flow chart showing a process executed when a peer in the present embodiment acquires peer information of another device and participates in the P2P system.
  • the process of acquiring the peer information of the peer 100A, which is another device, and connecting to the peer 100A to participate in the P2P system 10 will be described as an example.
  • step S121 the acquisition request unit 102 generates acquisition request data and transmits it to the proxy server 200.
  • the acquisition request data is a request for acquiring peer information of one or more peers to which the peer 100B can connect among the peers participating in the P2P system 10.
  • step S122 the acquisition requesting unit 102 acquires peer information of another device.
  • the acquisition request data transmitted in step S121 is received by the ledger server 300A via the proxy server 200, and the ledger server 300A that has received the acquisition request data reads from the distributed ledger 305 and transmits one or more.
  • Peer information of the peer It is assumed that one or more peers include peer 100A.
  • step S123 the determination unit 103 determines the peer (also referred to as the connection destination peer) to which the peer 100B connects based on the peer information of one or more peers acquired by the acquisition request unit 102 in step S122.
  • the peer 100A is determined as the connection destination peer.
  • the determination unit 103 is a peer whose physical distance to its own device is closer than a predetermined value among the one or more peers, or a physical distance to its own device, based on the peer information of one or more peers.
  • a peer whose is out of the predetermined range may be determined as the peer to be connected.
  • the determination unit 103 determines, based on the peer information of one or more peers, the number of connected peers among the one or more peers is larger than a predetermined number, or the number of connected peers.
  • a peer within a predetermined range may be determined as a peer to be connected.
  • the determination unit 103 participates in the P2P system 10 or the peer having a duration of participation in the P2P system 10 longer than a predetermined value among the one or more peers based on the peer information of the one or more peers.
  • a peer whose duration is within a predetermined range may be determined as the connection destination peer.
  • step S124 the determination unit 103 connects to the connection destination peer by executing the connection process for connecting to the connection destination peer determined in step S123.
  • step S125 the execution unit 105 exerts a part of a predetermined function provided by the P2P system 10 by executing a predetermined program.
  • the peer 100B can connect to the peer 100A and participate in the P2P system 10.
  • FIG. 8 is a flow chart showing a process executed by the proxy server 200 for writing and acquiring peer information in the present embodiment.
  • step S201 the request proxy unit 201 determines whether or not the request data has been received from the peer 100A. If it is determined that the request data has been received from the peer 100A (Yes in step S201), the process proceeds to step S202, and if not (No in step S201), step S201 is executed again. That is, the request proxy unit 201 takes a standby state in step S201 until the request data is received.
  • step S202 the request proxy unit 201 determines whether the type of request data received in step S201 is write request data or acquisition request data. When it is determined that the type of request data is write request data (“write” in step S202), the process proceeds to step S203, and when it is determined that the type of request data is acquisition request data (in step S202). “Acquisition”) proceeds to step S211.
  • step S203 the ledger processing unit 202 generates transaction data including peer information and a signature included in the write request data received in step S201.
  • step S204 the ledger processing unit 202 transmits the transaction data generated in step S203 to the ledger server 300A or the like.
  • the process of step S204 proceeds to step S201.
  • step S211 the ledger processing unit 202 generates read request data for reading peer information from the distributed ledger.
  • step S212 the ledger processing unit 202 transmits the read request data generated in step S211 to the ledger server 300A or the like.
  • the process of step S212 proceeds to step S201.
  • the proxy server 200 substitutes the peer 100A for writing the peer information or acquiring the peer information, respectively, according to the write request data or the acquisition request data received from the peer 100A. And execute.
  • FIG. 9 is a flow chart showing a process executed by the ledger server 300A for writing and reading peer information in the present embodiment.
  • step S301 the ledger control unit 301 determines whether transaction data has been received or read request data has been received from the proxy server 200. If it is determined that the transaction data has been received (“transaction data” in step S301), the process proceeds to step S302, and if the read request data is received (“read request data” in step S301), the process proceeds to step S311. .. The ledger control unit 301 takes a standby state in step S301 until it receives transaction data or read request data.
  • step S302 the ledger control unit 301 verifies the transaction data received in step S301.
  • step S303 the ledger control unit 301 determines whether or not the verification in step S302 was successful. If it is determined that the verification is successful (Yes in step S303), the process proceeds to step S304, and if not (No in step S303), the process proceeds to step S301.
  • step S304 the ledger control unit 301 stores the transaction data received in step S301 in the distributed ledger stored in the storage unit 303.
  • the validity of transaction data may be agreed by executing a consensus algorithm.
  • step S311 the ledger control unit 301 refers to the distributed ledger stored in the storage unit 303, and reads out peer information from the transaction data stored in the distributed ledger.
  • the ledger control unit 301 transmits the peer information read in step S312 to the proxy server 200.
  • the peer information among the peer information read by referring to the distributed ledger, only the peer information that satisfies a predetermined condition indicating that the peer is suitable for connection may be transmitted.
  • the ledger control unit 301 is a peer whose physical distance to the requesting peer 100A is closer than a predetermined value, or a physical distance to the peer 100A. Only peer information indicating peers whose target distance is out of the predetermined range may be provided.
  • the ledger control unit 301 indicates information indicating that among the above-mentioned one or more peers, the number of connected peers is larger than a predetermined number, or the number of connected peers is within a predetermined range. Only may be provided. Further, for example, the ledger control unit 301 selects, among the above-mentioned one or more peers, a peer whose participation duration in the P2P system 10 is longer than a predetermined value, or a peer whose participation duration in the P2P system 10 is within a predetermined range. Only the indicated peer information may be provided.
  • step S312 When the process of step S312 is completed, the process proceeds to step S301.
  • the ledger server 300A can appropriately store and manage peer information in the distributed ledger and read it in response to a read request.
  • FIG. 10 is a sequence diagram showing a process executed by the system 1 when registering and updating peer information according to the present embodiment. Specifically, FIG. 10 shows a process executed by the system 1, that is, the peer 100A, the proxy server 200, the ledger server 300A, and the like when registering and updating peer information. Note that the same processing as the processing in the flow diagram already described may be given the same reference numerals as the reference numerals in the flow diagram already described, and detailed description may be omitted.
  • the peer 100A generates write request data in which the peer information of the own device, that is, the peer 100A is signed, and transmits the write request data to the proxy server 200 (steps S101 to S103).
  • the proxy server 200 When the proxy server 200 receives the write request data from the peer 100A, the proxy server 200 generates a transaction including the peer information and the signature included in the received write request data and transmits the transaction to the ledger server 300A or the like (step S203, step S203). S204).
  • the destination for transmitting the transaction data may be any ledger server such as the ledger server 300A, and here, the case where the transaction data is transmitted to the ledger server 300A will be described as an example.
  • the ledger server 300A receives the transaction data and stores the received transaction in the distributed ledger 305.
  • the ledger server 300A executes a consensus algorithm with another ledger server when storing in the distributed ledger 305.
  • the block containing the signed peer information is stored in the distributed ledger 305.
  • the peer information stored in the distributed ledger 305 is managed in a state where it is practically difficult to falsify and can be safely referred to.
  • the peer 100A determines whether or not the peer information of its own device, that is, the peer 100A has been updated, and when it is updated, generates write request data similar to the above and transmits it to the proxy server 200 (steps S104 to S104 to S107).
  • the proxy server 200 generates a transaction including the peer information and the signature included in the received write request data and transmits the transaction to the ledger server 300A or the like (steps S203 and S204).
  • the ledger server 300A stores the received transaction in the distributed ledger 305 in the same manner as described above.
  • step S104 After that, each time the peer 100A determines that the peer information has been updated, the processes after step S104 are repeatedly executed.
  • FIG. 11 is a sequence diagram showing a process executed by the system 1 when newly connecting to a peer in the present embodiment. Specifically, FIG. 11 shows the processes executed by the peer 100A and the peer 100B, the proxy server 200, the ledger server 300A, and the like.
  • the peer 100B transmits the acquisition request data of the peer information to the proxy server 200 (step S121).
  • the proxy server 200 receives the acquisition request data and transmits the peer information read request data to the ledger server 300A or the like.
  • the destination of the read request data may be any ledger server such as the ledger server 300A, and here, a case where the data is transmitted to the ledger server 300A will be described as an example.
  • the ledger server 300A receives the read request data, refers to the transaction data stored in the distributed ledger 305, reads the peer information included in the transaction data, and transmits the read peer information to the proxy server 200. (Steps S312 and S313). After the proxy server 200 acquires the peer information, the proxy server 200 transmits the acquired peer information to the peer 100B.
  • the peer 100B receives the peer information transmitted by the proxy server 200, and determines the peer to connect to based on the peer indicated in the received peer information.
  • the peer 100B determines the connection destination to the peer 100A will be described as an example.
  • the peer 100B executes a P2P connection with the peer 100A which is the connection destination (steps S122 to S124).
  • the peer 100B executes a predetermined program and exerts the function provided by the P2P system 10 together with the peer 100A (step S125).
  • the peer 100B executes the process of determining the peer to connect to, but the ledger server 300A may perform the process. In that case, the ledger server 300A may execute the process by a smart contract. In this way, the process in which the ledger server 300A reads the peer information from the distributed ledger 305 and determines the peer to be connected based on the read peer information can be safely performed without involving another person or device. There is an advantage to be executed.
  • processing may be performed by the proxy server 200.
  • the processing load of the peer 100B can be reduced and the power consumption can be reduced.
  • the peer 100A and the like can determine the peer to be connected to P2P based on the peer information stored in the distributed ledger 305. Since the peer information is stored in the distributed ledger 305, it is difficult to falsify it. Therefore, according to the system 1 of the present embodiment, it is possible to safely manage and provide the peer information necessary for the P2P connection by preventing an attack due to an unauthorized operation of the peer information.
  • the system 1A of the present embodiment includes a P2P system and a P2P management system as in the system 1 of the first embodiment, but is different in that it does not include a proxy server.
  • the P2P management system is directly connected to the P2P system (in other words, without going through a proxy server).
  • FIG. 12 is a schematic view showing the overall configuration of the system 1A according to the present embodiment.
  • the system 1A includes a P2P system 10A and a P2P management system 30.
  • the P2P system 10A comprises peers 100E, 100F and 100G.
  • the number of peers constituting the P2P system 10A is not limited to 3, and may be 1 or more.
  • the peer 100E is one of the P2P peers constituting the P2P system 10A, similarly to the peer 100A of the first embodiment.
  • the peer 100E further has a function of registering peer information in the distributed ledger held by the P2P management system 30 and reading the peer information from the distributed ledger. That is, the peer 100E has a function of directly writing the peer information to the distributed ledger or reading the peer information from the distributed ledger without going through the proxy server.
  • the P2P management system 30 is the same as the P2P management system 30 in the first embodiment.
  • FIG. 13 is a block diagram showing the function of the peer 100E in the present embodiment.
  • the peers 100F and 100G also have the same configuration as the peer 100E.
  • the peer 100E includes a write request unit 101A, an acquisition request unit 102A, a determination unit 103, a communication unit 104, and an execution unit 105.
  • Each functional unit included in the peer 100E can be realized by the processor (for example, CPU) included in the peer 100E executing a predetermined program using the memory.
  • the write request unit 101A is a functional unit that requests to write the peer information of the own device, that is, the peer 100E, to the distributed ledger 305.
  • the write request unit 101A creates peer information which is information for P2P connection between its own device, that is, peer 100E, and other peers included in the P2P system 10A.
  • the write request unit 101A generates transaction data by adding a signature to the created peer information and transmits it to the ledger server 300A or the like.
  • the transmitted transaction data is stored in the distributed ledger 305 such as the ledger server 300A.
  • the acquisition request unit 102A is a functional unit that requests to acquire peer information from the distributed ledger 305.
  • the acquisition request unit 102A generates and transmits the acquisition request data for acquiring the peer information recorded in the distributed ledger 305 to the ledger server 300A. Then, the acquisition request unit 102A acquires the peer information transmitted by the ledger server 300A in response to the acquisition request data.
  • the determination unit 103, the communication unit 104, and the execution unit 105 are the same as those in the first embodiment.
  • the peer 100E and the like can directly write the peer information to the distributed ledger or read the peer information from the distributed ledger without going through the proxy server. Since it is not necessary for another device to intervene between the peer 100E or the like and the ledger server, the ledger server manages the P2P system in a configuration excluding a single point of failure (in other words, a configuration without a single point of failure). There is an effect that can be done. Therefore, the server can appropriately manage peer information in a configuration having relatively high availability.
  • the system 1B of the present embodiment includes a P2P system and a P2P management system in the system 1A of the second embodiment.
  • the P2P system also has a function as a P2P management system that manages peer information used in the P2P management system as another P2P system.
  • FIG. 14 is a schematic view showing the overall configuration of the system 1B according to the present embodiment.
  • system 1B includes systems 40A and 40B.
  • the system 40A is a P2P system A, and is also a P2P management system B that manages peer information used in the P2P system D (that is, system 40B).
  • the system 40B is a P2P system D, and is also a P2P management system C that manages peer information used in the P2P system A (that is, system 40A).
  • the system 40A and the system 40B are P2P systems, respectively, and at the same time, they are also P2P management systems that manage mutual P2P management information.
  • System 40A includes peers 400A, 400B and 400C. The number of peers constituting the system 40A is not limited to 3, and may be 1 or more.
  • System 40B includes peers 400E, 400F and 400G. The number of peers constituting the system 40B is not limited to 3, and may be 1 or more.
  • the peer 400A is one of the P2P peers constituting the system 40A, which is a P2P system, like the peer 100E of the second embodiment.
  • the peer 400A further has a function of registering peer information in the distributed ledger held by the system 40B and reading the peer information from the distributed ledger.
  • the peers 400B and 400C are peers having the same functions as the peer 400A, respectively, and operate independently of the peer 400A.
  • the peer 400E is one of the P2P peers constituting the system 40B, which is a P2P system, like the peer 100E of the second embodiment.
  • the peer 400E further has a function of registering peer information in the distributed ledger held by the system 40A and reading the peer information from the distributed ledger.
  • the peers 400F and 400G are peers having the same functions as the peer 400E, respectively, and operate independently of the peer 400E.
  • FIG. 15 is a block diagram showing the function of the peer 400A in the present embodiment.
  • the peers 400B and 400C, and the peers 400E, 400F and 400G also have the same configuration as the peer 400A.
  • the peer 400A includes a write request unit 101A, an acquisition request unit 102A, a determination unit 103, a communication unit 104, an execution unit 105, a ledger control unit 107, and a storage unit 108.
  • Each functional unit included in the peer 400A can be realized by the processor (for example, CPU) included in the peer 400A executing a predetermined program using the memory.
  • the write request unit 101A, the acquisition request unit 102A, the determination unit 103, the communication unit 104, and the execution unit 105 are the same as those in the peer 100E in the second embodiment.
  • ledger control unit 107 and the storage unit 108 are the same as the ledger control unit 301 and the storage unit 303 included in the ledger server 300A in the first embodiment, respectively.
  • the storage unit 108 stores the distributed ledger 109 similar to the distributed ledger 305 in the first embodiment.
  • the peer 400A functions as one of the peers constituting the P2P system A and also as one of the peers constituting the P2P management system B. The same applies to the peers 400B and 400C.
  • peers 400E, 400F and 400G have the same configuration as the peer 400A, and thus function as one of the peers constituting the P2P system D and also as one of the peers constituting the P2P management system C. ..
  • the system 40A and the system 40B each function as a P2P system and also function as a P2P management system that manages mutual P2P management information.
  • the system 40A equipped with the peer 400A and the like and the system 40B provided with the peer 400E and the like appropriately manage the peer information and function as separate P2P systems while assisting the reliability of the peer information. be able to.
  • FIG. 16 is an explanatory diagram showing the data structure of the blockchain.
  • a blockchain is a block that is a recording unit connected in a chain.
  • Each block has a plurality of transaction data and a hash value of the immediately preceding block.
  • the block B2 contains the hash value of the previous block B1.
  • the hash value calculated from the plurality of transaction data included in the block B2 and the hash value of the block B1 is included in the block B3 as the hash value of the block B2.
  • FIG. 17 is an explanatory diagram showing a data structure of transaction data.
  • the transaction data shown in FIG. 17 includes a transaction body P1 and a digital signature P2.
  • the transaction body P1 is a data body included in the transaction data.
  • the electronic signature P2 is generated by signing the hash value of the transaction body P1 with the signature key of the creator of the transaction data, and more specifically, encrypting it with the private key of the creator. is there.
  • the peer 100A and the like and the proxy server 200 have been described as separate devices, but the peer 100A and the like and the proxy server 200 may be the same device.
  • An example of a configuration in which the same device is used as described above is the configuration of the second embodiment.
  • the peer 100A and the like and the ledger server 300A and the like are described separately, but the peer 100A itself may be the ledger server 300A. Further, a distributed ledger different from the distributed ledger used by the ledger server 300A may be used.
  • the systems may also store each other's peer information. An example of a configuration in which the systems store each other's peer information with each other is the configuration of the third embodiment.
  • the proxy server 200 is described as a single proxy server 200, but it may be composed of a plurality of devices.
  • the peer information reading process of the ledger server is a simple reading process from the storage device, but an arbitrary reading process may be executed by using a smart contract or the like.
  • the determination unit 103 included in the peer 100A may be provided in the ledger server 300A, and in that case, the acquired peer information may be used as it is for determining the connection destination peer of the P2P peer. In this case, since the determination unit 103 is also stored in the distributed ledger, there is an advantage that more secure P2P peer information reference becomes possible.
  • the acquisition range of other peer information at the time of peer connection may be all peer information participating in the P2P system, or may be an arbitrary range. In the acquisition in an arbitrary range, a condition may be provided such that the acquisition is performed in order from the one having the longest connection to the P2P system. Further, when acquiring the latest state of known peer information such as when reconnecting, the peer whose peer information is to be acquired may be specified.
  • Each device in the above embodiment is specifically a computer system composed of a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is recorded in the RAM or the hard disk unit.
  • the microprocessor operates according to the computer program, each device achieves its function.
  • a computer program is configured by combining a plurality of instruction codes indicating commands to a computer in order to achieve a predetermined function.
  • Each device may be composed of a part or all of the constituent elements of one system LSI (Large Scale Integration: large-scale integrated circuit).
  • a system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on a single chip, and specifically, is a computer system including a microprocessor, ROM, RAM, and the like. .. A computer program is recorded in the RAM. When the microprocessor operates according to the computer program, the system LSI achieves its function.
  • each part of the component components constituting each of the above devices may be individually integrated into one chip, or may be integrated into one chip so as to include a part or all of them.
  • system LSI Although it is referred to as a system LSI here, it may be referred to as an IC, an LSI, a super LSI, or an ultra LSI due to the difference in the degree of integration. Further, the method of making an integrated circuit is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. An FPGA (Field Programmable Gate Array) that can be programmed after the LSI is manufactured, or a reconfigurable processor that can reconfigure the connection and settings of the circuit cells inside the LSI may be used.
  • FPGA Field Programmable Gate Array
  • each of the above devices may be composed of an IC card or a single module that can be attached to and detached from each device.
  • the IC card or the module is a computer system composed of a microprocessor, a ROM, a RAM, and the like.
  • the IC card or the module may include the above-mentioned super multifunctional LSI.
  • the microprocessor operates according to a computer program, the IC card or the module achieves its function. This IC card or this module may have tamper resistance.
  • the present invention may be the method shown above. Further, it may be a computer program that realizes these methods by a computer, or it may be a digital signal composed of the computer program.
  • the present invention also relates to a computer-readable recording medium such as the computer program or the digital signal, such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, or a BD (Blu-ray). It may be recorded on a registered trademark) Disc), a semiconductor memory, or the like. Further, it may be the digital signal recorded on these recording media.
  • a computer-readable recording medium such as the computer program or the digital signal, such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, or a BD (Blu-ray). It may be recorded on a registered trademark) Disc), a semiconductor memory, or the like. Further, it may be the digital signal recorded on these recording media.
  • the present invention may transmit the computer program or the digital signal via a telecommunication line, a wireless or wired communication line, a network typified by the Internet, data broadcasting, or the like.
  • the present invention is a computer system including a microprocessor and a memory, and the memory may record the computer program, and the microprocessor may operate according to the computer program.
  • connection destination peer If the connection destination peer cannot communicate, you may write in the distributed ledger that communication is not possible. At that time, writing may be performed in the distributed ledger only when it is determined that communication is impossible for a predetermined number or more of peers.
  • each component may be configured by dedicated hardware or may be realized by executing a software program suitable for each component.
  • Each component may be realized by a program execution unit such as a CPU or a processor reading and executing a software program recorded on a recording medium such as a hard disk or a semiconductor memory.
  • the software that realizes the server or the like of each of the above embodiments is the following program.
  • this program is a control method executed by one of the plurality of servers in a P2P management system including a plurality of servers having a distributed ledger in the computer, and constitutes a P2P system.
  • Received and received transaction data including peer information used for connecting the first peer among a plurality of peers to another peer and a signature given by the first peer to the peer information. It is a program that verifies the received transaction data using the signature included in the transaction data, and executes a control method of storing the transaction data in the distributed ledger when the verification is successful.
  • this program is a control method of a proxy server interposed between a P2P management system having a plurality of servers having a distributed ledger in a computer and the P2P system, and is a plurality of control methods constituting the P2P system.
  • the peer information used for connecting the first peer and the other peers of the peers and the signature given by the first peer to the peer information are received, and the received peer information and the signature are received.
  • the system for managing and sharing the peer information (P2P connection information) of the P2P system has a mechanism for safely managing and sharing the peer information of the P2P system, and is useful as a peer management system for any P2P system. ..

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

P2Pシステムを構成する複数のピアのうちの第一ピアと他のピアとの接続に用いられるピア情報と、ピア情報に対して第一ピアにより付与された署名とを含むトランザクションデータを受信し(ステップS301)、受信したトランザクションデータに含まれている署名を用いて、受信したトランザクションデータの検証をし(ステップS302)、検証が成功した場合に、トランザクションデータを分散台帳に格納する(ステップS304)。

Description

制御方法、サーバ、および、プログラム
 本発明は、制御方法、サーバ、および、プログラムに関する。
 ピアツーピア(P2P)ネットワークに参加するピアは、サーバまたは他のピアから取得したピア情報をもとに、ピア接続を行う(非特許文献1)。
Bitcoin Developer Guide、[令和2年7月1日検索]、インターネットURL:https://btcinformation.org/en/developer-guide#block-prototypes
 しかしながら、従来、ピア情報の改ざん耐性または信頼性に関する問題がある。
 そこで、本発明は、ピア情報を適切に管理するための制御方法などを提供することを目的とする。
 本発明の一態様に係る制御方法は、分散台帳を保有している複数のサーバを備えるP2P管理システムにおいて、当該複数のサーバのうちの一のサーバが実行する制御方法であって、P2Pシステムを構成する複数のピアのうちの第一ピアと他のピアとの接続に用いられるピア情報と、前記ピア情報に対して前記第一ピアにより付与された署名とを含むトランザクションデータを受信し、受信した前記トランザクションデータに含まれている前記署名を用いて、受信した前記トランザクションデータの検証をし、前記検証が成功した場合に、前記トランザクションデータを前記分散台帳に格納する制御方法である。
 なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
 本発明の制御方法によれば、ピア情報を適切に管理することができる。
図1は、実施の形態1におけるシステムの全体の構成を示す模式図である。 図2は、実施の形態1におけるピアの機能構成を示すブロック図である。 図3は、実施の形態1における代理サーバの機能構成を示すブロック図である。 図4は、実施の形態1における台帳サーバの機能構成を示すブロック図である。 図5は、実施の形態1におけるトランザクションデータの一例を示す説明図である。 図6は、実施の形態1における自装置のピア情報の書き込みのためにピアが実行する処理を示すフロー図である。 図7は、実施の形態1におけるピアが他装置のピア情報を取得してP2Pシステムに参加するときに実行する処理を示すフロー図である。 図8は、実施の形態1におけるピア情報の書き込みおよび取得のために代理サーバが実行する処理を示すフロー図である。 図9は、実施の形態1におけるピア情報の書き込みおよび読み出しのために台帳サーバが実行する処理を示すフロー図である。 図10は、実施の形態1におけるピア情報の登録および更新のときにシステムが実行する処理を示すシーケンス図である。 図11は、実施の形態1における新たにピアに接続するときにシステムが実行する処理を示すシーケンス図である。 図12は、実施の形態2におけるシステムの全体の構成を示す模式図である。 図13は、実施の形態2におけるピアの機能を示すブロック図である。 図14は、実施の形態3におけるシステムの全体の構成を示す模式図である。 図15は、実施の形態3におけるピアの機能を示すブロック図である。 図16は、ブロックチェーンのデータ構造を示す説明図である。 図17は、トランザクションデータのデータ構造を示す説明図である。
 (本発明の基礎となった知見)
 本発明者は、「背景技術」の欄において記載した、ピアツーピア(P2P)ネットワークに関する技術について、以下の問題が生じることを見出した。
 P2Pネットワークにおいて、そのネットワークに参加している他のピアの情報を取得する手法としては、そのP2Pネットワークに参加する全てのピアの情報を管理するサーバに各ピアが問い合わせる方法(ハイブリット型)、または、接続したピア同士で情報を交換する方法(ピュア型)などがある。P2Pネットワークに参加するピアは、いずれの方法においても、サーバまたは他のピアから取得したピア情報をもとに、ピア接続を行う(非特許文献1)。
 しかしながら、ハイブリッド型のP2Pネットワークでは、集中管理しているピア管理サーバの情報が故意または過失によって不適当に書き換えられてしまうことがある。その場合、P2Pネットワークに参加するピアをDoS攻撃に誘導することが可能になったり、P2Pネットワーク自体が停止したりするという問題がある。
 他方、ピュア型のP2Pネットワークでは、新規にP2Pネットワークに参加しようとする新規のピアが、最初のピア接続先を何らかの方法で知る必要がある。このとき、新規のピアが悪意のあるピアに接続してしまうと、前述と同様のDoS攻撃への誘導、または、悪意のあるP2Pネットワークへの参加をさせられてしまうなどの問題がある。
 このように、従来、ピア情報の改ざん耐性または信頼性に関する問題がある。
 そこで、本発明は、P2Pシステムで用いられるピア情報をサーバが適切に管理するための制御方法などを提供することを目的とする。
 このような問題を解決するために、本発明の一態様に係る制御方法は、分散台帳を保有している複数のサーバを備えるP2P管理システムにおいて、当該複数のサーバのうちの一のサーバが実行する制御方法であって、P2Pシステムを構成する複数のピアのうちの第一ピアと他のピアとの接続に用いられるピア情報と、前記ピア情報に対して前記第一ピアにより付与された署名とを含むトランザクションデータを受信し、受信した前記トランザクションデータに含まれている前記署名を用いて、受信した前記トランザクションデータの検証をし、前記検証が成功した場合に、前記トランザクションデータを前記分散台帳に格納する制御方法である。
 上記態様によれば、サーバは、ピア情報を含むトランザクションデータに分散台帳に格納して管理する。分散台帳に格納されたピア情報は、改ざんが実質的に困難であるという特性に基づいて、改ざんされないように管理される。よって、サーバは、ピア情報を適切に管理することができる。
 例えば、受信する前記トランザクションデータは、前記第一ピアが有する前記ピア情報が更新されたときに、更新後の前記ピア情報を含めて生成されたトランザクションデータであってもよい。
 上記態様によれば、サーバは、更新された後のピア情報を含むトランザクションデータを受信して分散台帳に格納して管理する。そのため、分散台帳に格納されているトランザクションデータが最新のピア情報を含む状態に維持される。よって、サーバは、最新のピア情報を適切に管理することができる。
 例えば、さらに、前記ピア情報の取得要求を受けた場合には、前記分散台帳に格納されている前記トランザクションデータから前記ピア情報を読み出し、読み出した前記ピア情報を前記取得要求の要求元に送信してもよい。
 上記態様によれば、サーバは、適切な状態で格納されているピア情報を、ピア情報の取得要求に対して送信する。このように、サーバは、ピア情報を適切に提供することを通じて、ピア情報を適切に管理することができる。
 例えば、読み出した前記ピア情報を送信する際には、前記分散台帳を参照して読み出したピア情報のうち、当該ピア情報に含まれるパラメータが、接続に適したピアであることを示す所定の範囲に含まれる1以上のピア情報を送信してもよい。
 上記態様によれば、接続に適したピアを示すピア情報をサーバが送信するので、ピア情報を受信したピアは、サーバから送信されたピア情報に示されるピアに接続することによって、接続に適したピアを選択して接続することができる。よって、サーバは、接続に適したピアのピア情報を提供することを通じて、ピア情報を適切に管理することができる。
 例えば、読み出した前記ピア情報を送信する際には、前記分散台帳を参照して読み出したピア情報に基づいて、接続に適したピアを決定し、決定した前記ピアのピア情報を送信してもよい。
 上記態様によれば、接続に適したピアとしてサーバが決定したピアを示すピア情報をサーバが送信するので、ピア情報を受信したピアは、サーバから送信されたピア情報に示されるピアに接続することによって、接続に適したピアに接続することができる。よって、サーバは、接続に適したピアのピア情報を決定して提供することを通じて、ピア情報を適切に管理し、P2Pネットワークを制御することができる。
 例えば、前記トランザクションデータを前記分散台帳に格納する際には、前記トランザクションデータを前記複数のサーバで共有し、所定のコンセンサスアルゴリズムを実行することで前記トランザクションデータの正当性が合意された場合に、前記トランザクションデータを前記分散台帳に格納してもよい。
 上記態様によれば、サーバは、複数のサーバの間で分散台帳に格納するトランザクションデータの正当性が合意されたことを確認してから、当該トランザクションデータを分散台帳に格納する。よって、サーバは、複数のサーバの分散台帳によって、より適切に、ピア情報を管理することができる。
 例えば、前記ピア情報は、前記第一ピアの識別情報、前記第一ピアのIP(Internet Protocol)アドレス、前記第一ピアが前記他のピアとの通信に用いるポート番号、前記第一ピアが現在接続しているピアの識別情報、前記第一ピアの前記P2Pシステムへの参加継続時間、前記第一ピアが現在接続しているピアとの接続継続時間、前記第一ピアの公開鍵、および、前記第一ピアの最大許容接続数の少なくとも1つを含んでもよい。
 上記態様によれば、サーバは、ピア情報として、ピア識別情報、IPアドレス、ポート番号、接続先識別情報、参加継続時間、接続継続時間、公開鍵、または、最大許容接続数を用いて、より詳細に、ピア情報を適切に管理し、P2Pネットワークを制御することができる。
 例えば、前記P2P管理システムは、代理サーバを介して前記P2Pシステムに接続されており、前記第一ピアは、前記ピア情報と前記署名とを前記代理サーバに送信し、前記代理サーバは、前記第一ピアが送信した前記ピア情報と前記署名とを含めたトランザクションデータである代理トランザクションデータを生成して前記一のサーバに送信し、前記トランザクションデータを受信する際には、前記代理サーバが送信した前記代理トランザクションデータを、前記トランザクションデータとして受信してもよい。
 上記態様によれば、サーバは、ピアから代理サーバを介して送信される、ピア情報を含むトランザクションデータを分散台帳によって管理する。このとき、ピアは、ピア情報と署名とを代理サーバに送信するだけでよいので、トランザクションデータの生成処理といった分散台帳に関連する処理を実装および実行する必要がない。そのため、ピアにおける処理負荷の低減、消費電力の低減の効果がある。このように、サーバは、分散台帳に関する処理をピアに実装することなく、ピア情報を適切に管理することができる。
 例えば、前記P2P管理システムは、前記P2Pシステムに接続されていてもよい。
 上記態様によれば、サーバは、ピアから送信される、ピア情報を含むトランザクションデータを分散台帳によって管理する。よって、ピアとサーバとの間に他の装置が介在する必要がないので、サーバは、P2Pシステムを単一障害点を除いた構成(言い換えれば、単一障害点がない構成)で管理することができる効果がある。よって、サーバは、比較的高い可用性を持つ構成によって、ピア情報を適切に管理することができる。
 また、本発明の一態様に係る制御方法は、分散台帳を保有している複数のサーバを備えるP2P管理システムと、P2Pシステムとの間に介在する代理サーバの制御方法であって、前記P2Pシステムを構成する複数のピアのうちの第一ピアと他のピアとの接続に用いられるピア情報と、前記ピア情報に対して前記第一ピアにより付与された署名とを受信し、受信した前記ピア情報と前記署名とを含めたトランザクションデータを生成して、前記P2P管理システムを構成する複数のサーバに送信する。
 上記態様によれば、代理サーバは、ピアから送信される、ピア情報を含むトランザクションデータを生成してサーバの分散台帳に格納させる。このとき、ピアは、ピア情報と署名とを代理サーバに送信するだけでよいので、トランザクションデータの生成処理といった分散台帳に関連する処理を実装および実行する必要がない。そのため、ピアにおける処理負荷の低減、消費電力の低減の効果がある。このように、代理サーバは、分散台帳に関する処理をピアに実装することなく、ピア情報をサーバによって適切に管理することができる。
 また、本発明の一態様に係るサーバは、分散台帳を保有している複数のサーバを備えるP2P管理システムにおいて、当該複数のサーバのうちの一のサーバであって、台帳制御部と、前記分散台帳を記憶している記憶部とを備え、前記台帳制御部は、P2Pシステムを構成する複数のピアのうちの第一ピアと他のピアとの接続に用いられるピア情報と、前記ピア情報に対して前記第一ピアにより付与された署名とを含むトランザクションデータを受信し、受信した前記トランザクションデータに含まれている前記署名を用いて、受信した前記トランザクションデータの検証をし、前記検証が成功した場合に、前記トランザクションデータを前記分散台帳に格納する。
 上記態様によれば、サーバは、上記制御方法と同様の効果を奏する。
 また、本発明の一態様に係るプログラムは、上記制御方法をコンピュータに実行させるためのプログラムである。
 上記態様によれば、プログラムは、上記制御方法と同様の効果を奏する。
 なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
 以下、実施の形態について、図面を参照しながら具体的に説明する。
 なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
 (実施の形態1)
 本実施の形態において、ピア情報を適切に管理するP2P管理システムおよびその制御方法について説明する。
 ここでは、P2Pピアが保有するP2P接続のための情報を分散台帳に記録し、その後、分散台帳を参照することでピア同士の接続を実施するピアの例を図面を参照しながら説明する。
 (1.1 システムの全体構成)
 図1は、本実施の形態におけるシステム1の全体構成を示す図である。
 図1に示されるように、システム1は、ピア100A、100Bおよび100Cと、代理サーバ200と、台帳サーバ300A、300Bおよび300Cとを備え、これらの装置がネットワークNを介して接続されている。
 ピア100A、100Bおよびピア100Cは、P2Pシステム10を構成しているコンピュータである。なお、P2Pシステム10を構成するピアの数は、3に限られず、1以上いくつであってもよい。
 台帳サーバ300A、300Bおよび300Cは、P2P管理システム30を構成しているサーバ装置(単にサーバともいう)である。なお、P2P管理システム30を構成するピアの数は、3に限られず、1以上いくつであってもよい。
 ピア100Aは、P2Pシステム10を構成するP2Pピアの1つである。ピア100Aは、P2Pシステム10を構成する他のピア100Bおよび100CとネットワークNを介して通信可能に接続されている。ピア100Aは、ピア間で通信によって情報を送受信することで、P2Pシステム10が提供する所定の機能の一部を発揮する。所定の機能は、例えば、複数のピアによって大量の電子ファイルを分散して保持し、要求者に提供する機能、または、複数のピアによって大規模な計算処理を分散して実行して結果を要求者に提供する機能などがあるが、これらに限られない。
 ピア100Aは、P2Pシステム10を構成するピア同士の接続に用いるピア情報(後述)を保持しており、代理サーバ200を介してピア情報をP2P管理システム30に登録する。また、ピア100Aは、P2P管理システム30に登録されているピア情報を代理サーバ200を介して取得し、取得したピア情報を利用して未接続であるピアと接続をする。
 ピア100Bおよび100Cは、それぞれ、ピア100Aと同じ機能を有するピアであり、ピア100Aとは独立に動作する。そして、ピア100A、100Bおよび100Cが動作することによって、P2Pシステム10が所定の機能を発揮する。
 代理サーバ200は、ピア100A等の代理としてP2P管理システム30が保有している分散台帳にピア情報を登録し、また、上記分散台帳からピア情報を読み出すサーバである。
 台帳サーバ300Aは、P2P管理システム30を構成するP2Pピアの1つである。台帳サーバ300Aは、P2Pシステム10におけるピアのピア情報を分散台帳によって管理しているサーバである。台帳サーバ300Aは、P2P管理システム30を構成する他の台帳サーバ300Bおよび300CとネットワークNを介して通信可能に接続されている。
 台帳サーバ300Aは、代理サーバ200を介してピア100A等と接続されており、ピア100A等から受信するピア情報を含むトランザクションデータを分散台帳に格納し、また、分散台帳に格納されているトランザクションデータからピア情報を読み出して代理サーバ200を介してピア100A等に提供する。
 台帳サーバ300Bおよび300Cは、それぞれ、台帳サーバ300Aと同じ機能を有する台帳サーバであり、台帳サーバ300Aとは独立に動作する。そして、台帳サーバ300A、300Bおよび300Cが動作することによって、P2P管理システム30が、P2Pシステム10を管理するための機能を発揮する。
 以降において、ピア100A等と、代理サーバ200と、台帳サーバ300A等とについて詳しく説明する。
 (1.2 ピア100Aの構成)
 図2は、本実施の形態におけるピア100Aの機能構成を示すブロック図である。なお、ピア100Bおよび100Cも、ピア100Aと同様の構成を有する。
 図2に示されるように、ピア100Aは、書込要求部101と、取得要求部102と、決定部103と、通信部104と、実行部105とを備える。ピア100Aが備える各機能部は、ピア100Aが備えるプロセッサ(例えば、CPU(Central Processing Unit))が、メモリを用いて所定のプログラムを実行することで実現され得る。
 書込要求部101は、自装置つまりピア100Aのピア情報を分散台帳に書き込む要求を行う機能部である。書込要求部101は、自装置つまりピア100Aと、P2Pシステム10に含まれる他のピアとのP2P接続のための情報であるピア情報を作成する。また、書込要求部101は、作成したピア情報の書込要求データを生成し、署名を付与したうえで代理サーバ200に送信することによって、分散台帳への書き込みを要求する。ピア情報の具体例はあとで詳しく説明する。
 取得要求部102は、分散台帳からピア情報を取得する要求を行う機能部である。取得要求部102は、代理サーバ200に対して、分散台帳に記録されているピア情報の取得のための取得要求データ(単に取得要求ともいう)を生成して送信する。そして、取得要求部102は、上記取得要求データに応じて台帳サーバ300A等が送信したピア情報を代理サーバ200を介して取得する。また、取得要求部102は、このように取得したピア情報における改ざんを検知するための検知処理を行う。改ざんの検知は、書き込まれたピア情報に付与された署名を用いてなされる。
 決定部103は、自装置がP2P接続をするピアを決定する機能部である。ピアの決定は、取得要求部102が取得したピア情報を用いてなされてよい。
 通信部104は、ネットワークNに接続される通信インタフェース装置である。通信部104は、ネットワークNを介して、代理サーバ200、ならびに、他のピア100Bおよび100Cとの通信を行う。
 実行部105は、所定のプログラムを実行することで、P2Pシステム10が提供する所定の機能の一部を発揮する機能部である。
 (1.3 代理サーバ200の構成)
 図3は、本実施の形態における代理サーバ200の機能構成を示すブロック図である。
 図3に示されるように、代理サーバ200は、要求代理部201と、台帳処理部202と、通信部203とを備える。代理サーバ200が備える各機能部は、代理サーバ200が備えるプロセッサ(例えば、CPU)が、メモリを用いて所定のプログラムを実行することで実現され得る。
 要求代理部201は、ピア100A等の代理として、台帳サーバ300A等の分散台帳へのデータの書き込み又は読み出しを行う機能部である。具体的には、要求代理部201は、ピア100A等からの要求を受信したときには、受信した要求に基づいて台帳処理部202を制御する。例えば、要求代理部201は、ピア情報の書込要求データを受信した場合には、台帳処理部202にトランザクションデータの生成を指示する。また、ピア情報の取得要求データを受信した場合には、台帳処理部202に、分散台帳を参照することでピア情報を読み出す指示をする。
 台帳処理部202は、台帳サーバ300A等が有する分散台帳へのデータの書き込み又は読み出しをする機能部である。台帳処理部202は、具体的には、要求代理部201の制御の下で、ピア100Aから受信した書込要求データを含むトランザクションデータを生成して台帳サーバ300Aなどに送信する。また、台帳処理部202は、要求代理部201の制御の下で、ピア100Aから受信した取得要求データに基づいて分散台帳からピア情報を読み出す読出要求データを生成して台帳サーバ300Aなどに送信する。読出要求データに対する応答を台帳サーバ300A等から受信したときには、その応答をピア100Aに送信する。
 なお、台帳処理部202は、トランザクションデータを台帳サーバ300A等に送信するときには、コンセンサスアルゴリズムの実行またはマイニングなどの処理の一部を担ってもよい。
 通信部203は、ネットワークNに接続される通信インタフェース装置である。通信部203は、ネットワークNを介して、ピア100A等、および、台帳サーバ300A等との通信を行う。
 (1.4 台帳サーバ300Aの構成)
 図4は、本実施の形態における台帳サーバ300Aの機能構成を示すブロック図である。なお、台帳サーバ300Bおよび300Cも、台帳サーバ300Aと同様の構成を有する。
 図4に示されるように、台帳サーバ300Aは、台帳制御部301と、通信部302と、記憶部303とを備える。台帳サーバ300Aが備える各機能部は、台帳サーバ300Aが備えるプロセッサ(例えば、CPU)が、メモリを用いて所定のプログラムを実行することで実現され得る。
 台帳制御部301は、分散台帳305を制御する機能部である。具体的には、台帳制御部301は、記憶部303に格納されている分散台帳305へのトランザクションデータの書き込み、または、分散台帳305に格納されているトランザクションデータの読出しを行う。
 台帳制御部301は、具体的には、P2Pシステム10を構成する複数のピアのうちの第一ピア(例えばピア100A)と他のピア(例えばピア100B)との接続に用いられるピア情報と、上記ピア情報に対して第一ピアにより付与された署名とを含むトランザクションデータを受信する。台帳制御部301は、受信したトランザクションデータに含まれている署名を用いて、受信したトランザクションデータの検証をする。台帳制御部301は、上記検証が成功した場合に、上記トランザクションデータを分散台帳305に格納する。トランザクションデータは、代理サーバ200が送信したものである。
 なお、台帳制御部301が受信するトランザクションデータは、第一ピアが有するピア情報が更新されたときに、更新後のピア情報を含めて生成されたトランザクションデータであってもよい。
 また、台帳制御部301は、ピア情報の読出要求データ(単に読出要求ともいう)を受けた場合には、分散台帳305に格納されているトランザクションデータからピア情報を読み出し、読み出したピア情報を上記読出要求データの要求元に送信する。台帳制御部301は、読み出したピア情報を送信する際には、分散台帳305を参照して読み出したピア情報のうち、当該ピア情報に含まれるパラメータが、接続に適したピアであることを示す所定の範囲に含まれる1以上のピア情報を送信してもよい。また、台帳制御部301は、読み出した前記ピア情報を送信する際には、分散台帳305を参照して読み出したピア情報に基づいて、接続に適したピアを決定し、決定したピアのピア情報を送信してもよい。
 分散台帳305の形式はどのようなものであってもよく、例えばブロックチェーンであり、この場合を例として説明するが、他の方式の分散台帳(例えば、IOTA又はハッシュグラフ等)を採用することも可能である。
 なお、分散台帳は、新しいトランザクションデータの格納の際にコンセンサスアルゴリズム(例えば、PBFT(Practical Byzantine Fault Tolerance)、PoW(Proof of Work)又はPoS(Proof of Stake))を実行することでトランザクションデータの正当性を合意するものであってもよいし、実行しないものであってもよい。コンセンサスアルゴリズムを実行しない分散台帳技術の一例としてHyperledger fabricがある。
 通信部302は、ネットワークNに接続される通信インタフェース装置である。通信部302は、ネットワークNを介して、代理サーバ200、ならびに、他の台帳サーバ300Bおよび300Cとの通信を行う。
 記憶部303は、分散台帳305を記憶している記憶装置である。記憶部303には、台帳制御部301によってトランザクションデータが書き込まれ、また、台帳制御部301によってトランザクションデータが読み出される。
 図5は、本実施の形態におけるトランザクションデータ50の一例を示す説明図である。
 図5に示されるように、トランザクションデータ50は、ピア情報51と、署名52とを含む。
 ピア情報51は、P2Pシステム10に含まれる一のピア(例えばピア100A)と、他のピア(例えば100Bまたは100C)とのP2P接続に関する情報である。
 ピア情報51は、例えば、ピアの識別情報、ピアのIP(Internet Protocol)アドレス、ピアが他のピアとの通信に用いるポート番号、ピアが現在接続しているピアの識別情報、ピアのP2Pシステム10への参加継続時間、ピアが現在接続しているピアとの接続継続時間、ピアの公開鍵、および、ピアの最大許容接続数の少なくとも1つを含む。
 署名52は、ピア情報51を生成したピアが、ピア情報51に対して付与した電子署名である。
 本実施の形態では、トランザクションデータ50は、代理サーバ200によって生成される。代理サーバ200は、一のピアから受信した、当該一のピアのピア情報と署名とを含めたトランザクションデータ50を生成して、台帳サーバ300Aなどに送信することで、台帳サーバ300Aに格納させる。格納されたトランザクションデータ50は、分散台帳305に記録された情報の改ざんが困難であるという特性に基づいて、改ざんされないように格納され管理される。
 以上のように構成されたピア100A等、代理サーバ200、および、台帳サーバ300A等が実行する処理を以下で説明する。
 図6は、本実施の形態における自装置のピア情報の書き込みのためにピア100Aが実行する処理を示すフロー図である。図6に示される処理は、例えば、ピア100AがP2Pシステム10に参加するときに開始される。
 ステップS101において、書込要求部101は、自装置であるピア100Aのピア情報を取得する。
 ステップS102において、書込要求部101は、ステップS101で取得したピア情報に対して、自装置の秘密鍵を用いて署名を生成して付与する。
 ステップS103において、書込要求部101は、ステップS101で取得したピア情報に、ステップS102で生成した署名を付与した書込要求データを生成して、代理サーバ200に送信する。送信された書込要求データに含まれるピア情報と署名とは、代理サーバ200によってトランザクションデータに含められ、台帳サーバ300A等により改ざんされないように管理される。
 ステップS104において、書込要求部101は、自装置のピア情報を前回取得してから、現時点までに、自装置のピア情報が更新されたか否かを判定する。自装置のピア情報が更新されたと判定した場合(ステップS104でYes)には、ステップS105に進み、そうでない場合(ステップS104でNo)には、ステップS104に進む。つまり、書込要求部101は、ピア情報が更新されるまでステップS104で待機状態をとる。なお、ピア情報が更新されるのは、例えば、ピア100AのIPアドレス、または、ピア100Aが他のピアとの通信に用いるポート番号が更新されたときである。
 ステップS105において、書込要求部101は、自装置であるピア100Aのピア情報を取得する。
 ステップS106において、書込要求部101は、ステップS105で取得したピア情報に対して署名を生成する。
 ステップS107において、書込要求部101は、ステップS105で取得したピア情報に、ステップS106で生成した署名を付与した書込要求データを生成して、代理サーバ200に送信する。送信された書込要求データに含まれるピア情報と署名とは、ステップS103における場合と同様に、代理サーバ200によってトランザクションデータに含められ、台帳サーバ300A等により改ざんされないように管理される。ステップS107の処理を終えたら、ステップS104に進む。
 図6に示される一連の処理によって、ピア100Aは、P2Pシステム10に参加するときに自装置のピア情報を台帳サーバ300Aなどに格納するとともに、自装置のピア情報が更新されるたびに、更新された自装置のピア情報を台帳サーバ300Aなどに格納する。
 図7は、本実施の形態におけるピアが他装置のピア情報を取得してP2Pシステムに参加するときに実行する処理を示すフロー図である。一例として、ピア100BがP2Pシステム10に参加する際に、他装置であるピア100Aのピア情報を取得し、ピア100Aに接続することでP2Pシステム10に参加する処理を例として説明する。
 ステップS121において、取得要求部102は、取得要求データを生成して代理サーバ200に送信する。ここで取得要求データは、P2Pシステム10に参加しているピアのうち、ピア100Bが接続することができる1以上のピアのピア情報を取得する要求である。
 ステップS122において、取得要求部102は、他装置のピア情報を取得する。取得するピア情報は、ステップS121で送信した取得要求データが代理サーバ200を介して台帳サーバ300Aに受信され、その取得要求データを受信した台帳サーバ300Aが分散台帳305から読み出して送信した1以上のピアのピア情報である。上記1以上のピアにピア100Aが含まれているとする。
 ステップS123において、決定部103は、ステップS122で取得要求部102が取得した1以上のピアのピア情報に基づいて、ピア100Bが接続するピア(接続先ピアともいう)を決定する。ここでは、接続先ピアとしてピア100Aが決定されたとする。
 例えば、決定部103は、1以上のピアのピア情報に基づいて、当該1以上のピアのうち、自装置との物理的な距離が所定より近いピア、または、自装置との物理的な距離が所定範囲外であるピアを接続先のピアとして決定してもよい。また、例えば、決定部103は、1以上のピアのピア情報に基づいて、当該1以上のピアのうち、接続しているピアの数が所定より多いピア、または、接続しているピアの数が所定範囲内であるピアを接続先のピアとして決定してもよい。また、例えば、決定部103は、1以上のピアのピア情報に基づいて、当該1以上のピアのうち、P2Pシステム10への参加継続時間が所定より長いピア、または、P2Pシステム10への参加継続時間が所定範囲内であるピアを接続先のピアとして決定してもよい。
 ステップS124において、決定部103は、ステップS123で決定した接続先ピアに接続する接続処理を実行することで、接続先ピアと接続する。
 ステップS125において、実行部105は、所定のプログラムを実行することで、P2Pシステム10が提供する所定の機能の一部を発揮する。
 図7に示される一連の処理により、ピア100Bがピア100Aに接続し、P2Pシステム10に参加することができる。
 図8は、本実施の形態におけるピア情報の書き込みおよび取得のために代理サーバ200が実行する処理を示すフロー図である。
 ステップS201において、要求代理部201は、ピア100Aから要求データを受信したか否かを判定する。ピア100Aから要求データを受信したと判定した場合(ステップS201でYes)には、ステップS202へ進み、そうでない場合(ステップS201でNo)には、ステップS201を再び実行する。つまり、要求代理部201は、要求データを受信するまでステップS201で待機状態をとる。
 ステップS202において、要求代理部201は、ステップS201で受信した要求データの種別が、書込要求データであるか、または、取得要求データであるかを判定する。要求データの種別が書込要求データであると判定した場合(ステップS202で「書込」)には、ステップS203に進み、要求データの種別が取得要求データであると判定した場合(ステップS202で「取得」)には、ステップS211に進む。
 ステップS203において、台帳処理部202は、ステップS201で受信した書込要求データに含まれるピア情報および署名を含むトランザクションデータを生成する。
 ステップS204において、台帳処理部202は、ステップS203で生成したトランザクションデータを台帳サーバ300A等に送信する。ステップS204の処理を終えたらステップS201へ進む。
 ステップS211において、台帳処理部202は、ピア情報を分散台帳から読み出すための読出要求データを生成する。
 ステップS212において、台帳処理部202は、ステップS211で生成した読出要求データを台帳サーバ300A等に送信する。ステップS212の処理を終えたらステップS201へ進む。
 図8に示される一連の処理により、代理サーバ200は、ピア100Aから受信した書込要求データまたは取得要求データに応じて、それぞれ、ピア情報の書き込みまたはピア情報の取得を、ピア100Aに代理して実行する。
 図9は、本実施の形態におけるピア情報の書き込みおよび読み出しのために台帳サーバ300Aが実行する処理を示すフロー図である。
 ステップS301において、台帳制御部301は、代理サーバ200から、トランザクションデータを受信したか、または、読出要求データを受信したかを判定する。トランザクションデータを受信したと判定した場合(ステップS301で「トランザクションデータ」)には、ステップS302に進み、読出要求データを受信した場合(ステップS301で「読出要求データ」)には、ステップS311に進む。なお、台帳制御部301は、トランザクションデータまたは読出要求データを受信するまで、ステップS301で待機状態をとる。
 ステップS302において、台帳制御部301は、ステップS301で受信したトランザクションデータを検証する。
 ステップS303において、台帳制御部301は、ステップS302における検証が成功したか否かを判定する。検証が成功したと判定した場合(ステップS303でYes)には、ステップS304に進み、そうでない場合(ステップS303でNo)には、ステップS301に進む。
 ステップS304において、台帳制御部301は、ステップS301で受信したトランザクションデータを、記憶部303に格納されている分散台帳に格納する。分散台帳に格納する際に、コンセンサスアルゴリズムを実行することでトランザクションデータの正当性の合意をすることもある。ステップS304の処理を終えたらステップS301へ進む。
 ステップS311において、台帳制御部301は、記憶部303に格納されている分散台帳を参照し、分散台帳に格納されているトランザクションデータからピア情報を読み出す。
 ステップS312において、台帳制御部301は、ステップS312で読み出したピア情報を、代理サーバ200に送信する。ピア情報を送信する際には、分散台帳を参照して読み出したピア情報のうち、接続に適したピアであることを示す所定の条件を満たすピア情報のみを送信してもよい。具体的には、台帳制御部301は、読み出したピア情報に示される1以上のピアのうち、要求元であるピア100Aとの物理的な距離が所定より近いピア、または、ピア100Aとの物理的な距離が所定範囲外であるピアを示すピア情報のみを提供してもよい。また、例えば、台帳制御部301は、上記1以上のピアのうち、接続しているピアの数が所定より多いピア、または、接続しているピアの数が所定範囲内であるピアを示す情報のみを提供してもよい。また、例えば、台帳制御部301は、上記1以上のピアのうち、P2Pシステム10への参加継続時間が所定より長いピア、または、P2Pシステム10への参加継続時間が所定範囲内であるピアを示すピア情報のみを提供してもよい。
 ステップS312の処理を終えたらステップS301へ進む。
 図9に示される一連の処理により、台帳サーバ300Aは、ピア情報を適切に分散台帳に格納して管理し、読出要求に応じて読み出すことができる。
 次に、システム1としての動作を説明する。具体的には、ピア情報の登録および更新のときにシステムが実行する処理と、新たにピアに接続するときにシステムが実行する処理とを説明する。
 (1.5 ピア情報の登録および更新のシーケンス)
 図10は、本実施の形態におけるピア情報の登録および更新のときにシステム1が実行する処理を示すシーケンス図である。具体的には、図10には、ピア情報の登録および更新のときにシステム1、つまり、ピア100A、代理サーバ200および台帳サーバ300A等が実行する処理が示されている。なお、既に説明したフロー図における処理と同じ処理には、既に説明したフロー図における符号と同じ符号を付し、詳細な説明を省略することがある。
 ピア100Aは、自装置つまりピア100Aのピア情報に署名を付与した書込要求データを生成して代理サーバ200に送信する(ステップS101~S103)。
 代理サーバ200は、ピア100Aから書込要求データを受信すると、受信した書込要求データに含まれているピア情報と署名とを含むトランザクションを生成して台帳サーバ300A等に送信する(ステップS203、S204)。トランザクションデータを送信する宛先は、台帳サーバ300A等のうちのどの台帳サーバでもよく、ここでは台帳サーバ300Aに送信した場合を例として説明する。
 台帳サーバ300Aは、上記トランザクションデータを受信し、受信したトランザクションを分散台帳305に格納する。台帳サーバ300Aは、分散台帳305に格納する際に、他の台帳サーバとの間でコンセンサスアルゴリズムを実行する。これにより、署名が付与されたピア情報が含まれたブロックが分散台帳305に格納される。その後、分散台帳305に格納されたピア情報は、改ざんが実質的に困難であり、安全に参照され得る状態で管理される。
 ピア100Aは、自装置つまりピア100Aのピア情報が更新されたか否かを判定し、更新された場合に、上記と同様の書込要求データを生成して代理サーバ200に送信する(ステップS104~S107)。
 代理サーバ200は、上記と同様に、受信した書込要求データに含まれているピア情報と署名とを含むトランザクションを生成して台帳サーバ300A等に送信する(ステップS203、S204)。
 台帳サーバ300Aは、上記と同様に、受信したトランザクションを分散台帳305に格納する。
 その後、ピア100Aは、ピア情報が更新されたと判定するたびに、ステップS104以降の処理が繰り返し実行される。
 (1.6 ピア接続のシーケンス)
 図11は、本実施の形態における新たにピアに接続するときにシステム1が実行する処理を示すシーケンス図である。具体的には、図11には、ピア100Aおよびピア100B、代理サーバ200および台帳サーバ300A等が実行する処理が示されている。
 ピア100Bは、代理サーバ200にピア情報の取得要求データを送信する(ステップS121)。
 代理サーバ200は、上記取得要求データを受信し、台帳サーバ300A等にピア情報の読出要求データを送信する。読出要求データの宛先は、台帳サーバ300A等のうちのどの台帳サーバでもよく、ここでは台帳サーバ300Aに送信した場合を例として説明する。
 台帳サーバ300Aは、上記読出要求データを受信し、分散台帳305に格納されているトランザクションデータを参照し、トランザクションデータに含まれているピア情報を読み出し、読み出したピア情報を代理サーバ200に送信する(ステップS312、S313)。代理サーバ200は、ピア情報を取得したら、取得したピア情報をピア100Bに送信する。
 ピア100Bは、代理サーバ200が送信したピア情報を受信し、受信したピア情報に示されるピアに基づいて、接続するピアを決定する。ここでは、ピア100Bが接続先をピア100Aと決定した場合を例として説明する。そして、ピア100Bは、接続先であるピア100AとP2P接続を実行する(ステップS122~S124)。
 その後、ピア100Bは、所定のプログラムを実行し、ピア100AとともにP2Pシステム10が提供する機能を発揮する(ステップS125)。
 なお、上記説明では、接続先のピアを決定する処理をピア100Bが実行するとしたが、当該処理は、台帳サーバ300Aが行ってもよい。その場合、台帳サーバ300Aは、スマートコントラクトによって当該処理を実行してもよい。このようにすれば、台帳サーバ300Aが分散台帳305からピア情報を読み出し、読み出した上記ピア情報に基づいて接続先のピアを決定する処理が、他の人または装置に関与されることなく安全に実行される利点がある。
 また、当該処理は、代理サーバ200が行ってもよい。このようにすれば、当該処理をピア100Bが実行する必要がないので、ピア100Bの処理負荷を軽減し、消費電力を低減できる利点がある。
 (1.7 実施の形態1の効果)
 本実施の形態において、ピア100A等は、分散台帳305に保存されたピア情報をもとにP2P接続先のピアを決定することができる。ピア情報は、分散台帳305に保存されているので改ざんが困難である。そのため、本実施の形態のシステム1によれば、ピア情報の不正操作による攻撃を防ぐことにより、P2P接続に必要なピア情報を安全に管理し、提供することができる。
 (実施の形態2)
 本実施の形態において、ピア情報を適切に管理するシステムに関して、実施の形態1におけるシステム1とは異なる形態について説明する。本実施の形態のシステム1Aは、実施の形態1におけるシステム1と同様にP2PシステムとP2P管理システムとを備えるが、代理サーバを備えない点で異なる。
 つまり、本実施の形態のシステム1Aにおいて、P2P管理システムは、P2Pシステムに直接に(言い換えれば、代理サーバを介さずに)、接続されている。
 (2.1 システムの全体構成)
 図12は、本実施の形態におけるシステム1Aの全体の構成を示す模式図である。
 図12に示されるように、システム1Aは、P2Pシステム10Aと、P2P管理システム30とを備える。P2Pシステム10Aは、ピア100E、100Fおよび100Gを備える。なお、P2Pシステム10Aを構成するピアの数は、3に限られず、1以上いくつであってもよい。
 ピア100Eは、実施の形態1のピア100Aと同様に、P2Pシステム10Aを構成するP2Pピアの1つである。ピア100Eは、さらに、P2P管理システム30が保有している分散台帳にピア情報を登録し、また、上記分散台帳からピア情報を読み出す機能を有する。つまり、ピア100Eは、代理サーバを介することなく直接に、分散台帳にピア情報を書き込み、または、分散台帳からピア情報を読み出す機能を有する。
 P2P管理システム30は、実施の形態1におけるP2P管理システム30と同様である。
 (2.2 ピア100Eの構成)
 図13は、本実施の形態におけるピア100Eの機能を示すブロック図である。なお、ピア100Fおよび100Gも、ピア100Eと同様の構成を有する。
 図13に示されるように、ピア100Eは、書込要求部101Aと、取得要求部102Aと、決定部103と、通信部104と、実行部105とを備える。ピア100Eが備える各機能部は、ピア100Eが備えるプロセッサ(例えば、CPU)が、メモリを用いて所定のプログラムを実行することで実現され得る。
 書込要求部101Aは、自装置つまりピア100Eのピア情報を分散台帳305に書き込む要求を行う機能部である。書込要求部101Aは、自装置つまりピア100Eと、P2Pシステム10Aに含まれる他のピアとのP2P接続のための情報であるピア情報を作成する。書込要求部101Aは、作成したピア情報に署名を付与することでトランザクションデータを生成して台帳サーバ300A等に送信する。送信したトランザクションデータは、台帳サーバ300A等の分散台帳305に格納される。
 取得要求部102Aは、分散台帳305からピア情報を取得する要求を行う機能部である。取得要求部102Aは、台帳サーバ300Aに対して、分散台帳305に記録されているピア情報の取得のための取得要求データを生成して送信する。そして、取得要求部102Aは、上記取得要求データに応じて台帳サーバ300Aが送信したピア情報を取得する。
 決定部103と、通信部104と、実行部105とについては実施の形態1におけるものと同じである。
 (2.3 実施の形態2の効果)
 この構成により、ピア100E等は、代理サーバを介さずに直接に、分散台帳にピア情報を書き込み、または、分散台帳からピア情報を読み出すことができる。ピア100E等と台帳サーバとの間に他の装置が介在する必要がないので、台帳サーバは、P2Pシステムを単一障害点を除いた構成(言い換えれば、単一障害点がない構成)で管理することができる効果がある。よって、サーバは、比較的高い可用性を持つ構成によって、ピア情報を適切に管理することができる。
 (実施の形態3)
 本実施の形態において、ピア情報を適切に管理するシステムに関して、実施の形態1または2におけるシステム1または1Aとは異なる形態について説明する。本実施の形態のシステム1Bは、実施の形態2のシステム1AにおけるP2PシステムとP2P管理システムとを備える。そして、上記P2Pシステムは、別のP2PシステムとしてのP2P管理システムで用いられるピア情報を管理するP2P管理システムとしての機能をも有する。
 (3.1 システムの全体構成)
 図14は、本実施の形態におけるシステム1Bの全体の構成を示す模式図である。
 図14に示されるように、システム1Bは、システム40Aおよび40Bを備える。システム40Aは、P2PシステムAであり、また、P2PシステムD(つまりシステム40B)で用いられるピア情報を管理するP2P管理システムBでもある。システム40Bは、P2PシステムDであり、また、P2PシステムA(つまりシステム40A)で用いられるピア情報を管理するP2P管理システムCでもある。
 つまり、システム40Aとシステム40Bとは、それぞれ、P2Pシステムであると同時に、相互のP2P管理情報を管理するP2P管理システムでもある。
 システム40Aは、ピア400A、400Bおよび400Cを備える。なお、システム40Aを構成するピアの数は、3に限られず、1以上いくつであってもよい。システム40Bは、ピア400E、400Fおよび400Gを備える。なお、システム40Bを構成するピアの数は、3に限られず、1以上いくつであってもよい。
 ピア400Aは、実施の形態2のピア100Eと同様に、P2Pシステムであるシステム40Aを構成するP2Pピアの1つである。ピア400Aは、さらに、システム40Bが保有している分散台帳にピア情報を登録し、また、上記分散台帳からピア情報を読み出す機能を有する。
 ピア400Bおよび400Cは、それぞれ、ピア400Aと同じ機能を有するピアであり、ピア400Aとは独立に動作する。
 ピア400Eは、実施の形態2のピア100Eと同様に、P2Pシステムであるシステム40Bを構成するP2Pピアの1つである。ピア400Eは、さらに、システム40Aが保有している分散台帳にピア情報を登録し、また、上記分散台帳からピア情報を読み出す機能を有する。
 ピア400Fおよび400Gは、それぞれ、ピア400Eと同じ機能を有するピアであり、ピア400Eとは独立に動作する。
 (3.2 ピア400Aの構成)
 図15は、本実施の形態におけるピア400Aの機能を示すブロック図である。なお、ピア400Bおよび400C、ならびに、ピア400E、400Fおよび400Gも、ピア400Aと同様の構成を有する。
 図15に示されるように、ピア400Aは、書込要求部101Aと、取得要求部102Aと、決定部103と、通信部104と、実行部105と、台帳制御部107と、記憶部108とを備える。ピア400Aが備える各機能部は、ピア400Aが備えるプロセッサ(例えば、CPU)が、メモリを用いて所定のプログラムを実行することで実現され得る。
 書込要求部101Aと、取得要求部102Aと、決定部103と、通信部104と、実行部105とは、実施の形態2におけるピア100Eにおけるものと同じである。
 また、台帳制御部107と記憶部108とは、それぞれ、実施の形態1における台帳サーバ300Aが備える台帳制御部301と記憶部303と同じである。記憶部108は、実施の形態1における分散台帳305と同様の分散台帳109を記憶している。
 ピア400Aは、上記の機能部を有することで、P2PシステムAを構成するピアの1つとして機能するとともに、P2P管理システムBを構成するピアの1つとして機能する。ピア400Bおよび400Cについても同様である。
 さらに、ピア400E、400Fおよび400Gは、ピア400Aと同様の構成を有することで、P2PシステムDを構成するピアの1つとして機能するとともに、P2P管理システムCを構成するピアの1つとして機能する。
 これにより、システム40Aとシステム40Bとは、それぞれ、P2Pシステムとして機能するとともに、相互のP2P管理情報を管理するP2P管理システムとして機能する。
 (3.3 実施の形態3の効果)
 この構成により、ピア400A等を備えるシステム40Aと、ピア400E等を備えるシステム40Bとで、相互にピア情報を適切に管理し、ピア情報の信頼性を扶助しながら、別個のP2Pシステムとして機能することができる。
 (補足)
 上記各実施の形態におけるブロックチェーンについて補足的に説明する。
 図16は、ブロックチェーンのデータ構造を示す説明図である。
 ブロックチェーンは、その記録単位であるブロックがチェーン(鎖)状に接続されたものである。それぞれのブロックは、複数のトランザクションデータと、直前のブロックのハッシュ値とを有している。具体的には、ブロックB2には、その前のブロックB1のハッシュ値が含まれている。そして、ブロックB2に含まれる複数のトランザクションデータと、ブロックB1のハッシュ値とから演算されたハッシュ値が、ブロックB2のハッシュ値として、ブロックB3に含められる。このように、前のブロックの内容をハッシュ値として含めながら、ブロックをチェーン状に接続することで、記録されたトランザクションデータの改ざんを有効に防止する。
 仮に過去のトランザクションデータが変更されると、ブロックのハッシュ値が変更前と異なる値になり、改ざんしたブロックを正しいものとみせかけるには、それ以降のブロックすべてを作り直さなければならず、この作業は現実的には非常に困難である。この性質を使用して、ブロックチェーンに改ざん困難性が担保されている。
 図17は、トランザクションデータのデータ構造を示す説明図である。
 図17に示されるトランザクションデータは、トランザクション本体P1と、電子署名P2とを含む。トランザクション本体P1は、当該トランザクションデータに含まれるデータ本体である。電子署名P2は、トランザクション本体P1のハッシュ値に対して、当該トランザクションデータの作成者の署名鍵で署名する、より具体的には、作成者の秘密鍵で暗号化することで生成されたものである。
 トランザクションデータは、電子署名P2を有するので、改ざんが実質的に不可能である。これにより、トランザクション本体の改ざんが防止される。
 (その他変形例)
 なお、本発明を上記各実施の形態に基づいて説明してきたが、本発明は、上記各実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
 (1)上記実施の形態1では、ピア100A等と代理サーバ200とは、それぞれ別の装置として説明したが、ピア100A等と代理サーバ200とを同一の装置としてもよい。上記のように同一の装置とする構成の一例が、実施の形態2の構成である。
 (2)上記実施の形態1では、ピア100A等と台帳サーバ300A等とを分けて表記したが、ピア100A自体が台帳サーバ300Aであってもよい。また、台帳サーバ300Aが用いている分散台帳とは別の分散台帳を用いてもよい。また、システムが相互に互いのピア情報を保存しあってもよい。システムが相互に互いのピア情報を保存しあう構成の一例が、実施の形態3の構成である。
 (3)上記実施の形態1では、代理サーバ200は、単一の代理サーバ200として表記したが、複数台の装置で構成されてもよい。
 (4)上記実施の形態1では、台帳サーバのピア情報読込処理は、記憶装置からの単純な読込処理としたが、スマートコントラクトなどを用いて任意の読込処理が実行されてもよい。例えば、ピア100Aが備える決定部103は、台帳サーバ300Aに備えられてもよく、その場合のP2Pピアの接続先ピアの決定は、取得したピア情報をそのまま用いてもよい。この場合、決定部103も分散台帳に保存されるので、よりセキュアなP2Pピア情報参照が可能になる利点がある。
 (5)ピア接続時の他のピア情報の取得範囲は、P2Pシステムに参加する全てのピア情報としてもよいし、任意の範囲としてもよい。任意の範囲での取得においては、P2Pシステムに接続している時間が長いものから順に取得する、といった条件を設けてもよい。また、再接続時など、既知のピア情報の最新状態の取得といった場合には、ピア情報を取得したいピアを指定してもよい。
 (6)上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
 (7)上記の実施の形態における各装置は、構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
 また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又はすべてを含むように1チップ化されてもよい。
 また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
 さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
 (8)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
 (9)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
 また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
 また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
 また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
 また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
 (10)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
 (11)接続先ピアが通信不能の場合、通信不能である旨を分散台帳に書き込んでもよい。その際、所定の数以上のピアが通信不能と判断した場合のみ、分散台帳に書き込んでもよい。
 なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態のサーバなどを実現するソフトウェアは、次のようなプログラムである。
 すなわち、このプログラムは、コンピュータに、分散台帳を保有している複数のサーバを備えるP2P管理システムにおいて、当該複数のサーバのうちの一のサーバが実行する制御方法であって、P2Pシステムを構成する複数のピアのうちの第一ピアと他のピアとの接続に用いられるピア情報と、前記ピア情報に対して前記第一ピアにより付与された署名とを含むトランザクションデータを受信し、受信した前記トランザクションデータに含まれている前記署名を用いて、受信した前記トランザクションデータの検証をし、前記検証が成功した場合に、前記トランザクションデータを前記分散台帳に格納する制御方法を実行させるプログラムである。
 また、このプログラムは、コンピュータに、分散台帳を保有している複数のサーバを備えるP2P管理システムと、P2Pシステムとの間に介在する代理サーバの制御方法であって、前記P2Pシステムを構成する複数のピアのうちの第一ピアと他のピアとの接続に用いられるピア情報と、前記ピア情報に対して前記第一ピアにより付与された署名とを受信し、受信した前記ピア情報と前記署名とを含めたトランザクションデータを生成して、前記P2P管理システムを構成する複数のサーバに送信する制御方法を実行させるプログラムである。
 以上、一つまたは複数の態様に係る制御方法などについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
 本発明にかかるP2Pシステムのピア情報(P2P接続情報)を管理・共有するシステムは、P2Pシステムのピア情報を安全に管理・共有する機構を有し、あらゆるP2Pシステムのピア管理システムとして有用である。
 1、1A、1B、40A、40B  システム
 10、10A  P2Pシステム
 30  P2P管理システム
 50  トランザクションデータ
 51  ピア情報
 52  署名
 100A、100B、100C、100E、100F、100G、400A、400B、400C、400E、400F、400G  ピア
 101、101A  書込要求部
 102、102A  取得要求部
 103  決定部
 104、203、302  通信部
 105  実行部
 108、303  記憶部
 109、305  分散台帳
 200  代理サーバ
 201  要求代理部
 202  台帳処理部
 300A、300B、300C  台帳サーバ
 301、107  台帳制御部
 B1、B2、B3  ブロック
 N  ネットワーク
 P1  トランザクション本体
 P2  電子署名

Claims (12)

  1.  分散台帳を保有している複数のサーバを備えるP2P管理システムにおいて、当該複数のサーバのうちの一のサーバが実行する制御方法であって、
     P2Pシステムを構成する複数のピアのうちの第一ピアと他のピアとの接続に用いられるピア情報と、前記ピア情報に対して前記第一ピアにより付与された署名とを含むトランザクションデータを受信し、
     受信した前記トランザクションデータに含まれている前記署名を用いて、受信した前記トランザクションデータの検証をし、
     前記検証が成功した場合に、前記トランザクションデータを前記分散台帳に格納する
     制御方法。
  2.  受信する前記トランザクションデータは、前記第一ピアが有する前記ピア情報が更新されたときに、更新後の前記ピア情報を含めて生成されたトランザクションデータである
     請求項1に記載の制御方法。
  3.  さらに、前記ピア情報の読出要求を受けた場合には、前記分散台帳に格納されている前記トランザクションデータから前記ピア情報を読み出し、読み出した前記ピア情報を前記読出要求の要求元に送信する
     請求項1又は2に記載の制御方法。
  4.  読み出した前記ピア情報を送信する際には、
     前記分散台帳を参照して読み出したピア情報のうち、当該ピア情報に含まれるパラメータが、接続に適したピアであることを示す所定の範囲に含まれる1以上のピア情報を送信する
     請求項3に記載の制御方法。 
  5.  読み出した前記ピア情報を送信する際には、
     前記分散台帳を参照して読み出したピア情報に基づいて、接続に適したピアを決定し、決定した前記ピアのピア情報を送信する
     請求項3又は4に記載の制御方法。 
  6.  前記トランザクションデータを前記分散台帳に格納する際には、
     前記トランザクションデータを前記複数のサーバで共有し、所定のコンセンサスアルゴリズムを実行することで前記トランザクションデータの正当性が合意された場合に、前記トランザクションデータを前記分散台帳に格納する
     請求項1~5のいずれか1項に記載の制御方法。
  7.  前記ピア情報は、前記第一ピアの識別情報、前記第一ピアのIP(Internet Protocol)アドレス、前記第一ピアが前記他のピアとの通信に用いるポート番号、前記第一ピアが現在接続しているピアの識別情報、前記第一ピアの前記P2Pシステムへの参加継続時間、前記第一ピアが現在接続しているピアとの接続継続時間、前記第一ピアの公開鍵、および、前記第一ピアの最大許容接続数の少なくとも1つを含む
     請求項1~6のいずれか1項に記載の制御方法。
  8.  前記P2P管理システムは、代理サーバを介して前記P2Pシステムに接続されており、
     前記第一ピアは、前記ピア情報と前記署名とを前記代理サーバに送信し、
     前記代理サーバは、前記第一ピアが送信した前記ピア情報と前記署名とを含めたトランザクションデータである代理トランザクションデータを生成して前記一のサーバに送信し、
     前記トランザクションデータを受信する際には、
     前記代理サーバが送信した前記代理トランザクションデータを、前記トランザクションデータとして受信する
     請求項1~7のいずれか1項に記載の制御方法。
  9.  前記P2P管理システムは、前記P2Pシステムに接続されている
     請求項1~7のいずれか1項に記載の制御方法。
  10.  分散台帳を保有している複数のサーバを備えるP2P管理システムと、P2Pシステムとの間に介在する代理サーバの制御方法であって、
     前記P2Pシステムを構成する複数のピアのうちの第一ピアと他のピアとの接続に用いられるピア情報と、前記ピア情報に対して前記第一ピアにより付与された署名とを受信し、
     受信した前記ピア情報と前記署名とを含めたトランザクションデータを生成して、前記P2P管理システムを構成する複数のサーバに送信する
     制御方法。
  11.  分散台帳を保有している複数のサーバを備えるP2P管理システムにおいて、当該複数のサーバのうちの一のサーバであって、
     台帳制御部と、前記分散台帳を記憶している記憶部とを備え、
     前記台帳制御部は、
     P2Pシステムを構成する複数のピアのうちの第一ピアと他のピアとの接続に用いられるピア情報と、前記ピア情報に対して前記第一ピアにより付与された署名とを含むトランザクションデータを受信し、
     受信した前記トランザクションデータに含まれている前記署名を用いて、受信した前記トランザクションデータの検証をし、
     前記検証が成功した場合に、前記トランザクションデータを前記分散台帳に格納する
     サーバ。
  12.  請求項1~10のいずれか1項に記載の制御方法をコンピュータに実行させるためのプログラム。
PCT/JP2020/030941 2019-08-29 2020-08-17 制御方法、サーバ、および、プログラム WO2021039453A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021542753A JPWO2021039453A1 (ja) 2019-08-29 2020-08-17
CN202080057252.1A CN114222992A (zh) 2019-08-29 2020-08-17 控制方法、服务器、以及程序
US17/590,220 US20220159065A1 (en) 2019-08-29 2022-02-01 Control method, server, and recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962893432P 2019-08-29 2019-08-29
US62/893,432 2019-08-29

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/590,220 Continuation US20220159065A1 (en) 2019-08-29 2022-02-01 Control method, server, and recording medium

Publications (1)

Publication Number Publication Date
WO2021039453A1 true WO2021039453A1 (ja) 2021-03-04

Family

ID=74684135

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/030941 WO2021039453A1 (ja) 2019-08-29 2020-08-17 制御方法、サーバ、および、プログラム

Country Status (4)

Country Link
US (1) US20220159065A1 (ja)
JP (1) JPWO2021039453A1 (ja)
CN (1) CN114222992A (ja)
WO (1) WO2021039453A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018163031A1 (en) * 2017-03-06 2018-09-13 nChain Holdings Limited Computer-implemented system and method
WO2018162687A1 (en) * 2017-03-09 2018-09-13 Gulbrandsen Magnus Skraastad Core network access provider
US20180349621A1 (en) * 2017-06-01 2018-12-06 Schvey, Inc. d/b/a/ Axoni Distributed privately subspaced blockchain data structures with secure access restriction management
WO2019137563A2 (en) * 2019-04-26 2019-07-18 Alibaba Group Holding Limited Anti-replay attack authentication protocol

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220384027A1 (en) * 2012-10-09 2022-12-01 Kc Holdings I Tracking and rewarding health and fitness activities using blockchain technology
US11429960B2 (en) * 2017-05-24 2022-08-30 Nxm Labs, Inc. Network configuration management for networked client devices using a distributed ledger service
US20220405750A1 (en) * 2017-05-24 2022-12-22 Nxm Labs, Inc. Network configuration management for networked client devices using a distributed ledger service
WO2019066822A1 (en) * 2017-09-27 2019-04-04 Visa International Service Association SECURE SHARED KEY ESTABLISHMENT FOR PAIR-TO-PAIR COMMUNICATIONS
US20190279172A1 (en) * 2018-03-06 2019-09-12 Dash Core Group, Inc. Methods and Systems for Object Validated Blockchain Accounts
WO2019180457A1 (en) * 2018-03-22 2019-09-26 Communication Security Group Inc. Decentralised communication system and method
US11019059B2 (en) * 2018-04-26 2021-05-25 Radware, Ltd Blockchain-based admission processes for protected entities
US11695735B2 (en) * 2018-05-10 2023-07-04 Nxm Labs, Inc. Security management for net worked client devices using a distributed ledger service
US11481761B2 (en) * 2018-06-03 2022-10-25 VVOW Company Limited Peer-to-peer cryptocurrency and crypto asset trading platform
CN113015989A (zh) * 2018-06-08 2021-06-22 通信安全集团公司 区块链监督
US10951615B1 (en) * 2018-10-16 2021-03-16 Sprint Communications Company L.P. Wireless network access for data appliances
US10986500B1 (en) * 2018-11-06 2021-04-20 Sprint Communications Company L.P. Hardware-trusted ledger client for distributed ledgers that serve wireless network slices
CN111027971B (zh) * 2018-12-07 2023-08-22 深圳市智税链科技有限公司 在区块链网络中确定记账节点的方法、代理节点和介质
GB201820853D0 (en) * 2018-12-20 2019-02-06 Palantir Technologies Inc Detection of vulnerabilities in a computer network
US20220141002A1 (en) * 2019-02-06 2022-05-05 Connectfree Corporation Data transmission method, communication processing method, device, and communication processing program
US11151621B2 (en) * 2019-06-25 2021-10-19 Verizon Patent And Licensing Inc. System and method for carrier settlement using blockchain
US20210185386A1 (en) * 2019-12-17 2021-06-17 Tencent Technology (Shenzhen) Company Limited Video playing method and apparatus, electronic device, and storage medium
US11151229B1 (en) * 2020-04-10 2021-10-19 Avila Technology, LLC Secure messaging service with digital rights management using blockchain technology
EP4222563A1 (en) * 2020-10-04 2023-08-09 Strong Force Iot Portfolio 2016, LLC Industrial digital twin systems and methods with echelons of executive, advisory and operations messaging and visualization
US11652604B2 (en) * 2020-11-12 2023-05-16 Paypal, Inc. Blockchain data compression and storage
US11568393B2 (en) * 2020-12-23 2023-01-31 Paypal, Inc. Methods and systems for transferring unspent transaction output (UTXO) tokens in a blockchain network
US11652605B2 (en) * 2021-02-23 2023-05-16 Paypal, Inc. Advanced non-fungible token blockchain architecture
US20220414664A1 (en) * 2021-06-29 2022-12-29 Paypal, Inc. Blockchain address risk assessment via graph analysis
US11888991B2 (en) * 2021-08-25 2024-01-30 Paypal, Inc. Universally trusted bridges for heterogenous blockchain networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018163031A1 (en) * 2017-03-06 2018-09-13 nChain Holdings Limited Computer-implemented system and method
WO2018162687A1 (en) * 2017-03-09 2018-09-13 Gulbrandsen Magnus Skraastad Core network access provider
US20180349621A1 (en) * 2017-06-01 2018-12-06 Schvey, Inc. d/b/a/ Axoni Distributed privately subspaced blockchain data structures with secure access restriction management
WO2019137563A2 (en) * 2019-04-26 2019-07-18 Alibaba Group Holding Limited Anti-replay attack authentication protocol

Also Published As

Publication number Publication date
JPWO2021039453A1 (ja) 2021-03-04
US20220159065A1 (en) 2022-05-19
CN114222992A (zh) 2022-03-22

Similar Documents

Publication Publication Date Title
US11042876B2 (en) Transaction method and system based on centralized settlement and blockchain deposit certificates
US11341121B2 (en) Peer partitioning
CN110417844B (zh) 使用区块链分散管理多所有者节点的系统和方法
US11153069B2 (en) Data authentication using a blockchain approach
US20190036702A1 (en) Private node, processing method for private node, and program for same
EP3438903A1 (en) Hierarchical network system, and node and program used in same
US11645376B2 (en) Device-based database system
AU2020414467B2 (en) Partially-ordered blockchain
WO2018187359A1 (en) Data provenance, permissioning, compliance, and access control for data storage systems using an immutable ledger
CN111512591A (zh) 可跟踪密钥区块链账本
Ali et al. Bootstrapping trust in distributed systems with blockchains
US11184395B1 (en) Cross-network identity provisioning
JP5801482B2 (ja) キーバリューストレージに対するデータの保存および読み出しを行う方法およびシステム
US11664973B2 (en) Trust-varied relationship between blockchain networks
JP2023542681A (ja) ブロックチェーンの許可フレームワークへのデバイスアイデンティティの統合
Konashevych Cross-blockchain protocol for public registries
CN110866289A (zh) 基于区块链的数据处理方法、装置、服务器及存储介质
US11360966B2 (en) Information processing system and method of controlling information processing system
JP2023544518A (ja) オペレーティングシステムを公開するためのブロックチェーンベースのシステムおよび方法
US20210264419A1 (en) Resolution of conflicting data
US20210126787A1 (en) Optimal endorser node determination based on state
KR20190140550A (ko) 블록체인 기반 지식재산 공유경제 시스템 및 그 방법
WO2021039453A1 (ja) 制御方法、サーバ、および、プログラム
US11451373B2 (en) Dynamic management of user identifications
Ali et al. Blockstack technical whitepaper

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021542753

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20859117

Country of ref document: EP

Kind code of ref document: A1