-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make old Zebra versions eventually refuse to run #1870
Comments
The standard We do usually shorten the support period (if necessary) for the last release prior to supporting a NU on mainnet, to ensure that the only supported |
Thanks, I've fixed the ticket. |
This is a serious security issue, but it's not required before NU5 activation. |
One for the ziggurat team? |
We don't want to do this now, it seems to cause a lot of problems. |
ECC devs asked us about adding an automated halt to each Zebra version, so I'm going to re-open this ticket.
https://discord.com/channels/809218587167293450/809251050741170187/1037816158067363882 We might want to do this before the first stable release of Zebra, or before NU6 testnet activation. |
@mpguerra the ECC engineers have suggested that we make this change for security reasons. Can we please schedule it in before Zebra does its first stable release? (If we change it after doing our first stable release, or after we pick up a lot of users, they will be very surprised.) |
I created a pull request for this here By default this pull request will end the support for a release at 180 days(6 months - around 12 releases) after its creation. If we consider the last 2 network upgrades in Zcash which are Canopy and NU5, there are 1 year and a half apart, I am assuming that NU6 will not be much less than that. The number can be adjusted, i am openb to discuss it as 6 months just sounds reasonable to me but it is more or less random selection. |
Could go in the existing progress task? |
I update this ticket based on the sync discussion today. |
Motivation
Nodes stuck on outdated network upgrades can be attacked using a small amount of hash power. For example, this is a security issue for users if that Zebra instance backs a lightwalletd server.
Include the latest checkpoints to prevent long-range attacks under both Proof of Work (this is even more important under Proof of Stake).
Having an end of support halt puts an upper bound on how long security issues can persist on the network.
If an old Zebra version launches after a network upgrade, it will keep trying each peer it gets from the DNS seeders, even if they have been upgraded, and reject its connections. This is a distributed denial of service risk, and it places extra load on the network.
Issue 4 is mitigated by:
Solution
Zebra should refuse to run on launch, if a lot of blocks have been generated since the last release. The exact number of blocks isn't important, but it should be some fraction of the block/times between network upgrades.
Zebra should exit when it reaches the end of support block height.
Design Tasks:
zebra-checkpoints
and the checkpoint parsing code)Implementation Tasks:
Testing:
Documentation:
Alternatives
This is a serious security issue, so we must do something. But it won't have a major impact until a lot of Zebra nodes are deployed and run for a long time.
Context
zcashd
has a support interval of around 16 weeks between required upgrades, with new versions coming out every 6 weeks. It's important that the end of support halt is not a multiple of the release cycle.This is similar to Zebra's 4 month peer address limit in #1865.
Here is the initial
zcashd
issue:The text was updated successfully, but these errors were encountered: