Please describe your proposed solution.
Problem: Richness of Catalyst Experience needs to be improved
Solution: Improve Catalyst Infrastructure to improve user benefits across feature richness, inclusivity & speed
Proposal deliverables:
Hermes: High-Availability Blockchain Voting Database
Athena: High-Speed Accessible Voting DApp
The key delivery goals are:
- Performance
- Inclusivity
- Experience richness
- Parallelism
'Hermes' will be a high-availability blockchain voting database which will act as a distributed storage and event processor for voting events, proposals, and persona actions from the responsive user interface ‘Athena’
Hermes addresses the key issues of :
- Performance - deliver responsive system scaling to multiple proposals
- Parallelism - multiple events in parallel
- Inclusivity - wider engagement with community with more events
- Reduced event latency
Key components of Hermes:
- Proposals service
- Committee service
- Event based service
- Voting event service
- Proposal Submission and Review service
- Voting Committees, Key exchange, and independent committee-based tally decryption to be decentralized.
- Community or Committee-based events.
- Parallel and Independent voting events with unique parameter sets, operated by multiple groups
- Event data publishing
- Distribution of votes
- Voting Event verifier
- Ballot box module
- Privacy preservation
- Blockchain
Issues in current system which Hermes will address:
- The current Single Node Blockchain (Jourmangandr) is not scalable and its data is not durable past the current voting event. CEA will broadcast from the Voting Interface using the local node and propagate to other nodes
- The existing system does not allow multiple events to progress in parallel. The new system would allow multiple voting events to progress in parallel, using the same Voting UI but connected to a different voting event
Athena addresses the Experience Richness of the current Catalyst voting app by providing:
- Proposal Submission and Review accessible via decentralized App where multiple proposals can be executed in parallel
- Voting Committees, Key exchange, and independent committee-based tally decryption to be decentralized thereby parallelized
- Community or Committee-based event setting.
- Parallel and Independent voting events with unique parameter sets, operated by multiple groups
Key components of Athena:
- Event data publishing component
- Event data publishing will allow voting data to be distributed thereby creating a distributed and durable ledger/ blockchain
- Voter registration component
- Capture users for vote onboarding and ensure smooth user experience
- Voting power component
- Provide a rich user experience and show voting power remaining per voting event to the user
- Ballot box component
- Create a mechanism where users vote is propagated through from voting users node/instance and ledger to other users on the network.
- Deliver a reliable network of nodes depending on the number of users on the network
- Blockchain
- The blockchain is achieved by the propagation of events through the network and persistence onto nodes of other users.
- Privacy preservation - using security standards of p2pLib we ensure privacy is maintained.
Key functions of Athena:
- Voters can retrieve and view details of the current Catalyst fund.
- The ability to read details about each category and proposal in the fund.
- Register as a voter using Wallet Connect (with supported wallets).
- Check on-chain voter registration
- Check voting power independently
- Select Proposals in a Challenge and cast votes
What are the key Blockchain properties? Does this solution constitute this?
- Decentralization - Yes - each node is connected by Cardano relay node
- Immutability - Yes - each record is written once and published
- Transparency - Yes - visibility of each node
- Security - Yes - libP2P
- Consensus - Yes
- Persistence - Yes - copy of voting data is distributed to each node
- Scalability - Yes - more node added it scales
Success Factors:
- Speed achieved in moving from web2 to Blockchain, measured by service uptime, data durability, able to vote outside web2 hardware
- Increased Features - parity with existing Catalyst with additional depth of features based on data availability and additional events coverage
- Inclusivity
- Ability to cater for prior levels and new simulated loads relating to multiple events and proposals
- Ability to ensure existing Catalyst data load preserved, whilst proving augmentation of parallel event data is equally scalable
How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?
The proposed solutions offered by Hermes and Athena will significantly advance the state of the art of the Project Catalyst technology stack, delivering voting using a fully distributed database and immutable ledger, instead of relying on a controlled side-chain mall number of nodes
The key benefits of this approach provide:
- Ability to hold multiple voting events in parallel
This enables the Catalyst infrastructure with capabilities for running more than one funding event at a time, unleashing the ability to compose and automate funding events to begin and end in parallel and/or over different or overlapping time frames.
- Ability to continually view history voting data
Enabling voting history to be audited with confidence the data has not been produced from within a single ‘black-box’ set up.
- Improving security using immutable blockchain (Cardano)
Directly connecting to a Cardano relay node to gather voter registration transactions and calculate voting power. Wallet transactions are securely signed for cast votes using the P2P network.
- Performance of system being improved
By leveraging technologies such as LibP2P / IPFS for distributing data, the Catalyst system no longer relied on Web2 infrastructure to deliver voting. The current capabilities of WebAssembly (WASM) enable the building of robust and secure business logic for the application layer (Athena) or for any builders that would like to build applications atop of Hermes.
- Accessibility through light client and wallet connection
This is enabled by web-browser based voting and a third-party wallet connector as defined by CIP-30 and CIP-62, meaning only an internet connection and web browser is required to participate in voting.
- Inclusivity to allow greater access to non-technical users
The proposed design offers DApp builders the flexibility to develop their own fully decentralized applications, allowing easy integration of all available Hermes features, so that UIUX can be tailored to the needs of their audiences. In the same way Lace wallet is intended to be simplistic, developers can implement their own simple front-end applications, if they choose, to help onboard new users while benefiting from the security and performance features of the underlying Hermes design.
- Community capabilities are extended with custom voting events
Developers can use the system to customize voting events in parallel without negatively impacting Project Catalyst voting events.
Overall, the Catalyst system will be more scalable and extensible with proposed design
How do you intend to measure the success of your project?
We will use four primary measures to determine the project's success:
1: Speed: can demonstrably eliminate the need for Web2 Infrastructure to deliver Catalyst voting, including its UX.
- We are successful in this measure if, when implemented, this proposal demonstrates Catalyst no longer relies on any Web2 infrastructure to deliver decentralized voting.
- Users can operate the UX locally, from trusted data distributed by a P2P decentralized network.
- Voting must occur over a P2P decentralized network.
- In this iteration, a verifiable source of truth for data sourced from Catalyst Operations will be maintained.
- Note: This excludes common centralized resources used for software development, such as Git repositories, as decentralized package distribution is outside of the scope of this proposal. However once the application is installed on a Catalyst Voters local machine, it will not require access to these resources.
- The Athena front end will rely on Wallet Connect in the browser as defined by CIP-30 and CIP-62.
- Note: How individual third party wallets operate and what resources, centralized or otherwise, they access is out of our control and outside the scope of this proposal.
2: Enhanced features demonstrating feature parity with the Voting Operations of the current Project Catalyst Stack.
- Feature 1: The ability for voters to retrieve and view details of the current Catalyst fund in the Athena front-end interface.
- Feature 2: The ability to read details about each category and proposal in the fund.
- Feature 3: The ability to register as a voter using CIP-30/CIP-62 Wallet Connect (with supported wallets).
- Feature 4: The ability to check on-chain voter registration and voting power independently, via the Cardano Blockchain.
- Feature 5: The ability to select proposals in a Challenge and cast votes signed by the wallet using CIP-30/CIP-62 Wallet Connect.
- Feature 6: The ability to publish and update certified and verifiably true data about each fund, challenges/categories and proposals.
- Feature 7: The ability to securely record the votes of voters in a decentralized way, and include those votes in a Tally.
3: Inclusivity demonstrated by the capability to handle Voting loads
- demonstrated comparable to or exceeding the current Project Catalyst stack.
- Any distributed implementation of Project Catalyst must sustain the very high voting loads currently handled by the system.
- We aim to demonstrate comparable performance to the existing system and aim to achieve greater overall performance.
- In Fund 9 Project Catalyst had almost 60,000 registered wallets and almost 365,000 votes on all proposals that reached the ballot. The voting load we will demonstrate in testnet is 100,000 registered voters, casting 1 million votes across 2,000 proposals during a 2 week voting period. For the purpose of measuring success here, we will need to match or exceed the Fund 9 voting loads as detailed here:
- Registered Wallets: 60,000
- Votes Cast: 365,000
- Individual Proposals: 1200
- Voting Period: 14 days
- A load test tool will be used to evaluate this voting load and will be delivered with the final milestone, along with the results of our load testing.
- The purpose of this testing and success measurement is not only to evaluate the ability to handle real life loads currently experienced by Project Catalyst, but to also give us important data to refine and improve performance in future iterations.
4: Sources of truth: By changing the trusted sources of truth, we can demonstrate that anyone can re-use the system to operate customized catalyst-style voting events in parallel without negatively impacting Project Catalyst voting events.
Each of these goals will be functionally demonstrated by project completion.
Over time, this project will establish a solid foundation to build additional current or future features of Project Catalyst in a fully decentralized way. This will enable features to be built faster, more reliably, and will react responsively to the ecosystem's needs. The composable nature of the Hermes application engine means that it will be significantly simpler for others in the community to independently build and contribute fully distributed functional modules for Project Catalyst.
Please describe your plans to share the outputs and results of your project?
Hermes and Athena will be developed and delivered under an Apache-2 open source license. A public repository will be published in the first month to house this proposal's development. The community can follow along and explore what is being delivered as development progresses.
The community will be free to review and comment on our development work as it occurs. As an open source project, we welcome community contributions to Hermes and Athena.
At each Milestone, we will publish tagged versions of the code base and a test report showing that all the proposed features are correctly built and have been delivered and tested. We will also prepare recorded demonstrations of the completed functionality, as appropriate.
Regular sessions will be conducted during the development process to discuss the work completed and ongoing and give the community access to not only check for themselves the work being delivered but to question the development team about the project to allow a better understanding of the system to be fostered between the developers and the community.
In addition to monthly progress reports and completed milestone proof of achievement ceremonies, the Catalyst team will also promote outcomes, outputs, and general progress in:
- Weekly newsletters: Reach: 60,000 mailing list members
- Weekly Town Halls: Reach: Between 1,000 viewers to 10,000
- Fortnightly technical development updates: Average reach per week: 3000 report readers, 60,000 Twitter views, 100 Retweets
- Catalyst Blogs: Average reach 5000 readers per blog based on the last 12 months