WO2023188039A1 - データ検証装置、クライアントアプリケーション、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラム - Google Patents

データ検証装置、クライアントアプリケーション、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラム Download PDF

Info

Publication number
WO2023188039A1
WO2023188039A1 PCT/JP2022/015699 JP2022015699W WO2023188039A1 WO 2023188039 A1 WO2023188039 A1 WO 2023188039A1 JP 2022015699 W JP2022015699 W JP 2022015699W WO 2023188039 A1 WO2023188039 A1 WO 2023188039A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
verification
registration
registered
distributed ledger
Prior art date
Application number
PCT/JP2022/015699
Other languages
English (en)
French (fr)
Inventor
奈子 津田
洋 横地
光弘 松本
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to JP2024502548A priority Critical patent/JP7486689B2/ja
Priority to PCT/JP2022/015699 priority patent/WO2023188039A1/ja
Priority to TW111131853A priority patent/TW202338641A/zh
Publication of WO2023188039A1 publication Critical patent/WO2023188039A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Definitions

  • the present disclosure relates to a data verification device, a client application, a blockchain system, a data verification method, and a data verification program.
  • the data verification SC is an SC for verifying data.
  • the SC is a program that is executed within the BC according to prescribed rules using a transaction, external information, or the like as a trigger.
  • Data verification, data registration, data reference, etc. can be realized by the SC.
  • Non-Patent Document 1 a data verification SC is generated within BC, and a data registration SC registers registered data verified by the data verification SC in a distributed ledger.
  • the data registration SC is an SC for registering data.
  • this technique has a problem in that it is not guaranteed that the data verification SC used when verifying registered data is the data verification SC generated within the BC.
  • the present disclosure relates to a technology for verifying registration data requested to be registered in a distributed ledger using a data verification SC generated within a BC, in which the data verification SC used when verifying the registration data is within the BC. The purpose is to ensure that the data verification SC is generated in
  • the data verification device includes: A data verification device that verifies electronic data to be registered in a distributed ledger stored in a server that constitutes a blockchain, Data verification processing for determining whether registered data, which is electronic data requested to be registered in the distributed ledger, complies with verification rules, which are rules for verifying electronic data to be registered in the distributed ledger.
  • a data verification section that executes; a data control unit that determines whether a program corresponding to the data verification process has been generated within the blockchain; a data registration unit that executes a verification registration process when it is determined that a program corresponding to the data verification process has been generated in the blockchain;
  • the verification registration process is a process of registering the registered data in the distributed ledger when it is determined by the data verification process that the registered data conforms to the verification rule.
  • the data control unit determines whether a program corresponding to data verification processing has been generated within the BC. Further, the data registration unit executes the verification registration process when it is determined that a program corresponding to the data verification process has been generated in the BC.
  • the program corresponding to the data verification process corresponds to the data verification SC. Therefore, according to the present disclosure, in a technology for verifying registration data requested to be registered in a distributed ledger using a data verification SC generated within a BC, data verification used when verifying registration data. It is possible to ensure that the SC is a data verification SC generated within the BC.
  • FIG. 2 is a diagram illustrating a configuration example of a BC system 90 according to Embodiment 1.
  • 1 is a diagram showing an example of a hardware configuration of a BC system 90 according to Embodiment 1.
  • FIG. 7 is a flowchart showing deployment processing according to the first embodiment. 7 is a flowchart showing data registration processing according to the first embodiment. 5 is a flowchart showing data reference processing according to the first embodiment.
  • FIG. 3 is a diagram showing an example of the hardware configuration of a data verification device 1 according to a modification of the first embodiment.
  • 7 is a flowchart showing deployment processing according to Embodiment 2.
  • 7 is a flowchart showing data registration processing according to Embodiment 2.
  • FIG. 7 is a flowchart showing data reference processing according to Embodiment 2.
  • the figure which shows the example of a structure of the BC system 90 based on Embodiment 3. 9 is a flowchart showing data registration processing according to Embodiment 3.
  • 7 is a flowchart showing data reference processing according to Embodiment 3.
  • the figure which shows the example of a structure of the BC system 90 based on Embodiment 4. 10 is a flowchart showing data registration processing according to Embodiment 4.
  • 10 is a flowchart showing data registration processing according to Embodiment 4.
  • 10 is a flowchart showing data reference processing according to Embodiment 4.
  • 10 is a flowchart showing data reference processing according to Embodiment 4.
  • FIG. 1 shows an example of a system configuration of a BC (Blockchain) system 90 according to this embodiment.
  • the BC system 90 is a system that implements blockchain.
  • the BC system 90 includes a data verification device 1, a BC network 3, a client application 4, and a BC server 101.
  • the data verification device 1 is a device that includes a BC server 2, and is a device that verifies electronic data to be registered in the distributed ledger 5, and is also called a data registration reference verification device.
  • the BC server 2 is a server that configures BC, and includes an SC (Smart Contract) automatic generation section 6, a data control section 7, a data verification section 8, a data registration reference section 9, and a distributed ledger 5. .
  • SC Smart Contract
  • the SC automatic generation unit 6 receives data indicating verification rules from the client application 4, generates a data validation unit 8 based on the received data, and deploys the generated data validation unit 8.
  • the verification rule is a rule for verifying electronic data to be registered in the distributed ledger 5, and is a rule that the electronic data to be registered in the distributed ledger 5 should follow.
  • the data control section 7 receives data from the client application 4, and verifies each of the data registration section 10, data reference section 11, and data verification section 8 based on the received data.
  • the process of verifying the data verification unit 8 is a process of determining whether the data verification unit 8 has been generated by the SC automatic generation unit 6, and determines whether the program corresponding to the data verification process has been generated within the BC. This is a process for determining.
  • the program corresponding to the data verification process is a program that implements the data verification section 8.
  • the data verification process is a process for determining whether registered data conforms to the verification rules. Further, the data control unit 7 transmits registration data to the data registration unit 10, transmits reference matter data to the data reference unit 11, and receives reference data from the data reference unit 11.
  • the registration data is electronic data that is requested to be registered in the distributed ledger 5 and is electronic data that may be registered in the distributed ledger 5.
  • the reference item data is electronic data indicating items to be referenced in the distributed ledger 5, and is electronic data indicating an instruction to refer to electronic data registered in the distributed ledger 5.
  • the reference data is electronic data referred to by the data reference unit 11, is electronic data corresponding to the reference item data, and is electronic data registered in the distributed ledger 5.
  • the data control unit 7 executes the registration instruction process, and when only the electronic data indicated by the registration instruction process is registered in the distributed ledger, and when the electronic data is registered in the distributed ledger 5 by the verification registration process, , it is determined that the reference data has been registered in the distributed ledger 5 through the verification registration process.
  • the registration instruction process is a process for instructing electronic data to be registered in the distributed ledger 5.
  • the verification registration process is a process of verifying registered data using the data verification unit 8 and registering the registered data in the distributed ledger 5 based on verification result data corresponding to the registered data. That is, the verification registration process is a process of registering the registered data in the distributed ledger 5 when it is determined by the data verification process that the registered data complies with the verification rules.
  • the verification result data is data indicating the verification result by the data verification section 8.
  • the verification result data corresponding to the registered data is data indicating the result of the data verification unit 8 verifying the registered data.
  • the data control unit 7 determines whether only the electronic data indicated by the registration instruction process is registered in the distributed ledger 5, if the electronic data is registered in the distributed ledger 5 by the verification registration process, and if the source address of the reference data is registered in the distributed ledger 5. is an address corresponding to a program corresponding to the verification registration process, it is determined that the reference data has been registered in the distributed ledger 5 by the verification registration process.
  • a program corresponding to the verification registration process is a program that implements the data registration section 10.
  • the address corresponding to the program corresponding to the verification registration process is the address of data indicating the data registration section 10.
  • the data verification unit 8 receives registration data from the data registration unit 10 and executes data verification processing on the received registration data.
  • the data registration reference section 9 includes a data registration section 10 and a data reference section 11.
  • the data registration unit 10 receives registration data from the data control unit 7, transmits the registration data to the data verification unit 8 in order to verify the received registration data, and indicates the result of verifying the registration data from the data verification unit 8.
  • the registration data received and verified by the data verification unit 8 is registered in the distributed ledger 5.
  • the data registration unit 10 executes the verification registration process when it is determined that a program corresponding to the data verification process has been generated in the BC.
  • the data reference unit 11 receives reference item data from the data control unit 7 , acquires reference data from the distributed ledger 5 based on the received reference item data, and transmits the acquired reference data to the data control unit 7 .
  • the data reference process is a process of referencing electronic data registered in the distributed ledger 5 based on reference item data. Note that when the data verification unit 8 is generated within the BC and when the data registration unit 10 executes the verification registration process and the limited registration process, it is assumed that the reference data is registered in the distributed ledger 5 by the verification registration process. It will be judged.
  • the limited registration process is a process of registering registration data in the distributed ledger 5 only when the registration data is data transmitted from the data control unit 7.
  • each of the SC automatic generation section 6, data control section 7, data verification section 8, data registration reference section 9, data registration section 10, and data reference section 11 is an SC.
  • the SC is a program that is executed in the BC system 90 according to prescribed rules using a transaction, external information, or the like as a trigger.
  • a program typically refers to a computer executable file.
  • the BC network 3 is a network that connects to BC servers such as the BC server 2 and the BC server 101.
  • the BC network 3 is connected to one or more BC servers.
  • the BC server 101 does not need to have the same functions as the BC server 2.
  • the number of BC servers 101 may be plural.
  • the client application 4 is an application that includes a verification rule transmitting/receiving section 12 , a registration data transmitting/receiving section 13 , a reference matter data transmitting/receiving section 14 , and a reference data receiving section 15 .
  • the client application 4 is a device that communicates with a server that constitutes the BC, and is a device that executes an application program. Note that the data that each part of the client application 4 transmits to the data verification device 1 may be data received by the client application 4 from the user, or may be data input by the user to the client application 4. Good too.
  • the user is a user of the BC system 90. The user is not limited to a human being, and may be a computer or the like.
  • the verification rule transmitting/receiving section 12 transmits data indicating the verification rule to the SC automatic generation section 6.
  • the registration data transmitting/receiving section 13 specifies the data registration reference section 9 to be used, and transmits the registration data to the data control section 7 corresponding to the specified data registration reference section 9. Note that the registration data transmitting/receiving section 13 may specify the data registration section 10 to be used.
  • the reference matter data transmitting/receiving section 14 specifies the data registration reference section 9 to be used, and transmits the reference matter data to the data control section 7 corresponding to the designated data registration reference section 9. Note that the reference matter data transmitting/receiving section 14 may specify the data reference section 11 to be used.
  • Reference data receiving section 15 receives reference data from data control section 7 . Note that the BC system 90 may not include the client application 4 and the user may access the BC server 2 and control the BC server 2 to realize functions equivalent to those provided by the client application 4.
  • FIG. 2 shows an example of the hardware configuration of the BC system 90.
  • FIG. 2 shows a specific example where the BC server 2, client application 4, and BC server 101 each operate as independent devices.
  • Each device includes hardware such as a processor 51, a memory 52, an auxiliary storage device 53, and a communication interface 54.
  • the hardware included in each device is appropriately connected by a bus.
  • a bus is a signal path that electrically connects hardware and exchanges data. Devices and devices are connected via communication paths.
  • the communication path may be a wired communication path or a wireless communication path.
  • the processor 51 reads a program stored in the auxiliary storage device 53, loads the read program into the memory 52, and executes it.
  • the processor 51 is connected to other hardware via a bus and controls each piece of hardware.
  • the processor 51 may be any IC (Integrated Circuit) that performs processing, and may be a microprocessor or a DSP (Digital Signal Processor) as a specific example. Each device may include multiple processors.
  • a program called by the processor 51 from the auxiliary storage device 53 is developed in the memory 52.
  • the memory 52 is also called main memory, and a specific example thereof is a volatile semiconductor memory such as RAM (Random Access Memory).
  • the auxiliary storage device 53 stores a program in which software, firmware, or a combination of software and firmware is written, an OS (Operating System), and the like. Further, the auxiliary storage device 53 stores various information and the like. Note that data and information may have the same meaning. Specific examples of the auxiliary storage device 53 include ROM (Read Only Memory), flash memory, EPROM (Erasable Programmable Read Only Memory), and EEPROM (Electrically Erasable Memory). Non-volatile memory such as ble Programmable Read Only Memory), HDD (Hard Disk Drive), etc. These include portable recording media such as semiconductor memories, magnetic disks, flexible disks, optical disks, compact disks, mini disks, and DVDs (Digital Versatile Discs). Note that each device may use an external storage device as appropriate.
  • the communication interface 54 is a connection unit that exchanges information between hardware.
  • each function of the BC system 90 can be realized by hardware, software, firmware, or a combination thereof.
  • a part may be realized by dedicated hardware, and the rest may be realized by software or firmware.
  • Software, firmware, or a combination of software and firmware may be written as a program.
  • a processor 51 is in charge of controlling each part of the BC server 2
  • a memory 52 stores programs called by the processor 51 from the auxiliary storage device 53, and stores each part of the BC server 2.
  • a program to realize this will be developed.
  • the auxiliary storage device 53 stores programs that implement the functions of each part of the BC server 2 and information registered in the distributed ledger 5.
  • the SC automatic generation section 6 and the data control section 7 each connect to the client application 4, the BC server 101, etc. using the communication interface 54.
  • a processor 51 is in charge of controlling each part included in the client application 4, and a memory 52 stores programs called by the processor 51 from the auxiliary storage device 53, and stores each part included in the client application 4. A program will be developed to realize this function.
  • the auxiliary storage device 53 stores programs that implement the functions of each part of the client application 4.
  • each unit included in the client application 4 connects to the BC server 2 and the like using the communication interface 54. Each device is connected via a network.
  • each device is connected to one network, if communication is possible between the BC server 2 and client application 4 and the BC server 2 and BC server 101, , the network may be divided into multiple parts. Furthermore, at least some of the BC server 2, client application 4, and BC server 101 may be realized by one device. Further, each device is not limited to a physically existing device, but may be a device virtualized using virtualization technology. Any program described in this specification may be recorded on a computer-readable nonvolatile recording medium. Specific examples of the nonvolatile recording medium include an optical disk or a flash memory. Any program described herein may be provided as a program product.
  • the operation procedure of the data verification device 1 corresponds to a data verification method. Further, a program that realizes the operation of the data verification device 1 corresponds to a data verification program.
  • FIG. 3 is a flowchart illustrating an example of deployment processing.
  • the deployment process is a process of generating the data verification unit 8 and deploying the generated data validation unit 8 to the BC server 2, and is also referred to as a data validation unit generation and deployment process.
  • Step S001 The verification rule transmitting/receiving unit 12 transmits data indicating the verification rule input by the user to the SC automatic generation unit 6.
  • Step S002 The SC automatic generation section 6 receives data indicating a verification rule from the verification rule transmission/reception section 12, and generates a data verification section 8 based on the verification rule indicated by the received data.
  • the data verification unit 8 generates the SC by embedding a verification rule indicated by the received data into a template that is a prototype of the SC that the automatic SC generation unit 6 holds in advance.
  • Step S003 The SC automatic generation unit 6 deploys the generated data verification unit 8 to the BC server 2.
  • the data verification unit 8 becomes usable in the BC server connected to the BC network 3. Note that the data verification unit 8 may be available only in some of the BC servers connected to the BC network 3.
  • FIG. 4 is a flowchart illustrating an example of data registration processing. The data registration process will be explained with reference to FIG.
  • the registration data transmitting/receiving unit 13 specifies the data registration reference unit 9 to be used, and transmits the registration data input by the user to the data control unit 7 corresponding to the specified data registration reference unit 9.
  • Step S012 The data control unit 7 verifies the data registration unit 10 included in the designated data registration reference unit 9. The matters verified by the data control unit 7 in step S013 and step S014 will be explained.
  • Step S013 The data control unit 7 determines whether the data registration unit 10 executes the verification registration process. Specifically, the data control unit 7 checks whether each of the following three points is satisfied regarding the structure of the program that implements the data registration unit 10. If all three points are satisfied, the data control unit 7 determines that the data registration unit 10 will execute the verification registration process.
  • the first point is that the structure of the data registration section 10 is such that the registration data received by the data registration section 10 is transmitted to the data verification section 8.
  • the second point is that the data registration section 10 is structured to receive verification result data corresponding to registered data from the data verification section 8.
  • the third point is whether the structure of the data registration unit 10 registers registration data in the distributed ledger 5 based on the verification result data received from the data verification unit 8 and corresponding to the registration data.
  • step S014 It is a structure that determines whether or not the When the data registration unit 10 executes the verification registration process, the data verification device 1 transitions to step S014. If the data registration unit 10 does not verify the registered data using the data verification unit 8, or if the data registration unit 10 does not register the registered data in the distributed ledger 5 based on the verification result data corresponding to the registered data, the data The verification device 1 skips all subsequent processing and ends the data registration processing.
  • Step S014 The data control unit 7 determines whether the data registration unit 10 executes limited registration processing. Specifically, the data control unit 7 checks whether each of the following two points is satisfied regarding the structure of the program that implements the data registration unit 10. If all two points are satisfied, the data control unit 7 determines that the data registration unit 10 executes the limited registration process. The first point is that the structure of the data registration section 10 is such that it confirms whether the registration data received by the data registration section 10 is the data transmitted from the data control section 7. The second point is that the structure of the data registration unit 10 is such that for registered data that is determined not to have been sent from the data control unit 7, the program processing is terminated without registering it in the distributed ledger 5. be. When the data registration unit 10 executes the limited registration process, the data verification device 1 transitions to step S015. In other cases, the data verification device 1 skips all subsequent processing and ends the data registration processing.
  • Step S015 The data control unit 7 verifies the data verification unit 8 used by the data registration unit 10. The matters verified by the data control unit 7 in step S016 will be explained.
  • the data control section 7 determines whether the data verification section 8 is a genuine data verification section.
  • the genuine data verification unit according to the present embodiment is a data verification unit that is generated by the automatic SC generation unit 6 and deployed by the automatic SC generation unit 6. Whether or not the data verification section 8 is an authentic data verification section is determined by whether the transmission source address of the data verification section 8 is an address indicating the SC automatic generation section 6 or not. If the data verification unit 8 is a genuine data verification unit, the data verification device 1 transitions to step S017. In other cases, the data verification device 1 skips all subsequent processing and ends the data registration processing.
  • Step S017 The data control unit 7 transmits the registration data to the data registration unit 10 included in the designated data registration reference unit 9.
  • Step S018 The data registration unit 10 receives registration data and transmits the received registration data to the data verification unit 8.
  • the data verification unit 8 receives registration data and verifies the received registration data. Specifically, the data verification unit 8 verifies whether the received registered data complies with the verification rules input when the data verification unit 8 is generated.
  • Step S020 The data verification unit 8 transmits verification result data indicating the result of verifying the received registration data to the data registration unit 10.
  • the data verification unit 8 sends verification result data indicating that the verification result is positive when receiving registered data that conforms to the verification rules to the data registration unit 10; otherwise, the verification result is negative.
  • Verification result data indicating that the verification result is present is transmitted to the data registration unit 10.
  • Step S021 The data registration unit 10 receives the verification result data and confirms the received verification result data. If the verification result indicated by the received verification result data is positive, the data verification device 1 transitions to step S022. In other cases, the data verification device 1 skips all subsequent processing and ends the data registration processing.
  • Step S022 The data registration unit 10 transmits registration data to the distributed ledger 5 and registers the registration data in the distributed ledger 5.
  • FIG. 5 is a flowchart illustrating an example of data reference processing. The data reference process will be explained with reference to FIG.
  • the reference matter data transmitting/receiving section 14 specifies the data registration reference section 9 to be used, and transmits the reference matter data input by the user to the data control section 7 corresponding to the designated data registration reference section 9.
  • Step S032 The data control unit 7 verifies the data reference unit 11 included in the designated data registration reference unit 9. The items verified by the data control unit 7 in step S033 and step S034 will be explained.
  • Step S033 The data control unit 7 checks whether the data registration reference unit 9 including the data reference unit 11 includes the data registration unit 10 or not. Specifically, the data control unit 7 checks whether the program that implements the data registration reference unit 9 includes a part that implements the data registration unit 10 and a part that implements the data reference unit 11. If the program that implements the data registration reference section 9 includes a section that implements the data registration section 10 and a section that implements the data reference section 11, the data control section 7 includes a data registration reference section that includes the data reference section 11. 9 is determined to include the data registration section 10. When the data registration reference unit 9 including the data reference unit 11 includes the data registration unit 10, the data verification device 1 moves to step S034. In other cases, the data verification device 1 skips all subsequent processing and ends the data reference processing.
  • the data control unit 7 determines whether the data reference unit 11 executes limited reference processing.
  • the limited reference process is a process in which data registered in the distributed ledger 5 is referenced only when the received reference item data is data transmitted from the data control unit 7. Specifically, the data control unit 7 checks whether the structure of the program that implements the data reference unit 11 satisfies each of the following two points. If both of the two points are satisfied, the data control unit 7 determines that the data reference unit 11 executes the limited reference process. The first point is that the structure of the data reference unit 11 is such that when the data reference unit 11 receives reference item data, it checks whether the reference item data received by the data reference unit 11 has been transmitted from the data control unit 7.
  • the structure of the data reference unit 11 is such that if the reference item data received by the data reference unit 11 is not the data transmitted from the data control unit 7, the data reference unit 11 is registered in the distributed ledger 5.
  • the structure is such that the processing ends without referring to the existing data.
  • the data verification device 1 transitions to step S035. In other cases, the data verification device 1 skips all subsequent processing and ends the data reference processing.
  • Step S035 The data control section 7 verifies the data registration section 10 included in the data registration reference section 9 that includes the data reference section 11 .
  • the items verified by the data control unit 7 in step S036 and step S037 will be explained.
  • Step S036 This step is similar to step S013.
  • the data verification device 1 transitions to step S037. In other cases, the data verification device 1 skips all subsequent processing and ends the data reference processing.
  • Step S037 This step is similar to step S014.
  • the data verification device 1 transitions to step S038. In other cases, the data verification device 1 skips all subsequent processing and ends the data reference processing.
  • Step S038 The data control unit 7 verifies the data verification unit 8 used by the data registration unit 10. The matters verified by the data control unit 7 in step S039 will be explained.
  • Step S039 This step is similar to step S016. If the data verification unit 8 is a genuine data verification unit, the data verification device 1 transitions to step S040. In other cases, the data verification device 1 skips all subsequent processing and ends the data reference processing.
  • Step S040 The data control unit 7 transmits the reference item data to the data reference unit 11 provided in the designated data registration reference unit 9.
  • Step S041 The data reference unit 11 acquires reference data from the distributed ledger 5 using the received reference item data.
  • Step S042 The data reference unit 11 transmits the acquired reference data to the data control unit 7.
  • Step S043 The data control unit 7 transmits the received reference data to the reference data receiving unit 15.
  • the data registration unit 10 verifies the registered data using the data verification unit 8 whose validity is guaranteed when registering the registered data in the distributed ledger 5, Based on the verification result, it is determined whether or not to register the registered data in the distributed ledger 5. Therefore, the validity of the data registered in the distributed ledger 5 by the data registration unit 10 is ensured. Further, the data registration unit 10 registers only the registration data sent from the data control unit 7 in the distributed ledger 5. Therefore, according to the present embodiment, it is possible to prevent the data registration unit 10 from being used improperly, thereby increasing the reliability of the data registered in the distributed ledger 5 by the data registration unit 10.
  • the data control unit 7 also includes a data registration unit 10 included in a data registration reference unit 9 including a data reference unit 11 and a data registration unit 10 used when referring to data registered in the distributed ledger 5. Each is verified with the data verification unit 8. Therefore, it is ensured that the data referenced by the data reference section 11 is data registered by the valid data registration section 10. Further, the data reference unit 11 acquires data from the distributed ledger 5 only when reference item data is transmitted from the data control unit 7. Therefore, it is ensured that the data reference unit 11 references the data in the distributed ledger 5 after the data registration unit 10 and data verification unit 8 are verified by the data control unit 7. Furthermore, the validity of the data acquired by the data reference unit 11 is ensured.
  • FIG. 6 shows an example of the hardware configuration of the data verification device 1 according to this modification.
  • the data verification device 1 includes a processing circuit 58 in place of the processor 51, the processor 51 and memory 52, the processor 51 and auxiliary storage device 53, or the processor 51, memory 52, and auxiliary storage device 53.
  • the processing circuit 58 is hardware that implements at least a portion of each section included in the data verification device 1.
  • Processing circuit 58 may be dedicated hardware or may be a processor that executes a program stored in memory 52.
  • the processing circuit 58 may be, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), or an FPGA (Field Programmable Gate Array) or a combination thereof.
  • the data verification device 1 may include a plurality of processing circuits that replace the processing circuit 58. The plurality of processing circuits share the role of the processing circuit 58.
  • the processing circuit 58 is implemented, for example, by hardware, software, firmware, or a combination thereof.
  • the processor 51, memory 52, auxiliary storage device 53, and processing circuit 58 are collectively referred to as a "processing circuitry.” That is, the functions of each functional component of the data verification device 1 are realized by processing circuitry.
  • Other devices described in this specification may also have the same configuration as this modification.
  • a BC infrastructure is used that allows the SC generated by the SC automatic generation unit 6 to be deployed on the BC server 2.
  • a BC infrastructure is used in which the SC generated by the automatic SC generation unit 6 cannot be deployed to the BC server.
  • the deployed SC is the SC generated by the SC automatic generation unit 6.
  • FIG. 7 shows an example of the system configuration of the BC system 90 according to this embodiment.
  • the BC server 2 includes an automatic SC generation section 6, a data control section 7, a data verification section 8, a data registration reference section 9, and a distributed ledger 5.
  • the SC automatic generation unit 6 according to the present embodiment generates a data validation unit 8 based on data indicating the input validation rule, and sends data indicating the generated data validation unit 8 to the generated SC deployment unit 16. , registers data corresponding to data indicating the generated SC in the distributed ledger 5.
  • the data corresponding to the data indicating the SC may be any data that can be used to verify whether two SCs are the same, and a specific example is data indicating the SC. This is data indicating the hash value of .
  • the distributed ledger 5 records data registered by the SC automatic generation unit 6 in addition to the data registered in the distributed ledger 5 according to the first embodiment.
  • the client application 4 according to the present embodiment includes a generation SC deploying unit 16 in addition to the components included in the client application 4 according to the first embodiment.
  • the generated SC deploying unit 16 receives data indicating the data verification unit 8 from the SC automatic generation unit 6 and deploys the data verification unit 8 corresponding to the received data to the BC server 2.
  • the generation SC deploying unit 16 receives data indicating a program corresponding to data verification processing from the BC server 2, and deploys a smart contract corresponding to the received data to the server.
  • the BC network 3 is similar to that of the first embodiment. Note that, as described above, the configuration of the BC system 90 may be such that the client application 4 is not included.
  • the example hardware configuration of the BC system 90 according to the second embodiment is the same as the example hardware configuration of the BC system 90 according to the first embodiment.
  • FIG. 8 is a flowchart showing an example of deployment processing. Deployment processing will be explained with reference to FIG.
  • Step S051 This step is similar to step S001.
  • Step S052 This step is similar to step S002.
  • Step S053 The SC automatic generation unit 6 calculates a hash value of data indicating the generated data verification unit 8.
  • Step S054 The SC automatic generation unit 6 registers the calculated hash value in the distributed ledger 5.
  • Step S055 The SC automatic generation unit 6 transmits data indicating the generated data verification unit 8 to the generated SC deployment unit 16.
  • Step S056 The generation SC deploying unit 16 deploys the data verification unit 8 corresponding to the received data to the BC server 2.
  • the data verification unit 8 becomes usable in the BC server connected to the BC network 3. Note that the data verification unit 8 may be enabled only in some of the BC servers connected to the BC network 3.
  • FIG. 9 is a flowchart illustrating an example of data registration processing. The data registration process will be explained with reference to FIG. Note that steps S011 to S015 and steps S017 to S022 are the same as those in the first embodiment.
  • the data control section 7 confirms whether the data verification section 8 is a genuine data verification section.
  • the genuine data verification unit is a data verification unit that is generated by the SC automatic generation unit 6 and deployed by the generated SC deployment unit 16. Specifically, the data control unit 7 uses the hash value registered in the distributed ledger 5 when the SC automatic generation unit 6 generated the data verification unit 8 and the hash value of the data indicating the data verification unit 8 to be verified. If they match, it is determined that the data verification section 8 is an authentic data verification section. If the data verification unit 8 is a genuine data verification unit, the data verification device 1 transitions to step S017. In other cases, the data verification device 1 skips all subsequent processing and ends the data registration processing.
  • FIG. 10 is a flowchart illustrating an example of data reference processing. The data reference process will be explained with reference to FIG. Note that steps S031 to S038 and steps S040 to S043 are the same as those in the first embodiment.
  • Step S044 This step is similar to step S023. If the data verification unit 8 is a genuine data verification unit, the data verification device 1 transitions to step S040. In other cases, the data verification device 1 skips all subsequent processing and ends the data reference processing.
  • the SC automatic generation unit 6 registers data corresponding to the generated data indicating the data verification unit 8 in the distributed ledger 5. Therefore, even if the data verification unit 8 is deployed to the BC server 2 by someone other than the SC automatic generation unit 6, the data verification unit 8 can automatically generate the SC by using the hash value registered in the distributed ledger 5. It is possible to verify whether the SC is generated by the generation unit 6 or not. Therefore, according to the present embodiment, even when using a BC infrastructure in which the SC generated by the SC automatic generation unit 6 cannot be deployed to the BC server 2, the same effect as in the first embodiment can be obtained. effect can be obtained.
  • the data registration section 10 and the data reference section 11 belong to the data registration and reference section 9.
  • the data registration section 10 and the data reference section 11 are each independent.
  • the data referred to by the data reference unit 11 is data registered by the valid data registration unit 10. You can confirm that there is.
  • FIG. 11 shows an example of a system configuration of a BC system 90 according to the third embodiment.
  • the BC server 2 includes an automatic SC generation section 6, a data control section 7, a data verification section 8, a data registration section 10, a data reference section 11, and a distributed ledger 5.
  • the functions of the data control section 7 are basically the same as those of the data control section 7 described above.
  • the data control unit 7 does not consider whether the data registration unit 10 and the data reference unit 11 are included in the same data registration reference unit 9.
  • Each of the client application 4 and the BC network 3 is the same as that of the first embodiment.
  • FIG. 11 shows a configuration in which the data registration section 10 and the data reference section 11 are made independent in the data verification device 1 according to the first embodiment.
  • the configuration of the data verification device 1 according to the present embodiment may be such that the data registration section 10 and the data reference section 11 are made independent in the data verification device 1 according to the second embodiment.
  • the configuration of the data verification device 1 is the configuration shown in FIG. 11.
  • the hardware configuration example according to the third embodiment is similar to the hardware configuration example according to the above-described embodiments.
  • FIG. 12 is a flowchart illustrating an example of data registration processing. The data registration process will be explained with reference to FIG. Note that steps S015 to S016 are the same as those in the first embodiment.
  • the registration data transmitting/receiving unit 13 specifies the data registration unit 10 to be used, and transmits the registration data input by the user to the data control unit 7 corresponding to the specified data registration unit 10.
  • Step S062 The data control unit 7 verifies the designated data registration unit 10. The matters verified by the data control unit 7 in step S063 and step S064 will be explained.
  • Step S063 This step is similar to step S013.
  • the data verification device 1 transitions to step S064. In other cases, the data verification device 1 skips all subsequent processing and ends the data registration processing.
  • Step S064 This step is similar to step S014.
  • Step S065 The data control unit 7 transmits the registration data to the designated data registration unit 10.
  • Step S066 This step is similar to step S018.
  • Step S067) This step is similar to step S019.
  • Step S068 This step is similar to step S020.
  • Step S069 This step is similar to step S021. If the verification result indicated by the received verification result data is positive, the data verification device 1 transitions to step S070. In other cases, the data verification device 1 skips all subsequent processing and ends the data registration processing.
  • Step S070 This step is similar to step S022.
  • FIG. 13 is a flowchart illustrating an example of data reference processing. The data reference process will be explained with reference to FIG.
  • the reference data transmitting/receiving unit 14 specifies the data reference unit 11 to be used, and transmits the reference data input by the user to the data control unit 7 corresponding to the specified data reference unit 11.
  • Step S082 The data control unit 7 verifies the designated data reference unit 11. The matters verified by the data control unit 7 in step S083 and step S084 will be explained.
  • the data control unit 7 confirms whether the data reference unit 11 executes address transmission processing.
  • the address transmission process is a process of transmitting the data acquired from the distributed ledger 5 as well as data indicating the source address of the acquired data to the data control unit 7.
  • the data indicating the source address may be data indicating the source address itself, such as a hash value of data indicating the source address or encrypted data indicating the source address, etc.
  • the data may be converted data.
  • the data control unit 7 checks whether the structure of the program that implements the data reference unit 11 satisfies each of the following two points. If all two points are satisfied, the data control unit 7 determines that the data reference unit 11 executes the address transmission process.
  • the first point is that the structure of the data reference unit 11 is such that when the data reference unit 11 acquires data from the distributed ledger 5, it also acquires data indicating the source address of the acquired data.
  • the second point is that the structure of the data reference section 11 is such that, together with the data acquired by the data reference section 11, data indicating the source address of the acquired data is also transmitted to the data control section 7.
  • the data verification device 1 transitions to step S084. In other cases, the data verification device 1 skips all subsequent processing and ends the data reference processing.
  • Step S084 This step is similar to step S034.
  • the data verification device 1 transitions to step S085. In other cases, the data verification device 1 skips all subsequent processing and ends the data reference processing.
  • Step S085 The data control unit 7 transmits the reference item data to the designated data reference unit 11.
  • Step S086 This step is similar to step S041.
  • Step S087 The data reference unit 11 transmits data indicating the source address of the acquired reference data to the data control unit 7.
  • Step S088 The data control section 7 verifies the data registration section 10 corresponding to the received data.
  • the data registration unit 10 corresponds to the received data.
  • the matters verified by the data control unit 7 in step S089 and step S090 will be explained.
  • Step S089 This step is similar to step S013.
  • the data verification device 1 transitions to step S090. In other cases, the data verification device 1 skips all subsequent processing and ends the data reference processing. Note that even if the data registration unit 10 corresponding to the received data does not exist, the data verification device 1 skips all subsequent processing and ends the data reference processing.
  • Step S090 This step is similar to step S014.
  • the data verification device 1 transitions to step S091. In other cases, the data verification device 1 skips all subsequent processing and ends the data reference processing.
  • Step S091 This step is similar to step S015. The matters verified by the data control unit 7 in step S092 will be explained.
  • Step S092 This step is similar to step S016. If the data verification unit 8 is a genuine data verification unit, the data verification device 1 transitions to step S093. In other cases, the data verification device 1 skips all subsequent processing and ends the data reference processing.
  • Step S093 This step is similar to step S043.
  • the data control unit 7 receives data indicating the source address of the acquired data together with the data acquired by the data reference unit 11, and makes reference based on the received data. It is possible to identify the data registration unit 10 that has registered the data, and to verify the identified data registration unit 10. Therefore, it is ensured that the reference data is valid data registered by the valid data registration unit 10. Therefore, according to the present embodiment, even if the data registration section 10 and the data reference section 11 are independent, the same effect as that of the first embodiment can be obtained when referring to data. be able to.
  • each of the data registration section 10 and the data reference section 11 is sequentially verified at the time of data registration or data reference.
  • verification result data indicating the results of verifying each of the data registration unit 10 and the data reference unit 11 is registered in the distributed ledger 5, and the verification result data registered in the distributed ledger 5 is used from next time onwards. Use as appropriate when performing verification.
  • FIG. 14 shows an example of the system configuration of the BC system according to this embodiment.
  • the BC server 2 includes an automatic SC generation section 6, a data control section 7, a data verification section 8, a data registration reference section 9, and a distributed ledger 5.
  • the data control unit 7 has a function of verifying each of the data registration unit 10, data reference unit 11, and data verification unit 8, and registering verification result data indicating the verified results in the distributed ledger 5.
  • the data control unit 7 has a function of verifying each of the data registration unit 10, data reference unit 11, and data verification unit 8 by referring to verification result data registered in the distributed ledger 5. That is, the data control unit 7 registers the first verification result data and the second verification result data in the distributed ledger 5.
  • the first verification result data indicates the result of verifying the program corresponding to the verification registration process.
  • the second verification result data indicates the result of verifying the program corresponding to the data reference process.
  • a program corresponding to data reference processing is a program that implements the data reference unit 11.
  • the data control unit 7 also verifies the program corresponding to the verification registration process by referring to the first verification result data registered in the distributed ledger 5, and the second verification result registered in the distributed ledger 5. Verify a program that references data and supports data reference processing.
  • the data control section 7 may use any data when specifying each section, in the following it is assumed that the data control section 7 uses a hash value when specifying each section.
  • Each of the client application 4 and the BC network 3 is the same as that of the first embodiment.
  • FIG. 14 shows how verification result data corresponding to each of the data registration unit 10, data reference unit 11, and data verification unit 8 is registered in the distributed ledger 5 for the data verification device 1 according to the first embodiment. and a function to reference verification result data registered in the distributed ledger 5 that corresponds to each of the data registration section 10, data reference section 11, and data verification section 8.
  • the data verification device 1 according to the present embodiment may have a configuration in which these functions are added to the data verification device 1 according to either the second embodiment or the third embodiment.
  • the configuration of the data verification device 1 is the configuration shown in FIG. 14.
  • the hardware configuration example according to the fourth embodiment is the same as the hardware configuration example according to the embodiments described above.
  • FIGS. 15 and 16 are flowcharts showing an example of data registration processing.
  • the data registration process will be explained with reference to FIGS. 15 and 16. Note that steps S017 to S022 are the same as those in the first embodiment.
  • Step S101 This step is similar to step S011.
  • the data registration section 10 refers to the data registration section 10 provided in the data registration reference section 9 specified in this step.
  • Step S102 This step is similar to step S012. The matters verified by the data control unit 7 in step S103 and step S104 will be explained.
  • Step S103 The data control unit 7 checks whether verification result data corresponding to the hash value of the data indicating the data registration unit 10 is registered in the distributed ledger 5. Specifically, the data control unit 7 checks whether each of the following two points is satisfied for the data registered in the distributed ledger 5. If both of the two points are satisfied, the data control unit 7 determines that the verification result data corresponding to the hash value of the data indicating the data registration unit 10 is registered in the distributed ledger 5. The first point is that the hash value of the data indicating the data registration unit 10 is registered in the distributed ledger 5. The second point is that verification result data corresponding to the hash value of data indicating the data registration unit 10 is registered in the distributed ledger 5. If the verification result data corresponding to the hash value of the data indicating the data registration unit 10 is registered in the distributed ledger 5, the data verification device 1 moves to step S104. In other cases, the data verification device 1 moves to step S105.
  • Step S104 When verification result data corresponding to the hash value of data indicating the data registration unit 10 is registered in the distributed ledger 5, the data control unit 7 determines whether or not the verification result indicated by the verification result data is positive. confirm. Note that the hash value of the data indicating the data registration unit 10 and the verification result data corresponding to the hash value are registered in the distributed ledger 5 in step S109 or step S110. If the verification result data registered in the distributed ledger 5 and which corresponds to the hash value of the data indicating the data registration unit 10 indicates a positive verification result, the data verification device 1 proceeds to step S017. Transition. In other cases, the data verification device 1 skips all subsequent processing and ends the data registration processing.
  • Step S105 If the verification result data corresponding to the hash value of the data indicating the data registration unit 10 is not registered in the distributed ledger 5, the data control unit 7 executes the process shown in step S013 so that the data registration unit 10 Check whether to execute the verification registration process.
  • the data verification device 1 moves to step S106. In other cases, the data verification device 1 transitions to step S110.
  • Step S106 When the data registration unit 10 executes the verification registration process, the data control unit 7 checks whether the data registration unit 10 executes the limited registration process by executing the process shown in step S014. When the data registration unit 10 executes the limited registration process, the data verification device 1 moves to step S107. In other cases, the data verification device 1 transitions to step S110.
  • Step S107 When the data registration unit 10 executes limited registration processing, the data control unit 7 verifies the data verification unit 8 used by the data registration unit 10. The matters verified by the data control unit 7 in step S108 will be explained.
  • Step S108 This step is similar to step S016. If the data verification unit 8 is a genuine data verification unit, the data verification device 1 moves to step S109. In other cases, the data verification device 1 transitions to step S110.
  • Step S109 When the data verification section 8 is an authentic data verification section, the data control section 7 stores the hash value of the data indicating the data registration section 10 and the verification result data indicating that the verification result of the data registration section 10 is positive. They are registered in the distributed ledger 5 in correspondence.
  • Step S110 If the data registration unit 10 does not execute the verification registration process, if the data registration unit 10 does not execute the limited registration process, or if the data validation unit 8 is not an authentic data validation unit, the data control unit 7 The hash value of the data indicating 10 and the verification result data indicating that the verification result of the data registration unit 10 is negative are registered in the distributed ledger 5 in association with each other.
  • FIGS. 17 and 18 are flowcharts illustrating an example of data reference processing. Data reference processing will be explained with reference to FIGS. 17 and 18. Note that steps S040 to S043 are the same as those in the first embodiment.
  • Step S121 This step is similar to step S031.
  • the data reference section 11 refers to the data reference section 11 provided in the data registration reference section 9 specified in this step.
  • Step S122 This step is similar to step S032. The items verified by the data control unit 7 in steps S123 to S126 will be explained.
  • Step S123 The data control unit 7 checks whether verification result data corresponding to the hash value of the data indicating the data reference unit 11 is registered in the distributed ledger 5. The data control unit 7 checks whether each of the following two points is satisfied for the data registered in the distributed ledger 5. If all two points are satisfied, it is determined that the verification result data corresponding to the hash value of the data indicating the data reference unit 11 is registered in the distributed ledger 5. The first point is that the hash value of the data indicating the data reference section 11 is registered in the distributed ledger 5. The second point is that verification result data corresponding to the hash value of the data indicating the data reference unit 11 is registered in the distributed ledger 5. If the verification result data corresponding to the hash value of the data indicating the data reference unit 11 is registered in the distributed ledger 5, the data verification device 1 moves to step S124. In other cases, the data verification device 1 transitions to step S125.
  • Step S124 When verification result data corresponding to the hash value of data indicating the data reference section 11 is registered in the distributed ledger 5, the data control section 7 determines whether the verification result indicated by the verification result data is positive. confirm. Note that the hash value of the data indicating the data reference unit 11 and the verification result data corresponding to the hash value are registered in the distributed ledger 5 in step S130 or step S131. If the verification result data registered in the distributed ledger 5 and which corresponds to the hash value of the data indicating the data reference unit 11 indicates a positive verification result, the data verification device 1 proceeds to step S040. Transition. In other cases, the data verification device 1 skips all subsequent processing and ends the data reference processing.
  • Step S125 If the verification result data corresponding to the hash value of the data indicating the data reference section 11 is not registered in the distributed ledger 5, the data control section 7 updates the data reference section 11 by executing the process shown in step S033. It is confirmed whether the data registration reference section 9 provided includes the data registration section 10 or not. When the data registration reference unit 9 including the data reference unit 11 includes the data registration unit 10, the data verification device 1 moves to step S126. In other cases, the data verification device 1 transitions to step S131.
  • Step S126 When the data registration reference unit 9 including the data reference unit 11 includes the data registration unit 10, the data control unit 7 determines whether the data reference unit 11 executes the limited reference process by executing the process shown in step S034. Check whether When the data reference unit 11 executes the limited reference process, the data verification device 1 moves to step S127. In other cases, the data verification device 1 transitions to step S131.
  • Step S127 When the data reference section 11 executes the limited reference processing, the data control section 7 verifies the data registration section 10 included in the data registration reference section 9 that includes the data reference section 11 .
  • the matters verified by the data control unit 7 in step S128, step S129, step S105, and step S106 will be explained.
  • Step S128 This step is similar to step S103. If the verification result data corresponding to the hash value of the data indicating the data registration unit 10 is registered in the distributed ledger 5, the data verification device 1 moves to step S129. In other cases, the data verification device 1 moves to step S105.
  • Step S129 This step is similar to step S104. Note that the hash value of the data indicating the data registration unit 10 and the verification result data corresponding to the hash value are registered in the distributed ledger 5 in step S109 or step S110. If the verification result data registered in the distributed ledger 5 and which corresponds to the hash value of the data indicating the data registration unit 10 indicates a positive verification result, the data verification device 1 proceeds to step S130. Transition. In other cases, the data verification device 1 transitions to step S131.
  • Step S130 If the verification result indicated by the verification result data corresponding to the hash value of the data indicating the data registration unit 10 registered in the distributed ledger 5 is positive, the data control unit 7 generates a hash value of the data indicating the data reference unit 11. The value and verification result data indicating that the verification result is positive are registered in the distributed ledger 5 in association with each other. Note that if the verification result data corresponding to the hash value of the data indicating the data registration unit 10 is not registered in the distributed ledger 5, as explained in the data registration process, steps S105 to S108 and step S109 or step S110 are performed. The processing shown in is executed. Further, after executing the process shown in step S109, the data control unit 7 associates the hash value of the data indicating the data reference unit 11 with the verification result data indicating that the verification result is positive, and registers the distributed ledger. Register for 5.
  • Step S131 After executing the process shown in step S110, the data control unit 7 associates the hash value of the data indicating the data reference unit 11 with the verification result data indicating that the verification result is negative, and stores it in the distributed ledger 5. register.
  • the data control unit 7 registers verification result data in the distributed ledger 5 when performing verification.
  • the data control unit 7 can use the verification result data registered in the distributed ledger 5 when performing verification. Therefore, according to the present embodiment, the same effects as those of the first embodiment can be obtained, and furthermore, the time required to verify each part can be shortened.
  • 1 Data verification device 2,101 BC server, 3 BC network, 4 Client application, 5 Distributed ledger, 6 SC automatic generation unit, 7 Data control unit, 8 Data verification unit, 9 Data registration reference unit, 10 Data registration unit , 11 Data reference section, 12 Verification rule transmission and reception section, 13 Registration data transmission and reception section, 14 Reference data transmission and reception section, 15 Reference data reception section, 16 Generation SC deployment section, 51 Processor, 52 Memory, 53 Auxiliary storage device, 54 Communication Interface, 58 Processing circuit, 90 BC system.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

