Ensure parameters match in the peer protocol. #409
Labels
A-consensus
Area: Consensus rules
C-future-proofing
Category: Changes that minimise the effects of shocks and stresses of future events.
in 1.0
special to Nathan
zkSNARK Multiparty Computation
zkSNARK Parameter Deployment
If a node joins a network but is using different zkSNARK circuit params, in the current codebase, I believe the peer protocol level won't notice this and then some nodes will fail other nodes' proofs.
A simple way to handle this is to bake in the hash of the parameters into the genesis block because the genesis block is already hardwired into nodes and the peer protocol (and there are different ones with different parameters: eg: prod network, testnet, localtest, etc...).
I added
future proofing
because we've discussed being able to migrate parameters long term. In that case we would need a way to do this "parameter agreement" as new parameters are introduced. One question is: if we use the "bake-it-in-the-genesis method" I described above, would this preclude any of our brainstormed parameter migration strategies?The text was updated successfully, but these errors were encountered: