Information processing method, information processing system, and storage medium
By dividing data into deletion-permitted and non-deletion types and using block number information for tampering checks, the method addresses the challenge of confirming data integrity after deletion in blockchain technology, reducing storage costs and ensuring reliability.
Patent Information
- Application Number
- PCT/JP2024/017048
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-11-09
- Filing Date
- 2024-05-08
- Publication Date
- 2025-01-02
AI Technical Summary
Existing data deletion methods using blockchain technology face challenges in confirming that data has not been tampered with after deletion, as they delete all related data, making it difficult to perform tampering checks.
The method involves dividing data into deletion-permitted and non-deletion data types, storing them on different blockchain channels, recording block number information for deletion targets, and determining the start position for tampering checks based on this information to ensure data integrity after deletion.
This approach allows for appropriate data deletion while maintaining the ability to confirm that the data has not been tampered with, reducing storage costs and maintaining data reliability, even as the amount of data stored increases.
Smart Images

Figure JP2024017048_02012025_PF_FP_ABST
Abstract
Description
Information processing method, information processing system, and storage medium CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is based on Patent Application No. 2023-107363 filed in Japan on June 29, 2023, and Patent Application No. 2023-191815 filed in Japan on November 9, 2023, and the contents of the base applications are incorporated by reference in their entirety.
[0002] The disclosure in this specification relates to a technology for storing data using a blockchain.
[0003] In the information processing device disclosed in Patent Literature 1, a registration blockchain distributed ledger in which transaction registration processing is possible and a reference blockchain distributed ledger in which transaction registration processing is not performed are stored separately. This information processing device suppresses the expansion of data stored using blockchain technology by deleting the reference blockchain distributed ledger.
[0004] JP 2023-18905 A
[0005] In the information processing device of Patent Document 1, the registration blockchain distributed ledger becomes the reference blockchain distributed ledger over time and is then deleted. That is, old past data is uniformly deleted. Therefore, after past data is deleted, it becomes impossible to check for tampering, and it may be difficult to confirm that the data has not been tampered with. As described above, the data deletion method disclosed in Patent Document 1 has problems.
[0006] The present disclosure aims to provide an information processing method, an information processing system, and a storage medium that are capable of appropriately deleting data stored using blockchain technology.
[0007] In order to achieve the above object, one disclosed aspect is an information processing method for storing data to be stored using blockchain technology, which includes the following steps in processing executed by at least one processor: sorting the data to be stored into multiple data types including at least deletion-permitted data that allows deletion and non-deletion data that does not allow deletion; storing the deletion-permitted data and non-deletion data linked to different channels of the blockchain; recording block number information related to the position of a processed block from which the data to be stored linked to a block to be deleted has been deleted among multiple blocks to be deleted that constitute the deletion-permitted data channel; and determining the start position of a check process based on the block number information in a check process to confirm tampering with the channel to be deleted.
[0008] Another disclosed aspect is an information processing system that uses blockchain technology to store data to be stored, and is equipped with a data storage unit that sorts the data to be stored into a plurality of data types including at least deletion-permitted data that permits deletion and non-deletion data that does not permit deletion, and stores the deletion-permitted data and non-deletion data by linking them to different channels of the blockchain, and a tampering check unit that records block number information related to the position of a processed block from which the data to be stored linked to a block to be deleted has been deleted among a plurality of blocks to be deleted that make up the deletion-permitted data channel that stores the deletion-permitted data, and determines the start position of the check process based on the block number information in a check process to confirm tampering of the deletion-permitted channel.
[0009] Another disclosed aspect is a computer-readable storage medium that stores an information processing program for storing data to be stored using blockchain technology, wherein the information processing program is configured to cause at least one processor to execute processes including: sorting the data to be stored into a plurality of data types including at least deletion-permitted data that permits deletion and non-deletion data that does not permit deletion; storing the deletion-permitted data and non-deletion data by linking them to different channels of the blockchain; recording block number information related to the position of a processed block from which the data to be stored linked to a block to be deleted has been deleted among a plurality of blocks to be deleted that constitute a deletion-permitted data channel that stores the deletion-permitted data; and determining the start position of a check process based on the block number information in a check process that checks for tampering with the channel to be deleted.
[0010] In these embodiments, when data to be stored is deleted, block number information related to the location of the processed block is recorded in the channel to be deleted that stores the deletion-permitted data. Therefore, by determining the start position of the check process based on the block number information, it is possible to check for tampering in the channel to be deleted even after the data to be stored is deleted, and it is possible to confirm that the data has not been tampered with. Therefore, it is possible to appropriately delete data to be stored using blockchain technology.
[0011] It should be noted that the reference numerals in parentheses in the claims merely indicate examples of correspondence with specific configurations in the embodiments described below, and do not limit the technical scope in any way. Furthermore, claims not explicitly stated in the claims may be combined together unless there is a particular problem with the combination.
[0012] 1 is a block diagram showing an overall view of a blockchain platform on which an information processing method according to an embodiment of the present disclosure is executed. FIG. 1 is a diagram for explaining the contents of a registration process of data to be stored by a data registration unit. FIG. 2 is a diagram for explaining details of data storage by a blockchain node. FIG. 3 is a diagram showing an example of sorting of data to be stored. FIG. 4 is a diagram for explaining the contents of a deletion process of data to be stored by a data deletion unit. FIG. 5 is a diagram for explaining the contents of a tampering check process of data to be stored by a tampering check unit. A flowchart showing details of a data registration process performed by a data registration unit. A flowchart showing details of a data deletion process performed by a data deletion unit. A flowchart showing details of a tampering check process performed by a tampering check unit. A diagram for explaining the contents of a deletion process of data to be stored in Modification Example 1. A diagram for explaining the contents of a tampering check process.
[0013] A blockchain platform 100 according to an embodiment of the present disclosure shown in FIG. 1 uses blockchain BC technology to enable information sharing between participating clients (e.g., companies, etc.). The blockchain platform 100 uses a general-purpose blockchain BC framework, such as Hyperledger Fabric (HLF, see FIG. 3). The blockchain platform 100 makes it possible to build private blockchain networks (hereinafter referred to as channels) in which only specific participants can join the network and share data and transactions. As a result, it is possible to meet the privacy and confidentiality requirements of each participant.
[0014] The blockchain platform 100 includes multiple blockchain nodes (hereinafter referred to as BC nodes) 50. As an example, each BC node 50 is constructed by a blockchain server (virtual machine) on the cloud. The blockchain server is mainly configured with a control circuit 10. The control circuit 10 includes a processor 11, RAM 12, storage 13, an input / output interface 14, and buses connecting these components, and functions as a high-performance computer that performs calculations at high speed.
[0015] The processor 11 is hardware for arithmetic processing coupled to the RAM 12. The processor 11 accesses the RAM 12 to execute various processes (instructions) related to the management and provision of data. The storage 13 stores an information processing program that realizes functions related to the management and provision of data. The information processing program is a program that causes the blockchain server (control circuit 10) to execute the information processing method of the present disclosure.
[0016] The BC node 50 is a blockchain management system linked to the systems of individual clients. As an example, in a blockchain network that manages vehicle information, the automobile manufacturer (Original Equipment Manufacturer, OEM) that manufactures the vehicles and the dealers that sell the vehicles are clients (Users B and C in FIG. 1). One of the multiple BC nodes 50 is a BC node 60 (BC Node_B in FIG. 1) that cooperates with a user terminal 160 (User Terminal B in FIG. 1) of the OEM's management system. Another of the multiple BC nodes 50 is a BC node 80 (BC Node_C in FIG. 1) that cooperates with a user terminal 160 (User Terminal C in FIG. 1) of the dealer's management system.
[0017] The BC node 60 includes a node database 70 (B_DB in FIG. 1). The node database 70 stores data to be stored DS linked to user B and enables the data to be stored DS to be shared with other BC nodes 50. Similarly, the BC node 60 includes a node database 90 (C_DB in FIG. 1). The node database 90 stores data to be stored DS linked to user C and enables the data to be stored DS to be shared with other BC nodes 50. The data to be stored DS is data that is stored and shared in the blockchain platform 100 using blockchain BC technology. The data to be stored DS is collected by each user terminal and transmitted to the BC node 50 linked to each user terminal.
[0018] The BC node 50 accepts new registration requests, update requests, reference requests, deletion requests, etc. for the data DS to be stored from each user's user terminal 160. The BC node 50 has functional units such as a data registration unit 51 and a data deletion unit 52. Note that the BC node 30, which will be described later, may also have the data registration unit 51, like the other BC nodes 50.
[0019] 2, the data registration unit 51 receives a new registration request for data DS to be stored from the user terminal 160, etc. Based on the registration request, the data registration unit 51 executes a registration process for the data DS to be stored (see FIG. 7). The data registration unit 51 prepares original data DM, metadata, and a hash value from the data DS to be stored.
[0020] The original data DM is the main body of the data DS to be stored, and is the raw data of the data DS to be stored. Specifically, the original data DM includes document data in PDF format or the like, image data in JPEG format or the like, and multimedia data with large data sizes, such as music data and video data in MPEG format or the like.
[0021] Metadata is data that provides information related to the data to be stored DS (original data DM). Metadata is data related to the storage of the data to be stored DS in the blockchain BC, and specifically, is generated in conjunction with operations such as registration (connection) and search of the data to be stored DS, as well as registration and usage processes such as authentication of data and users. In the blockchain network that manages the vehicle information described above, the related data of the blockchain BC, excluding pure vehicle information, becomes metadata.
[0022] Metadata is closely related to the structure of the blockchain BC. Deleting metadata may affect the blockchain BC. Specifically, metadata includes summary data indicating the contents, characteristics, structure, relationships, etc. of the data to be stored DS, operation data related to this summary data, and authentication information for the data and user. The summary data includes, for example, the data name (file name), creation date and time, data size, data format (extension), etc. of the original data DM. The operation data includes, for example, a record of the execution history of registration operations to the blockchain BC, ID assignment, data authentication, data search, etc. The authentication information includes information related to the public key and assigned ID. The metadata may be generated by the user terminal 160, or may be generated by the data registration unit 51 using the data to be stored DS provided by the user terminal 160.
[0023] A hash value is generated using the original data DM. The hash value is data that maintains a predetermined number of bits (for example, 256 bits), and is a unique value that reflects the contents of the original data DM. A hash function such as SHA-256 is used to generate the hash value. Instead of SHA-256, encryption algorithms (hash functions) such as SHA-1, SHA-2, SHA-3, and SHA-512 may also be used to generate the hash value.
[0024] The data registration unit 51 sorts the data DS to be stored into a plurality of data types including at least deletion-permitted data DD and deletion-non-permitted data DN. Deletion-permitted data DD is data that is permitted to be deleted after a predetermined period of time has elapsed or based on a specific deletion trigger. The deletion-permitted data includes the above-mentioned hash value. Deletion-non-permitted data DN is non-permitted data that is not permitted to be deleted and is essentially permanently stored. Deletion-non-permitted data DN includes the above-mentioned metadata.
[0025] The data registration unit 51 stores the original data DM, the hash value, and the metadata in different data storage areas (storage) of the node database 70. Specifically, the original data DM, which has a large data size, is stored in the object storage So. On the other hand, the metadata and hash value, which have a small data size and which are to be shared among participants without being tampered with, are stored in the instance storage Si.
[0026] The object storage So shown in FIGS. 2 and 3 is a storage that stores files and data as objects. As an example, a search index database So1 and a search target database So2 are constructed in the object storage So. The search index database So1 stores data necessary for searching information stored in the search target database So2. That is, information linked to objects (original data DM) stored in the search target database So2 is stored in the search index database So1. For example, RDS (Relational Database Service) can be used for the search index database So1. RDS is a relational database provided on AWS (Amazon Web Services, registered trademark). For example, an S3 (Simple Storage Service) bucket can be used for the search target database So2. Like RDS, the S3 bucket is provided on AWS and can permanently store large amounts of data. Data stored in the object storage So is not shared with other BC nodes 50. Note that instead of RDS and S3 buckets, other cloud storage such as Azure Blob Storage from Azure (registered trademark) may be used.
[0027] The instance storage Si is local storage of the blockchain server. Instead of the instance storage Si, block storage that stores data of the blockchain server in blocks on the cloud may be used. In this case, AWS's EBS (Elastic Block Store) and Azure's Azure Managed Disks, etc., can be used as the instance storage Si. The data stored in the instance storage Si can be shared with other BC nodes 50.
[0028] The data registration unit 51 stores the deletion-permitted data DD, which includes a hash value, and the deletion-exempt data DN, which includes metadata, separately in different channels of the blockchain BC. For convenience, the network of the blockchain BC that stores the deletion-permitted data DD is referred to as a first blockchain channel (hereinafter, A channel BCa) dedicated to the deletion-permitted data DD. And the network of the blockchain BC that stores the deletion-exempt data DN is referred to as a second blockchain channel (hereinafter, B channel BCb) dedicated to the deletion-exempt data DN. Both A channel BCa and B channel BCb are public channels that share data with other BC nodes 50.
[0029] Deletion permission data DD is stored as a transaction in each block BL (hereinafter referred to as Ach block BLa) that constitutes A channel BCa. The deletion permission data DD is registered as block data of A channel BCa and is also stored in a ledger DC (see Figure 3) provided in a distributed database such as CouchDB. In A channel BCa, a hash value generated from one Ach block BLa is stored in the next Ach block BLa. Furthermore, timestamp data indicating the date and time when the deletion permission data DD was added is recorded in the Ach block BLa.
[0030] Data DN not to be deleted as a transaction is stored in each block BL (hereinafter referred to as Bch block BLb) constituting the B channel BCb. The data DN not to be deleted is registered as block data of the B channel BCb and is also stored in the ledger DC. In the B channel BCb, a hash value generated from one Bch block BLb is stored in the next Bch block BLb. Furthermore, timestamp data indicating the date and time when the data DN not to be deleted was added is also recorded in the Bch block BLb.
[0031] The timestamp data may simply be information indicating the date and time, or may be a hash value generated by a timestamp server, etc. The timestamp server takes news articles distributed by a news distribution server, etc., as input information, and generates a hash value of a predetermined number of bits (e.g., 256 bits) as timestamp data by inputting the input information into a hash function.
[0032] Here, in the blockchain network that manages vehicle information, approval information, asset information, access information, and other stored information are included in the storage target data DS along with the vehicle information (see FIG. 4). The data registration unit 51 sets a hash value based on the vehicle information as deletion permission data DD. The hash value based on the vehicle information is then stored in A channel BCa. A channel BCa becomes a vehicle channel that stores vehicle information. As an example, the vehicle information that becomes the original data DM includes the vehicle identification number, model year, grade, vehicle name, mileage, collision detection results, registration inspection results, registration photos, and appraisal price. Furthermore, the data registration unit 51 sets approval information, asset information, access information, and other stored information as non-deletion target data DN. This information is then stored in B channel BCb.
[0033] The data registration unit 51 can also store data on channels other than A channel BCa and B channel BCb, specifically, C channel BCc and D channel BCd. C channel BCc and D channel BCd are private channels, unlike public channels such as A channel BCa and B channel BCb. C channel BCc and D channel BCd are channels for storing non-disclosure information that should not be disclosed to other BC nodes 50, such as trade secrets and key information. C channel BCc is a private channel corresponding to A channel BCa, and stores deletion-permitted data DD from among the non-disclosure information. D channel BCd is a private channel corresponding to B channel BCb, and stores deletion-non-target data DN from among the non-disclosure information.
[0034] The non-disclosure information stored in the C channel BCc and the D channel BCd may be raw data such as trade secrets and key information, or may be a hash value generated from the trade secrets and key information. The raw data of the non-disclosure information is stored in the object storage So as original data DM. The non-disclosure information is disclosure-restricted information in which disclosure is restricted for the deletion-permitted data DD and the deletion-exempt data DN. The non-disclosure information is stored as transactions together with timestamp data, etc., in individual blocks BL constituting the C channel BCc (hereinafter referred to as Cch blocks BLc) or individual blocks BL constituting the D channel BCd (hereinafter referred to as Dch blocks BLd). The non-disclosure information is registered as block data in the C channel BCc and the D channel BCd, and is also stored in the ledger DC (see FIG. 3).
[0035] The C channel BCc may be a private channel used for data sharing within a specific group. In this case, only a portion of all BC nodes 50, namely, the BC nodes 50 within a predetermined sharing group, can access the C channel BCc and the D channel BCd. Furthermore, if the non-disclosure information does not include non-deletion target data DN, or if the non-disclosure information contains only a small amount of non-deletion target data DN, the D channel BCd may not be provided.
[0036] 3 and 5, the data deletion unit 52 executes a deletion process (see FIG. 8) for deleting some of the data DS to be stored. The data deletion unit 52 may automatically delete the data DS to be stored that has been stored for a certain period of time (e.g., seven years) or may delete old data DS to be stored based on a deletion request received from the user terminal 160 or the BC node 30 described later.
[0037] The data deletion unit 52 deletes data DS to be stored that was stored before a specific time based on a predetermined period condition or a condition specified in a deletion request. When deleting data DS to be stored, the data deletion unit 52 deletes only data that is stored in association with the A channel BCa and the C channel BCc. In other words, the data deletion unit 52 does not delete data that is stored in association with the B channel BCb.
[0038] More specifically, the data deletion unit 52 determines the range of blocks BL to be processed in the A channel BCa and the C channel BCc based on the timestamp data stored in each A channel block BLa and each C channel block BLc. The blocks BLa and BLc to be processed are expired blocks BLe (see the dots in Figure 5). The data deletion unit 52 targets data groups linked to the blocks BLa and BLc set as the processing targets for deletion. On the other hand, the data deletion unit 52 does not target the blocks BLa and BLc (block data files, see Figure 3) themselves for deletion. Note that, if the timestamp data of the data to be stored DS is stored in the object storage So, the data deletion unit 52 may use the timestamp data of the object storage So to determine the data groups to be deleted.
[0039] The data deletion unit 52 deletes, from the ledger DC, deletion permission data DD corresponding to a copy of block data included in the Ach block BLa (expired block BLe) to be processed. In addition, the data deletion unit 52 deletes, from the object storage So, the original data DM that is data to be stored DS linked to the Ach block BLa to be processed and that was used to generate the deletion permission data DD stored in the Ach block BLa to be processed.
[0040] Similarly, the data deletion unit 52 deletes non-disclosure information corresponding to a copy of block data included in the Cch block BLc (expired block BLe) to be processed from the ledger DC. In addition, the data deletion unit 52 deletes the original data DM linked to the Cch block BLc to be processed and used to generate the non-disclosure information from the object storage So.
[0041] As explained above, the original data DM and the like linked to the A channel BCa or the C channel BCc are deleted when the storage period expires. This allows large-sized multimedia data such as document data, image data, music data, and video data to be deleted from the search index database So1 and the search target database So2 of the object storage So. In contrast, data related to the B channel BCb, including not only the block data included in the Bch block BLb but also the non-deletion target data DN in the ledger DC and its original data DM, continues to be stored without being deleted even after the storage period has expired.
[0042] The data deletion unit 52 grasps block number information BNi associated with the positions of the Ach blocks BLa from which the deletion-permitted data DD and its original data DM in the ledger DC have been deleted among the multiple Ach blocks BLa constituting the A channel BCa. Similarly, the data deletion unit 52 grasps block number information BNi associated with the positions of the Cch blocks BLc from which the non-disclosure information in the ledger DC and its original data DM have been deleted among the multiple Cch blocks BLc constituting the C channel BCc. The data deletion unit 52 designates each block BLa, BLc from which the original data DM has been deleted as an expired block BLe (see dots in Figure 5). The block number information BNi indicates the boundary positions between the range of the expired blocks BLe and the range of the blocks BL from which the original data DM has not been deleted, in each of the A channel BCa and the C channel BCc.
[0043] As one example, the data deletion unit 52 designates the oldest block BL among the numerous Ach blocks BLa or Cch blocks BLc that have not become expired blocks BLe as the specific block BLs (see FIG. 5). As another example, the data deletion unit 52 designates the newest block BL among the expired blocks BLe as the specific block BLs. The data deletion unit 52 acquires a unique block number indicating the specific block BLs as block number information BNi. The data deletion unit 52 provides the acquired block number information BNi to the BC node 30, which will be described later. The block number information BNi may be shared among multiple BC nodes 50 using the blockchain BC.
[0044] The BC node 30 is a BC node 50 that manages access to the blockchain platform 100 by a user terminal 110 (user terminal A in FIG. 1 ) of an external system or an external user (user A in FIG. 1 ). The BC node 30 performs authentication and authorization for connection to the blockchain platform 100 by the external system or user terminal 110. The BC node 30 acquires a reference request for the data to be stored DS stored by the blockchain BC from the external system and the user terminal 110. The BC node 30 generates data to be provided from the data to be stored DS based on the reference request, and provides the generated data to be provided to the external system or user terminal 110 that is the requesting source.
[0045] The BC node 30 includes functional units such as a node database 40 and a tamper check unit 33. The node database 40 is a data storage area that stores information related to the BC node 30. At least a portion of the data stored in the node database 40 is shared with the node databases 70, 90, etc.
[0046] As shown in FIG. 5 , when a portion of the data to be stored DS is deleted by the data deletion unit 52, the tampering check unit 33 acquires block number information BNi. The tampering check unit 33 may acquire the block number information BNi directly from the data deletion unit 52 that performed the deletion process, or may acquire the block number information BNi by information sharing via the blockchain BC. The tampering check unit 33 records the acquired block number information BNi in the node database 40. As an example, the tampering check unit 33 registers the block number information BNi in a private channel of the node database 40. When the data deletion unit 52 newly performs a deletion process on the original data DM, etc., linked to the A channel block BLa, the tampering check unit 33 updates the block number information BNi linked to the A channel BCa. Similarly, when the data deletion unit 52 newly deletes the original data DM etc. linked to the Cch block BLc, the tampering check unit 33 updates the block number information BNi linked to the C channel BCc.
[0047] As shown in Fig. 6, the tampering check unit 33 performs a tampering check process (see Fig. 9) to check whether the data DS to be stored has been tampered with, at a predetermined timing or based on a check request from an external system or the user terminal 110. Specifically, the tampering check unit 33 repeatedly recalculates the hash value of each block BL using the data in each block BL (the transaction and the hash value of the previous block) and the hash function used when generating the blockchain BC. The tampering check unit 33 determines whether tampering has occurred by verifying whether the hash values of each block BL are correctly linked.
[0048] In the process of checking for tampering of the B channel BCb, the tampering check unit 33 starts recalculating the hash value from the oldest Bch block BLb located at the beginning of the B channel BCb. Meanwhile, in the process of checking for tampering of the A channel BCa and the C channel BCc, the tampering check unit 33 determines the start position (start block) of the check process based on the block number information BNi.
[0049] As described above, when the block number information BNi indicates the block number of the oldest valid block BLa or BLc, the tampering check unit 33 sets the specific block BLs indicated by the block number information BNi as the start block of the check process. Also, when the block number information BNi indicates the block number of the newest expired block BLe, the tampering check unit 33 sets the block BLa or BLc next to the specific block BLs indicated by the block number information BNi as the start block of the check process. The tampering check unit 33 recalculates the hash value from the determined start block. In other words, the expired block BLe is excluded from the check process to confirm whether or not it has been tampered with.
[0050] The tampering check unit 33 is also provided in the BC node 50 in addition to the BC node 30. Such a tampering check unit 33 can also execute processing for tamper checking. Similarly, the BC node 30 may have the function of the data deletion unit 52 and be able to execute data deletion processing.
[0051] Next, the details of the data registration process, data deletion process, and falsification check process explained so far will be explained based on FIGS. 7 to 9 and with reference to FIGS. 1 to 6.
[0052] The data registration process shown in FIG. 7 is mainly performed by the data registration unit 51 (see FIG. 2). In S101, the data registration unit 51 receives and acquires the data to be stored DS from the user terminal 160. In S102, the data registration unit 51 sorts the acquired data to be stored DS into multiple data types including at least deletion-permitted data DD and deletion-non-target data DN. If the acquired data to be stored DS contains non-disclosure information, in S102 the data registration unit 51 sorts this non-disclosure information into a data type different from the deletion-permitted data DD and deletion-non-target data DN. Furthermore, in S103, the data registration unit 51 acquires timestamp data indicating the acquisition or storage timing of the data to be stored DS.
[0053] In S104 and S105, the deletion-permitted data DD and the deletion-exempt data DN are stored separately in different channels of the blockchain BC (public chain). Specifically, in S104, the data registration unit 51 adds a new Ach block BLa, which stores the current deletion-permitted data DD, to the A channel BCa. Furthermore, in S105, the data registration unit 51 adds a new Bch block BLb, which stores the current deletion-exempt data DN, to the B channel BCb.
[0054] In S106 and S107, the non-disclosure information is stored in a private chain prepared separately from the public chain. In S106, the data registration unit 51 adds a new Cch block BLc that stores the current non-disclosure information to the C channel BCc. Furthermore, in S107, the data registration unit 51 adds a new Dch block BLd that stores the current non-disclosure information to the D channel BCd. Note that if the storage target data DS does not contain non-disclosure information, the processes of S106 and S107 are omitted. Furthermore, the data registration process of adding non-disclosure information to the C channel BCc and D channel BCd may be executed as a separate process from the data registration process of adding the deletion-permitted data DD and the deletion-non-target data DN to the public channel.
[0055] In the above steps S104 to S107, the timestamp data acquired in step S103 is recorded in each block BL to be added. Then, in step S108, the data registration unit 51 stores the original data DM linked to the deletion-permitted data DD, the deletion-exempt data DN, and the non-disclosure information in the object storage So. Note that the order in which steps S104 to S108 are performed may be changed as appropriate.
[0056] The data deletion process shown in FIG. 8 is mainly performed by the data deletion unit 52 (see FIG. 5). In S111, the data deletion unit 52 identifies the storage target data DS to be deleted. As an example, when performing periodic data deletion upon the passage of a predetermined period, the data deletion unit 52 references the timestamp data recorded in each Ach block BLa to identify the Ach block BLa that falls within the deletion period. Similarly, the data deletion unit 52 references the timestamp data recorded in each Cch block BLc to identify the Cch block BLc that falls within the deletion period. When performing data deletion based on a specific deletion trigger, the data deletion unit 52 also references the timestamp data of each Ach block BLa and each Cch block BLc to identify the Ach block BLa and Cch block BLc that fall within the specified deletion period.
[0057] The data deletion unit 52 sets the Ach block BLa and Cch block BLc that fell within the deletion period in S111 as expired blocks BLe in S112. In S113, the data deletion unit 52 deletes the storage target data DS linked to the expired blocks BLe, i.e., the deletion-permitted data DD, non-disclosure information, and original data DM, etc. In S112 and S113 described above, of the A channel BCa storing the deletion-permitted data DD and the B channel BCb storing the non-deletion target data DN, the expired block BLe is set only for the A channel BCa, and the deletion of the original data DM is applied. Note that the order of S112 and S113 may be changed as appropriate. Specifically, after deleting the original data DM, etc. that fell within the deletion period, the corresponding block BL may be set as the expired block BLe.
[0058] In S114 and S115, the tampering check unit 33 records block number information BNi related to the position of the currently set expired block BLe, which indicates the start position (start block) of the tampering check. When an expired block BLe is newly set in the A channel BCa, the tampering check unit 33 updates the block number information BNi associated with the A channel BCa in S114. Similarly, when an expired block BLe is newly set in the C channel BCc, the tampering check unit 33 updates the block number information BNi associated with the C channel BCc in S115.
[0059] The tampering check process shown in Figure 9 is mainly performed by the tampering check unit 33 (see Figure 6). In S121, the tampering check unit 33 checks whether all Bch blocks BLb of the B channel BCb and all Dch blocks BLd of the D channel BCd have been tampered with. That is, the tampering check unit 33 calculates a hash value for tampering check using the block data stored in each block BL from the first Bch block BLb of the B channel BCb and the first Dch block BLd of the D channel BCd. The tampering check unit 33 compares the hash value recorded in each block BL with the hash value for tampering check, and if they match, determines that there is no possibility of tampering.
[0060] In S122, the tampering check unit 33 references the block number information BNi associated with the A channel BCa and determines the number (start position) of the starting block from which to start checking for tampering for the A channel BCa. In S123, the tampering check unit 33 checks for tampering for the A channel blocks BLa following the starting block (specific block BLs) of the A channel BCa. That is, the tampering check unit 33 excludes expired blocks BLe from the tampering check. The tampering check unit 33 then calculates a hash value for tampering check using the block data stored in each block BL following the specific block BLs. The tampering check unit 33 compares the hash value recorded in each block BL with the hash value for tampering check, and if they match, determines that there is no possibility of tampering.
[0061] In S123, the tampering check unit 33 references the block number information BNi associated with the C channel BCc and determines the number (start position) of the start block at which to start checking for tampering in the C channel BCc. In S124, the tampering check unit 33 checks for tampering in the Cch blocks BLc following the specific block BLs in the C channel BCc. As a result, the expired blocks BLe in the C channel BCc are excluded from the tampering check.
[0062] The order of the check process for B channel BCb in S121, the check process for A channel BCa in S122 and S123, and the check process for C channel BCc in S124 and S125 may be changed as appropriate. In addition, the check process for C channel BCc, which is a private chain, may be executed as a separate process from the check process for A channel BCa and B channel BCb, which are public chains.
[0063] In S126, the tampering check unit 33 determines whether an abnormality has been detected in the concatenation of hash values in each of A channel BCa, B channel BCb, C channel BCc, and D channel BCd. If an abnormality has been detected in the concatenation of hash values in at least one of A channel BCa, B channel BCb, C channel BCc, and D channel BCd (S126: YES), the tampering check unit 33 determines in S127 that there is a possibility of tampering. When starting the tampering check process based on a request from the BC node 30, the user terminal 160, or the like, the tampering check unit 33 transmits an abnormality detection notification indicating there is a possibility of tampering to the source of the check request.
[0064] On the other hand, if no abnormality is detected in the concatenation of hash values in all of A channel BCa, B channel BCb, C channel BCc, and D channel BCd (S126: NO), the tampering check unit 33 determines in S128 that there is no possibility of tampering. That is, the tampering check unit 33 determines in S128 that the data to be stored DS is normal. In this case, the tampering check unit 33 may transmit a normal determination notification indicating that there is no possibility of tampering to the check request source, such as the BC node 30 or the user terminal 160.
[0065] (Summary of the embodiment) In the embodiment described so far, when the data to be stored DS is deleted, block number information BNi related to the position of the expired block BLe is recorded in the Ach block BLa that stores the deletion permission data DD. Therefore, if the start position of the check process is determined based on the block number information BNi, a tampering check of the A channel BCa can be performed even after the data to be stored DS is deleted, and it can be confirmed that it has not been tampered with. Therefore, it is possible to appropriately delete data stored using blockchain BC technology.
[0066] In more detail, by establishing a new channel A BCa dedicated to deletion-permitted data DD and managing it separately from non-deletion-target data DN, it is possible to reduce the amount of stored data while ensuring reliability through tampering checks. In other words, even if the amount of data stored by BC nodes 50 participating in the blockchain BC increases in proportion to the total number of transactions processed by the blockchain BC, it is possible to reduce the amount of data by sequentially performing data deletion processing. This avoids the situation where the costs required for data accumulation become enormous, lowering the economic hurdle of data storage using the blockchain BC. This also lowers the hurdle for establishing BC nodes 50, thereby preventing a situation where consensus building on the blockchain BC becomes unstable due to a decrease in the number of nodes.
[0067] In addition, since the block number information BNi indicating the position of the expired block BLe is recorded, it is possible to start the tamper check process for the A channel BCa from an appropriate position. Therefore, it is possible to avoid a situation in which it becomes difficult to properly perform the tamper check process due to data deletion. Furthermore, the tamper check process can be applied without omission to the range of the A channel blocks BLa in the A channel BCa for which it is possible to determine whether or not there has been tampering.
[0068] Furthermore, among the data to be stored DS, only the deletion-permitted data DD linked to the A channel BCa is subject to deletion, and the data not to be deleted DN linked to the B channel BCb is not subject to deletion. As a result, the data to be stored DS related to the B channel BCb continues to be permanently stored. Therefore, even after deleting part of the data to be stored DS, it is possible to confirm that the deleted data to be stored DS has not been tampered with by performing a tampering check using the blockchain BC of the B channel BCb.
[0069] Furthermore, in this embodiment, the original data DM related to the deletion permission data DD is stored in an object storage So that is different from the instance storage Si that stores the deletion permission data DD. Then, the original data DM linked to the expired block BLe is deleted from the object storage So. In this way, by appropriately deleting the original data DM with a large data size, it is possible to effectively reduce the amount of accumulated data.
[0070] In addition, the deletion permission data DD of this embodiment includes a hash value generated from the original data DM. On the other hand, the deletion non-target data DN includes metadata related to the original data DM. As a result, the metadata is permanently stored in a state protected from tampering.
[0071] In this embodiment, non-disclosure information, which is restricted in disclosure target for the deletion permission data DD, is stored in association with a C channel BCc different from the Ach block BLa. Therefore, trade secrets and the like that cannot be disclosed to other BC nodes 50 can also be securely stored using blockchain BC technology.
[0072] Furthermore, in this embodiment, block number information BNi is recorded, which is associated with the position of the expired block BLe from which the non-disclosure information has been deleted, among the multiple Cch blocks BLc constituting the C channel BCc. Then, in the check process for checking whether the Cch blocks BLc have been tampered with, the start position of the check process is determined based on the block number information BNi. As a result, it is possible to delete the non-disclosure information stored by the C channel BCc, just like the original data DM of the deletion permission data DD. As a result, it is possible to effectively reduce the amount of accumulated data.
[0073] Furthermore, in this embodiment, object storage So is secured separately from instance storage Si, which allows information sharing between BC nodes 50. The original data DM is stored in the object storage So separately from hash values and metadata. With the above storage configuration, it is possible to appropriately store the hash values and metadata that need to be shared, and the original data DM, which has a large data size.
[0074] In the above embodiment, the data registration unit 51 corresponds to the "data storage unit", the A channel BCa corresponds to the "channel to be deleted", the C channel BCc corresponds to the "disclosure-restricted channel", and the non-disclosure information corresponds to the "disclosure-restricted information". Also, the Ach block BLa corresponds to the "block to be deleted", the Cch block BLc corresponds to the "disclosure-restricted block", the expired block BLe corresponds to the "processed block", and the non-deletion target data DN corresponds to the "non-deleted data". The instance storage Si corresponds to the "first storage", the object storage So corresponds to the "second storage", the blockchain platform 100 corresponds to the "information processing system", and the storage 13 corresponds to the "storage medium".
[0075] (Other Embodiments) Although one embodiment of the present disclosure has been described above, the present disclosure should not be construed as being limited to the above embodiment, and can be applied to various embodiments and combinations within the scope that does not deviate from the gist of the present disclosure.
[0076] In the blockchain platform 100 according to the first modification of the above embodiment, the construction of a private channel is omitted. In the first modification shown in Figures 10 and 11, non-disclosure information is securely stored using a technology different from the blockchain BC. As an example, non-disclosure information of individual clients is stored in a database managed by each client.
[0077] The data deletion unit 52 shown in Fig. 10 sets an expired block BLe only in the A channel BCa out of the A channel BCa and the B channel BCb, and deletes the original data DM etc. linked to the expired block BLe. Also, the tampering check unit 33 shown in Fig. 11 performs a tampering check on the A channel blocks BLa after the specific block BLs, and on all the B channel blocks BLb.
[0078] As in the above-described first modification, the number of channels of the blockchain BC established in the blockchain platform 100 may be changed as appropriate. For example, multiple private channels of different BC nodes 50 that share data may be set in the blockchain platform 100. Furthermore, multiple public channels that correspond to channel A BCa in the above embodiment and allow deletion of the associated original data DM may be set.
[0079] In Modification 2 of the above embodiment, the original data DM is stored in the instance storage Si. That is, in Modification 2, the storage configuration corresponding to the object storage So is omitted. The original data DM is treated as deletion permission data DD in the instance storage Si. The original data DM is then stored in the Ach block BLa as a transaction of the A channel BCa. As in Modification 2, the configuration of the storage that stores the data to be stored DS may be changed as appropriate depending on the content of the data to be stored DS.
[0080] In the third modification of the above embodiment, the block number information BNi is not recorded. The tampering check unit 33 of the third modification grasps the states of the A channel BCa and the C channel BCc each time during the tampering check process, and determines the start position of the check process to be performed on each channel without relying on the block number information BNi.
[0081] Furthermore, among the data DS to be stored, the information (data) to be classified as deletion-permitted data DD and the information (data) to be classified as non-deletion-target data DN may be changed as appropriate depending on the purpose of use of the blockchain platform 100, etc.
[0082] In the above embodiment, each function provided by the BC node 50 can be provided by software and hardware that executes the software, software only, hardware only, or a combination of these. When such a function is provided by an electronic circuit as hardware, each function can also be provided by a digital circuit including a large number of logic circuits or an analog circuit.
[0083] The processor of the above embodiment may be configured to include at least one arithmetic core such as a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit). The processor may further include an FPGA (Field-Programmable Gate Array), an NPU (Neural Network Processing Unit), and an IP core with other dedicated functions. The processor is not limited to a chip configuration individually mounted on a printed circuit board. The processor may also be implemented in an ASIC (Application Specific Integrated Circuit), an SoC (System on Chip), an FPGA, or the like.
[0084] The form of the non-transitory tangible storage medium used as storage in the above embodiments and storing each program may be changed as appropriate. For example, the storage medium is not limited to a configuration provided on a circuit board, but may be provided in the form of a memory card or the like, inserted into a slot, and electrically connected to a computer bus. Furthermore, the storage medium may be an optical disk, hard disk drive, solid state drive, or the like used as a source from which programs are copied or distributed to a computer.
[0085] The controller and methods described herein may be implemented by a special-purpose computer comprising a processor programmed to perform one or more functions embodied in a computer program. Alternatively, the apparatus and methods described herein may be implemented by special-purpose hardware logic circuitry. Alternatively, the apparatus and methods described herein may be implemented by one or more special-purpose computers comprising a processor executing a computer program in combination with one or more hardware logic circuits. Furthermore, the computer program may be stored as instructions executed by a computer on a computer-readable non-transitory storage medium.
[0086] (Disclosure of Technical Ideas) This specification discloses multiple technical ideas described in the following multiple clauses. Some clauses may be described in a multiple dependent form, with the subsequent clause alternatively referring to the preceding clause. Furthermore, some clauses may be described in a multiple dependent form, with the subsequent clause referring to another multiple dependent clause. These multiple dependent clauses define multiple technical ideas.
[0087] (Technical Idea 1) An information processing method for storing data to be stored (DS) using blockchain (BC) technology, the information processing method including the following steps in processing executed by at least one processor (11): sorting the data to be stored into a plurality of data types including at least deletion-permitted data (DD) that permits deletion and non-deletion data (DN) that does not permit deletion (S102); storing the deletion-permitted data and the non-deletion data by linking them to different channels of the blockchain (S104, S105); recording block number information (BNi) related to the position of a processed block (BLe) from which the data to be stored linked to a block to be deleted among a plurality of blocks to be deleted (BLa) that constitute a deletion-permitted channel (BCa) that stores the deletion-permitted data (S114); and determining a start position of the check processing based on the block number information in a check processing that checks whether the channel to be deleted has been tampered with (S122). (Technical Idea 2) The information processing method according to Technical Idea 1, further comprising the steps of: storing original data (DM) related to the deletion permission data in a second storage (So) different from a first storage (Si) that stores the deletion permission data (S108), and deleting the original data linked to the processed block from the second storage (S113). (Technical Idea 3) The information processing method according to Technical Idea 2, wherein the deletion permission data includes a hash value generated from the original data, and the non-deletion data includes data generated in association with storing the original data in the blockchain. (Technical Idea 4) The information processing method according to any one of Technical Ideas 1 to 3, further comprising the steps of: storing disclosure restriction information, the disclosure of which is restricted for the deletion permission data, in association with a disclosure restriction channel (BCc) different from the deletion target channel (S106, S107).(Technical Idea 5) The information processing method described in Technical Idea 4 further includes the steps of: further recording the block number information related to the position of the processed block (BLe) from which the disclosure restriction information linked to the disclosure restriction block has been deleted among the multiple disclosure restriction blocks (BLc) that make up the disclosure restriction channel (S115); and determining the start position of the check process based on the block number information in the check process that confirms tampering with the disclosure restriction channel (S124). (Technical Idea 6) An information processing program for storing data to be stored (DS) using blockchain (BC) technology, the information processing program causing at least one processor (11) to execute processes including: sorting the data to be stored into a plurality of data types including at least deletion-permitted data that permits deletion and non-deletion data (DN) that does not permit deletion (S102); storing the deletion-permitted data and the non-deletion data by linking them to different channels of the blockchain (S104, S105); recording block number information (BNi) related to the position of a processed block (BLe) from which the data to be stored linked to a block to be deleted among a plurality of blocks to be deleted (BLa) that constitute a deletion-permitted channel (BCa) that stores the deletion-permitted data (S114); and determining a start position of the check process based on the block number information in a check process for checking whether the channel to be deleted has been tampered with (S122).
Claims
1. An information processing method for storing data to be stored (DS) using blockchain (BC) technology, the information processing method including the steps of: classifying the data to be stored into a plurality of data types including at least deletion permitted data (DD) that permits deletion and non-deletion data (DN) that does not permit deletion (S102); storing the data to be deleted and the data to be not deleted by linking them to different channels of the blockchain (S104, S105); recording block number information (BNi) related to the position of a processed block (BLe) from which the data to be stored linked to a block to be deleted among a plurality of blocks to be deleted (BLa) that constitute a channel to be deleted (BCa) that stores the data to be deleted (S114); and determining a start position of the check process based on the block number information in a check process for checking whether the channel to be deleted has been tampered with (S122).
2. The information processing method according to claim 1, further comprising the steps of: storing original data (DM) related to the deletion permission data in a second storage (So) different from the first storage (Si) that stores the deletion permission data (S108); and deleting the original data linked to the processed block from the second storage (S113).
3. The information processing method of claim 2, wherein the deletion permission data includes a hash value generated from the original data, and the non-deletion data includes data generated in association with storing the original data in the blockchain.
4. The information processing method according to claim 1, further comprising the step of storing disclosure restriction information in which the disclosure targets of the deletion-permitted data are restricted, in association with a disclosure restriction channel (BCc) different from the channel to be deleted (S106, S107).
5. The information processing method according to claim 4, further comprising the steps of: further recording (S115) the block number information related to the position of the processed block (BLe) from which the disclosure restriction information linked to the disclosure restriction block has been deleted among a plurality of disclosure restriction blocks (BLc) constituting the disclosure restriction channel; and determining (S124) the start position of the check process based on the block number information in the check process for checking for tampering with the disclosure restriction channel.
6. An information processing system that uses blockchain (BC) technology to store data to be stored (DS), comprising: a data storage unit (51) that classifies the data to be stored into a plurality of data types including at least deletion permitted data (DD) that permits deletion and non-deletion data (DN) that does not permit deletion, and stores the deletion permitted data and the non-deletion data by linking them to different channels of the blockchain; and a tampering check unit (33) that records block number information (BNi) related to the position of a processed block (BLe) from which the data to be stored linked to a block to be deleted has been deleted among a plurality of blocks to be deleted (BLa) that constitute a deletion target channel (BCa) that stores the deletion permitted data, and determines the start position of the check process based on the block number information in a check process to check whether the channel to be deleted has been tampered with.
7. A storage medium readable by a computer (10) having stored therein an information processing program for storing data to be stored (DS) using blockchain (BC) technology, the information processing program being configured to cause at least one processor (11) to execute processes including: classifying the data to be stored (DS) into a plurality of data types including at least data permitted for deletion that is permitted for deletion and data not permitted for deletion (DN) that is not permitted for deletion (S102); storing the data permitted for deletion and the data not permitted for deletion by linking them to different channels of the blockchain (S104, S105); recording block number information (BNi) relating to the position of a processed block (BLe) from which the data to be stored linked to a block to be deleted has been deleted among a plurality of blocks to be deleted (BLa) constituting a channel to be deleted (BCa) that stores the data permitted for deletion (S114); and determining a start position of the check process based on the block number information in a check process for checking whether the channel to be deleted has been tampered with (S122).
Citation Information
Patent Citations
Information processing apparatus, information processing method and program
JP2019211821A
Information deletion guarantee system using distributed ledger
JP2023506236A