1

Is there a way to do a proof-of-locked coins? I know Bitcoin has the ability to lock for X amount of blocks. Does Monero have something like this and how does a 3rd party prove that a user has locked X amount of coins?

jtgrassie
  • 19,111
  • 4
  • 14
  • 51
Patoshi パトシ
  • 4,540
  • 3
  • 26
  • 66

1 Answers1

1

You can prove a) that a tx has locked coins by providing the tx hash of the tx which has the locked funds and b) prove you created the tx.

To prove a tx has locked funds, simply give the user the txid so they can inspect it on the blockchain (using either their own local daemon or a blockchain explorer). E.g.

$ monerod print_tx 6cd029...bf8c34 +json
Found in blockchain at height 1991755 (pruned)
{
  "version": 2, 
  "unlock_time": 1991815, 
  ...
}

Which shows that this tx is locked until block 1991815.

To prove you sent the tx, use the wallet command get_spend_proof:

[wallet]: get_spend_proof 6cd029...bf8c34
signature file saved to: monero_spend_proof

Then send the resulting file and txid to the user so they can verify with the wallet command check_spend_proof:

[wallet]: check_spend_proof 6cd029...bf8c34 monero_spend_proof
Good signature
jtgrassie
  • 19,111
  • 4
  • 14
  • 51
  • monerod print_tx 6cd029...bf8c34 +json doesn't show the amount locked, but only that its locked until a certain block height. would I need to make a separate monerod call to verify the amount sent or can I just do it in the same print_tx command? – Patoshi パトシ Dec 18 '19 at 20:36
  • Only the sender or recipient can view amount and they do that in their wallet. – jtgrassie Dec 18 '19 at 21:55
  • is there no way to publicly show the amount in a way that you don't expose your private keys? How about providing the view keys for the receiver address where the sender sends to another address they control. – Patoshi パトシ May 07 '20 at 16:34
  • Using a combination of get_reserve_proof and get_tx_proof / get_spend_proof should suffice no? – jtgrassie May 07 '20 at 20:58