Voting in the Colony Governance Protocol. Elena Dimitrova & Dr. Aron Fischer

Similar documents
An Analysis of Atomic Swaps on and between Ethereum Blockchains Research Project I

TREEBLOCK.IO. Version Author: Anh Le, Advisor: Dr. Rex Yeap. Creating a high performance IoT Blockchain Network

MYETHERWALLET GUIDE 1

Three-Dimensional Scalable Blockchain. Tokenomics draft v. 0.3 (En)

BLOCKCHAIN CADEC Pär Wenåker & Peter Larsson

Clarity on Cyber Security. Media conference 29 May 2018

INVESTOR PRIMER FOR PUBLIC CIRCULATION 2018

SECURITY AUDIT REPORT

A Framework for Managing Crime and Fraud

ICO Review: Etherparty (FUEL)

QUADCORECHAIN. White Paper ver.1

Threat Assessment Summary. e-voting, Admin, and pvoting TOE s

Mobile Security Fall 2012

Public Chain for Digital Asset Escrow

Key concepts of blockchain

0xcert - Your ID, degree, artwork or house. 0xcert-ified on the blockchain.

GENESIS VISION NETWORK

Election Night Reporting. DuPage County Election Commission

Node Incentives: An autonomous decentralised incentive and donation system.

Cyber Resilience. Think18. Felicity March IBM Corporation

Blockchain! What consultants should know about it. Daniel

An Offline Foundation for Accountable Pseudonyms

Lightpaper TENZORUM. The unstoppable machine for self-sovereign key management and access to the decentralized world.

CLN CLN TOKEN SALE. How to Participate Using MyEtherWallter

Security Audit of FuzeX Smart Contract This report is public. ChainSecurity Ltd. January 11, 2018

Block Chain Voting System

Mentor epolls Polling for Groups

priveos Angelo Laub, Fabian Frank, Marcel Vaschauner, Michael Breidenbruecker, Stefan Ionescu, Tassia Breidenbruecker DRAFT Slant Team

Election Night Reporting Quick Start Guide

WAVE: A decentralised authorization system for IoT via blockchain smart contracts

ENEE 459-C Computer Security. Security protocols (continued)

Vladimir Groshev. COO, Project Coordinator.

Table of contents. Technical Features. Our approach. Technical Overview. Stage 1 (Using Ethereum blockchain) Participants. Data Owner.

A Secure and Dynamic Multi-keyword Ranked Search Scheme over Encrypted Cloud Data

Kleptographic Attacks on E-Voting Schemes

Blockchain-enabled peer-to-peer marketplaces

Evaluating the Wisdom of Crowds in Assessing Phishing Sites

ICO Review: Celer Network (CELR)

Verifiability experiences in government online voting

NKN is a new kind of network connectivity protocol & ecosystem powered by blockchain for an open, decentralized, and shared Internet.

Growing Communities for Co-Creation : How Employees and Customers/Users Collaborate To Increase Adoption and Retention

How To Build or Buy An Integrated Security Stack

The power of Blockchain: Smart Contracts. Foteini Baldimtsi

Information Security for the Future Seminar Tapio Äijälä, Chief Operating Officer NXme FZ-LLC (Nixu Middle East)

The Technology behind Smart Contracts

TABLE OF CONTENTS 1.0 TOKEN SALE SUMMARY INTRODUCTION HOW TO BUY LION HOW TO BUY LION WITH METAMASK

Exceptional Access Protocols. Alex Tong

Information Security for the Future Seminar Oiva Karppinen, Chief Executive Officer NXme FZ-LLC (Nixu Middle East)

Whitepaper The blockchain platform for building decentralized marketplaces

Election Night Reporting Guidebook. County of Santa Clara Barry Garner Registrar of Voters

1) RED MegaWatt Tokens 2) RED Platform 3) RED Franchise

Election Night Reporting Guide

Introduction to Cryptocurrency Ecosystem. By Raj Thimmiah

0xBASE Mobile-first dapp and instant payment infrastructure for the devices of today and the token economies of tomorrow

NEO White Paper. NEO design goals: Smart Economy. Digital Assets. Digital Identity. A distributed network for the Smart Economy

