Skip to content

consensus: enable >= 1/3 val set changes #1022

@adrianbrink

Description

@adrianbrink

Let's say that every 1000 Ethereum blocks (1 epoch) an application wants to use the state of a smart contract to update the validator set. During the first epoch the validator set is A B C. Due to changes in the smart contract on Ethereum the validator set for the second epoch is D E F. Any user can submit the latest state of Ethereum to the Cosmos application to cause the change in validator set with a special transaction. The application now returns a validator set which is completely different (i.e. 100% change). According to #1004 Tendermint Core now rejects that block.

The options are that either the app receives that change transaction and then bisects it until it hopefully finds a way to do it in less than 1/3 or that the submitter has to split the transactions. The problem though is that in case there is no <1/3 an app has to reset it's entire state. The ideal solution would be to make #1004 a config option to enable apps that have delegation done outside of their chain.

Of course, light clients would have to reconfirm the validator hash.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions