Bitswift Platform - Voting System
The Bitswift platform allows the implementation of a public and transparent voting system without relying on a central authority to tally votes.
Example Use Cases
The Bitswift voting system could be utilized by governments to allow for transparent, accessible, tamper proof and publicly auditable voting processes. It could also be used among organizations which may require share holders or company executives to transparently vote on important company decisions. The voting system could also be employed to provide a common organizational structure for decentralized teams, in which the outcome of the vote could determine how the team operates and which goals it advances towards. A decentralized voting system enables company models which do not require central decision makers and where each participant on the platform has an equal voice.
The Bitswift Voting System enables any account to create a poll with one question and up to 100 answers. Accounts are eligible to vote in the poll based on a minimum required balance of Bitswift, an asset or a currency. Voting consists of selecting an integer range value to associate with one or more answers as specified during poll creation.
An answer is given weight based on one of four voting models and then its weight is multiplied by the associated range value to compute a corresponding result. The four voting models specify weight as: one per voting account, or equal to the balance per voting account of Bitswift, an asset or a currency.
An aggregate weight for each answer is computed as the sum of all individual vote weights; likewise an aggregate result is computed. Individual votes are saved until at least 1441 blocks after the poll completes, typically more than a day. After this time, votes are deleted and only aggregate weights and results remain available.
Voting System Menu
The Voting System is accessed by clicking on Voting in the left-pane menu area of the Bitswift Client Interface, causing a submenu to appear:
Voting: This item expands or contracts the submenu below and opens the Voting screen. Active Polls: This item displays a list of all active (unfinished) polls and their properties as shown in the Voting screen. Followed Polls: This item displays a list of all polls followed (monitored) by the logged-in account as shown in the voting screen, where where polls can be Vcast and ongoing aggregate results viewed. My Votes: This item displays a list of all polls already voted in by the logged-in account; from this screen poll results can be viewed. My Polls: This item displays a list of all polls created by the logged-in account; from this screen polls can be monitored. Create Poll: This item opens a pop-up entry form for creating new polls.
Active Polls Screen
- The poll list is in order of most recently created polls.
- Clicking on the Title of a poll opens a detail pop-up window showing the values of all parameters specified during the creation of the poll.
- The Description column gives the purpose of the poll, often worded as a question.
- The Sender column gives the account ID of the poll creator. Clicking on the ID gives details about the account.
- The Start Date column gives the date/time when the poll opened for voting.
- The Blocks Left column gives the number of blocks remaining until completion of the poll. A block is added to the blockchain approximately every minute or two.
- Clicking on a highlighted Vote button in the Actions column opens a pop-up window to cast a vote in the poll.
- Clicking on a highlighted Follow button in the Actions column adds the poll to the followed polls screen, where the ongoing aggregate results can be viewed.
- If a poll has already been voted in or followed, the corresponding button fades and deactivates.
- Clicking on the Create Poll button in the upper right of the screen opens a pop-up window for creating a poll.
Create A Poll
A poll can be created by clicking on Create Poll button on the Voting menu. A Create Poll pop-up window is opened.
- Enter a Name or title of the poll.
- Enter a Description for the poll; this is the purpose of the poll and is often worded as a question.
- Select a voting model for the poll from the Poll By drop-down list. Your choice affects some of the next fields/controls. For details on the four voting models and the affected controls, refer to the sections below:
Vote By Account Vote By Account Balanc Vote By Asset Balance Vote By Currency Balance
- Enter a Finish Height in the box on the left, the height of the blockchain when the poll completes and voting ends. For convenience, an estimated date and time corresponding to the finish height is provided, and three buttons are provided to set the finish height to the current height, then adjust it in increments of 500.
- Enter Answers (options) in the fields provided, clicking on Add Answer or - (minus sign) as necessary to adjust the number of answers.
- Enter the minimum and maximum number of answers (options) that must and can be voted for in the Minimum Nr Of Choices and Maximum Nr of Choices fields.
- Enter the minimum and maximum integer range values to be assigned to answers when votes are cast in the Minimum Range Value and Maximum Range Value fields. Note that a range value of 0 is treated by the Bitswift client as a nonvote and so doesn't count toward the Nr of Choice fields.
- Note that if the minimum range value is greater than 0, a non-vote is interpreted as a minimum range value vote and so Maximum Nr of Choices must be equal to the number of answers (options).
- Click on the Create Poll button in the lower right of the window to create a transaction, the transaction ID of which becomes the poll ID if it is accepted into the blockchain. If there is an error in the poll specification, it will appear at the top of the window and the window will remain open.
Vote By Account
This voting model assigns a weight of 1 to each vote cast.
- Select Vote by Account from the Poll By drop-down list.
- Select the Min Balance Type. The default selection None means that all accounts are eligible to vote. The other three choices prevent accounts from voting that do not meet the minimum Bitswift, asset or currency balance requirement.
- If Min Balance Type is set to Account Balance, enter the minimum required account balance in the Min Voting Balance (Bitswift) field, in units of Bitswift.
- If Min Balance Type is set to Asset Balance, an Asset field appears on the next line. Enter the asset ID in the left box; the right box will then display the name of the asset. Enter the minimum required asset balance in the Min Voting Balance (Asset) field on the next line, in standard asset units.
- If Min Balance Type is set to Currency Balance, a Currency field appears on the next line. Enter the currency code in the left box; the right box will then display the ID of the currency. Enter the minimum required currency balance in the Min Voting Balance (Currency) field on the next line, in standard currency units.
Vote By Account Balance
This voting model assigns a weight equal to each voting account's balance of Bitswift (in QNT).
- Enter the minimum required account balance in the Min Voting Balance (Bitswift) field, in units of Bitswift.
Vote By Asset Balance
This voting model assigns a weight equal to each voting account's balance of a specified asset (in QNT).
- Enter the asset ID in the Asset field (left box); the right box will then display the name of the asset.
- Enter the minimum required asset balance in the Min Voting Balance (Asset) field in standard asset units.
Vote By Currency Balance
This voting model assigns a weight equal to each voting account's balance of a specified currency (in QNT).
- Enter the currency code in the Currency field (left box); the right box will then display the ID of the currency.
- Enter the minimum required currency balance in the Min Voting Balance (Currency) field in standard currency units.
Cast A Vote
A vote can be cast in an active (unfinished) poll in by clicking on the appropriate button or link on the Active Polls screen, the Followed Polls]] screen, or the My Polls screen. The button or link is only visible while the poll is still active. Vote buttons are only highlighted and active if a vote has not yet been cast. Clicking on the button or link opens a Cast Vote pop-up window.
- The Description is the purpose of the poll, often worded as a question.
- The Range section begins with an instruction followed by the poll options (answers).
- The instruction specifies the number of answers that may be voted for, which can be as few as one and as many as all, as specified during poll creation.
- Voting for an option (answer) consists of clicking on the checkbox to the left of the answer or dragging the slider below the answer to select an integer value, depending on the range specified during poll creation.
- In the example above, the Minimum Range Value is 0 and the Maximum Range Value is 1, and so a checkbox is provided for voting and checking the checkbox is equivalent to choosing a range value of 1. Leaving a checkbox unchecked corresponds to a range value of 0, but the Bitswift Client treats this case as a nonvote; it does not count it toward the Nr of Choices restrictions expressed as Select 1 option from below (Minimum Nr of Choices and Maximum Nr of Choices are both 1).
- Click on the Cast Vote button in the lower right of the window to create a transaction. If there is an error, it will appear at the top of the window and the window will remain open.
View Poll Results
Poll results can be viewed both while polls are still active and after their completion on the Followed Polls]. Only finished poll results can be viewed on the My Votes screen or the My Polls screen by clicking on a Results button or link, respectively. Clicking on Results, once available, opens a Poll Results pop-up window with two tabs as shown below. The Poll Results tab displays the final aggregate results and the Votes Cast tab displays the individual votes that contributed to the results while the votes are still available in the database. Refer to the Followed Polls Screen section for explanations of the information displayed.