Have uncompressed keys all the time used the 04 prefix, even earlier than compressed keys (which use 02, 03) had been used?
Sure.
Did bitcoin bear an replace so as to add these prefixes to the completely different key varieties?
Bitcoin pockets software program did bear an replace to make use of those compressed keys. There was no change to the consensus guidelines/implementation wanted, as a result of (on the time) OpenSSL accepted each compressed and uncompressed public keys. In reality, there’s a third sort that was (and nonetheless is!) supporter, hybrid keys, which use prefix 06
or 07
(relying on even/odd T coordinate), adopted by 32-byte X, and 32-byte Y coordinate. I don’t perceive the motivation for having such a kind, nevertheless it works.
If that’s the case, since these prefixes are included within the hash used to provide addresses, did addresses utilizing uncompressed keys “change” when compressed keys had been launched?
Sure. However ony the receiver cares in regards to the distinction, because the sender solely sees the 160-bit public key hash. At spend time, the receiver must reveal the total public key, whose hash must match the general public key hash despatched to.
If in case you have an excessive previous Bitcoin Core pockets.dat file that has by no means been up to date, and cargo it into a really fashionable Bitcoin Core 27.0 software program, it would nonetheless produce P2PKH addresses utilizing the uncompressed public key, in order that one can nonetheless return to previous variations. This won’t maintain working nonetheless, as legacy pockets help is scheduled to be faraway from Bitcoin Core. Such previous recordsdata will nonetheless be usable, however will should be transformed to a contemporary format first.
Additionally observe that because the introduction of compressed public keys, there have been precise new tackle varieties (with corresponding consensus adjustments): P2SH, segwit, and taproot.