Skip to content

Burn proof using kernel inclusion proof #1518

@sdbondi

Description

@sdbondi

Background

Currently, when a burnt UTXO with sidechain Burn feature is encountered, VNs must propose to mint an "unclaimed output" as a substate.

This has the following issues:

  1. we realised that burnt UTXOs can have duplicate commitments (we may add an L1 rule to prevent this in future), which can result in conflicting commitment_xxx addresses.
  2. VNs may never propose new unclaimed substates (there are no incentives/fees)
  3. extra on-chain data for each burn
  4. Syncing UTXOs from behind the tip is fairly heavy

This feature request is part of an attempt to improve this process.

Proposal 1

We propose a different approach described at a high level here:

  1. A user burns XTM with the sidechain flags enabled
  2. This creates a kernel with the burn flag set and containing the output commitment
  3. VNs have L1 block headers available (suggest that we simply sync and save them to the epoch manager db)
  4. Users wishing to claim a burn must provide the following in the proof
    • the burnt kernel
    • a kernel inclusion MMR proof
    • the value of the burn (in the clear)
    • a signature, signed by the private blinding key, committing to the kernel hash.
  5. The engine validates this proof against the current epoch header and mints the output if valid

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    In Review

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions