What changed
The pseudonymiser, the splitter, the router and the rebuilder now run inside an Intel TDX enclave hosted on Phala. Your client encrypts the request to the enclave's key. The gateway outside the enclave carries ciphertext and a key id, nothing else. The enclave decrypts, replaces identifiers with typed placeholders, splits the task, sends each shard to its model, merges the replies, validates the merge, restores the identifiers, encrypts the answer back to you and signs the receipt.
The enclave key is bound to a published code measurement. A modified enclave carries a different measurement, and the SDK refuses to send to it.
How to verify it
Measurements for every released enclave build are published next to the source commit. The SDK pins the current one and raises 424 attestation_mismatch if the enclave it is talking to is not on the list. Every reply also carries the quote in the receipt, so you can check after the fact.
Who sees what now
| Before | Now | |
|---|---|---|
| Frontier model | one shard, WISPR exit address | one shard, WISPR exit address |
| Enclave | did not exist | whole request, inside TDX, attested |
| WISPR gateway | whole request, in memory | ciphertext and a key id |
| WISPR operators | could read memory | account id, balance, shard shapes, model ids |
What it does not do
It does not protect against a flaw in TDX itself, and it does not change what a frontier provider does with the shard it receives. Sharding exists so that shard is useless alone. Both limits are written into the privacy policy, because a privacy claim that hides its limits is not one.
