segwit does not give 2mb
just like bitcoin did not give 7txps 2009-2017
..
mathematically its possible if all users made transactions in a certain way both 'could be' achieved. but reality is that users are more variable than maths can account for.
we have not had a 7txps block..
we wont have 100% of users using segwit keys. plus those segwit users wont be all making lean input counts either
some "spammers" may move over to segwit keys and do the attack carlton displayed of using multisig to have 4mb of weight but only half the base block filled
1 Segwit block filled with 100% 6 party Multisig transactions
||| 4 MB limit |||
< 0.571 MB > < 3.428 MB >
| - | || - ||
tx data sigs
but also, more simply. spam just using native keys to not get the weight area utilised
spammers will stick to native keys and bloat up the base bloc to reduce the number of segwit key users the base block lets in.
either just with large data bloat to 1mb
or
using up all the base blocks sigop limits so no other tx can be let in because all the sigop allowances are used.(i mean sigop limit bloat attack not a propagation slowdown sigop attack) thus reducing/preventing segwit sitting in base block to spread its legs into the weight area = no tx/data 'boost'
sticking to 1mb base and requiring users to move to segwit keys just to achieve anything, is a empty gesture.
you cannot re-segwit a segwit to double up again later.. its a one time 'possible' temporary gesture. with no guarantees of effectiveness.
it may be well written, it may not
it may have bugs, it may not
but
when all the promises have been rekt:
tx boost to ~4500tx+ - rekt by native key data/sigop bloat and even segwit multisig bloat(amunst other ways too)
malleability fixed - rekt by native users still making native malleable tx's
sigops fixed - rekt by native users still making native sigop tx's
LN needs it - rekt by native keys able to make multsigs
backward compatible - rekt by segwit being upstream filters. they can trim a block to give to native nodes downstream. but does not make native nodes compatible to sync TO segwit(only from) thus creating a TIER network, not a PEER network
while also adding new attacks
if a bug is found requiring dactivating segwit. funds on a sgwit key cannot be spent and are locked
when segwit bans native nodes from being upstream and orphans native blocks causing an altcoin of the minority that dont agree to be downstream nodes. if segwit tx's are replayed through a malicious native pool that minority can mess around with them as 'anyonecanspends'
(i now expect usual rants of blockstream defenders shouting "fud because wrong" (empty rebuttals) or insults, or other whistles in the wind of no meaningful context. purely to protect the devs, rather than bitcoin. due to more desire to trust devs than read the code)