分散型台帳(5)に登録する電子データを検証するデータ検証装置(1)は、データ検証部(8)とデータコントロール部(7)とデータ登録部(10)とを備える。データ検証部(8)は、分散型台帳(5)に登録する登録データが、分散型台帳(5)に登録する電子データを検証するためのルールである検証ルールに従うか否かを判定する。データコントロール部(7)は、データ検証部(8)がブロックチェーン内において生成されたか否かを判定する。データ登録部(10)は、データ検証部(8)がブロックチェーン内において生成されたと判定された場合、かつ、登録データが検証ルールに従うと判定された場合に、登録データを分散型台帳(5)に登録する。

Description

データ検証装置、クライアントアプリケーション、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラム
 本開示は、データ検証装置、クライアントアプリケーション、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラムに関する。
 ブロックチェーン(BC)技術では、システム内においてやり取りされる情報の信頼性が分散ネットワーク内の合意形成のプロセスによって担保され、かつ、改ざん等の不正をシステム全体で防ぐことができる。そこで、トレーサビリティの担保を目的としてブロックチェーン技術を活用することが検討されている。BC技術を活用したシステムにおいて、登録されたデータは、BCネットワークの参加者に共有され、かつ、正当なデータであると判断される。そのため、ルールに基づいた入力データであるか否かをシステムにデータを登録する前に検証する必要がある。そこで、データ検証SC(Smart Contract)の信頼性を高めるため、BC内においてデータ検証SCを自動的に生成し、生成されたデータ検証SCを用いてデータを検証することにより、検証結果の正当性を担保する技術がある(例えば、非特許文献1)。データ検証SCは、データを検証するためのSCである。なお、SCは、BC内において、規定のルールに従ってトランザクション又は外部情報等をトリガーとして実行されるプログラムである。データの検証とデータの登録とデータの参照等をSCによって実現することができる。
