I understand that P2PK scripts do not have a corresponding address type. However, we see a lot of P2PK transactions, both coinbase outputs and non-coinbase outputs. What software was used to make these transactions? Did Bitcoin Core support sending to pubkeys using P2PK outputs? If so, what was the interface like? Did it accept raw pubkeys in hex?
1 Answer
I know of only two ways that P2PK output were commonly constructed:
- Bitcoin's original codebase would use P2PK in mined coinbase outputs. This practice disappeared as the coinbase constructed gradually moved into specialized mining software.
- The implementation of old pay-to-IP addresses would give a P2PK script to the other party. This practice disappeared as pay-to-IP was quickly discovered to be very insecure (it relies on trusting the IP address not to be intercepted), and disabled in software in 2010.
It's possible that the BIP70 payment protocol was implemented in some places to convey a P2PK script, but I doubt it.
-
So then it was not possible to just give someone your public key and receive P2PK payment(s) there? One cannot call a public key a type of an address, only because there has never been a type of a wallet/software that constructed transactions given player's public key? Commented Nov 14, 2022 at 19:53
-
@AlecMatusis That's right. It was possible with pay-to-IP addresses, but not with any offline address type that came afterwards (arguably it is possible with P2TR now, as that contains unhashed public keys, but it's a separate output type, distinct from P2PK). Commented Nov 14, 2022 at 19:58