Inspiration
The idea for this project was born out of the increasing need for privacy in online interactions. With over 700 million monthly active users, Telegram has become a leading platform for secure communication, but existing crowdfunding solutions lack sufficient anonymity protections. In fact, studies reveal that 83% of users feel concerned about their data being misused online, and 70% actively seek platforms with enhanced privacy features. Leveraging Semaphore’s zero-knowledge proof technology, this project enables users to post crowdfunding ideas and donate through a built-in ethereum wallet—all while maintaining complete anonymity. This is particularly crucial in a world where personal data breaches are rampant, with over 4,000 incidents reported annually. By using Telegram's robust ecosystem, the project ensures accessibility and ease of use, while competing with major players like GoFundMe and Kickstarter by prioritizing privacy and decentralization. The platform empowers users to support causes they believe in without revealing their identity, making it ideal for sensitive or high-risk projects that thrive on community-driven support.
What it does
Post Crowdfunding Ideas: Users can post detailed messages in a Telegram group about their crowdfunding ideas, outlining all relevant information directly within the platform.
Engage and Donate: Other users can browse through these messages, ask questions, and manage donations to the projects they find interesting—all within the Telegram group.
Protect User Privacy: Upon joining the group, each user is assigned a Semaphore identity, ensuring their real identity remains completely anonymous.
Anonymized Messaging via Bot: Whenever a user posts, the mysema_bot reads, deletes the original message and resends the message, generating a signature with the user’s Semaphore identity, allowing messages to be anonymous yet verifiable.
Message Integrity Verification: Users can easily verify the authenticity of any message by replying /verify to it, ensuring the message is from a trusted source.
Inbuilt Crypto Wallet: Each user is equipped with an Ethereum wallet, enabling them to top up funds and send anonymous donations using simple Telegram commands like
/send.Check Semaphore Identity:
Users can check their Semaphore identity by using the /id command, allowing them to verify their anonymity in the group. The result is sent directly to the user's private messages, ensuring confidentiality and not exposing it in the group.Check Balance:
Users can view their wallet balance by using the /balance command, providing transparency about their available funds for donations. This information is also sent privately to the user, keeping it secure and out of the group chat.Access Wallet Information:
Users can use the /wallet command to privately receive their wallet's private key, address, and public key. This ensures that sensitive information is securely transmitted directly to the user's private messages, maintaining their privacy and security
How we built it
Telegram Bot API (Node.js):
We used the Telegram Bot API within a Node.js environment to facilitate user interactions, allowing users to post ideas, make donations, and verify messages directly within the Telegram group. Node.js enabled us to handle the asynchronous nature of Telegram messaging efficiently.Semaphore-protocol/identity Library:
To protect user anonymity, we implemented Semaphore—a zero-knowledge protocol that allows users to prove their identity without revealing it. We used the semaphore-protocol/identity library from pse.dev, which generates anonymous identities for users, securing their privacy while ensuring message authenticity.Alchemy API for Sepolia Network Interaction:
For handling cryptocurrency transactions, such as donations, we integrated the Alchemy API to interact with the Sepolia Ethereum test network. This API allowed us to manage wallet operations, including topping up and transferring funds securely, while ensuring scalability.Ether.js for Ethereum Transactions:
To facilitate Ethereum transactions and create user wallets, we utilized Ether.js. This library simplifies interactions with the Ethereum blockchain, enabling seamless transaction management and wallet creation within our application.LevelDB for User-Identity Mapping:
We utilized LevelDB to maintain the mapping of users and their corresponding Semaphore identities. This key-value store efficiently manages user data, ensuring quick access and retrieval of identity information while preserving privacy.Hosting on Linode:
To ensure stability, performance and seamless access, we hosted the bot on Linode. Linode provided us with reliable cloud infrastructure, ensuring that the bot remains operational with minimal downtime, even as more users join the group and interact.
Challenges we ran into
Understanding the Zero-Knowledge Proof (ZKP) Protocol:
One of the initial challenges was grasping the intricacies of the zero-knowledge proof (ZKP) protocol. It required significant research and experimentation to understand its theoretical concepts and practical applications in ensuring user anonymity while maintaining message integrity.Managing User Identity:
Another challenge was efficiently managing user identities while ensuring privacy. We tackled this by utilizing LevelDB, a lightweight key-value store, which allowed us to maintain a mapping of users and their Semaphore identities securely. This solution enabled quick access and retrieval of identity data without compromising user anonymity.Handling User Messages:
We faced difficulties in handling user messages and ensuring seamless interaction within the Telegram group. It was essential to develop a mechanism that not only delivered messages accurately but also preserved the anonymity of users. Through iterative testing and refinement, we optimized the functionality of the mysema_bot to process and resend messages effectively, meeting the needs of our users.
Accomplishments that we're proud of
Development of the Telegram Bot in Node.js:
I am proud to have independently developed the Telegram bot using Node.js, mastering the complexities of the Telegram Bot API to create a robust and efficient communication tool for users.Handling Node.js Programming Interface:
Successfully managing the Node.js programming interface for the Telegram bot was a significant achievement. It allowed me to implement various functionalities and ensure smooth interactions between users and the bot.Designing the Project Workflow:
I took the initiative to design the overall workflow of the project, ensuring that every component— from user identity creation to message handling—works seamlessly together, providing a cohesive user experience.Enhancing User Accessibility:
I focused on making the project easily accessible to users. This involved creating an intuitive interface and simplifying the process for users to post ideas, donate, and verify messages, thereby enhancing user engagement and participation.
What we learned
Deep Understanding of Anonymity Protocols:
I gained a comprehensive understanding of zero-knowledge proof protocols and their application in ensuring user anonymity. This knowledge has enhanced my ability to implement privacy-focused solutions effectively.Proficiency in Bot Development:
Developing a Telegram bot from scratch in Node.js taught me the intricacies of bot programming, including how to manage asynchronous communication and user interactions in a dynamic environment.Blockchain Integration Skills:
By integrating Ethereum functionalities using Ether.js and the Alchemy API, I developed skills in blockchain technology, enhancing my understanding of cryptocurrency transactions and wallet management.Problem-Solving and Iterative Development:
The project fostered my ability to troubleshoot and solve complex problems related to user identity management and messaging. I learned the importance of iterative development, testing, and refining features based on user feedback to improve the overall experience.
What's next for Whisper Funds
---.
Integration of Analytics and Reporting:
Introducing an analytics dashboard for project creators can provide insights into user engagement, donation trends, and feedback. This feature would help creators refine their pitches and strategies to improve fundraising success, making the platform more effective for users.Expansion to Other Platforms:
To reach a wider audience, we aim to expand the project beyond Telegram, potentially creating a web application or mobile app version. This would enable more users to access the platform and support crowdfunding efforts, enhancing the community and increasing overall participation.
Here’s a section on how to use the bot with clear directions:
How to Use the Bot
Start the Bot:
Click on this link to start the bot: https://t.me/mysema_bot. This is essential because the bot will send you private messages, allowing you to manage your anonymous identity and transactions effectively.Join the Group:
After starting the bot, join the Telegram group for crowdfunding: https://t.me/+lO8eQNkePo4wNTll. Here, you can enjoy anonymous funding and post your crowdfunding ideas, engaging with a community of supporters.
Log in or sign up for Devpost to join the conversation.