[GENERAL] Name and surname of main applicant
Eric Duneau
[GENERAL] Are you delivering this project as an individual or as an entity (whether formally incorporated or not)
Individual
[GENERAL] Please specify how many months you expect your project to last (from 2-12 months)
12
[GENERAL] Please indicate if your proposal has been auto-translated into English from another language
No
[GENERAL] Summarize your solution to the problem (200-character limit including spaces)
Using Atala Prism on Cardano, we will offer an open-source SDK and an App to deliver secure and anonymous voting across the whole Cardano eco-system, replacing private legacy voting apps.
[GENERAL] Does your project have any dependencies on other organizations, technical or otherwise?
Yes
[GENERAL] If YES, please describe what the dependency is and why you believe it is essential for your project’s delivery. If NO, please write “No dependencies.”
Dependencies on Atala Prism (now just renamed HyperLedger Identus). Our project will make intensive use of their system and will rely on the availability of Identus Agent Nodes.
[GENERAL] Will your project’s output/s be fully open source?
Yes
[GENERAL] Please provide here more information on the open source status of your project outputs
OpenSource under the MIT License. Access repo here: https://github.com/incubiq/vote_with_did
[METADATA] SDG rating
SDG goals:
Goal 9. Build resilient infrastructure, promote inclusive and sustainable industrialization and foster innovation
SDG subgoals:
9.b Support domestic technology development, research and innovation in developing countries, including by ensuring a conducive policy environment for, inter alia, industrial diversification and value addition to commodities
Key Performance Indicator (KPI):
9.c.1 Proportion of population covered by a mobile network, by technology
[SOLUTION] Please describe your proposed solution
In the current landscape, voting on polls, even those associated with blockchain ecosystems, typically ends up with the recording of votes and private data in centralised databases. This compromises anonymity and privacy, as our opinions are cataloged and potentially monetised without our consent. The only recourse seems to be abstention.
However, there is a superior alternative, starting by leveraging Digital Identities and Anonymous Verifiable Credentials. This approach enables community participation without compromising privacy. With my background in privacy-preserving applications like Authenly.com (2020) and cross-chain authentication systems such as SignWithWallet.com (2022), coupled with extensive experience in Digital Identity prototypes since 2020, and ongoing projects involving Digital Identity on the Cardano blockchain, I am well aware of the challenges faced by end-users and the industry at large, as well as the appropriate solution to put in place.
This project will build on all those past experiences. It aims to deliver a Digital Identity wallet as a browser extension. Users can create their Digital Identity, authenticate securely, and receive Verifiable Credentials. A Trust Authority Agent will issue and verify credentials, while a Decentralised Voting App will enable admins to create privacy-preserving polls, and users to vote securely.
It's disheartening that many decentralised projects still rely on centralised authentication and participation systems, allowing a full tracking of end-users Personal Identifiable Information, endangering their privacy. Based on a Trust Framework, our solution provides a privacy-preserving alternative, essential for projects that prioritise their users' security and privacy.
This solution will be impactful as it is made of an open Self-Sovereign Identity system as well as a Decentralised Voting system. All components of this proposals will be inter-operable but also independent: (i) the Identity wallet (browser extension) is a separate component in itself ; (ii) The trust framework issuing VCs is another separate component ; (iii) the voting app is also separate. It builds on top of the others, but should there be additional identity wallets in the future, it could plug onto those too.
Finally, I plan to engage with Catalyst (Cardano) and Deep Funding (Singularity Net) to highlight the superiority of our voting system over their current setups, some of which compromise user privacy by aggregating personal data into private databases. So many "decentralised" projects in the Cardano ecosystem still make use of private polls solutions. They will be the main beneficiaries of this solution.
[IMPACT] Please define the positive impact your project will have on the wider Cardano community
This project will establish the infrastructure and technology for a secure, privacy-preserving, and decentralised voting system. All components will be delivered open-source and packaged for easy distribution and use. As such this project can deliver transformative impacts to the broader Cardano community. Success will manifest in several ways, bringing substantial value:
- Elevated Ecosystem Utility: Our Digital-Identity-enabled voting system enhances Cardano's utility, making it a pioneering blockchain for Self Sovereign Identity (SSI) and its multiple use-cases. The ability to provide users with total security and privacy when they cast their vote introduces a novel dimension, attracting developers, users, and businesses.
- Community Engagement: By enabling users to easily create their Decentralised Identity and have the ability to vote with confidence of their privacy being preserved, we encourage increased community engagement. Developers and users will actively contribute to and benefit from an evolving ecosystem. Ultimately, a transparent, trustable, and privacy-preserving voting App on Cardano will encourage participation and collaboration.
- Quantitative Metrics: We will measure success through quantitative metrics such as the number of unique DIDs created via the Browser Extension app, number of Verifiable Credentials delivered, number of polls created, and number of participants in votes. These metrics will be tracked on-chain (DID) and off-chain (Polls, VCs).
- Impact: we hope to demonstrate that Cardano can also be used as a leading blockchain for innovations around SSI. There is a lot at stake, as when the world at large discovers the benefits of self Sovereign Identity, the early viable solutions will be in a great position to replace unwanted systems built for tracking and profiling end-users.
- Sharing Outputs: Regular updates of the open-source development effort, engaging the community to use Digital Identities and voting capabilities on Cardano, blogs, and social media to keep the Cardano community informed. Open source Proof of Concepts, documentation and tutorials will be provided to ensure accessibility and wider adoption.
[CAPABILITY & FEASIBILITY] What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?
I have already delivered one project relating to End-User Authentication with Wallet, and I am in the process of delivering one relating to Digital Identity on Cardano:
- Sign-in with Cardano: this was a F8 project which has been downloaded over 1,000 times (https://github.com/incubiq/sign_in_with_wallet) It allows end-users to Authenticate via their Cardano wallet (like you have "sign-in with Facebook", you can now "sign-in with wallet"
- Identity solution for Autonomous AIs living on Cardano: this project in half way through now, and you can see the open source repo (https://github.com/incubiq/ai_identity) which is an identity layer built on top of a Atala Prism Agent Node, to simplify the creation and management of Digital Identities and Verifiable Credentials.
Building on both past experiences, I believe that I am well prepared to deliver this project, which is basically the combination of Authenticating with a Wallet and Managing Digital Identities (DIDs).
The approach is very much validated already by the foundational layers delivered with those two past projects. In short, here is the approach I will take:
- Instead of a "Login with a Crypto wallet", I will now develop an open source SDK to "Login with a DID"
- To make it user friendly, I will build a browser extension to act as a Digital Identity Wallet, which the end-user will use for authentication purposes, and transaction signing.
- the Agent Node delivered in the "Autonomous AI identity solution" will be repurposed to deliver all digital identity related credentials.
- A small App or DApp will be built to collect and certify an end-user voting power (such as consolidated amount of ADA on all user's wallets)
- The connector with other crypto wallets already developed in the "Sign-in with Cardano" project will be leveraged and improved, to allow the issuance of Verifiable Credentials by a App/DApp
- Verifiable Credentials about the user will be stored on Atala Prism, and will be verified by the same App/DApp
- A Voting App will be delivered (including smart contracts) to create simple polls and allow end-users to vote.
- Integration of the end-to-end solution will be delivered in TestNet
[PROJECT MILESTONES] What are the key milestones you need to achieve in order to complete your project successfully?
M1 - Finalise all specifications
We will use the first milestone to finalise the specifications and provide small proof of concepts where necessary (see below). In particular, those areas whose specifications and technology choices will be refined are:
- Atala Prism and its Agent Node: we will review how / where the node is hosted, and the final specs of the connecting APIs to the agent node (likely via an intermediary API layer)
- Digital Identity wallet and Browser extension: we will review all constraints associated with the delivery of a browser extension for a "light Cardano wallet" which will mostly act as a Digital Identity wallet
- App vs DApp: this part is the least clear so far, so it will require a bit more research into what sort of App (decentralised or not) we will provide. The requirement is that the Identity Wallet will receive Verifiable Credentials from an Authoritative entity. Our App (or DApp) is this entity having authority on issuance. As of now, no other project has yet delivered in production a decentralised App for managing Digital Identities, hence our need to refine carefully our technology choices and specifications. We are working closely with the Atala Prism team, as part of a tiny cohort or 3-4 teams, to deliver this capability.
- Voting power: in a first instance, Verified Credentials will be issued to represent an individual's "voting power". This can take the form of aggregating ADA balance of several wallets, or in the case of more complex use cases, aggregating the balance of various coins over various wallets. A clear specification is required to issue such credentials and ensure there is no double counting (e.g. a user sending its ADA to another wallet and claiming double voting power).
- Voting system Design and UI: In the first iteration of the project, we will likely let users vote solely on "Polls". Other categories of questions could be added later. A basic smart contract requirement and a simple UI will be designed during this stage.
Milestone outputs
- up to date GitHub repo
- prototypes validating tech choice where applicable
- detailed specifications of sub-systems where applicable
- video recording explaining tech choices
Acceptance criteria
- Proof of Concepts and Specs are delivered
- There is no major blocking point to deliver the full solution
Evidence of milestone completion
- GitHub is updated with all milestone deliveries
- Specs are delivered
- Video recording of all progress
M2 - Digital Identity Wallet Browser Extension
This Milestone is about the delivery of Digital Identity Wallet in the form of a (Chrome/Brave) Browser Extension.
It includes those high level intermediate deliveries:
- Implement a Chrome/Brave compatible extension squeleton and connect it to Cardano JS APIs
- Pass phrase issuance for first time users
- Authentication into the App and security related code
- Managing User's profile and preferences
- Ability to show DID and valid Verifiable Credentials (VCs) issued to the user
- App settings, plug it on TestNet and MainNet
- Test scripts and docs
Milestone outputs
- up to date GitHub repo
- A working browser extension which can act as a Digital Identity Wallet
- The wallet can show DIDs and VCs
- Video recording of the working browser extension
Acceptance criteria
- A DID can be displayed, VCs can be displayed (note: issuance of DIDs and VCs is done in a later milestone)
- It works on Chrome / Brave
Evidence of milestone completion
- GitHub is updated with all milestone deliveries
- A user can create Digital Identity wallet, and request issuance of a DID.
- Video recording of all progress
M3 - Authority Verifiable Credential Issuance App
This Milestone is about the delivery of an App (or DApp) which will act as the Trusted Issuer (and verifier) of Verifiable Credentials issued to users for the purpose of voting.
It includes those high level intermediate deliveries:
- Implement specs from M1
- Connect the App to various wallets (at least on Cardano, but possibly also cross-chain, pending on M1 research into it)
- Verifiable Credential issuance
- Ensure integrity of votes (whilst issuing VCs)
- Proof verification of issued VCs with Built-In Anonymity
- SDK, Test scripts and docs
Milestone outputs
- up to date GitHub repo
- A working App (or DApp) which can plug onto an Agent Node and issue DIDs, issue VCs, as well as verify VCs
- The issued VCs maintain the integrity of the voting power
- The issued VCs do not contain Personal Identifiable Information
- Video recording of the App (or DApp)
Acceptance criteria
- A DID can be issued, a VC can be issued, a VC can be verified
- No Personal Identifiable Information can be accessed by any third party
Evidence of milestone completion
- GitHub is updated with all milestone deliveries
- The App (or DApp) can create a DID, a VC, and verify a VC.
- Video recording of all progress
M4 - Voting app
This Milestone is about delivering a simple decentralised Voting WebApp (including all smart contracts).
It includes those final deliveries:
- Smart contracts for Ballot Creation, Voter Registration, Casting Votes, Tallying Votes.
- On-chain storage of poll metadata
- A working WebApp UI for creating Polls / votes (SDK + UI)
- Delivery of a working WebApp UI for voting (SDK + UI)
- Final integrations, all SDKs, Test scripts and docs
Milestone outputs
- up to date GitHub repo
- A working end-to-end solution, allowing someone to create voting questions, and users to cast their vote via a decentralised system where their private information is never revealed
- Video recording of the poll creator
- Video recording of an end-user voting anonymously
Acceptance criteria
- A poll can be created, with minimal criteria (start date, end date, question, possible answers)
- A user can vote on the poll anonymously
- The pool creator can check results (real time or at end date)
Evidence of milestone completion
- GitHub is updated with all milestone deliveries
- Video recording of all progress
M5 - Finalising and Connecting all sub-systems
This Milestone is about connecting all the sub-systems delivered in prior milestones (or prior projects) and connecting them together to reach a seamless integration for being Prod ready.
It includes those final deliveries:
- Delivery of a prod-ready Atala Prism Agent Node
- Delivery of an Identity SDK and Authority App/Dapp connecting onto the Agent Node
- Delivery of the Digital Identity Wallet Browser extension, connecting onto the Authority App
- Connecting voting app to identity
- Final integrations, Prod/Test Envs, all SDKs, Test scripts and docs
Milestone outputs
- up to date GitHub repo
- A working end-to-end solution (on TestNet), allowing someone to create voting questions, and users to cast their vote via a decentralised system where their private information is never revealed
Acceptance criteria
- The Voting App is available on TestNet
Evidence of milestone completion
- GitHub is updated with all milestone deliveries
- Video recording of all progress
Final - Close-Out report
This is the final milestone, including a close-out report, community engagement, marketing, and demo video recordings.
Milestone outputs
- up to date GitHub repo
- A working end-to-end solution
- some published articles about each component and the total solution
- Participation into Catalyst and/or Cardano events to showcase the solution
- Video proof
Acceptance criteria
- A useable solution (within the perimeter of agreed specs)
Evidence of milestone completion
- GitHub is updated with all milestone deliveries
- Video recording of an end-to-end demo
[RESOURCES] Who is in the project team and what are their roles?
The project team consists of Eric Duneau, who will manage, design, develop, and test the entire project. Eric brings extensive experience in the software industry, with over 20 years of experience and prior experience as CEO/CTO of a $30 million software business. After successfully selling the business in 2019, Eric has redirected his focus towards AI and Digital Identity projects on Cardano.
Eric has a proven track record of delivering projects within the Cardano ecosystem, and has set a delivery deadline for this project of nine months. Note that this project is estimated at 168 days at most, which is 8 months full-time. Therefore, it is set on a path of "easy to achieve" deadlines over 12 months.
The development of the Plutus/Aiken smart contract will be sub-contracted to an expert, and the security review will be delivered by another expert in smart contract security.
Any side material delivery, such as video production, marketing, and documentation may be subcontracted to a team which Eric has been working with for several years.
[BUDGET & COSTS] Please provide a cost breakdown of the proposed work and resources
The cost of the entire project is calculated at ₳235,310, but was discounted by 25% to deliver high value for money. The original cost was calculated as follows:
- Cost per hour: dev at $85 ph ; test and risk mgt at $55 ph ; doc and marketing at $35 ph
- Total number of days = 168, for an average of $76 per hour across the project
- ADA/USD conversion rate: 0.435 (taken on 14th May 2024)
The table below explains the real (original) cost per each activity:
In summary, the final budget retained for each milestone is as per below:
- Milestone 1 (Finalise all specs) : ₳30,000 (17%)
- Milestone 2 (Digital Identity Wallet) : ₳24,000 (14%)
- Milestone 3 (Authority VC issuance App) : ₳50,000 (28%)
- Milestone 4 (Voting App) : ₳50,000 (28%)
- Milestone 5 (Connecting all SubSystems) : ₳20,000 (11%)
- Final Milestone (Close-out Report) : ₳2,500 (1%)
Total = ₳176,500 ($76,777 ; 168 days ; $57 per hour)
[VALUE FOR MONEY] How does the cost of the project represent value for money for the Cardano ecosystem?
The cost of the project represents excellent value for money. As the main developer, Eric is based in the UK, where he generally command a rate way in excess of the average $57 per hour agreed for this project (168 days, for 176,500 ADA).
This project addresses the integration of a decentralised voting App and SDK into Cardano, which will touch and benefit all industries. Here are two obvious examples:
(i) Catalyst as a voting system, which is still currently a private based application prone to leak data privacy, would benefit its users to use such a Decentralised Identity voting system ;
(ii) in the Cardano eco-system, SingularityNet have build a voting wallet called Walt, which is consolidating privately all public addresses of a user, and therefore exchanges the right to note against giving away all anonymity ; They would benefit greatly to plug on such a SDK.
The reach is wide, and the opportunity to place Cardano as a global leader in Decentralised Anonymous Voting built on a Trust Framework is not to be missed.
Finally, the project's costs have been carefully considered and down-adjusted by a 25% discount to reflect a fair and proportionate investment. By delivering exceptional value for money, at 176,500 ADA, this project maximises the impact of the allocated resources and aligns with the goals and aspirations of the Cardano ecosystem.