Zipwire Documentation
Visit Zipwire
  • 👋Welcome to Zipwire
  • Overview
    • 💡What is it?
    • 🙋‍♀️Who can use it?
    • ✨Our Features
    • 🚗Can I test drive it?
      • 📦Setting up Zipwire Approve
      • 📥Setting up Zipwire Collect
    • 🔑Logins & Invitations
    • 🐢Zipwire Collect: Rapid Onboarding, Effortless Compliance
    • 💾Data Ownership in Zipwire
  • Zipwire Approve
    • 🏅How Zipwire Approve is radically different and speeds up pay day
    • ⛔Why we don't track start and end times
    • 📦Unboxing key concepts
      • 📜Accounts
      • ⏲️Timesheets
      • 👷Senders
      • 🚦Approvers
      • 👑Processors
      • ⤵️Workflows
      • 🏷️Assignments
      • 📐Billing Plans
      • 💱Rate Plans
      • 📬Teams & Inboxes
      • 🏢Workplaces
      • 🛡️Clients
      • ✍️The Journal
      • 🤸Activities
      • 💸Payment Methods
    • 🔲Logical structure
    • 🛠️Set up your workplace
    • 🚥Processing stages
    • 💵Understanding invoicing
    • 🏷️Using assignments
      • 🏖️Holiday assignment
  • Zipwire Collect
    • 🗄️Effortless Document Collection for Any Need
    • 🟢Get Started
    • 😭IDSP, IDVT, KYC, KYB and AML
      • 🤳Selfie Checks Powered by Yoti
      • ⛓️Blockchain Attestations
    • 📄Using Packs
    • 🤖Machine Vision
      • 🤷Failure to Recognise
      • 🪪Document Types
    • ✍️Manual Entry for Streamlined Information Gathering
    • ✨Creating a Collection with AI
    • 👀What the Respondent Sees at Their End
    • ♻️Lifecycle of a Collection
    • 🚚Bulk Upload
    • 🔍Document Inspection
  • Fundamentals
    • 🛡️Security
      • 📲Authenticator mobile apps
      • 🔐Two factor in Zipwire
      • Wallet Connections
      • Sign-in with Ethereum
      • Attestations
        • The "IsAHuman" Attestation: Purpose and Limitations
        • Zipwire’s Master Attester Wallet Address and Public Key
      • Wallet Verification Guide
        • Introduction to Sleeper Wallets and Blockchain Legends
        • How Sleeper Wallets Are Created
        • Verifying Attested Wallets
        • The Market for Selling and Buying Attested Wallets
        • Holistic Evaluation of Ethereum Wallets
        • The Future of Attestations and Wallet Verification
        • Verifying Zipwire’s Merkle Root Attestations for Developers
      • Understanding Merkle Trees and Proofs
  • Use Cases
    • 🎭Identity Checks - Right to Work
    • 🪪Compliance - Know Your Customer
    • 🎨For Senders
      • 💬Sending journal updates via WhatsApp
      • 🤸‍♂️Naming activities
      • ✍️Tracking time in your Journal
      • ⏲️Send your first timesheet
    • 📱Tracking time via WhatsApp
    • 🖥️For Approvers
      • 💬Approving timesheets via WhatsApp
  • Troubleshooting
    • 🔀Tangled Identities
Powered by GitBook
On this page
  • Overview
  • What Is a Merkle Tree?
  • What Is a Merkle Proof?
  • Why Are They Important?
  • Practical Applications
  1. Fundamentals
  2. Security

Understanding Merkle Trees and Proofs

Overview

Merkle trees and proofs are powerful tools in blockchain technology, enabling efficient and secure verification of data, such as identity attestations in Ethereum wallets. This page explains what Merkle trees and proofs are, how they work, and their role in ensuring trust and privacy.

What Is a Merkle Tree?

A Merkle tree is a data structure used to organize and verify large sets of data efficiently. It works by:

  • Hashing Data: Each piece of data (e.g., an identity document’s details) is hashed—a process that creates a unique, fixed-length string.

  • Pairing Hashes: Hashes are paired and hashed again, forming a tree-like structure.

  • Root Hash: The top of the tree, called the Merkle root, is a single hash representing all the data below it.

For example, in a Zipwire attestation, details like a user’s name and ID number are hashed and combined into a Merkle root, which is stored on the blockchain.

What's a Hash? A hash is a unique, fixed-length string (like a digital fingerprint) created by a one-way function that transforms input data (e.g., a name or ID). For example, the input “Alice” might produce a hash like 5e8f...3b2a.

  • One-Way Nature: A hash function is designed to be irreversible—you can’t easily reconstruct the original data from the hash. This ensures security in attestations, like Zipwire’s identity verifications.

  • Brute-Force Resistance: Guessing the input (brute-forcing) requires trying countless combinations, which could take years or centuries due to the computational complexity. For instance, modern hash functions like SHA-256 produce 2^256 possible outputs, making guessing impractical.

This protects sensitive data in Merkle trees, ensuring only authorized proofs can verify attestations.

What Is a Merkle Proof?

A Merkle proof is a way to verify that a specific piece of data belongs to a Merkle tree without revealing the entire dataset. It includes:

  • The hash of the data (e.g., a user’s name).

  • A small set of intermediate hashes from the tree.

  • A path showing how these hashes combine to reach the Merkle root.

By comparing the proof to the Merkle root on the blockchain, anyone can confirm the data’s inclusion without seeing other sensitive information.

Why Are They Important?

Merkle trees and proofs offer key benefits in blockchain applications like wallet attestations:

  • Efficiency: They allow verification of large datasets using minimal data, reducing blockchain storage and computation needs.

  • Privacy: Users can prove specific details (e.g., “I’m over 18”) without exposing unrelated data (e.g., their full ID).

  • Trust: The Merkle root, stored on-chain, ensures data integrity, as any tampering would change the root hash.

Practical Applications

In the context of Zipwire and attested wallets:

  • Identity Verification: A wallet with a Zipwire attestation might include a Merkle root of an identity document. The holder can provide a Merkle proof to verify specific details (e.g., name or age) to a dApp.

  • Bot Prevention: Merkle proofs help confirm human attestations (e.g., “IsAHuman”) without compromising privacy.

  • Scalability: Platforms can verify users efficiently across decentralized systems.

PreviousVerifying Zipwire’s Merkle Root Attestations for DevelopersNextIdentity Checks - Right to Work

Last updated 4 days ago

To explore attestation verification further, see .

🛡️
Verifying Attested Wallets