Ethereum,"Contracts-Solidity 0.5.4 ドキュメント",[online],2019年7月12日,Solidity,[2021年11月9日検索]インターネット<URL:https://solidity-jp.readthedocs.io/ja/latest/contracts.html>
 非特許文献1が開示している技術では、BC内においてデータ検証SCが生成され、データ登録SCはデータ検証SCによって検証された登録データを分散型台帳に登録する。データ登録SCは、データを登録するためのSCである。しかしながら、当該技術において、登録データを検証する際に用いられるデータ検証SCがBC内において生成されたデータ検証SCであることは担保されていないという課題がある。
 本開示は、分散型台帳に登録することを要求された登録データをBC内において生成されたデータ検証SCを用いて検証する技術において、登録データを検証する際に用いられるデータ検証SCがBC内において生成されたデータ検証SCであることを担保することを目的とする。
 本開示に係るデータ検証装置は、
 ブロックチェーンを構成するサーバに格納されている分散型台帳に登録する電子データを検証するデータ検証装置であって、
 前記分散型台帳に登録することを要求された電子データである登録データが、前記分散型台帳に登録する電子データを検証するためのルールである検証ルールに従うか否かを判定するデータ検証処理を実行するデータ検証部と、
 前記データ検証処理に対応するプログラムが前記ブロックチェーン内において生成されたか否かを判定するデータコントロール部と、
 前記データ検証処理に対応するプログラムが前記ブロックチェーン内において生成されたと判定された場合に検証登録処理を実行するデータ登録部と
