I'm "shipping" for two major upgrades:
1)
Covenants. Basically that means that you can set up conditions for payments. While that is already possible to some extent, once the person you paid the coins to has "unlocked" them with their private key, they can do what they want with them. In some cases however you would like to put a condition one step further, i.e. that the person you paid has also to follow some rules to spend the coins. An example: They must spend them to a certain group of addresses.
Some sidechains, Lightning and also Ark would enormously benefit from this feature. Some people will now yell "Bitcoin isn't Ethereum!!!". But covenants would still not enable infinite loops like Ethereum does, and if we had better L2s, then the scalability problem would have been practically solved and Bitcoin is finally really ready for global mass adoption.
An
explanation from Bitcoin Magazine:
[...] if a Bitcoin script currently restricts who can spend a coin by demanding an authorization proof, i.e. a cryptographic signature, or when it can be spent, i.e. after a timelock expires or the spender can show the preimage to a hash, a covenant script restricts how it can be spent, i.e. to who, how much to which person, etc. A covenant script can even restrict a coin so that it must be spent to another covenant script.
There are several proposed mechanisms which can be
seen here in this wiki page with support from developers.
2)
Utreexo. Storing the UTXO set in a different way, instead of all UTXOs being stored fully, only an "accumulator" composed of hashes is stored. This would lower the burden on full nodes, above all if we consider the bloat of the UTXO set due to protocols like Ordinals and Stampchain which create a lot of unspendable or dust outputs which would clutter the UTXO set forever.
I think this is a part of the final solution to the spam problem too.
There are draft BIPs with proposed numbers
181 to 183. I've also started a
thread about that feature.