Back to Blog
TechnologyFebruary 20258 min read

What Is vouch and How Does zkTLS Work?

vouch is the cryptographic layer powering AudienceCheck. Built by the vlayer team, it uses zero-knowledge proofs over TLS to verify any HTTPS data source - without ever exposing your credentials or raw data. We break it down end-to-end.

Creator's Browserinstagram.com/insights128.4Kfollowers42% US · 18% UK① TLS sessionbrowser ↔ InstagramTLS dataTLS Notary(vlayer infrastructure)1. Witnesses TLS handshake2. Records server response3. Signs commitment hash4. Generates ZK circuit② ZK proof generationno credentials seenzk proofProof Output✓ handle: @alex_creates✓ followers: 128,400✓ reach (30d): 34,200✓ US audience: 42%③ Shareable linktamper-proof · public

What is vouch?

vouch is an application that allows users to prove specific claims about data they receive from any HTTPS endpoint - without revealing their credentials, session tokens, or the underlying raw response. It's built on top of zkTLS protocol developed by vlayer on top of TLSNotary.

The core insight is elegant: every time you load a webpage or API response, your browser exchanges securely encrypted data via TLS. zkTLS extends this by having a notary actively co-participate in the TLS session through multi-party computation (MPC) - jointly deriving keys, encrypting requests, and decrypting responses with the user, without either party ever holding the full session key. The client then creates commitments to the plaintext from this joint computation, which the notary signs without ever seeing the raw, plaintext data. This is the foundation of zkTLS..

How TLS works (and why it matters for zkTLS)

TLS is the protocol underlying every HTTPS connection. When your browser connects to instagram.com, they perform a so-called handshake: the server presents a certificate proving its identity, both sides agree on a session key, and all subsequent data is encrypted with that shared secret.

Two properties of TLS matter for zkTLS. First, the server proves its identity during the handshake by presenting a certificate - so the client (and any co-participating notary) can be certain they're talking to the real server. Second, every record is protected by an authentication tag, which guarantees that the data has not been tampered within transit. Together, these properties mean that if a notary co-participates in the TLS session via MPC - contributing to key derivation and jointly processing every encrypted record - it can later sign commitments attesting that specific data genuinely came from a particular server, without ever having seen the data itself.

ClientNotaryServer (Instagram)ClientHello + notary witness requestServerHello + certificatenotary co-signs session keyGET /insights (encrypted request)Encrypted response — notary commits hashNotary generates ZK proof from committed response · no plaintext leaves client

vlayer's implementation: multi-party TLS notarization

The vlayer team (backed by a16z Crypto CSX) has built a production-grade zkTLS stack that implements multi-party computation to allow a notary to co-participate in the TLS handshake without gaining access to the session keys or data in plaintext.

In practice, the flow works as follows:

  1. 1

    Request initiation

    The user (creator) triggers a verification. The vouch SDK initiates a TLS session to the target server (e.g. Instagram's Insights endpoint) with the vlayer notary as an active MPC co-participant.
  2. 2

    Notary witnessing

    The vlayer notary participates in the TLS handshake via a 2PC (two-party computation) protocol. It contributes to key derivation without ever knowing the full plaintext session key — meaning it cannot decrypt the traffic independently.
  3. 3

    Ciphertext verification and attestation

    The server responds with encrypted data. The client and notary jointly verify the authenticity of each encrypted record using MPC - confirming it hasn't been tampered with - but neither party decrypts it yet. After the TLS session closes, the notary reveals its key share, allowing the client to decrypt locally. The client then proves to the notary, using a zero-knowledge protocol, that the plaintext it claims matches the authenticated ciphertext - without revealing the plaintext itself. That's the power of zero-knowledge proofs. The notary signs this proof, producing an attestation that the data genuinely came from instagram.com at that time - without ever learning what it contained.
  4. 4

    Proof publication

    The resulting attestation is a compact, portable artifact: it includes the notary's signature attesting to the TLS session. A verifier who trusts the notary can validate it independently. AudienceCheck stores the attestation and generates a shareable link.

A concrete example: verifying Instagram follower count

Example verification flow

Creator
Opens AudienceCheck, enters @alex_creates
Browser
Establishes TLS session with instagram.com/insights
Notary
Co-participates in TLS via MPC via vouch appliaction
Output
Attestation stored → audiencecheck.com/abc123 shareable link

The brand or buyer who receives the shareable link sees the verified stats and can independently confirm the proof. They need to trust the vlayer notary (that it faithfully participated in the MPC protocol), but they don't need to trust AudienceCheck, the creator, or Instagram. The cryptographic attestation guarantees the data is genuine — the notary only attests to the session, never sees the underlying data, and cannot forge results.

Why zero-knowledge? Why not just show the data?

A natural question: why not simply have the creator log in to a third-party app and let that app read the stats directly? The answer is privacy and practicality.

Granting OAuth access to a third-party app creates a persistent connection — the app could monitor ongoing activity, pull data over time, or become a liability if breached. Platform terms of service often prohibit scraping or bulk access. And creators are rightly suspicious of apps asking for broad account permissions.

Zero-knowledge proofs solve this elegantly: the creator proves a specific claim at a specific point in time, without granting any ongoing access. The proof is a snapshot, not a tap. Once generated, it can be shared with anyone without exposing any additional information about the account.

vouch in practice: what AudienceCheck verifies

Using vouch application, AudienceCheck currently verifies the following Instagram fields for creators:

Follower count

Total verified followers at time of proof

Post count

Total published posts

Views (30d)

Total views in the last 30 days

Accounts reached (30d)

Unique accounts reached

Audience by country

Top 4 countries + percentages

Verified handle

Cryptographic link between proof and @handle

See it in action

Generate your own cryptographic verification in under two minutes. Free for Instagram.
Verify your account →