を備え、
 前記検証登録処理は、前記データ検証処理によって前記登録データが前記検証ルールに従うと判定された場合に、前記登録データを前記分散型台帳に登録する処理である。
 本開示によれば、データコントロール部は、データ検証処理に対応するプログラムがBC内において生成されたか否かを判定する。また、データ登録部は、データ検証処理に対応するプログラムがBC内において生成されたと判定された場合に検証登録処理を実行する。ここで、データ検証処理に対応するプログラムはデータ検証SCに相当する。従って、本開示によれば、分散型台帳に登録することを要求された登録データをBC内において生成されたデータ検証SCを用いて検証する技術において、登録データを検証する際に用いられるデータ検証SCがBC内において生成されたデータ検証SCであることを担保することができる。
実施の形態1に係るBCシステム90の構成例を示す図。 実施の形態1に係るBCシステム90のハードウェア構成例を示す図。 実施の形態1に係るデプロイ処理を示すフローチャート。 実施の形態1に係るデータ登録処理を示すフローチャート。 実施の形態1に係るデータ参照処理を示すフローチャート。 実施の形態1の変形例に係るデータ検証装置1のハードウェア構成例を示す図。 実施の形態2に係るBCシステム90の構成例を示す図。 実施の形態2に係るデプロイ処理を示すフローチャート。 実施の形態2に係るデータ登録処理を示すフローチャート。 実施の形態2に係るデータ参照処理を示すフローチャート。 実施の形態3に係るBCシステム90の構成例を示す図。 実施の形態3に係るデータ登録処理を示すフローチャート。 実施の形態3に係るデータ参照処理を示すフローチャート。 実施の形態4に係るBCシステム90の構成例を示す図。 実施の形態4に係るデータ登録処理を示すフローチャート。 実施の形態4に係るデータ登録処理を示すフローチャート。 実施の形態4に係るデータ参照処理を示すフローチャート。 実施の形態4に係るデータ参照処理を示すフローチャート。
 実施の形態の説明及び図面において、同じ要素及び対応する要素には同じ符号を付している。同じ符号が付された要素の説明は、適宜に省略又は簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。また、「部」を、「回路」、「工程」、「手順」、「処理」、「サーキットリー」又は「スマートコントラクト」に適宜読み替えてもよい。
 実施の形態1.
 以下、本実施の形態について、図面を参照しながら詳細に説明する。
