
Verifit
Verifit: A blockchain-powered fitness app that uses zero-knowledge proofs to verify and tokenize your workout data. Set goals, make accountability bets, and earn NFTs for your achievements—all with privacy-preserving, on-chain proof of your fitness progress.
Demo
About
# Verifit: Blockchain-Powered Fitness Verification and Incentivization Verifit is an innovative fitness application that leverages blockchain technology, zero-knowledge proofs, and smart contracts to create a trustless, privacy-preserving ecosystem for fitness tracking and goal achievement. ## Core Components 1. **User Authentication** - Users log in to the Verifit app using their Google accounts, ensuring a seamless and secure authentication process. 2. **Data Retrieval with zkFetch** - Verifit utilizes a custom tool called zkFetch to retrieve user fitness data from the Google Fitness API. - zkFetch is similar to the standard fetch API but with a crucial difference: it returns not only the requested data but also a verifiable zero-knowledge proof. - This proof allows for the validation of the data's authenticity without revealing the actual data, preserving user privacy. 3. **On-Chain Attestation** - Users can attest to their fitness data using the Sign Protocol. - This attestation process stores a cryptographic commitment of the data on the blockchain, creating an immutable record of the user's fitness activities. 4. **Smart Contract Integration** - A hook contract is triggered during the attestation process. - This contract verifies the zero-knowledge proof provided by zkFetch, ensuring the data's validity. 5. **NFT Minting** - Upon successful verification, the system mints a non-fungible token (NFT) for the user. - The NFT contains key fitness data such as the number of steps taken and the start and end timestamps of the activity period. - These NFTs serve as blockchain-based certificates of achievement, providing users with tangible, tradeable proof of their fitness accomplishments. 6. **Accountability Bets** - Verifit introduces a novel feature called "Accountability Bets" through the CreateBets smart contract. - Users can create fitness goals and place bets on their ability to achieve these goals. - Other users can participate in these bets, creating a community-driven incentive system for fitness achievement. 7. **Bet Resolution** - When it's time to resolve a bet, Verifit again uses zkFetch to retrieve the relevant fitness data and associated proof. - The CreateBets contract verifies this proof and automatically resolves the bet based on the achieved results. - This process ensures fair and transparent bet resolution without compromising user privacy. ## Key Benefits 1. **Privacy Preservation**: By using zero-knowledge proofs, Verifit allows users to verify their fitness achievements without revealing sensitive data. 2. **Trustless Verification**: The use of blockchain and smart contracts eliminates the need for a trusted third party to verify fitness data or resolve bets. 3. **Gamification and Incentivization**: The combination of NFT rewards and accountability bets creates strong motivators for users to achieve their fitness goals. 4. **Immutable Record Keeping**: All verified achievements and bet resolutions are recorded on the blockchain, providing an tamper-proof history of user accomplishments. 5. **Community Building**: The betting system encourages users to engage with each other, fostering a supportive and competitive fitness community. ## Technical Innovation Verifit stands out for its novel application of zero-knowledge proofs in the fitness tracking domain. By combining zkFetch with blockchain technology, it creates a unique solution that addresses both data privacy and verifiability concerns in fitness tracking applications. The project demonstrates how advanced cryptographic techniques can be applied to real-world problems, potentially paving the way for similar privacy-preserving solutions in other domains where data verification is crucial but privacy is a concern.
How it's made
User: Initiates the process by logging in. Google Authentication: Handles user login. Verifit App: The main application interface. zkFetch: A tool similar to fetch that returns data with a verifiable ZK proof. Fitness API: Provides the user's fitness data. Sign Protocol: Used for attesting the ZK proof. Blockchain: Stores attestations, NFTs, and bet data. Hook Contract: Checks proof verifiability. Proof Verification: Verifies the ZK proof. Mint NFT: Creates an NFT with steps count and timestamps. CreateBets Contract: Manages accountability bets. Envio:An indexer to query bets