Nothing wrong with your post, I’ll just go ahead and answer your questions, because they’re good questions.
Why does coinbase TX needs to be guaranteed to be light?
My main motivation is the contract to create on-chain block header oracle. The headers oracle is in principle already possible (even though my PoC is still WIP), but what I really want is an oracle for sats/hashes - for that I need both difficulty (header) and coinbase reward (coinbase TX).
With just the headers, oracle can’t tell the exact reward paid out to miners. To get the reward, it needs to verify coinbase SPV proof against the header, then “unpack” the coinbase TX inside the running Script then sum all outputs, and if the TX is bigger than 10kB - then the contract can’t do it with current limits.
Secondary motivation is lightening the proof size for anyone who needs coinbase TXs for whatever reason.
What exactly happens if coinbase TX is heavy (which does not happen often anyway?)
Nothing really. AFAIK there are no existing contracts that parse coinbase TX, and even if there were - they should’ve known they can’t guarantee to parse every such TX.
What problem are we solving here exactly?
Mainly the problem of guaranteeing that a contract can parse any coinbase TX.
What does the coinbase TX being “big” means for UXTO commitments? What is the impact, simulated for the next 150 years?
Nothing much, if you’re using the commitment you’re already downloading a 11GB+ dataset, a 1MB coinbase won’t kill you.
But if you want to maintain flexibility to verify an UTXO snapshot at any height, or verify you have the correct UTXO “diff” between any two states, then you will want to keep around ALL coinbase TXs in addition to headers.
It could turn out when we calculate the pros and cons it will turn out that it is not necessary at all.
Yeah, which is why I just want some feedback. It’s not strictly necessary even for that oracle. But because we can’t guarantee coinbase size, the oracle needs to account for the possibility: e.g. skip a datapoint if it can’t parse the TX, just copy the previous sats/hashes price in that case. But then, if for some reason all miners would start mining too big coinbases, oracle would become broken.
Even that can be addressed: oracle to have a sunset clause if more than 50% coinbases had to be skipped, and all dependent contracts would need a sunset clause, too.