← Back to Projects

Project

Immutable Ledger

Cryptographic double-entry ledger with Merkle proofs. Hash-chained entries. Conservation invariant verified.

  • Rust
  • Merkle Proofs
  • Cryptography

Problem

Financial ledgers must be tamper-evident and provably correct. Traditional databases are mutable. Blockchain is overkill.

Solution

Hash-chained journal entries. Merkle tree over balances for light-client proofs. verify_chain_integrity() from genesis.

Architecture

SQLite ACID storage with in-memory cache. Entry hash over all fields. Conservation: sum(balances) == 0 always.

Implementation

pub fn verify_proof(proof: &BalanceProof) -> bool {
    let mut hasher = Sha256::new();
    hasher.update(proof.account.as_bytes());
    hasher.update(proof.balance.to_le_bytes());
    let mut current_hash: [u8; 32] = hasher.finalize().into();
    for sibling in &proof.proof_hashes {
        let mut parent = Sha256::new();
        parent.update(current_hash);
        parent.update(sibling);
        current_hash = parent.finalize().into();
    }
    current_hash == proof.root_hash
}

Vision

Lightweight, embeddable, cryptographically verifiable ledger. Prove your balance without trusting the server.

View on GitHub