Blockchain-based data storage system and method
The data storage system addresses the challenge of storing large data by dividing and encrypting it with a private key, verifying with a public key, and invalidating the key post-verification, ensuring data integrity and preventing unauthorized alterations.
Patent Information
- Application Number
- JP2021143574
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-09-02
- Publication Date
- 2026-02-12
- Estimated Expiration
- 2041-09-02
AI Technical Summary
Conventional blockchain mechanisms are inadequate for storing large data such as images and videos, and adding unrelated data can corrupt the original data, leading to loss of value.
A data storage system that divides large data into segments, encrypts them using a private key, verifies with a public key, and invalidates the private key after verification to prevent unauthorized data addition, ensuring data integrity through hash values and block linking.
Prevents corruption of large data by unauthorized additions, preserving the integrity and value of original data like images and videos.
Smart Images

Figure 0007813022000001 
Figure 0007813022000002 
Figure 0007813022000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a data storage system using blockchain, and more specifically to a data storage system that can store large amounts of data such as images and videos without tampering. [Background technology]
[0002] Generally, when using blockchain to store transaction history for Bitcoin and other cryptocurrencies, the process is as follows:
[0003] First, when transaction data for trading Bitcoin is generated, the transactor encrypts the transaction data using a private key, and after it is verified by a verifier using a public key, it is made public online. Then, when the verified transaction data reaches a certain volume on the system, a specific node generates a block that compiles the transaction data. When this block is generated, it includes a hash key generated from the block generated immediately before, preventing tampering with the data in the previous block.
[0004] However, this type of blockchain mechanism is designed to handle small data transactions such as Bitcoin transaction history, and therefore cannot handle large amounts of data such as images or videos. Specifically, conventional Bitcoin transaction data can only store a few dozen bytes of data, so if the data to be stored as transaction data exceeds this capacity, the transaction data cannot be generated.
[0005] In response to this, the following patent document discloses a method for storing large amounts of data such as images and videos using a blockchain mechanism. Specifically, when storing large amounts of data such as images and videos, the data is divided into multiple pieces, and each piece is linked and stored. [Prior art documents] [Patent documents]
[0006] [Patent Document 1] Patent Publication No. 2021-43770 Summary of the Invention [Problem to be solved by the invention]
[0007] However, even when large amounts of data are divided and stored using this method, the following problems arise.
[0008] In other words, in such a system, after a large amount of data is divided and verified with a public key, the transaction data is shared on the system. If the same generator attempts to add data using the private key, the private key is authentic, and the data will be verified as authentic and added to the series of data.
[0009] However, if such data is added, it is impossible to know whether the added data is part of the data already stored or is unrelated data. Therefore, when famous paintings or original videos such as animations and movies are stored in a way that prevents tampering, if unrelated data is added to the paintings or videos using the same private key, the restored paintings or videos will be corrupted and will lose their value as original data.
[0010] Therefore, the present invention has been made with an eye on the above-mentioned problems, and aims to provide a blockchain system that does not allow the addition of data to a generated series of data in a system that enables the storage of large amounts of data using a blockchain mechanism. [Means for solving the problem]
[0011] That is, in order to solve the above-mentioned problems, the present invention provides a data storage system in which the same image or video data is stored in a plurality of nodes, comprising: a division means for dividing image or video data of a certain size in a specific node; At the particular node, The image or video data divided by the division means is converted into a character string, At the specific node, a transaction generating means for generating a hash value from the converted data, adding the hash value to the character string data, and generating transaction data encrypted using a private key; At the specific node, The encrypted transaction data is sent to the verifier's node, which decrypts it using the public key, and determines whether a hash value generated from the decrypted character string data matches a hash value included in the decrypted character string data. At the verifier node a verification means for verifying the transaction data, and if the hash values of the verification means match, a verification result is transmitted from the verifier's node to the specific node, and then a revocation means for disabling the private key used in the verification at the specific node; and To a node selected based on certain conditions A blocking method to save the data in blocks 、 The present invention is designed to provide the above.
[0012] In addition, in such an invention, At the specific node, The transaction data generated by the transaction generating means includes a serial number or a hash value that serves as link information for the divided data. [Effects of the Invention]
[0013] According to the present invention, it is possible to prevent the divided data from being corrupted by adding other data to the divided data. [Brief explanation of the drawings]
[0014] [Figure 1] A basic configuration diagram of a data storage system using a blockchain according to an embodiment of the present invention. [Figure 2] Functional block diagram of the system [Figure 3] A diagram showing the relationship between transaction data and blocks in this format. [Figure 4] A diagram showing the state in which a transaction is verified in the same manner. [Figure 5] A diagram showing the connection relationship of each block in the same configuration [Figure 6] FIG. 10 shows how transaction data is generated by dividing large amounts of data in the same format. [Figure 7] A flowchart showing a method for storing large amounts of data in the same format. DETAILED DESCRIPTION OF THE INVENTION
[0015] Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
[0016] As shown in FIG. 1, the data storage system 1 in this embodiment enables peer-to-peer communication between a plurality of computers, i.e., nodes 2, and can store large-capacity data such as images and videos generated at a specific node 2 in a tamper-proof manner. Specifically, the generated large-capacity data is divided into a plurality of transaction data 8 using a segmentation means 3 (see FIG. 2). After verifying the divided transaction data 8 using a private key and a public key, the transaction data 8 is stored in the system. When the amount of the transaction data 8 reaches a certain quantity, it is grouped into one block 9 by a blocking means 6 and can be connected to subsequent blocks 9 in a tamper-proof manner using a hash value. Characteristically, after the divided transaction data 8 is verified by the public key, the private key used at that time is invalidated so that it cannot be used, and then the addition of transaction data 8 cannot be performed at that node 2. Hereinafter, the data storage system 1 in this embodiment will be described in detail. In this embodiment, the node 2 means an information processing terminal such as a personal computer connected to the Internet. The transaction data 8 refers to, for example, information aggregated to about several tens of bytes, and the block 9 refers to a plurality of the transaction data 8 grouped together.
[0017] Each of these nodes 2 is composed of an electronic information processing device such as a personal computer, is connected to other nodes 2 via a communication network such as the Internet, and can share the same transaction data 8 and block 9 data through peer-to-peer.
[0018] <Configuration of the nth block Bn>
[0019] First, in such a data storage system 1, a block Bn, which aggregates multiple transaction data 8 generated in each node 2, contains, in addition to the multiple transaction data 8, a hash value Hn-1 generated from the data of the block Bn-1 immediately preceding the block Bn, as shown in FIG. 3. Including the hash value Hn-1 in block Bn-1 in this way makes it possible to prevent tampering with the transaction data 8 in block Bn-1. Specifically, if the transaction data 8 in the immediately preceding block Bn-1 is tampered with, the hash value generated therefrom will be a different hash value Hn-1'. However, because the hash value Hn-1 of the immediately preceding block Bn-1 is already stored in block Bn, a mismatch between these hash values Hn-1 and Hn-1' can be detected, making it possible to detect that the transaction data 8 has been tampered with.
[0020] <Generating and verifying new transaction data>
[0021] When a transaction occurs at a node 2 while blocks 9 are stored in a linked state, the transaction information is stored as transaction data 8, and a hash value is generated from the transaction data 8 and added to it, as shown in Figure 4. The transaction data 8 is then encrypted using the private key held by the node 2. The transaction data 8 is then sent, including this "encrypted hash value," to a verifier at another node 2 who has the public key.
[0022] The verifier uses its own public key to decrypt the transmitted transaction data 8, obtain a hash value contained in the transmitted transaction data 8, and check whether this hash value matches the hash value generated from the decrypted transaction data 8. If these hash values match, it is determined that the data was generated by a legitimate sender, and the transaction data 8 is published on the system for information sharing. At this point, the verified transaction data 8 is transmitted to all nodes 2 in a peer-to-peer manner and shared.
[0023] <How to generate new block Bn+1>
[0024] When the transaction data 8 verified in this way reaches a certain amount on the system (for example, when it reaches a capacity of 1 megabyte), a specific node 2 selected under certain conditions generates a new block Bn+1 consisting of a group of transactions that collects multiple transactions.
[0025] At this time, as shown in FIG. 3 and FIG. 5, the hash value Hn-1 of the immediately preceding block Bn-1 generated on the system is also stored.
[0026] Similarly, when a transaction occurs at each node 2, it is verified using the private key and public key, and when the verified transaction data 8 reaches a certain amount, it is compiled into a block 9 at a specific node 2 (see Figure 5).
[0027] In this embodiment, such a data storage system 1 is capable of storing large amounts of data such as images and videos in a manner that prevents tampering.
[0028] The images and videos that can be stored in such a way that they cannot be tampered with include original images and videos such as paintings and animations, as well as works of high economic value such as cultural assets. By storing these in a way that they cannot be tampered with, they can be preserved as the originals.
[0029] First, the division means 3, which divides large-volume data such as copyrighted works, divides the large-volume data into pieces of data large enough to store transaction data 8. When dividing this large-volume data, linking information for subsequent linking is included, as shown in Figure 6. This linking information may be a serial number (e.g., #1), or a hash value generated from transaction data 8 may be included in the next transaction data 8 to link the pieces. In this case, using the serial number for linking allows the transaction data 8 to be linked quickly, while including a hash value in the next transaction data 8 makes it possible to determine which transaction data 8 has been tampered with.
[0030] Next, the transaction generation means 4 first converts each of the divided transaction data 8, such as images or videos, into a certain character string. When converting into this character string, for example, Base64 is used to convert into 64 different alphanumeric characters. Then, this converted character string is used to generate a hash value, and the private key held by the node 2 is used to encrypt the character string and hash value of this divided transaction.
[0031] The authenticity of the transaction data 8 encrypted in this way is verified by the verification means 5 at other nodes 2. During this verification, as shown in FIG. 4, the received encrypted transaction data 8 is decrypted using the public key, and a hash value and the transaction data 8 are extracted from it. Then, the consistency of the hash value generated from the decrypted transaction data 8 and the hash value contained in the decrypted data is verified. If these values match, the transaction data 8 is deemed to have been generated by a legitimate person who holds the private key, and is made public on the system so that the information can be shared among each node 2.
[0032] If transaction data 8 is added to the divided data later using a private key, unnecessary data will be added to the restored data as part of the series of data, and the image or video will be corrupted when decoded. Therefore, here, after the series of divided transaction data 8 is verified, the private key is invalidated so that it cannot be used, and no data can be added.
[0033] Various methods can be considered for this invalidation means 7, but one method is to erase the private key after its authenticity has been verified using the public key. In this way, the same private key cannot be used to encrypt transaction data 8, so verification is not performed and transaction data 8 cannot be added. Here, when erasing the private key, the private key is erased after verification by the verifier. However, the private key may also be erased after a series of transaction data 8 is transmitted to the verifier. In this way, even if verification takes time, the private key can be erased simultaneously with transmission, making it impossible to add data. Furthermore, although the method of erasing the private key is used here, another method may be used that prevents the use of another private key identical to the private key.
[0034] When a series of transaction data 8 generated in this way reaches a certain capacity (e.g., 1 megabyte) on the system, the blocking means 6 aggregates the data into a block 9 by a node 2 selected under certain conditions. After the data has been aggregated into one block 9 in this way, a hash value is generated from the transaction data 8 contained in the block 9 and included in the block 9. The blocking means 6 also stores the hash value of the block 9 immediately before it is linked to this block 9. Storing the hash value of the immediately previous block 9 in this way ensures connectivity with the immediately previous block 9 and prevents tampering.
[0035] Next, a method for storing volume data in such a data storage system 1 will be described with reference to the flowchart of FIG.
[0036] First, when a large amount of data is to be saved, the data is divided into data of a certain size by the dividing means 3 (step S1). At this time, the divided data is stored with a serial number (#1) or the like in the header 81 or the like so that the divided data can be linked later.
[0037] The divided data is then converted into an alphanumeric string using Base64 or the like (step S2). At this time, the converted string data is set to data that fits within the capacity (e.g., 80 bytes) that can be stored as transaction data 8.
[0038] A hash value is then generated from the transaction data 8 generated in this way (step S3), and the hash value is encrypted using the private key held by this node 2, and transmitted to the verifier (step S4).
[0039] The verifier receives this data and decrypts it using its own public key to obtain the hash value contained therein, and extracts the transaction data 8. It then generates a hash value from the transaction data 8 and verifies whether it matches the previously included hash value (step S5).
[0040] The sender is then notified of these verification results (steps S6, S61), and if the verification results are OK, the verified transaction data 8 is made public on the system so that it can be shared (step S7).
[0041] On the other hand, the sender side, having received the result of the verification, performs invalidation processing such as deleting the private key that it possesses, thereby making the private key unusable thereafter (step S8).
[0042] Then, when a certain amount of transaction data 8 has accumulated in the system (step S9), a node 2 selected under certain conditions generates a block 9 (step S10), and at that time, the hash value of the block 9 immediately before it is linked to this block 9 is also stored.
[0043] Thereafter, the transaction data 8 is verified and blocked in the same manner, and the data is linked in chronological order so that it cannot be tampered with.
[0044] As described above, according to the embodiment, in the data storage system 1 in which the same image or video data is stored in a plurality of nodes, 2 a division means 3 for dividing image or video data of a certain size; At the specific node 2, The image or video data divided by the division means is converted into a character string, At the specific node 2, a transaction generating means (4) that generates a hash value from the converted data, adds the hash value to the character string data, and generates transaction data encrypted using a private key; At the specific node 2, The encrypted transaction data 8The verifier node decrypts the character string using the public key, and checks whether the hash value generated from the decrypted character string data matches the hash value included in the decrypted character string data. At the verifier node Verification means 5 for verifying, and the verification means 5 If the hash values match, the verification result is sent from the verifier's node to the specific node. 2 After transmitting 2 a revocation means 7 for disabling the private key used; and 8 of, Node 2 is selected based on certain conditions. Blocking method 6 to save the data in blocks 、 This makes it possible to prevent the divided data from being corrupted by other data being added to the divided data.
[0045] The present invention is not limited to the above-described embodiment, but can be implemented in various forms.
[0046] For example, in the above embodiment, a serial number (e.g., #1) is added to each divided transaction data 8 to ensure continuity. However, there is a possibility that each divided transaction data 8 may be stored in a different block 9. For this reason, common identification information identifying the divided transaction data 8 may also be added. In this case, it is preferable to store the divided transaction data 8 together in one block 9 as much as possible. One possible method for doing this is to group together transaction data 8 having the same identification information stored in the header 81 and store them together in the block 9.
[0047] Furthermore, in the above embodiment, the character string is generated using Base64, but the character string may be generated using a method other than this.
[0048] Furthermore, in the above embodiment, large-capacity data has been described using copyrighted works such as paintings, videos, and animations as examples, but the present invention can also be applied to storing large-capacity documents, audio, evidence, etc. [Explanation of symbols]
[0049] 1. Data storage system 2 nodes 3...Dividing means 4. Transaction Generation Method 5. Verification Methods 6. Blocking method 7. Neutralization Method 8. Transaction Data 81···Header 9 blocks
Claims
1. In a data storage system where the same image or video data is stored on multiple nodes, A division means for dividing image or video data of a certain size at a specific node; a transaction generating means, at the specific node, for converting the image or video data divided by the dividing means into a character string, and at the specific node, for generating a hash value from the converted data, adding the hash value to the character string data, and generating transaction data encrypted using a private key; a verification means in the specific node that transmits the encrypted transaction data to a verifier node, decrypts the encrypted transaction data by the verifier node using a public key, and verifies in the verifier node whether a hash value generated from the decrypted character string data matches a hash value included in the decrypted character string data; a revocation means for disabling the private key used in the specific node after transmitting the verification result from the verifier node to the specific node when the verification means determines that the hash values match; a blocking means for collectively storing the verified transaction data in a node selected according to a certain condition; A data storage system comprising:
2. The data storage system described in Claim 1, characterized in that at the specific node, the transaction data generated by the transaction generation means includes a serial number that serves as linking information for the divided data.
3. In a data storage system where the same data is stored on multiple nodes, A step of dividing image or video data of a certain size at a specific node; converting the divided image or video data into a character string at the specific node, and generating a hash value from the converted data and adding it to the character string data at the specific node, and generating transaction data encrypted using a private key; the specific node transmitting the encrypted transaction data to a verifier node, which decrypts the encrypted transaction data using a public key, and verifying at the verifier node whether a hash value generated from the decrypted character string data matches a hash value included in the decrypted character string data; If the hash values match as a result of the verification, the verification result is transmitted from the verifier node to the specific node, and then the specific node disables the used private key; A data storage method comprising:
Citation Information
Patent Citations
Communication system
JP1996340330A
Systems and methods for implementing digital signatures using one-time private keys
JP2008507892A
Device, method and program for electronic signature key management
JP2012085212A
Virtual currency management program and method
JP2018160179A
Secret key management system in distributed network and secret key management method
JP2020072307A