System Architecture
This section provides an overview of the complete Stoffel system architecture and how the various components interact.
Overall System Design
┌─────────────────────────────────────────────────────────────────┐
│ Stoffel Ecosystem │
├─────────────────────────────────────────────────────────────────┤
│ Developer Interface Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Stoffel CLI │ │ Python SDK │ │ IDEs & │ │
│ │ │ │ │ │ Editors │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────────┤
│ Compilation Layer │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ StoffelLang │ │ Bytecode │ │
│ │ Compiler │→ │ Generator │ │
│ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────────┤
│ Execution Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ StoffelVM │ │ Runtime │ │ Standard │ │
│ │ Core │ │ System │ │ Library │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────────┤
│ Protocol Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ MPC Proto- │ │ Network │ │ Crypto │ │
│ │ cols │ │ Layer │ │ Primitives │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
Component Interactions
Development Workflow
- Project Creation: Stoffel CLI creates project structure with templates
- Code Writing: Developers write StoffelLang programs with MPC primitives
- Compilation: StoffelLang compiler generates optimized VM bytecode
- Testing: Local VM execution for development and testing
- Deployment: MPC network deployment with protocol integration
Runtime Execution
- Program Loading: StoffelVM loads compiled bytecode
- Secret Sharing: Input data is secret-shared across MPC nodes
- Secure Computation: VM executes with MPC protocol integration
- Result Reconstruction: Output is reconstructed from secret shares
Data Flow
Clear Data Path
- Public inputs and configuration data
- Direct VM register operations
- No cryptographic overhead
- Immediate availability across all nodes
Secret Data Path
- Private inputs requiring protection
- Automatic secret sharing on input
- MPC protocol operations during computation
- Selective reveal for output reconstruction
Security Architecture
Isolation Boundaries
- Process Isolation: Each MPC node runs in isolated environment
- Memory Protection: Clear and secret data separation
- Network Security: Encrypted communication between nodes
- Access Control: Role-based access to computation resources
Trust Model
- Honest Majority: Assumes majority of nodes are honest
- Semi-Honest Adversary: Protects against passive attacks
- Input Privacy: Individual inputs remain private
- Computation Privacy: Intermediate values are protected
Scalability Design
Horizontal Scaling
- Node Addition: Dynamic addition of MPC nodes
- Load Distribution: Computation workload balancing
- Geographic Distribution: Global node deployment support
Vertical Scaling
- Resource Optimization: Efficient CPU and memory usage
- Parallel Execution: Multi-threaded computation where possible
- Caching Strategies: Optimized data and computation caching
Integration Points
External Systems
- Database Integration: Secure querying of external databases
- API Integration: RESTful APIs for system interaction
- Blockchain Integration: Smart contract integration for verification
Development Tools
- IDE Support: Language server protocol integration
- Debugging Tools: Comprehensive debugging and profiling
- Testing Frameworks: Specialized testing for MPC applications
This architecture enables secure, scalable, and developer-friendly multi-party computation while maintaining strong security guarantees.