<blockquote>
<p>there are two type of segwit as P2SH starting with 3 and Native SegWit (bech32) starting with bc1, but don't know which of the two segwit one, is better and is compatible to transfer and receive from a legacy one?</p>
</blockquote>
<p>Generally speaking the &quot;bc1&quot; native SegWit address is better. It's completely <a href="https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki#motivation" rel="nofollow noreferrer">redesigned</a> comparing to the classical/legacy Base58 encoding invented by Satoshi.</p>
<p>Alphabets in a &quot;bc1&quot; address can be either all upper-case or all lower-case, the former fits QR code better, resulting in a more compact QR code. Without mixed-case alphabets, &quot;bc1&quot; address is also easier to be read orally.</p>
<p>&quot;bc1&quot; (P2WPKH) addresses take the least bytes in transactions comparing to &quot;3&quot; (P2SH-P2WPKH) addresses or &quot;1&quot; (P2PKH) addresses, therefore its miner fee is the cheapest among three address types.</p>
<p>Bitcoins can be freely transferred among all three address types.</p>
<p>However, when you are receiving bitcoins, there's a compatibility issue around &quot;bc1&quot; addresses, that some (old) wallets (including the withdrawal interface of some exchanges) simply don't recognize it.</p>
<p>When you are sending bitcoins from SegWit addresses, there's nothing to worry about, except <a href="https://bitcoincore.org/en/2016/10/27/segwit-upgrade-guide/#not-upgrading-2" rel="nofollow noreferrer">a minor issue</a> that a 0-conf SegWit transaction may not show up in the payee's view, if the payee is using an old wallet which is not SegWit-aware. In that situation, it will finally show up in the payee's view when it gets included into the blockchain.</p>
<p>By the way, SegWit addresses, including both &quot;3&quot; and &quot;bc1&quot;, currently doesn't support the &quot;sign/verify message&quot; feature in Bitcoin Core. Some developers also worried about abuses of this function IIRC. Trezor and Electrum had implemented this feature in ways which were not compatible with each other. In the future, maybe we could see this standardized by BIP322.</p>
<blockquote>
<p>a segwit wallet helps to reduce the size of the tx, and reduce fee</p>
</blockquote>
<p>Currenty SegWit doesn't really reduce the size of the transaction. The &quot;bc1&quot; native SegWit address only reduce the size by several bytes. The &quot;3&quot; P2SH SegWit address on the contrary cosumes more bytes in the block, because P2SH wrapping itself requires a 20-byte hash.</p>
<p>Mostly it's just a discount (aka. &quot;virtual byte&quot;, or vB for short), that the &quot;witness&quot; part (mostly digital signatures and pubkeys) would be counted as 1/4 of its actual size. Obviously, only transactions spending coins from SegWit addresses enjoy that discount.</p>
<p>However, SegWit has other benefits, <strike>like <a href="https://bitcoincore.org/en/2016/01/26/segwit-benefits/#signing-of-input-values" rel="nofollow noreferrer">Signing of input values</a>, which simplifies unsigned transaction format, especially PSBT, which could benefit offline/cold/hardware wallets and transactions involving multiple parties (<a href="https://github.com/spesmilo/electrum/issues/5749" rel="nofollow noreferrer">related</a>). </strike> Update: it turns out that this improvement doesn't really work for SegWit, then Taproot fixes this issue: <a href="https://blog.trezor.io/details-of-firmware-updates-for-trezor-one-version-1-9-1-and-trezor-model-t-version-2-3-1-1eba8f60f2dd" rel="nofollow noreferrer">https://blog.trezor.io/details-of-firmware-updates-for-trezor-one-version-1-9-1-and-trezor-model-t-version-2-3-1-1eba8f60f2dd</a></p>

CC BY-SA 4.0
2020-06-24T04:10:17.473Z
According to Blockstream Explorer native Segwit (bc1) saves you a 40% in fees and Segwit compatible (3) saves you 30%.
mengeroshi
CC BY-SA 4.0
2020-06-24T08:02:41.217Z
@mengeroshi Depends on the number of inputs and outputs of transaction.
MCCCS
CC BY-SA 4.0
2022-06-30T11:58:12.913Z
Why are asm hash lengths different for bc1 transactions?
OP_0 4d6a8b2c7dfa984a0de1041f121453c220734e147f379461d2dbe8b9183eba2f vs
OP_0 0174f58fd3a3be597fb9110305f2c2cc2ffeb8dd
Vincent Alex
CC BY-SA 4.0
2022-07-02T06:09:41.680Z
@VincentAlex because P2WPKH uses HASH160, while P2WSH uses SHA256. See BIP141 for details.
Chris Chen
CC BY-SA 4.0
2020-05-24T18:10:16.357Z
2022-07-02T06:39:28.027Z
2022-07-02T06:39:28.027Z
Chris Chen
<p>Here is a brief comparison</p>
<p><strong>Native segwit</strong></p>
<ul>
<li>Compatibility: Not supported by many wallets like blockchain.com, various bitcoin exchanges like coinbase</li>
<li>Fee saving: 38% [1]</li>
</ul>
<p><strong>Segwit in P2SH</strong></p>
<ul>
<li>Supported by all bitcoin wallets/exchanges</li>
<li>Fee saving: 26% [1]</li>
</ul>
<p>In summary, if you are receiving bitcoin on a website/shop it is good to use P2SH addresses as many of your customer will not be able to pay you. If you are receiving BTC from peers that you know have better wallets, you can send them bech32 address to take advantage of lower fee.</p>
<p>[1] <a href="https://blog.blockonomics.co/saving-transaction-fee-using-segwit-how-to-be-a-bitcoin-ninja-78d8416375db" rel="nofollow noreferrer">https://blog.blockonomics.co/saving-transaction-fee-using-segwit-how-to-be-a-bitcoin-ninja-78d8416375db</a></p>

