
Inspiration
The inspiration behind our project stems from the critical need for a secure and anonymous platform for whistleblowers to report wrongdoing without fear of reprisal or exposure.
Whistleblowers play a crucial role in uncovering corruption, fraud, and other unethical behavior, but often face significant risks when coming forward.
Our goal is to empower individuals to speak up and bring attention to injustices while protecting their identities and ensuring the integrity of their reports.
What it does
Our whistleblower app built on the Partisia blockchain provides a secure and anonymous platform for individuals to report misconduct, corruption, or other unethical behavior.
- Users can submit detailed reports, including evidence such as documents or multimedia files urls, through an encrypted channel.
- Reports are securely stored and the app ensures the anonymity of whistleblowers by utilizing advanced cryptographic techniques described below and the decentralized nature of the Partisia blockchain.
How we built it
We built the whistleblower app using the Partisia blockchain platform, to make it secure and trustworthy we have added an additional layer of anonymity.
The id stored againstt the activity is replaced with psuedonym of the user. The pseudonym is generated based on the address and a private key which is hidden to the external world.
Below diagram describes the steps to get a psuedo id.
Anonymous design
The add report action takes in input whistleblower_pseudonym and the report that needs to be stored against it.
fn add_report(..., timestamp: String, report_description: String, pkey: String, whistleblower_pseudonym: String) -> ContractState {}It also has a
verifyfunction to make sure a user is only able to use their own psuedonym.fn verify(address: Address, public_key_hex: String, pseudonym_hex: String) { let mut user_address: [u8; 21] = [0; 21]; user_address[1..].copy_from_slice(&address.identifier); verify_signature(&public_key_hex, &user_address,&pseudonym_hex); }
Backend & Frontend
The contract is written in Rust using
partisia-contract-sdk. The backend is powered bynodejs.The frontend interface was developed using modern web technologies including
Reactandtypescript, providing a user-friendly experience for whistleblowers to submit reports securely.
Challenges we ran into
One of the main challenges we encountered was designing a system that provides strong anonymity guarantees while maintaining usability and accessibility.
Accomplishments that we're proud of
We're proud to have successfully developed a whistleblower app that prioritizes user privacy and security without compromising on functionality.
Our app provides whistleblowers with a safe and confidential platform to report misconduct, empowering them to speak up against injustice
What we learned
We gained valuable insights into the complexities of building secure and anonymous systems on blockchain platforms.
We deepened our understanding of cryptographic techniques and their applications in preserving user privacy.
Additionally, we learned about the challenges and trade-offs involved in designing user-friendly interfaces for secure communication and reporting.
What's next for Blow the whistle
In the future, we plan to further enhance the features and capabilities of the whistleblower app.
- This includes implementing additional privacy-preserving measures, such as zero-knowledge proofs.
- Reward system to promote whistle blowing.
Thanks for reading, have a good day!
Please reach out in comments if you want to try out the whistle blower, I'll get you registered, thanks.
Log in or sign up for Devpost to join the conversation.