Skip to content

x/gov & x/group proposal IDs could be spoofed by UIs #10876

Open
@aaronc

Description

@aaronc

Problem

Currently proposal IDs are just auto-assigned integers. A UI could show the wrong proposal content and a user could vote on it without knowing they are voting for the wrong thing. This could be mitigated by lite client proofs in the UI, but currently these aren't well-supported. This could especially be an issue when x/group is used as a multisig.

Possible Solutions

The most obvious solution is to make the proposal ID the hash of the proposal content (msgs + metadata) plus some nonce so that the user will see the proposal hash in the UI as well as Ledger signing interface. The user would still need to very that the hash matches the content, but this is somewhat easier than making a full lite client proof.

Going one step further, it would be great if the sign mode textual could actually show the proposal content in the Ledger UI. This could work if there was some way to annotate certain Msg fields as "links" and then display the linked content.

One potential issue with hashing is that we don't yet have guaranteed canonical protobuf serialization... although this is planned for pulsar.

/cc @cmwaters @blushi @AmauryM

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions