Verification method, server, and program
The verification method addresses the challenge of efficient tampering detection in data distribution systems by adjusting verification frequency based on log importance and time in the blockchain, reducing computational load and enhancing data integrity.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- PANASONIC INTELLECTUAL PROPERTY CORP OF AMERICA
- Filing Date
- 2022-07-22
- Publication Date
- 2026-06-22
AI Technical Summary
Existing data distribution systems face challenges in efficiently detecting tampering of operation logs over time, particularly in systems that require long-term operation, due to the high computational load associated with frequent verification of all recorded logs.
A verification method that involves sequentially acquiring and transforming log information, storing it in a blockchain, and performing verification at a frequency determined by the time of storage and importance, reducing verification frequency for less risky older data and increasing it for newer or more important data, using a table to dynamically adjust frequencies based on block position and importance.
This method efficiently detects tampering by reducing the number of verifications needed, minimizing computational load, and enhancing data integrity in data distribution systems.
Smart Images

Figure 0007877328000001 
Figure 0007877328000002 
Figure 0007877328000003
Abstract
Description
Technical Field
[0001] The present disclosure relates to a verification method, a server, and a program.
Background Art
[0002] Non-Patent Document 1 discloses a technology based on a blockchain and a data jacket, which is a method of sharing the value of data while keeping the content of the data confidential.
Prior Art Documents
Non-Patent Documents
[0003]
Non-Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] An object of the present disclosure is to provide a verification method capable of detecting forgery in a lightweight manner, etc.
Means for Solving the Problems
[0005] A verification method according to one aspect of this disclosure involves sequentially acquiring multiple log pieces of information generated by the device as the device operates, sequentially storing the multiple log pieces of information in storage, sequentially storing multiple transformed pieces of information obtained by transforming the multiple log pieces of information using predetermined transformations in a blockchain, and performing a verification at a predetermined frequency to determine whether at least one of the target log piece of information and the target transformed piece of information has been tampered with, based on the target log piece of information to be verified from the multiple log pieces of information and the target transformed piece of information corresponding to the target log piece from the multiple transformed pieces of information, wherein the predetermined frequency is determined to be higher the closer the time the target transformed piece of information was stored in the blockchain is to the current time when the verification is performed.
[0006] These comprehensive or specific embodiments may be implemented as a system, device, integrated circuit, computer program, or recording medium such as a computer-readable CD-ROM, or as any combination of a system, device, integrated circuit, computer program, and recording medium. [Effects of the Invention]
[0007] According to this disclosure, tampering can be detected with minimal effort. [Brief explanation of the drawing]
[0008] [Figure 1] This figure shows an example of the configuration of a data distribution system according to an embodiment. [Figure 2] This figure shows an example of the configuration of an information terminal according to the embodiment. [Figure 3] This figure shows an example of the server configuration according to the embodiment. [Figure 4] This diagram shows the location of blocks in a blockchain. [Figure 5] This figure shows an example of a table with predetermined frequencies. [Figure 6] This flowchart shows an example of the operation of the data distribution system according to the embodiment. [Figure 7] This flowchart shows an example of a verification process using the data distribution system according to the embodiment. [Figure 8] This diagram illustrates a specific example of how a data distribution system works. [Figure 9] This diagram illustrates a specific example of how a data distribution system works. [Modes for carrying out the invention]
[0009] (Background leading to this disclosure) In recent years, there has been a growing social need for systems that allow companies to exchange personal data, such as healthcare data, and blockchain technology is attracting attention as a means of improving the tamper resistance of such systems. By recording various operation logs, such as data downloads from the data distribution system, in both the database and the blockchain, it is possible to make tampering difficult. While tamper detection can be considered by comparing operation logs recorded in both the database and the blockchain, frequently verifying all recorded operation logs would increase the computational load required over time, posing a challenge for long-term operation. Therefore, the inventors have found a verification method that can detect tampering efficiently by efficiently selecting the logs to be verified according to the type of operation log and the time-series data structure of the blockchain, under the condition that the system's operation logs increase over time.
[0010] A verification method according to the first aspect of this disclosure involves sequentially acquiring multiple log pieces of information generated by the device as the device operates, sequentially storing the multiple log pieces of information in storage, sequentially storing multiple transformed pieces of information obtained by transforming the multiple log pieces of information using predetermined transformations in a blockchain, and performing a verification at a predetermined frequency to determine whether at least one of the target log piece of information and the target transformed piece of information has been tampered with, based on the target log piece of information to be verified from the multiple log pieces of information and the target transformed piece of information corresponding to the target log piece from the multiple transformed pieces of information, wherein the predetermined frequency is determined to be higher the closer the time the target transformed piece of information was stored in the blockchain is to the current time when the verification is performed.
[0011] According to this, the closer the time the target transformation information was stored on the blockchain to the current time of verification, the more frequently verification will be performed on that target transformation information. Therefore, the frequency of verification for older target transformation information with a low risk of tampering can be reduced. As a result, verification can be performed according to the risk of tampering, and the number of verifications can be reduced to avoid increasing the risk of tampering. Thus, verification can be performed efficiently.
[0012] The verification method relating to the second aspect of this disclosure is the verification method relating to the first aspect, wherein the predetermined frequency is determined to be higher the closer the position of the first block containing the target transformation information in the blockchain is to the second block that was last linked to the blockchain.
[0013] Therefore, the more frequently the conversion information is stored in a block that is close to the current time of verification, the more frequently verification is performed. This allows for a lower verification frequency for older conversion information that has a lower risk of tampering.
[0014] The verification method according to the third aspect of the present disclosure is the verification method according to the first aspect, wherein each of the plurality of log information is classified into multiple levels of importance determined in advance for each attribute of the log information, and the predetermined frequency is further determined to be a higher frequency as the importance is higher.
[0015] According to this, since the importance that affects the predetermined frequency is set for each attribute of the log information, it is possible to execute verification at a higher frequency for log information with a higher risk impact due to tampering.
[0016] The verification method according to the fourth aspect of the present disclosure is the verification method according to the first aspect, wherein each of the plurality of log information is classified into multiple levels of importance determined in advance for each attribute of the log information, and the predetermined frequency is determined to be a higher frequency as the position of the block including the target conversion information in the blockchain is closer to the second block last linked to the blockchain, and is also determined to be a higher frequency as the importance is higher.
[0017] Therefore, verification is executed at a higher frequency for conversion information included in a block whose time when the target conversion information is stored in the blockchain is closer to the current time when verification is performed. Thus, it is possible to lower the frequency of verification for old target conversion information with a low tampering risk. Further, since the importance that affects the predetermined frequency is set for each attribute of the log information, it is possible to execute verification at a higher frequency for log information with a higher risk impact due to tampering.
[0018] The verification method according to the fifth aspect of the present disclosure is the verification method according to the fourth aspect, wherein the predetermined frequency is determined by a table, and the table is represented by a plurality of frequencies respectively corresponding to a plurality of sets of a plurality of ranges classified by the relative position of the blockchain and levels of importance.
[0019] Therefore, the predetermined frequency can be determined by referring to the table.
[0020] A verification method relating to a sixth aspect of this disclosure is a verification method relating to a fifth aspect, wherein the blockchain stores a smart contract for performing an update process to update the plurality of frequencies set in the table when a block containing transaction data for updating the table is stored in the blockchain.
[0021] According to this, when transaction data is stored on the blockchain, a table can be automatically updated using a smart contract. Furthermore, since the table is updated at a predetermined frequency, the processing load required for updating at that frequency can be reduced.
[0022] The verification method relating to the seventh aspect of this disclosure is a verification method relating to the first to sixth aspects, wherein the verification generates verification conversion information by converting the target log information with the predetermined conversion, compares the verification conversion information with the target conversion information stored in the blockchain, and determines that if they match, the target log information and the target conversion information have not been tampered with, and if they do not match, determines that at least one of the target log information and the target conversion information has been tampered with.
[0023] The verification method according to the eighth aspect of this disclosure is the verification method according to the seventh aspect, wherein the predetermined transformation is a reproducible method that uniquely transforms a first value into a second value that is paired with the first value, and is an irreversible transformation that cannot be converted back from the second value to the first value.
[0024] Therefore, it is possible to enhance the anonymity of data stored on an open blockchain, which is used to verify the data stored in the database.
[0025] A server according to the ninth aspect of this disclosure comprises a processor and memory, the processor using the memory to sequentially acquire a plurality of log pieces of information generated by the operation of a device, sequentially store the plurality of log pieces of information in storage, and sequentially store a plurality of transformed pieces of information obtained by transforming the plurality of log pieces of information with predetermined transformations in a blockchain, and performs verification at a predetermined frequency whether at least one of the target log piece of information and the target transformed piece of information has been tampered with, based on the target log piece of information to be verified from the plurality of log pieces of information and the target transformed piece of information corresponding to the target log piece from the plurality of transformed pieces of information, the predetermined frequency is determined to be higher the closer the time the target transformed piece of information was stored in the blockchain is to the present time.
[0026] According to this, the closer the time the target transformation information was stored on the blockchain to the current time of verification, the more frequently verification will be performed on that target transformation information. Therefore, the frequency of verification for older target transformation information with a low risk of tampering can be reduced. As a result, verification can be performed according to the risk of tampering, and the number of verifications can be reduced to avoid increasing the risk of tampering. Thus, verification can be performed efficiently.
[0027] These comprehensive or specific embodiments may be implemented as a system, device, integrated circuit, computer program, or recording medium such as a computer-readable CD-ROM, or as any combination of a system, device, integrated circuit, computer program, and recording medium.
[0028] (Embodiment) <Overview> A blockchain system, also known as the core technology of the cryptocurrency Bitcoin, consists of multiple nodes participating in a Peer-to-Peer network. Each node holds a ledger capable of recording data, and the integrity of the ledger is guaranteed across the entire blockchain system by mutually verifying and synchronizing the ledgers among multiple nodes.
[0029] These multiple nodes can view log data on the blockchain system and register and execute programs through the ledger. These programs are specifically called smart contracts. Smart contracts define execution conditions or the processing content on the blockchain and are registered on the blockchain. This triggers the automatic execution of the smart contract program on the ledger within the blockchain system, triggered by the storage of transaction data (a request from a node) on the blockchain.
[0030] The transaction data and smart contract data at this time are stored in units called blocks. Blocks are hashed using a cryptographic hash function, which generates a hash value. The hash value is a unique value for the original data to which the cryptographic hash function was applied, and the original data cannot be reconstructed from the hash value. The hash value of a block is stored in the next block that is generated. This process is repeated sequentially, updating the time-series chain structure of the blockchain across multiple ledgers throughout the network.
[0031] Because blockchain has a time-series chain structure as described above, tampering with a single piece of data on the ledger requires rewriting not only the block in question but also the ever-growing number of subsequent blocks on the network's ledger. For this reason, blockchain is considered highly resistant to data tampering. Due to this high resistance to tampering, blockchain is used in a wide range of industries, including finance and manufacturing. Furthermore, with the recent expansion of the digital market, it has been suggested that blockchain is effective as a "data distribution system" for appropriately distributing necessary data from owners to companies that utilize it.
[0032] [Data Distribution System] Figure 1 shows an example of the configuration of a data distribution system according to an embodiment.
[0033] As shown in Figure 1, the data distribution system 1 related to this disclosure includes, for example, an information terminal 10 operated by a user and a plurality of servers 20a to 20c. These are connected by a network N. Network N may be, for example, the internet or a mobile phone carrier network, but may consist of any communication line or network.
[0034] In the following, servers 20a to 20c will each be referred to as Server 20, but sometimes servers 20a to 20c will be referred to as Servers A to C.
[0035] The data distribution system 1 provides five functions to users accessing it from the browser of the information terminal 10: system login, system logout, data upload, data download, and user permission settings. The data distribution system 1 provides functions in response to requests from the information terminal 10. The data distribution system 1 also generates an operation log, which is a history of the functions provided to the information terminal 10, and records the generated operation log in the database 21. The operation log includes the user ID because it is associated with the user ID. The data distribution system 1 hashes the user ID included in the operation log and records the log transaction data, which includes the converted information after hashing, in the blockchain 22.
[0036] Furthermore, when the raw data upload or download function is executed, the data distribution system 1 stores the raw data in the database 21 and stores log transaction data, including the hash value (conversion information) obtained by hashing the raw data, in the blockchain 22. When the raw data upload or download function is executed, the data distribution system 1 hashes the user ID included in the upload or download operation log and records the log transaction data, including the hashed conversion information, in the blockchain 22.
[0037] Furthermore, the blockchain platform could be, for example, Ethereum, and the consensus algorithm could be, for example, Proof of Work, as it is expected that a block generation rule that ensures equal node privileges and maintains tamper resistance would be adopted in a network maintained by nodes with vested interests, such as multiple companies. Block generation occurs approximately every 15 seconds, regardless of the frequency of transaction data issuance.
[0038] [Information terminal 10] Information terminal 10 accepts user operations and sends requests corresponding to those operations to servers 20a-20c. Information terminal 10 sends requests to servers 20a-20c to execute five functions: system login, system logout, data upload, data download, and user permission settings. When information terminal 10 requests a data upload, it sends the data to be uploaded to servers 20a-20c. Information terminal 10 is an example of a device. A request is information generated by information terminal 10 as a result of its operation and is an example of log information. A request can also be said to be information generated by information terminal 10 as a result of user operation (operation history). A request includes a user ID. Information terminal 10 sequentially sends multiple log information items generated by information terminal 10 as a result of its operation to server 20.
[0039] Figure 2 shows an example of the configuration of an information terminal according to the embodiment.
[0040] The information terminal 10 comprises a communication unit 101, an input receiving unit 102, a display unit 103, a control unit 104, and a storage unit 105.
[0041] The communication unit 101 transmits information to the server 20 via the network N and receives information from the server 20. The information transmitted to the server 20 includes, for example, requests for the server 20 to perform functions and data to be uploaded. The information received from the server 20 includes, for example, data to be downloaded from the server 20. The communication unit 101 transmits the generated request to the server 20 each time a request is generated. If there is data to be uploaded, the communication unit 101 transmits the data to the server 20 along with the generated request.
[0042] In this manner, the communication unit 101 communicates with servers 20a to 20c via the network N. This communication may be performed using TLS (Transport Layer Security), and the encryption key for TLS communication may be stored in the communication unit 101.
[0043] The input receiving unit 102 receives information input from the user. The input receiving unit 102 displays the received information input on the display unit 103, transmits it to the control unit 104, or transmits it to the communication unit 101.
[0044] In this embodiment, the input receiving unit 102 receives information input from the user indicating the selection of a function to be requested to be executed by the server 20. The input receiving unit 102 transmits the received selection and the user's electronic signature to the control unit 104. The input receiving unit 102 also receives confirmation from the user that they have acknowledged the notification displayed on the display unit 103. When uploading data to the server 20, the input receiving unit 102 may accept the selection of data to be uploaded. When downloading data from the server 20, the input receiving unit 102 may accept the selection of data to be downloaded.
[0045] The display unit 103 displays a UI for receiving input from the input receiving unit 102. The display unit 103 also displays the information input received by the input receiving unit 102 in the UI. The display unit 103 may also display information notified from the server 20.
[0046] The control unit 104 generates a request based on the information input received by the input receiving unit 102, and transmits the generated request to the server 20 via the communication unit 101.
[0047] The memory unit 105 stores data that may be uploaded. The memory unit 105 also stores downloaded data.
[0048] The information terminal 10 can be realized by a processor executing a predetermined program using memory.
[0049] [Server 20] Figure 3 shows an example of the server configuration according to the embodiment.
[0050] As shown in Figure 3, the server 20 comprises a communication unit 201, a control unit 202, a recording unit 203, a transaction data verification unit 204, a database 205, a distributed ledger 206, and a smart contract execution unit 207.
[0051] The communication unit 201 transmits information to the information terminal 10 via the network N and receives information from the information terminal 10. The information transmitted to the information terminal 10 is, for example, data for which a download request has been made to the server 20. The information received from the information terminal 10 is, for example, a request for the server 20 to execute a function, or data to be uploaded to the server 20.
[0052] Furthermore, the communication unit 201 communicates with other servers 20 via the network N. The communication unit 201 also sends and receives transaction data with other servers 20.
[0053] In this manner, the communication unit 201 communicates with the information terminal 10 via the network N. This communication may be performed using TLS (Transport Layer Security), and the encryption key for TLS communication may be stored in the communication unit 201.
[0054] As described above, the information terminal 10 sequentially transmits multiple log pieces of information generated by the information terminal 10 to the server 20 as it operates. Therefore, the communication unit 201 sequentially acquires these multiple log pieces of information from the information terminal 10. The acquired multiple log pieces of information are sequentially stored in the database 205.
[0055] The control unit 202 converts the acquired log information into a predetermined set of converted information using a predetermined transformation. The predetermined transformation is a reproducible method that uniquely converts a first value into a second value that is its counterpart to the first value, and is an irreversible transformation that cannot be converted back from the second value to the first value. The predetermined transformation is, for example, hashing.
[0056] The control unit 202 generates multiple transformed information by performing a predetermined transformation on each of the multiple log information items. In other words, the control unit 202 performs a predetermined transformation on each of the multiple log information items and generates transformed information one by one. The control unit 202 generates transaction data containing the generated transformed information and executes a consensus algorithm on the generated transaction data. As a result, the control unit 202 sequentially stores the multiple transformed information on the blockchain.
[0057] Furthermore, the control unit 202 performs verification at a predetermined frequency to determine whether at least one of the target log information and the target transformation information has been tampered with, based on the target log information to be verified from among the multiple log information stored in the database 205 and the target transformation information from among the multiple transformation information stored in the blockchain. The target transformation information is the transformation information that corresponds to the target log information from among the multiple transformation information. In other words, the target transformation information is information generated when the server 20 acquires the target log information and the control unit 202 performs a predetermined transformation on the said target log information.
[0058] In the verification process, the control unit 202 generates verification conversion information separately from the target conversion information already stored on the blockchain by converting the target log information using a predetermined conversion method. The control unit 202 then compares the verification conversion information with the target conversion information stored on the blockchain. Based on the comparison, the control unit 202 determines that if the two information match, the target log information and the target conversion information have not been tampered with; otherwise, it determines that at least one of the target log information and the target conversion information has been tampered with.
[0059] The control unit 202 dynamically changes the predetermined frequency at which verification is performed according to the target log information. In the case of log information tampering, the impact of tampering with log information directly related to fraud is considered to be greater. For the five functions of the server 20 described above, tampering with user permission settings, data uploads, and downloads, which directly lead to serious incidents such as personal information leaks, has a higher risk impact compared to login and logout. Note that this risk impact is based on the type of operation and is therefore a static parameter that does not change after log generation.
[0060] Thus, the degree of risk and impact of tampering can vary depending on the attributes of the target log information. Therefore, the control unit 202 may determine the predetermined frequency of performing verification to be higher the higher the importance of each attribute of the log information, which is predetermined for each attribute. Each of the multiple log information entries is classified into multiple levels of importance for each attribute of the log information. The log information may include flags that indicate attributes. Attributes are, for example, information indicating five functions: system login, system logout, data upload, data download, and user permission settings.
[0061] For example, upload and download log information is classified as High importance, permission settings as Mid importance, and login and logout as Low importance. High importance is higher in importance than Mid importance, and Mid importance is higher in importance than Low importance. Note that the importance classification is not limited to three levels; it may also be two levels or four or more levels.
[0062] Furthermore, transaction data, including log information, is recorded in the blockchain in pairs with the corresponding log information as verification data used to detect tampering in database 205. Therefore, for an attacker to tamper with data, they need to tamper with the log information in database 205, the block containing the conversion information that forms the pair with the log information, and all subsequent blocks from that block onward. The blockchain's resistance to tampering stems from the need to rewrite with the ever-increasing number of subsequent blocks, and the frequency of risk occurrence increases as the block number, which indicates the location of the block containing the conversion information, becomes relatively newer. This relative newness of the block number is a dynamic parameter that can be expressed as the ratio of the block number to the latest block number, and is updated, for example, once every 15 seconds with blockchain updates.
[0063] Thus, the frequency of tampering risk can vary depending on the newness of the block in which the target transformation information corresponding to the target log information is stored. Therefore, the control unit 202 determines a predetermined frequency for performing verification to be higher the closer the position of the first block containing the target transformation information corresponding to the target log information is to the second block that was last linked to that blockchain.
[0064] For example, the control unit 202 may decide to verify a plurality of first transformation information at a first frequency, a plurality of second transformation information at a second frequency, and a plurality of third transformation information at a third frequency, among the plurality of transformation information stored in the blockchain. The first frequency is higher than the second frequency, and the second frequency is higher than the third frequency. The plurality of first transformation information are, for example, the transformation information stored in the blockchain on the most recent day among the plurality of transformation information. The plurality of second transformation information are, for example, the transformation information stored in the first period among the remaining plurality of transformation information stored before the most recent day (i.e., the plurality of transformation information remaining after excluding the plurality of first transformation information). The plurality of third transformation information are, for example, the remaining plurality of transformation information stored in the second period prior to the first period (i.e., the plurality of transformation information remaining after excluding the plurality of first transformation information and the plurality of second transformation information).
[0065] Figure 4 shows the location of blocks in the blockchain. In Figure 4, the downward-pointing triangles indicate the time when the conversion information corresponding to the log information was generated.
[0066] For example, at Day 2, all the multiple transformation information contained in the block stored on Day 2 is set to High (multiple first transformation information). Then, the newer half of the transformation information in the block stored before Day 1 is set to Mid (multiple second transformation information), and the older half of the transformation information is set to Low (multiple third transformation information).
[0067] In the DayN dictionary, all the multiple conversion information contained in blocks stored in DayN is set to High (multiple first conversion information). Of the blocks stored before DayN, the newer half of the conversion information is set to Mid (multiple second conversion information), and the older half of the conversion information is set to Low (multiple third conversion information).
[0068] Furthermore, the classification of multiple conversion information by their relative positions on the blockchain is not limited to three levels; it may also be defined in two levels or four or more levels.
[0069] Figure 5 shows an example of a table with predetermined frequencies.
[0070] As shown in Figure 5, the predetermined frequencies are determined by a table. The table represents multiple frequencies corresponding to multiple sets of multiple ranges classified by their relative position on the blockchain and multiple levels of importance. Specifically, the table shows levels indicating frequencies corresponding to combinations of importance, which affects the degree of risk impact, and block location, which affects the frequency of risk occurrence, as shown in Figure 5. Levels Lv11, Lv12, Lv13, Lv21, Lv22, Lv23, Lv31, Lv32, and Lv33 may be equal for adjacent cells in the table, and the frequencies shown at each level may be determined such that higher importance tends to correlate with higher frequency, and newer block locations tend to correlate with higher frequency. For example, Lv11, Lv12, and Lv13 may be determined as high frequencies, Lv22 and Lv23 as medium frequencies, and Lv21, Lv31, Lv32, and Lv33 as low frequencies. Furthermore, high frequency is higher than medium frequency, and medium frequency is higher than low frequency. Also, the frequency is not limited to the three levels described above; it may be defined in two levels, or even four or more levels.
[0071] The log information may also include flags to identify the sets classified in the table.
[0072] Now, let's return to the explanation of Figure 3.
[0073] The transaction data verification unit 204 verifies the validity of the transaction data when the communication unit 201 receives it. For example, the transaction data verification unit 204 verifies whether the transaction data received by the communication unit 201 has a digitally generated signature in the correct manner. This verification may be skipped.
[0074] Furthermore, the transaction data verification unit 204, together with several other servers 20, executes a consensus algorithm to agree on the validity of the transaction data.
[0075] Here, the consensus algorithm may be PBFT (Practical Byzantine Fault Tolerance) or other known consensus algorithms. Examples of known consensus algorithms include PoW (Proof of Work) or PoS (Proof of Stake). When PBFT is used as the consensus algorithm, the transaction data verification unit 204 receives reports from each of the multiple servers 20 indicating whether the verification of the transaction data was successful or not, and determines whether the number of such reports exceeds a predetermined number. Then, when the number of such reports exceeds the predetermined number, the transaction data verification unit 204 determines that the validity of the transaction data has been verified by the consensus algorithm.
[0076] If the transaction data verification unit 204 confirms the validity of the transaction data, it causes the recording unit 203 to record that transaction data.
[0077] In this embodiment, the transaction data verification unit 204 verifies the validity of the transaction data received by the communication unit 201.
[0078] The recording unit 203 records transaction data by including the transaction data whose validity has been verified by the transaction data verification unit 204 into a block and storing it in the distributed ledger 206.
[0079] The recording unit 203 may also be configured within the distributed ledger 206.
[0080] Database 205 stores multiple log entries. Database 205 is implemented using storage.
[0081] The distributed ledger 206 stores transaction data. Because the distributed ledger 206 retrieves and stores transaction data sequentially, it stores one or more transaction data entries. The distributed ledger 206 is implemented using storage.
[0082] The smart contract execution unit 207 operates the smart contract by executing the contract code and other elements contained in the transaction data stored in the blockchain of the distributed ledger 206. The smart contract execution unit 207 may also operate an update smart contract to perform an update process that updates a table with a predetermined frequency to the level specified by the update transaction data. The smart contract execution unit 207 may also perform an update process when a block containing update transaction data is added to the blockchain in the distributed ledger 206.
[0083] In this way, the smart contract execution unit 207 can manage the update process using a distributed ledger by executing smart contracts. Note that the update smart contracts are generated, for example, by an application on the information terminal 10 based on user operations, and blocks containing these smart contracts are pre-stored on the blockchain. In other words, the blockchain stores the contract code for the update smart contracts that execute update processes to update the multiple frequencies set for the table when a block containing update transaction data for updating the table is stored on the blockchain.
[0084] [Operation] Next, we will explain the operation of the data distribution system 1 configured as described above.
[0085] Figure 6 is a flowchart showing an example of the operation of the data distribution system according to the embodiment.
[0086] Server 20 sequentially acquires multiple log information from information terminal 10 (S101).
[0087] Next, server 20 stores multiple log pieces of information in database 205 (S102).
[0088] Next, the server 20 converts the acquired log information into multiple transformed information using a predetermined transformation method (S103).
[0089] Next, server 20 generates transaction data containing the generated transformation information, and together with other servers 20, executes a consensus algorithm on the generated transaction data, thereby sequentially storing multiple pieces of transformation information in the blockchain (S104).
[0090] Next, the server 20 performs a verification at a predetermined frequency to determine whether at least one of the target log information and the target transformation information has been tampered with, based on the target log information among the multiple log information stored in the database 205 and the target transformation information among the multiple transformation information stored in the blockchain (S105).
[0091] Figure 7 is a flowchart showing an example of a verification process using the data distribution system according to the embodiment.
[0092] Server 20 determines the target log information to be verified based on a predetermined frequency (S111). For example, when a predetermined verification timing arrives, Server 20 may randomly extract a number (percentage) of log information from among multiple log information classified into sets defined in a table, according to a predetermined frequency set in that set, and determine the extracted log information as the target log information. Here, the higher the predetermined frequency, the larger the number (percentage) of log information to be extracted. In other words, the larger the number of log information to be randomly extracted, the higher the verification frequency of the log information classified into the set can be. Alternatively, for example, Server 20 may determine a verification schedule for each log information at a predetermined frequency based on the table, and determine the log information for which the time specified in the verification schedule has arrived as the target log information.
[0093] Next, the server 20 transforms the target log information using a predetermined transformation, thereby generating transformation information for verification, separate from the target transformation information already stored in the blockchain (S112).
[0094] Next, server 20 obtains target transformation information corresponding to the target log information from the blockchain (S113).
[0095] Next, server 20 compares the conversion information for verification with the target conversion information stored in the blockchain (S114).
[0096] Then, if the comparison results are a match (Yes in S115), server 20 determines that the target log information and target conversion information have not been tampered with (S116).
[0097] If they do not match (No in S115), server 20 determines that at least one of the target log information and the target conversion information has been tampered with (S117).
[0098] [Examples] Figures 8 and 9 are diagrams illustrating specific examples of how the data distribution system works.
[0099] In data distribution system 1, it is necessary to handle important information, such as healthcare personal data, with high reliability among a large number of users while protecting privacy. In this case, data 23, which includes the raw data of the important information and operation logs, which are the operation history in data distribution system 1, is recorded in a closed database 21 that can only be used by authorized users, and processed data 24 (converted information) after privacy protection processing (conversion) is also recorded in an open blockchain 22 that can be viewed by other users. In other words, data 23 is recorded in pairs, with the unprocessed data 23 and the processed data 24 that has been processed with privacy protection, in both the closed database 21 and the open blockchain 22, respectively. Note that database 21 is the same as database 205.
[0100] For example, as shown in Figure 9(1), when raw data is uploaded by a user, the raw data is stored in the database 21. Then, as shown in Figure 9(2), log information indicating that raw data has been uploaded is generated, and this log information is also stored in the database 21. Furthermore, as shown in Figure 9(3), the server 20 hashes the raw data and log information. Then, as shown in Figure 9(4), the server 20 records the transaction data, including the processed data 24 generated by hashing, on the blockchain.
[0101] Then, the data 23 and processed data 24 recorded in both the database 21 and the blockchain 22 are compared in a format that matches (hereinafter referred to as "verification") to detect whether or not either of them has been tampered with. Specifically, as shown in Figure 9 (5), in verification, the server 20 generates verification processed data 25 (conversion information) by performing the same privacy protection processing on the data 23 stored in the database 21 as is performed when storing data on the blockchain, thereby converting the format of the data 23 to the same format as the processed data 26 stored in the blockchain 22. Then, as shown in Figure 9 (6), the server 20 performs verification by comparing the verification processed data 25 and the processed data 26. This makes it possible to indirectly increase the reliability of the system itself without recording the important information itself on the blockchain.
[0102] Privacy protection processing can be, for example, hashing. In other words, privacy protection processing may involve a method that uses a cryptographic hash function to transform the original data, thereby generating a hash value that is unique to the original data to which the cryptographic hash function has been applied, and from which the original data cannot be reconstructed.
[0103] Unlike external attacks, data tampering due to internal fraud is difficult to predict when and where it will occur. Furthermore, because internal fraud is carried out by authorized users, the risk is significant. To minimize the damage caused by such data tampering, it is necessary for the system to quickly detect data tampering due to internal fraud before the incident is discovered. In addition, when conducting the aforementioned verification, it is necessary to perform high-frequency verification not only on the most recent data but also on all data throughout the retention period in order to indirectly detect data tampering in the database.
[0104] From a system audit perspective, data is required to be stored long-term, and both the databases and blockchains containing the data to be verified are expected to update and store data over the long term. Therefore, performing frequent verification on all recorded data would increase computational load over time, posing a challenge for long-term operation.
[0105] Therefore, under the condition that the amount of data stored in the data distribution system 1 increases, we have realized a verification method that can efficiently select the verification target according to the type of data and the time-series chain structure of the blockchain, and dynamically change the verification frequency, thereby enabling lightweight tamper detection.
[0106] [Effects, etc.] According to the verification method of this embodiment, the server 20 sequentially acquires multiple log pieces of information generated in the information terminal 10 as the information terminal 10 operates. The server 20 sequentially stores the multiple log pieces of information in the database 205, and sequentially stores the multiple transformed pieces of information obtained by transforming each of the multiple log pieces of information using predetermined transformations in the blockchain. Based on the target log piece of information to be verified from among the multiple log pieces of information and the target transformed piece of information corresponding to the target log piece from among the multiple transformed pieces of information, the server 20 performs verification at a predetermined frequency to determine whether at least one of the target log piece and the target transformed piece of information has been tampered with. The predetermined frequency is determined to be higher the closer the time the target transformed piece of information was stored in the blockchain is to the current time when the verification is performed.
[0107] According to this, the closer the time the target transformation information was stored on the blockchain to the current time of verification, the more frequently verification will be performed on that target transformation information. Therefore, the frequency of verification for older target transformation information with a low risk of tampering can be reduced. As a result, verification can be performed according to the risk of tampering, and the number of verifications can be reduced to avoid increasing the risk of tampering. Thus, verification can be performed efficiently.
[0108] Furthermore, in the verification method according to this embodiment, the predetermined frequency is determined to be higher the closer the position of the first block containing the target conversion information in the blockchain is to the second block that was last linked to the blockchain.
[0109] Therefore, the more frequently the conversion information is stored in a block that is close to the current time of verification, the more frequently verification is performed. This allows for a lower verification frequency for older conversion information that has a lower risk of tampering.
[0110] Furthermore, in the verification method according to this embodiment, each of the multiple log information entries is classified into one of several predetermined levels of importance for each attribute of the log information. The predetermined frequency is determined to be higher the closer the position of the block containing the target transformation information on the blockchain is to the second block that was last linked to the blockchain, and also higher the frequency the higher the importance level.
[0111] Therefore, the more frequently the conversion information is stored in a block that is close to the current time of verification, the more frequently verification is performed. This allows for a lower verification frequency for older conversion information with a lower risk of tampering. Furthermore, since each attribute of the log information has a set importance level that affects the frequency of verification, log information with a higher risk of tampering can be verified more frequently.
[0112] Furthermore, in the verification method according to this embodiment, the predetermined frequency is determined by a table. The table represents multiple frequencies corresponding to multiple sets of multiple ranges classified by their relative position on the blockchain and multiple levels of importance. Therefore, the predetermined frequency can be determined by referring to the table.
[0113] Furthermore, in the verification method according to this embodiment, the blockchain stores a smart contract for executing an update process that updates multiple frequencies set in a table when a block containing transaction data for updating the table is stored in the blockchain.
[0114] According to this, when transaction data is stored on the blockchain, a table can be automatically updated using a smart contract. Furthermore, since the table is updated at a predetermined frequency, the processing load required for updating at that frequency can be reduced.
[0115] Furthermore, in the verification method according to this embodiment, the server 20 generates verification conversion information by converting the target log information using a predetermined conversion method during verification. The server 20 compares the verification conversion information with the target conversion information stored in the blockchain. Based on the comparison, the server 20 determines that if the log information and target conversion information match, they have not been tampered with, and if they do not match, it determines that at least one of the log information and target conversion information has been tampered with.
[0116] Furthermore, in the verification method according to this embodiment, the predetermined conversion is a reproducible method that uniquely converts a first value to a second value that is paired with the first value, and is an irreversible conversion that cannot be converted back from the second value to the first value.
[0117] Therefore, it is possible to enhance the anonymity of data stored on an open blockchain, which is used to verify the data stored in the database.
[0118] [Other embodiments, etc.] As described above, this disclosure has been explained based on the embodiments described above, but of course, this disclosure is not limited to the embodiments described above. The following cases are also included in this disclosure.
[0119] (1) In the above embodiment, the information terminal 10 is assumed to send multiple log information to the server 20, but the device that sends multiple log information is not limited to the information terminal 10, but may be a home appliance with communication capabilities.
[0120] (2) In the above embodiment, a predetermined frequency is determined based on a table according to the block's position and the attributes of the log information. However, the predetermined frequency may be determined according to either the block's position or the attributes of the log information. In other words, when determining the predetermined frequency according to the block's position, the attributes of the log information do not need to be used to determine the predetermined frequency. Also, when determining the predetermined frequency according to the attributes of the log information, the block's position does not need to be used to determine the predetermined frequency. Furthermore, if the frequency is determined to be higher the closer the position of the first block containing the target transformation information in the blockchain is to the second block that was last linked to the blockchain, then a table may not be used to determine the predetermined frequency. Moreover, if the predetermined frequency is determined to be higher the higher the importance, then a table may not be used.
[0121] (3) In the above embodiment, the verification of log information is performed by a server 20 having a distributed ledger storing the blockchain, but the verification of log information is not limited to this, and an external device other than the server 20 may also perform the verification of log information.
[0122] (4) In the above embodiment, an example was shown in which the database 205 and the distributed ledger 206 are provided on the same server 20. However, the example is not limited to this, and the database 205 and the distributed ledger 206 may be provided on different devices.
[0123] (5) In the above embodiment, the verification frequency may be determined by the type of raw data. For example, the verification frequency may be set to be higher for dynamic personal information that shows a person's biometric information than for static personal information that shows a person's attributes.
[0124] (6) In the above embodiment, the period during which the verification is performed may be set to be a specific period of time within a day, such as at night. In this case, the length of the specific period may be changed from day to day, and in this case, the number of verifications performed may be dynamically changed according to the length of the specific period. In other words, the number of verifications may be determined so that the number of verifications performed per unit time is constant.
[0125] (7) In the above embodiment, multiple log information generated during a period older than a predetermined time or more than the current time when verification is performed may be compressed into a single data as an archive. In this case, the compressed data may be treated in the same way as log information. That is, the compressed data may be stored in the database 205, and the hash value of the compressed data may be stored in the blockchain.
[0126] (8) Specifically, each device in the above embodiment is a computer system consisting of a microprocessor, ROM, RAM, hard disk unit, display unit, keyboard, mouse, etc. A computer program is recorded in the RAM or hard disk unit. Each device achieves its function by operating the microprocessor in accordance with the computer program. Here, the computer program is composed of a combination of multiple instruction codes that indicate commands to the computer in order to achieve a predetermined function.
[0127] (9) In the above embodiments, each device may have some or all of its constituent components made up of a single system LSI (Large Scale Integration). The system LSI is a multi-functional LSI manufactured by integrating multiple components onto a single chip, and specifically, it is a computer system comprising a microprocessor, ROM, RAM, etc. A computer program is recorded in the RAM. The system LSI achieves its function by operating the microprocessor in accordance with the computer program.
[0128] Furthermore, each component of the above-mentioned device may be individually integrated into a single chip, or some or all of the components may be integrated into a single chip.
[0129] Furthermore, while we refer to it as a system LSI here, depending on the degree of integration, it may also be called an IC, LSI, super LSI, or ultra LSI. Also, the method of integrated circuit implementation is not limited to LSIs; it may be implemented using dedicated circuits or general-purpose processors. After LSI manufacturing, FPGAs (Field Programmable Gate Arrays) that can be programmed, or reconfigurable processors that allow for the reconfiguration of the connections and settings of circuit cells within the LSI, may also be used.
[0130] Furthermore, if advancements in semiconductor technology or other derived technologies lead to the emergence of integrated circuit technologies that replace LSIs, then naturally, it would be possible to use those technologies to integrate functional blocks. The application of biotechnology, for example, is a possibility.
[0131] (10) Some or all of the components constituting each of the above devices may consist of an IC card or a standalone module that can be attached to or removed from each device. The IC card or module is a computer system consisting of a microprocessor, ROM, RAM, etc. The IC card or module may include the above-mentioned multi-functional LSI. The microprocessor operates according to a computer program, thereby enabling the IC card or module to perform its function. The IC card or module may be tamper-resistant.
[0132] (11) The disclosure may also be the methods described above. Alternatively, it may be a computer program that implements these methods using a computer, or a digital signal consisting of the computer program.
[0133] Furthermore, the computer program or the digital signal may be recorded on a computer-readable recording medium, such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray® Disc), semiconductor memory, etc. Alternatively, the digital signal may be recorded on one of these recording media.
[0134] Furthermore, this disclosure may also describe transmitting the computer program or digital signal via telecommunications lines, wireless or wired communication lines, networks such as the Internet, data broadcasting, etc.
[0135] Furthermore, the present disclosure may also provide a computer system comprising a microprocessor and memory, wherein the memory stores the computer program, and the microprocessor operates in accordance with the computer program.
[0136] Furthermore, the program or digital signal may be implemented by another independent computer system by recording and transferring it on the recording medium, or by transferring the program or digital signal via the network or the like.
[0137] (12) The above embodiments and the above modified examples may be combined. [Industrial applicability]
[0138] This disclosure can be used in verification methods, servers, and programs, for example, in verification methods, servers, and programs that can perform verification in a lightweight manner. [Explanation of symbols]
[0139] 1. Data Distribution System 10 Information terminals 20, 20a, 20b, 20c Servers 21 Databases 22 Blockchain 23 Data 24-26 Processing data 101, 201 Communications Department 102 Input Reception Section 103 Display section 104, 202 Control Unit 105 Storage section 203 Records Department 204 Transaction Data Verification Department 205 Databases 206 Distributed Ledger 207 Smart Contract Execution Unit
Claims
1. As the device operates, multiple log pieces of information generated by the device are sequentially acquired from the device. The plurality of log pieces are sequentially stored in storage, and the plurality of transformed pieces obtained by transforming each of the plurality of log pieces using a predetermined transformation are sequentially stored in the blockchain. Based on the target log information to be verified from among the plurality of log information and the target conversion information corresponding to the target log information from among the plurality of conversion information, a verification is performed at a predetermined frequency to determine whether at least one of the target log information and the target conversion information has been tampered with. The predetermined frequency is determined to be higher the closer the time the target conversion information was stored in the blockchain is to the current time when the verification is performed. Verification method.
2. The predetermined frequency is determined to be higher the closer the position of the first block containing the target transformation information in the blockchain is to the second block that was last linked to the blockchain. The verification method described in claim 1.
3. Each of the aforementioned log information items is classified into multiple levels of importance, predetermined for each attribute of the log information item. The predetermined frequency is further determined to be higher the higher the importance. The verification method described in claim 1.
4. Each of the aforementioned log information items is classified into multiple levels of importance, predetermined for each attribute of the log information item. The predetermined frequency is determined to be higher the closer the position of the block containing the target transformation information in the blockchain is to the second block that was last linked to the blockchain, and also higher the importance level. The verification method described in claim 1.
5. The predetermined frequency is determined by the table, The aforementioned table is represented by multiple frequencies corresponding to multiple sets of ranges classified by their relative position on the blockchain and stages of importance. The verification method described in claim 4.
6. The blockchain stores a smart contract for executing an update process to update the multiple frequencies set in the table when a block containing transaction data for updating the table is stored in the blockchain. The verification method described in claim 5.
7. In the verification process, the target log information is transformed using a predetermined transformation to generate transformation information for verification. This transformation information is then compared with the target transformation information stored in the blockchain. If the results of the comparison match, it is determined that the target log information and the target transformation information have not been tampered with. If they do not match, it is determined that at least one of the target log information and the target transformation information has been tampered with. The verification method according to any one of claims 1 to 6.
8. The aforementioned predetermined conversion is a reproducible method that uniquely converts a first value to a second value that is its counterpart to the first value, and is an irreversible conversion that cannot be converted back from the second value to the first value. The verification method described in claim 7.
9. Processor and Equipped with memory, The processor uses the memory to: Multiple log pieces of information generated by the operation of the device are acquired sequentially from the device. The plurality of log pieces are sequentially stored in storage, and the plurality of transformed pieces obtained by transforming each of the plurality of log pieces using a predetermined transformation are sequentially stored in the blockchain. Based on the target log information to be verified from among the plurality of log information and the target conversion information corresponding to the target log information from among the plurality of conversion information, a verification is performed at a predetermined frequency to determine whether at least one of the target log information and the target conversion information has been tampered with. The predetermined frequency is determined to be higher the closer the time the target conversion information was stored in the blockchain is to the current time. server.
10. Multiple log pieces of information generated by the operation of the device are sequentially acquired from the device. The plurality of log pieces are sequentially stored in storage, and the plurality of transformed pieces obtained by transforming each of the plurality of log pieces using a predetermined transformation are sequentially stored in the blockchain. Based on the target log information to be verified from among the plurality of log information and the target conversion information corresponding to the target log information from among the plurality of conversion information, a verification is performed at a predetermined frequency to determine whether at least one of the target log information and the target conversion information has been tampered with. The predetermined frequency is determined to be higher the closer the time the target conversion information was stored in the blockchain is to the current time when the verification is performed. A program to be executed by a computer.
Citation Information
Patent Citations
JP2017153044A
US20180157700A1
WO2008026238A1