R-Puzzles

Revision as of 05:07, 16 October 2019 by Brendan (talk | contribs) (Created page with "An R-Puzzle is a new type of script that allows for the spending party to sign the input UTXO using any valid Bitcoin keypair. This can be used to sign Metanet node addresses...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

An R-Puzzle is a new type of script that allows for the spending party to sign the input UTXO using any valid Bitcoin keypair. This can be used to sign Metanet node addresses or addresses that hold tokens, or be randomly generated. The R-puzzle itself uses a knowledge proof of a value called 'k' to allow the coins to be spent. 'k' must be known to the spender, and k-chains can be managed using the same deterministic techniques as Bitcoin keychains.

Generating an ECDSA signature involves a few steps.

Inputs to the signature:

  1. k value 'k'
  2. keypair 'P1' = 'S1' · G
  3. Message 'm'

Method:

  1. Calculate R = k · G
  2. Define r = x-coordinate of R
  3. Calculate s = k-1(H(m) + S1 * r)mod n

Signature is (r, s) plus 6 bytes of formatting