- Add SYNOR_BOOTSTRAP_PEERS env var for runtime seed node configuration - Implement secrets provider abstraction for faucet wallet key security (supports file-based secrets in /run/secrets for production) - Create WASM crypto crate foundation for web wallet (Ed25519, BIP-39) - Add DEPLOYMENT.md guide for testnet deployment - Add SECURITY_AUDIT_SCOPE.md for external security audit preparation - Document seed node deployment process in synor-network Security improvements: - Faucet now auto-detects /run/secrets for secure key storage - CORS already defaults to specific origins (https://faucet.synor.cc) - Bootstrap peers now configurable at runtime without recompilation
7.7 KiB
7.7 KiB
Synor Blockchain Security Audit Scope
This document defines the scope for external security audits of the Synor blockchain.
1. Overview
Project: Synor - High-throughput blockDAG with quantum-resistant cryptography Language: Rust (core), TypeScript (web wallet) Audit Priority: High (pre-mainnet requirement)
Key Innovations to Audit
- GHOSTDAG consensus with PHANTOM ordering
- Hybrid Ed25519 + Dilithium3 post-quantum signatures
- WASM-based smart contract VM
- Custom UTXO model with parallel validation
2. Audit Scope by Priority
2.1 Critical Priority (Must Audit)
Cryptographic Primitives (crates/synor-crypto/)
| Component | File | Focus Areas |
|---|---|---|
| Keypair generation | src/keypair.rs |
Entropy sources, secure randomness |
| Ed25519 signatures | src/signature.rs |
Signature malleability, validation |
| Dilithium3 PQC | src/dilithium.rs |
Parameter validation, side-channel resistance |
| Hybrid signatures | src/hybrid.rs |
Composition correctness, fallback behavior |
| Address derivation | src/address.rs |
Bech32m encoding, checksum validation |
| Key encryption | src/lib.rs |
AES-256-GCM, Argon2 parameters |
Specific Concerns:
- Verify Dilithium3 implementation matches FIPS 204 draft
- Check for timing side-channels in signature verification
- Validate entropy sources on different platforms
Consensus (crates/synor-consensus/)
| Component | File | Focus Areas |
|---|---|---|
| GHOSTDAG | src/ghostdag.rs |
K-cluster selection, anticone calculation |
| Ordering | src/ordering.rs |
Topological sort, merge set computation |
| Block validation | src/validation.rs |
PoW verification, timestamp checks |
| Difficulty adjustment | src/difficulty.rs |
DAA window, manipulation resistance |
| Finality | src/finality.rs |
Finality depth, reorg resistance |
Specific Concerns:
- GHOSTDAG K parameter (K=18) sufficient for 10 BPS?
- DAA vulnerability to timestamp manipulation
- Selfish mining / withholding attack resistance
DAG Structure (crates/synor-dag/)
| Component | File | Focus Areas |
|---|---|---|
| Block storage | src/store.rs |
Hash collision handling |
| Parent selection | src/relations.rs |
Tip selection algorithm |
| Blue score | src/blue_score.rs |
Score computation correctness |
2.2 High Priority
Smart Contract VM (crates/synor-vm/)
| Component | File | Focus Areas |
|---|---|---|
| WASM executor | src/executor.rs |
Sandbox escape, memory isolation |
| Gas metering | src/gas.rs |
Metering accuracy, DoS prevention |
| Host functions | src/host.rs |
Input validation, state access |
| Memory management | src/memory.rs |
Bounds checking, overflow |
Specific Concerns:
- WASM sandbox escape vulnerabilities
- Gas exhaustion attacks
- Host function privilege escalation
- Stack overflow in recursive contracts
Transaction Processing (crates/synor-types/)
| Component | File | Focus Areas |
|---|---|---|
| Transaction structure | src/transaction.rs |
Signature verification order |
| UTXO management | src/utxo.rs |
Double-spend prevention |
| Script validation | src/script.rs |
Opcode security |
2.3 Medium Priority
Network Layer (crates/synor-network/)
| Component | File | Focus Areas |
|---|---|---|
| P2P protocol | src/service.rs |
Message validation, DoS vectors |
| Peer reputation | src/reputation.rs |
Ban bypass, sybil resistance |
| Rate limiting | src/rate_limit.rs |
Token bucket implementation |
| Sync protocol | src/sync/ |
Malicious peer handling |
Specific Concerns:
- Eclipse attack resistance
- Network partition detection accuracy
- Gossipsub topic amplification
Storage (crates/synor-storage/)
| Component | File | Focus Areas |
|---|---|---|
| Block storage | src/block_store.rs |
Corruption recovery |
| UTXO set | src/utxo_store.rs |
Consistency guarantees |
| Pruning | src/pruning.rs |
Data availability after prune |
2.4 Lower Priority
RPC API (crates/synor-rpc/)
| Component | Focus Areas |
|---|---|
| JSON-RPC handlers | Input validation, injection |
| WebSocket | Connection limits, memory exhaustion |
| Rate limiting | Bypass prevention |
Governance (crates/synor-governance/)
| Component | Focus Areas |
|---|---|
| DAO voting | Vote weight manipulation |
| Treasury | Withdrawal limits, timelocks |
| Proposals | Execution safety |
Node Application (apps/synord/)
| Component | Focus Areas |
|---|---|
| Configuration | Secrets handling |
| Service orchestration | Race conditions |
| CLI wallet | Key storage security |
3. Out of Scope
The following are not in scope for the initial audit:
- Third-party dependencies (covered by cargo-audit)
- Web wallet frontend (separate web security audit)
- DevOps/infrastructure security
- Physical security of node operators
- Social engineering vectors
4. Threat Model
4.1 Adversary Capabilities
| Level | Description | Mitigations Expected |
|---|---|---|
| L1 | Remote attacker, no stake | Network protocol security |
| L2 | Minority miner (<33% hashrate) | Consensus security |
| L3 | Majority miner (>50% hashrate) | Finality guarantees |
| L4 | Quantum computer access | Dilithium3 signatures |
| L5 | Nation-state (future) | Quantum + classical resistance |
4.2 Key Security Properties
- Consensus Safety: No conflicting finalized blocks
- Liveness: Transactions confirm within reasonable time
- Censorship Resistance: No single entity can block transactions
- Key Security: Private keys protected from extraction
- Quantum Resistance: Secure against future quantum computers
5. Prior Work & References
Consensus
- PHANTOM/GHOSTDAG papers (Sompolinsky & Zohar)
- Kaspa implementation reference
- DAGKnight improvements
Cryptography
- FIPS 204 (Dilithium) draft specification
- Ed25519 (RFC 8032)
- Bech32m (BIP-350)
- Argon2 (RFC 9106)
Smart Contracts
- WASM specification
- Wasmtime security model
6. Deliverables Expected
-
Full Report: Detailed findings with severity ratings
-
Executive Summary: Non-technical overview
-
Findings by Category:
- Critical (immediate action required)
- High (fix before mainnet)
- Medium (fix within 30 days)
- Low (best practice improvements)
- Informational (suggestions)
-
Proof of Concepts: For any exploitable vulnerabilities
-
Remediation Verification: Re-check after fixes
7. Audit Timeline
| Phase | Duration | Description |
|---|---|---|
| Kickoff | 1 day | Scope review, access setup |
| Crypto Audit | 2 weeks | synor-crypto, synor-consensus |
| VM Audit | 1 week | synor-vm, contract security |
| Network Audit | 1 week | synor-network, P2P protocols |
| Report | 1 week | Findings documentation |
| Remediation | 2 weeks | Fix implementation |
| Verification | 3 days | Re-audit of fixes |
Total: ~7 weeks
8. Contact & Resources
Repository Access
- Main repo:
github.com/g1-technologies/synor(private until audit) - Test vectors:
docs/test-vectors/ - Architecture docs:
docs/architecture/
Points of Contact
- Technical Lead: [To be assigned]
- Security Lead: [To be assigned]
Development Environment
- Rust 1.75+
wasm32-unknown-unknowntarget- All tests:
cargo test --workspace - Benchmarks:
cargo bench --workspace
9. Previous Audits
None (first external audit)
10. Changelog
| Date | Version | Changes |
|---|---|---|
| 2026-01-08 | 1.0 | Initial scope document |
Prepared for Phase 7: Production Readiness