Burn Operation
In Standalone Encrypted ERC, a burn operation permanently removes encrypted units from circulation. It is the encrypted analogue of:
- settling a delivered cargo,
- retiring a batch of renewable energy credits, or
- closing out an internal exposure.
At the protocol level, burn uses the same building blocks as the withdrawal operation in Encrypted ERC architecture, but in standalone mode there is no conversion back to a public ERC‑20—the value simply disappears from the encrypted ledger while the proofs ensure it was there to begin with.
type BurnCircuit struct {
Sender BurnSender
Auditor Auditor
ValueToBurn frontend.Variable `gnark:",public"`
}
Once the burn proof verifies, the Encrypted ERC contracts perform three main actions, all in encrypted space:
- Subtract the encrypted amount from the user’s balance using ElGamal encryption.
- Update the user’s
balancePCTcommitment to reflect the new state. - Advance the balance history using
balanceList,nonce, andtransactionIndex, so only the latest encrypted state can be used in future proofs.
Unlike the withdrawal operation described in the base architecture, a standalone burn does not convert value back to a public ERC‑20 token. Instead:
- total encrypted supply decreases,
- the sender’s encrypted position shrinks, and
- the auditor’s encrypted view updates so they can confirm that burns match off‑chain events (delivery, retirement, etc.).
Any required unit or decimal handling (for example, mapping tonnes or MWh to token units) happens inside the application’s accounting layer before the burn proof is constructed.
