Coordinated Zcash Network Upgrade Underway

So when I’ll run the new zebra v5 I will expect a full resync?

I also have to resync from scratch. I guess that everyone in the network have to resync.

Same here. My node is on 5.0 and resyncing from scratch. The cached state predated the fork rules, so a clean resync was the only clean path.

@Siegfried is right that formal verification is the way out. But it is worth noticing what actually held: the turnstile-style supply invariant. Formal verification of the proving system, along the lines of Tachyon’s direction, is the stronger version of that: prove whole bug classes cannot occur instead of racing to find instances.

The operator lesson was sharper. The failure mode was not a dramatic exploit. It was nodes quietly stalling on the wrong side of the fork, with no obvious signal unless you checked canonical state yourself.

I’m repurposing zat-explorer.cash into an operator dashboard for exactly that: node canonicality and miner-facing health checks, visible at a glance. (Shielded) Miner operators first.

Congrats to everyone. Fast work.

2 Likes

I’m using docker with a named volume, I need to wipe it out before upgrade or it will replace old cache?

@jenkin it won’t replace the old cache on its own. v5 opens the existing state, sees it’s a pre-fork chain (WrongTransactionConsensusBranchId), and refuses to start, with a hint to delete the db. So you do need to clear it, either before the upgrade or after it complains.

Keep the named volume, just empty the state inside it: delete or move aside state/v27/mainnet (and non_finalized_state/mainnet if it’s there) under .cache/zebra. Zebra’s own hint says delete. I moved mine aside to be safe, same result, then v5 resyncs from scratch, checkpoint sync so it’s faster than a full validate.
And yeah, full resync, looks like everyone’s in the same boat on this one.

1 Like

I’ve heard conflicting reports. Some people say Orchard transactions will resume at 10 PM central standard time, but I’ve also heard June 10.

Any clear ETA

Please use new thread regarding this network upgrade:

1 Like

Longtime lurker here. I can believe that the congrats are warranted on security but perhaps not everywhere… releasing a network upgrade with an activation height that had already passed. After what looks to me like privately running the fix on zec.rocks infra while leaving every exchange and data provider on a chain that they knew was dead. At least that’s my experience, with exchange transactions now frozen for an unknown duration and exchanges knowing anything about it. Every public explorer is hundreds of blocks behind and counting, and now they all have to resync from scratch, which takes all day? But it didn’t take zec.rocks all day for the new canonical chain? Maybe that’s the price of conclusively fixing an unknown vulnerability, but I’m not sure…it also could be shit institutional comms and roll-out.

2 Likes

Syncing both mainnet and testnet… :blush:

3 Likes

How do we know for sure there’s no exploit? The turnstile argument is not strong enough for me. For example, what if there are 1M fake ZEC in orchard pool (+ 5M real ZEC in orchard pool)? As long as there are > 1M real ZEC in orchard pool, there is no absolute way to know if there is any fake shielded ZEC or not?

good question will there be a audit ?

Once the world’s leading team specializing in this very niche field discovered this issue, the Orchard network was effectively frozen at the mining level. To exploit the vulnerability, you would have had to beat them to it in terms of both mathematical research and building the infrastructure to exploit this vulnerability, creating the appropriate client, and so on. But even if you had beaten them to it, you would likely have tried to double-spend, otherwise it would have been pointless. Now you can no longer double-spend using this vulnerability, but the price of ZEC is still $600. What are the odds that you could have pulled that off?

1 Like

How do you know for sure that the “world’s leading team specializing in this very niche field” did not exploit the bug before reporting it?

Well, if you don’t trust them, you’d better sell your ZEC right now, if you have any. I don’t see a problem with that.

I didn’t say that. I’m asking how does anyone know for sure? Seems like the answer is noone knows for sure.

Also the whole point of crypto is to not have to trust anyone.

My logic tells me that I know this for sure. Yours tells you that you know nothing about it. It’s a matter of personal choice. Make your own decision, and time will tell who was right and who was wrong. For example, how were we supposed to know that Taylor hadn’t exploited a vulnerability in Sprout? It’s the same team. But Sprout still hasn’t been depleted. If anyone managed to make any unnecessary expenditures there, they should withdraw that money now, before it’s sent to the network’s sustainability fund. There’s over 25K right now $15M. How am I supposed to know how it all works? Based on Occam’s razor, I figure that if the price didn’t plummet, then there weren’t any unmined coins. That’s the extent of my current explanation.

For example, tomorrow someone will conduct an audit and it will say that everything was fine. Why should anyone trust that? What’s the difference? No one knows what goes on in shielded pools, that’s the whole point. If you don’t want to trust anyone, just stick to transparent cryptocurrencies.

Why would the price plummet because of it? Seems to me the fact it didn’t - on its own - is more of in indicator that the claims are believed, rather than it being evidence of no actual exploit occurring.

I don’t quite understand what you’re actually risking. You have a cap in Orchard, and if you can’t trust that everything worked as it should, just move your ZEC to a transparent pool. Even if any excess coins were issued, no more coins can leave a shielded pool than were deposited into it. Thus, the 21 million coin limit can never be exceeded, even if an unauthorized issuance occurred. At worst, someone might be the last to withdraw funds from Orchard at some point when it becomes too obsolete. It will not be enough to all, and all remaining coins in Orchard will effectively be burned because the counter will be reset to zero. But right now there are over 4,5 million coins there, which is a huge number, and you’re not risking anything.

1 Like

That’s not sufficiently assuring answer. There’s a cap on Orchard. But if a theoretical attacker managed to double spend for a while without us knowing, the attacker would be the one trying to get their coins out of Orchard before legitimate users. The limit is still enforced, but users who got stuck in Orchard would be victims.

Turnstile is not an assurance that double-spending didn’t happen, it’s just there to assure that someone would be getting the short end of the double spending, if it happened.

2 Likes

Yes, that’s exactly right. So if you’re not sure about the integrity of those who first discovered this vulnerability, withdraw your coins from Orchard right now, before the pool runs dry. As for me, I won’t be doing that until a new shielded pool appears, because I don’t see any threat to myself. You have a choice, but 21 million will remain the limit in any case.