***構成の説明***
 図1は、本実施の形態に係るBC(Blockchain)システム90のシステム構成例を示している。BCシステム90はブロックチェーンを実現するシステムである。図1に示すように、BCシステム90は、データ検証装置1と、BCネットワーク3と、クライアントアプリケーション4と、BCサーバ101とを備える。
 データ検証装置1は、BCサーバ2を備える装置であり、分散型台帳5に登録する電子データを検証する装置であり、データ登録参照検証装置とも呼ばれる。
 BCサーバ2は、BCを構成するサーバであり、SC(Smart Contract)自動生成部6と、データコントロール部7と、データ検証部8と、データ登録参照部9と、分散型台帳5とを備える。
 SC自動生成部6は、クライアントアプリケーション4から検証ルールを示すデータを受信し、受信したデータに基づいてデータ検証部8を生成し、生成したデータ検証部8をデプロイする。検証ルールは、分散型台帳5に登録する電子データを検証するためのルールであり、分散型台帳5に登録される電子データが従うべきルールである。
 データコントロール部7は、クライアントアプリケーション4からデータを受信し、受信したデータに基づいてデータ登録部10とデータ参照部11とデータ検証部8との各々を検証する。データ検証部8を検証する処理は、データ検証部8がSC自動生成部6によって生成されたか否かを判定する処理であり、データ検証処理に対応するプログラムがBC内において生成されたか否かを判定する処理である。データ検証処理に対応するプログラムはデータ検証部8を実現するプログラムである。データ検証処理は、登録データが検証ルールに従うか否かを判定する処理である。
 また、データコントロール部7は、データ登録部10に登録データを送信し、データ参照部11に参照事項データを送信し、データ参照部11から参照データを受信する。登録データは、分散型台帳5に登録することを要求された電子データであり、分散型台帳5に登録される可能性がある電子データである。参照事項データは、分散型台帳5において参照すべき事項を示す電子データであり、分散型台帳5に登録されている電子データを参照する指示を示す電子データである。参照データは、データ参照部11が参照した電子データであり、参照事項データに対応する電子データであり、分散型台帳5に登録されている電子データである。
 データコントロール部7は、登録指示処理を実行し、登録指示処理が示す電子データのみが分散型台帳に登録される場合、かつ、検証登録処理によって分散型台帳5に電子データが登録される場合に、参照データが検証登録処理によって分散型台帳5に登録されたと判定する。登録指示処理は、電子データを分散型台帳5に登録するよう指示する処理である。検証登録処理は、データ検証部8を用いて登録データを検証し、かつ、登録データに対応する検証結果データに基づいて登録データを分散型台帳5に登録する処理である。即ち、検証登録処理は、データ検証処理によって登録データが検証ルールに従うと判定された場合に、登録データを分散型台帳5に登録する処理である。検証結果データは、データ検証部8による検証結果を示すデータである。登録データに対応する検証結果データは、データ検証部8が登録データを検証した結果を示すデータである。
 データコントロール部7は、登録指示処理が示す電子データのみが分散型台帳5に登録される場合、検証登録処理によって分散型台帳5に電子データが登録される場合、かつ、参照データの送信元アドレスが検証登録処理に対応するプログラムに対応するアドレスである場合に、参照データが検証登録処理によって分散型台帳5に登録されたと判定する。検証登録処理に対応するプログラムは、データ登録部10を実現するプログラムである。検証登録処理に対応するプログラムに対応するアドレスは、データ登録部10を示すデータのアドレスである。
 データ検証部8は、データ登録部10から登録データを受信し、受信した登録データに対してデータ検証処理を実行する。
 データ登録参照部9は、データ登録部10とデータ参照部11とを備える。
 データ登録部10は、データコントロール部7から登録データを受信し、受信した登録データを検証するために登録データをデータ検証部8に送信し、データ検証部8から登録データを検証した結果を示すデータを受信し、データ検証部8によって検証された登録データを分散型台帳5に登録する。データ登録部10は、データ検証処理に対応するプログラムがBC内において生成されたと判定された場合に検証登録処理を実行する。
 データ参照部11は、データコントロール部7から参照事項データを受信し、受信した参照事項データに基づいて分散型台帳5から参照データを取得し、取得した参照データをデータコントロール部7に送信する。この際、データ参照部11は、データ検証処理に対応するするプログラムがBC内において生成されたと判定された場合、かつ、参照データが検証登録処理によって分散型台帳5に登録されたと判定された場合にデータ参照処理を実行する。データ参照処理は、参照事項データに基づいて分散型台帳5に登録されている電子データを参照する処理である。なお、データ検証部8がBC内において生成された場合、かつ、データ登録部10が検証登録処理及び限定登録処理を実行する場合に、参照データが検証登録処理によって分散型台帳5に登録されたと判定される。限定登録処理は、登録データがデータコントロール部7から送信されたデータである場合においてのみ分散型台帳5に登録データを登録する処理である。データ登録部10が限定登録処理を実行する場合、登録指示処理が示す電子データのみが分散型台帳5に登録される。
 分散型台帳5は、BCサーバ2に格納されており、データ登録部10によってデータを登録される。分散型台帳5に登録されているデータは、データ参照部11によって参照される。
 なお、SC自動生成部6と、データコントロール部7と、データ検証部8と、データ登録参照部9と、データ登録部10と、データ参照部11との各々はSCである。SCは、BCシステム90において、規定のルールに従ってトランザクション又は外部情報等をトリガーとして実行されるプログラムである。プログラムは、典型的にはコンピュータの実行ファイルを指す。
 BCネットワーク3は、BCサーバ2及びBCサーバ101等のBCサーバと接続しているネットワークである。BCネットワーク3は、単数もしくは複数のBCサーバと接続している。
 BCサーバ101は、BCサーバ2と同等の機能を有していなくてもよい。BCサーバ101の個数は複数であってもよい。
 クライアントアプリケーション4は、検証ルール送受信部12と、登録データ送受信部13と、参照事項データ送受信部14と、参照データ受信部15とを備えるアプリケーションである。クライアントアプリケーション4は、BCを構成するサーバと通信する装置であり、アプリケーションプログラムを実行する装置である。なお、クライアントアプリケーション4が備える各部がデータ検証装置1に対して送信するデータは、クライアントアプリケーション4がユーザから受信したデータであってもよく、クライアントアプリケーション4に対してユーザが入力したデータであってもよい。ユーザはBCシステム90の利用者である。ユーザは人間に限らずコンピュータ等であってもよい。
 検証ルール送受信部12は、検証ルールを示すデータをSC自動生成部6に送信する。
 登録データ送受信部13は、使用するデータ登録参照部9を指定し、指定したデータ登録参照部9に対応するデータコントロール部7に登録データを送信する。なお、登録データ送受信部13は使用するデータ登録部10を指定してもよい。
 参照事項データ送受信部14は、使用するデータ登録参照部9を指定し、指定したデータ登録参照部9に対応するデータコントロール部7に参照事項データを送信する。なお、参照事項データ送受信部14は使用するデータ参照部11を指定してもよい。
 参照データ受信部15は、データコントロール部7から参照データを受信する。
 なお、BCシステム90がクライアントアプリケーション4を備えず、ユーザがBCサーバ2にアクセスしてBCサーバ2を制御することにより、クライアントアプリケーション4が備える機能と同等の機能が実現されてもよい。
 図2は、BCシステム90のハードウェア構成例を示している。
 図2は、BCサーバ2と、クライアントアプリケーション4と、BCサーバ101との各々が独立した装置において動作する場合における具体例を示している。各装置は、プロセッサ51とメモリ52と補助記憶装置53と通信インタフェース54等のハードウェアを備える。各装置が備えるハードウェアはバスにより適宜接続されている。
 バスは、ハードウェア間を電気的に接続し、データのやり取りが行われる信号経路である。装置間及び機器間は通信経路を介して接続されている。通信経路は、有線通信の経路であってもよく、無線通信の経路であってもよい。
 プロセッサ51は、補助記憶装置53に格納されているプログラムを読み込み、読み込んだプログラムをメモリ52に展開して実行する。プロセッサ51は、バスを介して他のハードウェアと接続しており、各ハードウェアを制御する。プロセッサ51は、プロセッシングを行うIC(Integrated Circuit)であればよく、具体例として、マイクロプロセッサ又はDSP(Digital Signal Processor)であってもよい。各装置は複数のプロセッサを備えてもよい。
 メモリ52には、プロセッサ51が補助記憶装置53から呼び出したプログラムが展開される。メモリ52は、メインメモリとも呼ばれ、具体例として、RAM(Random Access Memory)等の揮発性の半導体メモリ等である。
 補助記憶装置53は、ソフトウェア、ファームウェア、又はソフトウェアとファームウェアの組み合わせが記述されたプログラムと、OS(Operating System)等を記憶する。また、補助記憶装置53は各種情報等を記憶する。なお、データと情報とは同等の意味を有することもある。補助記憶装置53は、具体例として、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、HDD(Hard Disk Drive)等の不揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD(Digital Versatile Disc)等の可搬記録媒体等である。なお、各装置は外部の記憶装置を適宜利用してもよい。
 通信インタフェース54は、ハードウェア間において情報の授受を行う接続部である。
 なお、BCシステム90の各機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせにより実現することができる。BCシステム90の各機能について、一部を専用のハードウェアにより実現し、残りをソフトウェア又はファームウェアにより実現してもよい。ソフトウェア、ファームウェア、又はソフトウェアとファームウェアの組み合わせはプログラムとして記述されていればよい。
 BCサーバ2を実現する装置において、プロセッサ51はBCサーバ2が備える各部の制御を担当し、メモリ52には、プロセッサ51が補助記憶装置53から呼び出したプログラムであって、BCサーバ2が備える各部を実現するプログラムが展開される。BCサーバ2を実現する装置において、補助記憶装置53は、BCサーバ2が備える各部の機能を実現するプログラムと、分散型台帳5に登録された情報とを記憶する。BCサーバ2を実現する装置において、SC自動生成部6及びデータコントロール部7の各々は、通信インタフェース54を用いてクライアントアプリケーション4及びBCサーバ101等に接続する。
 クライアントアプリケーション4を実現する装置において、プロセッサ51はクライアントアプリケーション4が備える各部の制御を担当し、メモリ52には、プロセッサ51が補助記憶装置53から呼び出したプログラムであって、クライアントアプリケーション4が備える各部の機能を実現するプログラムが展開される。クライアントアプリケーション4を実現する装置において、補助記憶装置53は、クライアントアプリケーション4が備える各部の機能を実現するプログラムを記憶する。クライアントアプリケーション4を実現する装置において、クライアントアプリケーション4が備える各部は、通信インタフェース54を用いてBCサーバ2等に接続する。
 各装置はネットワークを経由して接続される。図2では各装置が1つのネットワークに接続している具体例を示されているが、BCサーバ2及びクライアントアプリケーション4と、BCサーバ2及びBCサーバ101との各々の間において通信可能であれば、ネットワークは複数に分割されていてもよい。また、BCサーバ2とクライアントアプリケーション4とBCサーバ101との少なくとも一部は、1つの装置によって実現されてもよい。また、各装置は、物理的に実体を有する装置に限られず、仮想化技術によって仮想化された装置であってもよい。
 本明細書に記載されているいずれのプログラムも、コンピュータが読み取り可能な不揮発性の記録媒体に記録されていてもよい。不揮発性の記録媒体は、具体例として、光ディスク又はフラッシュメモリである。本明細書に記載されているいずれのプログラムも、プログラムプロダクトとして提供されてもよい。
***動作の説明***
 データ検証装置1の動作手順はデータ検証方法に相当する。また、データ検証装置1の動作を実現するプログラムはデータ検証プログラムに相当する。
 図3は、デプロイ処理の一例を示すフローチャートである。デプロイ処理は、データ検証部8を生成し、生成したデータ検証部8をBCサーバ2にデプロイする処理であり、データ検証部生成及びデプロイ処理とも呼ばれる。
(ステップS001)
 検証ルール送受信部12は、ユーザが入力した検証ルールを示すデータをSC自動生成部6に送信する。
(ステップS002)
 SC自動生成部6は、検証ルール送受信部12から検証ルールを示すデータを受信し、受信したデータが示す検証ルールに基づいてデータ検証部8を生成する。具体例として、データ検証部8は、SC自動生成部6があらかじめ保持しているSCの原型であるテンプレートに対して受信したデータが示す検証ルールを埋め込むことにより生成される。
(ステップS003)
 SC自動生成部6は、生成したデータ検証部8をBCサーバ2にデプロイする。
 以上のデプロイ処理によって、BCネットワーク3に接続したBCサーバにおいてデータ検証部8が使用可能となる。なお、BCネットワーク3に接続したBCサーバの内、一部のBCサーバにおいてのみデータ検証部8が使用可能となってもよい。
 図4は、データ登録処理の一例を示すフローチャートである。図4を参照してデータ登録処理を説明する。
(ステップS011)
 登録データ送受信部13は、使用するデータ登録参照部9を指定し、ユーザが入力した登録データを、指定したデータ登録参照部9に対応するデータコントロール部7に送信する。
(ステップS012)
 データコントロール部7は、指定されたデータ登録参照部9が備えるデータ登録部10を検証する。ステップS013及びステップS014において、データコントロール部7が検証する事項を説明する。
(ステップS013)
 データコントロール部7は、データ登録部10が検証登録処理を実行するか否かを判定する。
 具体的には、データコントロール部7は、データ登録部10を実現するプログラムの構造について以下の3点の各々が満たされているか否かを確認する。3点全てが満たされている場合、データコントロール部7は、データ登録部10が検証登録処理を実行すると判定する。
 1点目は、データ登録部10の構造が、データ登録部10が受信した登録データをデータ検証部8に送信する構造であることである。
 2点目は、データ登録部10の構造が、登録データに対応する検証結果データをデータ検証部8から受信する構造であることである。
 3点目は、データ登録部10の構造が、データ検証部8から受信した検証結果データであって、登録データに対応する検証結果データに基づいて、分散型台帳5に登録データを登録するか否かを判断する構造であることである。
 データ登録部10が検証登録処理を実行する場合、データ検証装置1はステップS014に遷移する。データ登録部10がデータ検証部8を用いて登録データを検証しない場合、又は、データ登録部10が登録データに対応する検証結果データに基づいて登録データを分散型台帳5に登録しない場合、データ検証装置1は、以降の全ての処理をスキップし、データ登録処理を終了する。
(ステップS014)
 データコントロール部7は、データ登録部10が限定登録処理を実行するか否かを判定する。
 具体的には、データコントロール部7は、データ登録部10を実現するプログラムの構造について以下の2点の各々が満たされているか否かを確認する。2点全てが満たされている場合、データコントロール部7は、データ登録部10が限定登録処理を実行すると判定する。
 1点目は、データ登録部10の構造が、データ登録部10が受信した登録データがデータコントロール部7から送信されたデータであるか否かを確認する構造であることである。
 2点目は、データ登録部10の構造が、データコントロール部7から送信されていないと判断した登録データについては、分散型台帳5に登録せずにプログラムの処理を終了する構造であることである。
 データ登録部10が限定登録処理を実行する場合、データ検証装置1はステップS015に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ登録処理を終了する。
(ステップS015)
 データコントロール部7は、データ登録部10が用いるデータ検証部8を検証する。ステップS016において、データコントロール部7が検証する事項を説明する。
