Vana uses a Proof of Contributionsystem to validate data submitted to the network. "Valid" means something different in each DLP, because different DLPs value data differently.
The recommended way of validating data securely in the Vana Network is by using the Satya Network, a group of highly confidential nodes that run on special hardware. At a high level, the data contributor adds unverified data, and requests a proof-of-contribution job from the Satya Validators (and pay a small fee to have their data validated). Once validated, the Satya validator will write the proof on chain.
To run PoC in the Satya Network, a DLP builder must implement a simple proof-of-contribution function using this template.
PoC Template: https://github.com/vana-com/vana-satya-proof-template
The diagram below explains how this PoC template works.
The data contributor adds their encrypted data onchain, via the Data Registry.
They request a validation job, paying a small fee. Once a Satya node is available to run the job, they connect directly to the node, and send them the encryption key and the proof-of-contribution docker image that needs to run on the data to validate it.
The Satya node receives the key, and downloads the encrypted file, and decrypts it
The Satya node places the decrypted file in a temporary, shielded* location. The node operator cannot see the contents of this location.
The Satya node downloads and initializes a docker container to run the specified proof-of-contribution, and mounts the input and output volumes. The PoC container will have access to the decrypted file.
The PoC container runs its validations on the decrypted data, and outputs the attestation. More information on data attestation can be found here: Data Attestation.
The Satya node reads the output, and generates the proof.
The Satya node writes the proof onchain, and claims the fee as a reward for completing that work.
* A Gramine shielded container is a specialized type of container that leverages the Gramine library OS to run applications in a secure, isolated environment, typically utilizing hardware-based trusted execution environments (TEEs) like Intel SGX.
More information on integrating with the Satya network for data validation is coming soon.