Securing Cloud Applications with a Distributed Web Application Firewall Riverbed Technology

Privacy-Enabled NFTs: User-Mintable, Non-Fungible Tokens With Private Off-Chain Data

ENEE 459-C Computer Security. Security protocols

Purpose. Symptom. Cause. March 4, 2008

SO OS Secure Online Voting System

Computer Security Fall 2006 Joseph/Tygar Midterm 3

FLIP Token (FLP) How to Participate in the FLIP Token (FLP) Sale Event. 1 Disclaimer 2. 2 What You Will Need 2

CSci530 Final Exam. Fall 2014

Robust Reputation Based Trust Management Framework for Federated-Cloud Environments

Computer Security Fall 2006 Joseph/Tygar MT 3 Solutions

Nervos CKB: A common knowledge base for blockchains and applications

The technical notes represented on the following pages are intended to describe and officially document the concepts behind NulleX Blockchain.

a new cryptocurrency STK GLOBAL PAYMENTS USER GUIDE USER GUIDE: PARTICIPATING IN IN STK STK TOKEN TOKEN SALE USING SALE MYETHERWALLET

CISC859: Topics in Advanced Networks & Distributed Computing: Network & Distributed System Security. A Brief Overview of Security & Privacy Issues

A Case For OneSwarm. Tom Anderson University of Washington.

Eventum: Platform for Decentralized Real-World Data Feeds

NEUROSEED WHITEPAPER. Version 1.1. May 1, 2018 Contents of the white paper are subject to changes and improvements

ICO AUDIT. Prepared for the McAfee Team by

Guide to a Successful Wanchain Token Contribution

ENEE 457: E-Cash and Bitcoin

BITCOIN PROTOCOL & CONSENSUS: A HIGH LEVEL OVERVIEW

Using Blockchain for Consent and Access to Private and Sensitive Data in the GDPR Environment

PIPELINE SECURITY An Overview of TSA Programs

The OpenSolaris Story

The Interactive Guide to Protecting Your Election Website

CS 251: Bitcoin and Crypto Currencies Fall 2015

Event Detection in Unstructured Text (Using Common Lisp) Jason Cornez, CTO RavenPack

OW TO PARTICIPAT HOW TO PARTICIPATE

SECURITY ENHANCEMENT OF E-VOTING SYSTEM

Real World Data Governance- Part 1

Orbs is built by developers, for developers, with real business needs in mind. Design strategy is driven by:

GOVERNANCE, RISK & COMPLIANCE CPD FOR MEMBERS IN COMMERCE & INDUSTRY AUGUST 2018

An Introduction to the Self-Improving Security Node

ZEEPIN CHAIN The Distributed Creative New Economy. White paper

Voting System Security as per the VVSG

DISTRIBUTION PLAN. Operation of EMMARES smart contract. EMA Token Allocation

Introduction to Blockchain

CS Final Exam

ICO Review: Current Media (CRNC)

FanChain Contract Audit

A*STAR SRDB User Guide

Voters and Mail. 5 Insights to Boost Campaign Impact. A United States Postal Service and American Association of Political Consultants (AAPC) study

Reliability, distributed consensus and blockchain COSC412

App Blockchain Ecosystem. Decentralized Application Store

Blockchain and Ethereum and Careers, oh my! Lane /

Transcription:

Voting in the Colony Governance Protocol Elena Dimitrova & Dr. Aron Fischer

What is Colony? Colony is a platform for decentralised governance. It s about working together: coordination and collaboration. It distributes authority throughout a community no central point of control required. Thousands of people, all over the world, can build, manage and share in the rewards of a common endeavor, without trusting (or even knowing) one another.

Governance Protocol Open Source Built for Developers 100% ETH

Application

Governance Colony governance is designed to be fluid, efficient and decentralised. The focus is on getting stuff done by: Distributing authority Mitigating bureaucracy Enabling meritocracy However, we need a security fall-back mechanism: the Vote!

The Colony Voting Protocol

The Problem with Voting Traditionally: One vote per person

The Problem with Voting Traditionally: One vote per person But: Who is a person?

The Problem with Voting Traditionally: One vote per person But: Who is a person? Strict control needed for voter ID

