Worked example

A bit-scarce sandboxed query, end to end

Alice holds her date of birth with her Databank. An online retailer wants to know whether she's old enough to complete an age-restricted purchase — is she over 18? Here is exactly what crosses which boundary, and why.

Sequence diagram showing the user depositing encrypted data, the retailer submitting an algorithm, execution inside the Databank sandbox, a bit-scarce result returned to the retailer, and an audit trail returned to the user.
The user's date of birth is stored in their Databank account. For a given query: (1) the retailer submits an algorithm to the sandbox, not a request for data; (2) the Databank checks the request against the user's standing permissions, admitting it, rejecting it, or forwarding a one-off consent request to the user; (3) the admitted algorithm executes inside the sandbox, where it alone meets the stored, encrypted record; (4) a single bit — "eligible: true" — crosses the boundary, never the underlying date of birth; (5) the transaction is logged on the user's statement, and the user receives a statutory share of the access fee paid by the retailer.

The actors

Alice — Information Owner
Date of birth: 2 April 2007
Retailer — Information Requestor
Wants a single yes/no answer
Databank
Holds the encrypted record & the permission policy

Step by step

  1. 1
    Query submissionThe retailer submits an algorithm to the Databank — not a request for data. There's no third party in the loop: the Databank itself runs the sandbox.
  2. 2
    Permission checkThe Databank checks Alice's standing permissions. She has pre-authorised age-threshold checks from verified retailers, twice per requestor per year. The query passes. Outside those standing permissions, the Databank could reject the query outright, or forward a one-off consent request to Alice before proceeding.
  3. 3
    Sandboxed executionThe algorithm runs inside a secure enclave or equivalent — visible only to the Databank, never to the retailer.
  4. 4
    Bit-scarce outputExactly one bit crosses the boundary: { "eligible": true }. No date of birth, no exact age, no margin.
  5. 5
    Settlement & auditThe transaction is logged on Alice's statement; the retailer pays an access fee; Alice receives her statutory share.

What actually executes

def age_over_threshold(date_of_birth, threshold_years, as_of):
    age_years = years_between(date_of_birth, as_of)
    return age_years >= threshold_years

result = age_over_threshold(
    date_of_birth="2007-04-02",   # never leaves the sandbox
    threshold_years=18,
    as_of="2026-06-19",
)
# result = True

Why one bit, and not ten

The whitepaper calls this property bit-scarce: an output intentionally constrained to reveal only a small amount of information relative to the underlying dataset, capped in practice at three to four bits. A boolean answers the retailer's actual commercial question with the minimum information needed to settle it. Richer responses leak more than they need to:

Response designBits leaked (approx.)Reconstructable from repeated queries?
Exact age in years~7 bitsYes — narrows date of birth to a 1-year window
Age bracket (5-year bins)~3–4 bitsPartially — narrows to a 5-year window
Boolean (over / under threshold)1 bitOnly the single threshold tested; a new, logged query is needed for each one
Even the boolean isn't perfectly safe against a requestor who runs many threshold queries (18, 19, 20…) to binary-search someone's exact birth year. That residual risk is closed by rate limits and the audit trail, not by bit-scarcity alone — the two mechanisms are complementary, not substitutes. Formalising this cumulative-leakage bound across repeated queries is ongoing work for the forthcoming Technical Architecture Paper, not something the whitepaper itself tries to settle.

What the retailer never receives

Real-world precedents — and their limits

Pieces of this pattern already exist, narrowly, in single-purpose products:

Each is a voluntary, single-vendor feature covering one attribute. None give you one custodial account across every category of personal data, a statutory revenue share, or a regulatory mandate to operate this way — which is precisely the gap Databanking proposes to close.

← Back to the concept overview