zkBUIDL Bounties: A Decentralized and Gamified Approach to TDD
The platform known as zkBUIDL Bounties offers a decentralized and gamified approach for visionaries to fund and construct smart contracts using a test-driven methodology. By leveraging recursive zkProofs with SnarkyJS, zkBUIDL Bounties enables the development, testing, and funding of smart contracts in a trustless and permissionless manner. The platform consists of two primary entities: Bounty Builders and Bounty Hunters. Bounty Builders create unit tests and fund them with cryptocurrency, generating “Loot Quest” zkProofs. Bounty Hunters, on the other hand, write code solutions to fulfill these unit tests, producing “Loot Key” zkProofs that can be verified and used to unlock the bounty. Through the utilization of recursive zkProofs, Bounty Hunters can earn bounties for their work without requiring permission, while Bounty Builders can have confidence that the code solutions they receive meet their testing standards. By adhering to the principles of test-driven development, zkBUIDL Bounties fosters a fully decentralized environment between project funders and builders.
The problem addressed by zkBUIDL Bounties is the inefficiencies in terms of time and capital that arise during project-based development, particularly related to smart contracts. Existing platforms such as Fiverr, Freelancer, or Upwork encounter several challenges in this specific area:
On the client side:
1. Clients spend significant time and resources finding suitable developers for their projects, including going through a vetting process to ensure credibility and experience.
2. After identifying the right candidate, additional time is spent on negotiations regarding payment and milestones.
3. Verification of the completed work further adds to the time investment.
On the developer side:
1. Developers face tough competition and spend considerable time proving their credibility and experience instead of focusing on project delivery.
2. Even after successfully proposing a project, there is a need for extensive communication between developers and clients to establish milestones and payment terms.
3. Developers only receive payment upon full completion of the work, which can take weeks or even months depending on project complexity.
4. Setting clear expectations regarding project requirements and payment terms can be challenging.
zkBUIDL Bounties aims to address these issues by streamlining the process. It reduces the time and resources required for clients to find and vet talent by adopting a test-driven development approach. Instead of providing general project guidelines, clients define clear and declarative unit tests that drive the development process. This enables developers to have a better understanding of project requirements without the need for extensive consultation or credential verification.
Development takes place on a bounty-based system, allowing for a pay-as-you-develop approach. When a client (Bounty Builder) has a set of tasks, they convert them into unit tests. Each unit test or set of unit tests is bundled with mini-crypto payments, creating “Loot Quests.” These Loot Quests represent manageable tasks within the larger project, serving as meaningful mini-milestones for developers to tackle.
Developers (Bounty Hunters) can freely access and complete the Loot Quests based on their skills and expertise. They write code solutions based on the provided unit tests, and once a valid solution is submitted, the Loot Quest is cleared, and a crypto payment (Bounty) is released to the first developer who successfully submits a valid solution.
This efficient collaboration between Bounty Builders and Bounty Hunters eliminates the overhead involved in finding talent while enabling developers to receive payment for each valid code solution they provide.
This project was funded by the Mina Foundation’s, zkIgnite program cohort 1.
Team members
Devtonite: Discord ID (devtonite001#9306)
Twitter @Devtonite001