CC BY-SA 4.0
2020-06-25T08:00:35.060Z
2020-06-25T08:00:35.060Z
dark knight
<p>I would like to know what's the better aproach for upgrading from a legacy address to a segwit one, but there are two type of segwit as P2SH starting with 3  and Native SegWit (bech32) starting with bc1, but don't know which of the two segwit one, is better and is compatible to transfer and receive from a legacy one. ?</p>

<p>I know that a segwit wallet helps to reduce the size of the tx, and reduce fee,but don't know if there is a drawback for each type of segwit?</p>

<bitcoin-core><segregated-witness><bitcoin-core-development><segwit2x>
segwit compatilibity bc1 and 3 bitcoin wallet?
andrew007
# segwit compatilibity bc1 and 3 bitcoin wallet?

(Asked by: username_0 on 2020-05-24)

I would like to know what's the better aproach for upgrading from a legacy address to a segwit one, but there are two type of segwit as P2SH starting with 3 and Native SegWit (bech32) starting with bc1, but don't know which of the two segwit one, is better and is compatible to transfer and receive from a legacy one. ?

I know that a segwit wallet helps to reduce the size of the tx, and reduce fee,but don't know if there is a drawback for each type of segwit?

**Tags:** bitcoin-core, segregated-witness, bitcoin-core-development, segwit2x


---

## 2 answers

### Answer by username_1 on 2020-05-24. Score: 2

> there are two type of segwit as P2SH starting with 3 and Native SegWit (bech32) starting with bc1, but don't know which of the two segwit one, is better and is compatible to transfer and receive from a legacy one?

Generally speaking the "bc1" native SegWit address is better. It's completely [redesigned](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki#motivation) comparing to the classical/legacy Base58 encoding invented by Satoshi.

Alphabets in a "bc1" address can be either all upper-case or all lower-case, the former fits QR code better, resulting in a more compact QR code. Without mixed-case alphabets, "bc1" address is also easier to be read orally.

"bc1" (P2WPKH) addresses take the least bytes in transactions comparing to "3" (P2SH-P2WPKH) addresses or "1" (P2PKH) addresses, therefore its miner fee is the cheapest among three address types.

Bitcoins can be freely transferred among all three address types.

However, when you are receiving bitcoins, there's a compatibility issue around "bc1" addresses, that some (old) wallets (including the withdrawal interface of some exchanges) simply don't recognize it.

When you are sending bitcoins from SegWit addresses, there's nothing to worry about, except [a minor issue](https://bitcoincore.org/en/2016/10/27/segwit-upgrade-guide/#not-upgrading-2) that a 0-conf SegWit transaction may not show up in the payee's view, if the payee is using an old wallet which is not SegWit-aware. In that situation, it will finally show up in the payee's view when it gets included into the blockchain.

By the way, SegWit addresses, including both "3" and "bc1", currently doesn't support the "sign/verify message" feature in Bitcoin Core. Some developers also worried about abuses of this function IIRC. Trezor and Electrum had implemented this feature in ways which were not compatible with each other. In the future, maybe we could see this standardized by BIP322.

> a segwit wallet helps to reduce the size of the tx, and reduce fee

Currenty SegWit doesn't really reduce the size of the transaction. The "bc1" native SegWit address only reduce the size by several bytes. The "3" P2SH SegWit address on the contrary cosumes more bytes in the block, because P2SH wrapping itself requires a 20-byte hash.

Mostly it's just a discount (aka. "virtual byte", or vB for short), that the "witness" part (mostly digital signatures and pubkeys) would be counted as 1/4 of its actual size. Obviously, only transactions spending coins from SegWit addresses enjoy that discount.

However, SegWit has other benefits, like [Signing of input values](https://bitcoincore.org/en/2016/01/26/segwit-benefits/#signing-of-input-values), which simplifies unsigned transaction format, especially PSBT, which could benefit offline/cold/hardware wallets and transactions involving multiple parties ([related](https://github.com/spesmilo/electrum/issues/5749)).  Update: it turns out that this improvement doesn't really work for SegWit, then Taproot fixes this issue: <https://blog.trezor.io/details-of-firmware-updates-for-trezor-one-version-1-9-1-and-trezor-model-t-version-2-3-1-1eba8f60f2dd>

> **Comments:**
> **username_2**: According to Blockstream Explorer native Segwit (bc1) saves you a 40% in fees and Segwit compatible (3) saves you 30%.  
> **username_3**: @username_2 Depends on the number of inputs and outputs of transaction.  
> **username_4**: Why are asm hash lengths different for bc1 transactions? OP_0 4d6a8b2c7dfa984a0de1041f121453c220734e147f379461d2dbe8b9183eba2f vs OP_0 0174f58fd3a3be597fb9110305f2c2cc2ffeb8dd  
> **username_1**: @username_4 because P2WPKH uses HASH160, while P2WSH uses SHA256. See BIP141 for details.  

---

### Answer by username_5 on 2020-06-25. Score: 0

Here is a brief comparison

**Native segwit**

* Compatibility: Not supported by many wallets like blockchain.com, various bitcoin exchanges like coinbase
* Fee saving: 38% [1]

**Segwit in P2SH**

* Supported by all bitcoin wallets/exchanges
* Fee saving: 26% [1]

In summary, if you are receiving bitcoin on a website/shop it is good to use P2SH addresses as many of your customer will not be able to pay you. If you are receiving BTC from peers that you know have better wallets, you can send them bech32 address to take advantage of lower fee.

[1] <https://blog.blockonomics.co/saving-transaction-fee-using-segwit-how-to-be-a-bitcoin-ninja-78d8416375db>


---