The Problem with Voting Traditionally: One vote per person But: Who is a person? Strict control needed for voter ID dapps have risk of the Sybil Attack

Requirements 1. No double voting

Merit weighted voting Votes weighted by reputation score

Merit weighted voting Votes weighted by reputation score Reputation is a non-transferable attribute that can only be earned

Merit weighted voting Votes weighted by reputation score Reputation is a non-transferable attribute that can only be earned Derivative of a generic token weighted voting system

Why token weighted voting? Solves the Sybil attack double-voting problem

Why token weighted voting? Solves the Sybil attack double-voting problem By distributing voting power over tokens representing real-world value

Why token weighted voting? Solves the Sybil attack double-voting problem By distributing voting power over tokens representing real-world value What matters is how many tokens a user owns

Why token weighted voting? Solves the Sybil attack double-voting problem By distributing voting power over tokens representing real-world value What matters is how many tokens a user owns Not into how many accounts a user has divided their tokens

Why token weighted voting? Solves the Sybil attack double-voting problem By distributing voting power over tokens representing real-world value What matters is how many tokens a user owns Not into how many accounts a user has divided their tokens One Benjamin is just as good as 20 Lincolns

The problems of token-weighted voting What happens to the tokens when you vote? Can tokens be moved freely?

Tokens as ballots If voter must transfer their tokens to vote: We need to return tokens when the poll closes & Voter can only participate in one poll at a time

Tokens as ballots 1. User has tokens

Tokens as ballots Yes / No 1. User has tokens 2. Is asked to vote

Tokens as ballots Yes / No 1. User has tokens 2. Is asked to vote 3. Votes...

Tokens as ballots Yes / No 1. User has tokens 2. Is asked to vote 3. Votes by sending tokens

Tokens as ballots Yes / No 1. User has tokens 2. Is asked to vote 3. Votes by sending tokens 4. User is asked another question Up / Down

Tokens as ballots Yes / No 1. User has tokens 2. Is asked to vote 3. Votes by sending tokens 4. User is asked another question 5. The user... Up / Down

Tokens as ballots Yes / No 1. User has tokens 2. Is asked to vote 3. Votes by sending tokens 4. User is asked another question 5. The user can't vote again... Up / Down 0

Tokens as ballots Yes / No 1. User has tokens 2. Is asked to vote 3. Votes by sending tokens 4. User is asked another question 5. The user can't vote again until after the first poll closes and all the tokens are returned. Up / Down

Tokens as weight If voter sends a voting transaction that records their tokenweighted vote but the tokens remain with the voter, the voter may double vote.

Double voting 1. User has tokens

Double voting Yes / No 1. User has tokens 2. Is asked to vote

Double voting Yes / No 1. User has tokens 2. Is asked to vote 3. Votes...

Double voting Yes / No 1. User has tokens 2. Is asked to vote 3. Votes by sending a message

Double voting Yes / No 1. User has tokens 2. Is asked to vote 3. Votes by sending a message 4. Makes a new account A "different" user

Double voting Yes / No 1. User has tokens 2. Is asked to vote 3. Votes by sending a message 4. Makes a new account A "different" user 5. Transfers their tokens

Double voting Yes / No 1. User has tokens 2. Is asked to vote 3. Votes by sending a message 4. Makes a new account A "different" user 5. Transfers their tokens 6. Votes again...

Double voting Yes / No 1. User has tokens 2. Is asked to vote 3. Votes by sending a message 4. Makes a new account 5. Transfers their tokens A "different" user 6. Votes again and again...

Double voting Yes / No 1. User has tokens 2. Is asked to vote 3. Votes by sending a message 4. Makes a new account 5. Transfers their tokens A "different" user 6. Votes again and again and again...

Double voting may be prevented by... Individually accounting for each token transfer as part of the poll evaluation...

Double voting may be prevented by... Individually accounting for each token transfer as part of the poll evaluation......or just preventing token transfers. ;P

Token locking 1. User has tokens

Token locking 1. User has tokens Yes / No 2. Is asked to vote

Token locking 1. User has tokens Yes / No 2. Is asked to vote 3. Votes by sending a message

