Skip to content
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

crypto(gov): submitting delegator vote proofs fail to verify #2967

Closed
erwanor opened this issue Sep 5, 2023 · 3 comments
Closed

crypto(gov): submitting delegator vote proofs fail to verify #2967

erwanor opened this issue Sep 5, 2023 · 3 comments
Assignees

Comments

@erwanor
Copy link
Member

erwanor commented Sep 5, 2023

Describe the bug
I am not able to submit a vote on any governance proposal on my local devnet because the delegator vote proof fails to verify.

$: cargo run --release --bin pcli -- -n http://127.0.0.1:8080 tx  vote yes --on 1
...
Error: status: Internal, message: "could not broadcast transaction: transaction pre-submission checks failed: a delegator vote proof did not verify: delegator vote proof did not verify", details: [], metadata: MetadataMap { headers: {"content-type": "application/grpc"} }

To Reproduce
Steps to reproduce the behavior:

  1. Query the validator list
  2. Delegate some penumbra to a validator
  3. Create a signaling proposal: cargo run --release --bin pcli -- tx proposal template signaling and save it to signal.toml
  4. Submit the proposal: cargo run --release --bin pcli -- tx proposal submit --file signal.toml
  5. Check that the proposal is present: cargo run --release --bin pcli -- query governance list-proposals
  6. Vote on the proposal: cargo run --release --bin pcli -- tx vote yes --on 0
  7. See error

Expected behavior
The proof should not fail to verify during the pre-submission checks.

Additional context
It's possible that the proof uses the wrong balance commitment (unbonded amount or staked note) as input.

@erwanor
Copy link
Member Author

erwanor commented Sep 5, 2023

Reproducing on v0.59.0 leads to the following error:

Error: status: Unavailable, message: "error fetching notes: Invalid column name: asset_id", details: [], metadata: MetadataMap { headers: {"content-type": "application/grpc"} }

This was fixed by 907d6f854ddc98c829a0ea97ece4386f9e3b546b. You can do git checkout 907d6f854ddc98c829a0ea97ece4386f9e3b546b and run the commands with the fix.

@erwanor
Copy link
Member Author

erwanor commented Sep 5, 2023

I'm checking that the public inputs to the proof match those that we feed to the verifier, and I noticed that on one hand (proving) we use the balance commitment to the unbonded amount and in the other we use the balance commitment to the staked note. I think that what we want to do is have a commitment to the voting power at the time of delegation (i.e. unbonded amount).

Opened #2969 to fix this.

@erwanor
Copy link
Member Author

erwanor commented Sep 6, 2023

Fixed in #2969

@erwanor erwanor closed this as completed Sep 6, 2023
@github-project-automation github-project-automation bot moved this from In Progress (Already claimed) to Testnet 60: Tethys in Testnets Sep 6, 2023
@erwanor erwanor assigned plaidfinch and unassigned redshiftzero Sep 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: Testnet 60: Tethys
Development

No branches or pull requests

3 participants