Addresses are entirely a user-interface issue. They don’t factor into the 
bitcoin protocol at all.

The bitcoin protocol doesn’t have addresses. It has a generic programmable 
signature framework called script. Addresses are merely a UI convention for 
representing common script templates. 1.. addresses and 3… addresses have 
script templates that are not as optimal as could be constructed with 
post-segwit assumptions. The newer bech32 address just uses a different 
underlying template that achieves better security guarantees (for 
pay-to-script) or lower fees (for pay-to-pubkey-hash). But this is really a 
UI/UX issue.

A “fork” in bitcoin-like consensus systems has a very specific meaning. 
Changing address formats is not a fork, soft or hard.

There are many benefits to segregated witness. You may find this page helpful:

https://bitcoincore.org/en/2016/01/26/segwit-benefits/ 
<https://bitcoincore.org/en/2016/01/26/segwit-benefits/>

> On Dec 18, 2017, at 8:40 AM, Alberto De Luigi via bitcoin-dev 
> <bitcoin-dev@lists.linuxfoundation.org> wrote:
> 
> Hello guys,
> I have a few questions about the SegWit tx size, I'd like to have 
> confirmation about the following statements. Can you correct mistakes or 
> inaccuracies? Thank you in advance.
>  
> In general, SegWit tx costs more than legacy tx (source 
> https://bitcoincore.org/en/2016/10/28/segwit-costs/ 
> <https://bitcoincore.org/en/2016/10/28/segwit-costs/>):
>  
> Compared to P2PKH, P2WPKH uses 3 fewer bytes (-1%) in the scriptPubKey, and 
> the same number of witness bytes as P2PKH scriptSig.
> Compared to P2SH, P2WSH uses 11 additional bytes (6%) in the scriptPubKey, 
> and the same number of witness bytes as P2SH scriptSig.
> Compared to P2PKH, P2WPKH/P2SH uses 21 additional bytes (11%), due to using 
> 24 bytes in scriptPubKey, 3 fewer bytes in scriptSig than in P2PKH 
> scriptPubKey, and the same number of witness bytes as P2PKH scriptSig.
> Compared to P2SH, P2WSH/P2SH uses 35 additional bytes (19%), due to using 24 
> bytes in scriptPubKey, 11 additional bytes in scriptSig compared to P2SH 
> scriptPubKey, and the same number of witness bytes as P2SH scriptSig.
>  
> But still it is convenient to adopt segwit because you move the bytes to the 
> blockweight part, paying smaller fee. In general, a tx with 1 input and 1 
> output is about 190kb. If it's a Segwit tx, 82kb in the non-witness part 
> (blocksize), 108 in the witness part (blockweight).
> See source:
> 4 bytes version
> 1 byte input count
> Input
> 36 bytes outpoint
> 1 byte scriptSigLen (0x00)
> 0 bytes scriptSig
> 4 bytes sequence
> 1 byte output count
> 8 bytes value
> 1 byte scriptPubKeyLen
> 22 bytes scriptPubKey (0x0014{20-byte keyhash})
> 4 bytes locktime
> https://bitcoin.stackexchange.com/questions/59408/with-100-segwit-transactions-what-would-be-the-max-number-of-transaction-confi
>  
> <https://bitcoin.stackexchange.com/questions/59408/with-100-segwit-transactions-what-would-be-the-max-number-of-transaction-confi>
>  
> Which means, if you fill a block entirely with this kind of tx, you can 
> approximately double the capacity of the blockchain (blocksize capped to 1mb, 
> blockweight a little bit more than 2mb)
>  
> My concern is about segwit adoption by the exchanges. 
> SegWit transactions cost 10bytes more than legacy transactions for each 
> output (vout is 256 bits instead of 160). Exchanges aggregate tx adding many 
> outputs, which is of course something good for bitcoin scalability, since 
> this way we save space and pay less fees.
> But when a tx has at least 10 outputs, using segwit you don't save space, 
> instead:
> - the total blockweight is at least 100bytes higher (10bytes x 10 outputs), 
> so the blockchain is heavier 
> - you don't save space inside the blocksize, so you cannot validate more 
> transactions of this kind (with many outputs), nor get cheaper fee
> - without cheaper fees exchanges have no incentives for segwit adoption 
> before they decide to adopt LN
>  
> In general we can say that using SegWit:
> - you decrease the fee only for some specific kind of transactions, and just 
> because you move some bytes to the blockweight
> - you don’t save space in the blockchain, on the contrary the total weight of 
> the blockchain increases (so it's clear to me why some time ago Luke tweeted 
> to not use SegWit unless really necessary... but then it's not clear why so 
> much haste in promoting BIP148 the 1st august risking a split)
>  
> If it's all correct, does something change with bech32? I'm reading bech32 
> allows to save about 22% of the space. Is this true for whatever kind of tx? 
> Immediate benefits of segwit for scalability are only with bech32?
>  
> Bech32 is non-compatible with the entire ecosystem (you cannot receive coins 
> from the quasi-totality of wallets in circulation), I would say it is a hard 
> fork. But the bare segwit is really so different? the soft fork is "soft" for 
> the reference client Bitcoin Core, but outside you cannot know what happens, 
> there are plenty of implementations (especially frontend customization) which 
> don’t work with segwit and need to upgrade. To upgrade takes a lot of time, 
> especially when services are so crowded and so many new people want to step 
> in. At this point, if bech32 brings only efficiency (but correct me if it’s 
> not so) and it is well planned, it could be a consensual upgrade, maybe 
> together with a 2x blocksize? Is there a specific plan for some upgrade in 
> 2018? I personally think it is far easier to reach consensus on a blocksize 
> increase una tantum rather than a dynamic increase. You cannot predict the 
> technology growth: will it be linear, exponential, or suddenly stop for a 
> while, maybe right before a huge innovation? I think a hard fork bech32 
> upgrade + 2x could help a lot in scalability while we test LN, and it might 
> be the only way to effectively promote (or should I say enforce?) SegWit 
> adoption.
>  
> thank you,
> Alberto De Luigi
> (.com)
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org 
> <mailto:bitcoin-dev@lists.linuxfoundation.org>
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev 
> <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev

Reply via email to