Information processing method, information processing system, and information processing program
By sorting data into deletion and non-deletion channels and using block number information for tampering checks, the system ensures reliable data deletion and integrity verification, addressing the challenge of confirming data integrity post-deletion in blockchain systems.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- DENSO CORP
- Filing Date
- 2023-11-09
- Publication Date
- 2026-05-15
AI Technical Summary
Existing information processing systems using blockchain technology face challenges in confirming the integrity of data after deletion, as old data is uniformly deleted, making it difficult to verify if tampering has occurred.
The system sorts data into types permitted for deletion and not permitted, stores them in separate channels of the blockchain, records block number information for deletion channels, and determines the starting position for tampering checks based on this information, allowing verification even after deletion.
Enables reliable deletion of data while ensuring tampering checks can be performed, reducing storage costs and maintaining data integrity, thus stabilizing the blockchain network and lowering the economic hurdle for data storage.
Smart Images

Figure 0007859428000001 
Figure 0007859428000002 
Figure 0007859428000003
Abstract
Description
Technical Field
[0001] The disclosure according to this specification relates to a technique for storing data using a blockchain.
Background Art
[0002] In the information processing apparatus disclosed in Patent Document 1, a registration blockchain distributed ledger capable of performing transaction registration processing and a reference blockchain distributed ledger where transaction registration processing is not performed are stored separately. This information processing apparatus suppresses the enlargement of data stored using blockchain technology by deleting the reference blockchain distributed ledger.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] In the information processing apparatus of Patent Document 1, the registration blockchain distributed ledger becomes a reference blockchain distributed ledger over time and is then deleted. That is, old past data is uniformly deleted. Therefore, after deleting the past data, these tampering checks cannot be performed, and it may become difficult to confirm that there has been no tampering. As described above, there is a problem with the data deletion method disclosed in Patent Document 1.
[0005] The purpose of this disclosure is to provide an information processing method, an information processing system, and an information processing method that can appropriately delete data stored using blockchain technology.
Means for Solving the Problems
[0006] To achieve the above objective, one disclosed aspect is an information processing method for storing data to be stored (DS) using blockchain (BC) technology, which includes the steps of sorting the data to be stored into a plurality of data types, including at least data that is permitted to be deleted (DD) and data that is not permitted to be deleted (DN) (S102), storing the data permitted to be deleted and the data that is not permitted to be deleted, linked to different channels of the blockchain (S104, S105), recording block number information (BNi) related to the location of a processed block (BLe) from which the data to be stored linked to a target block has been deleted, among a plurality of target blocks (BLa) constituting a target channel (BCa) that stores the data permitted to be deleted (S114), and determining the starting position of the check process based on the block number information in a check process to confirm tampering with the target channel to be deleted (S122), which are performed by at least one processor (11).
[0007] Another disclosed embodiment is an information processing system that stores data to be stored (DS) using blockchain (BC) technology, comprising: a data storage unit (51) that sorts the data to be stored into a plurality of data types, including at least data that is permitted to be deleted (DD) and data that is not permitted to be deleted (DN), and stores the data permitted to be deleted and the data that is not permitted to be deleted, linked to different channels of the blockchain; and a tamper-proof check unit (33) that records block number information (BNi) related to the location of a processed block (BLe) from which the data to be stored linked to a target block has been deleted, among a plurality of target blocks (BLa) that constitute a target channel (BCa) that stores the data permitted to be deleted, and determines the starting position of the check process based on the block number information in a check process to confirm tampering with the target channel.
[0008] Another disclosed aspect is an information processing program that uses blockchain (BC) technology to store data to be stored (DS), which sorts the data to be stored into a plurality of data types, including at least data that is permitted to be deleted and data that is not permitted to be deleted (DN) (S102), stores the data permitted to be deleted and the data that is not permitted to be deleted, linked to different channels of the blockchain (S104, S105), records block number information (BNi) related to the location of a processed block (BLe) from which the data to be stored linked to a target block has been deleted, among a plurality of target blocks (BLa) constituting a target channel (BCa) that stores the data permitted to be deleted (S114), and determines the starting position of the check process based on the block number information in a check process to confirm tampering with the target channel to be deleted (S122), and causes at least one processor (11) to execute the following processes.
[0009] 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 deletion target channel that stores the data authorized for deletion. Therefore, by determining the starting position of the check process based on the block number information, tampering checks can be performed on the deletion target channel even after the data to be stored has been deleted, and it can be confirmed that it has not been tampered with. Thus, it becomes possible to appropriately delete data to be stored using blockchain technology.
[0010] Furthermore, the reference numbers in parentheses above and in the claims are merely examples of correspondences with specific configurations in the embodiments described later, and do not in any way limit the technical scope. In addition, combinations of claims not explicitly stated in the claims are also possible, provided that they do not cause any particular problems with the combination. [Brief explanation of the drawing]
[0011] [Figure 1] This block diagram shows the overall structure of a blockchain platform on which an information processing method according to one embodiment of this disclosure is implemented. [Figure 2] This diagram illustrates the process of registering data to be stored by the data registration unit. [Figure 3] This diagram illustrates the details of data storage using blockchain nodes. [Figure 4] This figure shows an example of how to sort data to be stored. [Figure 5] This diagram illustrates the process of deleting data to be stored by the data deletion unit. [Figure 6] This diagram illustrates the process of checking for tampering in stored data by the tampering detection unit. [Figure 7] This flowchart shows the details of the data registration process performed by the data registration unit. [Figure 8] This flowchart shows the details of the data deletion process performed by the data deletion unit. [Figure 9] This flowchart details the tamper-proofing process performed by the tamper-proofing unit. [Figure 10] This diagram illustrates the process of deleting data to be stored in Example 1. [Figure 11] This is a diagram illustrating the process of checking for tampering. [Modes for carrying out the invention]
[0012] The blockchain platform 100 according to one embodiment of this disclosure, shown in Figure 1, uses blockchain BC technology to enable the sharing of information among participating clients (e.g., companies). The blockchain platform 100 uses a general-purpose blockchain BC framework, such as Hyperledger Fabric (HLF, see Figure 3). The blockchain platform 100 makes it possible to construct a private blockchain network (hereinafter referred to as "channel") in which only specific participants can participate in the network and share data and transactions. This makes it possible to satisfy the privacy and confidentiality requirements of each participant.
[0013] The blockchain platform 100 comprises multiple blockchain nodes (hereinafter referred to as BC nodes) 50. Each BC node 50 is, for example, built by a blockchain server (virtual machine) on the cloud. The blockchain server is primarily composed of a control circuit 10. The control circuit 10 is equipped with a processor 11, RAM 12, storage 13, input / output interface 14, and a bus connecting these, and functions as a high-performance computer that performs computational processing at high speed.
[0014] The processor 11 is hardware for arithmetic processing coupled with the RAM 12. By accessing the RAM 12, the processor 11 performs various processes (instructions) related to data management and provision. The storage 13 stores an information processing program that realizes functions related to data management and provision. The information processing program is a program that causes the blockchain server (control circuit 10) to implement the information processing method disclosed herein.
[0015] The BC node 50 is a blockchain management system associated with the systems of individual clients. As an example, in a blockchain network for managing vehicle information, an original equipment manufacturer (OEM) that manufactures vehicles, dealers that sell vehicles, etc. become clients (User B and C in FIG. 1). One of the multiple BC nodes 50 is the BC node 60 (BC Node_B in FIG. 1) that cooperates with the user terminal 160 (User terminal B in FIG. 1) of the OEM's management system. Also, another one of the multiple BC nodes 50 is the BC node 80 (BC Node_C in FIG. 1) that cooperates with the user terminal 160 (User terminal C in FIG. 1) of the dealer's management system.
[0016] The BC node 60 includes a node database 70 (B_DB in FIG. 1). The node database 70 stores the data DS to be stored associated with User B and enables the data 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 the data DS to be stored associated with User C and enables the data DS to be shared with other BC nodes 50. The data DS to be stored is data that is stored and shared on the blockchain platform 100 using the technology of the blockchain BC. The data DS to be stored is collected at each user terminal and transmitted to the BC node 50 associated with each user terminal.
[0017] The BC node 50 receives, from the user terminal 160 of each user, requests such as a new registration request, an update request, a reference request, and a deletion request for the data DS to be stored. The BC node 50 includes 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 include a data registration unit 51, similar to other BC nodes 50.
[0018] As shown in FIG. 2, the data registration unit 51 receives a new registration request for the storage target data DS from the user terminal 160 or the like. Based on the registration request, the data registration unit 51 executes a registration process for the storage target data DS (see FIG. 7). The data registration unit 51 prepares the original data DM, metadata, and hash value from the storage target data DS.
[0019] The original data DM is the main body part of the storage target data DS and is the raw data of the storage target data DS. Specifically, large-sized multimedia data such as document data in PDF format, image data in JPEG format, and music data and video data in MPEG format are used as the original data DM.
[0020] The metadata is data that provides information related to the storage target data DS (original data DM). The metadata is data related to the storage of the storage target data DS in the blockchain BC. Specifically, it is generated as the registration (connection), search, and other operations of the storage target data DS, as well as the registration and utilization processes such as data and user authentication are carried out. In the blockchain network for managing vehicle information described above, the related data of the blockchain BC excluding pure vehicle information becomes the metadata.
[0021] The metadata is closely related to the structure of the blockchain BC. Deleting the metadata may affect the blockchain BC. Specifically, summary data indicating the content, characteristics, structure, relationships, etc. of the storage target data DS, operation data related to this summary data, and authentication information of data and users are prepared as metadata. The summary data is, 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 is, for example, the content recording the implementation history of registration operations, ID assignment, data authentication, data search, etc. to the blockchain BC. The authentication information is information related to the public key and the assigned ID. The metadata may be generated by the user terminal 160 or may be generated by the data registration unit 51 using the storage target data DS provided from the user terminal 160.
[0022] The hash value is generated using the original data DM. The hash value is data that maintains a predetermined number of bits (e.g., 256 bits) and is a unique value that reflects the content 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 be used to generate the hash value.
[0023] The data registration unit 51 sorts the data to be stored DS into multiple data types, including at least data permitted for deletion DD and data not subject to deletion DN. Data permitted for deletion DD is data that is permitted to be deleted based on the expiration of a predetermined period or a specific deletion trigger. Data permitted for deletion includes the hash value described above. Data not subject to deletion DN is data that is not subject to deletion and is effectively stored permanently. Data not subject to deletion DN includes the metadata described above.
[0024] The data registration unit 51 stores the original data DM, hash values, and 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 object storage So. On the other hand, metadata and hash values, which have a small data size and which should be shared among participants without tampering, are stored in instance storage Si.
[0025] The object storage So shown in Figures 2 and 3 is storage that stores files and data as objects. As an example, object storage So has a search index database So1 and a search target database So2. Search index database So1 stores the data necessary to search for information stored in search target database So2. That is, information associated with objects (original data DM) stored in search target database So2 is stored in search index database So1. For example, RDS (Relational Database Service) can be used for 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 search target database So2. S3 buckets are provided on AWS, similar to RDS, and can permanently store large amounts of data. Data stored in object storage So is not shared with other BC nodes 50. Note that other cloud storage, such as Azure Blob Storage from Azure (registered trademark), may be used instead of RDS and S3 buckets.
[0026] Instance storage Si is the local storage for the blockchain server. Alternatively, block storage, which stores blockchain server data in block units, can be used in the cloud instead of instance storage Si. In this case, AWS EBS (Elastic Block Store) and Azure Managed Disks can be used as instance storage Si. Data stored in instance storage Si can be shared with other BC nodes 50.
[0027] The data registration unit 51 stores the deletion permission data DD, which includes hash values, and the non-deletion target data DN, which includes metadata, in separate channels of the blockchain BC. For convenience, the blockchain BC network that stores the deletion permission data DD is designated as the first blockchain channel (hereinafter referred to as Channel A BCa) dedicated to the deletion permission data DD. The blockchain BC network that stores the non-deletion target data DN is designated as the second blockchain channel (hereinafter referred to as Channel B BCb) dedicated to the non-deletion target data DN. Both Channel A BCa and Channel B BCb are public channels that share data with other BC nodes 50.
[0028] Each block BL (hereinafter referred to as Ach block BLa) that constitutes the A channel BCa stores delete permission data DD as a transaction. The delete permission data DD is registered as block data of the A channel BCa and is also stored in a ledger DC (see Figure 3) located in a distributed database such as CouchDB. In the A channel BCa, the hash value generated from one Ach block BLa is stored in the next Ach block BLa. Furthermore, the Ach block BLa records timestamp data indicating the date and time the delete permission data DD was added.
[0029] Each block BL (hereinafter referred to as Bch block BLb) that constitutes a B channel BCb stores the non-deletion data DN as a transaction. The non-deletion data DN is registered as block data of the B channel BCb and is also stored in the ledger DC. In the B channel BCb, the hash value generated from one Bch block BLb is stored in the next Bch block BLb. Furthermore, the Bch block BLb also records timestamp data indicating the date and time the non-deletion data DN was added.
[0030] Timestamp data may simply be information indicating the date and time, or it may be a hash value generated by a timestamp server or the like. The timestamp server takes news articles distributed by a news distribution server or the like as input information, and generates a hash value of a predetermined number of bits (for example, 256 bits) as timestamp data by inputting this input information into a hash function.
[0031] In this blockchain network that manages vehicle information, approval information, asset information, access information, and other stored information are included in the stored data DS along with the vehicle information (see Figure 4). The data registration unit 51 uses the hash value based on the vehicle information as the deletion permission data DD. The hash value based on the vehicle information is then stored in channel A BCa. Channel A BCa becomes the vehicle channel that stores vehicle information. As an example, the vehicle information that becomes the original data DM includes the chassis number, year of manufacture, grade, vehicle name, mileage, collision detection result, registration inspection result, registration photo, and appraisal price. Furthermore, the data registration unit 51 uses the approval information, asset information, access information, and other stored information as the deletion non-target data DN. This information is then stored in channel B BCb.
[0032] 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. Unlike public channels such as A channel BCa and B channel BCb, C channel BCc and D channel BCd are private channels. C channel BCc and D channel BCd are channels for storing non-disclosure information that is not 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 permission data DD among the non-disclosure information. D channel BCd is a private channel corresponding to B channel BCb, and stores deletion non-target data DN among the non-disclosure information.
[0033] Non-disclosure information stored in C channel BCC and D channel BCD may be raw data such as trade secrets and key information, or hash values generated from trade secrets and key information. The raw data of non-disclosure information is stored in object storage So as source data DM. Non-disclosure information is disclosure restriction information whose disclosure is limited to deletion permission data DD and deletion non-target data DN. Non-disclosure information is stored as a transaction along with timestamp data, etc., in each block BL that constitutes C channel BCC (hereinafter, Cch block BLc) or each block BL that constitutes D channel BCD (hereinafter, Dch block BLd). Non-disclosure information is registered as block data in C channel BCC and D channel BCD, and is also stored in Ledger DC (see Figure 3).
[0034] Furthermore, channel C BCc may be a private channel used for data sharing within a specific group. In this case, only some of the BC nodes 50, specifically those within a pre-configured sharing group, will be able to access channel C BCc and channel D BCd. Additionally, if the non-disclosed information does not include any data DNs that are not subject to deletion, or if the non-disclosed information contains only a small number of data DNs that are not subject to deletion, channel D BCd may not be provided.
[0035] As shown in Figures 3 and 5, the data deletion unit 52 performs a deletion process (see Figure 8) to delete some of the data to be stored DS. The data deletion unit 52 may automatically delete data to be stored DS that have been stored for a certain period of time (for example, 7 years), or it may delete old data to be stored DS based on a deletion request received from the user terminal 160 or the BC node 30 described later.
[0036] The data deletion unit 52 deletes data DS stored before a specific time based on predetermined period conditions or conditions specified in the deletion request. When deleting data DS, the data deletion unit 52 only deletes data stored in association with A channel BCa and C channel BCc. In other words, the data deletion unit 52 does not delete data stored in association with B channel BCb.
[0037] More specifically, the data deletion unit 52 determines the range of block BLs to be processed in A channel BCa and C channel BCc based on the timestamp data stored in each A channel block BLa and each C channel block BLc. Each block BLa and BLc targeted for processing becomes an expired block BLe (see dots in Figure 5). The data deletion unit 52 targets the data group associated with the blocks BLa and BLc set as targets for processing 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. Furthermore, if the timestamp data of the data to be stored DS is stored in object storage So, the data deletion unit 52 may use the timestamp data of object storage So to determine the data group to be deleted.
[0038] The data deletion unit 52 deletes the deletion permission data DD, which corresponds to a copy of the block data contained in the Ach block BLa (expired block BLe) to be processed, from the ledger DC. In addition, the data deletion unit 52 deletes the storage target data DS associated with the Ach block BLa to be processed, which is the original data DM used to generate the deletion permission data DD stored in the Ach block BLa to be processed, from the object storage So.
[0039] Similarly, the data deletion unit 52 deletes non-disclosure information from the ledger DC that corresponds to a copy of the block data contained in the Cch block BLc (expired block BLe) to be processed. In addition, the data deletion unit 52 deletes from the object storage So the original data DM associated with the Cch block BLc to be processed, which was used to generate the non-disclosure information.
[0040] As explained above, source data DMs, etc., associated with A channel BCa or C channel BCC are deleted when their retention period expires. This makes it possible to delete large multimedia data such as document data, image data, music data, and video data from the search index database So1 and the search target database So2 of the object storage So. In contrast, data related to B channel BCb, including not only the block data contained in Bch block BLb, but also the non-deletion target data DNs in the ledger DC and their source data DMs, are retained without being deleted even after the retention period has expired.
[0041] The data deletion unit 52 identifies block number information BNi related to the location of the Ach block BLa from which the deletion permission data DD and its source data DM in the ledger DC have been deleted, among the multiple Ach block BLa constituting the A channel BCa. Similarly, the data deletion unit 52 identifies block number information BNi related to the location of the Cch block BLc from which the non-disclosure information and its source data DM in the ledger DC have been deleted, among the multiple Cch block BLc constituting the C channel BCc. The data deletion unit 52 designates each block BLa, BLc from which the source data DM has been deleted as an expired block BLe (see dots in Figure 5). The block number information BNi indicates the boundary position between the range of expired blocks BLe and the range of blocks BL from which the source data DM has not been deleted, in both the A channel BCa and the C channel BCc.
[0042] As an example, the data deletion unit 52 designates the oldest block BL among a large number of Ach blocks BLa or Cch blocks BLc that have not expired as specific block BLs (see Figure 5). As another example, the data deletion unit 52 designates the newest block BL among the expired block BLe as specific block BLs. The data deletion unit 52 obtains a unique block number indicating the specific block BLs as block number information BNi. The data deletion unit 52 provides the obtained 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.
[0043] BC node 30 is a BC node 50 that manages access to the blockchain platform 100 by an external system or an external user (Figure 1 User A) via a user terminal 110 (Figure 1 User Terminal A). BC node 30 performs authentication and authorization for connections to the blockchain platform 100 by external systems or user terminals 110. BC node 30 obtains requests from external systems and user terminals 110 to access stored data DS stored by blockchain BC. Based on the access request, BC node 30 generates data for provision from the stored data DS and provides the generated data for provision to the requesting external system or user terminal 110.
[0044] BC node 30 includes functional units such as a node database 40 and a tamper-proofing unit 33. The node database 40 is a data storage area that stores information related to BC node 30. At least a portion of the data stored in node database 40 is shared with node databases 70, 90, etc.
[0045] As shown in Figure 5, the tamper-proofing unit 33 acquires block number information BNi when a portion of the data to be stored DS is deleted by the data deletion unit 52. The tamper-proofing unit 33 may acquire block number information BNi directly from the data deletion unit 52 that performed the deletion process, or it may acquire block number information BNi through information sharing by the blockchain BC. The tamper-proofing unit 33 records the acquired block number information BNi in the node database 40. As an example, the tamper-proofing unit 33 registers block number information BNi in a private channel of the node database 40. When the data deletion unit 52 newly performs a deletion process for original data DM etc. associated with Ach block BLa, the tamper-proofing unit 33 updates block number information BNi associated with A channel BCa. Similarly, when the data deletion unit 52 newly performs a deletion process for original data DM etc. associated with Cch block BLc, the tamper-proofing unit 33 updates block number information BNi associated with C channel BCc.
[0046] As shown in Figure 6, the tamper-proofing unit 33 performs a tamper-proofing process (see Figure 9) to confirm whether the stored data DS has been tampered with, either at a predetermined timing or based on a check request from an external system or user terminal 110. Specifically, the tamper-proofing unit 33 repeatedly recalculates the hash value of each block BL using the data within each block BL (transactions and the hash value of the previous block) and the hash function used when generating the blockchain BC. The tamper-proofing unit 33 determines whether or not tampering has occurred by verifying whether the hash values of each block BL are correctly concatenated.
[0047] In the tampering check unit 33, in the check process to confirm tampering with channel B BCb, it starts recalculating the hash value from the old Bch block BLb located at the beginning of channel B BCb. Meanwhile, in the check process to confirm tampering with channel A BCa and channel C BCc, the tampering check unit 33 determines the starting position (starting block) of the check process based on the block number information BNi.
[0048] As described above, if the block number information BNi indicates the block number of the oldest valid blocks BLa, BLc, the tampering check unit 33 sets the specific block BLs indicated by the block number information BNi as the starting block for the check process. Also, if the block number information BNi indicates the block number of the newest expired block BLe, the tampering check unit 33 sets the block BLa, BLc following the specific block BLs indicated by the block number information BNi as the starting block for the check process. The tampering check unit 33 then performs a hash value recalculation from the determined starting block. In other words, the expired block BLe is excluded from the check process to verify whether or not it has been tampered with.
[0049] Furthermore, the tampering check unit 33 is also provided in BC nodes 50 other than BC node 30. These tampering check units 33 are also capable of performing processing for tampering checks. Similarly, BC node 30 may have the function of a data deletion unit 52 and be capable of performing data deletion processing.
[0050] Next, the details of the data registration process, data deletion process, and tampering check process described so far will be explained based on Figures 7 to 9, with reference to Figures 1 to 6.
[0051] The data registration process shown in Figure 7 is mainly carried out by the data registration unit 51 (see Figure 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 data permitted for deletion DD and data not subject to deletion DN. If the acquired data to be stored DS contains non-disclosure information, the data registration unit 51 sorts this non-disclosure information as a data type different from the data permitted for deletion DD and data not subject to deletion DN in S102. Furthermore, in S103, the data registration unit 51 acquires timestamp data indicating the acquisition timing or storage timing of the data to be stored DS.
[0052] In S104 and S105, the data permitted for deletion DD and the data not subject to deletion 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 data permitted for deletion DD, to channel BCa of A. Furthermore, in S105, the data registration unit 51 adds a new Bch block BLb, which stores the data not subject to deletion DN, to channel BCb of B.
[0053] 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, which will store the non-disclosure information, to the C channel BCc. Furthermore, in S107, the data registration unit 51 adds a new Dch block BLd, which will store the non-disclosure information, to the D channel BCd. Note that if the data to be stored DS does not contain non-disclosure information, the processing in S106 and S107 is omitted. In addition, the data registration process to add the non-disclosure information to the C channel BCc and D channel BCd may be executed as a separate process from the data registration process to add the deletion permission data DD and the deletion non-target data DN to the public channel.
[0054] In steps S104 to S107 described above, the timestamp data acquired in S103 is recorded in each block BL to be added. Then, in S108, the data registration unit 51 saves the original data DM associated with the deletion permission data DD, the data not subject to deletion DN, and the non-disclosure information, etc., to the object storage So. Note that the order in which steps S104 to S108 are performed may be changed as appropriate.
[0055] The data deletion process shown in Figure 8 is primarily carried out by the data deletion unit 52 (see Figure 5). In S111, the data deletion unit 52 identifies the data to be deleted, which is to be stored DS. For example, when performing periodic data deletion after a predetermined period has elapsed, the data deletion unit 52 refers to the timestamp data recorded in each Ach block BLa and identifies the Ach block BLa corresponding to the deletion period. Similarly, the data deletion unit 52 refers to the timestamp data recorded in each Cch block BLc and identifies the Cch block BLc corresponding to the deletion period. When performing data deletion based on a specific deletion trigger, the data deletion unit 52 also refers to the timestamp data of each Ach block BLa and each Cch block BLc and identifies the Ach block BLa and Cch block BLc corresponding to the specified deletion period.
[0056] In S111, the data deletion unit 52 sets Ach block BLa and Cch block BLa, which fall within the deletion period, as expired block BLa in S112. In S113, the data deletion unit 52 deletes the data to be stored DS associated with the expired block BLa, i.e., the data permitted for deletion DD, non-disclosure information, and original data DM. In S112 and S113 described above, of the A channel BCa which stores the data permitted for deletion DD and the B channel BCb which stores the data not subject to deletion DN, the expired block BLa is set only on A channel BCa and the deletion of the original data DM is applied. Note that the order in which S112 and S113 are performed may be changed as appropriate. Specifically, after the deletion of the original data DM etc. that fall within the deletion period, the corresponding block BL may be set as expired block BLa.
[0057] In S114 and S115, the tamper-proofing unit 33 records block number information BNi related to the location of the expired block BLe set in the current operation, and which indicates the starting position (starting block) of the tamper-proofing check. If an expired block BLe is newly set in channel BCa, the tamper-proofing unit 33 updates the block number information BNi associated with channel BCa in S114. Similarly, if an expired block BLe is newly set in channel BCc, the tamper-proofing unit 33 updates the block number information BNi associated with channel BCc in S115.
[0058] The tamper-proofing process shown in Figure 9 is primarily carried out by the tamper-proofing unit 33 (see Figure 6). In S121, the tamper-proofing unit 33 checks for tampering in all Bch blocks BLb of channel B BCb and all Dch blocks BLd of channel D BCd. Specifically, the tamper-proofing unit 33 calculates a hash value for tamper-proofing using the block data stored in each block BL, starting from the first Bch block BLb of channel B BCb and the first Dch block BLd of channel D BCd. The tamper-proofing unit 33 compares the hash value recorded in each block BL with the hash value for tamper-proofing, and if they match, it determines that there is no possibility of tampering.
[0059] In S122, the tamper-proofing unit 33 refers to the block number information BNi associated with the A channel BCa and determines the starting block number (starting position) to begin the tamper-proofing check of the A channel BCa. In S123, the tamper-proofing unit 33 checks whether the A channel BCa blocks BLa from the starting block (specific block BLs) onward have been tampered with. That is, the tamper-proofing unit 33 excludes expired blocks BLe from the tamper-proofing check. The tamper-proofing unit 33 then calculates a hash value for tamper-proofing using the block data stored in each block BL from the specific block BLs onward. The tamper-proofing unit 33 compares the hash value recorded in each block BL with the hash value for tamper-proofing, and if they match, it determines that there is no possibility of tampering.
[0060] In S123, the tamper-proofing unit 33 refers to the block number information BNi associated with the C channel BCc and determines the starting block number (starting position) to begin the tamper-proofing check of the C channel BCc. In S124, the tamper-proofing unit 33 checks whether the Cch blocks BLc from a specific block BLs onward in the C channel BCc have been tampered with. As a result, expired blocks BLe in the C channel BCc are excluded from the tamper-proofing check.
[0061] Furthermore, the order in which the checks for channel B BCb by S121, channel A BCa by S122 and S123, and channel C BCc by S124 and S125 are performed may be changed as appropriate. In addition, the check for channel C BCc, which is a private chain, may be performed as a separate process from the checks for channel A BCa and channel B BCb, which are public chains.
[0062] In S126, the tampering check unit 33 determines whether an anomaly has been detected in the concatenation of hash values in each of the A channel BCa, B channel BCb, C channel BCc, and D channel BCd. If an anomaly is detected in the concatenation of hash values in at least one of the 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 the tampering check process is started based on a request from the BC node 30 or user terminal 160, etc., the tampering check unit 33 sends an anomaly detection notification indicating the possibility of tampering to these check requesters.
[0063] On the other hand, if no abnormality is detected in the concatenation of hash values in all of the 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 send 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.
[0064] (Summary of implementations) In the embodiment described above, when the data to be stored DS is deleted, block number information BNi related to the location of the expired block BLe is recorded in the Ach block BLa that stores the data authorized for deletion DD. Therefore, by determining the starting position of the check process 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 has been deleted, and it can be confirmed that it has not been tampered with. Thus, it becomes possible to appropriately delete data stored using blockchain BC technology.
[0065] To elaborate, by creating a new A channel BCa dedicated to deletion permission data DD and managing it separately from data not subject to deletion DN, it is possible to reduce the amount of data to be stored while simultaneously ensuring reliability through tamper checks. In other words, even if the amount of data stored by the 50 BC nodes participating in blockchain BC increases in proportion to the total number of transactions processed by blockchain BC, it will be possible to reduce the amount of data by sequentially performing data deletion processes. Therefore, the situation in which the cost required for data storage becomes enormous can be avoided, and the economic hurdle for data storage using blockchain BC can be lowered. As a result, the hurdle for setting up 50 BC nodes is also lowered, and the situation in which consensus formation of blockchain BC becomes unstable due to a decrease in the number of nodes can also be avoided.
[0066] In addition, since block number information BNi indicating the location of expired blocks BLe is recorded, it becomes possible to start the tamper-check process for A channel BCa from the appropriate location. Therefore, situations in which data deletion makes it difficult to perform the tamper-check process properly can be avoided. Furthermore, the tamper-check process can be applied without omission to the range of Ach blocks BLa in A channel BCa where the presence or absence of tampering can be determined.
[0067] Furthermore, among the stored data DS, only the data DD authorized for deletion and associated with channel A BCa will be deleted, while the data DN not subject to deletion and associated with channel B BCb will not be deleted. As a result, the stored data DS associated with channel B BCb will continue to be stored indefinitely. Therefore, even after deleting some of the stored data DS, it is possible to confirm that the deleted stored data DS has not been tampered with by performing a tamper check using the blockchain BC of channel B BCb.
[0068] Furthermore, in this embodiment, the original data DM associated with the deletion permission data DD is stored in object storage So, which is different from the instance storage Si where the deletion permission data DD is stored. Then, the original data DM associated with the expired block BLe is deleted from object storage So. In this way, by appropriately deleting the original data DM, which has a large data size, it becomes possible to effectively reduce the amount of data that is accumulated.
[0069] In addition, the deletion permission data DD in this embodiment includes a hash value generated from the original data DM. On the other hand, the non-deletion data DN includes metadata related to the original data DM. As a result, the metadata is permanently stored in a state protected from tampering.
[0070] Furthermore, in this embodiment, non-disclosure information whose disclosure is restricted to the deletion permission data DD is stored linked to a C channel BCc that is 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.
[0071] Furthermore, in this embodiment, block number information BNi is recorded, which is related to the location of the expired block BLe from which non-disclosure information has been deleted, among the multiple Cch blocks BLc that constitute the C channel BCc. Then, in the check process to confirm tampering with the Cch block BLc, the starting position of the check process is determined based on the block number information BNi. As a result, it becomes possible to delete non-disclosure information stored by the C channel BCc, similar to the original data DM of the deletion permission data DD. As a result, it becomes possible to effectively reduce the amount of data to be accumulated.
[0072] In this embodiment, object storage So is provided separately from instance storage Si, which enables information sharing between BC nodes 50. The original data DM is stored in object storage So, separately from the hash value and metadata. With this storage configuration, the hash value and metadata that need to be shared, as well as the original data DM, which has a large data size, can be stored appropriately.
[0073] 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." Furthermore, 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-deletion data." In addition, the instance storage Si corresponds to the "first storage," the object storage So corresponds to the "second storage," and the blockchain platform 100 corresponds to the "information processing system."
[0074] (Other embodiments) Although one embodiment of the present disclosure has been described above, the present disclosure is not to be construed as being limited to the above embodiment, and can be applied to various embodiments and combinations without departing from the gist of the present disclosure.
[0075] In the blockchain platform 100 according to Modification 1 of the above embodiment, the construction of a private channel is omitted. In Modification 1 shown in Figures 10 and 11, non-disclosed information is securely stored using a technology different from that of the blockchain BC. As an example, the non-disclosed information of individual clients is stored in a database managed by each client.
[0076] The data deletion unit 52 shown in Figure 10 sets an expired block BLe only in channel BCa, out of channel A and channel BB, and deletes the original data DM etc. associated with the expired block BLe. In addition, the tampering check unit 33 shown in Figure 11 performs tampering checks on Ach blocks BLe from a specific block BLs onward, and tampering checks on all Bch blocks BLb.
[0077] As shown in Modification Example 1 above, the number of channels in the blockchain BC built on the blockchain platform 100 may be changed as appropriate. For example, multiple different private channels of BC nodes 50 that share data may be set up on the blockchain platform 100. Furthermore, multiple public channels corresponding to channel A BCa in the above embodiment, which allow the deletion of the associated source data DM, may be set up.
[0078] In Modification 2 of the above embodiment, the original data DM is stored in instance storage Si. That is, in Modification 2, the storage configuration corresponding to object storage So is omitted. The original data DM is treated as delete-permitted data DD in instance storage Si. The original data DM is then stored in Ach block BLa as a transaction of 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.
[0079] In the modified example 3 of the above embodiment, the block number information BNi is not recorded. In the tampering check unit 33 of modified example 3, the tampering check process grasps the status of channel A BCa and channel C BC each time and determines the starting position of the check process to be performed for each channel without relying on the block number information BNi.
[0080] Furthermore, among the data to be stored DS, the information (data) to be classified as data permitted for deletion DD and the information (data) to be classified as data not subject to deletion DN may be changed as appropriate depending on the purpose of use of the blockchain platform 100.
[0081] In the above embodiment, each function provided by the BC node 50 can also be provided by software and the hardware that executes it, software only, hardware only, or a combination thereof. When such functions are provided by electronic circuits as hardware, each function can also be provided by digital circuits including a large number of logic circuits, or by analog circuits.
[0082] The processor in the above embodiment may include at least one processing 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 other IP cores with dedicated functions. Furthermore, the processor is not limited to a chip configuration individually mounted on a printed circuit board. Configurations mounted on an ASIC (Application Specific Integrated Circuit), SoC (System on Chip), FPGA, etc., may also correspond to a processor.
[0083] The form of the non-transitory tangible storage medium used as storage in the above embodiment to store 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 the computer's bus. Furthermore, the storage medium may be an optical disc, hard disk drive, solid-state drive, etc., used as the source or distribution source for copying programs to the computer.
[0084] The control unit and method described herein may be implemented by a dedicated computer comprising a processor programmed to perform one or more functions embodied by a computer program. Alternatively, the apparatus and method described herein may be implemented by a dedicated hardware logic circuit. Alternatively, the apparatus and method described herein may be implemented by one or more dedicated computers comprising a combination of a processor that executes a computer program and one or more hardware logic circuits. Furthermore, the computer program may be stored as instructions executed by the computer on a computer-readable non-transitional tangible recording medium.
[0085] (Disclosure of technical ideas) This specification discloses several technical concepts, as listed in the following paragraphs. Some paragraphs are written in a multiple dependent form, where subsequent paragraphs optionally refer to preceding paragraphs. Furthermore, some paragraphs are written in a multiple dependent form, referring to other multiple dependent forms. These paragraphs written in multiple dependent forms define several technical concepts.
[0086] (Technical thought 1) An information processing method for storing data to be stored (DS) using blockchain (BC) technology, The aforementioned data to be stored is sorted into multiple data types, which include at least data that can be deleted (DD) and data that cannot be deleted (DN) (S102), The data for which deletion is permitted and the data for which deletion is not permitted are stored linked to different channels of the blockchain (S104, S105), Among the multiple blocks to be deleted (BLa) that constitute the deletion target channel (BCa) that stores the deletion permission data, block number information (BNi) related to the location of the processed block (BLe) from which the storage target data associated with the deletion target block has been deleted is recorded (S114). In the check process to confirm that the channel to be deleted has been tampered with, the starting position of the check process is determined based on the block number information (S122). An information processing method that includes the following step in a process executed by at least one processor (11). (Technical thought 2) The original data (DM) related to the deletion permission data is stored in a second storage (So) different from the first storage (Si) that stores the deletion permission data (S108). The information processing method according to Technical Concept 1 further includes the step of deleting the original data associated with the processed block from the second storage (S113). (Technical Thought 3) The deletion permission data includes a hash value generated from the original data, The information processing method according to technical idea 2, which includes data generated in connection with the storage of the original data on the blockchain, as the non-deleted data. (Technical Thought 4) Disclosure restriction information, which restricts the scope of disclosure for the aforementioned deletion permission data, is stored in association with a disclosure restriction channel (BCc) different from the deletion target channel (S106, S107). A technical idea that includes the following steps, and is described in one of the three technical concepts: (Technical Thought 5) The block number information related to the location of the processed block (BLe) from which the disclosure restriction information associated with the disclosure restriction block has been deleted, among the multiple disclosure restriction blocks (BLc) constituting the disclosure restriction channel, is further recorded (S115). In the check process for verifying tampering with the disclosure restriction channel, the starting position of the check process is determined based on the block number information (S124). The information processing method described in Technical Idea 4 further includes the following step. (Technical Thought 6) A storage medium that is readable by a computer (10) and stores an information processing program that stores data to be stored (DS) using blockchain (BC) technology, The aforementioned information processing program is The data to be stored is sorted into several data types, which include at least data that is permitted to be deleted and data that is not permitted to be deleted (DN) (S102), The data for which deletion is permitted and the data for which deletion is not permitted are stored linked to different channels of the blockchain (S104, S105), Among the multiple blocks to be deleted (BLa) that constitute the deletion target channel (BCa) that stores the deletion permission data, block number information (BNi) related to the location of the processed block (BLe) from which the storage target data associated with the deletion target block has been deleted is recorded (S114). In the check process to confirm that the channel to be deleted has been tampered with, the starting position of the check process is determined based on the block number information (S122). A storage medium configured to cause at least one processor (11) to perform a process that includes the following. [Explanation of Symbols]
[0087] 11 Processor, 33 Tamper-evident check unit, 51 Data registration unit (data storage unit), 100 Blockchain platform (information processing system), BC Blockchain, BCa A channel (channel to be deleted), BCc C channel (disclosure restricted channel), BLa Ach block (block to be deleted), BLc Cch block (disclosure restricted block), BLe Expired block (processed block), BNi Block number information, DD Deletion permission data, DM Original data, DN Non-deletion data (non-deletion data), DS Data to be stored, Si Instance storage (first storage), So Object storage (second storage)
Claims
1. An information processing method for storing data to be stored (DS) using blockchain (BC) technology, The data to be stored is sorted into multiple data types, which include at least data that is permitted to be deleted (DD) and data that is not permitted to be deleted (DN) (S102). The data to be deleted and the data not to be deleted are stored linked to different channels of the blockchain (S104, S105), Among the multiple deletion target blocks (BLa) that constitute the deletion target channel (BCa) that stores the deletion permission data, block number information (BNi) related to the location of the processed block (BLE) from which the storage target data associated with the deletion target block has been deleted is recorded (S114). In the check process to confirm that the channel to be deleted has been tampered with, the starting position of the check process is determined based on the block number information (S122). An information processing method that includes the following step in a process executed by at least one processor (11).
2. The original data (DM) related to the deletion permission data is stored in a second storage (So) different from the first storage (Si) that stores the deletion permission data (S108). The original data associated with the processed block is deleted from the second storage (S113). The information processing method according to claim 1, further comprising the step of...
3. The deletion permission data includes a hash value generated from the original data, The information processing method according to claim 2, wherein the non-deleted data includes data generated in connection with the storage of the original data on the blockchain.
4. Disclosure restriction information, which restricts the scope of disclosure for the aforementioned deletion permission data, is stored in association with a disclosure restriction channel (BCc) different from the deletion target channel (S106, S107). The information processing method according to claim 1, further comprising the step of...
5. Among the multiple disclosure restriction blocks (BLc) constituting the disclosure restriction channel, the block number information related to the location of the processed block (BLE) from which the disclosure restriction information associated with the disclosure restriction block has been deleted is further recorded (S115). In the check process that verifies tampering with the disclosure restriction channel, the starting position of the check process is determined based on the block number information (S124). The information processing method according to claim 4, further comprising the step of...
6. An information processing system that stores data to be stored (DS) using blockchain (BC) technology, A data storage unit (51) sorts the data to be stored into multiple data types, including at least data that is permitted to be deleted (DD) and data that is not permitted to be deleted (DN), and stores the data permitted to be deleted and the data that is not permitted to be deleted linked to different channels of the blockchain. Among the multiple blocks to be deleted (BLa) that constitute the deletion target channel (BCa) that stores the deletion permission data, block number information (BNi) related to the position of the processed block (BLE) from which the storage target data associated with the deletion target block has been deleted is recorded, and in a check process to confirm tampering with the deletion target channel, a tampering check unit (33) determines the starting position of the check process based on the block number information, An information processing system equipped with the following features.
7. An information processing program that stores data to be stored (DS) using blockchain (BC) technology, The data to be stored is sorted into multiple data types, which include at least data that is permitted to be deleted and data that is not permitted to be deleted (DN) (S102), The data to be deleted and the data not to be deleted are stored linked to different channels of the blockchain (S104, S105), Among the multiple deletion target blocks (BLa) that constitute the deletion target channel (BCa) that stores the deletion permission data, block number information (BNi) related to the location of the processed block (BLE) from which the storage target data associated with the deletion target block has been deleted is recorded (S114). In the check process to confirm that the channel to be deleted has been tampered with, the starting position of the check process is determined based on the block number information (S122). An information processing program that causes at least one processor (11) to perform a process that includes the following.