Electronic evidence preservation sharing system and method based on block chain
By cutting electronic evidence preservation files into data strips and using blockchain technology for decentralized storage and distribution, the problem of slow download speed during the sharing of electronic evidence is solved, and the download speed and server efficiency are improved.
Patent Information
- Application Number
- CN202411356251.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-27
- Publication Date
- 2025-06-06
AI Technical Summary
Electronic evidence has a slow download speed during the sharing process, especially in multi-person teams, resulting in increased server load.
By cutting the electronic evidence preservation file into several data strips according to the preset data length, and using blockchain technology to extract hash values and generate data identification for each data strip, scattered storage and distribution of data strips, team members search and download data strips one by one according to the data identification.
It improves the download speed of electronic evidence preservation files, reduces the operating load of the server, and enhances the security and readability of data.
Smart Images

Figure CN120105486A_ABST
Abstract
Description
Technical Field
[0001] This solution belongs to the field of evidence preservation, and specifically involves a blockchain-based electronic evidence preservation and sharing system and method. Background Art
[0002] Electronic evidence is a type of data that goes beyond all previous forms of evidence, including not only text, images and sounds, but also multimedia. Generally speaking, electronic evidence has the characteristics of anonymity and fragility. Compared with traditional data, electronic evidence is more easily lost, tampered with, destroyed, etc., especially when parties and lawyers share electronic evidence that needs to be preserved through links, there is a great risk of leakage in the sharing process. Therefore, in-depth research on the sharing method of electronic evidence preservation is of great significance to the interests of parties and the work of lawyers.
[0003] At present, when parties and lawyers share electronic evidence preservation (hereinafter referred to as "preservation files"), they mainly share preservation files through email notifications, chat notifications, etc., but such methods are prone to access by other illegal users and damage to preservation files, and sharing depends on network bandwidth and point-to-point communication network conditions. In this regard, Chinese patent CN113779621A proposes a data sharing method based on blockchain, which extracts hash values from uploaded data twice, encapsulates and protects the data, assigns an identifier to each data row after receiving the data, generates an extraction code for each data row when storing the data, and can obtain data through the extraction code and the assigned identifier when extracting data. Although the method proposed by Chinese patent CN113779621A can reduce the risk of leakage of preservation files, it is necessary to pass multiple authentications through multiple extraction codes when obtaining complete preservation files, which slows down the download speed. In addition, most parties are not just one person, and lawyers are usually a team of lawyers. There are many people who obtain preservation files, and the preservation file acquisition operations that the server needs to handle are multiplied, increasing the operating load of the server. Summary of the invention
[0004] The purpose of this solution is to provide a blockchain-based electronic evidence preservation and sharing system and method to solve the problem of slow data download speed in the process of electronic evidence preservation and sharing.
[0005] In order to achieve the above objectives, this solution provides a blockchain-based electronic evidence preservation and sharing method, which includes the following steps:
[0006] Receive the security documents submitted by team members and cut them into several data strips according to the preset data length;
[0007] Extract the hash value for each data strip, and put the hash value of the next data strip in the logical relationship into the previous data strip. Use the data strip at the front of the logical relationship as the headline of the preservation file, generate a data identifier for the headline of the preservation file and send it to all team members, upload the hash value of the headline of the preservation file to the blockchain storage, and store each data strip in a dispersed manner on each data storage node;
[0008] When downloading a preservation file, a team member submits a data ID and a user ID, searches for data items in the preservation file one by one through the data ID, and sends the found data items to the team member corresponding to the user ID.
[0009] A blockchain-based electronic evidence preservation and sharing system, comprising:
[0010] Interaction module, used to obtain operation requests and transmit preservation files;
[0011] The cache module is used to receive the security file, cut the security file into fixed-length data strips in sequence according to the logical relationship, generate a stack, and store the data strips in the stack in sequence; it is also used to receive the data strip and the user identification, verify the security of the user identification, and send the data strip to the team member corresponding to the user identification;
[0012] The data operation module is used to take out the data strips in the stack, extract the hash value for each data strip in the data strip queue, and put the hash value of the next data strip in the logical relationship into the previous data strip, use the front data strip in the logical relationship as the preservation file headline, generate a data identifier for the preservation file headline and send it to all team members, upload the hash value of the preservation file headline to the blockchain storage, and store each data strip in a dispersed manner on each data storage node.
[0013] The principle and effect of this scheme are:
[0014] First, the preservation file is cut into fixed-length data strips in order according to the logical relationship, and then the cut data strips are stacked in order. The first data strip that pops out of the stack is the data strip at the end of the logical relationship of the preservation file. The hash value is extracted from the end data strip and the hash value is put into the previous data strip. This method can not only encrypt the preservation file layer by layer, but also query the next data strip through the previous data strip. This order is more in line with the query order. Secondly, dividing the preservation file into fixed-length data strips can avoid the overflow of the extracted hash value, resulting in data loss or inaccurate hash value verification results. It can also more accurately calculate the load requirements for storing the preservation file. When each data strip is stored in a distributed manner on each data storage node, the storage process can be more accurately controlled. Furthermore, the data stripe at the front of the logical relationship of the preservation file is used to generate a data identifier, which is more convenient to use when acquiring. The order in which the data stripes are acquired is also the order in which the data are arranged in the logical relationship of the preservation file. After the data stripes are acquired, they can be sent to the team members corresponding to the user identifier (i.e., the team members who download the preservation file) in sequence. Compared with the data stripes stored without considering the logical relationship, the time for reorganizing the data strips (restoring them into preservation files) after acquiring the data strips is reduced, thereby speeding up the downloading of the preservation file. Moreover, under the storage method of this scheme, the data strips sent to team members have a logical relationship and a readable order, and team members can check them while downloading, which reduces the time users spend waiting for downloading and speeds up the downloading speed from the user experience. Finally, after obtaining the hash values of all data strips, the last hash value obtained is the hash value of the data stripe at the front in the logical relationship of the preservation file. After obtaining all hashes, the data identifier can be generated for the front data stripe (that is, the preservation file header). This method only traverses the preservation file twice. Without considering the logic, the preservation file also needs to be traversed twice (the first time is to traverse each data strip of the preservation file when generating the hash value, and the second time is to traverse and find the preservation file header based on the relationship between the data strips). This solution takes into account the logical relationship between the data strips while maintaining the same amount of calculation, reduces the sorting steps, and thus reduces computing power.
[0015] In summary, this solution provides a blockchain-based electronic evidence preservation and sharing system and method to solve the problem of slow data download speed in the process of electronic evidence preservation and sharing.
[0016] Furthermore, when storing data strips in a decentralized manner, an accounting server is selected from each server using a hash algorithm. The accounting server generates a storage task based on the data strips corresponding to the preservation files and the number of copies of the data strips, calculates the load demand of the storage task, and allocates different shares of storage tasks to each idle server based on the load capacity of each idle server. The storage tasks received by each idle server are recorded as storage subtasks, and the completion status of each storage subtask is estimated. After the storage task is completed, the actual completion status of each storage subtask is obtained, and the actual completion status of each storage subtask is compared with the estimated completion status. The comparison results are used to evaluate the allocation capacity of the accounting server, and the allocation capacity is used to adjust the rights and interests of the server.
[0017] Allocating different shares of storage tasks to each idle server according to the load capacity of each idle server can avoid server overload and make more accurate use of the computing power of each server, thus avoiding wasting the computing power of the server and improving storage speed. Comparing the actual completion status with the estimated completion status can not only deepen the understanding of the load capacity of the idle server, but also deepen the understanding of the allocation capacity of the allocated server. By adjusting the next storage task allocation and the selection of the accounting server based on more detailed and accurate actual conditions, the storage task allocation can be more reasonable.
[0018] Furthermore, when downloading the preservation file, after the team member submits the data ID and user ID, the user ID is first security authenticated. After the security authentication is passed, a reading task is generated based on the data ID. The reading task reads a fixed number of data strips each time and sends them to the team member corresponding to the user ID. After completing a single reading task, the viewing progress of each team member on the preservation file is obtained, and the next execution progress of the reading task is adjusted according to the fastest viewing progress; the reading task is repeated multiple times until the data strips corresponding to the preservation file are all sent to the team member corresponding to the user ID.
[0019] By adjusting the download speed of the data bar according to the viewing progress of the preservation file, it will not affect the viewing of the preservation file, and more computing power and load capacity can be used on more high-priority tasks. This method can make the sharing method of this solution more flexible and adapt to more emergencies.
[0020] Furthermore, when the preservation file is cut into several data strips according to the preset data length, it is cut backward in sequence according to the logical relationship of the preservation file, and a stack is generated, and the cut data strips are pushed into the stack in sequence; when the hash value is extracted, the data strips are taken out from the stack in sequence; and the stack is released after all the data strips are stored in the data storage node.
[0021] Releasing redundant stacks can reduce the server load, avoid excessive cache usage, increase server load, and affect server computing power.
[0022] Furthermore, the data operation module also includes an accounting unit, which is used to select an accounting server using a hash algorithm. The accounting server is used to read the stack from the cache module, generate a storage task corresponding to the preservation file according to the stack and the preset number of copies, and calculate the load requirement of the storage task. The accounting server broadcasts the load status of each idle server, allocates different shares of storage tasks to each idle server according to the load status, and records the storage tasks received by each idle server as storage subtasks; the accounting unit is used to obtain the actual completion status of each storage subtask after the storage task is completed, compare the actual completion status of each storage subtask with the estimated completion status, and use the comparison results to evaluate the allocation capacity of the accounting server.
[0023] Furthermore, an accounting log is provided in the accounting unit, and the accounting log is used to record the storage tasks processed by the accounting server and the corresponding allocation capacity. The accounting unit is used to synchronously adjust the rights and interests of the server after changing the accounting log.
[0024] The accounting unit records the allocation work of the accounting server in the form of an accounting log, making the work of the accounting server easier to trace. Through the historical allocation capacity of the server, the current allocation capacity of the server can be more accurately determined, making the selection of the accounting server more precise and less susceptible to accidental events.
[0025] Furthermore, the data operation module is also used to read a fixed number of data strips when executing a reading task, and verify whether the data strips are damaged based on the hash values stored in the data strips, and associate the verified data strips with the reading tasks and store them in the cache module in the reading order; after the data strips corresponding to the reading task are sent to all team members specified by the user identifier, that is, after the preservation file is completely transmitted to all team members who need to download it, the reading task is terminated and the corresponding data strips are deleted from the cache.
[0026] Furthermore, when there is an unfinished reading task and a data identifier and a user identifier are received, the interaction module first performs security authentication on the user identifier. After the user identifier passes the security authentication, the data identifier is used to check whether there is a reading task with the same data identifier in the unfinished reading tasks. If so, the cache module associates the received user identifier with the unfinished reading task and sends a fixed number of data strips to the team member corresponding to the user identifier.
[0027] This approach can reduce the amount of task accumulation as much as possible, while reducing the number of operations on the server to read data and reduce the burden on the server. The speed of reading data from the cache is faster than the speed of searching for data strips from the storage node. This approach can increase the download speed while reducing the burden on the server.
[0028] Furthermore, the interaction module is also used to adjust the priority of storage tasks and reading tasks. The interaction module is used to monitor the completion progress of storage tasks and reading tasks, and adjust the priority between storage tasks and reading tasks according to the response time requirements of operation requests, user interaction experience and the total accumulated tasks.
[0029] Adjusting the priority of storage tasks and reading tasks through the interactive module can improve the user experience. BRIEF DESCRIPTION OF THE DRAWINGS
[0030] Figure 1 This is a flow chart of a blockchain-based electronic evidence preservation and sharing method in Example 1 of this solution.
[0031] Figure 2 This is a schematic diagram of the relevant process of extracting the hash value of a data strip in Example 1 of this solution. DETAILED DESCRIPTION
[0032] The following will clearly and completely describe the concept and technical effects of the present invention in combination with the embodiments, so as to fully understand the purpose, features and effects of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of them. Based on the embodiments of the present invention, other embodiments obtained by those skilled in the art without creative work are all within the scope of protection of the present invention:
[0033] Example 1
[0034] As attached Figure 1 As shown, a method for preserving and sharing electronic evidence based on blockchain includes the following steps:
[0035] The first step is to receive the security documents submitted by the team members and cut them into several data strips according to the preset data length;
[0036] The second step is to extract the hash value for each data strip, and put the hash value of the next data strip in the logical relationship into the previous data strip. The data strip at the front of the logical relationship is used as the headline of the preservation file. A data identifier is generated for the headline of the preservation file and sent to all team members. The hash value of the headline of the preservation file is uploaded to the blockchain storage, and each data strip is dispersed and stored on each data storage node.
[0037] Step 3: When downloading the preservation file, the team member submits the data ID and user ID, searches for the data items of the preservation file one by one through the data ID, and sends the found data items to the team member corresponding to the user ID.
[0038] When storing data strips in a distributed manner, a hash algorithm is used to select an accounting server from each server. The accounting server generates a storage task based on the data strips corresponding to the preservation files and the number of copies of the data strips, calculates the load demand of the storage task, and allocates different shares of storage tasks to each idle server based on the load capacity of each idle server. The storage tasks received by each idle server are recorded as storage subtasks, and the completion status of each storage subtask is estimated. After the storage task is completed, the actual completion status of each storage subtask is obtained, and the actual completion status of each storage subtask is compared with the estimated completion status. The comparison results are used to evaluate the allocation capacity of the accounting server, and the allocation capacity is used to adjust the rights and interests of the server.
[0039] When downloading a preservation file, after the team member submits the data ID and user ID, the user ID is first security authenticated. After the security authentication is passed, a reading task is generated based on the data ID. The reading task reads a fixed number of data strips each time and sends them to the team member corresponding to the user ID. After completing a single reading task, the viewing progress of each team member on the preservation file is obtained, and the next execution progress of the reading task is adjusted according to the fastest viewing progress; the reading task is repeated multiple times until all the data strips corresponding to the preservation file are sent to the team member corresponding to the user ID.
[0040] When the preservation file is cut into several data strips according to the preset data length, it is cut backwards in sequence according to the logical relationship of the preservation file, and a stack is generated, and the cut data strips are pushed into the stack in sequence; when the hash value is extracted, the data strips are taken out from the stack in sequence; the stack is released after all the data strips are stored in the data storage node.
[0041] A blockchain-based electronic evidence preservation and sharing system, comprising:
[0042] The interactive module is used to obtain operation requests and transmit preservation files.
[0043] The cache module is used to receive the security file, cut the security file into data strips of fixed length in sequence according to the logical relationship, generate a stack, and store the data strips in the stack in sequence; it is also used to receive the data strip and user ID, verify the security of the user ID, and send the data strip to the team member corresponding to the user ID.
[0044] The data operation module is used to take out the data strips in the stack, extract the hash value for each data strip in the data strip queue, and put the hash value of the next data strip in the logical relationship into the previous data strip, use the front data strip in the logical relationship as the preservation file headline, generate a data identifier for the preservation file headline and send it to all team members, upload the hash value of the preservation file headline to the blockchain storage, and store each data strip in a dispersed manner on each data storage node.
[0045] The data operation module also includes an accounting unit, which is used to select an accounting server using a hash algorithm. The accounting server is used to read the stack from the cache module, generate a storage task corresponding to the preservation file according to the stack and the preset number of copies, and calculate the load demand of the storage task. The accounting server broadcasts the load status of each idle server, allocates different shares of storage tasks to each idle server according to the load status, and records the storage tasks received by each idle server as storage subtasks; the accounting unit is used to obtain the actual completion status of each storage subtask after the storage task is completed, compare the actual completion status of each storage subtask with the estimated completion status, and use the comparison results to evaluate the allocation capacity of the accounting server. The accounting unit is provided with an accounting log, which is used to record the storage tasks processed by the accounting server and the corresponding allocation capacity. The accounting unit is used to synchronously adjust the rights and interests of the server after changing the accounting log.
[0046] The data operation module is also used to read a fixed number of data strips when executing a reading task, and to verify whether the data strips are damaged based on the hash values stored in the data strips, and to associate the verified data strips with the reading tasks and store them in the cache module in the reading order; after the data strips corresponding to the reading task are sent to all team members specified by the user identifier, that is, after the preservation file is completely transmitted to all team members who need to download it, the reading task is terminated and the corresponding data strips are deleted from the cache.
[0047] The interaction module is also used to perform security authentication on the user ID when there is an unfinished reading task and the data ID and user ID are received. After the user ID passes the security authentication, the data ID is used to check whether there is a reading task with the same data ID in the unfinished reading tasks. If so, the cache module will associate the received user ID with the unfinished reading task and send a fixed number of data strips to the team member corresponding to the user ID.
[0048] The interaction module is also used to adjust the priority of storage tasks and read tasks. The interaction module is used to monitor the completion progress of storage tasks and read tasks, and adjust the priority between storage tasks and read tasks according to the response time requirements of operation requests, user interaction experience and the total accumulated tasks.
[0049] In the specific implementation, party A is used as the person who shares the preservation documents, and lawyers A and B are used as the people who review the preservation documents.
[0050] Party A establishes a collaborative team with Lawyers A and B. Party A uses his own account (using the account number as the user ID) to log in to a blockchain-based electronic evidence preservation and sharing system (hereinafter referred to as the "system"), and submits an application to establish a team with Lawyers A and B. The system generates a team ID and associates the account numbers (user IDs) of Party A, Lawyers A and B with the team ID.
[0051] After the team is established, the parties submit the preservation documents 1 to the system and submit a sharing request to the system.
[0052] After receiving the sharing request, the interactive module notifies the cache module to receive and save the preservation file 1. After receiving the notification of receiving and saving the preservation file 1 from the interactive module, the cache module saves the preservation file 1 (such as the attached Figure 2 As shown in the figure, the data strips are split into data strips 1, 2 and 3 according to the logical relationship order and fixed length (1024B), and each data strip is placed in stack 1 according to the discussion order (split order) between the data strips. After all the data are placed in, a notification of storage preservation file 1 is sent to the data operation module.
[0053] After receiving the notification of storage of preservation file 1, the data operation module pops the data strips in sequence, starting with data strip 3 (the last one put in is the first one out), extracts the hash value of data strip 3 (hash value 3) and puts it into data strip 2 (data strip 2 becomes the original data strip 2 + hash value 3), and then pops another data strip (after data strip 3 is popped, data strip 2 is located at the popping port), that is, pops data strip 2, extracts the hash value of data strip 2 (hash value 2) and puts it into data strip 1 (data strip 1 becomes the original data strip 1 + hash value 2), pops the last piece of data (data strip 1) and extracts the hash value (hash value 1), uses the hash value of the last piece of data extracted as the preservation file header of preservation file 1, generates a data identifier and sends it to all members of the team (party A, lawyer A and lawyer B), and uploads the preservation file header of preservation file 1 to blockchain storage. The data operation module uses the accounting unit to select the accounting server (the accounting unit uses the hash algorithm to select the accounting server). The accounting server reads stack 1 from the cache module, generates storage task 1 by preserving the number of data packets of file 1 (3, i.e., the maximum does not exceed 3*1024B) and the preset number of copies (here set to 3), and calculates the load demand (load demand 1) of storage task 1. The accounting server broadcasts the load status of each idle server. Idle server A and idle server B reply to the accounting server with their own load status. The accounting server allocates different shares of storage task 1 according to the load status of the idle servers (idle server A gets 40% of storage task 1, and idle server B gets 60% of storage task 1). The accounting server uses 40% of storage task 1 allocated to idle server A as storage subtask 1, and the accounting server uses 60% of storage task 1 allocated to idle server B as storage subtask 2. After assigning the tasks, the accounting server estimates the completion status of idle server A and idle server B. It is estimated that idle server A can complete storage subtask 1 within 2 seconds, and idle server B can complete storage subtask 2 within 3 seconds. Idle servers A and B store each data strip in a dispersed manner on each data storage node. Idle server A completes storage subtask 1 in 1.9 seconds and transmits the actual completion time (1.9 seconds) to the accounting unit as actual completion status 1. Idle server B completes storage subtask 2 in 2.9 seconds and transmits the actual completion time (2.9 seconds) to the accounting unit as actual completion status 2. After storage task 1 is completed (after receiving the actual completion status transmitted after the completion of all subtasks), the accounting server compares the actual completion status 1 and the actual completion status 2 with their corresponding estimated completion status, and uses the accuracy rate 1 as the allocation capacity of the accounting server selected this time, and records the allocation capacity, storage task 1 and the information of the accounting server in the accounting log. Since the allocation capacity of the accounting server selected this time has not changed compared with the allocation capacity recorded in the accounting log, the accounting unit has not changed the rights and interests of the accounting server.
[0054] After lawyer A logs into the system, he finds that client A has uploaded preservation file 1 (receives the data identifier of preservation file 1), so he submits an application to download preservation file 1 to the system. After the interaction module obtains the application, it passes the user identifier and data identifier to the cache module. The cache module performs security verification on the user identifier, and after the security verification, it passes the data identifier to the data operation module. After receiving the request, the data operation module passes the data identifier to the accounting unit. The accounting unit generates a reading task 1 according to the data identifier. The accounting unit uses a hash algorithm to select server B as the accounting server. The accounting server obtains data strip 1 and Data strip 2 (fixed number is 2), and the hash code of data strip 1 and data strip 2 is broadcasted. After verification by other servers, data strip 1 and data strip 2 are confirmed to be consistent with the copy. Data strip 1 and data strip 2 are associated with reading task 1 and stored in the cache module in the reading order. After receiving data strip 1 and data strip 2, the cache module obtains the reading progress of the preservation file of reading task 1 from the interaction module (100% at this time). The cache module passes data strip 1 and data strip 2 (and the user ID of lawyer A) to the interaction module. The interaction module displays data strip 1 and data strip 2, and lawyer A reads the displayed part of preservation file 1. The interaction module determines the reading progress of lawyer A on preservation file 1 through lawyer A's flipping action. When the interaction module determines that lawyer A has 3 pages to be read, the priority of reading task 1 is increased by one level, and reading task 1 is inserted into the front of all tasks to be completed. The data operation module takes out reading task 1 and reads the two data strips again. The data operation module associates data strip 3 with reading task 1 and puts it into the cache module, and informs the cache module that the preservation file 1 corresponding to reading task 1 has been fully transmitted. When the interactive module obtains that lawyer A has only one page left to turn over the preservation file, it requests the cache module for the data strip of preservation file 1. After receiving the request information from the interactive module, the cache module sends data strip 3 (and lawyer A's user ID) to the interactive module, and informs the interactive module that reading task 1 has been completed, and then ends reading task 1. The interactive module displays the received data strip 3 to lawyer A and no longer obtains lawyer A's review progress of preservation file 1.
[0055] When lawyer A is viewing preservation file 1, lawyer B logs in and submits an application to download preservation file 1. After lawyer B's user ID is verified, the cache module detects that there is an unfinished reading task 1 for preservation file 1, and the cache module stores data strips 1 and data strips 2 associated with reading task 1. The cache module obtains lawyer B's review progress of preservation file 1 from the interaction module, and sends lawyer B's user ID and data strips to the interaction module based on the review progress. The interaction module displays preservation file 1 to lawyer B based on lawyer B's user ID.
[0056] When the cache module finds that there is an unfinished read task 1 for the preservation file 1, it associates the user ID of lawyer B with the read task 1. When the cache module passes data 3 to the interaction module, it also passes the user IDs of lawyers A and B to the interaction module. The interaction module displays the content of the preservation file 1 corresponding to data strip 3 to lawyers A and B according to the user IDs of lawyers A and B. After the cache module finishes the read task 1, it deletes the data strips 1-3 stored in the cache.
[0057] The above is only an embodiment of the present invention, and the common knowledge such as the known specific structure and characteristics in the scheme is not described in detail here. It should be pointed out that for those skilled in the art, several deformations and improvements can be made without departing from the structure of the present invention, which should also be regarded as the protection scope of the present invention, and these will not affect the effect of the implementation of the present invention and the practicality of the patent. The scope of protection required by this application shall be based on the content of its claims, and the specific implementation methods and other records in the specification can be used to interpret the content of the claims.
Claims
1. A method for preserving and sharing electronic evidence based on blockchain, characterized in that: The following steps are involved: Receive the security documents submitted by team members and cut them into several data strips according to the preset data length; Extract the hash value for each data strip, and put the hash value of the next data strip in the logical relationship into the previous data strip. Use the data strip at the front of the logical relationship as the headline of the preservation file, generate a data identifier for the headline of the preservation file and send it to all team members, upload the hash value of the headline of the preservation file to the blockchain storage, and store each data strip in a dispersed manner on each data storage node; When downloading a preservation file, a team member submits a data ID and a user ID, searches for data items in the preservation file one by one through the data ID, and sends the found data items to the team member corresponding to the user ID.
2. According to the blockchain-based electronic evidence preservation and sharing method of claim 1, it is characterized by: When storing data strips in a distributed manner, a hash algorithm is used to select an accounting server from each server. The accounting server generates a storage task based on the data strips corresponding to the preservation files and the number of copies of the data strips, calculates the load demand of the storage task, and allocates different shares of storage tasks to each idle server based on the load capacity of each idle server. The storage tasks received by each idle server are recorded as storage subtasks, and the completion status of each storage subtask is estimated. After the storage task is completed, the actual completion status of each storage subtask is obtained, and the actual completion status of each storage subtask is compared with the estimated completion status. The comparison results are used to evaluate the allocation capacity of the accounting server, and the allocation capacity is used to adjust the rights and interests of the server.
3. According to the blockchain-based electronic evidence preservation and sharing method of claim 2, it is characterized by: When downloading a preservation file, after the team member submits the data ID and user ID, the user ID is first security authenticated. After the security authentication is passed, a reading task is generated based on the data ID. The reading task reads a fixed number of data strips each time and sends them to the team member corresponding to the user ID. After completing a single reading task, the viewing progress of each team member on the preservation file is obtained, and the next execution progress of the reading task is adjusted according to the fastest viewing progress; the reading task is repeated multiple times until all the data strips corresponding to the preservation file are sent to the team member corresponding to the user ID.
4. According to the blockchain-based electronic evidence preservation and sharing method of claim 3, it is characterized by: When the preservation file is cut into several data strips according to the preset data length, it is cut backwards in sequence according to the logical relationship of the preservation file, and a stack is generated, and the cut data strips are pushed into the stack in sequence; when the hash value is extracted, the data strips are taken out from the stack in sequence; the stack is released after all the data strips are stored in the data storage node.
5. A blockchain-based electronic evidence preservation and sharing system, characterized in that: include: Interaction module, used to obtain operation requests and transmit preservation files; The cache module is used to receive the security file, cut the security file into fixed-length data strips in sequence according to the logical relationship, generate a stack, and store the data strips in the stack in sequence; it is also used to receive the data strip and the user identification, verify the security of the user identification, and send the data strip to the team member corresponding to the user identification; The data operation module is used to take out the data strips in the stack, extract the hash value for each data strip in the data strip queue, and put the hash value of the next data strip in the logical relationship into the previous data strip, use the front data strip in the logical relationship as the preservation file headline, generate a data identifier for the preservation file headline and send it to all team members, upload the hash value of the preservation file headline to the blockchain storage, and store each data strip in a dispersed manner on each data storage node.
6. The blockchain-based electronic evidence preservation and sharing system according to claim 5 is characterized by: The data operation module also includes an accounting unit, which is used to select an accounting server using a hash algorithm. The accounting server is used to read the stack from the cache module, generate a storage task corresponding to the preservation file according to the stack and the preset number of copies, and calculate the load demand of the storage task. The accounting server broadcasts and obtains the load status of each idle server, allocates different shares of storage tasks to each idle server according to the load status, and records the storage tasks received by each idle server as storage subtasks; The accounting unit is used to obtain the actual completion status of each storage subtask after the storage task is completed, compare the actual completion status of each storage subtask with the estimated completion status, and use the comparison results to evaluate the allocation capacity of the accounting server.
7. The blockchain-based electronic evidence preservation and sharing system according to claim 6 is characterized by: The accounting unit is provided with an accounting log, which is used to record the storage tasks and corresponding allocation capabilities processed by the accounting server. The accounting unit is used to synchronously adjust the rights and interests of the server after changing the accounting log.
8. The blockchain-based electronic evidence preservation and sharing system according to claim 7 is characterized by: The data operation module is also used to read a fixed number of data strips when executing a reading task, and to verify whether the data strips are damaged based on the hash values stored in the data strips, and to associate the verified data strips with the reading tasks and store them in the cache module in the reading order; after the data strips corresponding to the reading task are sent to all team members specified by the user identifier, that is, after the preservation file is completely transmitted to all team members who need to download it, the reading task is terminated and the corresponding data strips are deleted from the cache.
9. The blockchain-based electronic evidence preservation and sharing system according to claim 8 is characterized by: The interaction module is also used to perform security authentication on the user ID when there is an unfinished reading task and the data ID and user ID are received. After the user ID passes the security authentication, the data ID is used to check whether there is a reading task with the same data ID in the unfinished reading tasks. If so, the cache module will associate the received user ID with the unfinished reading task and send a fixed number of data strips to the team member corresponding to the user ID.
10. The blockchain-based electronic evidence preservation and sharing system according to claim 9 is characterized in that: The interaction module is also used to adjust the priority of storage tasks and read tasks. The interaction module is used to monitor the completion progress of storage tasks and read tasks, and adjust the priority between storage tasks and read tasks according to the response time requirements of operation requests, user interaction experience and the total accumulated tasks.
Citation Information
Patent Citations
Data sharing method based on block chain
CN113779621A