Skip to content

Step 3: Review the Proposal

Before voting, inspect the proposal:

Terminal window
ckb-firewall proposals --status voting

This shows proposals that are currently open for voting. Notice the fields:

  • Actionadd, remove, or set-treasury. This tutorial uses add.
  • Lock args — the address being proposed for the blacklist
  • Evidence — a URL or description linking to the evidence that supports this proposal
  • Classification — the threat type: theft, scam, hack, sanctions, or other
  • Severitycritical, high, medium, or low
  • Rationale — the proposer’s written case

All of these fields are combined and hashed into the proposalIdHash. No field can be changed after the proposal is created. Any modification produces a different hash, which invalidates all votes for that proposal. This is what makes the vote record tamper-evident: a vote signed against proposalIdHash = 0xabc... only authorizes that specific proposal.

The voteDigestHash is a rolling commitment to the set of votes cast so far. It starts as the zero hash and updates as validators add their votes. When execute runs, it recomputes this hash from the stored votes and checks it matches — catching any tampering with the vote records.

When you have reviewed the proposal and are satisfied with its evidence and rationale, continue to Step 4.