[PROPOSAL 854][PASSED] Gaia v14.1 Upgrade
Change log:
- 2023-11-08 Created initial post
- 2023-11-15 Clarified FAQ on retroactive tombstoning
- 2023-11-17 Updated text to reflect v14.1 and outlined reasoning for changes
- 2023-11-28 Updated title for on-chain proposal
- 2023-11-30 Updated to add link to release
An Important Note for Validators
tl;dr
- Never reuse keys between chains, including testnet chains.
- If you are not sure where you have used your current keys, do a key reassignment ASAP.
- Here are the docs on how to do a reassignment.
For the purposes of this post, weâre referring to double signing as when there are two signatures from the same key on the same block height, on the same chain-id
. âEquivocationâ covers other misbehaviour but there has been very little confusion about how the cryptographic equivocation applies to anything but double-signing.
In order for double-signing on a consumer chain to be punished by the Hub, all of following must be true:
- Same
chain-id
- Same block height
- Same keys on both signatures
If any of the above are not true, there will be no automatic punishment via the cryptographic equivocation feature.
New feature: Height-base filter for consumer equivocation evidence
There have been concerns about multiple valid chains with the same chain-id
, such as prior testnets, on which validators may have used their mainnet keys.
A feature has been added that does the following:
- For new consumer chains:
- Records the consumer chain block height at the time it enters the Hubâs security.
- Filters out equivocation evidence that occurred prior to that block height.
- For existing consumer chains:
- Records the consumer chain block height at a specified time:
- Neutron: block height
4552189
- Stride: block height
6375035
- Neutron: block height
- Filters out equivocation evidence that occurred prior to that block height.
- Records the consumer chain block height at a specified time:
In effect, this means equivocation on consumer chains prior to entering the Hubâs security will not be punished by the Hub. For existing consumer chains which are already within the Hubâs security, any equivocation prior to today will not be punished.
âautomaticâ refers to evidence being recognized and presented by Hermes relayers running in âevidence modeâ, which is recommended to all Hermes operators after the 14.1 upgrade passes. Evidence can also be manually prepared, though only if the double-signing genuinely occurred on-chain (i.e., one cannot fabricate a double-signing incident).
Background
The Gaia v14.1 release is a major release that will follow the standard governance process by initially submitting this post on the Cosmos Hub forum. After collecting forum feedback (~ 1 week) and adapting the proposal as required, a governance proposal will be sent to the Cosmos Hub for voting. The on-chain voting period typically lasts 2 weeks.
On governance vote approval, validators will be required to update the Cosmos Hub binary at the halt-height specified in the on-chain proposal.
Proposed Release Contents
The relevant Github epic for this release is: Gaia v14.1.0 Release
The changes planned for the v14.1 release involves the update of the Interchain Security provider module for the Cosmos Hub. This update introduces a new feature: the cryptographic verification of equivocation. This feature will automatically punish validators for equivocation by verifying evidence of double signing and light client attacks on the provider chain.
Consequently, this change renders equivocation proposals, exemplified by proposal 818, unnecessary. After the upgrade height, the v14.1 release marks the deprecation of equivocation proposals.
The relevant forum post for the cryptographic verification of equivocation feature can be found here.
Testing and Testnets
The v14.1 release will go through rigorous testing, including e2e tests, integration tests, and differential tests. Differential tests are similar to integration tests, but they compare the system state to an expected state generated from a model implementation. In addition, v14.1 will be independently tested by the team at Hypha Co-op.
Validators and node operators can join a public testnet to participate in a test upgrade to a release candidate before the Cosmos Hub upgrades to the final release. You can find the relevant information (genesis file, peers, etc.) to join the release testnet (theta-testnet-001) here, or the Replicated Security testnet (provider) here.
Potential risk factors
Although very extensive testing and simulation will have taken place there always exists a risk that the Cosmos Hub might experience problems due to potential bugs or errors from the new features. In the case of serious problems, validators should stop operating the network immediately.
Coordination with validators will happen in the #cosmos-hub-validators-verified channel of the Cosmos Network Discord to create and execute a contingency plan. Likely this will be an emergency release with fixes or the recommendation to consider the upgrade aborted and revert back to the previous release of Gaia (v13).
Governance votes
The following items summarize the voting options and what it means for this proposal:
YES - You agree that the Cosmos Hub should be updated with this release.
NO - You disagree that the Cosmos Hub should be updated with this release.
NO WITH VETO - A âNoWithVetoâ vote indicates a proposal either (1) is deemed to be spam, i.e., irrelevant to Cosmos Hub, (2) disproportionately infringes on minority interests, or (3) violates or encourages violation of the rules of engagement as currently set out by Cosmos Hub governance. If the number of âNoWithVetoâ votes is greater than a third of total votes, the proposal is rejected and the deposits are burned.
ABSTAIN - You wish to contribute to the quorum but you formally decline to vote either for or against the proposal.
Frequently Asked Questions
What should I do if I currently use my provider keys on consumer chains?
- Perform a key assignment so that you are not reusing keys between chains.
How is consumer chain equivocation currently handled on the Hub?
- Evidence of the equivocation must be manually gathered and submitted along with an equivocation proposal via governance.
How will consumer chain equivocation be handled if it occurs between now and the v14.1 upgrade height?
- The equivocation proposal process could be used if it is completed before the upgrade height.
- Or the evidence could be presented after the upgrade height and the below process would apply.
How will consumer chain equivocation be handled after the upgrade?
- Equivocation proposals no longer exist.
- Once this upgrade passes, relayer operators running Hermes between Hub and consumer chains should upgrade to latest version.
- Evidence must be presented (either by running Hermes in evidence mode or manually formatting the message) and then slashing will happen automatically.
Can validators be retroactively slashed for past equivocation on consumer chains?
- No. Any equivocation from before the specified block heights cannot be punished.
- This change was made to ensure that there will be no slashing or tombstoning for double-signing incidents that have already been judged (e.g., Prop 818).
What will happen specifically to Pupmos and Citizen Cosmos?
- See answer above.
How does key reassignment interact with this feature?
- After key assignment, the previous key is only held in state for three weeks (21 days). While the old key is in use or held in state, any equivocation that occurred using that key can be punished. During this 21 day period, any equivocation using the old key can still be punished. Once 21 days pass and the old key is no longer held in state, equivocation using that key cannot be punished.