Upon publishing the vote proposal to the GitHub Repository and implementing and displaying it to the Treasury website, the Hornet node operators can implement the vote proposal now as an event in their nodes. The participating nodes are now observing the Tangle and are ready to count votes for this proposal.
The 'voting open" phase starts at a predefined point in time (a milestone) in the IOTA network. Users can now vote using the Firefly wallets voting functionality. Changes in voters' opinions during this timeframe can be done without influencing the final vote count of the voter. Voters are required to initiate the vote during these seven days to gain their maximum possible votes counted.
This period follows the "voting open" phase: the declared vote of a user is now counted. The number of counted votes will increase with every passing milestone (one milestone is issued every 10 seconds) in the network. If a voter did issue the vote during the "voting open" phase, the vote would reach the maximum possible counted votes related to the number of tokens used by the voter. If a voter attempts changing the selected vote option in this timeframe, the counting for the new option starts with the confirmation of the change in Firefly. Although the option has changed and new votes are now counted for a different option, the previously counted votes for the first option are not dismissed and count as valid votes.
A) Initiate a vote directly within the Firefly Wallet:
You can execute your vote in the Firefly Wallet. Once published, every user can install the latest update of the Firefly software, which will contain the new voting functionality.
You decide which option you want to vote for and which wallet and token balance should participate in the vote. You can individually vote with all wallets in a profile. If you only want to use a part of your tokens to vote, moving this amount into a separate wallet in your profile is necessary. You will confirm the prepared voting transaction with your Stronghold password or Ledger Nano hardware wallet.
B) Initiate a vote directly here on the website:
This website includes a voting application. In this application, you can prepare your vote by deciding between the Build or Burn options.
Once you have decided here on the website, your vote will be forwarded to your Firefly wallet, where further selection and confirmation steps are required from you.
Technical details of the vote:
The voting mechanism uses IOTA's capability to issue value transactions with attached metadata. In a vote, a transaction is issued that moves the tokens residing on your address (and specifically, the unspent transaction outputs (UTXO) of this address). In this transaction, the sender and receiver address is identical (you are sending the tokens to yourself).
During this transaction, the vote metadata (vote event ID, voter opinion ID: build or burn) will be attached and immutably written onto the UTXOs of your address in the IOTA Tangle. After the vote, the tokens will still reside on the same address as before, but now with attached information in the metadata that represents your opinion in the vote.
An external security audit provider has audited this functionality.
The community has decided that 1000 IOTA (0,001 Mi) generate 1 vote every 10 seconds (with every new appearing milestone) in the counting period.
So a vote of 1 Mi for "build" will be counted like this: 1000 votes counted for build on milestone x + 1000 votes counted for build on milestone y, + 1000 votes counted for build on milestone y... This method would produce during a counting period of 1500 milestones the following vote count:
All nodes will count all UTXO with attached voting metadata they observe during the "counting phase" of the vote and add up the votes for every milestone until the counting phase ends (marked by a predefined ending milestone).
This counting mechanism also leads to the fact that the "vote holding time" for tokens will greatly influence the result. Votes gain "weight" in relation to how long they are kept on an address. This is a crucial security feature of the voting mechanism that will reward long term token holders and punish voting "speculators" or "vote buyers" by forcing them to lock capital over a longer time period and making an attempt to "buy votes" a speculative risk due to the potential IOTA price volatility in the ten days counting period.
Let's look at a few examples of the possible vote count based on different variables:
The community validates the results of this voting process. Once the defined time window of the vote has passed (7days pre-vote + 10 days counting period), all Hornet node operators who participated in the counting of the proposal can publish their counting result in a public Github repository. The result will be published as a hash checksum of the counting database file for easy comparing. Everyone is invited to check and validate the submitted count results to ensure no differences exist.
Community-defined voting rules.