Docs / Core ideas
Overview
Core ideas
The handful of ideas behind Oarkel, each in a paragraph.
On this page
Shroud and unshroud
Shrouding means depositing ETH or $OARKEL. That deposit is an ordinary transaction, so the sending address and its size show up on the explorer, and the pool records a fresh note in exchange. Unshrouding runs the other way: value leaves for an ordinary address. The amount and recipient of an exit are public; which note paid for it is not.
Note
A note is a private entry of value. It holds an owner key, an asset, an amount (or, for $OARKEL, a number of vault shares) and two random values that make it unguessable. The chain never keeps a note in readable form: it holds a hash of it plus a ciphertext only the owner can open.
Commitment
A commitment is a hash of a note's contents. It shows a note is real while disclosing none of its contents: two commitments for wildly different amounts look exactly alike. Every commitment is appended to the note tree.
Nullifier
Spending a note publishes its nullifier, a tag computed from the note and the owner's secret key. The pool keeps a set of nullifiers it has seen and refuses any repeat, which stops a note from being spent twice. Nobody without the key can link a nullifier back to the commitment it came from.
Note tree and root
Every commitment is appended to a single Merkle tree. The tree's root summarises its entire contents at one instant. Each proof names a root, and the pool honours a window of recent ones, so a proof made a few blocks ago still verifies while new notes keep arriving.
Zero-knowledge proof
When you spend, your browser builds a zero-knowledge proof showing the spent notes belong to you, sit in the tree, produce the right nullifiers, and that no value is created out of thin air. The contract checks the proof and learns none of the private inputs.
Vault shares
Shrouded $OARKEL is counted in vault shares rather than raw tokens. When fees are added to the vault, the number of shares stays the same while the $OARKEL behind them grows, so each share is worth more. That is the whole yield mechanism.