DigiPol

From Designing Open Democracy
Jump to navigation Jump to search

NPV Required: This article should be written from a neutral/third-person point of view. Currently it mentions the word "we" 6 times

This is currently a stub page based on DigiPol Team current project description documents which is currently a work in progress

What's missing at the moment is a section on how to contact the digipol team and the historical background of the project

Introduction

Main website located at https://digipol.app/

What is DigiPol?

DigiPol is an application to enable participation with the legislative processes of Australian Federal Parliament.

The current version of DigiPol is a technical preview designed to orientate users to some of the basic functionality which we will build upon.

What functionality does DigiPol provide?

Users are able to:

  • Explore, search and view all the bills in Federal Parliament
  • Review Explanatory Memoranda to learn about the bills
  • Review the actual text of bills
  • Vote on bills

Explore, search and view all the bills in Parliament

With DigiPol, you can easily navigate all the bills which are currently before Parliament. The app pulls all the bills from the Australian Parliament website and displays them in an easy-to-navigate format.

Review the Explanatory Memoranda

Each bill comes with an Explanatory Memoranda document which provides an overview of the bill’s purpose and info on what the bill contains. This is the information which is presented to Parliament as part of the process of passing legislation.

Review the text of bills

You can review the specific wording of each bill in order to understand the nuanced detail contained with the bill.

Vote on bills

You can express your support or opposition for bills by voting YES or NO. You can also change your vote at a later time should you wish.

Vote on issues

You can express your support or opposition on issues by voting YES or NO. Issues are defined as topics of public interest with no relevant legislation currently before Parliament. Issues are currently curated by Flux but will be sourced from the community in future releases.


Share results (planned for future release)

Users can share the results of votes on bills and issues via social media., with future releases having breakdowns by electorate and state.

Contact representatives (planned for future release)

Users can contact their elected representatives, via linked contact points (email, Soc.media, phone).

Frequently Asked Questions

General

Who is behind DigiPol?

DigiPol is released by Flux - a political movement working to improve our democracy by increasing accountability and participation in our political processes.

The application has been coded by a team of developers from across Australia who have contributed their skills, time and energy to build an open-source codebase.

Is this the finished product?

DigiPol is the first application developed and released by Flux and is intended as a technical preview to orientate users to some of the basic functionality.

We will continue to develop and release additional features and functionality but we work within the constraints of being a volunteer-driven project. If you would like to see specific features developed sooner, you can contribute to our open-source codebase.

Can I use DigiPol on my desktop?

At this time, DigiPol is only available on Android and iOS devices.


Technical

What technologies does DigiPol use?

The DigiPol app is built using the Flutter framework. Flutter is an open-source UI development kit created by Google which is used to develop applications for Android, iOS, Windows, Mac, Linux and the web.

Flutter utilises the Dart programming language. Dart is optimised for making apps which work and look good on all devices, and facilitating iterative development (making it easier for developing small incremental changes).

DigiPol sends your votes directly to the blockchain via HTTP requests.

The API (Application Programming Interface) functionality, which enables the application to interact with an underlying blockchain is coded in Python and Solidity.

Code running on AWS Lambda is used to manage the tracking of bills on aph.gov.au, counting votes on the blockchain and ensuring the information displayed in DigiPol is up-to-date.

Transactions (bills & votes) are verified on the Ethereum blockchain. Ethereum is an open-source platform for running decentralised applications.

Security Features

We utilise functionality including:

  • Authenticating users (not yet implemented)
  • Private key management (basic version implemented)
  • Hashing transactions (currently implemented)

Authenticating users

To prevent manipulation of votes, we will ensure our users are real and unique people. We will verify users using a combination of electoral roll data and validation with a 3rd party identification verification service.

For the technical preview, we are not yet authenticating our users. We will implement this functionality prior to the main release. The objective at this time is to make users familiar with the basic functionality of navigating, exploring and voting on bills.

Private key management

During installation, DigiPol generates a Private Key on your device. This Private Key is used to verify that your transactions come from only your device.

The app generates a cryptographically secure random number which is used to create a seed unique to your device. This seed is used to create your device’s Private Key.

The key generation happens in the background without any requirement for the user to do anything. In the initial release, it is not possible to backup Private Keys, nor transfer Private Keys between devices.

Future releases will implement key management standards BIP32 and BIP39 so users can transfer their personal profiles between devices and restore from backups.

Hashing transactions

DigiPol uses the SHA-256 algorithm to hash data prior to sending it from your device to the blockchain. This ensures that your voting information is kept private.

Hashing involves using your private key to convert your vote on a bill into a standardised format which can not be read by a 3rd party.

SHA-256 is widely regarded as an international standard for authenticating transactions on the internet. It is used for securing Bitcoin transactions, the DKIM messaging standard (email authentication) and ensuring the integrity of software packages downloaded from the internet.