Input and Output Encryption
The user’s client encrypts the input. The Worker encrypts and returns the result in chunks, which the client decrypts for display.
TrueOpen
Privacy protection covers payment, task identity, and inference content. Users authorize tasks with a public-key address and a digital signature, without disclosing their names or home addresses, and each task uses its own keys rather than one shared public identifier.
They can optionally encrypt inputs and inference results using AES-256-GCM authenticated encryption. Data keys are wrapped using ECIES public-key encryption and delivered to authorized recipients according to their task roles.
The project team, storage nodes, and other organizations cannot decrypt user content solely by virtue of their identity or administrative privileges.
The user’s client encrypts the input. The Worker encrypts and returns the result in chunks, which the client decrypts for display.
The protocol selects Workers and Verifiers using future randomness. The required keys are then delivered to the selected nodes. Workers and Verifiers need access to the plaintext relevant to their assigned computations.
Builders store ciphertext and wrapped keys without holding the unencrypted data keys. Materials are retained for the period required by the task and any review, then deleted according to the retention rules.
Payment and Task Identity
A blockchain address alone does not keep a user unlinked. If an address is tied to an identity through know-your-customer checks or network information, public payments, refunds, and order signatures can still connect task records back to that user. The shielded pool and per-task keys address that link; content encryption, described above, addresses the contents.
Users deposit into a shared pool and receive private notes. The chain records cryptographic commitments to the notes; users keep the secrets needed to spend them. Submitting a task means proving spending authority and conservation of value in zero knowledge, without revealing which note was used. Each spend publishes a unique nullifier, which the chain uses to reject double spending.
Accepting a task consumes the input notes, moves the budget into escrow, and creates private change notes in a single state transition. Providers can confirm the budget is funded, while the spending proof does not reveal which deposit supplied it. These proofs authorize spending only — they are separate from the proofs used to verify inference.
The SDK derives a separate control key and encryption recipient key for each task. The control key authorizes orders, retrieval, and permitted cancellations; the recipient key receives wrapped key packages. Relayers submit the transactions, so a long-term account never signs the task, and tasks are not grouped by an on-chain user session.
At final settlement, refundable funds return to the pool as new notes under the user’s control, with no claim step required. Cancellation still requires task authorization and accounts for costs already incurred. Challenge bonds and verification budgets can also be paid from the pool, so raising a challenge does not force a user to expose a long-term account.
Accountability is unchanged. The model, task budget, actual fees, execution status, and service-node identities stay public, and Workers, Verifiers, and Builders remain answerable under their public identities. Private payment does not alter verification, settlement, or penalty rules.
What remains visible: deposit and withdrawal addresses, amounts, and times are public and may provide linking clues. What the pool hides is the direct funding link between a deposit and a task, not the deposit itself. Private mode also routes requests through relays so a direct network connection does not re-expose the association.
Status: shielded-pool payments and per-task keys are part of the Phase 2 roadmap for data availability, privacy, and smart contracts. See the development roadmap for what is planned versus available, and Section 9 of the whitepaper for the full design.
Data Availability
Verification must continue even after the Worker leaves. Multiple Builders store task materials in the data availability (DA) layer. On-chain commitments allow participants to check that retrieved materials have not been altered.