Information processing method, information processing device, information processing system, and program
The method and device facilitate transaction data storage in distributed ledgers by a secondary device with authorization, addressing data leakage and processing concerns, ensuring secure and efficient data transfer.
Patent Information
- Application Number
- PCT/JP2025/024498
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-08-06
- Filing Date
- 2025-07-08
- Publication Date
- 2026-02-12
AI Technical Summary
Information processing devices without authorization information face challenges in storing transaction data in distributed ledgers, particularly in private and consortium blockchains, leading to concerns about data leakage and increased processing and storage usage.
An information processing method and device that enables transaction data transfer to a distributed ledger by a second information processing device with authority information, allowing devices without authorization to store data through acquisition and transfer steps, including encryption and decryption processes to maintain data integrity and privacy.
Enables transaction data storage in distributed ledgers without direct participation, reducing processing load and preventing data tampering while maintaining data secrecy and integrity.
Smart Images

Figure JP2025024498_12022026_PF_FP_ABST
Abstract
Description
Information processing method, information processing device, information processing system, and program
[0001] The present disclosure relates to an information processing method, an information processing device, an information processing system, and a program.
[0002] Conventionally, various types of information have been recorded and managed in a distributed ledger. For example, Patent Literature 1 discloses an information processing system that records and manages information related to virtual currency in a distributed ledger.
[0003] Japanese Patent Application Laid-Open No. 2020-135228
[0004] JIHall, “Notes on Coding Theory Chapter 4. Hamming Codes”, [online], 9 September 2010, [retrieved August 5, 2020], Internet <URL: https: / / users.math.msu.edu / users / halljo / classes / codenotes / Hamming.pdf>
[0005] However, there are cases where an information processing device that does not have authorization information to store transaction data in a distributed ledger wants to store transaction data in the distributed ledger. However, Patent Document 1 does not disclose a technology for the information processing device to store transaction data in the distributed ledger.
[0006] Therefore, the present disclosure provides an information processing method, an information processing device, an information processing system, and a program that enable an information processing device that does not have authority information to store transaction data in a distributed ledger to store transaction data in the distributed ledger.
[0007] An information processing method according to one aspect of the present disclosure is an information processing method executed by a second information processing device having authority information for storing transaction data in a second distributed ledger, and includes the steps of acquiring first transaction data to be transferred from a first information processing device different from the second information processing device to a second ledger server that holds the second distributed ledger, and transferring second transaction data based on the acquired first transaction data to the second ledger server.
[0008] An information processing device according to one aspect of the present disclosure is an information processing device having authority information for storing transaction data in a distributed ledger, and includes an acquisition unit that acquires first transaction data to be transferred from another information processing device different from the information processing device to a ledger server that holds the distributed ledger, and a transfer unit that transfers second transaction data based on the acquired first transaction data to the ledger server.
[0009] An information processing system according to one aspect of the present disclosure comprises the second information processing device that executes the above-described information processing method, and a second distributed ledger system including the second ledger server that holds the second distributed ledger having authority information for the second information processing device to store transaction data.
[0010] A program according to one aspect of the present disclosure is a program for causing a computer to execute the above-described information processing method.
[0011] According to one aspect of the present disclosure, it is possible to realize an information processing method, etc., in which an information processing device that does not have authority information to store transaction data in a distributed ledger can store transaction data in the distributed ledger.
[0012] FIG. 1 is a diagram illustrating a configuration of an information processing system according to an embodiment. FIG. 2 is a block diagram illustrating a functional configuration of a first user terminal according to an embodiment. FIG. 3 is a block diagram illustrating a functional configuration of a second user terminal according to an embodiment. FIG. 4 is a block diagram illustrating a functional configuration of a ledger server according to an embodiment. FIG. 5 is a sequence diagram illustrating an operation of an information processing system according to an embodiment. FIG. 6A is a diagram illustrating a data structure of transaction data according to an embodiment. FIG. 6B is a diagram illustrating a data structure of transaction data according to an embodiment. FIG. 7 is a sequence diagram illustrating an operation of an information processing system according to a first modification of an embodiment. FIG. 8 is a sequence diagram illustrating an operation of an information processing system according to a second modification of an embodiment. FIG. 9 is a sequence diagram illustrating an operation of an information processing system according to a third modification of an embodiment. FIG. 10 is a sequence diagram illustrating an operation of an information processing system according to a fourth modification of an embodiment. FIG. 11 is a diagram illustrating a data structure of transaction data according to a fourth modification of an embodiment. FIG. 12 is a sequence diagram illustrating an operation of an information processing system according to a fifth modification of an embodiment. FIG. 13 is a diagram illustrating a data structure of transaction data according to the fifth modification of an embodiment. Fig. 14 is a sequence diagram showing the operation of an information processing system according to a sixth modification of an embodiment. Fig. 15 is a sequence diagram showing the operation of an information processing system according to a seventh modification of an embodiment. Fig. 16 is a sequence diagram showing the operation of an information processing system according to an eighth modification of an embodiment. Fig. 17 is an explanatory diagram showing the data structure of a blockchain. Fig. 18 is an explanatory diagram showing the data structure of transaction data. Fig. 19 is an explanatory diagram showing transaction data related to the execution of a smart contract. Fig. 20 is an explanatory diagram showing processing related to the execution of a smart contract.
[0013] (Background to the present disclosure) Distributed ledger technology such as blockchain makes it virtually impossible to falsify data (transaction data), and so its application in various fields as a mechanism for managing various types of data is being considered. There are three types of blockchain: "public type," "private type," and "consortium type."
[0014] A public blockchain is an open blockchain that anyone can join, with no restrictions on participants and no permission requirements, and data is publicly available to all participants.
[0015] A private blockchain is a blockchain in which participants are limited by a single administrator. It is managed by specific participants authorized by a central administrator.
[0016] The consortium type is a blockchain in which participants are limited by multiple administrators, and data is only made available to participants.
[0017] In this way, in private and consortium blockchains, if you are not participating in the blockchain, you cannot store data in the blockchain.
[0018] On the other hand, when users submit private information to participate in private and consortium blockchains, there is a risk of the submitted information being leaked. Also, when participating in private and consortium blockchains, there is a risk that the processing volume and storage usage of the user's information processing terminal will increase. As such, there are concerns about users participating in private and consortium blockchains.
[0019] Therefore, it may be desirable to be able to store data in a private or consortium blockchain without participating in the private or consortium blockchain. However, Patent Document 1 does not disclose such a technology. Note that the distributed ledger technology is not limited to blockchain, and may be other technologies such as hash graphs.
[0020] Therefore, the inventors of the present application have conducted extensive research into information processing methods that enable an information processing device that does not have the authority information to store transaction data in a distributed ledger to store transaction data in the distributed ledger, and have devised the information processing methods described below.
[0021] An information processing method according to a first aspect of the present disclosure is an information processing method executed by a second information processing device having authority information for storing transaction data in a second distributed ledger, and includes the steps of acquiring first transaction data to be transferred from a first information processing device different from the second information processing device to a second ledger server that holds the second distributed ledger, and transferring second transaction data based on the acquired first transaction data to the second ledger server.
[0022] This allows the second information processing device to transfer transaction data to the second distributed ledger even if the first information processing device does not have the authority information to store transaction data in the second distributed ledger. Therefore, an information processing device that does not have the authority information to store transaction data in the distributed ledger can store transaction data in the distributed ledger.
[0023] Also, for example, an information processing method according to a second aspect may be an information processing method according to the first aspect, wherein the first information processing device and the second information processing device have authority information to store transaction data in a first distributed ledger different from the second distributed ledger, and in the acquiring step, the first transaction data may be acquired via a first ledger server that holds the first distributed ledger.
[0024] This allows information regarding the transfer request for the first transaction data to be recorded in the first distributed ledger.
[0025] Also, for example, an information processing method according to a third aspect may be the information processing method according to the second aspect, further including a step of checking with the first distributed ledger whether or not there is a transfer request to the second distributed ledger, and in the acquiring step, if there is a transfer request, acquiring the first transaction data corresponding to the transfer request.
[0026] This makes it possible to acquire the first transaction data for which a transfer request has been made, triggered by checking whether or not there is a transfer request.
[0027] Also, for example, the information processing method according to the fourth aspect may be an information processing method according to the second or third aspect, and in the acquiring step, the first transaction data automatically transmitted from the first ledger server may be acquired.
[0028] This makes it possible to automatically acquire the first transaction data for which a transfer request has been made, thereby reducing the amount of processing by the second information processing device.
[0029] Also, for example, an information processing method according to a fifth aspect is an information processing method according to any one of the second to fourth aspects, in which the first information processing device does not have authority information to store transaction data in the second distributed ledger.
[0030] As a result, although the first information processing device does not have the authority information to store transaction data in the second distributed ledger, the transaction data can be transferred to the second distributed ledger by the second information processing device.
[0031] Also, for example, an information processing method according to a sixth aspect may be an information processing method according to any one of the second to fifth aspects, and in the transferring step, the second transaction data may be transferred to the second ledger server with additional information added indicating that the transfer is a transfer request from the first information processing device.
[0032] This makes it possible to identify the source of the transfer request (here, the first information processing device) by checking the second transaction data. Also, for example, it is possible to prevent the source of the request (e.g., the generator) of the data (data portion) included in the second transaction data from being tampered with.
[0033] Furthermore, for example, an information processing method according to a seventh aspect is the information processing method according to the sixth aspect, wherein the additional information may include information capable of identifying the first information processing device.
[0034] This makes it possible to prevent information that can identify the first information processing device, such as the address of the first information processing device, from being tampered with.
[0035] Furthermore, for example, the information processing method according to the eighth aspect may be the information processing method according to the sixth or seventh aspect, in which the additional information includes information about third transaction data stored in the first distributed ledger, including a request for transfer.
[0036] This makes it possible to prevent information relating to the third transaction data from being tampered with.
[0037] Furthermore, for example, an information processing method according to a ninth aspect may be an information processing method according to any one of the first to eighth aspects, in which the first transaction data includes at least one of information identifying the second information processing device requesting the transfer of the first transaction data and information regarding a fee to be paid to the second information processing device.
[0038] This makes it possible to prevent tampering with at least one of the information identifying the second information processing device and the information regarding the fee to be paid to the second information processing device.
[0039] Furthermore, for example, an information processing method according to a tenth aspect may be an information processing method according to any one of the first to ninth aspects, wherein in the acquiring step, the first transaction data in which a data portion to be transferred to the second ledger server is encrypted is acquired using a public key corresponding to a private key held by the second information processing device, and in the transferring step, the data portion of the first transaction data is decrypted using the private key, and the second transaction data including the decrypted data portion is transferred to the second ledger server.
[0040] This allows the content of the first transaction data transmitted by the first information processing device to be kept secret, for example, the identity of the first information processing device that is the requester can be kept secret.
[0041] Also, for example, an information processing method according to an eleventh aspect may be the information processing method according to the tenth aspect, wherein the acquiring step includes a step of acquiring the first transaction data further including a first hash value of the data portion before encryption, and comparing the first hash value with a second hash value of the data portion decrypted with the private key, and the transferring step includes a step of transferring the second transaction data including the decrypted data portion to the second ledger server if the first hash value and the second hash value match.
[0042] By comparing the hash values, it is possible to determine whether the transfer request was sent to the device itself. For example, by transferring only the first transaction data sent to the device itself, it is possible to reduce the amount of processing performed by the device itself.
[0043] Furthermore, for example, an information processing method according to a twelfth aspect may be an information processing method according to the tenth or eleventh aspect, wherein the acquiring step includes a step of acquiring the first transaction data further including a fixed message encrypted with the public key and determining whether the encrypted fixed message can be decrypted, and the transferring step may include a step of transferring the second transaction data including the decrypted data portion to the second ledger server if the encrypted fixed message can be decrypted.
[0044] This allows the device to determine whether the transfer request was sent to the device itself using the fixed message. For example, by transferring only the first transaction data sent to the device itself, the amount of processing by the device itself can be reduced.
[0045] Further, for example, an information processing method according to a thirteenth aspect is an information processing method according to any one of the first to twelfth aspects, wherein there are a plurality of second information processing devices to which a transfer request for the first transaction data is made, and the acquiring step includes acquiring the first transaction data, the first transaction data further including data to be transferred to the second ledger server, encrypted using any one of a plurality of public keys corresponding to each private key of the plurality of second information processing devices, a first hash value of the data before encryption, and an error correction code, decrypting the first transaction data with the private key of the second information processing device, correcting the decrypted data with the error correction code, and comparing the first hash value with a second hash value of the corrected data, and the transferring step may include transferring the second transaction data including the corrected data to the second ledger server if the first hash value and the second hash value match.
[0046] This increases the number of second information processing devices where the first hash value and the second hash value match compared to when error correction codes are not used, thereby preventing transfer requests from concentrating on specific second information processing devices.
[0047] Furthermore, for example, an information processing method according to a fourteenth aspect may be an information processing method according to any one of the first to thirteenth aspects, wherein in the acquiring step, first transaction data, which is data to be transferred to the second ledger server and which is data encrypted using a second public key corresponding to a first private key held by the second information processing device, is acquired using a first public key corresponding to a first private key held by the second information processing device, and which is further encrypted using a second public key corresponding to a second private key held by a third information processing device; and in the transferring step, the data of the first transaction data may be decrypted using the first private key, and the second transaction data, which includes the data decrypted with the first private key and encrypted with the second public key, may be transferred to the second ledger server.
[0048] This allows, for example, the first information processing device, which is the original request source, to be kept more secret.
[0049] Furthermore, for example, an information processing method according to a fifteenth aspect may be an information processing method according to any one of the second to fourteenth aspects, in which a smart contract that executes a payment stored in the first distributed ledger is executed, thereby obtaining compensation for the transfer of the first transaction data.
[0050] This allows payments to be made by executing smart contracts stored in the first distributed ledger.
[0051] Also, for example, an information processing method according to a sixteenth aspect is an information processing method according to any one of the first to fifteenth aspects, in which the second distributed ledger is a blockchain, and the second transaction data may be stored in the blockchain.
[0052] This allows the second ledger server to more easily prevent tampering with the information it manages by using a blockchain as a distributed ledger.
[0053] Also, for example, an information processing device according to a seventeenth aspect is an information processing device having authority information for storing transaction data in a distributed ledger, and is equipped with an acquisition unit that acquires first transaction data to be transferred from another information processing device different from the information processing device to a ledger server that holds the distributed ledger, and a transfer unit that transfers second transaction data based on the acquired first transaction data to the ledger server.
[0054] This provides the same effects as the information processing method according to the first aspect described above.
[0055] In addition, the information processing system according to the eighteenth aspect comprises the second information processing device that executes the information processing method according to any one of the first to sixteenth aspects, and a second distributed ledger system including the second ledger server that holds the second distributed ledger having authority information for the second information processing device to store transaction data.
[0056] This provides the same effects as the information processing method according to the first aspect described above.
[0057] Furthermore, for example, an information processing system according to a 19th aspect may be the information processing system according to the 18th aspect, further comprising a first distributed ledger system including a first ledger server that holds a first distributed ledger having authority information for the first information processing device and the second information processing device to store transaction data, wherein the first ledger server determines whether the transaction data has been stored in the second distributed ledger, and if it determines that the transaction data has been stored in the second distributed ledger, executes a smart contract that makes the payment stored in the first distributed ledger, thereby executing a payment process for the second information processing device.
[0058] This allows payments to be made by executing a smart contract stored in the first distributed ledger when transaction data is stored in the second distributed ledger.
[0059] A program according to a twentieth aspect is a program for causing a computer to execute the information processing method according to any one of the first to sixteenth aspects.
[0060] This provides the same effect as the above-described information processing method.
[0061] These general or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a non-transitory recording medium such as a computer-readable CD-ROM, or as any combination of the system, method, integrated circuit, computer program, or recording medium. The program may be pre-stored in the recording medium, or may be supplied to the recording medium via a wide area communication network including the Internet.
[0062] Hereinafter, the embodiments will be specifically described with reference to the drawings.
[0063] The embodiments described below are all comprehensive or specific examples. The numerical values, components, component placement and connection configurations, steps, and step order shown in the following embodiments are merely examples and are not intended to limit the present disclosure. Furthermore, among the components in the following embodiments, components not described in independent claims are described as optional components.
[0064] Furthermore, each figure is a schematic diagram and is not necessarily an exact illustration. Therefore, for example, the scales of the figures do not necessarily match. Furthermore, in each figure, substantially the same components are given the same reference numerals, and redundant explanations are omitted or simplified.
[0065] Furthermore, in this specification, terms indicating relationships between elements such as "same," as well as numerical values and numerical ranges, are not expressions that only express a strict meaning, but are expressions that also include a substantially equivalent range, for example, a difference of about several percent (or about 10%).
[0066] Furthermore, in this specification, ordinal numbers such as "first" and "second" do not refer to the number or order of components unless otherwise specified, but are used for the purpose of avoiding confusion and distinguishing between components of the same type.
[0067] (Embodiment) Hereinafter, an information processing system according to the present embodiment will be described with reference to Figs. 1 to 6B.
[0068] [1. Configuration of Information Processing System] First, the configuration of an information processing system according to this embodiment will be described with reference to Figures 1 to 4. Figure 1 is a diagram showing the configuration of an information processing system 10 according to this embodiment. In Figure 1, the communication path of the first user terminal 110 is shown by a dashed line, and the communication path of the second user terminal 120 is shown by a broken line. Note that Figure 1 shows an exemplary functional configuration of the information processing system 10, and the functional configuration of the information processing system 10 is not limited to that shown in Figure 1.
[0069] 1 , the information processing system 10 includes, for example, a first user terminal 110, a second user terminal 120, ledger servers 200a, 200b, and 200c, and ledger servers 300a, 300b, and 300c, which are communicatively connected via a communication network 400.
[0070] Hereinafter, ledger servers 200a, 200b, and 200c will also be referred to as ledger servers 200a, etc. (ledger servers 200a to 200c), and ledger servers 300a, 300b, and 300c will also be referred to as ledger servers 300a, etc. (ledger servers 300a to 300c). In addition, storage devices 201a, 201b, and 201c will also be referred to as storage devices 201a, etc. (storage devices 201a to 201c), and storage devices 301a, 301b, and 301c will also be referred to as storage devices 301a, etc. (storage devices 301a to 301c).
[0071] The ledger servers 200a, etc. are connected to the storage devices 201a, etc. The ledger servers 200a, etc. may be connected to the storage devices 201a, etc. via the communication network 400, or may include the storage devices 201a, etc. internally. The storage devices 201a, etc. have a distributed ledger in which transaction data and blocks of the blockchain are electronically recorded. The ledger servers 200a, 200b, and 200c make up the first distributed ledger system 20 (first ledger system). The ledger server 200a is an example of a first ledger server.
[0072] The ledger servers 300a, etc. are connected to the storage devices 301a, etc. The ledger servers 300a, etc. may be connected to the storage devices 301a, etc. via a communication network 400, or may include the storage devices 301a, etc. internally. The storage devices 301a, etc. have a distributed ledger in which transaction data and blocks of the blockchain are electronically recorded. The ledger servers 300a, 300b, and 300c make up the second distributed ledger system 30 (second ledger system). The ledger server 300a is an example of a second ledger server.
[0073] The first distributed ledger system 20 and the second distributed ledger system 30 are different distributed ledger systems and manage different distributed ledgers. The first distributed ledger system 20 and the second distributed ledger system 30 may, for example, be distributed ledger systems that manage different types of data. At least one of the first distributed ledger system 20 and the second distributed ledger system 30 may be a distributed ledger system specialized in managing specific data. The first distributed ledger system 20 and the second distributed ledger system 30 each manage a distributed ledger using a blockchain. The number of ledger servers that make up the distributed ledger system is not limited to three, as long as it is one or more.
[0074] The first user terminal 110 is a first information processing device (or another information processing device) owned by a first user. The first user terminal 110 is an information processing device that participates in a first blockchain managed on the distributed ledger of the first distributed ledger system 20 (the distributed ledger 214a described below, an example of the first distributed ledger) but does not participate in a second blockchain managed on the distributed ledger of the second distributed ledger system 30 (an example of the second distributed ledger). Participating in a blockchain means being permitted to transfer transaction data to that blockchain. In other words, the first user terminal 110 can transfer transaction data to only the first blockchain out of the first and second blockchains. Participating in a blockchain may also mean being permitted to view transaction data managed in that blockchain. Participating in a blockchain may also mean, for example, being permitted to store transaction data (and even view the stored transaction data) in a distributed ledger that only computers authorized by a specific organization or the like can participate in.
[0075] In other words, the first user terminal 110 has authority information to store transaction data in the first distributed ledger of the first distributed ledger system 20 (or the first blockchain managed on the first distributed ledger). Furthermore, the first user terminal 110 does not have authority information to store transaction data in the second distributed ledger of the second distributed ledger system 30 (or the second blockchain managed on the second distributed ledger). The authority information may be, for example, information indicating that the storage of transaction data in the distributed ledger is permitted by the administrator of the distributed ledger system.
[0076] Furthermore, if the first user terminal 110 is registered with a common account on each blockchain, when it is determined that the account of the first user terminal 110 is registered in the first distributed ledger and not registered in the second distributed ledger, it is possible to confirm from that account that the first user terminal 110 is participating only in the first blockchain.
[0077] FIG. 2 is a block diagram showing the functional configuration of the first user terminal 110 according to this embodiment.
[0078] 2, the first user terminal 110 includes a communication unit 111, a reception unit 112, a transaction data generation unit 113, a control unit 114, and a storage unit 115. The first user terminal 110 may be realized by a mobile terminal such as a stationary personal computer (PC), a smartphone, or a tablet.
[0079] The communication unit 111 communicates with the second user terminal 120, the ledger server 200a, etc. via the communication network 400. This communication may be performed using TLS (Transport Layer Security). In this case, an encryption key for TLS communication may be held by the communication unit 111. The communication unit 111 may be configured to include, for example, a communication circuit (or a communication module).
[0080] The reception unit 112 receives an operation from the first user. The reception unit 112 may have a touch panel, buttons, or the like, or may acquire an operation received by an external reception device via the communication unit 111. The reception unit 112 may also acquire input information for generating transaction data from the first user.
[0081] The reception unit 112 may also generate a smart contract based on the received information. Here, the smart contract is programmed to be able to execute a payment process for paying a fee to a user who has executed a transfer request for transaction data.
[0082] The transaction data generation unit 113 generates transaction data in the blockchain based on the data, information, etc. acquired from the reception unit 112. For example, the transaction data generation unit 113 generates transaction data including a blockchain address held by the user, data to be managed in the blockchain, and a signature. An example of the data structure of the transaction data will be described later with reference to Figures 6A and 6B, etc.
[0083] The transaction data generation unit 113 may further assign an identifier to the transaction data when generating the transaction data. The transaction data generation unit 113 may generate a signature using a signature generation key individual to the user. The transaction data generation unit 113 may also generate transaction data that includes the smart contract generated by the reception unit 112.
[0084] The control unit 114 is a control device that executes various processes related to storing transaction data in the distributed ledger of the first distributed ledger system 20 in which the first user terminal 110 participates. The control unit 114 executes processes such as data encryption and hash value calculation.
[0085] The storage unit 115 stores information such as transaction data generated by the transaction data generation unit 113. The storage unit 115 may also store information such as information received by the reception unit 112 and information on smart contracts.
[0086] 1 , the second user terminal 120 is a second information processing device (or another information processing device) owned by a second user different from the first user. The second user terminal 120 is an information processing device participating in both a first blockchain managed on a first distributed ledger (e.g., distributed ledger 214a described below) of the first distributed ledger system 20 and a second blockchain managed on a second distributed ledger of the second distributed ledger system 30. In other words, the second user terminal 120 is capable of transferring transaction data to both the first blockchain and the second blockchain.
[0087] In other words, the second user terminal 120 has authority information to store transaction data in the first distributed ledger of the first distributed ledger system 20 (or the first blockchain managed on the first distributed ledger). In addition, the second user terminal 120 has authority information to store transaction data in the second distributed ledger of the second distributed ledger system 30 (or the second blockchain managed on the second distributed ledger).
[0088] In addition, if the second user terminal 120 is registered with a common account in the first blockchain and the second blockchain, it is possible to confirm from the account that the second user terminal 120 is participating in both the first blockchain and the second blockchain. For example, the first user terminal 110 can determine whether the second user terminal 120 is participating in both the first blockchain and the second blockchain by obtaining information on whether the account of the second user terminal 120 is registered in both the first blockchain and the second blockchain.
[0089] FIG. 3 is a block diagram showing the functional configuration of the second user terminal 120 according to this embodiment.
[0090] 3, the second user terminal 120 includes a communication unit 121, a reception unit 122, a transaction data generation unit 123, a control unit 124, and a storage unit 125. The second user terminal 120 may be realized by a mobile terminal such as a stationary PC, a smartphone, or a tablet.
[0091] The communication unit 121 communicates with the first user terminal 110, the ledger server 200a, etc., and the ledger server 300a, etc. via the communication network 400. This communication may be performed using TLS. In this case, an encryption key for TLS communication may be held by the communication unit 121. The communication unit 121 may be configured to include, for example, a communication circuit (or a communication module).
[0092] The communication unit 121 functions as an acquisition unit that acquires first transaction data from the first user terminal 110 .
[0093] The reception unit 122 receives an operation from the second user. The reception unit 122 may have a touch panel, buttons, or the like, or may receive an operation received by an external reception device via the communication unit 121. The reception unit 122 may also receive input information for generating transaction data from the second user. The reception unit 122 may also generate a smart contract based on the received information.
[0094] The transaction data generation unit 123 generates transaction data in the blockchain based on the data and input information acquired from the reception unit 122. For example, the transaction data generation unit 123 generates transaction data including a blockchain address held by the user, data to be managed in the blockchain, and a signature. An example of the data structure of the transaction data will be described later with reference to Figures 6A and 6B, etc.
[0095] The transaction data generation unit 123 functions as a transfer unit that generates second transaction data based on the first transaction data acquired via the communication unit 121 and transfers the generated second transaction data to a ledger server (e.g., ledger server 300a) that holds the second distributed ledger via the communication unit 121.
[0096] The transaction data generation unit 123 may further assign an identifier to the transaction data when generating the transaction data. The transaction data generation unit 123 may generate a signature using a signature generation key individual to the user. The transaction data generation unit 123 may also generate transaction data that includes the smart contract generated by the reception unit 122.
[0097] The control unit 124 is a control device that controls each component of the second user terminal 120. The control unit 124 also executes a predetermined process related to a transaction data transfer request from the first user terminal 110. For example, the control unit 124 adds additional information indicating that the transfer request is from the first user terminal 110 to the first transaction data from the first user terminal 110, and transfers the second transaction data with the additional information added to a ledger server (e.g., ledger server 300a) of the second distributed ledger system 30. The additional information may include information that can identify the first user terminal 110, or may include information related to the transaction data stored in the first blockchain, including a transfer request. The control unit 124 may also execute a process related to decrypting the transaction data.
[0098] The storage unit 125 stores information such as transaction data generated by the transaction data generation unit 123. The storage unit 125 may also store information such as information received by the reception unit 122 and information on smart contracts.
[0099] 1 , the first distributed ledger system 20 includes ledger servers 200 a, 200 b, and 200 c as a group of servers that hold a distributed ledger. When at least one of the ledger servers 200 a, etc. receives transaction data, the transaction data is shared by all of the ledger servers 200 a, etc. and stored in the distributed ledger.
[0100] The ledger server 200a is a computer (server) that holds and manages a distributed ledger. The ledger server 200a holds a distributed ledger 214a and updates the distributed ledger while synchronizing it with other ledger servers (specifically, ledger servers 200b and 200c).
[0101] The ledger servers 200b and 200c are each a server similar to the ledger server 200a, and operate independently of the ledger server 200a.
[0102] Similarly, the second distributed ledger system 30 includes ledger servers 300a, 300b, and 300c as a group of servers that hold a distributed ledger. Each of the ledger servers 300a, 300b, and 300c has the same configuration as each of the ledger servers 200a, 200b, and 200c.
[0103] 4 is a block diagram showing the functional configuration of the ledger server 200a according to this embodiment. Since the configurations of the ledger servers 200b, 200c, and the ledger server 300a are similar to that of the ledger server 200a, the following description will be given taking the ledger server 200a as an example.
[0104] 4, the ledger server 200a includes a communication unit 211, a ledger management unit 212, an execution unit 213, a storage unit 214, and a control unit 215. At least some of the functional units included in the ledger server 200a are realized by a processor (e.g., a CPU) included in the ledger server 200a executing a program using a memory.
[0105] The communication unit 211 is a communication interface communicatively connected to the communication network 400. The communication unit 211 may be a communication interface for a wired communication standard (e.g., Ethernet (registered trademark) or the like), or may be a communication interface for a wireless communication standard (e.g., Wi-Fi (registered trademark) or the like, or a mobile communication system (3G, 4G, 5G, or the like)). The communication unit 211 is used when a functional unit included in the ledger server 200a communicates with another device. For example, the communication unit 211 is used when a functional unit included in the ledger server 200a communicates with any of the first user terminal 110, the second user terminal 120, the ledger servers 200b and 200c, the ledger server 300a, etc.
[0106] The ledger management unit 212 performs processing related to the distributed ledger 214a and transaction data. Specifically, when the ledger management unit 212 receives transaction data from the first user terminal 110, the second user terminal 120, etc., it verifies the digital signature included in the received transaction data and controls storage of successfully verified transaction data in the distributed ledger 214a held by the storage unit 214. When storing transaction data in the distributed ledger 214a, the ledger management unit 212 generates a block including the transaction data to be stored, and can control storage of the generated block in the distributed ledger 214a when agreement is reached with the ledger management units of the other ledger servers, ledger servers 200b and 200c.
[0107] The execution unit 213 executes information processing. The execution unit 213 can execute information processing by executing a smart contract using, for example, the distributed ledger 214a. Note that when the execution unit 213 does not use a smart contract, it executes information processing according to normal program code.
[0108] The storage unit 214 is a storage device that stores information. The storage unit 214 stores a distributed ledger 214a. The storage unit 214 is realized by a non-volatile storage device (such as a solid state drive (SSD) or a hard disk drive (HDD)).
[0109] The distributed ledger 214a stores data having a structure in which blocks, each containing one or more pieces of transaction data, are linked in a chain. The one or more pieces of transaction data stored in the distributed ledger 214a may include transaction data containing the contract code of a smart contract, transaction data containing instructions for executing a smart contract, or transaction data containing other information.
[0110] In this embodiment, the distributed ledger held by the distributed ledger 214a and the ledger server 300a, etc. is a blockchain.
[0111] The control unit 215 performs various processes related to storing transaction data from the first user terminal 110 in the distributed ledger of the second distributed ledger system 30 in which the second user terminal 120 participates. The control unit 215 performs processes such as decrypting data and comparing hash values.
[0112] [2. Operation of the Information Processing System] Next, the operation of the information processing system 10 configured as described above will be described with reference to FIGS. 5 to 6B. FIG. 5 is a sequence diagram showing the operation (information processing method) of the information processing system 10 according to this embodiment. Note that in FIG. 5 and other figures, the processing illustrated as the first distributed ledger system 20 includes processing executed by one ledger server included in the first distributed ledger system 20 and processing executed by multiple ledger servers (e.g., processing executing a consensus algorithm). Hereinafter, processing executed by one ledger server will be described as being executed by ledger server 200a, but it may also be executed by ledger server 200b or 200c. The same is true for the second distributed ledger system 30; processing executed by one ledger server will be described as being executed by ledger server 300a, but it may also be executed by ledger server 300b or 300c.
[0113] 5, the first user terminal 110 sends a proxy transfer request and a smart contract for payment (payment SC) to the ledger server 200a of the first distributed ledger system 20 (S101). The proxy transfer request includes a request to recruit user terminals to participate in the second distributed ledger system 30. For example, the proxy transfer request includes information for recruiting (or searching for) user terminals to participate in each of the first distributed ledger system 20 and the second distributed ledger system 30.
[0114] The transaction data generation unit 113 generates transaction data including a proxy transfer request and transaction data including a payment SC based on the information received by the reception unit 112. The two generated transaction data are sent via the communication unit 111 to the ledger server 200a of the first distributed ledger system 20. The ledger server 200a stores the two acquired transaction data in the distributed ledger 214a.
[0115] The transaction data including the payment SC may include various transaction data related to procedures or processes in the transaction of the transaction currency (price determination, measured actual value, determined price, payment, etc.). When the first distributed ledger system 20 receives the transaction data, it accepts the procedures or processes in the transaction of the token. A token is value information managed by a distributed ledger, and corresponds to money, points (royalty), gift certificates, coupons, etc., and is exchangeable.
[0116] The first user terminal 110 also sends the proxy transmission request transaction data to the ledger server 200a of the first distributed ledger system 20 as transaction data D1 (first Tx) including the data to be written to the distributed ledger of the second distributed ledger system 30 in which the first user terminal 110 does not participate (S102). For example, the transaction data generator 113 generates transaction data including the data acquired by the receiver 112 based on the data. The generated transaction data is sent to the ledger server 200a via the communicator 111. In the first distributed ledger system 20, when the transaction data sent in step S102 is acquired, the acquired transaction data D1 is stored in the distributed ledger 214a.
[0117] As a result, the ledger server 200a stores in the distributed ledger 214a a record of the transfer request made by the first user terminal 110 and the data to be transferred.
[0118] The order of the processes in steps S101 and S102 is not particularly limited, and step S101 may be executed after step S102, or may be executed simultaneously.
[0119] An example of the data structure of the transaction data D1 transmitted in step S102 will now be described with reference to Fig. 6A. Fig. 6A is a diagram schematically illustrating the data structure of transaction data D1 (first Tx) according to this embodiment. Transaction data D1 is an example of first transaction data.
[0120] As shown in FIG. 6A, transaction data D1 includes sender information, destination information, data (data portion or data body), a digital signature, and a fee (fee information).
[0121] The sender information is information for identifying the sender of the transaction data D1, and includes, for example, a sender address. In the example of Fig. 6A, the sender information includes the address of the first user (first user terminal 110).
[0122] The destination information is information for specifying the destination of the transaction data D1, and includes, for example, the destination address. In the example of Fig. 6A, the destination information is not entered. For example, if the destination has not been determined, the destination information is not entered.
[0123] The data is the data for which a transfer request is made, and includes the data to be transferred, the address of the second user (second user terminal 120), and a fee to the second user (second user terminal 120). Note that the data only needs to include at least the data to be transferred. The data to be transferred is not particularly limited, and may be, for example, a painting, a photograph, digital content, an invention idea, or the contents of a paper. The address of the second user (second user terminal 120) is included when the second user terminal 120 to be the destination has been determined.
[0124] The digital signature includes the signature (digital signature) of the first user (first user terminal 110) who is the sender.
[0125] The fee is a so-called transaction fee, and indicates a fee paid to an individual or organization that performs the calculation work (mining) required to add transaction data D1 to the blockchain.
[0126] Referring again to Figure 5, the second user terminal 120 executes a request confirmation to check whether or not there is a proxy transfer request in the ledger server 200a of the first distributed ledger system 20 (S103). The second user terminal 120 inquires of the first distributed ledger system 20 whether or not there is a proxy transfer request. It can also be said that the second user terminal 120 checks with the first distributed ledger whether or not there is a transfer request to the second distributed ledger. The request confirmation in step S103 may be executed periodically, or may be executed in response to an instruction from the second user. Step S103 is an example of a confirmation step.
[0127] Next, upon receiving a request confirmation from the second user terminal 120, the ledger server 200a of the first distributed ledger system 20 determines whether or not there is a transfer request, and if there is a transfer request, sends the transaction data D1 (first Tx) that is the subject of the transfer request to the second user terminal 120 (S104). The transaction data D1 sent in step S104 is the same data as the transaction data D1 sent in step S102. In other words, upon receiving a confirmation request from the second user terminal 120, the ledger server 200a transfers the transaction data D1 acquired from the first user terminal 110 to the second user terminal 120.
[0128] The second user terminal 120 acquires the transaction data D1 sent from the ledger server 200a in step S104, and transfers the transaction data D1 to the ledger server (e.g., the ledger server 300a) that holds the second distributed ledger. Step S104 is an example of an acquiring step.
[0129] As described above, in this embodiment, the second user terminal 120 checks whether there is a transfer request in the distributed ledger 214a (S103), and if there is a transfer request, acquires the transaction data D1 corresponding to the transfer request (transaction data D1 sent in S104). Also, in this embodiment, the second user terminal 120 acquires the transaction data D1 sent by the first user terminal 110 via the first distributed ledger system 20 (e.g., ledger server 200a). Note that the second user terminal 120 may acquire the transaction data D1 without going through the first distributed ledger system 20 (e.g., ledger server 200a). For example, the second user terminal 120 may acquire the transaction data D1 directly from the first user terminal 110 via communication.
[0130] Next, the second user terminal 120 acquires the transaction data D1 from the ledger server 200a, and then transfers transaction data D2 (second Tx) based on the acquired transaction data D1 to the ledger server 300a of the second distributed ledger system 30 (S105). Step S105 is an example of a transferring step.
[0131] In step S105, the transaction data D2 is stored in the second distributed ledger of the ledger server 300a. In this embodiment, the second transaction data is stored in a blockchain.
[0132] The data structure of the transaction data D2 transferred in step S105 will now be described with reference to Fig. 6B. Fig. 6B is a diagram schematically illustrating the data structure of the transaction data D2 according to this embodiment. The transaction data D2 is an example of second transaction data.
[0133] As shown in FIG. 6B, transaction data D2 includes sender information, destination information, data (data portion or data body), a digital signature, and a fee (fee information).
[0134] The sender information is information for identifying the sender of the transaction data D2, and includes, for example, a sender address. In the example of Fig. 6B, the sender information includes the address of the second user (second user terminal 120).
[0135] The destination information is information for specifying the destination of the transaction data D2, and includes, for example, the destination address. In the example of Fig. 6B, no destination information is written.
[0136] The data is the target data for which a transfer request is made, and includes the data to be transferred, information indicating that the first user (first user terminal 110) is the requester, etc. The information indicating that the first user (first user terminal 110) is the requester may include, for example, information about the requester (transferor) such as the address of the first user terminal 110, or may include information indicating the transaction data D1 of the transfer request stored in a distributed ledger (e.g., distributed ledger 214a) of the first distributed ledger system 20.
[0137] The transaction data generation unit 123 generates information indicating that the first user (first user terminal 110) is the requester based on the sender information of the transaction data D1. For example, the transaction data generation unit 123 may generate transaction data D2 that includes the sender information of the transaction data D1 (e.g., the address of the first user) as information indicating that the first user (first user terminal 110) is the requester. Note that, for example, if the data includes an invention idea, the information indicating that the first user (first user terminal 110) is the requester may include information indicating that the invention idea is the idea of the first user.
[0138] The digital signature includes the signature (digital signature) of the second user (second user terminal 120) who is the sender.
[0139] The fee is a so-called transaction fee, and includes information indicating the fee to be paid to an individual or organization that performs the computational work (mining) required to add transaction data D2 to the blockchain.
[0140] 5 , if the verification of the transaction data is successful, the ledger management unit of the ledger server 300a in the second distributed ledger system 30 executes a consensus algorithm for the transaction data among the ledger servers 300a and the like (S106). Here, the consensus algorithm may be a consensus algorithm called PBFT (Practical Byzantine Fault Tolerance) or other well-known consensus algorithms such as PoW (Proof of Work). Furthermore, if the validity of the transaction data is verified by the consensus algorithm, the ledger server 300a records a block including the transaction data in the distributed ledger in the storage device 301a of the ledger server 300a.
[0141] As described above, in this embodiment, the ledger management unit of ledger server 300a executes a consensus algorithm among ledger servers 300a, 300b, and 300c. That is, the ledger management unit of ledger server 300a first generates a blockchain block including one or more transaction data. Next, if consensus is reached by executing the consensus algorithm, the ledger management unit of ledger server 300a records the generated block in the storage unit. The block generated by the ledger management unit of ledger server 300a is connected to and recorded in the blockchain recorded in the storage unit.
[0142] Next, the second user terminal 120 executes a payment request to the first distributed ledger system 20 (S107). For example, the second user terminal 120 sends an execution request for the payment SC stored in the first distributed ledger system 20.
[0143] Next, the execution unit 213 of the first distributed ledger system 20 executes a smart contract that executes the payment stored in the first blockchain, thereby executing a payment process for the second user terminal 120 (S108). This allows the second user terminal 120 to obtain compensation for the transfer of the transaction data D1. In step S108, for example, tokens corresponding to a fee may be paid to the second user terminal 120 as compensation. In step S108, for example, the fee may be transferred to the digital account of the second user by deducting tokens corresponding to the fee from the digital account of the first user terminal 110 and adding them to the digital account of the second user terminal 120.
[0144] This allows the first user terminal 110 to store transaction data in the distributed ledger of the second distributed ledger system 30 without participating in the second distributed ledger system 30.
[0145] If there are multiple second user terminals 120 to which the transaction data D1 can be transferred, the control unit 114 may select one of the multiple second user terminals 120 and make a transfer request to that second user terminal 120. The method for selecting one second user terminal 120 is not particularly limited, but examples include a method using past performance, a method using a fee, and a method of random selection.
[0146] Examples of methods using past performance include methods using the number of performances (e.g., the number of transfers made), responses (the time from when a transfer request is made until the transfer is actually made), etc. For example, the second user terminal 120 with the highest or more than a predetermined number of performances, or with the fastest or earlier response time, may be selected as the user terminal to request the transfer. Also, for example, reliability may be calculated based on the number of performances and the response, and the second user terminal 120 with reliability equal to or greater than a predetermined value may be selected as the user terminal to request the transfer.
[0147] In a method using a fee, a second user terminal 120 whose fee is equal to or less than a predetermined price may be selected as the user terminal requesting the transfer. The fees of each of the multiple second user terminals 120 are registered in advance in the distributed ledger of the first distributed ledger system 20 or the second distributed ledger system 30.
[0148] In the random selection method, one second user terminal 120 is selected randomly from among a plurality of second user terminals 120 .
[0149] This allows an appropriate proxy sender to be selected, thereby reducing the number of requests required before proxy sending can be performed.
[0150] 6A, the second user terminal 120 making the transfer request is specified. However, the transfer request may be made without specifying the second user terminal 120. In this case, for example, a reward may be paid to the second user (second user terminal 120) who transfers the transaction data D1 to the ledger server 300a first among the multiple second users. The ledger server 200a may transmit the transaction data D1 to be transferred to each of the multiple second user terminals 120, or may transmit the transaction data D1 to each of the second user terminals 120 that have been requested for confirmation.
[0151] The information processing method disclosed herein may be realized as an information processing method executed by a second user terminal 120 that has authority information to store transaction data in a second distributed ledger.
[0152] (Variations of the Embodiments) Variations of the embodiments will be described below with reference to FIGS. 7 to 16. The following description will focus on differences from the embodiment, and descriptions of content that is the same as or similar to the embodiment will be omitted or simplified. The configuration of the information processing system in each variation may be the same as the configuration of the information processing system 10 according to the embodiment, and descriptions thereof will be omitted. Furthermore, each variation will be described using the reference numerals of the information processing system 10 according to the embodiment.
[0153] (First Variation of the Embodiment) The information processing system 10 according to this variation will be described below with reference to Fig. 7. Fig. 7 is a sequence diagram showing the operation (information processing method) of the information processing system 10 according to this variation. Fig. 7 describes an example in which the ledger server 200a of the first distributed ledger system 20 automatically transmits transaction data D1 for which a transfer request has been made to the second user terminal 120.
[0154] 7, when the ledger server 200a of the first distributed ledger system 20 receives transaction data D1 (proxy transfer request Tx) to be transferred from the first user terminal 110, it automatically transfers the received transaction data D1 to the second user terminal 120 (S104a). For example, the transaction data D1 from the first user terminal 110 may include the address of the second user terminal 120, which is the transfer destination, or information indicating that the second user terminal 120 is the transfer destination may be stored in the first distributed ledger system 20. Furthermore, the automatic transfer of transaction data may be performed, for example, by the execution unit 213 executing a smart contract.
[0155] This eliminates the need for the second user terminal 120 to check with the first distributed ledger system 20 whether there are any transactions to be transferred, thereby reducing the amount of processing required by the second user terminal 120.
[0156] (Second Variation of the Embodiment) The information processing system 10 according to this variation will be described below with reference to FIG. 8. FIG. 8 is a sequence diagram showing the operation (information processing method) of the information processing system 10 according to this variation. FIG. 8 describes an example in which the second user terminal 120 determines whether or not transaction data has been transferred to the second distributed ledger system 30, and if so, executes payment processing. For convenience, steps S101 to S104 shown in FIG. 5 are not shown in FIG. 8. The ledger server 200a is capable of viewing the distributed ledger managed by the second distributed ledger system 30.
[0157] 8, the ledger server 200a of the first distributed ledger system 20 confirms the transferred transaction data D2 (S111). The ledger server 200a makes a confirmation request (e.g., a request to send the transaction data) to determine whether the transaction data D2 is stored in the distributed ledger of the second distributed ledger system 30.
[0158] Next, the ledger server 200a of the first distributed ledger system 20 acquires the transaction data D2 transferred to the ledger server 300a of the second distributed ledger system 30 (S112). In this case, for example, the information for reading the payment SC sent from the second user terminal 120 may include information indicating the address of the transferred transaction data D2 in the distributed ledger of the second distributed ledger system 30.
[0159] Next, the ledger server 200a in the first distributed ledger system 20 determines whether the data portion of the transaction data D2 written in the distributed ledger of the ledger server 300a in the second distributed ledger system 30 is the same as the data portion of the transaction data D1 requested to be transferred (S113). The ledger server 200a determines, for example, whether the transaction data D1 stored in its own distributed ledger 214a matches the transaction data D2 obtained by browsing. The processing of step S113 may be executed by, for example, the payment SC.
[0160] Next, if the ledger server 200a of the first distributed ledger system 20 determines that the transaction data is the same as the transaction data D1 requested to be transferred (Yes in S113), for example, if it determines that transaction data D2 has been stored in the second distributed ledger, it executes payment processing (S108). If it determines that the transaction data is not the same as the transaction data D1 requested to be transferred (No in S113), it terminates the processing. In other words, if it determines that the transaction data is not the same as the transaction data D1 requested to be transferred, the payment processing is not executed.
[0161] The processing of steps S111 and S113 may be performed by, for example, the payment SC.
[0162] In addition, the determination of whether the second user terminal 120 has transferred the transaction data to the second distributed ledger system 30 (here, the ledger server 300a) may be made by the first user using, for example, the first user terminal 110.
[0163] Note that the determination in step S113 does not have to be executed. For example, when the ledger server 200a acquires the hash value of the block in which transaction data D2 is stored, it may determine that transaction data D2 has been transferred to the second distributed ledger system 30 (e.g., ledger server 300a) and execute the payment process. The acquired hash value may also be stored in the storage unit 115. For example, users (user terminals) who later join both the first distributed ledger system 20 and the second distributed ledger system 30 can check whether the hash value acquired by the ledger server 200a is a correct hash value.
[0164] This allows the ledger server 200a to retroactively check whether the transaction data requested for transfer is managed in the second distributed ledger system 30. It also prevents fraudulent activity by the proxy sender (here, the second user terminal 120) and reduces the number of requests required for proxy transmission.
[0165] (Third Variation of the Embodiment) The information processing system 10 according to this variation will be described below with reference to FIG. 9. FIG. 9 is a sequence diagram showing the operation (information processing method) of the information processing system 10 according to this variation. FIG. 9 explains an example in which the payment SC dynamically varies the amount of tokens paid to the second user terminal 120. For convenience, steps S101 to S104 shown in FIG. 5 are not shown in FIG. 9. Furthermore, the ledger server 200a of the first distributed ledger system 20 can view the distributed ledger of the second distributed ledger system 30.
[0166] When the second user terminal 120 executes a payment request (S107), the ledger server 200a sends an external information acquisition request to the external DB 500 (external database) (S121). The external information is information for dynamically varying the amount of tokens to be paid in the payment SC. The external information includes, for example, at least one of the market price of coins or tokens in the first distributed ledger system 20, the market price of coins or tokens in the second distributed ledger system 30, a fee for sending transaction data to the second distributed ledger system 30 (e.g., GAS in Ethereum), and an addition by tip.
[0167] When the external BD 500 receives the external information acquisition request, it sends the external information to the ledger server 200a of the first distributed ledger system 20 (S122).
[0168] Next, the execution unit 213 of the ledger server 200a executes the payment SC to calculate the amount of coins or tokens to be paid based on external information (S123). Taking the amount of tokens as an example, the reference amount of tokens may be varied depending on the market price of the tokens in at least one of the first distributed ledger system 20 and the second distributed ledger system 30. For example, a calculation formula may be set in advance, and the amount of tokens may be calculated based on this calculation formula. In this manner, in this modification, the amount of consideration (e.g., the amount of tokens) to be paid to the second user terminal 120 is calculated in response to the payment request from the second user terminal 120.
[0169] The executing unit 213 may vary the reference token amount in accordance with the data size of the transaction data to be requested to be transferred, in addition to or instead of the external information.
[0170] In step S108, a payment process is executed according to the amount of tokens calculated in step S123.
[0171] This makes it possible to pay token amounts according to various market prices, transaction data size, etc.
[0172] (Fourth Variation of the Embodiment) The information processing system 10 according to this variation will be described below with reference to Figs. 10 and 11. Fig. 10 is a sequence diagram showing the operation (information processing method) of the information processing system 10 according to this variation. In this variation, an information processing method that can keep the contents of the transaction data D1a sent by the first user terminal 110 (such as the sender and the data to be transferred) confidential will be described. In this variation, the storage unit 115 of the first user terminal 110 stores a public key that corresponds to a private key held by the second user (second user terminal 120).
[0173] As shown in Fig. 10 , the control unit 114 of the first user terminal 110 encrypts a message (message m) with the public key (encryption key pk) of the second user terminal 120 (S201). Here, message m may be the contents of transaction data D1a to be sent by proxy, the private key of a wallet containing a reward, etc. The "c" shown in step S201 of Fig. 10 denotes encrypted information obtained by encrypting message m with encryption key pk. Note that Fig. 10 does not illustrate the process corresponding to step S101 shown in Fig. 5. For example, the process corresponding to step S101 shown in Fig. 5 may be executed before step S201 shown in Fig. 10 .
[0174] The transaction data generation unit 113 generates transaction data D1a including the encryption information c generated by the control unit 114, and transmits the transaction data D1a including the encryption information c to the ledger server 200a (S202).
[0175] The transaction data D1a generated by the transaction data generator 113 according to this modification will now be described with reference to Fig. 11. Fig. 11 is a diagram schematically illustrating the data structure of the transaction data D1a according to this modification. The transaction data D1a contains different information than the transaction data D1.
[0176] 11, the transaction data D1a includes information in which the data to be transferred is encrypted. Furthermore, the fee to the second user terminal 120 may also be encrypted.
[0177] 10 again, the second user terminal 120 then executes a request confirmation to confirm whether or not a proxy transfer request has been made to the ledger server 200a (S203). Step S203 is the same process as step S103 shown in FIG.
[0178] Next, upon receiving the request confirmation from the second user terminal 120, the ledger server 200a determines whether or not there is a transfer request, and if there is a transfer request, transmits the transaction data D1a that is the subject of the transfer request (here, the transaction data D1a including the encryption information c) to the second user terminal 120 (S204). The transaction data D1a transmitted in step S204 is the same data as the transaction data D1a transmitted in step S202.
[0179] In addition, in step S204, the second user terminal 120 obtains transaction data D1a via the communication unit 121, in which the data portion to be transferred to the ledger server 300a is encrypted, using a public key corresponding to the private key held by the second user terminal 120.
[0180] Next, when the second user terminal 120 obtains the transaction data D1a from the ledger server 200a, it decrypts the encrypted information c with its own private key (S205) and transfers the transaction data D2 containing the decrypted information c to the ledger server 300a of the second distributed ledger system 30 (S206). Step S205 is an example of a decrypting step.
[0181] Next, if the ledger management unit of the ledger server 300a in the second distributed ledger system 30 successfully verifies the transaction data D2 transferred in step S206 and acquired via the communication unit of the ledger server 300a, it executes a consensus algorithm for the transaction data among the ledger servers 300a, etc. (S207). The processing in step S207 is similar to the processing in step S106 shown in FIG. 5.
[0182] Although omitted in FIG. 10 for convenience, in step S207 and thereafter, for example, processing corresponding to the processing executed in step S106 and thereafter shown in FIG. 5 may be executed.
[0183] As a result, the second distributed ledger in the second distributed ledger system 30 stores transaction data D2 whose sender is the second user terminal 120, thereby keeping the information of the original sender, the first user terminal 110, confidential. Furthermore, it is possible to prevent users who have not requested the transfer from storing transaction data D1 from the first user terminal 110 in the second distributed ledger on the ledger server 300a of the second distributed ledger system 30 as transaction data they generated themselves.
[0184] When the second user terminal 120 decrypts the encrypted information c, it may include the private key of the wallet containing the reward amount in the corresponding transaction data.
[0185] (Variation 5 of the Embodiment) The information processing system 10 according to this variation will be described below with reference to FIGS. 12 and 13. FIG. 12 is a sequence diagram showing the operation (information processing method) of the information processing system 10 according to this variation. This variation describes an information processing method that can conceal the contents of transaction data sent by the first user terminal 110 (such as the sender and the data to be transferred) and can determine that the second user terminal 120 has been selected as the transferor. In this variation, the storage unit 115 of the first user terminal 110 stores a public key corresponding to a private key held by the second user (the second user terminal 120). Furthermore, the first user terminal 110 and the second user terminal 120 that wishes to make a transfer request share a common hash function.
[0186] 12, the control unit 114 of the first user terminal 110 encrypts a message (message m) with the public key (encryption key pk) of the second user, and then calculates a hash value of the unencrypted message m (S301), similar to step S201 shown in Fig. 10. Note that Fig. 12 does not illustrate the process corresponding to step S101 shown in Fig. 5. For example, the process of step S101 shown in Fig. 5 may be executed before step S301 shown in Fig. 12.
[0187] Next, the transaction data generation unit 113 generates transaction data D1b including the encryption information c and hash value h generated by the control unit 114, and transmits the transaction data D1b including the encryption information c and hash value h to the ledger server 200a (S302).
[0188] The transaction data generated by the transaction data generator 113 according to this modification will now be described with reference to Fig. 13. Fig. 13 is a diagram schematically illustrating the data structure of transaction data D1b according to this modification. The transaction data D1b contains different information than the transaction data D1a.
[0189] As shown in FIG. 13, the transaction data D1b includes the transaction data D1a and further includes a hash value of the data to be transferred.
[0190] 12 again, the second user terminal 120 then executes a request confirmation to confirm whether or not a proxy transfer request has been made to the ledger server 200a (S203). Step S203 is the same process as step S103 shown in FIG.
[0191] Next, upon receiving the request confirmation from the second user terminal 120, the ledger server 200a determines whether or not there is a transfer request, and if there is a transfer request, transmits the transaction data D1b that is the subject of the transfer request (here, the transaction data D1b including the encryption information c and the hash value h) to the second user terminal 120 (S303). The transaction data D1b transmitted in step S303 is the same data as the transaction data D1b transmitted in step S302.
[0192] In step S303, the second user terminal 120 also acquires, via the communication unit 121, transaction data D1b that further includes a hash value of the data portion before encryption.
[0193] The second user terminal 120 acquires the transaction data D1b from the ledger server 200a, but at the time of acquisition, it is unclear whether the transaction data D1b is the transaction data D1b requested to be transferred to the second user terminal 120 itself.
[0194] Therefore, when the second user terminal 120 obtains the transaction data D1b from the ledger server 200a, it decrypts the encrypted information c with its own private key (S205) and determines whether the hash value of the information obtained by decrypting the encrypted information c (here, message m) matches the hash value included in the transaction data D1b (S304). Step S304 is an example of a comparison step. If the second user terminal 120 determines that the two hash values match (Yes in S304), it proceeds to step S206. If the second user terminal 120 determines that the two hash values do not match (No in S304), it terminates the process.
[0195] When the two hash values match, it means, for example, that the user terminal to which the first user terminal 110 wishes to make a transfer request is the second user terminal 120. When the two hash values do not match, it means, for example, that the user terminal to which the first user terminal 110 wishes to make a transfer request is different from the second user terminal 120.
[0196] In this way, the second user terminal 120 according to this modification uses the hash value to determine whether the acquired transaction data D1b is the transaction data D1b that has been requested to be transferred to the second user terminal 120.
[0197] In the above description, the first user terminal 110 includes a hash value in the transaction data as information for the second user terminal 120 to determine whether the transaction data is a transfer request for the first user terminal 110. However, this is not limited to this example. The second user terminal 120 may include other information in the transaction data that allows the second user terminal 120 to determine whether the transaction data is a transfer request for the first user terminal 110. For example, the first user terminal 110 may send transaction data that includes information encrypted with a fixed message encryption key pk ("enc (fixed message, pk)") instead of a hash value. For example, if the second user terminal 120 can decrypt the fixed message, it can determine that the transaction data is a transfer request for the second user terminal 120. In this case, the data item of the transaction data includes a fixed message encrypted with the second user's public key (encryption key pk).
[0198] This reduces the amount of processing required for the second user terminal 120 that has received a transfer request to determine whether the transfer request is directed to the second user terminal 120 itself.
[0199] Furthermore, the first user terminal 110 may encrypt the fixed message with a random encryption key rk instead of a specific user's encryption key pk. When there are multiple candidate second user terminals 120 to which a transfer request is to be sent, the random encryption key rk is an encryption key that can be decrypted only by one of the candidate second user terminals 120. For example, the random encryption key rk is a public key that corresponds to the private key of one of the multiple candidate second user terminals 120. In other words, the random encryption key rk is an encryption key that can be decrypted by a random second user terminal 120 among the multiple candidate second user terminals 120.
[0200] This makes it possible to prevent transfer requests from concentrating on a specific second user terminal 120 .
[0201] (Sixth Variation of the Embodiment) An information processing system 10 according to this variation will be described below with reference to FIG. 14 . FIG. 14 is a sequence diagram showing the operation (information processing method) of the information processing system 10 according to this variation. In this variation, an information processing method is described that can prevent transfer requests from concentrating on a specific second user terminal 120 by using an error correction code when there are multiple second user terminals 120 to which transfer requests are to be made. In this variation, the storage unit 115 of the first user terminal 110 stores a public key corresponding to a private key held by the second user (second user terminal 120). Furthermore, the first user terminal 110 and the second user terminal 120 that wishes to make a transfer request share a common hash function.
[0202] As the error correction code, for example, the technique described in Non-Patent Document 1 may be used, but the present invention is not limited to this.
[0203] As shown in Fig. 14, the control unit 114 of the first user terminal 110 encrypts a message (message m) with the random encryption key rk described in the fifth modification of the embodiment (S401). Note that Fig. 14 does not illustrate the process corresponding to step S101 shown in Fig. 5. For example, the process of step S101 shown in Fig. 5 may be executed before step S401 shown in Fig. 14.
[0204] Next, the transaction data generation unit 113 generates transaction data D1c that further includes an error correction code in addition to the encryption information c and hash value h generated by the control unit 114, and transmits the transaction data D1c that further includes the error correction code in addition to the encryption information c and hash value h to the ledger server 200a (S402).
[0205] Error correction is a function that can restore a bit string to its original state even if several bits are flipped. The error correction code is calculated based on the target data to be written to the distributed ledger of the ledger server 300a, and redundant bits are added to the target data. Examples of error correction codes include, but are not limited to, Hamming codes and Reed-Solomon codes. For example, the control unit 114 calculates an error correction code based on the target data, and the transaction data generation unit 113 generates transaction data D1c by adding the error correction code calculated by the control unit 114.
[0206] Next, upon receiving the request confirmation from the second user terminal 120, the ledger server 200a determines whether or not there is a transfer request, and if there is a transfer request, transmits the transaction data D1c that is the subject of the transfer request (here, the transaction data D1c including the encryption information c, the hash value h, and the error correction code) to the second user terminal 120 (S403). The transaction data D1c transmitted in step S403 is the same data as the transaction data D1c transmitted in step S402.
[0207] In addition, in step S403, the second user terminal 120 acquires, via the communication unit 121, transaction data D1c including the encryption information c, the hash value h, and the error correction code.
[0208] Next, when the second user terminal 120 obtains the transaction data D1c from the ledger server 200a, it decrypts the encrypted information c with its own private key (S205) and corrects the decrypted message m with an error correction code (S404). Step S404 is an example of a correction step. As a result, even if a message m encrypted with a random encryption key rk is encrypted using a private key that does not completely correspond to the encryption key rk, it can be corrected to the correct data using error correction. In other words, even if a second user terminal 120 has a private key different from the private key corresponding to the random encryption key rk, it is more likely that the message m encrypted with the encryption key rk can be decrypted.
[0209] Next, the control unit 215 of the second user terminal 120 determines whether the hash value of the corrected data (e.g., the corrected message m) matches the hash value h included in the transaction data D1c (S405). If the second user terminal 120 determines that the two hash values match (Yes in S405), it proceeds to step S206, and if it determines that the two hash values do not match (No in S405), it terminates the process. In this way, by comparing the hash values, it is possible to detect cases where the data could not be corrected even using error correction.
[0210] This allows decryption even by a second user terminal 120 that does not have the private key corresponding to the random encryption key rk, thereby preventing transfer requests from concentrating on a specific second user terminal 120 when there are multiple second user terminals 120.
[0211] (Seventh Modification of the Embodiment) The information processing system 10 according to this modification will be described below with reference to Fig. 15. Fig. 15 is a sequence diagram showing the operation (information processing method) of the information processing system 10 according to this modification. In this modification, an information processing method will be described in which, instead of encrypting a message m using a random encryption key rk, a random number and a logical operation are used to pseudo-encrypt the message m. As the logical operation, an example using xor (exclusive OR) will be described below, but the present invention is not limited to this.
[0212] 15 , the control unit 114 of the first user terminal 110 encrypts a message m (S501). Specifically, the control unit 114 may pseudo-encrypt the message m by converting the original message m by XORing the message m with a random number. The encrypted information c includes pseudo-encrypted information of the message m. In this specification, encryption also includes converting the message m by a logical operation or the like without using an encryption key.
[0213] Next, the transaction data generation unit 113 generates transaction data D1d by further adding an error correction code to the encrypted information c and hash value h generated by the control unit 114, and transmits the transaction data D1d by further adding the error correction code to the encrypted information c and hash value h to the ledger server 200a (S502). The error correction code here is a bit string based on the message m converted by XORing the message m with a random number.
[0214] Next, upon receiving the request confirmation from the second user terminal 120, the ledger server 200a determines whether or not a transfer request has been made, and if a transfer request has been made, transmits the transaction data D1d that is the subject of the transfer request (here, the transaction data D1d including the encryption information c, the hash value h, and the error correction code) to the second user terminal 120 (S503). The transaction data D1d transmitted in step S503 is the same data as the transaction data D1d transmitted in step S502.
[0215] The process from step S205 onwards is the same as the process from step S205 onwards shown in FIG. 14, and therefore a description thereof will be omitted.
[0216] Generally, an xor operation is easier to process than encryption and decryption. Therefore, by converting the message m using a logical operation or the like without using an encryption key, the amount of processing required by each of the first user terminal 110 and the second user terminal 120 can be reduced.
[0217] (Variation 8 of the Embodiment) Hereinafter, an information processing system 10 according to this variation will be described with reference to FIG. 16. FIG. 16 is a sequence diagram showing the operation (information processing method) of the information processing system 10 according to this variation. In this variation, an information processing method of chaining encryption will be described. Chaining encryption means further encrypting encrypted information using another encryption key. The third user terminal 130 shown in FIG. 16 has the same functional configuration as the second user terminal 120, and therefore description thereof will be omitted. Furthermore, the third user terminal 130 can execute the same processing as the second user terminal 120.
[0218] 16 , the control unit 114 of the first user terminal 110 encrypts a message m (S601). The control unit 114 generates encrypted information c1 by encrypting the message (message m) using an encryption key pk1, which is a public key corresponding to a private key held by the third user terminal 130. The message m encrypted using the encryption key pk1 cannot be decrypted using the private keys held by the first user terminal 110 and the second user terminal 120.
[0219] The control unit 114 further generates encrypted information c2 by encrypting the encrypted information c1 using an encryption key pk2, which is a public key corresponding to the private key held by the second user terminal 120. The encrypted information c1 encrypted using the encryption key pk2 cannot be decrypted using the private keys held by the first user terminal 110 and the third user terminal 130.
[0220] The control unit 114 further calculates a hash value h1 of the original message m and a hash value h2 of the encrypted information c1.
[0221] Next, the transaction data generation unit 113 generates transaction data D1e including the encryption information c2 and hash values h1 and h2 generated by the control unit 114, and transmits the transaction data D1e including the encryption information c2 and hash values h1 and h2 to the ledger server 200a (S602).
[0222] Next, upon receiving the request confirmation from the second user terminal 120, the ledger server 200a determines whether or not there is a transfer request, and if there is a transfer request, transmits the transaction data D1e that is the subject of the transfer request (here, the transaction data D1e that includes the encryption information c2 and the hash values h1 and h2) to the second user terminal 120 (S603). The transaction data D1e transmitted in step S603 is the same data as the transaction data D1e transmitted in step S602.
[0223] In addition, in step S603, the second user terminal 120 acquires, via the communication unit 121, transaction data D1e including encryption information c2 and hash values h1 and h2.
[0224] Next, when the control unit 124 of the second user terminal 120 acquires the transaction data D1e from the ledger server 200a, it decrypts the encrypted information c2 with its own private key (S205) and determines whether the hash value of the information obtained by decrypting the encrypted information c2 (here, the encrypted information c1) matches the hash value h2 included in the transaction data (S604). If the control unit 124 determines that the two hash values match (Yes in S604), it proceeds to step S206. If the control unit 124 determines that the two hash values do not match (No in S604), it terminates the process. Note that the information decrypted in step S205 is also information encrypted with the encryption key pk1.
[0225] Next, the transaction data generation unit 123 of the second user terminal 120 generates transaction data D2e including the encryption information c1 and the hash value h1, and transfers the transaction data D2e including the encryption information c1 and the hash value h1 to the ledger server 300a (S206). The transaction data D2e is an example of second transaction data.
[0226] Next, if the ledger management unit of the ledger server 300a in the second distributed ledger system 30 successfully verifies the transaction data D2e transferred in step S206 and acquired via the communication unit of the ledger server 300a, a consensus algorithm for the transaction data D2e is executed among the ledger servers 300a, etc. (S207). When consensus is reached, the block is stored in the distributed ledger of the ledger server 300a, etc., and the stored information includes the transaction data D2e including the encrypted information c1.
[0227] Next, the third user terminal 130 executes a request confirmation to check whether or not a proxy transfer request has been made to the ledger server 300a (S605). The third user terminal 130 inquires of the ledger server 300a of the second distributed ledger system 30 whether or not a proxy transfer request has been made. The request confirmation in step S605 may be executed periodically or in response to an instruction from the third user.
[0228] Next, upon receiving a request confirmation from the third user terminal 130, the ledger server 300a of the second distributed ledger system 30 determines whether or not a transfer request has been made, and if so, transfers the transaction data D2e that is the subject of the transfer request (transaction data D2e including the encryption information c1 and hash value h1) to the third user terminal 130 (S606). The transaction data D2e sent in step S606 is the same data as the transaction data D2e transferred in step S206. In other words, upon receiving a confirmation request from the third user terminal 130, the ledger server 300a of the second distributed ledger system 30 transfers the transaction data D2e acquired from the second user terminal 120 to the third user terminal 130.
[0229] In step S606, the third user terminal 130 obtains the transaction data D2e sent from the ledger server 300a of the second distributed ledger system 30. In this way, in this modification, the third user terminal 130 checks whether there is a transfer request in the second distributed ledger system (not shown) in which the third user terminal 130 participates but the first user terminal 110 does not (S605), and if there is a transfer request, the third user terminal 130 obtains the transaction data D2e corresponding to the transfer request (the transaction data D2e sent in S606). Furthermore, in this modification, the third user terminal 130 obtains the transaction data D2e sent by the second user terminal 120 via the ledger server 300a (i.e., the second distributed ledger system 30).
[0230] Next, when the control unit of the third user terminal 130 acquires the transaction data D2e from the ledger server 300a, it decrypts the encrypted information c1 with its own private key (S607) and determines whether the hash value of the information obtained by decrypting the encrypted information c1 (here, message m) matches the hash value h1 included in the transaction data (S608). If the control unit determines that the two hash values match (Yes in S608), it proceeds to step S609. If the control unit determines that the two hash values do not match (No in S608), it terminates the process.
[0231] Next, the transaction data generation unit of the third user terminal 130 generates transaction data including the unencrypted message m, and sends the transaction data including the unencrypted message m to the ledger server of the third distributed ledger system (S609). The third distributed ledger system is a distributed ledger system in which the third user terminal 130 participates and in which the first user terminal 110 does not participate. The third distributed ledger system may also be a distributed ledger system in which the second user terminal 120 does not participate.
[0232] Next, if the ledger management unit of the ledger server of the third distributed ledger system successfully verifies the transaction data transferred in step S609 and obtained via the communication unit of the ledger server, it executes a consensus algorithm for the transaction data between the ledger servers, etc.
[0233] In this way, by encrypting twice, it is possible to further conceal the information of the first user terminal 110, which is the original requester. Note that the number of times encryption is performed is not limited to two, and may be three or more times.
[0234] The third distributed ledger system may be the second distributed ledger system 30, or may be a distributed ledger system different from the first distributed ledger system 20 and the second distributed ledger system 30.
[0235] (Regarding the data structure of a distributed ledger and the execution of a smart contract) The data structure of a distributed ledger and the execution of a smart contract will be described with reference to Figures 17 to 20.
[0236] FIG. 17 is an explanatory diagram showing the data structure of a blockchain, which is an example of a distributed ledger.
[0237] A blockchain is a chain of blocks, which are units of record. Each block contains multiple transaction data and the hash value of the previous block.
[0238] FIG. 17 shows blocks B1, B2, and B3 included in the blockchain.
[0239] For example, block B2 contains the hash value of the previous block B1, which is calculated by performing a hash algorithm on the contents of block B1.
[0240] Furthermore, block B3 includes, as the hash value of block B2, a hash value calculated from multiple transaction data included in block B2 and the hash value of block B1.
[0241] In this way, a blockchain is structured so that blocks containing the contents of the previous block as a hash value are connected in a chain, which effectively prevents tampering with the recorded transaction data.
[0242] If past transaction data is changed (in other words, tampered with), the hash value of the block containing that transaction data will be different from the value before the change. In that case, to make the block containing the changed transaction data appear correct, all blocks after that block in the distributed ledger stored on multiple servers would have to be recreated, which is extremely difficult in reality. This feature makes it virtually impossible to tamper with transaction data contained in the blockchain.
[0243] When a node stores transaction data in a blockchain, it generates a block containing the transaction data to be stored and attempts to reach consensus on the generated block by executing processing based on a consensus algorithm with other nodes. Then, when consensus is reached, the node controls the storage of the block in the blockchain. This allows multiple nodes operating in an autonomous and decentralized manner to connect legitimate blocks to the blockchain. As a consensus algorithm, PBFT, PoW, PoS (Proof of Stake), etc. may be used. When Hyperledger Fabric is used as an example of a distributed ledger technology, a consensus algorithm does not need to be executed.
[0244] FIG. 18 is an explanatory diagram showing the data structure of transaction data.
[0245] 18 includes a transaction body BP1 and a digital signature BP2 (also simply referred to as a signature). The transaction body BP1 is the data body included in the transaction data. The digital signature BP2 is generated by encrypting the hash value of the transaction body BP1 with the signature generation key (in other words, the private key) of the creator of the transaction data.
[0246] A node that receives transaction data can verify that the transaction body BP1 is legitimate (in other words, that it has not been tampered with) using the digital signature BP2 included in the transaction data. This makes it virtually impossible to tamper with the data included in the transaction body BP1. Furthermore, by storing successfully verified transaction data in the blockchain, the legitimacy of the transaction data stored in the blockchain can be maintained.
[0247] As described above, transaction data included in the blockchain is stored in a chain using the hash values of the transaction data and the hash values of the blocks. This allows the transaction data included in the blockchain to be stored and maintained substantially without being tampered with. This is an advantage over a database or a distributed database that simply stores a collection of data.
[0248] 19 is an explanatory diagram showing transaction data related to the execution of a smart contract. FIG. 20 is an explanatory diagram showing processing related to the execution of a smart contract.
[0249] A series of processes related to the execution of a smart contract using a distributed ledger will be described with reference to Figures 19 and 20.
[0250] In step SB1, the node stores transaction data B11, including contract code B12 that describes the processing of the smart contract, in the distributed ledger B10. For example, the node acquires transaction data B11 by receiving the transaction data B11 from an information processing device via communication or by the node itself generating the transaction data B11, and stores the acquired transaction data B11 in the distributed ledger B10. Step SB1 is performed before executing the smart contract.
[0251] In step SB2, the node stores transaction data B15, including instructions B16 for executing the smart contract, in the distributed ledger B10. For example, the node receives transaction data B15 from an information processing device via communication and stores the received transaction data B15 in the distributed ledger B10.
[0252] In step SB3, in response to the transaction data B15 including the instruction B16 being stored in the distributed ledger B10 in step SB2, the node reads the contract code B12 from the distributed ledger B10 and executes processing based on the contract code B12. The results of the processing may be included in the transaction data and stored in the distributed ledger B10.
[0253] Through the above series of processes, when the distributed ledger system receives transaction data B15 including instructions B16 for executing a smart contract, it automatically (i.e., without manual intervention) executes the processing in accordance with the instructions B16, enabling highly efficient (i.e., high speed or short processing time). Achieving highly efficient processing has the effect of reducing power consumption. Furthermore, since no manual intervention is required, it is possible to prevent human tampering with information, fraud, or human error. Furthermore, since the results of the processing thus executed are stored in the blockchain, it is virtually impossible to tamper with the results of the processing.
[0254] (Other Embodiments) As described above, information processing methods etc. according to one or more aspects have been described based on the embodiment and variations 1 to 8 (embodiments etc.), but the present disclosure is not limited to these embodiments etc. As long as they do not deviate from the spirit of the present disclosure, various modifications that a person skilled in the art would conceive of may be made to the present embodiment, or embodiments constructed by combining components of different embodiments may also be included in the present disclosure.
[0255] (1) In the above embodiments, a blockchain is used, but it is not necessary to use a blockchain. Furthermore, instead of a blockchain, a distributed ledger technology such as a hash graph may be used.
[0256] (2) The first user terminal 110 in the above embodiments may be a device that constitutes a node of the first distributed ledger system 20. Furthermore, the second user terminal 120 may be a device that constitutes a node of each of the first distributed ledger system 20 and the second distributed ledger system 30.
[0257] (3) In the above embodiments, the first blockchain may be any of a public type, a private type, and a consortium type. Similarly, the second blockchain may be any of a public type, a private type, and a consortium type.
[0258] (4) Each device in the above embodiments is specifically a computer system comprising a microprocessor, ROM (Read Only Memory), RAM (Random Access Memory), a hard disk unit, a display unit, a keyboard, a mouse, etc. A computer program is recorded in the RAM or hard disk unit. Each device achieves its function when the microprocessor operates in accordance with the computer program. Here, a computer program is composed of a combination of multiple instruction codes that indicate instructions to a computer to achieve a predetermined function.
[0259] (5) In each of the above embodiments, some or all of the constituent elements of the device may be configured from a single LSI (Large Scale Integration). A system LSI is an ultra-multifunctional LSI manufactured by integrating multiple components on a single chip, and specifically, is a computer system configured to include a microprocessor, ROM, RAM, etc. A computer program is recorded in the RAM. The system LSI achieves its functions by the microprocessor operating in accordance with the computer program.
[0260] Furthermore, each of the components constituting each of the above-described devices may be individually integrated into a single chip, or some or all of them may be integrated into a single chip.
[0261] Although the term "system LSI" is used here, it may also be called an IC, LSI, super LSI, or ultra LSI depending on the level of integration. Furthermore, the method of integration is not limited to LSI, and may be realized using a dedicated circuit or a general-purpose processor. It is also possible to use a field programmable gate array (FPGA), which can be programmed after LSI manufacturing, or a reconfigurable processor, which can reconfigure the connections and settings of circuit cells within the LSI.
[0262] Furthermore, if an integrated circuit technology that can replace LSI emerges due to advances in semiconductor technology or other derivative technologies, it is natural that such technology may be used to integrate functional blocks. The application of biotechnology, etc. is also a possibility.
[0263] (6) Some or all of the components constituting each of the above devices may be configured as an IC card or a standalone module that can be attached to each device. The IC card or module is a computer system composed of a microprocessor, ROM, RAM, etc. The IC card or module may include the above-mentioned ultra-multifunctional LSI. The IC card or module achieves its functions when the microprocessor operates according to a computer program. This IC card or module may be tamper-resistant.
[0264] (7) The present disclosure may be embodied as the methods described above. Furthermore, the present disclosure may be embodied as a computer program for implementing these methods on a computer, or as a digital signal comprising the computer program. For example, one aspect of the present disclosure may be a computer program for causing a computer to execute each of the characteristic steps included in the information processing method shown in any of Figures 5, 7 to 10, 12, 14 to 16, and 20.
[0265] The present disclosure may also be a computer program or a digital signal recorded on a computer-readable recording medium, such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, a BD (Blu-ray (registered trademark) Disc), a semiconductor memory, etc. Alternatively, the present disclosure may be a digital signal recorded on such a recording medium.
[0266] The present disclosure may also be applied to transmitting a computer program or a digital signal via a telecommunications line, a wireless or wired communication line, a network such as the Internet, data broadcasting, or the like.
[0267] The present disclosure may also be a computer system having a microprocessor and a memory, the memory storing the computer program, and the microprocessor operating in accordance with the computer program.
[0268] Furthermore, the program or digital signal may be recorded on a recording medium and transferred, or the program or digital signal may be transferred via a network or the like, so that the program or digital signal may be implemented by another independent computer system.
[0269] (8) In the above embodiments, each component may be configured with 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 processor reading and executing a software program recorded on a recording medium such as a hard disk or semiconductor memory.
[0270] (9) The order in which the steps in the flowchart are executed is merely an example for specifically explaining the present disclosure, and an order other than the above may be used. Also, some of the steps may be executed simultaneously (in parallel) with other steps, or some of the steps may not be executed.
[0271] (10) The division of functional blocks in the block diagram is an example, and multiple functional blocks may be realized as a single functional block, one functional block may be divided into multiple blocks, or some functions may be moved to another functional block. Furthermore, the functions of multiple functional blocks having similar functions may be processed in parallel or in time-sharing by a single piece of hardware or software.
[0272] (11) Furthermore, each of the ledger servers according to the above-described embodiments may be realized as a single device or may be realized by multiple devices. When the ledger server is realized by multiple devices, the components of the ledger server may be distributed among the multiple devices in any manner. When the ledger server is realized by multiple devices, the communication method between the multiple devices is not particularly limited and may be wireless communication or wired communication. Furthermore, wireless communication and wired communication may be combined between the devices.
[0273] (12) The above-described embodiment and each of the above-described modifications may be combined with each other.
[0274] The present disclosure is useful for information processing devices and the like that store transaction data in a distributed ledger.
[0275] 10 Information processing system 20 First distributed ledger system 30 Second distributed ledger system 110 First user terminal (first information processing device) 111, 211 Communication unit 112, 122 Reception unit 113 Transaction data generation unit 114, 124, 215 Control unit 115, 125, 214 Storage unit 120 Second user terminal (second information processing device) 121 Communication unit (acquisition unit) 123 Transaction data generation unit (transfer unit) 130 Third user terminal (third information processing device) 200a, 200b, 200c Ledger server 201a, 201b, 201c, 301a, 301b, 301c Storage device 212 Ledger management unit 213 Execution unit 214a, B10 Distributed ledger 300a, 300b, 300c Ledger server 400 Communication network 500 External DB B1, B2, B3 Blocks B11, B15 Transaction data B12 Contract code B16 Instruction BP1 Transaction body BP2 Digital signature c, c1, c2 Encryption information D1, D1a, D1b, D1c, D1d, D1e Transaction data (first transaction data) D2, D2e Transaction data (second transaction data) h, h1, h2 Hash value m Message pk, pk1, pk2, rk Encryption key
Claims
1. An information processing method executed by a second information processing device having authority information to store transaction data in a second distributed ledger, comprising: a step of acquiring first transaction data to be transferred from a first information processing device different from the second information processing device to a second ledger server that holds the second distributed ledger; and a step of transferring second transaction data based on the acquired first transaction data to the second ledger server.
2. The information processing method according to claim 1, wherein the first information processing device and the second information processing device have authority information to store transaction data in a first distributed ledger that is different from the second distributed ledger, and in the acquiring step, the first transaction data is acquired via a first ledger server that holds the first distributed ledger.
3. The information processing method according to claim 2, further comprising a step of checking with the first distributed ledger whether or not there is a transfer request to the second distributed ledger, and in the acquiring step, if there is a transfer request, acquiring the first transaction data corresponding to the transfer request.
4. An information processing method according to claim 2, wherein the acquiring step acquires the first transaction data automatically transmitted from the first ledger server.
5. The information processing method according to claim 2, wherein the first information processing device does not have authority information to store transaction data in the second distributed ledger.
6. An information processing method according to any one of claims 2 to 5, wherein in the transfer step, the second transaction data to which additional information indicating that the transfer is a request from the first information processing device is added is transferred to the second ledger server.
7. The information processing method according to claim 6, wherein the additional information includes information that can identify the first information processing device.
8. The information processing method according to claim 6, wherein the additional information includes information regarding third transaction data stored in the first distributed ledger, the third transaction data including a request for transfer.
9. An information processing method according to any one of claims 1 to 5, wherein the first transaction data includes at least one of information identifying the second information processing device requesting the transfer of the first transaction data and information regarding a fee to be paid to the second information processing device.
10. An information processing method according to any one of claims 1 to 5, wherein in the acquiring step, the first transaction data in which a data portion to be transferred to the second ledger server is encrypted is acquired using a public key corresponding to a private key held by the second information processing device, and in the transferring step, the data portion of the first transaction data is decrypted using the private key, and the second transaction data including the decrypted data portion is transferred to the second ledger server.
11. An information processing method as described in claim 10, wherein the acquiring step includes a step of acquiring the first transaction data further including a first hash value of the data portion before encryption, and a step of comparing the first hash value with a second hash value of the data portion decrypted with the private key, and wherein the transferring step includes a step of transferring the second transaction data including the decrypted data portion to the second ledger server if the first hash value and the second hash value match.
12. An information processing method as described in claim 10, wherein the acquiring step includes a step of acquiring the first transaction data further including a fixed message encrypted with the public key, and a step of determining whether the encrypted fixed message can be decrypted, and wherein the transferring step includes a step of transferring the second transaction data including the decrypted data portion to the second ledger server if the encrypted fixed message can be decrypted.
13. An information processing method according to any one of claims 1 to 5, wherein there are a plurality of second information processing devices to which a transfer request for the first transaction data is made, and the acquiring step includes acquiring first transaction data that further includes data to be transferred to the second ledger server, encrypted using any one of a plurality of public keys corresponding to each private key of the plurality of second information processing devices, a first hash value of the data before encryption, and an error correction code, and decrypting the first transaction data with the private key of the second information processing device, correcting the decrypted data with the error correction code, and comparing the first hash value with a second hash value of the corrected data, and wherein the transferring step includes transferring the second transaction data including the corrected data to the second ledger server if the first hash value and the second hash value match.
14. An information processing method according to any one of claims 1 to 5, wherein in the acquiring step, a first public key corresponding to a first private key held by the second information processing device is used to acquire first transaction data, which is data to be transferred to the second ledger server and which is data encrypted using a second public key corresponding to a second private key held by a third information processing device, and in the transferring step, the data of the first transaction data is decrypted using the first private key, and the second transaction data, which includes the data decrypted with the first private key and encrypted with the second public key, is transferred to the second ledger server.
15. An information processing method according to any one of claims 2 to 5, wherein a smart contract that executes a payment stored in the first distributed ledger is executed, thereby obtaining compensation for the transfer of the first transaction data.
16. An information processing method according to any one of claims 1 to 5, wherein the second distributed ledger is a blockchain, and the second transaction data is stored in the blockchain.
17. An information processing device having authority information for storing transaction data in a distributed ledger, comprising: an acquisition unit that acquires first transaction data to be transferred from another information processing device different from the information processing device to a ledger server that holds the distributed ledger; and a transfer unit that transfers second transaction data based on the acquired first transaction data to the ledger server.
18. An information processing system comprising: the second information processing device that executes the information processing method described in any one of claims 1 to 5; and a second distributed ledger system including the second ledger server that holds the second distributed ledger having authority information for storing transaction data by the second information processing device.
19. The information processing system of claim 18 further comprising a first distributed ledger system including a first ledger server that holds a first distributed ledger having authority information for storing transaction data by the first information processing device and the second information processing device, wherein the first ledger server determines whether the transaction data has been stored in the second distributed ledger, and if it determines that the transaction data has been stored in the second distributed ledger, executes a smart contract that makes the payment stored in the first distributed ledger, thereby executing a payment process for the second information processing device.
20. A program for causing a computer to execute the information processing method according to any one of claims 1 to 5.
Citation Information
Patent Citations
System and Method for a Thing Machine to Perform Models
US20190266235A1
Decentralized data verification
US20210075623A1
Blockchain transaction forwarding
US20210211298A1