Skip to content

blog: Where does your trust live? Cryptographic soundness and the TEE trade - #63

Merged
heeckhau merged 6 commits into
masterfrom
blog/where-trust-lives
Jun 23, 2026
Merged

blog: Where does your trust live? Cryptographic soundness and the TEE trade#63
heeckhau merged 6 commits into
masterfrom
blog/where-trust-lives

Conversation

@heeckhau

@heeckhau heeckhau commented Jun 11, 2026

Copy link
Copy Markdown
Member

Important

Merge #62 (companion post on public verifiability) first — this post links to it.

Summary

New blog post examining Peer's move from zkTLS to a TEE (AWS Nitro Enclaves) for payment verification.

  • Not an integrity argument: on-chain both approaches end at the same signed attestation, and against a single attestor a TEE can even raise the integrity bar.
  • A privacy argument: with zkTLS the credential never leaves the user's device; with a TEE it is decrypted inside the operator's hardware, and the confidentiality rests on an attestation signature rather than on structure.
  • Walks through the attest, then encrypt pattern, what client-side attestation checks do and don't settle, and the "three anchors" framing (operator's word / hardware / structure).
  • Closes with the speed question: current proxy-mode benchmarks (~1.6s) vs the thirty-second figure, and SpeakUp as the cryptographic path forward.

Includes light/dark figures for the plaintext boundary and three-anchors diagrams.

heeckhau added 4 commits June 17, 2026 11:31
…ness vs TEEs

A friendly, principle-first piece on Peer's zkTLS->TEE switch: same on-chain integrity, but privacy moves from a structural/cryptographic guarantee (plaintext never leaves the device) to one contingent on a signature. Includes the 'where the plaintext lives' and 'three anchors' diagrams (light/dark), and the 'you can have both' synthesis (zkTLS verifier inside a TEE). Cross-links the public-verifiability companion post (#62).
… the two attestation signatures

- Attribute the thirty-second figure to Peer's own framing, since the
  post later notes it comes from an older proxy implementation
- Separate the attestor's payment signature (shared, strengthened by
  the TEE) from the enclave attestation document the client trusts
  before handing over the credential (TEE-only)
- Reframe the forgery scenario as a credential theft, not a forged
  payment, so the confidentiality stakes are explicit
- Update figure SVGs
… cross-link

- Rename folder to 2026-06-19 (publishes after the merged companion post)
- Update companion-post link to its merged slug /blog/2026/06/17/public-verifiability
- Add an upfront "two promises" framing box and label the two key
  sections "Integrity:" and "Privacy:" so the reader gets the map first.
- Open on the trust question rather than speed; recast the intro stance
  ("we are not neutral") and drop the "attack" framing.
- Call Peer the poster child for production zkTLS.
- Accuracy fixes: credential reaches only the server it logs into (not
  "never leaves the device"); forging an attestation also means the
  vendor's signing keys, not just breaking hardware; "Which TEE you pick"
  instead of "the brand on the chip"; drop the bug-immunity overclaim;
  scope the speed claim to Peer's payment case instead of asserting user
  behavior.
- Rework selective disclosure structurally ("reveal only what is
  necessary"); distinguish forged payment (integrity) from stolen
  credential (privacy) without dismissing either.
- Close "You can have both" on the synthesis; rhetorical-question lead-in.
- Add the "why not both?" image; update plaintext_boundary diagram label
  to match the prose; remove the arm-wrestle figure.
@heeckhau
heeckhau force-pushed the blog/where-trust-lives branch from b183f08 to 9ff1b88 Compare June 19, 2026 12:44
@0xSachinK

Copy link
Copy Markdown

Thanks for the thoughtful writeup. I agree with the high-level distinction here: zkTLS and TEE-TLS put trust in different places. A few counterpoints / clarifications from the Peer side:

  1. The right critique is not "Peer/operator sees credentials." In the TEE flow, the client verifies a fresh Nitro attestation and then encrypts session material to a key bound to the attested enclave. The plaintext is processed inside Nitro enclave memory for a bounded verification request; it is not exposed to the EC2 host/operator under the Nitro threat model.

  2. The "attacker binds their own key to the expected measurement" scenario is a catastrophic break of Nitro remote attestation or the trusted root / measurement binding. That is a valid general TEE trust assumption to call out, but it is not a Peer-specific operator failure mode. Under the advertised model, an operator cannot swap in its own key and still pass client verification.

  3. A TEE here is not just a "signature from a chip." The enclave performs the payment-platform request, validates the response against the expected payment details, and only then emits the payment attestation. On-chain, both systems end in a delegated attestor signature, but the TEE changes what it takes for the signer to lie.

  4. The latency comparison should be made at the end-to-end production flow level. The ~30s number came from the deployed user path we replaced. A standalone proxy-mode benchmark is useful, but it is not a full comparison of browser/mobile capture, proving, network round trips, failure rate, and p95/p99 completion.

I would phrase the Peer position as: TEE-TLS is not the same formal privacy model as zkTLS. It is a pragmatic trust shift: user secrets move from "never leave the device" to "only enter a remotely attested enclave that the operator cannot inspect." Reasonable people can prefer the zkTLS model, but "privacy is just an operator promise" or "Peer can see credentials" is not accurate.

…phasis cleanup

- credit Peer's 30s as a real production figure (not a benchmark) from an
  older proxy implementation
- state Nitro isolation plainly (Peer cannot read enclave memory); the
  critique is the shifted basis of privacy, not that Peer sees credentials
- frame the forged-attestation case as an AWS signature-chain break, not a
  unilateral operator move; refocus the closer on 'no secret to leak'
- note the enclave validates the response before signing
- split terminology: 'attestor's signature' (integrity output) vs
  'attestation' (TEE self-attestation), post-wide
- tighten bold to labels and coined terms only; move conceptual contrasts
  to italic; de-italicize quoted text
- set post date to 2026-06-23
@heeckhau
heeckhau merged commit 6d93dc8 into master Jun 23, 2026
1 check passed
@heeckhau
heeckhau deleted the blog/where-trust-lives branch June 23, 2026 12:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants