I’m not convinced we need a new TX format since we can just add new fields in a non-breaking way (like we did for CashTokens) to existing TX format, see this technical bulletin “Evaluate Viability of Transaction Format or ID Change”
OP_SIGHASH would be useful regardless of detached signatures, as it’s just a compact way to have contract commit to TX contents using already standard templates, regardless of whether the commitment will be signed or not.
2 and 3 are not consensus, though. They can be done perfectly fine decentralized. Permissionless. Which means you don’t find people to talk about doing it, but find someone to actually code it.
Personally I don’t see the benefit of this “no-op” year. The vast majority of market participants don’t pay attention to such things anyway. Time is not on our side, as more people come in and the market cap increases the risk of ossification increases. This is especially true with no centralized governance structure.
I would still love to see 1 minute blocks be the focus personally. Zk snark technology is also becoming more relevant and it does seem to me we will need at least 1 or 2 dedicated op codes such as the ones in CHIP 2025-05 Native Elliptic Curve Arithmetic Operations.
The zk opcodes are kind of nice because they are more straight forward for implementing, although more research is needed.
Txv5 seems too early still, but I wouldn’t mind that getting in either.
Would be amazing to get these 3 ready for 2027. Fast blocks is a must, I do a lot of DEX and merchant payments and BCH is painful when we have no block for 40 minutes.
In the last months and the revival of our price we’ve already been seeing a lot of positive attitude towards bitcoin cash. Some exchanges changed behavior (proof of reserves, less confirmations) and we’ve seen some services starting to use our features where they simply just were generic bitcoin-ish before.
As our price keeps on rebounding and adoption is expected to grow, the most perfect solution will become available without a protocol upgrade: the acceptance of merchants and similar of zero conf (instant transactions). Because they are basically low enough risk that this is fine and safe.
So as soon as we get more usage this problem will basically solve itself.
Can’t wait to see how much more adotion and support the coin will see in the next years!
Is this not fixed yet? Or are you trolling and we have already fixed it? If not, what’s required to be changed? I know it’s a meme joke in BTC like “we do need to do this, if we can’t get consensus for even that we’re screwed but haha it’s so far away”. But yeah if we can fix it now we should.
Well it was “non breaking”, but we’ve still seen around 2.5 years of work even after the May 15 go live and CashTokens addresses are still not well integrated into everything directly within BCH, certainly not fringe BCH (like Bitcoin .com wallet) and basically not in the slightest to exchanges or anyone further out. So in practice, changes similar to CashTokens are a pretty big deal even if they’re technically “non-breaking”.
I’m a big fan of 1 minute blocks, and I feel like everyone is trending towards it nicely at this point. You see users basically every week wondering about why confirmations are so slow, which is natural because BCH is drawing in interest and adopters (especially with the community hyping up our BCH DeFi) from all other coins where the competition just has far superior confirmation times. It’s an immediate stumbling block they hit and dislike, and really takes the shine off the rose in terms of being excited about all the great stuff in BCH.
I think a no-op year would actually be quite healthy from a governance point of view, there’s no shortage of things to be built out in BCH and it’s nice for the community to feel changes are not being rushed or forced. BUT the benefit of that is fairly small compared to the opportunity cost of missing an entire year cycle of upgrades (essentially nothing new sans Layla go-live until May 2028, an eternity away). As Luke says, we do in general want to ship as much in as fast as we can, because the bigger we get the smaller the ability to coordinate important upgrades will likely become.
Agreed. Many such opinions in the community. People who don’t have the pain point feel status quo is “good enough”, but people with the pain point of blocktime REALLY feel it hard. And 1 minute blocks doesn’t make the situation for 10 minute block preferrers any worse.
28 is a different discussion. 1 year from now, by the start of 2027, the crypto landscape will have shifted again dramatically. So that’ll be.a fresh conversation to be had then. New proposals, significant community growth, new research and trending tech (maybe something specific around say quantum or ZK or AI could be huge) etc. So yeah too early to tell on that one.
Aside from all that, one thing I want to throw in the mix which is a real /someone problem, is the stuff around unifying relay policy and consensus. At the very least we need a proper writeup of what exactly are all the little things left around that, and some analysis of what can or should be unified and what left as it is or solved another way (e.g. the dust threshold?? Minimum fee relay floor??). I have a thread here which is the best I’ve done so far at tackling this issue.
But that would be an awesome one for the wishlist - at least some proper research, which may or may not turn into an actual CHIP.
Work on what? The output format extension worked fine since day 1. Block explorers can work fine non-upgraded, they’ll just show some weird-looking scripts instead of decoded token+script. See this example: Trezor Bitcoin Cash Explorer
The “Unparsed address” entries are token outputs, but explorer decodes the whole token+script payload as if it is some unknown script. But the non-upgraded explorer works, it did not crash, it can parse transactions just fine, even if there’s this 1 piece it can not understand.
If we’d add more output fields the same way we added tokens then we’d just turn some more outputs into “Unparsed address”.
If we’d break TX format for v5, then such change may crash non-upgraded software like the example explorer.
So yeah, it takes time for everyone to properly support new features like CashTokens - BUT, when it is non-breaking - the old features will continue to just work, without downstream software breaking, and then it can upgrade at its own pace.
Example 1: if you swap some token for BCH on Cauldron DEX, and immediately use that unconfirmed UTXO to pay a merchant, such 0-conf has increased risk of getting cancelled because it has an unconfirmed “anyonecanspend” ancestor.
Example 2: if you put dust in an OP_1 “anyonecanspend” P2SH UTXO and reference it as input in your TX, then any miner monitoring for such “free” UTXOs could sweep it and effectively cancel your TX, so a payment that has any input spend P2SH also has increased risk of getting cancelled.
You selling 100 BCH isn’t going to get processed with 1 confirmation either It would need a bunch of blocks. So your base assumption is false, “a confirmation” is not what is targeted, instead a certain amount of (proof of) work is.
Faster blocks doesn’t actually give people what they hope it gives them, this is a good example where hope outstrips knowledge. If you talk to many people in the community you’ll notice the pattern, they expect a lot of issues to be solved with 1 min blocks that upon critical review, there is no reason to believe they will be solved with 1 minute blocks.
These examples really just show the problem of finding actually beneficial outcomes that are not trivial to debunk, BCA here creates completely imaginary situations that not a single wallet today is capable of producing and claims it is a problem that needs a solution. While in actual fact not a single human ever had this problem, and as such doesn’t need solving. They can’t have had this problem since no software exists that does this, or anything close to it.
And on top of that, the solutions to this imaginary problem are easy and obvious to any engineer, they automatically follow from basic UX requirements and they do not require you to have faster blocks.
The basic premise of the faster blocks change is that people hope it will make the price go up. As CashDragon here says “we need this to compete” and Jeremy said basically the same thing in another thread here on BCHR. Talk on Twitter and Telegram as much as you want in order to influence the price, but this forum is the wrong place for that.
No matter how you look at it faster blocks will speed things up just due to lower variance, if blocks always came in 10 minutes apart there would be no issue, one minute blocks effectively gives us 10 minute blocks in the worst case scenario.
Kallisti, you provide some steps, not sure which wallet actually does any of that. It probably is some web page, not a wallet. Nothing you can use in a store at the payment terminal. “Oh, wait a moment sir, I need to scan your QR to find the address to then go through this website and do some shit there to pay you from my withdrawal.”
So in reality you went to a website to send money to your wallet address. But that is not the scenario BCA was talking about.
He was talking about the transaction needing to be protected FOR THE RECEIVER. Which you yourself are here. There is no danger, no problem to solve in the scenario you gave.
So maybe you forgot the add the last line:
go to a physical store and spend your coin from your mobile wallet.
Well, and for that go actually happen, that wallet you have on your phone should prefer unconfirmed UTXOs, which AFAIK none of them do… And you have to be pretty fast to avoid your website initiated transfer having confirmed before you get to the store and select your goods or drinks and finish them to get to the point where you pay.
The end result is that there is nobody that is seeing problems today, because the scenario is just not something that happens in real life. No actual (single) wallet can create this issue, and existing ones combined don’t run into it either.
On top of that, the solution is trivial, the end user that creates this issue ends up waiting for a confirmation at the payment terminal. Because DSProof is about enabling the 99.9% of usecases, not about making that 100%. You can avoid becoming the 0.1% and keep things going smooth.
And to strengthen the point; making a change to the protocol as massive as block time changes needs actual real life problems to be solved. Not some imaginary problems that we are not seeing any amount of actual end users having problems with.
Lets not do what Peter Todd did to push through RBF; be the attacker and victim in an artificial scenario that when it “succeeds” in failing is then used as proof to show it is a real issue.
This definitely can become a bigger issue as the ecosystem evolves though. More user wallets will be able to make more complex transactions in the future… let’s say I’m at a merchant POS and I have a special savings vault contract that I need to access, because I forgot to do that transfer in the morning before I got to the store… no problem, I’ll spend from the contract into my everyday spending wallet… but the transaction is unconfirmed, and now the inputs have a non-p2pkh ancestor…
perhaps I misunderstand somewhere - the non-p2pkh ancestor is assumed to be confirmed in the example, I suppose, so maybe that’s also a non-issue.
AFAIK we currently don’t have any wallets that use contracts directly as inputs… unless maybe paytaca does this with their stablehedge feature.
regardless…
the solution is trivial, the end user that creates this issue ends up waiting for a confirmation at the payment terminal
yeah… shouldn’t be much longer than 10 minutes from now, eh?
The point you’re side-stepping is that the solution lies on the side of the end-user. The tech doesn’t have to be fool-proof. The universe will always invent better fools in response anyway.
The current status is that the 99.9% of the usages on chain are in actual fact protected and will not be miner extractable value and thus there is no reason whatsoever to doubt they will get mined the next block.
Sure, smart people can come up with scenarios THAT NOBODY IS SEEING TODAY which fall in the 0.1% which may be exploited by a miner, a thing that hasn’t actually happened in the lifetime of Bitcoin either.
But the solution to that is to detect them early on and put the responsibility squarely on the wallet makers and users because this really never happens to normally honest behaving users using well designed wallets. So, if a point of sale hits this, the user simply get checked more. Because of the inherent issue of this being possibly a scam. The risk of the merchant getting scammed. It really isn’t complicated and the industry is entirely used to this kind of solution.
In short: avoid behaving like a scammer and you don’t have to wait for the (maybe more than) 10 minutes. Everyone happy. No protocol changes needed. Like Shadow concluded in your linked thread, the lower level parts are all solved.
even without those scenarios, faster block time are a general improvement that will make life better for everyone facing any confirmation requirements for whatever reason