mosaic

Check a round.

Every round publishes its contributions and a fingerprint of the full set. Verify a receipt, or recompute the matching yourself.

How to check a result

  1. 1Open a round and download its ledger.
  2. 2Recompute the matching in your browser. It uses the same code as the server.
  3. 3Compare the result with the published fingerprint. If one amount changed, they would not match.
Open a round

What a receipt proves

A receipt shows that a contribution is inside the set behind a published fingerprint. It does not reveal who gave, and it cannot be forged.

Receipts are public: the amount and pseudonym are already in the ledger. What stays private is the link from a pseudonym to a person.

Technical details
leaf = blake2b("mosaic/contribution/v1", round, project,
                donor_tag, amount_zats, nullifier)
node = blake2b("mosaic/merkle/node/v1", left, right)
root = fold(leaves)

Contributions are summed per donor before scoring, then the pool is split by each project's share of the total score. Odd tree levels promote the last node.