zkTLS Validation

GitHub is a centralized, off-chain system. Smart contracts cannot natively verify whether:

  • a pull request exists

  • a pull request was merged

  • a contributor owns a GitHub account

  • an issue and PR are correctly linked

zkPull solves this by using zkTLS (Zero-Knowledge Transport Layer Security) to bring verifiable GitHub data on-chain without revealing private credentials or raw API responses.

zkTLS enables zkPull to cryptographically prove facts about GitHub, not trust GitHub as an oracle.


What zkTLS Validates

Each zkTLS proof generated by zkPull validates the following claims:

  • Repository Verification Confirms that the target GitHub repository exists and is publicly accessible.

  • Issue ID Verification Ensures the GitHub issue referenced by the bounty matches the repository and claim.

  • Contributor Identity Verification Verifies that the GitHub username associated with the PR matches the claimant.

  • Pull Request Merge Status Proves that the pull request has been successfully merged into the target branch.

Each validation result is binary and objective: valid or invalid.


How zkTLS Validation Works (High-Level Flow)

  1. Contributor submits a Pull Request URL

  2. zkPull initiates a zkTLS-secured HTTPS session with GitHub

  3. GitHub responds with PR and repository data

  4. zkTLS generates a zero-knowledge proof attesting to:

    • merge status

    • repository correctness

    • identity consistency

  5. Sensitive data (tokens, raw responses) are never exposed

  6. Proof output is passed to the on-chain validation layer

At no point does zkPull store or leak GitHub credentials.


Why zkTLS Is Critical

Without zkTLS, zkPull would need to rely on:

  • centralized backend servers

  • trusted API relayers

  • manual verification

zkTLS replaces these trust assumptions with cryptographic guarantees.

Key advantages:

  • No trusted oracle required

  • No API key custody

  • No replayable or forgeable responses

  • Privacy-preserving by design

This makes zkPull suitable for high-value bounties and security-sensitive use cases.


Privacy & Security Guarantees

zkTLS ensures:

  • GitHub access tokens are never revealed on-chain

  • Raw GitHub responses are never published

  • Only verification results are exposed

  • Proofs cannot be reused for different claims

This balances verifiability with developer privacy.


zkTLS as a Reusable Primitive

In zkPull, zkTLS is used to verify GitHub pull requests. However, the same validation pattern can be extended to:

  • Other GitHub events (commits, releases)

  • Bug bounty disclosures

  • CI / test result verification

  • Additional developer platforms

This positions zkTLS as a general-purpose off-chain verification layer, not a single-use component.


Failure Handling

If zkTLS validation fails:

  • The claim is rejected automatically

  • No funds are released

  • No manual intervention is required

Failure reasons may include:

  • PR not merged

  • Repository mismatch

  • Identity mismatch

  • Invalid or malformed PR URL

All failures are deterministic and reproducible.

Last updated