Your numbers never leave your computer.
You enter your loan figures on your own machine. An oracle signs them, so they cannot be invented. The proof checks that signature first, works out whether the loan is safe, and publishes one word. Anyone can read that word. Nobody can work backwards from it to your numbers.
Never leaves your machine
These go into the proof and stop there. Nothing ever publishes them.
collateralUint<64>- what you put up
debtUint<64>- what you owe against it
liquidationThresholdBpsUint<16>- the level your lender sells at
jubjubSchnorrVerifycircuit- checks the oracle signed this, before anything else
collateral × threshold ≥ minHF × debtcircuit- the sum that decides safe or not
What the chain holds
Everything the chain stores. This is the whole list, not a summary.
lastVerdictVerdict- safe, or at risk. One word
lastAttestationAtUint<64>- when the oracle looked
checkCountCounter- how many checks have run
attesterPkJubjubPoint- which oracle is trusted, set once
asOf) is published on purpose, so a lender can tell a fresh answer from a stale one. It sits inside what the oracle signed, so it cannot be back-dated, and it says nothing about the size of your loan.Three commands, and one of them is the point.
freeboard --checkProve your loan is safe
- An oracle signs your figures so they cannot be invented. The proof checks that signature, works out whether the loan is safe, and writes one word to the chain. Your figures never leave the machine.
freeboard --readSee what a lender sees
- The whole public record: the answer, when the oracle last looked, and how many checks have run. No amounts and no thresholds, because the contract has nowhere to put them.
freeboard --check --tamperWatch it refuse a forgery
- Change your figures after the oracle has signed them. The signature is checked first, so the forgery is thrown out before any sums are done and nothing reaches the chain. It fails in 0.4 seconds, against the 45 a real proof takes.
What it is not, yet.
The oracle is a stand-in
Its signing key sits on the same machine as everything else, so the check proves the mechanism works, not that any particular loan is real. Putting an independent oracle in its place needs no change to the contract, which is exactly why the check was built in from the start.
One machine only, so far
The output above is a real run against a test chain on one machine. That chain keeps nothing between restarts, so it is already gone and the address below is what it was. A public test network is next.