(ステップS016)
 データコントロール部7は、データ検証部8が真正データ検証部である否かを判定する。本実施の形態に係る真正データ検証部は、SC自動生成部6によって生成され、かつ、SC自動生成部6によってデプロイされたデータ検証部である。データ検証部8が真正データ検証部であるか否かは、データ検証部8の送信元アドレスがSC自動生成部6を示すアドレスであるか否かによって判定される。
 データ検証部8が真正データ検証部である場合、データ検証装置1はステップS017に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ登録処理を終了する。
(ステップS017)
 データコントロール部7は、指定されたデータ登録参照部9が備えるデータ登録部10に登録データを送信する。
(ステップS018)
 データ登録部10は、登録データを受信し、受信した登録データをデータ検証部8に送信する。
(ステップS019)
 データ検証部8は、登録データを受信し、受信した登録データを検証する。具体的には、データ検証部8は、受信した登録データが、データ検証部8を生成する際に入力された検証ルールに則っているか否かを検証する。
(ステップS020)
 データ検証部8は、受信した登録データを検証した結果を示す検証結果データをデータ登録部10に送信する。データ検証部8は、検証ルールに則っている登録データを受信した場合に検証結果が正であることを示す検証結果データをデータ登録部10に送信し、それ以外の場合に検証結果が否であることを示す検証結果データをデータ登録部10に送信する。
(ステップS021)
 データ登録部10は、検証結果データを受信し、受信した検証結果データを確認する。受信した検証結果データが示す検証結果が正を示す場合、データ検証装置1はステップS022に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ登録処理を終了する。
(ステップS022)
 データ登録部10は、登録データを分散型台帳5に送信し、登録データを分散型台帳5に登録する。
 図5は、データ参照処理の一例を示すフローチャートである。図5を参照してデータ参照処理を説明する。
(ステップS031)
 参照事項データ送受信部14は、使用するデータ登録参照部9を指定し、ユーザが入力した参照事項データを、指定したデータ登録参照部9に対応するデータコントロール部7に送信する。
(ステップS032)
 データコントロール部7は、指定されたデータ登録参照部9が備えるデータ参照部11を検証する。ステップS033及びステップS034において、データコントロール部7が検証する事項を説明する。
(ステップS033)
 データコントロール部7は、データ参照部11を備えるデータ登録参照部9がデータ登録部10を備えるか否かを確認する。具体的には、データコントロール部7は、データ登録参照部9を実現するプログラムにデータ登録部10を実現する部分及びデータ参照部11を実現する部分が含まれているか否かを確認する。データ登録参照部9を実現するプログラムにデータ登録部10を実現する部分及びデータ参照部11を実現する部分が含まれている場合、データコントロール部7は、データ参照部11を備えるデータ登録参照部9がデータ登録部10を備えると判定する。
 データ参照部11を備えるデータ登録参照部9がデータ登録部10を備える場合、データ検証装置1はステップS034に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS034)
 データコントロール部7は、データ参照部11が限定参照処理を実行するか否かを判定する。限定参照処理は、受信した参照事項データがデータコントロール部7から送信されたデータである場合においてのみ分散型台帳5に登録されているデータを参照する処理である。具体的には、データコントロール部7は、データ参照部11を実現するプログラムの構造について以下の2点の各々が満たされているか否かを確認する。2点全てが満たされている場合、データコントロール部7は、データ参照部11が限定参照処理を実行すると判定する。
 1点目は、データ参照部11の構造が、データ参照部11が参照事項データを受信したときに、データ参照部11が受信した参照事項データがデータコントロール部7から送信されたか否かを確認する構造であることである。
 2点目は、データ参照部11の構造が、データ参照部11が受信した参照事項データがデータコントロール部7から送信されたデータではない場合、データ参照部11が分散型台帳5に登録されているデータを参照せずに処理を終了する構造であることである。
 データ参照部11が限定参照処理を実行する場合、データ検証装置1はステップS035に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS035)
 データコントロール部7は、データ参照部11を備えるデータ登録参照部9が備えるデータ登録部10を検証する。ステップS036及びステップS037において、データコントロール部7が検証する事項を説明する。
(ステップS036)
 本ステップはステップS013と同様である。
 データ登録部10が検証登録処理を実行する場合、データ検証装置1はステップS037に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS037)
 本ステップはステップS014と同様である。
 データ登録部10が限定登録処理を実行する場合、データ検証装置1はステップS038に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS038)
 データコントロール部7は、データ登録部10が用いるデータ検証部8を検証する。ステップS039において、データコントロール部7が検証する事項を説明する。
(ステップS039)
 本ステップはステップS016と同様である。
 データ検証部8が真正データ検証部である場合、データ検証装置1はステップS040に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS040)
 データコントロール部7は、指定されたデータ登録参照部9が備えるデータ参照部11に参照事項データを送信する。
(ステップS041)
 データ参照部11は、受信した参照事項データを用いて分散型台帳5から参照データを取得する。
(ステップS042)
 データ参照部11は、取得した参照データをデータコントロール部7に送信する。
(ステップS043)
 データコントロール部7は、受信した参照データを参照データ受信部15に送信する。
***実施の形態1の効果の説明***
 以上のように、本実施の形態によれば、データ登録部10は、分散型台帳5に登録データを登録する際に正当性が担保されたデータ検証部8を用いて登録データを検証し、検証結果に基づいて登録データを分散型台帳5に登録するか否かを決定する。そのため、データ登録部10によって分散型台帳5に登録されたデータの正当性が担保される。
 また、データ登録部10は、データコントロール部7から送信された登録データのみを分散型台帳5に登録する。従って、本実施の形態によれば、データ登録部10の不当な使用を防ぐことができるため、データ登録部10によって分散型台帳5に登録されたデータの信頼性を高めることができる。
 また、データコントロール部7は、分散型台帳5に登録されているデータを参照する際に、データ参照部11を備えるデータ登録参照部9が備えるデータ登録部10と、データ登録部10が使用するデータ検証部8との各々を検証する。そのため、データ参照部11が参照するデータが、正当性のあるデータ登録部10によって登録されたデータであることが担保される。
 また、データ参照部11は、データコントロール部7から参照事項データが送信された場合においてのみ分散型台帳5からデータを取得する。そのため、データコントロール部7によってデータ登録部10及びデータ検証部8の検証が行われた上でデータ参照部11が分散型台帳5のデータを参照することが担保される。また、データ参照部11が取得したデータの正当性が担保される。
***他の構成***
<変形例1>
 図6は、本変形例に係るデータ検証装置1のハードウェア構成例を示している。
 データ検証装置1は、プロセッサ51、プロセッサ51とメモリ52、プロセッサ51と補助記憶装置53、あるいはプロセッサ51とメモリ52と補助記憶装置53とに代えて、処理回路58を備える。
 処理回路58は、データ検証装置1が備える各部の少なくとも一部を実現するハードウェアである。
 処理回路58は、専用のハードウェアであってもよく、また、メモリ52に格納されるプログラムを実行するプロセッサであってもよい。
 処理回路58が専用のハードウェアである場合、処理回路58は、具体例として、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)又はこれらの組み合わせである。
 データ検証装置1は、処理回路58を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路58の役割を分担する。
 データ検証装置1において、一部の機能が専用のハードウェアによって実現されて、残りの機能がソフトウェア又はファームウェアによって実現されてもよい。
 処理回路58は、具体例として、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせにより実現される。
 プロセッサ51とメモリ52と補助記憶装置53と処理回路58とを、総称して「プロセッシングサーキットリー」という。つまり、データ検証装置1の各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
 本明細書に記載されている他の装置についても、本変形例と同様の構成であってもよい。
 実施の形態2.
 以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
***構成の説明***
 実施の形態1において、SC自動生成部6が生成したSCをBCサーバ2にデプロイすることができるBC基盤を利用する。
 本実施の形態では、SC自動生成部6が生成したSCをBCサーバにデプロイすることができないBC基盤を利用する。本実施の形態において、BCサーバ2外からBCサーバ2にSCがデプロイされた場合においても、デプロイされたSCがSC自動生成部6によって生成されたSCであることを確認することができる。
 図7は、本実施の形態に係るBCシステム90のシステム構成例を示している。
 BCサーバ2は、SC自動生成部6と、データコントロール部7と、データ検証部8と、データ登録参照部9と、分散型台帳5とを備える。
 本実施の形態に係るSC自動生成部6は、入力された検証ルールを示すデータに基づいてデータ検証部8を生成し、生成したデータ検証部8を示すデータを生成SCデプロイ部16に送信し、生成したSCを示すデータに対応するデータを分散型台帳5に登録する。SCを示すデータに対応するデータは、2つのSCが同一であるか否かを検証することに用いることができるデータであればどのようなデータであってもよく、具体例としてSCを示すデータのハッシュ値を示すデータである。ハッシュ値を算出するアルゴリズムは、具体例として、MD5、SHA-256、SHA-512、又はRIPEMD-160である。以下、SCを示すデータに対応するデータは、SCを示すデータのハッシュ値を示すデータであるものとする。
 本実施の形態に係る分散型台帳5は、実施の形態1に係る分散型台帳5に登録されるデータに加え、SC自動生成部6によって登録されるデータを記録する。
 本実施の形態に係るクライアントアプリケーション4は、実施の形態1に係るクライアントアプリケーション4が備える構成要素に加え、生成SCデプロイ部16を備える。
 生成SCデプロイ部16は、SC自動生成部6からデータ検証部8を示すデータを受信し、受信したデータに対応するデータ検証部8をBCサーバ2にデプロイする。即ち、生成SCデプロイ部16は、データ検証処理に対応するプログラムを示すデータをBCサーバ2から受信し、受信したデータに対応するスマートコントラクトをサーバにデプロイする。
 BCネットワーク3は実施の形態1のものと同様である。
 なお、前述の通り、BCシステム90の構成はクライアントアプリケーション4を備えない構成であってもよい。
 実施の形態2に係るBCシステム90のハードウェア構成例は、実施の形態1に係るBCシステム90のハードウェア構成例と同様である。
***動作の説明***
 図8はデプロイ処理の一例を示すフローチャートである。図8を参照してデプロイ処理を説明する。
(ステップS051)
 本ステップはステップS001と同様である。
(ステップS052)
 本ステップはステップS002と同様である。
(ステップS053)
 SC自動生成部6は、生成したデータ検証部8を示すデータのハッシュ値を算出する。
(ステップS054)
 SC自動生成部6は、算出したハッシュ値を分散型台帳5に登録する。
(ステップS055)
 SC自動生成部6は、生成したデータ検証部8を示すデータを生成SCデプロイ部16に送信する。
(ステップS056)
 生成SCデプロイ部16は、受信したデータに対応するデータ検証部8をBCサーバ2にデプロイする。
 以上のデプロイ処理によって、BCネットワーク3に接続したBCサーバにおいてデータ検証部8が使用可能になる。なお、BCネットワーク3に接続したBCサーバの内、一部のBCサーバにおいてのみデータ検証部8が使用可能になってもよい。
 図9は、データ登録処理の一例を示すフローチャートである。図9を参照してデータ登録処理を説明する。なお、ステップS011からステップS015と、ステップS017からステップS022とは実施の形態1のものと同様である。
(ステップS023)
 データコントロール部7は、データ検証部8が真正データ検証部であるか否かを確認する。本実施の形態に係る真正データ検証部は、SC自動生成部6によって生成され、生成SCデプロイ部16によってデプロイされたデータ検証部である。具体的には、データコントロール部7は、SC自動生成部6がデータ検証部8を生成した際に分散型台帳5に登録したハッシュ値と、検証するデータ検証部8を示すデータのハッシュ値とが一致する場合、データ検証部8が真正データ検証部であると判定する。
 データ検証部8が真正データ検証部である場合、データ検証装置1はステップS017に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ登録処理を終了する。
 図10は、データ参照処理の一例を示すフローチャートである。図10を参照してデータ参照処理を説明する。なお、ステップS031からステップS038と、ステップS040からステップS043とは実施の形態1のものと同様である。
(ステップS044)
 本ステップはステップS023と同様である。
 データ検証部8が真正データ検証部である場合、データ検証装置1はステップS040に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
***実施の形態2の効果の説明***
 以上のように、本実施の形態によれば、SC自動生成部6が、生成したデータ検証部8を示すデータに対応するデータを分散型台帳5に登録する。そのため、データ検証部8がSC自動生成部6以外によってBCサーバ2にデプロイされた場合であっても、分散型台帳5に登録されているハッシュ値を用いることによって当該データ検証部8がSC自動生成部6によって生成されたSCであるか否かを検証することができる。従って、本実施の形態によれば、SC自動生成部6が生成したSCをBCサーバ2にデプロイすることができないようなBC基盤を利用した場合であっても、実施の形態1の効果と同様の効果を得ることができる。
 実施の形態3.
 以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
***構成の説明***
 実施の形態1及び実施の形態2では、データ登録部10とデータ参照部11とがデータ登録参照部9に属している。
 本実施の形態では、データ登録部10とデータ参照部11との各々が独立している。本実施の形態において、データ登録部10とデータ参照部11との各々が独立している場合においても、データ参照部11が参照したデータが正当性のあるデータ登録部10によって登録されたデータであることを確認することができる。
 図11は、本実施の形態3に係るBCシステム90のシステム構成例を示している。
 BCサーバ2は、SC自動生成部6と、データコントロール部7と、データ検証部8と、データ登録部10と、データ参照部11と、分散型台帳5とを備える。
 データコントロール部7の機能は、基本的には前述のデータコントロール部7の機能と同様である。データコントロール部7は、データ登録部10及びデータ参照部11が同一のデータ登録参照部9に含まれているか否かを考慮しない。
 クライアントアプリケーション4及びBCネットワーク3の各々は、実施の形態1のものと同様である。
 なお、図11は、実施の形態1に係るデータ検証装置1においてデータ登録部10及びデータ参照部11を独立させた構成を示している。しかしながら、本実施の形態に係るデータ検証装置1の構成は、実施の形態2に係るデータ検証装置1においてデータ登録部10及びデータ参照部11を独立させた構成であってもよい。
 以下、データ検証装置1の構成は図11に示す構成であるものとする。
 実施の形態3に係るハードウェア構成例は、前述の実施の形態に係るハードウェア構成例と同様である。
