Training data management methods, blockchain nodes and servers
By storing training data metadata in a blockchain system and managing it using smart contracts, the security and consistency issues in training data management are resolved, enabling transparent data management and secure destruction, and enhancing users' control over their data.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ANT BLOCKCHAIN TECHNOLOGY (SHANGHAI) CO LTD
- Filing Date
- 2023-11-23
- Publication Date
- 2026-07-17
AI Technical Summary
In existing technologies, the management of training data poses data security and privacy risks, especially in centralized systems, while decentralized storage solutions face challenges in data consistency and performance.
By storing training data on a server and its metadata in the contract state of a blockchain system, smart contracts are used to manage the training data, ensuring its security and consistency. Users can view usage records and flow through the blockchain system and destroy training data on the server.
It enhances users' management rights over training data, ensures data security and transparency, avoids data abuse and tampering, and achieves data consistency and traceability.
Smart Images

Figure CN117614677B_ABST
Abstract
Description
Technical Field
[0001] The embodiments in this specification belong to the field of blockchain technology, and in particular relate to a training data management method, a blockchain node, and a server. Background Technology
[0002] Blockchain is a novel application model of computer technologies such as distributed data storage, peer-to-peer transmission, consensus mechanisms, and cryptographic algorithms. In a blockchain system, data blocks are sequentially linked together to form a chain-like data structure, and a distributed ledger is cryptographically guaranteed to be immutable and unforgeable. Due to its decentralized, immutable, and autonomous characteristics, blockchain is receiving increasing attention and application. Summary of the Invention
[0003] The purpose of this invention is to provide a training data management method to improve users' management of their training data.
[0004] This specification provides a training data management method executed by nodes in a blockchain system. The blockchain system deploys contracts, and the state of these contracts stores authorization information for the training data. This authorization information includes authorized accounts. The method includes: receiving a first transaction that invokes the contract, the first transaction being sent by a server to the blockchain system, including the training party's account, used to determine whether the training party has first access rights to the training data; determining, based on the authorization information, whether the training party has the first access rights; and sending the determination result to the server.
[0005] In one implementation, the authorization information also includes the authorization time corresponding to the authorized account.
[0006] In one implementation, the contract's state also stores the state of the training data, which is currently in an upload state. The method further includes: receiving a second transaction from the server that invokes the contract, the second transaction including an identifier of the training data to indicate that the training data has been provided to the training party; and updating the state of the training data to a training state based on the second transaction.
[0007] In one embodiment, the method further includes: receiving a third transaction from the training device that invokes the contract, the third transaction including an identifier of the training data and an identifier of a digital human corresponding to the training data; updating the state of the training data to a training complete state according to the third transaction, and storing the identifier of the training data and the identifier of the digital human in association in the state of the contract.
[0008] In one embodiment, the method further includes: receiving a fourth transaction from a user device invoking the contract, the fourth transaction including an identifier of the training data for indicating deletion of the training data, wherein the user is the provider of the training data; updating the status of the training data to indicate deletion based on the fourth transaction; receiving a fifth transaction from the server invoking the contract, the fifth transaction including the training data identifier for indicating that the training data has been deleted from the server; and updating the status of the training data to deletion based on the fifth transaction.
[0009] A second aspect of this specification provides a training data management method, executed by a server storing training data. The method includes: receiving a training data usage request from a training device, the usage request including the training device's account and a requested first usage right to the training data; responding to the usage request, sending a first transaction to a blockchain system, the first transaction including the training device's account, used to determine whether the training device has the first usage right to the training data; receiving a determination result corresponding to the first transaction from the blockchain system, the determination result indicating whether the training device has the first usage right; and if the determination result indicates that the training device has the first usage right, sending the training data to the training device.
[0010] In one embodiment, the method further includes: receiving training data and its authorization information from a user device; storing the training data and generating metadata of the training data, the metadata including the authorization information; generating a sixth transaction that invokes the contract, the sixth transaction including the metadata of the training data; and sending the sixth transaction to a blockchain system.
[0011] In one embodiment, storing the training data includes: replacing sensitive information in the training data with an identifier corresponding to the sensitive information, and storing the sensitive information and the processed training data.
[0012] In one implementation, the metadata includes the hash value of the training data.
[0013] In one implementation, the authorization information includes the training party's account, and the method further includes: generating a data identifier for the training data based on the training data and first data uniquely corresponding to the training party, returning the data identifier for the training data to the user device, and storing the training data includes: storing the training data in association with the data identifier; the sixth transaction also includes the data identifier.
[0014] In one implementation, sending the training data to the training device includes: encrypting the training data using a key corresponding to the training device to obtain ciphertext data, and sending the ciphertext data to the training device, wherein the first data includes the key.
[0015] In one embodiment, the method further includes: obtaining first information from a blockchain system to indicate the deletion of training data; deleting the training data according to the first information; generating a fifth transaction that invokes the contract, the fifth transaction including second information indicating that the training data has been deleted; and sending the fifth transaction to the blockchain system.
[0016] A third aspect of this specification provides a node for a blockchain system. The blockchain system deploys contracts, and the state of the contracts stores authorization information for training data. The authorization information includes an authorized account. The node comprises: a receiving unit, configured to receive a first transaction invoking the contract, the first transaction being sent by a server to the blockchain system, including the training party's account, for determining whether the training party has first access rights to the training data; a determining unit, configured to determine, based on the first transaction and the authorization information, whether the training party has the first access rights; and a sending unit, configured to send the determination result to the server.
[0017] This specification provides a server storing training data in a fourth aspect. The server includes: a receiving unit for receiving a training data usage request from a training device, the usage request including the training device's account and a requested first usage right to the training data; a sending unit for sending a first transaction to a blockchain system in response to the usage request, the first transaction including the training device's account, for determining whether the training device has the first usage right to the training data; the receiving unit is further configured to receive a determination result corresponding to the first transaction from the blockchain system, the determination result indicating whether the training device has the first usage right; and the sending unit is further configured to send the training data to the training device if the determination result indicates that the training device has the first usage right.
[0018] The fifth aspect of this specification provides a computer-readable storage medium having a computer program stored thereon, which, when executed in a computer, causes the computer to perform the methods described in the first or second aspect.
[0019] A sixth aspect of this specification provides a computing device, including a memory and a processor, wherein the memory stores executable code, and the processor, when executing the executable code, implements the method described in the first or second aspect.
[0020] In the solutions provided in the embodiments of this specification, training data is stored by a server, metadata of the training data is stored by a blockchain system, and training data is managed based on metadata through smart contracts. Users can view the usage records and flow of training data in the blockchain system, which enhances the transparency of data usage. Furthermore, users can destroy training data on the server based on the blockchain system, giving users stronger management over the training data. Attached Figure Description
[0021] To more clearly illustrate the technical solutions of the embodiments in this specification, the drawings used in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this specification. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0022] Figure 1 This is a diagram of a blockchain architecture in one embodiment;
[0023] Figure 2 This is a system architecture diagram of the embodiments in this specification;
[0024] Figure 3 This is a flowchart of a training data management method in one embodiment of this specification;
[0025] Figure 4 This is a flowchart of a training data management method in another embodiment of this specification;
[0026] Figure 5 This is a flowchart of a training data management method in yet another embodiment of this specification;
[0027] Figure 6 This is a structural diagram of a node in a blockchain system according to one embodiment of this specification;
[0028] Figure 7 This is a structural diagram of a server as described in one of the embodiments of this specification. Detailed Implementation
[0029] To enable those skilled in the art to better understand the technical solutions in this specification, the technical solutions in the embodiments of this specification will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this specification, and not all embodiments. Based on the embodiments in this specification, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of this specification.
[0030] Figure 1 An architecture diagram of a blockchain system in one embodiment is shown. Figure 1 As shown, the blockchain system 100 includes N nodes. Figure 1 The diagram illustrates nodes 1 through 6. Each node can be a physical computing device or a virtual entity based on general-purpose hardware resources, such as a virtual machine or container. The lines connecting the nodes schematically represent connections between them, such as TCP connections, used for data transmission. These nodes can store the entire ledger, i.e., the state of all blocks and all accounts. Each node in the blockchain system can generate the same state within the blockchain system by executing the same transactions, and each node can store the same state database.
[0031] In the blockchain field, a transaction refers to a task unit executed and recorded within the blockchain system. A transaction typically includes a send field (From), a receive field (To), and a data field (Data). Specifically, in the case of a transfer transaction, the From field represents the account address initiating the transaction (i.e., initiating a transfer task to another account), the To field represents the account address receiving the transaction (i.e., receiving the transfer), and the Data field includes the transfer amount.
[0032] Blockchain systems offer smart contract functionality. A smart contract on a blockchain is a contract that can be triggered and executed by transactions. Smart contracts can be defined in the form of code. Invoking a smart contract within a blockchain system involves initiating a transaction pointing to the smart contract's address, causing each node in the blockchain system to run the smart contract code in a distributed manner.
[0033] In a contract deployment scenario, for example, Bob sends a transaction containing information about creating a smart contract (i.e., deploying the contract) to a server such as... Figure 1 In the blockchain system shown, the `data` field of the transaction includes the code (such as bytecode or machine code) of the contract to be created, and the `to` field of the transaction is empty to indicate that the transaction is used to deploy the contract. After the nodes reach an agreement through the consensus mechanism, they determine the contract address "0x6f8ae93…". Each node adds a contract account corresponding to the contract address of the smart contract to the state database, allocates state storage corresponding to the contract account, stores the contract code, and saves the hash value of the contract code in the contract's state storage, thus the contract is successfully created.
[0034] In scenarios where contracts are invoked, for example, Bob sends a transaction to invoke a smart contract, such as... Figure 1In the blockchain system shown, the `from` field of this transaction is the address of the account of the transaction initiator (i.e., Bob), the `to` field is the aforementioned "0x6f8ae93…", which is the address of the smart contract being invoked, and the `data` field of the transaction includes the method and parameters for invoking the smart contract. After consensus is reached on this transaction in the blockchain system, each node in the blockchain system can execute the transaction separately, thereby executing the contract separately, and updating the state database based on the execution of the contract.
[0035] Digital humans are virtual individuals created based on artificial intelligence and computer technology, possessing human characteristics and abilities. They are AI agents that can simulate human appearance, voice, language, and behavior, exhibiting similar cognitive abilities and intelligent behaviors. They can continuously improve their abilities through training and learning, and interact and collaborate with humans. Digital humans have wide applications in various fields, including virtual assistants, virtual actors, and virtual customer service representatives. Through digital human technology, people can communicate, collaborate, and interact with virtual individuals, expanding the possibilities of human-computer interaction and providing more personalized and customized services and experiences.
[0036] With the development of artificial intelligence technology, the application of digital humans is becoming increasingly widespread. The training cost of digital humans will gradually decrease, and customized digital humans will gradually become more common. The training process of digital humans involves a large amount of personal data, including sensitive information such as images, audio, and video. Users are increasingly concerned about the privacy and security of their own data, hoping to protect their personal privacy during the digital human training process, while also having management rights and traceability over their data.
[0037] Users want more control over their data and consider training data to be their personal property. They may want to delete the uploaded training data after the digital human model is completed, for reasons such as privacy protection, data security, and data ownership.
[0038] In related technologies, training data is stored and managed through a centralized data management system. Data owners upload their data to a centralized platform, which is responsible for managing data storage, indexing, and access control. However, centralized solutions pose risks to data security and privacy because data is stored on servers controlled by a single entity, potentially facing the risk of data tampering or misuse.
[0039] Another related technology uses decentralized storage to store and manage training data. Decentralized storage distributes data across multiple nodes, using distributed protocols to achieve data storage, replication, and sharing. This approach offers high data security and decentralization; however, it may face challenges such as data consistency and performance issues.
[0040] This specification provides a training data management scheme in which training data is stored in a server and the metadata of the training data is stored in a contract state. The blockchain system manages the training data by executing the contract, thereby avoiding tampering and abuse of the training data, ensuring data consistency, and improving data security.
[0041] Figure 2 This is a system architecture diagram for an embodiment of this specification. Figure 2 As shown, a smart contract for training data management is deployed in the blockchain system 100. User device 10, possessing the training data, can send the training data and authorization information to server 20 to authorize the training party to use the training data. After receiving the training data and authorization information, server 20 can generate metadata for the training data and store this metadata in the contract state by sending a transaction to the blockchain to invoke the contract. Training party device 30 can request to use the training data from server 20. Server 20 can send a transaction to the blockchain system to invoke the contract, and the blockchain system determines whether the training party has permission to use the training data and provides the training data to the training party device based on the blockchain system's determination. After providing the training data to the training party, server 20 sends a transaction to the blockchain system to record this data access in the blockchain system. Additionally, after determining that training is complete, user device 10 can send a transaction to the blockchain to instruct the server to delete the training data. Server 20 deletes the training data according to this instruction and sends a message indicating that the training data has been deleted to the blockchain system for storage.
[0042] By setting it up in this way, the use of training data is managed by the blockchain system, which avoids the abuse of training data by the server and strengthens the user's right to manage their data.
[0043] Figure 3 This is a flowchart of a training data management method in one embodiment of this specification.
[0044] like Figure 3 As shown, in step S301, the user equipment sends training data and authorization information to the server.
[0045] The user device is the device of a user who possesses training data for the digital human. It is understood that the embodiments in this specification are described using the training of the digital human as an example, and the embodiments in this specification are not limited thereto; they can also be applied to the training of other artificial intelligence models (AI).
[0046] Depending on the scenario, the training data for a digital human may include the following:
[0047] Facial data: This includes photos, videos, or scans of faces used to capture the physical features of a digital human. This data can include photos taken from different angles, with varying expressions, and under different lighting conditions to provide more comprehensive facial information.
[0048] Voice data: This includes voice recordings or voice samples used to capture the voice characteristics and speech patterns of a digital human. This data can include voice samples at different speaking speeds, tones, and emotions to provide a more realistic sound effect.
[0049] Language data: This includes text, dialogue transcripts, or corpora used to train the language model and language expression capabilities of digital humans. This data can include text or dialogues in various contexts and topics to provide digital humans with a broader range of language understanding and responsiveness.
[0050] Behavioral data: This includes motion capture data, movement trajectories, or behavioral pattern records, used to train the digital human's body movements and behavioral performance. This data can include human motion capture data, postures, and movement sequences to provide the digital human with more realistic and fluid movement performance.
[0051] After a user determines that a particular training provider will be responsible for training the digital human, they can obtain that provider's blockchain account and generate authorization information for the training data. This authorization information includes, for example, the authorized user's identifier (e.g., the training provider's blockchain account), access permissions, and authorization time. The access permissions may include, for example, read permissions and storage permissions. Furthermore, if the user has multiple types of training data, authorization information corresponding to each type of training data can be generated.
[0052] After generating authorization information, the user device sends the training data and authorization information together to the server. This server is a cloud server used to store the user's training data and provides services to users and training parties based on a blockchain system.
[0053] In step S303, the server stores the training data and generates metadata for the training data.
[0054] After receiving the training data, the server can first perform anonymization processing on the training data. Specifically, the identity identifier in the training data can be replaced with an anonymous identifier that uniquely corresponds to that identity identifier, such as the hash value of the identity identifier.
[0055] The server can then generate a data identifier for the training data. In one implementation, this data identifier can be a hash value of the training data (which may be anonymized training data).
[0056] In one implementation, the data identifier can be generated by extracting data features from training data (which may be anonymized training data). Specifically, for training data in text / image / audio / video formats, the data identifier for the training data can be generated using the following methods respectively.
[0057] For training data in text format, the following steps can be used to generate data identifiers: perform necessary preprocessing on the text data, such as removing punctuation marks, converting to lowercase letters, and removing stop words, to ensure the consistency and standardization of the text data; extract key features from the text data, such as bag-of-words model, TF-IDF features, word embedding vectors, etc.; use a hash function to perform hash calculation on the extracted text features to generate a fixed-length unique identifier.
[0058] For training data in image format, the following steps can be used to generate data identifiers: perform necessary preprocessing on the images, such as resizing and grayscale conversion, to ensure the consistency and standardization of the image data; use a convolutional neural network (CNN) to extract the feature vectors of the images; and use a hash function to perform hash calculation on the extracted feature vectors to generate a fixed-length unique identifier.
[0059] For training data in audio format, the following steps are used to generate data identifiers: necessary preprocessing of the audio data, such as sampling rate conversion and noise reduction, to ensure the consistency and standardization of the audio data; extraction of audio feature vectors using Mel-frequency cepstral coefficients (MFCC) or other feature extraction methods; hash calculation of the extracted feature vectors using a hash function to generate a fixed-length unique identifier.
[0060] For training data in video format, the following steps are used to generate data identifiers: perform necessary preprocessing on the video, such as frame sampling and resizing, to ensure the consistency and standardization of the video data; extract features from each frame of the video, for example, using methods such as optical flow and convolutional neural networks to extract frame-level features; aggregate the frame-level features to form a video-level feature vector; and use a hash function to perform hash calculation on the aggregated feature vector to generate a fixed-length unique identifier.
[0061] In one implementation, the server can generate a data identifier for the training data based on the training data itself and information about the authorized user (e.g., the training party). This data identifier reflects the user corresponding to the training data. Therefore, in this implementation, when the same training data is authorized for use by different training parties, it is stored in the server as two copies of the training data, each with a different data identifier. Specifically, the server can pre-negotiate a key with the training party for encrypting the training data, and then generate the data identifier for the training data based on the training data and the key. For example, the server can hash the combination of the hash value of the training data and the key to generate the data identifier for the training data.
[0062] After generating a data identifier for the training data, the server can associate the data identifier with the identity identifier initially included in the training data (i.e., the identity identifier corresponding to the aforementioned de-identification process) and the training data (the de-identified training data). Simultaneously, the server returns the data identifier to the user device, enabling the user device to query the status of the training data within the blockchain system based on this data identifier.
[0063] In one implementation, the server may also encrypt the training data using a key pre-agreed with the user to obtain ciphertext data, and store the ciphertext data. This key can be a symmetric key or an asymmetric encryption key.
[0064] The server also generates metadata for the training data, which may include the hash value of the training data, the owner account of the training data, authorization information, description information, data type, server account, etc.
[0065] In step S305, the server sends a transaction Tx1 to the blockchain system to invoke the contract. Transaction Tx1 includes metadata.
[0066] The server can generate transaction Tx1, which is sent by the server's blockchain account. It calls the smart contract used for training data management, and the input parameters to the contract include the metadata of the training data. The metadata of the training data is stored in the contract state, so that the training data can be managed and authorized through the contract.
[0067] In one implementation, transaction Tx1 may also include a hash value of metadata, which is used to ensure that the metadata has not been tampered with.
[0068] The server can send transaction Tx1 to any node in the blockchain system to make it available in the blockchain system.
[0069] In step S307, the blockchain system executes transaction Tx1 and stores metadata in the contract state of the contract.
[0070] The contract state may include a training data table as shown in Table 1 below. This training data table can be stored in the contract state as the values of training data table variables defined in the contract. After executing transaction Tx1, each node in the blockchain can add a row corresponding to the training data included in transaction Tx1 to the training data table in the contract state. This row includes the data identifier of the training data and the metadata of the training data.
[0071]
[0072] Table 1
[0073] As shown in Table 1, the training data table includes not only the data identifier and metadata of each training data point, but also the status and digital human identifier of that training data. The status of the training data can include "Uploaded," "Training in Progress," "Training Completed," and "Destroyed." Each status is uploaded to the blockchain system by the server or the training party, updating the training data table. Specifically, after executing transaction Tx1, each blockchain node adds a third row of data to Table 1 based on the execution result of transaction Tx1, recording the data status of the training data as "Uploaded."
[0074] Digital human identifiers, such as digital human watermarks, are uploaded to the blockchain system by the training party after the digital human training is completed.
[0075] In one implementation, Table 1 may also include the hash values of the metadata of each training data (not shown in Table 1) to ensure that the metadata of the training data is not tampered with.
[0076] After confirming that the training data has been stored in the blockchain, the user device can notify the training party. The training party can do so through methods such as... Figure 4 The process shown obtains training data and trains the digital human based on the training data. Figure 4 This is a flowchart of the training data management method in the embodiments of this specification.
[0077] like Figure 4 As shown, in step S401, the training device sends a request to the server to use training data.
[0078] The usage request may include data identifiers for the training data, the blockchain account of the training party, etc. Additionally, the usage request may include data identifiers for one or more training data sets. The usage request may also include access permissions to the training data, such as read permissions and storage permissions. The usage request may also include the digital signature of the preset data by the training party, used to verify that the training party owns the training party's account.
[0079] In step S403, the server sends transaction Tx2, which invokes the contract, to the blockchain system to query whether the training party has the right to use it.
[0080] The server can generate transaction Tx2 in response to a data usage request and send transaction Tx2 to the blockchain system. Transaction Tx2 may, for example, call a permission determination function in the contract, and the input parameters to this function include the data identifier of the training data and the blockchain account of the training party. The usage request may also include access permissions to the training data, such as read permissions, storage permissions, etc. In one implementation, the input parameters of the function may include a digital signature of the preset data by the training party using its account private key.
[0081] In step S405, the blockchain system executes transaction Tx2 to determine whether the training party has the right to use it.
[0082] When executing transaction Tx2, each blockchain node in the blockchain system first verifies whether the sending account of transaction Tx2 is the server's account based on the server's account stored in the contract state. If the verification is successful, it reads Table 1 from the contract state based on the data identifier of the training data, finds the data row corresponding to the data identifier, and reads the authorization information corresponding to the training data from that data row to determine whether the authorization information includes the training party's blockchain account. If the authorization information includes the blockchain account, it also determines whether the current time is within the authorized time. If the current time is within the authorized time, it is determined that the training party has usage rights. Otherwise, it is determined that the training party does not have usage rights. In addition, the blockchain node can also determine whether the training party has the requested access rights based on the authorization information.
[0083] If the input parameters of the function include the digital signature of the trainer, the digital signature is first verified, and the above operations are performed only after the verification is successful.
[0084] After executing transaction Tx2, a blockchain node can generate a receipt for transaction Tx2, which includes information returned by executing the contract, such as information indicating whether the trainer has permission to use it.
[0085] Blockchain nodes can also store this definitive result in the contract state.
[0086] In step S407, the server obtains the determination result from the blockchain system.
[0087] The server can retrieve the receipt of transaction Tx2 from any blockchain node, thereby obtaining a determination of whether the blockchain node has permission for the training party to use the service. Alternatively, after executing transaction Tx2, the blockchain node can push information indicating whether the training party has permission to use the service to the server.
[0088] In step S409, the server provides training data to the training device if it determines that the training party has the necessary permissions.
[0089] After determining that the training party has the necessary permissions, the server can send the aforementioned anonymized training data to the training party's device. In one implementation, after determining that the training party has the necessary permissions, the server can send the aforementioned anonymized and encrypted training data to the training party's device. The training party's device can use the decryption key corresponding to the encrypted data to decrypt the encrypted data and obtain the anonymized training data.
[0090] In step S411, the training device trains the digital human based on the training data.
[0091] As mentioned above, the training data provided by the server to the training device may include various types of training data, such as video, text, images, and audio. The training device can then... Figure 4 The process shown retrieves this training data from the server sequentially. Alternatively, the training device can retrieve the training data from the server all at once by including a request for multiple training data in transaction Tx2.
[0092] The training device can train a digital person corresponding to these training data based on these training data. Then, the training device can calculate the digital person's identifier (e.g., digital watermark) based on the digital person and embed the digital watermark into the digital person's relevant data.
[0093] In step S413, the server sends transaction Tx3, which invokes the contract, to the blockchain system to update the state of the training data.
[0094] After providing the training data to the training device, the server can generate a transaction Tx3 that invokes the contract and send the transaction Tx3 to the blockchain system. The transaction Tx3 includes an identifier for the training data and information indicating that the training data has been provided to the training device.
[0095] In step S415, the blockchain system executes transaction Tx3 to update the state of the training data.
[0096] When each blockchain node executes transaction Tx3, it finds the row corresponding to the identifier of the training data in Table 1 of the contract status according to transaction Tx3, and updates the status of the training data from "uploaded" to "training" in that row.
[0097] In step S417, the training device sends a transaction Tx4 to the blockchain node to invoke the contract. Transaction Tx4 includes the identifier of the digital human and the identifier of the training data.
[0098] After completing the training of the digital human, the training device can generate a transaction Tx4 that invokes the contract. The transaction Tx4 may include the digital human's identifier and the data identifier of one or more training data used to train the digital human.
[0099] In step S419, the blockchain system executes transaction Tx4, updates the state of the training data, and associates the identifier of the stored digital human with the identifier of the training data.
[0100] When each blockchain node executes transaction Tx4, it first determines whether the sender of transaction Tx4 is the authorized ID of the training data involved in transaction Tx4. If so, the execution of transaction Tx4 continues; otherwise, the execution of transaction Tx4 ends, and the execution of transaction Tx4 is determined to have failed.
[0101] After successfully executing transaction Tx4, each blockchain node finds the row corresponding to the identifier of the training data in Table 1 of the contract status, updates the status of the training data from "training" to "training completed" in that row, and records the identifier of the digital human corresponding to the training data in the "digital human identifier" column of that row, thus storing the digital human identifier in association with the identifier of the training data.
[0102] exist Figure 4 The training data management method shown in the diagram further ensures the security of data access by controlling access to the training party through a blockchain system, and ensures the integrity and traceability of the data by recording and managing the metadata and status of the training data through the blockchain.
[0103] User devices can obtain information about the use of training data in a timely manner from the blockchain system. Once the user device determines that the training of the digital human is complete, it can instruct the server to destroy the training data through the blockchain system to ensure data security.
[0104] Figure 5 This is a flowchart of a training data management method as described in the embodiments of this specification.
[0105] like Figure 5 As shown, in step S501, the user equipment obtains the status of the training data from the blockchain system.
[0106] User devices can query the status of training data by sending a transaction to the blockchain system that invokes a contract. This transaction may include, for example, a data identifier of the training data to be queried. The blockchain system can respond to the user device's query transaction by returning the status of the training data to the user device.
[0107] In step S503, the user equipment sends a transaction Tx5 to the blockchain system to invoke the contract, instructing the deletion of training data.
[0108] After determining that the digital human's training is complete, the user device can generate a transaction Tx5 that invokes the contract. The input parameters to the contract in this transaction Tx5 include the data identifier of the training data to be deleted.
[0109] In step S505, transaction Tx5 is executed in the blockchain system to update the state of the training data in the contract state.
[0110] When executing transaction Tx5, each node in the blockchain system first determines whether the sender of transaction Tx5 is the owner of the training data involved in transaction Tx5. For example, based on the data identifier of the training data, the node queries the owner ID in the data row corresponding to the data identifier in Table 1 of the contract state to determine whether the sender of transaction Tx5 is consistent with the owner ID. If they are consistent, the execution of transaction Tx5 continues; otherwise, the execution of transaction Tx5 ends.
[0111] If the sender of transaction Tx5 passes the verification, after the execution of transaction Tx5 is completed, the blockchain node finds the data row corresponding to the training data identifier in Table 1 of the contract status according to transaction Tx5, and updates the status of the training data to "indicate deletion" in the data row.
[0112] In step S507, the server obtains information from the blockchain system to instruct the deletion of training data.
[0113] The server can periodically read Table 1 from the contract status in the blockchain system. After the status of a certain training data in Table 1 is updated to "indicate deletion", the server can read the data identifier of the training data to be deleted from Table 1.
[0114] In one implementation, the training device can obtain information from the blockchain system indicating the deletion of training data and send this information to the server. Alternatively, the training device may also store training data locally. Based on this information, it can delete the locally stored training data and send a transaction to the blockchain system to invoke the contract, storing information in the contract state indicating that the training device has deleted the training data.
[0115] In step S509, the server deletes the training data.
[0116] The server deletes the training data associated with the data identifier to be deleted.
[0117] In step S511, the server sends a transaction Tx6 to the blockchain system to invoke the contract. Transaction Tx6 includes information indicating that the training data has been deleted.
[0118] After deleting the training data, the server generates a transaction Tx6 that invokes the contract. Transaction Tx6 includes the data identifier of the deleted training data.
[0119] In step S513, the blockchain system executes transaction Tx6, updating the state of the training data in the contract state.
[0120] After executing transaction Tx6, each blockchain node in the blockchain system updates the status of the training data to "destroyed" in Table 1 of the contract status according to the data identifier of the training data in transaction Tx6, so as to indicate that the training data has been deleted from the server.
[0121] Figure 6 This is a node structure diagram of a blockchain system according to one embodiment of this specification. The blockchain system deploys contracts, and the state of each contract stores authorization information for training data. This authorization information includes authorized accounts. The nodes include:
[0122] The receiving unit 61 is used to receive the first transaction that invokes the contract. The first transaction is sent by the server to the blockchain system and includes the training party's account. It is used to determine whether the training party has the first right to use the training data.
[0123] The determining unit 62 is used to determine, based on the authorization information, whether the training party has the first usage permission according to the first transaction;
[0124] The sending unit 63 is used to send the determination result to the server.
[0125] Figure 7 This is a structural diagram of a server according to an embodiment of this specification. The server stores training data and includes:
[0126] The receiving unit 71 is configured to receive a training data usage request from the training device, wherein the usage request includes the training device's account and a requested first usage permission for the training data.
[0127] Sending unit 72 is configured to send a first transaction to the blockchain system in response to the usage request. The first transaction includes the training party's account and is used to determine whether the training party has first usage rights to the training data.
[0128] The receiving unit 71 is further configured to receive a determination result corresponding to the first transaction from the blockchain system, the determination result being used to indicate whether the training party has the first usage permission;
[0129] The sending unit 72 is further configured to send the training data to the training device when the determination result indicates that the training party has the first usage permission.
[0130] This specification also provides a computer-readable storage medium having a computer program stored thereon, which, when executed in a computer, causes the computer to perform actions such as... Figures 3-5 The method shown in any of the accompanying figures.
[0131] This specification also provides a computing device, including a memory and a processor, wherein the memory stores executable code, and when the processor executes the executable code, it implements, as described above. Figures 3-5 The method shown in any of the accompanying figures.
[0132] In the 1990s, improvements to a technology could be clearly distinguished as either hardware improvements (e.g., improvements to the circuit structure of diodes, transistors, switches, etc.) or software improvements (improvements to the methodology). However, with technological advancements, many methodological improvements today can be considered direct improvements to the hardware circuit structure. Designers almost always obtain the corresponding hardware circuit structure by programming the improved methodology into the hardware circuit. Therefore, it cannot be said that a methodological improvement cannot be implemented using hardware physical modules. For example, a Programmable Logic Device (PLD) (such as a Field Programmable Gate Array (FPGA)) is such an integrated circuit whose logic function is determined by the user programming the device. Designers can program and "integrate" a digital system onto a PLD themselves, without needing chip manufacturers to design and manufacture dedicated integrated circuit chips. Furthermore, nowadays, instead of manually manufacturing integrated circuit chips, this programming is mostly implemented using "logic compiler" software. Similar to the software compiler used in program development, the original code before compilation must be written in a specific programming language, called a Hardware Description Language (HDL). There are many HDLs, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, and RHDL (Ruby Hardware Description Language). Currently, the most commonly used are VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art should understand that by simply performing some logic programming on the method flow using one of these hardware description languages and programming it into an integrated circuit, the hardware circuit implementing the logical method flow can be easily obtained.
[0133] The controller can be implemented in any suitable manner. For example, it can take the form of a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, application-specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers. Examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicon Labs C8051F320. A memory controller can also be implemented as part of the control logic of the memory. Those skilled in the art will also recognize that, in addition to implementing the controller in purely computer-readable program code form, the same functionality can be achieved by logically programming the method steps to make the controller take the form of logic gates, switches, application-specific integrated circuits, programmable logic controllers, and embedded microcontrollers. Therefore, such a controller can be considered a hardware component, and the means included therein for implementing various functions can also be considered as structures within the hardware component. Alternatively, the means for implementing various functions can be considered as both software modules implementing the method and structures within the hardware component.
[0134] The systems, devices, modules, or units described in the above embodiments can be implemented by computer chips or physical entities, or by products with certain functions. A typical implementation device is a server system. Of course, this application does not exclude the possibility that, with the future development of computer technology, the computer implementing the functions of the above embodiments can be, for example, a personal computer, a laptop computer, an in-vehicle human-machine interaction device, a cellular phone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or any combination of these devices.
[0135] While one or more embodiments of this specification provide the operational steps of the methods described in the embodiments or flowcharts, more or fewer operational steps may be included based on conventional or non-inventive means. The order of steps listed in the embodiments is merely one possible order of execution among many steps and does not represent the only possible order. In actual device or end product execution, the methods shown in the embodiments or drawings may be executed sequentially or in parallel (e.g., in a parallel processor or multi-threaded processing environment, or even a distributed data processing environment). The terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, product, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, product, or apparatus. Without further limitations, the presence of other identical or equivalent elements in the process, method, product, or apparatus that includes the elements is not excluded. For example, the use of terms such as "first," "second," etc., is to denote names and does not indicate any particular order.
[0136] For ease of description, the above devices are described in terms of function, divided into various modules. Of course, when implementing one or more of these specifications, the functions of each module can be implemented in one or more software and / or hardware components, or a module that performs the same function can be implemented by a combination of multiple sub-modules or sub-units. The device embodiments described above are merely illustrative. For example, the division of units is only a logical functional division; in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, indirect coupling or communication connection between devices or units, and may be electrical, mechanical, or other forms.
[0137] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0138] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0139] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0140] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0141] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.
[0142] Computer-readable media, including both permanent and non-permanent, removable and non-removable media, can store information using any method or technology. Information can be computer-readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage, graphene storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.
[0143] Those skilled in the art will understand that one or more embodiments of this specification can be provided as a method, system, or computer program product. Therefore, one or more embodiments of this specification may take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, one or more embodiments of this specification may take the form of a computer program product implemented on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0144] One or more embodiments of this specification can be described in the general context of computer-executable instructions, such as program modules, that are executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform a particular task or implement a particular abstract data type. One or more embodiments of this specification can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communication network. In a distributed computing environment, program modules can reside in local and remote computer storage media, including storage devices.
[0145] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, system embodiments are basically similar to method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments. In the description of this specification, the terms "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., refer to specific features, structures, materials, or characteristics described in connection with that embodiment or example, which are included in at least one embodiment or example of this specification. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described can be combined in any suitable manner in one or more embodiments or examples. Moreover, without contradiction, those skilled in the art can combine and integrate the different embodiments or examples described in this specification and the features of different embodiments or examples.
[0146] The above description is merely an embodiment of one or more embodiments of this specification and is not intended to limit the scope of this specification. Various modifications and variations can be made to the one or more embodiments of this specification by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this specification should be included within the scope of the claims.
Claims
1. A training data management method, executed by nodes of a blockchain system, wherein contracts are deployed in the blockchain system, the state of the contracts stores authorization information for training data, the authorization information including authorized accounts, and the training data is stored in a server, the method comprising: The first transaction that invokes the contract is received. The first transaction is sent by the server to the blockchain system and includes the first account of the training party, which is used to determine whether the training party has the first right to use the training data. Based on the first transaction, determine whether the training party has the first usage permission based on the authorization information; The determination result is sent to the server.
2. The method according to claim 1, wherein the authorization information further includes the authorization time and / or the type of authorization permission corresponding to the authorized account.
3. The method according to claim 1 or 2, wherein the state of the contract further stores the state of the training data, the current state being an upload state, and the method further includes: The server receives a second transaction that invokes the contract, the second transaction including an identifier of the training data, indicating that the training data has been provided to the training party; According to the second transaction, the state of the training data is updated to the training state.
4. The method according to claim 3, wherein the state of the contract further stores the second account corresponding to the server, and updating the state of the training data to the training state according to the second transaction includes: If the sending account of the second transaction is verified to be the second account, the status of the training data is updated to the training state.
5. The method according to claim 3, further comprising: The third transaction, which invokes the contract, is received from the training device. The third transaction includes the identifier of the training data and the identifier of the digital human corresponding to the training data. According to the third transaction, the status of the training data is updated to the training completed status, and the identifier of the training data and the identifier of the digital human are associated and stored in the status of the contract.
6. The method according to claim 5, wherein updating the state of the training data to a training completion state according to the third transaction, and associating the identifier of the training data and the identifier of the digital human in the state of the contract, comprises: If the sending account of the third transaction is verified to be the first account, the status of the training data is updated to the training completed status according to the third transaction, and the identifier of the training data and the identifier of the digital human are associated and stored in the status of the contract.
7. The method according to claim 5, further comprising: The user receives a fourth transaction from the user equipment that invokes the contract. The fourth transaction includes an identifier of the training data, which is used to indicate the deletion of the training data. The user is the provider of the training data. Based on the fourth transaction, the state of the training data is updated to indicate deletion. The server receives a fifth transaction invoking the contract, the fifth transaction including the training data identifier to indicate that the training data has been deleted from the server; The training data is updated to a deleted state based on the fifth transaction.
8. The method according to claim 7, wherein the state of the contract further stores the user's third account. The step of updating the state of the training data to an indication of deletion based on the fourth transaction includes: If the sending account of the fourth transaction is verified to be the third account, the status of the training data is updated to indicate deletion based on the fourth transaction.
9. A training data management method, executed by a server, wherein the server stores training data, the method comprising: The training device receives a request to use training data, the request including the training device's first account and the requested first permission to use the training data; In response to the usage request, a first transaction is sent to the blockchain system. The first transaction includes the training party's account and is used to determine whether the training party has first usage rights to the training data. The system receives a determination result corresponding to the first transaction from the blockchain system. The determination result is used to indicate whether the training party has the first usage permission. The blockchain system stores authorization information of the training data, and the authorization information includes the authorized account. If the determination result indicates that the training party has the first usage permission, the training data is sent to the training party's device.
10. The method of claim 9, further comprising: Receive training data and authorization information from user equipment; Store the training data and generate metadata for the training data, the metadata including the authorization information; Generate a sixth transaction that invokes the contract, the sixth transaction including metadata of the training data; The sixth transaction is sent to the blockchain system.
11. The method according to claim 10, wherein storing the training data comprises: The sensitive information in the training data is replaced with an identifier corresponding to the sensitive information, and the sensitive information and the processed training data are stored.
12. The method according to claim 10, wherein the metadata includes at least one of the following: the hash value of the training data, the user's account, the server's account, and the data type of the training data.
13. The method according to claim 10, further comprising: Based on the training data and the first data uniquely corresponding to the training method, a data identifier for the training data is generated, and the data identifier for the training data is returned to the user device. The storage of training data includes: storing the training data in association with the data identifier; The sixth transaction also includes the data identifier.
14. The method according to claim 13, wherein sending the training data to the training device comprises: The training data is encrypted using a key corresponding to the training party to obtain ciphertext data, and the ciphertext data is sent to the training party device. The first data includes the key.
15. The method of claim 9, further comprising: Obtain the first information from the blockchain system to instruct the deletion of training data; Delete the training data based on the first information; Generate a fifth transaction for the calling contract, the fifth transaction including second information indicating that the training data has been deleted; The fifth transaction is sent to the blockchain system.
16. A node in a blockchain system, wherein contracts are deployed in the blockchain system, the state of the contracts stores authorization information for training data, the training data is stored in a server, and the authorization information includes authorized accounts, the node comprising: The receiving unit is used to receive the first transaction that invokes the contract. The first transaction is sent by the server to the blockchain system and includes the training party's account, used to determine whether the training party has the first right to use the training data. The determining unit is configured to determine, based on the authorization information, whether the training party possesses the first usage permission; A sending unit is used to send the determination result to the server.
17. A server storing training data, the server comprising: A receiving unit is configured to receive a training data usage request from the training device, wherein the usage request includes the training device's account and a requested first usage permission for the training data. A sending unit is configured to send a first transaction to the blockchain system in response to the usage request. The first transaction includes the training party's account and is used to determine whether the training party has first usage rights to the training data. The blockchain system stores authorization information for the training data, and the authorization information includes the authorized account. The receiving unit is further configured to receive a determination result corresponding to the first transaction from the blockchain system, the determination result being used to indicate whether the training party has the first usage permission; The sending unit is further configured to send the training data to the training device if the determination result indicates that the training party has the first usage permission.
18. A computing device comprising a memory and a processor, wherein the memory stores executable code, and the processor, when executing the executable code, implements the method of any one of claims 1-15.