Token locking 1. User has tokens Yes / No 2. Is asked to vote 3. Votes by sending a message 4. Tokens are locked, preventing transfers

Token locking 1. User has tokens Yes / No 2. Is asked to vote 3. Votes by sending a message 4. Tokens are locked, preventing transfers 5. Is asked to vote again Up / Down

Token locking 1. User has tokens Yes / No 2. Is asked to vote 3. Votes by sending a message 4. Tokens are locked, preventing transfers 5. Is asked to vote again 6. Votes again Up / Down

Token locking 1. User has tokens Yes / No 2. Is asked to vote 3. Votes by sending a message 4. Tokens are locked, preventing transfers 5. Is asked to vote again 6. Votes again Up / Down 7. When all polls are closed the tokens are unlocked

However...

The problem with token-locking As locked tokens cannot be moved, voting has a liquidity cost. The opportunity cost of the inability to sell tokens until polls close. Creates an incentive not to vote (or to wait until the last minute). Consequently, the poll is inaccurate.

Requirements 1. No double voting 2. No skewed incentives

The Wisdom of Crowds The public blockchain is transparent Running tallies are public in a blockchain poll But For the wisdom of crowds to work, votes must be independent So Running tallies must be secret

Requirements 1. No double voting 2. No skewed incentives 3. No Bandwagon effect

Scalability Q. Why can t we collect all votes and calculate the result in one go? A. The gas limit.

Requirements 1. No double voting 2. No skewed incentives 3. No Bandwagon effect 4. Scalable

The Colony Voting Protocol

The Colony Voting Protocol Prevents double voting Sybil attacks by token weighting Prevents token-transfer double-voting by targeted locking. Prevents skewed incentives by keeping users in control of their tokens. Prevents bandwagon voting by masking open polls. and Scales to arbitrary number of voters and simultaneous polls.

Vote masking The user has tokens

Vote masking The user has tokens Yes / No While polls are open...

Vote masking The user has tokens Yes / No While polls are open users can vote by sending masked votes

Vote masking The user has tokens Yes / No While polls are open users can vote by sending masked votes Tokens are free to move while the poll is open

Vote masking The user has tokens Yes / No While polls are open users can vote by sending masked votes Tokens are free to move while the poll is open When the poll closes the account is locked

Vote masking The user has tokens Yes / No While polls are open users can vote by sending masked votes Tokens are free to move while the poll is open When the poll closes the account is locked Tokens can't move but can still vote in other polls

Vote masking The user has tokens Yes / No While polls are open users can vote by sending masked votes Tokens are free to move while the poll is open When the poll closes the account is locked Tokens can't move but can still vote in other polls. User can immediately(!) unlock account again be revealing and counting their vote

We must be able to: Track which polls an account has participated in Track which polls are open and which are closed Track which votes must be revealed to unlock an account Determine whether an account is locked Handle incoming transactions to locked accounts

Vote secrets data structure Double-linked list of unrevealed vote secrets for a user Ordered by poll close time Sorting the list is delegated to the user Implements a zero-entry item

isaddresslocked function function isaddresslocked(address useraddress) constant returns (bool){ var zeropollclosetimenext = eternalstorage.getuintvalue(sha3("voting", useraddress, uint256(0), "nexttimestamp")); } if (zeropollclosetimenext == 0) { return false; } if (now < zeropollclosetimenext) { return false; } else { return true; }

Token Locking Extension to the standard ERC #20 token implementation

Token Locking

Token Locking

Revealing a vote & Unlocking tokens

Revealing a vote & Unlocking tokens

Revealing a vote & Unlocking tokens

Revealing a vote & Unlocking tokens

Revealing a vote & Unlocking tokens

Where to find us COLONY.IO COLONY.FOUNDATION BLOG.COLONY.IO HELLO@COLONY.IO @JOINCOLONY

We re hiring! Collin Vine COO Jack du Rose CEO Dr. Alex Rea CTO Thiago Delgado Engineering Elena Dimitrova Engineering Karol Podlesny Design Christian Maniewski Front-End Dev Dr. Aron Fischer R&D You? Engineering You? Engineering You? Engineering You? Front-End Dev