In this guest post Max explains some of the details behind Swarm’s Liquid Democracy system and how to participate in their current surveys for SWM token holders. Max is the CTO of SecureVote, Swarm’s governance partner.
A core utility of the SWM Token is that it enables holders to participate in foundation-level decisions via the Swarm Liquid Democracy Voting Module (LDVM).
People holding SRC20 fund-specific tokens (the securities equivalent of ERC20 tokens) can also vote in investment-level ballots using the LDVM.
In October 2017, Swarm’s inaugural LDVM vote was to decide on the SWM Token’s drip liquidity schedule. If you didn’t participate in this first vote, now is a good time to get familiar with how it works, as this is voting like you’ve never seen before.
To help new SWM Token holders get familiar with how voting and governance works on Swarm, we’ll be releasing a series of non-binding votes, which function more like surveys. These will be live on vote.swarm.fund over the next few weeks, with the first 2 opening today, Wednesday, February 28th 2018.
Mechanics
The back-end voting mechanism in these surveys functions in the same way as near-future binding votes.
Unlike typical elections, Swarm’s Liquid Democracy Voting Module uses a powerful voting system, allowing you to cast your opinion about every option (not just your most preferred one). Voting thus becomes far more powerful than a simple checkbox.
Each option within a given proposal can be voted on using a slider that sits on a spectrum of -3 to 3, representing an indication of approval/disapproval, allowing you to show the weight or strength to your conviction. This is called Range Voting.
Votes are tallied according to a stake-weighted model, meaning your vote counts proportionally to the amount of SWM tokens you hold in the wallet which casts the ballot. You’ll also be able to delegate your votes, even in surveys. In a future release of the LDVM, voters can be rewarded SWM tokens for participating in governance. Stay tuned for updates.
An additional and important point is that these stake-weighted votes will use your SWM balance as it was at block 5173410 — just before the surveys went live at 1 March 00:00 UTC.
Governance
Governance is the crucial element that will enable trillions of dollars worth of real assets to be tokenized and managed on the blockchain. Liquid Governance models appreciate that people have multi-dimensional opinions on important issues and that decision making can be more than selecting between black or white. For the first time, Swarm allows you to express your desire or aversion to every potential outcome in a decision, registering a spectrum of your opinion.
Welcome to the age of democratized investing.
How to Participate
- Select the Ballot you’d like to vote on
- Enter the Ethereum address you use to hold your SWM tokens (Optional) — If you choose to do this we’ll show you your SWM balance on the voting screen to confirm you have the right address.
- Choose your vote!
How to use Range Voting — Each vote consists of a choosing a score within the range -3 to +3. +3 indicates best option and -3 indicates the worst option. When the voting has finished, all votes are weighted and summed, and the option with the highest weighted score wins.How can I submit my vote? — Once you have finished selecting values for your vote options, your ballot will be encrypted. You will then be presented with instructions to submit your vote either via MyEtherWallet or another wallet, and to validate the integrity of your ballot if you wish.Choose a delegate (Optional) — You may optionally select a delegate, though this isn’t required. If you would like to, please enter their SWM token address below. If your delegate casts a vote, your votes will be replaced with the votes that your delegate chooses. If your delegate does not cast a vote, your vote will be cast with the options you have selected.
Cast Your Vote!
- MetaMask — the option with the least steps.
1. Click the “Vote using MetaMask” button2. MetaMask will pop up in your browser. Unlock your wallet if need be.3. Everything should be ready to go. Review the transaction details, and when you’re ready, click send! A successful transaction will take about 120,000 gas.4. You’ll be taken back to the voting interface and the transaction ID will be shown to you. You can also find this within your MetaMask wallet. You can then use the automated tool to confirm your vote was submitted correctly.
- MyEtherWallet
1. Go to MyEtherWallet > Contract — you’ll need to do this yourself in a new tab.2. Enter the contract address — This will be provided on the voting screen.3. Enter the ABI — copy and paste this (will appear after voting) into the ABI section4. Copy in your encrypted ballot and ephemeral public key — Select the ‘submitBallot’ contract method. Copy in your encrypted ballot (provided) into the corresponding field. To verify your encrypted ballot, please see the ‘Verify Ballot’ screen. You’ll also need to copy in your voting public key (provided). This voting key was generated as a one-time-use key for this voting session only.5. Sign and send! Next, click ‘Write’, confirm you are sending 0 ether, and make sure the Gas Limit is at least 120,000 or so (200,000 recommended). Once you’re satisfied, click ‘Generate Transaction’, take note of the raw and signed transactions if you like, then click ‘Yes I am sure! Make transaction.’6. Note the Transaction ID — you can use this within the voting interface to verify your ballot was cast correctly.
- Other
1. Open up your wallet and go to the send transaction screen — we’re going to send a transaction to the voting smart contract with a prepared data payload.2. Enter the voting contract address — The voting contract address will be provided to you when you’re ready to cast the ballot.3. Enter transaction data — Be sure you’ve set the ‘value’ you’re sending at 0, and then paste in this (will appear after voting) transaction data. If you need to select an amount of gas to use, choose at least 120,000 gas; we recommend 200,000.4. Sign and send your transaction — Woo! Wait for your transaction to confirm and your ballot should be submitted.5. Check your transaction — Paste in your transaction ID to confirm your ballot was cast correctly.
You’re done!
- You don’t need to do anything from this point on, but it’s a good idea to check that your vote was confirmed properly.
- To verify your vote was received, wait for the transaction to confirm
- Automatic verification — Paste in your transaction ID to the automatic verification form on the “Verify ballot” page to confirm your ballot was cast correctly
- Alternative — Manual verification
1. First, search for the voting smart contract on etherscan.io and click the “Read Smart Contract” tab.
2. Next, choose the ‘voterToBallotID’ method from the dropdown menu. Enter your address in the field provided and click ‘Query’.
3. Make a note of that number. This is your most *recent* ballot ID. (If you’ve voted more than once only your most recent vote counts)
4. From the dropdown, select ‘encryptedBallots’ and enter your ballot ID. Confirm the answer you get back matches what you put in before.
5. Do the same for ‘associatedPubkeys’ to check your public key was recorded properly.
6. And you’re done! - Verify your Ballot was cast exactly as you intended (optional and technical)
If you’d like to, the “Verify your Ballot” screen will give you all the information you need to confirm your ballot was cast exactly as you intended. This includes your voting public and private keys, your ballot details, and delegation details. This is a technical step and requires an installation of nodejs on your local machine. You can find the detailed instructions in our GitHub repository here.
As always, let us know if you have any questions via swarm@swarm.fund, Telegram, or Intercom Support.
Sincerely,
Your friends at Swarm Fund
Swarm is the blockchain for private equity.
We bring high-return alternative assets to everyone and use AI to continuously improve investments.
Like our updates? Join our Telegram.
Want to subscribe to our newsletter? Visit our website.
SecureVote provides blockchain governance services to DAOs, token ecosystems, and crypto communities.
If you’d like to know more about the technical details please see this document which discusses the security model for encrypting the ballots, and you can find the source code for the full system here.