I understand that:
pubkey(a + b) = pubkey(a).combine(pubkey(b))
where a
and b
are secret keys. (See: https://crypto.stackexchange.com/q/83694/17505)
If, under the circumstances:
- Bob wants to pay Alice, by creating transaction output whose private key only Alice will know, yet whose public key different from Alice's public key.
- Alice publishes
pubkey(alice_secret)
. - Bob creates an one-use, random secret key
x_secret
. - Bob publishes
x_secret
.
Do the following conditions hold?
- Only Alice can sign messages with the secret key
(alice_secret + x_secret)
, as no-one else knows both secret keys. - Anyone can verify such a message's signature using
pubkey(alice_secret).combine(pubkey(x_secret))
, aspubkey(x_secret)
can be calculated from the publishedx_secret
.
If so, why is BIP32 more complex than this?