Project Info
Inspiration
We all have that one FBI friend that could search for any info online, what if you can save a life AND get rewarded for your searches? Millions of people disappear every year, according to the International Commission on Missing People. By harnessing the power of open-source intelligence, Sherblock offers a promising avenue for gathering crucial clues and information that could aid in the search for missing person cases.
What it does
Sherblock is a blockchain-powered web3 app for crowdsourcing information gathering (OSINT) to help solve missing person cases, backed with zero-knowledge proof. To enhance the integrity of information shared through Sherblock, a measure has been implemented wherein the general public is restricted to viewing only the name, age, and associated tag without access to the evidence link. This approach ensures that only permitted authorities can verify the reports. Relatives of the victims retain the option to offer support at their own discretion within this framework. To enhance the integrity of information shared through Sherblock, a measure has been implemented wherein the general public is restricted to viewing only the name, age, and associated tag without access to the evidence link. This approach ensures that only permitted authorities can verify the reports. Relatives of the victims retain the option to offer support at their own discretion within this framework. My decision to limit data collection solely to government official postings and to report only publicly available resources online through public links ensures that Sherblock upholds ethical standards regarding data privacy and consent, without granting special treatment to any groups. Blockchain technology allows for tracking all activities with the address of the reporter, and any unacceptable behaviors will not be tolerated and could be addressed legally. My decision to limit data collection solely to government official postings and to report only publicly available resources online through public links ensures that Sherblock upholds ethical standards regarding data privacy and consent, without granting special treatment to any groups. Blockchain technology allows for tracking all activities with the address of the reporter, and any unacceptable behaviors will not be tolerated and could be addressed legally. Implementation of advanced privacy measures, such as zero-knowledge proof, to enhance evidence privacy within Sherblock. Zero-knowledge proof allows for verifying and checking evidence links to avoid duplication without exposing its values, thereby maintaining the confidentiality of individuals involved in those cases. Implementation of advanced privacy measures, such as zero-knowledge proof, to enhance evidence privacy within Sherblock. Zero-knowledge proof allows for verifying and checking evidence links to avoid duplication without exposing its values, thereby maintaining the confidentiality of individuals involved in those cases. How I built it Next js framework with JavaScript for the web stack, Hardhat with Solidity for the smart contract and ZK node libraries for zero-knowledge proof Challenges I ran into Since this was my first time making a blockchain project, there was a steep learning curve. Especially implementing ZKP is soo hard T-T Accomplishments that I'm proud of Finishing this project as this is my first time building with blockchain technology and zero-knowledge proofs.
Sherblock - [TreeHacks 2024]
Blockchain-powered web3 app for crowdsourcing information gathering (OSINT) to help solve missing person cases.
Millions of people disappear every year, according to the International Commission on Missing People. By harnessing the power of open-source intelligence, Sherblock offers a promising avenue for gathering crucial clues and information that could aid in the search for missing person cases.
-
To enhance the integrity of information shared through Sherblock, a measure has been implemented wherein the general public is restricted to viewing only the name, age, and associated tag without access to the evidence link. This approach ensures that only permitted authorities can verify the reports. Relatives of the victims retain the option to offer support at their own discretion within this framework.
-
My decision to limit data collection solely to government official postings and to report only publicly available resources online through public links ensures that Sherblock upholds ethical standards regarding data privacy and consent, without granting special treatment to any groups. Blockchain technology allows for tracking all activities with the address of the reporter, and any unacceptable behaviors will not be tolerated and could be addressed legally.
-
Implementation of advanced privacy measures, such as zero-knowledge proof, to enhance evidence privacy within Sherblock. Zero-knowledge proof allows for verifying and checking evidence links to avoid duplication without exposing its values, thereby maintaining the confidentiality of individuals involved in those cases.
Setup:
- cd web3
- npm install
Caldera chain (ETH):
- Connect wallet and receive Caldera ETH through faucet: https://treehacks-devnet.hub.caldera.xyz/
- Create .env file with your personal key in a constant named PRIVATE_KEY, chain id in CHAIN_ID, and your rpc url in RPC_URL
- Open the Incentive.js inside Context folder, and put in your chain network url into the constant RPC_URL
- npx hardhat run --caldera scripts/deploy.js
- Artifacts folder -> Contracts -> Drag Incentive.json and Verifier.json to Context folder
- Copy the 'deployed to' address and paste to constants file in either country
- npm run dev
Avalanche Fuji chain (AVAX):
- Connect wallet and receive Avalanche ETH through faucet: https://faucets.chain.link/fuji
- Create .env file with your personal key in a constant named PRIVATE_KEY, chain id in CHAIN_ID, and your rpc url in RPC_URL
- Open the Incentive.js inside Context folder, and put in your chain network url into the constant RPC_URL
- npx hardhat run scripts/deploy.js --network fuji
- Artifacts folder -> Contracts -> Drag Incentive.json and Verifier.json to Context folder
- Copy the 'deployed to' address and paste to constants file in either country
- npm run dev
DONE!!
Analysis
View
Metric
- 62
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- JavaScriptIn code
- Next.jsIn code
- ReactIn code
- SolidityIn code
- Tailwind CSSIn code
6 of 6 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
46 KB
Source files
21
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
msamanthaf/TreeHacks
31 files · 1.0 MB · @ 6b5cbdc
Structure
Interface
10 files · 32%Screens, components and styles rendered to the user.
Application logic
7 files · 23%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- JavaScript83%
- Solidity10%
- Markdown6%
- CSS1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
web3/package.json
npm · 20- @emotion/react
- @headlessui/react
- @heroicons/react
- @mui/icons-material
- @next/font
- @zk-kit/incremental-merkle-tree.sol
- axios
- country-flag-icons
- dotenv
- ethers
- hardhat
- next
- node-localstorage
- react
- react-dom
- web3modal
- +4 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.