zkFMI
日本語

From reservation to settlement and recovery

Technical-deck depth for ownership, eligibility, admission, partial fills, atomic groups and canonical readback.

Choose the execution rail first

This lifecycle describes the application note rail: notes, reservation mandates, admissions, fills, release and recipient claims. The QOMM standing-pool rail and the OCLOB browser’s native account adapter have different wire types and state transitions. Their successful demos do not establish every relation on this page.

AvalancheGo orders accepted blocks; the Rust VM verifies the application’s registered statements and advances canonical state. The application defines market meaning. RPC readback is not an independently verified consensus proof.

Ownership, amount and the same hidden input

A spend proves membership in a candidate set and ownership of one input without revealing its index. The amount must belong to that same index: separate ownership and amount proofs can select different inputs. Nullifiers bind one-time consumption, while output keys and ciphertexts belong in the signed and proved statement.

The maintained Triptych reference is a proof core, not an audit of the surrounding application. Candidate eligibility, asset tags, output binding and replay handling remain integration obligations.

C_a(v;r)=vG_a+rH,\qquad i_{\rm ownership}=i_{\rm amount}

Conservation needs zero and range relations

Knowledge of any opening of a residual does not prove its value is zero. Conservation needs a dedicated zero-value relation; ranges exclude negative amounts and arithmetic wraparound. Asset-specific bases also require the statement to bind the intended asset.

v_{\rm in}=v_{\rm reserve}+v_{\rm change},\quad 0\le v_{\rm reserve},v_{\rm change}<2^\ell,\quad D=\rho H

Bind deployment, operation, parent and outputs

Domain separation prevents reuse across proof purposes. Deployment, application scope, committee version, operation identifier, parent state and the complete output payload identify this operation. The formula below is explanatory; the implementation defines serialization and hash domains. A global parent-root condition can require resubmission after unrelated concurrent updates.

d=H({\rm domain},{\rm version},{\rm deployment},{\rm scope},{\rm operation},R_{\rm before},{\rm payload})

Bind eligibility without a circular digest

The reservation mandate contains the digest of an existing credential, not the digest of a presentation that will only be created afterwards. The presentation binds the signed mandate and required scope. The private admission service verifies the actual DeKYX presentation and mandate signature, then signs the admission statement. VM amount and ownership checks still apply.

One reservation updates three resources

  1. Consume input notes and create reservation and change outputs.
  2. Move the required guarantee capacity from available to reserved.
  3. Create reservation scope, expiry, committee binding and update sequence.

The VM applies one candidate state only after all relations hold. A valid subset is not a partial reservation. The issuer reads consistent canonical state before issuing a permit.

Separate a private permit from MPC admission

ReservationPermit retains canonical reservation and asset references on the owner side and can be threshold encrypted. ReservationAdmission removes references not needed by the MPC receiver and rerandomizes amount commitments. Its proof still binds the permitted order and amount. An issuer attestation is evidence from that issuer, not a consensus certificate.

C^\prime=C+\delta H=vG+(r+\delta)H

Ordering, matching and payment are different claims

OCLOB uses 5-of-7 ordering signatures, seven malicious-Shamir MPC processes and a settlement-authority quorum. Their thresholds serve different purposes. The original transition evidence is a committee attestation, while quantity, price, product and residual relations have their own mathematical proofs. A hash of an output alone does not prove the matching algorithm was followed.

m=qp,\qquad c^\prime=c-m\ge0,\qquad s^\prime=s-q\ge0

Partial fills consume current residuals

Keep the original reservation separate from its current residual, sequence and last instruction digest. A fill of 40 from 100 leaves 60 and increments the sequence. A subsequent fill of 20 consumes that 60, leaving 40. An instruction referring to the original 100 or an old sequence is stale and must fail.

The two asset legs update atomically. The numbers illustrate one side, not a complete wire payload.

(100,0)\longrightarrow(60,1)\longrightarrow(40,2)

A batch signature binds membership and order

Every signed fill binds group digest, index and count, so extracting one member, reordering or mixing another instruction invalidates the group. The current application fill group supports 2–8 members under the payload limit; a candidate state passes residuals from one member to the next. If any member fails, discard the entire candidate. This is one DeFMI state transition, not atomicity across independent ledgers.

g=H({\rm deployment},R_{\rm before},[{\rm op}_0,\ldots,{\rm op}_{n-1}]),\qquad {\rm signedFill}_i\supset(g,i,n)

Cancel, expire and redeem are separate operations

Cancel
The reservation’s designated committee authorizes return of the unused residual.
Expire
Canonical block time must exceed the reservation expiry; equality is insufficient on this rail. The submitter cannot substitute the fixed return destination.
Redeem
The recipient signs the destination to turn a finalized claim into spendable notes. Delaying redemption does not cancel the settled trade.

Advance the private book only after canonical readback

Retain the prepared result, submit exactly that instruction, then check transaction ID, block ID, height, statement hash and before/after roots. For multiple fills, every accepted result must match the saved computation. Only then advance the private book and confidential portfolio. An ambiguous timeout is a reconciliation case, not evidence of either failure or success.

The browser account adapter reads all five validator roots and the expected account commitments and sequences before accepting its staged private state. Its process-local private book does not yet have restart recovery; reused state is rejected rather than silently reset.

DeFMI application reservation · OCLOB native finality

Purpose-by-purpose cryptographic catalogue · Security · Status