<blockquote>
<p><strong>why not we just use one kind of address type, such as legacy p2pkh?</strong></p>
</blockquote>
<p>Because other address types serve different purposes that cannot be achieved with P2PKH.</p>
<p>For example multisig addresses can either provide greater security against certain types of threat or can involve multiple parties in some scheme.</p>
<p>Improved types like P2SH and P2WSH provide better privacy and provide for scaling the Bitcoin network - providing more capacity for transactions. This cannot be achieved using P2PKH.</p>
<hr />
<blockquote>
<p><strong>if we only use the original bitcoin address format, aka. the legacy p2pkh. Is it possible to implement other formats' functions?</strong></p>
</blockquote>
<p>Because we use the word &quot;address&quot;, people sometimes misunderstand the nature and purpose of a Bitcoin address. It is not a designator of a recipient.</p>
<p>An address is a <em>recipe</em> for a specific type of locking script, it is a <em>complete</em> recipe that contains <em>all</em> the information needed by a payer to construct a locking script that pays the recipient using a script-type specified by the recipient <em>in</em> the address.</p>
<p>If an address could be used with multiple different locking scripts, then in addition to their address, the recipient would have to provide a list of script-types acceptable to them and their wallet software. The address was intended to do the whole of this job.</p>
<p>This is why many people feel that &quot;Bitcoin invoice reference&quot; might have been a better name than &quot;Bitcoin address&quot;.</p>
<hr />
<p><strong>Remember: Bitcoin addresses do not exist in the Bitcoin network protocols and are not used in the Bitcoin network. Addresses, as such, do not appear in the Bitcoin blockchain</strong></p>
<p>Bitcoin addresses are a convenience but not a necessity. The Bitcoin network would work perfectly well if nobody ever used addresses but used some other method of communicating desired locking scripts in QR barcodes etc.</p>
<p>The reason I make this point is not because I want to get rid of addresses but because I think people will be better off to let go of some of the irrelevant semantic baggage associated with the word address from its everyday non-Bitcoin usage.</p>

CC BY-SA 4.0
2024-04-25T19:25:42.700Z
As an addition, I would like to say that the reason why Bitcoin has more "addresses" comes from the fact that in Ethereum it is possible to achieve (literally to program) all additional functionalities through EVM and the turing-complete language, so it is not necessary to introduce new "addresses" for new functionality (like in Bitcoin).
LeaBit
CC BY-SA 4.0
2024-04-26T14:04:11.863Z
@LeaBit That's true to some extent, but most new address types didn't actually add any functionality (arguably, only the CLTV and CSV script extensions can be seen as actual new features, and they didn't need new address formats). All the others were advances in efficiency/encoding/security/limits that just required a new script system/structure altogether, rather than just an addition of features (which would typically just involve new opcodes, available in all scripts, and thus usable through existing address types).
Pieter Wuille
CC BY-SA 4.0
2024-04-26T20:01:57.790Z
@PieterWuille Nice!
LeaBit
CC BY-SA 4.0
2024-04-25T10:01:17.943Z
2024-04-25T10:20:46.740Z
2024-04-25T10:20:46.740Z
RedGrittyBrick
<p>We know Bitcoin has at least four completely different address formats. They are legacy format, bech32 script, segwit. I know each address format means different transaction types, for example pay to public key hash, pay to script, or segwit payment.</p>
<p>But my question is why do we not just use one type of addresses, such as legacy p2pkh?</p>
<p>In contrast, Ethereum and other blockchains have only one address format. Do these blockchains lack some function that must introduce new address formats?</p>
<p>Or another question, if we only use the original bitcoin address format, aka. the legacy p2pkh. Is it possible to implement other formats' functions?</p>

<address-format>
Why does bitcoin have so many different address formats?
Wenkai Tian
# Why does bitcoin have so many different address formats?

(Asked by: username_0 on 2024-04-25)

We know Bitcoin has at least four completely different address formats. They are legacy format, bech32 script, segwit. I know each address format means different transaction types, for example pay to public key hash, pay to script, or segwit payment.

But my question is why do we not just use one type of addresses, such as legacy p2pkh?

In contrast, Ethereum and other blockchains have only one address format. Do these blockchains lack some function that must introduce new address formats?

Or another question, if we only use the original bitcoin address format, aka. the legacy p2pkh. Is it possible to implement other formats' functions?

**Tags:** address-format


---

## 1 answers

### Answer by username_1 on 2024-04-25. Score: 1

> **why not we just use one kind of address type, such as legacy p2pkh?**

Because other address types serve different purposes that cannot be achieved with P2PKH.

For example multisig addresses can either provide greater security against certain types of threat or can involve multiple parties in some scheme.

Improved types like P2SH and P2WSH provide better privacy and provide for scaling the Bitcoin network - providing more capacity for transactions. This cannot be achieved using P2PKH.

---

> **if we only use the original bitcoin address format, aka. the legacy p2pkh. Is it possible to implement other formats' functions?**

Because we use the word "address", people sometimes misunderstand the nature and purpose of a Bitcoin address. It is not a designator of a recipient.

An address is a *recipe* for a specific type of locking script, it is a *complete* recipe that contains *all* the information needed by a payer to construct a locking script that pays the recipient using a script-type specified by the recipient *in* the address.

If an address could be used with multiple different locking scripts, then in addition to their address, the recipient would have to provide a list of script-types acceptable to them and their wallet software. The address was intended to do the whole of this job.

This is why many people feel that "Bitcoin invoice reference" might have been a better name than "Bitcoin address".

---

**Remember: Bitcoin addresses do not exist in the Bitcoin network protocols and are not used in the Bitcoin network. Addresses, as such, do not appear in the Bitcoin blockchain**

Bitcoin addresses are a convenience but not a necessity. The Bitcoin network would work perfectly well if nobody ever used addresses but used some other method of communicating desired locking scripts in QR barcodes etc.

The reason I make this point is not because I want to get rid of addresses but because I think people will be better off to let go of some of the irrelevant semantic baggage associated with the word address from its everyday non-Bitcoin usage.

> **Comments:**
> **username_2**: As an addition, I would like to say that the reason why Bitcoin has more "addresses" comes from the fact that in Ethereum it is possible to achieve (literally to program) all additional functionalities through EVM and the turing-complete language, so it is not necessary to introduce new "addresses" for new functionality (like in Bitcoin).  
> **username_3**: @username_2 That's true to some extent, but most new address types didn't actually add any functionality (arguably, only the CLTV and CSV script extensions can be seen as actual new features, and they didn't need new address formats). All the others were advances in efficiency/encoding/security/limits that just required a new script system/structure altogether, rather than just an addition of features (which would typically just involve new opcodes, available in all scripts, and thus usable through existing address types).  
> **username_2**: @username_3 Nice!  

---

