b. not have the cludge of 1mb base 3mb witness. and just have full open access 4mb for transactions to fully utilise
This reeks of potential technical debt. It's something you've proposed on numerous occasions for the last few years now, but have never fleshed out. How, exactly, do you propose enacting this? Don't just give us the wishlist, tell us step by step what this option actually entails.
the technical debt already exists.. its the cludge they already put in it to get segwit working
the code sipa added when rewriting bitcoin core to make segwit work (the cludge) reeks of technical debt because it is.. however not having the cludge and getting back to simpler straight forward block sizes, proper coding, proper byte counting, proper validation.. lessens/undoes the technical debt
if you dont thing core screwed up and introduced a open door to let junk in.. explain the ordinal inscription junk that abuses cores unconditioned opcodes due to segwit/taproot
as for the cludge,
yes there are many lines of code in different sections that deal with the legacy*witness and serialised witness.. and all the other cludge of vb and weight unit manipulations of byte counting.. but thats cores own fault for creating the cludgy way of trying to slide segwit in..
getting back to clean code where its a unified 4mb where both legacy and segwit can be side by side under a unified single merkle to allow more transactions in the full 4mb space will require undoing the cludge (technical debt)
for instance in 2016 when core was a simple blocksize=1000000
it was much easier to move to blocksize=2000000 blocksize=4000000 blocksize=8000000
without affecting other area's of code muchbut the way they patched segwit together with the max block weight = 40000000 witness scale factor = 4
(1mb base 3mb witness=4mb)
its not simple to go to: max block weight = 80000000 witness scale factor = 4
(2mb base 6mb witness=8mb)
because the cludge of the other parts of the code then has to be changed too, in many places..
however undoing the cludge to have a unified, simplified blocksize=4000000 which yes will take rewriting lots of area's.. will later make it easier to go to blocksize=8000000.. but before even going to 8mb will help more transactions utilise the 4mb space in the unified blocksize=4000000
and yes while they are at it cleaning the code up. they can put conditions on the opcodes to not allow full blocksize wastage per script(witness)