***動作の説明***
 本実施の形態に係るデプロイ処理は、前述の実施の形態に係るデプロイ処理と同様である。
 図12は、データ登録処理の一例を示すフローチャートである。図12を参照してデータ登録処理を説明する。なお、ステップS015からステップS016は実施の形態1のものと同様である。
(ステップS061)
 登録データ送受信部13は、使用するデータ登録部10を指定し、ユーザが入力した登録データを、指定したデータ登録部10に対応するデータコントロール部7に送信する。
(ステップS062)
 データコントロール部7は、指定されたデータ登録部10を検証する。ステップS063及びステップS064において、データコントロール部7が検証する事項を説明する。
(ステップS063)
 本ステップはステップS013と同様である。
 データ登録部10が検証登録処理を実行する場合、データ検証装置1はステップS064に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ登録処理を終了する。
(ステップS064)
 本ステップはステップS014と同様である。
(ステップS065)
 データコントロール部7は、指定されたデータ登録部10に登録データを送信する。
(ステップS066)
 本ステップはステップS018と同様である。
(ステップS067)
 本ステップはステップS019と同様である。
(ステップS068)
 本ステップはステップS020と同様である。
(ステップS069)
 本ステップはステップS021と同様である。
 受信した検証結果データが示す検証結果が正を示す場合、データ検証装置1はステップS070に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ登録処理を終了する。
(ステップS070)
 本ステップはステップS022と同様である。
 図13は、データ参照処理の一例を示すフローチャートである。図13を参照してデータ参照処理を説明する。
(ステップS081)
 参照事項データ送受信部14は、使用するデータ参照部11を指定し、ユーザが入力した参照事項データを、指定したデータ参照部11に対応するデータコントロール部7に送信する。
(ステップS082)
 データコントロール部7は、指定されたデータ参照部11を検証する。ステップS083及びステップS084において、データコントロール部7が検証する事項を説明する。
(ステップS083)
 データコントロール部7は、データ参照部11がアドレス送信処理を実行するか否かを確認する。アドレス送信処理は、分散型台帳5から取得したデータとともに、取得したデータの送信元アドレスを示すデータをデータコントロール部7に送信する処理である。送信元アドレスを示すデータは、送信元アドレスそのものを示すデータであってもよく、送信元アドレスを示すデータのハッシュ値又は送信元アドレスを示すデータを暗号化したデータ等、送信元アドレスそのものを示すデータを変換したデータであってもよい。具体的には、データコントロール部7は、データ参照部11を実現するプログラムの構造について以下の2点の各々が満たされているか否かを確認する。2点全てが満たされている場合、データコントロール部7は、データ参照部11がアドレス送信処理を実行すると判定する。
 1点目は、データ参照部11の構造が、データ参照部11が分散型台帳5からデータを取得する際に、取得したデータの送信元アドレスを示すデータも取得する構造であることである。
 2点目は、データ参照部11の構造が、データ参照部11が取得したデータと共に、取得したデータの送信元アドレスを示すデータもデータコントロール部7に送信する構造であることである。
 データ参照部11がアドレス送信処理を実行する場合、データ検証装置1はステップS084に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS084)
 本ステップはステップS034と同様である。
 データ参照部11が限定参照処理を実行する場合、データ検証装置1はステップS085に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS085)
 データコントロール部7は、指定されたデータ参照部11に参照事項データを送信する。
(ステップS086)
 本ステップはステップS041と同様である。
(ステップS087)
 データ参照部11は、取得した参照データの送信元アドレスを示すデータをデータコントロール部7に送信する。
(ステップS088)
 データコントロール部7は、受信したデータに対応するデータ登録部10を検証する。ここで、具体例として、データ登録部10を示すデータのアドレスと、受信したデータが示すアドレスとが一致する場合、又は、データ登録部10を示すデータのアドレスのハッシュ値と、受信したデータが示すハッシュ値とが一致する場合において、データ登録部10は受信したデータに対応する。ステップS089及びステップS090において、データコントロール部7が検証する事項を説明する。
(ステップS089)
 本ステップはステップS013と同様である。
 データ登録部10が検証登録処理を実行する場合、データ検証装置1はステップS090に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。なお、受信したデータに対応するデータ登録部10が存在しない場合も、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS090)
 本ステップはステップS014と同様である。
 データ登録部10が限定登録処理を実行する場合、データ検証装置1はステップS091に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS091)
 本ステップはステップS015と同様である。ステップS092において、データコントロール部7が検証する事項を説明する。
(ステップS092)
 本ステップはステップS016と同様である。
 データ検証部8が真正データ検証部である場合、データ検証装置1はステップS093に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS093)
 本ステップはステップS043と同様である。
***実施の形態3の効果の説明***
 以上のように、本実施の形態によれば、データコントロール部7が、データ参照部11が取得したデータと共に、取得したデータの送信元アドレスを示すデータを受信し、受信したデータに基づいて参照データを登録したデータ登録部10を特定し、特定したデータ登録部10を検証することができる。そのため、参照データが、正当性のあるデータ登録部10によって登録された正当性のあるデータであることが担保される。従って、本実施の形態によれば、データ登録部10とデータ参照部11との各々が独立している場合であっても、データ参照時において、実施の形態1の効果と同様の効果を得ることができる。
 実施の形態4.
 以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
***構成の説明***
 実施の形態1、実施の形態2、及び実施の形態3では、データ登録時又はデータ参照時に、データ登録部10及びデータ参照部11の各々を逐次検証する。
 本実施の形態では、データ登録部10及びデータ参照部11の各々を検証した結果を示す検証結果データを分散型台帳5に登録し、分散型台帳5に登録されている検証結果データを次回以降の検証実行時に適宜利用する。
 図14は、本実施の形態に係るBCシステムのシステム構成例を示している。
 BCサーバ2は、SC自動生成部6と、データコントロール部7と、データ検証部8と、データ登録参照部9と、分散型台帳5とを備える。
 データコントロール部7は、前述の機能に加え、データ登録部10とデータ参照部11とデータ検証部8との各々を検証し、検証した結果を示す検証結果データを分散型台帳5に登録する機能を備える。また、データコントロール部7は、分散型台帳5に登録されている検証結果データを参照してデータ登録部10とデータ参照部11とデータ検証部8との各々を検証する機能を備える。つまり、データコントロール部7は、第1検証結果データ及び第2検証結果データを分散型台帳5に登録する。第1検証結果データは、検証登録処理に対応するプログラムを検証した結果を示す。第2検証結果データは、データ参照処理に対応するプログラムを検証した結果を示す。データ参照処理に対応するプログラムは、データ参照部11を実現するプログラムである。また、データコントロール部7は、分散型台帳5に登録されている第1検証結果データを参照して検証登録処理に対応するプログラムを検証し、分散型台帳5に登録されている第2検証結果データを参照してデータ参照処理に対応するプログラムを検証する。データコントロール部7は各部を特定する際にどのようなデータを用いてもよいが、以下ではデータコントロール部7が各部を特定する際にハッシュ値を用いるものとする。
 クライアントアプリケーション4及びBCネットワーク3の各々は、実施の形態1のものと同様である。
 なお、図14は、実施の形態1に係るデータ検証装置1に対して、データ登録部10とデータ参照部11とデータ検証部8との各々に対応する検証結果データを分散型台帳5に登録する機能と、分散型台帳5に登録されている検証結果データであって、データ登録部10とデータ参照部11とデータ検証部8との各々に対応する検証結果データを参照する機能とを追加した構成を示している。本実施の形態に係るデータ検証装置1は、実施の形態2及び実施の形態3のいずれかに係るデータ検証装置1に対してこれらの機能を追加した構成であってもよい。
 以下、データ検証装置1の構成は図14に示す構成であるものとする。
 実施の形態4に係るハードウェア構成例は、前述の実施の形態に係るハードウェア構成例と同様である。
***動作の説明***
 本実施の形態に係るデプロイ処理は、前述の実施の形態に係るデプロイ処理と同様である。
 図15及び図16はデータ登録処理の一例を示すフローチャートである。図15及び図16を参照してデータ登録処理を説明する。なお、ステップS017からステップS022は実施の形態1のものと同様である。
(ステップS101)
 本ステップはステップS011と同様である。以下、本フローチャートの説明において、データ登録部10は、本ステップにおいて指定されたデータ登録参照部9が備えるデータ登録部10を指す。
(ステップS102)
 本ステップはステップS012と同様である。ステップS103及びステップS104において、データコントロール部7が検証する事項を説明する。
(ステップS103)
 データコントロール部7は、データ登録部10を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されているか否かを確認する。具体的には、データコントロール部7は、分散型台帳5に登録されているデータについて以下の2点の各々が満たされているか否かを確認する。2点全てが満たされている場合、データコントロール部7は、データ登録部10を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されていると判定する。
 1点目は、データ登録部10を示すデータのハッシュ値が分散型台帳5に登録されていることである。
 2点目は、データ登録部10を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されていることである。
 データ登録部10を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されている場合、データ検証装置1はステップS104に遷移する。それ以外の場合、データ検証装置1はステップS105に遷移する。
(ステップS104)
 データ登録部10を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されている場合、データコントロール部7は、当該検証結果データが示す検証結果が正を示すか否かを確認する。なお、データ登録部10を示すデータのハッシュ値と、当該ハッシュ値に対応する検証結果データとは、ステップS109又はステップS110において分散型台帳5に登録される。
 分散型台帳5に登録されている検証結果データであって、データ登録部10を示すデータのハッシュ値に対応する検証結果データが示す検証結果が正を示す場合、データ検証装置1はステップS017に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ登録処理を終了する。
(ステップS105)
 データ登録部10を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されていない場合、データコントロール部7は、ステップS013に示す処理を実行することにより、データ登録部10が検証登録処理を実行するか否かを確認する。
 データ登録部10が検証登録処理を実行する場合、データ検証装置1はステップS106に遷移する。それ以外の場合、データ検証装置1はステップS110に遷移する。
(ステップS106)
 データ登録部10が検証登録処理を実行する場合、データコントロール部7は、ステップS014に示す処理を実行することにより、データ登録部10が限定登録処理を実行するか否かを確認する。
 データ登録部10が限定登録処理を実行する場合、データ検証装置1はステップS107に遷移する。それ以外の場合、データ検証装置1はステップS110に遷移する。
(ステップS107)
 データ登録部10が限定登録処理を実行する場合、データコントロール部7は、データ登録部10が用いるデータ検証部8を検証する。ステップS108において、データコントロール部7が検証する事項を説明する。
(ステップS108)
 本ステップはステップS016と同様である。
 データ検証部8が真正データ検証部である場合、データ検証装置1はステップS109に遷移する。それ以外の場合、データ検証装置1はステップS110に遷移する。
(ステップS109)
 データ検証部8が真正データ検証部である場合、データコントロール部7は、データ登録部10を示すデータのハッシュ値と、データ登録部10の検証結果が正であることを示す検証結果データとを対応させて分散型台帳5に登録する。
(ステップS110)
 データ登録部10が検証登録処理を実行しない場合、データ登録部10が限定登録処理を実行しない場合、又は、データ検証部8が真正データ検証部ではない場合、データコントロール部7は、データ登録部10を示すデータのハッシュ値と、データ登録部10の検証結果が否であることを示す検証結果データとを対応させて分散型台帳5に登録する。
 図17及び図18は、データ参照処理の一例を示すフローチャートである。図17及び図18を参照してデータ参照処理を説明する。なお、ステップS040からステップS043は実施の形態1のものと同様である。
(ステップS121)
 本ステップはステップS031と同様である。以下、本フローチャートの説明において、データ参照部11は本ステップにおいて指定されたデータ登録参照部9が備えるデータ参照部11を指す。
(ステップS122)
 本ステップはステップS032と同様である。ステップS123からステップS126において、データコントロール部7が検証する事項を説明する。
(ステップS123)
 データコントロール部7は、データ参照部11を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されているか否かを確認する。データコントロール部7は、分散型台帳5に登録されているデータについて、以下の2点の各々が満たされているか否かを確認する。2点全てが満たされている場合、データ参照部11を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されていると判定する。
 1点目は、データ参照部11を示すデータのハッシュ値が分散型台帳5に登録されていることである。
 2点目は、データ参照部11を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されていることである。
 データ参照部11を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されている場合、データ検証装置1はステップS124に遷移する。それ以外の場合、データ検証装置1はステップS125に遷移する。
(ステップS124)
 データ参照部11を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されている場合、データコントロール部7は、当該検証結果データが示す検証結果が正を示すか否かを確認する。なお、データ参照部11を示すデータのハッシュ値と、当該ハッシュ値に対応する検証結果データとは、ステップS130又はステップS131において分散型台帳5に登録される。
 分散型台帳5に登録されている検証結果データであって、データ参照部11を示すデータのハッシュ値に対応する検証結果データが示す検証結果が正を示す場合、データ検証装置1はステップS040に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS125)
 データ参照部11を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されていない場合、データコントロール部7は、ステップS033に示す処理を実行することにより、データ参照部11を備えるデータ登録参照部9がデータ登録部10を備えるか否かを確認する。
 データ参照部11を備えるデータ登録参照部9がデータ登録部10を備える場合、データ検証装置1はステップS126に遷移する。それ以外の場合、データ検証装置1はステップS131に遷移する。
