Internals

The internals workings of the platform. This goes in detail regarding the underlying technology and more!
💡Circuits

Architecture

Image without caption

User Flow (Steps 1 → 2 → 3)

  1. Upload the .eml file
    1. The user uploads an email (.eml) that contains incriminating or whistleblowing content.
  1. Upload Sensitive Documents
    1. The user also uploads supporting documents (e.g., PDFs, images, reports) which are encrypted using SEAL, your on-chain encryption system.
  1. Write an Article (Optional)
    1. The user may write an explanatory article giving insights or context to the documents and email. This can be used for publishing or further evaluation.
      More details here

Merkle Tree Construction

  • The email body is split into leaves in MerkleTree.ts.
  • You then compute the Merkle siblings of the content and extract them using get_siblings.
  • This prepares the inclusion proof that will be used in the ZK circuit. More detail here

Document Encryption & Access Control

  • The uploaded documents are encrypted using SEAL, a secure on-chain encryption + access-control system.
  • These encrypted documents are stored on Walrus, a secure storage layer.
  • The ZK proof (generated earlier) is uploaded along with metadata to Walrus via a new_leak.

Governance & Access List

  • DAO Governance manages the allow-list for accessing leaked documents.
  • The Allow list in SEAL ensures only legislative authorities
  • Government officials (or other high-authority roles) may propose themselves to be added to the access list via on-chain DAO governance.