CipherBallot using SMPC for Privacy-Preserving Data Platform is a comprehensive solution for secure multi-party computation (SMPC) to aggregate and analyze data without compromising privacy. The application combines a modern React frontend with a powerful Python Flask backend to provide an intuitive and effective SMPC service.
CipherBallot using SMPC for Privacy-Preserving Data Platform helps organizations securely aggregate and analyze data from multiple parties without revealing individual data points. The platform uses secure multi-party computation techniques to ensure data privacy.
smpc-privacy-preserving-data/
├── frontend/ # React frontend application
│ ├── public/
│ ├── src/
│ ├── .env
│ └── package.json
│
├── backend/ # Flask backend API
│ ├── app/
│ │ ├── smpc.py # Main SMPC logic
│ ├── run.py # Server file
│ ├── .env
│ └── requirements.txt
│
└── README.md # This file
- Secure Aggregation: Aggregate data using secure multi-party computation
- Privacy-Preserving: Ensure data privacy during computation
- Flexible Data Types: Support for various data types and aggregation methods
- Intuitive Interface: Clean, responsive design works across devices
- Real-time Feedback: Toast notifications provide operation status
- Animated UI: Smooth transitions make interaction pleasant
- Performance Optimizations: Concurrent processing for faster results
- React 18.2.0
- Framer Motion (animations)
- React Icons
- TailwindCSS
- Python 3.9+
- Flask web framework
- MPyC (Multiparty Computation in Python)
- Thread pool for concurrent processing
- Node.js (v16+)
- Python (v3.9+)
- npm or yarn
- pip
git clone https://github.com/yourusername/smpc-privacy-preserving-data.git
cd smpc-privacy-preserving-data# Navigate to backend directory
cd backend
# Create and activate a virtual environment
python -m venv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate`
# Install dependencies
pip install -r requirements.txt
# Run the server
python run.py # Runs on http://localhost:8000 by default# Navigate to frontend directory
cd frontend
# Install dependencies
npm install
# Start development server
npm run dev # Access at http://localhost:5173 by defaultPOST /aggregate_votes{
"votes": ["Option1", "Option2", "Option1", "Option3"]
}Success:
{
"results": {
"Option1": 2,
"Option2": 1,
"Option3": 1
}
}Error:
{
"error": "Description of the error that occurred"
}Input:
{
"votes": ["Option1", "Option2", "Option1", "Option3"]
}Output:
{
"results": {
"Option1": 2,
"Option2": 1,
"Option3": 1
}
}© 2025 SMPC Privacy-Preserving Data Platform. All rights reserved.