(ステップS126)
 データ参照部11を備えるデータ登録参照部9がデータ登録部10を備える場合、データコントロール部7は、ステップS034に示す処理を実行することにより、データ参照部11が限定参照処理を実行するか否かを確認する。
 データ参照部11が限定参照処理を実行する場合、データ検証装置1はステップS127に遷移する。それ以外の場合、データ検証装置1はステップS131に遷移する。
(ステップS127)
 データ参照部11が限定参照処理を実行する場合、データコントロール部7は、データ参照部11を備えるデータ登録参照部9が備えるデータ登録部10を検証する。ステップS128とステップS129とステップS105とステップS106とにおいて、データコントロール部7が検証する事項を説明する。
(ステップS128)
 本ステップはステップS103と同様である。
 データ登録部10を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されている場合、データ検証装置1はステップS129に遷移する。それ以外の場合、データ検証装置1はステップS105に遷移する。
(ステップS129)
 本ステップはステップS104と同様である。なお、データ登録部10を示すデータのハッシュ値と、当該ハッシュ値に対応する検証結果データとは、ステップS109又はステップS110において分散型台帳5に登録される。
 分散型台帳5に登録されている検証結果データであって、データ登録部10を示すデータのハッシュ値に対応する検証結果データが示す検証結果が正を示す場合、データ検証装置1はステップS130に遷移する。それ以外の場合、データ検証装置1はステップS131に遷移する。
(ステップS130)
 分散型台帳5に登録されているデータ登録部10を示すデータのハッシュ値に対応する検証結果データが示す検証結果が正を示す場合、データコントロール部7は、データ参照部11を示すデータのハッシュ値と、検証結果が正であることを示す検証結果データとを対応させて分散型台帳5に登録する。
 なお、データ登録部10を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されていない場合、データ登録処理において説明した通り、ステップS105からステップS108と、ステップS109又はステップS110とに示す処理が実行される。また、データコントロール部7は、ステップS109に示す処理を実行した後に、データ参照部11を示すデータのハッシュ値と、検証結果が正であることを示す検証結果データとを対応させて分散型台帳5に登録する。
(ステップS131)
 データコントロール部7は、ステップS110に示す処理を実行した後に、データ参照部11を示すデータのハッシュ値と、検証結果が否であることを示す検証結果データとを対応させて分散型台帳5に登録する。
***実施の形態4の効果の説明***
 以上のように、本実施の形態によれば、データコントロール部7が検証実行時に検証結果データを分散型台帳5に登録する。ここで、データコントロール部7は、分散型台帳5に登録されている検証結果データを検証実行時に利用することができる。従って、本実施の形態によれば、実施の形態1の効果と同様の効果が得られ、さらに、各部の検証に要する時間を短縮することができる。
***他の実施の形態***
 前述した各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
 また、実施の形態は、実施の形態1から4で示したものに限定されるものではなく、必要に応じて種々の変更が可能である。フローチャート等を用いて説明した手順は適宜変更されてもよい。
 1 データ検証装置、2,101 BCサーバ、3 BCネットワーク、4 クライアントアプリケーション、5 分散型台帳、6 SC自動生成部、7 データコントロール部、8 データ検証部、9 データ登録参照部、10 データ登録部、11 データ参照部、12 検証ルール送受信部、13 登録データ送受信部、14 参照事項データ送受信部、15 参照データ受信部、16 生成SCデプロイ部、51 プロセッサ、52 メモリ、53 補助記憶装置、54 通信インタフェース、58 処理回路、90 BCシステム。

Claims (10)

  1.  ブロックチェーンを構成するサーバに格納されている分散型台帳に登録する電子データを検証するデータ検証装置であって、
     前記分散型台帳に登録することを要求された電子データである登録データが、前記分散型台帳に登録する電子データを検証するためのルールである検証ルールに従うか否かを判定するデータ検証処理を実行するデータ検証部と、
     前記データ検証処理に対応するプログラムが前記ブロックチェーン内において生成されたか否かを判定するデータコントロール部と、
     前記データ検証処理に対応するプログラムが前記ブロックチェーン内において生成されたと判定された場合に検証登録処理を実行するデータ登録部と
    を備え、
     前記検証登録処理は、前記データ検証処理によって前記登録データが前記検証ルールに従うと判定された場合に、前記登録データを前記分散型台帳に登録する処理であるデータ検証装置。
  2.  前記データ検証装置は、さらに、
     前記データ検証処理に対応するするプログラムが前記ブロックチェーン内において生成されたと判定された場合、かつ、前記分散型台帳に登録されている電子データを参照する指示を示す参照事項データに対応する電子データであって、前記分散型台帳に登録されている電子データである参照データが前記検証登録処理によって前記分散型台帳に登録されたと判定された場合に、前記参照事項データに基づいて前記分散型台帳に登録されている電子データを参照する処理であるデータ参照処理を実行するデータ参照部
    を備える請求項1に記載のデータ検証装置。
  3.  前記データコントロール部は、電子データを前記分散型台帳に登録するよう指示する登録指示処理を実行し、前記登録指示処理が示す電子データのみが前記分散型台帳に登録される場合、かつ、前記検証登録処理によって前記分散型台帳に電子データが登録される場合に、前記参照データが前記検証登録処理によって前記分散型台帳に登録されたと判定する請求項2に記載のデータ検証装置。
  4.  前記データコントロール部は、電子データを前記分散型台帳に登録するよう指示する登録指示処理を実行し、前記登録指示処理が示す電子データのみが前記分散型台帳に登録される場合、前記検証登録処理によって前記分散型台帳に電子データが登録される場合、かつ、前記参照データの送信元アドレスが前記検証登録処理に対応するプログラムに対応するアドレスである場合に、前記参照データが前記検証登録処理によって前記分散型台帳に登録されたと判定する請求項2に記載のデータ検証装置。
  5.  前記データコントロール部は、前記検証登録処理に対応するプログラムを検証した結果を示す第1検証結果データを前記分散型台帳に登録し、前記分散型台帳に登録されている第1検証結果データを参照して前記検証登録処理に対応するプログラムを検証する請求項1に記載のデータ検証装置。
  6.  前記データコントロール部は、前記データ参照処理に対応するプログラムを検証した結果を示す第2検証結果データを前記分散型台帳に登録し、前記分散型台帳に登録されている第2検証結果データを参照して前記データ参照処理に対応するプログラムを検証する請求項2に記載のデータ検証装置。
  7.  ブロックチェーンを構成するサーバと通信するクライアントアプリケーションであって、
     前記サーバに格納されている分散型台帳に登録することを要求された電子データである登録データが、前記分散型台帳に登録する電子データを検証するためのルールである検証ルールに従うか否かを判定するデータ検証処理に対応するプログラムを示すデータを前記サーバから受信し、受信したデータに対応するスマートコントラクトを前記サーバにデプロイする生成スマートコントラクトデプロイ部
    を備えるクライアントアプリケーション。
  8.  請求項1から6のいずれか1項に記載のデータ検証装置と、
     請求項7に記載のクライアントアプリケーションと
    を備えるブロックチェーンシステム。
  9.  ブロックチェーンを構成するサーバに格納されている分散型台帳に登録する電子データを検証するデータ検証装置であるコンピュータが実行するデータ検証方法であって、
     前記コンピュータが、前記分散型台帳に登録することを要求された電子データである登録データが、前記分散型台帳に登録する電子データを検証するためのルールである検証ルールに従うか否かを判定するデータ検証処理を実行し、
     前記コンピュータが、前記データ検証処理に対応するプログラムが前記ブロックチェーン内において生成されたか否かを判定するデータコントロール処理を実行し、
     前記コンピュータが、前記データ検証処理に対応するプログラムが前記ブロックチェーン内において生成されたと判定された場合に検証登録処理を実行するデータ検証方法であって、
     前記検証登録処理は、前記データ検証処理によって前記登録データが前記検証ルールに従うと判定された場合に、前記登録データを前記分散型台帳に登録する処理であるデータ検証方法。
  10.  ブロックチェーンを構成するサーバに格納されている分散型台帳に登録する電子データを検証するデータ検証装置であるコンピュータが実行するデータ検証プログラムであって、
     前記分散型台帳に登録することを要求された電子データである登録データが、前記分散型台帳に登録する電子データを検証するためのルールである検証ルールに従うか否かを判定するデータ検証処理と、
     前記データ検証処理に対応するプログラムが前記ブロックチェーン内において生成されたか否かを判定するデータコントロール処理と
    を前記データ検証装置に実行させ、
     前記データ検証処理に対応するプログラムが前記ブロックチェーン内において生成されたと判定された場合に検証登録処理を前記データ検証装置に実行させるデータ検証プログラムであって、
     前記検証登録処理は、前記データ検証処理によって前記登録データが前記検証ルールに従うと判定された場合に、前記登録データを前記分散型台帳に登録する処理であるデータ検証プログラム。
PCT/JP2022/015699 2022-03-29 2022-03-29 データ検証装置、クライアントアプリケーション、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラム WO2023188039A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2024502548A JP7486689B2 (ja) 2022-03-29 2022-03-29 データ検証装置、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラム
PCT/JP2022/015699 WO2023188039A1 (ja) 2022-03-29 2022-03-29 データ検証装置、クライアントアプリケーション、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラム
TW111131853A TW202338641A (zh) 2022-03-29 2022-08-24 資料驗證裝置、客戶端應用程式、區塊鏈系統、資料驗證方法及資料驗證程式產品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/015699 WO2023188039A1 (ja) 2022-03-29 2022-03-29 データ検証装置、クライアントアプリケーション、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラム

Publications (1)

Publication Number Publication Date
WO2023188039A1 true WO2023188039A1 (ja) 2023-10-05

Family

ID=88200190

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/015699 WO2023188039A1 (ja) 2022-03-29 2022-03-29 データ検証装置、クライアントアプリケーション、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラム

Country Status (3)

Country Link
JP (1) JP7486689B2 (ja)
TW (1) TW202338641A (ja)
WO (1) WO2023188039A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018116509A (ja) * 2017-01-18 2018-07-26 富士通株式会社 ブロックチェーン管理方法、ブロックチェーン管理プログラム、ブロックチェーン管理装置、及びブロックチェーン管理システム
KR20200100438A (ko) * 2019-02-18 2020-08-26 (주)제니엘 블록체인 기반의 채용 추천 서비스 제공 시스템 및 그 구동방법
JP2020170296A (ja) * 2019-04-02 2020-10-15 日本電信電話株式会社 ブロックチェーンシステム、承認端末、利用者端末、履歴管理方法、および、履歴管理プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018116509A (ja) * 2017-01-18 2018-07-26 富士通株式会社 ブロックチェーン管理方法、ブロックチェーン管理プログラム、ブロックチェーン管理装置、及びブロックチェーン管理システム
KR20200100438A (ko) * 2019-02-18 2020-08-26 (주)제니엘 블록체인 기반의 채용 추천 서비스 제공 시스템 및 그 구동방법
JP2020170296A (ja) * 2019-04-02 2020-10-15 日本電信電話株式会社 ブロックチェーンシステム、承認端末、利用者端末、履歴管理方法、および、履歴管理プログラム

Also Published As

Publication number Publication date
TW202338641A (zh) 2023-10-01
JPWO2023188039A1 (ja) 2023-10-05
JP7486689B2 (ja) 2024-05-17

Similar Documents

Publication Publication Date Title
JP7177576B2 (ja) ブロックチェーン台帳のためのランタイム自己修正
US11204751B2 (en) Mitigating incompatibilities due to code updates in a system containing multiple networked electronic control units
US11501533B2 (en) Media authentication using distributed ledger
CN100533451C (zh) 用于使文件系统免于恶意程序的增强安全层的系统和方法
US7865575B2 (en) Methods and apparatus to perform file transfers in distributed file systems
US8429412B2 (en) Method to control access between network endpoints based on trust scores calculated from information system component analysis
US7272719B2 (en) Method to control access between network endpoints based on trust scores calculated from information system component analysis
KR102618665B1 (ko) 블록체인을 사용한 버전 이력 관리
KR102274960B1 (ko) 컴퓨터 시스템에서의 메모리 쓰기 관리
US8103878B2 (en) Control device, update method and control software
US20120304281A1 (en) Method and apparatus for authenticating a non-volatile memory device
JP7493582B2 (ja) ブロックチェーン・ネットワーク間でのトークンの転送
US10725767B2 (en) Systems and methods for reinforced update package authenticity
US10379894B1 (en) Lineage-based trust for virtual machine images
US11245577B2 (en) Template-based onboarding of internet-connectible devices
CN112037058B (zh) 数据验证方法、装置及存储介质
CN107038050B (zh) 一种基于虚拟服务器的游戏配置加载方法
EP4050542A1 (en) Blockchain-based data processing method and apparatus, and device and readable storage medium
JP2008522292A (ja) 情報システム構成要素解析から算出したトラストスコアに基づいて複数のネットワークエンドポイント間のアクセスを制御する方法
US11481284B2 (en) Systems and methods for generating self-notarized backups
JP5726208B2 (ja) ソフトウェアアプリケーションの実行のための方法、システム及び装置
CN111489156A (zh) 基于区块链的交易方法、电子装置及可读存储介质
KR20190045754A (ko) 블록체인 기반의 소프트웨어 라이센스 관리 방법 및 이를 이용한 라이센스 관리 서버
WO2023188039A1 (ja) データ検証装置、クライアントアプリケーション、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラム
JP6813442B2 (ja) 検証装置

Legal Events

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

Ref document number: 22935187

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2024502548

Country of ref document: JP