4 ms·
There is no sender in Bitcoin. You consume outputs. There is also no "Public Key", you just need to satisfy the condition of the output script. Quite a differen
by csomar 2y ago
There is no sender in Bitcoin. You consume outputs. There is also no "Public Key", you just need to satisfy the condition of the output script. Quite a different architecture from Ethereum where you have an actual account.
- treyd 2y agoThere is pubkeys but they're embedded in a script which is defined by the address format. There's almost no outputs that don't contain a pubkey since scripts that don't commit to a spend with a signature could just be spent by anyone paying attention and consumed.
- csomar 2y ago> by the address format This is not a requirement. You can have outputs that have no "address". They are just hanging there. The risk for non-pubkey signed messages is that once you broadcast your script, anyone else can consume your outputs.
- treyd 2y agoRight but this is very much a special case that doesn't satisfy the tx standardness rules so it'd require more effort to include in a block.
- killerstorm 2y agoAlmost all Bitcoin transaction include at least one public key. It is a part of a script.
- lxgr 2y agoIf that's the case, that's most likely out of efficiency or other considerations; ECDSA definitely allows the recovery of the public key from message and signature alone.
- csomar 2y agoAlmost # All. Sure, 99% of transactions work that way but it is not a requirement.
- lxgr 2y agoThat's not the point here, though: Most transactions do indeed use an ECDSA signature; the question is whether the signature format used by these transactions explicitly includes the public key as well, or whether it's implied and recovered from message and signature, as is possible with ECDSA.
- lxgr 2y agoTechnically you're right (Bitcoin's UTXO and script model implements a general and quite flexible mechanism); practically, almost all transactions use that mechanism to implement the regular old "account a (a set of public/private keypairs) transfers money to account b (holder(s) of other keypairs)" model.