It is time for ERC20 MAID!

Here again is my (updated) idea for the MAID → SAFE conversion

  • There is a function ClaimSAFEcoins(maidSourceAddress, safeDestinationAddress, amount, txUUID, attestationSignature, pow)
  • attestationSignature is a message signed using the private key of the source address holding the MAID, with the contents of the message being a concatenation of the other function parameters
  • When network is ready to go live, an immutable snapshot of MAID account balances at a given block is stored on the network. Storing a snapshot at a certain block # avoids the need for network participants to run a BTC node in order for new burn transactions to be verified for example, and also makes it so that the exchange doesn’t need to be done in some centralized way, like a clear net site operated by MaidSafe.
  • The ClaimSAFEcoins function verifies that the attestation signature is valid for the given function args. It also verifies that the amount being claimed is valid as per the snapshot, and there would also need to be a running balance of how much each address has been credited so far. The section nearest to the source address could be responsible for keeping this running balance of claimed coins. Each claim would have a UUID, making each redemption event unique and preventing replay claims. Small pow included in the function call based on the function args to avoid DoS attacks.
  • Once elders reach consensus that the claim is valid, claimed coins balance is updated and coins are released

To support both Bitcoin and Ethereum conversions, I’d see this being duplicated such that there is a second snapshot from Ethereum, and a second redemption function that includes a second signature validation algo.

Originally proposed here