Last Updated: October 2025
This document tracks the security implementation status of SolBolt's payment channel protocol.
- Channel creation and initialization
- Off-chain voucher generation
- Cryptographic signature creation
- Basic cooperative closure
- SDK integration
- On-chain nonce verification
- Ed25519 signature verification
- Dispute resolution mechanism
- Timeout protection
- Challenge period implementation
- Revocable commitments
- Penalty mechanisms
- Watchtower protocol
- Multi-signature support
- Emergency shutdown procedures
Status: In Development
Priority: Critical
Current implementation:
- Off-chain nonce tracking
- Client-side state validation
Planned improvements:
- On-chain nonce storage and verification
- Reject stale state submissions
- Monotonic nonce enforcement
// Planned implementation
pub struct PaymentChannel {
pub nonce: u64, // Stored on-chain
// ...
}
pub fn close_channel(..., nonce: u64, ...) -> Result<()> {
require!(nonce >= ctx.accounts.channel.nonce, ErrorCode::StaleState);
// ...
}Status: In Development
Priority: Critical
Current implementation:
- Client-side Ed25519 signing
- Signature collection in vouchers
Planned improvements:
- On-chain signature verification using Solana's Ed25519 program
- Message reconstruction and validation
- Public key matching
// Planned implementation
use solana_program::ed25519_program;
pub fn close_channel(...) -> Result<()> {
verify_signature(signature_a, party_a, message)?;
verify_signature(signature_b, party_b, message)?;
// ...
}Status: Planned
Priority: High
Planned implementation:
- Challenge period for contested closures
- Submit newer state during dispute
- Automatic resolution after timeout
// Planned state machine
pub enum ChannelState {
Open,
CloseInitiated,
Challenged,
Finalized,
}Status: Planned
Priority: High
Planned implementation:
- Configurable timeout period
- Unilateral closure after timeout
- Protection against offline counterparty
// Planned timeout structure
pub struct PaymentChannel {
pub timeout: i64,
pub last_update: i64,
// ...
}- Unit tests for smart contract
- SDK integration tests
- Attack scenario simulations
- Fuzzing tests
- Load testing
- Security audit
Planned test coverage:
- Replay attack prevention
- Signature forgery attempts
- Race condition handling
- Timeout abuse scenarios
- Network partition cases
- Implement core security features
- Internal security review
- Community testing on testnet
- Professional security audit by reputable firm
- Bug bounty program
- Vulnerability disclosure process
- Address audit findings
- Implement recommended improvements
- Final review and mainnet preparation
Current recommendations:
- Test on devnet/testnet only
- Use small amounts during testing
- Monitor channel states actively
- Keep backup of signed vouchers
Before mainnet:
- Review audit report
- Understand protocol risks
- Use appropriate fund limits
- Implement monitoring
Integration guidelines:
- Validate all inputs
- Handle errors gracefully
- Implement retry logic
- Store vouchers securely
- Monitor channel health
- Requires both parties online for updates
- No multi-hop routing (single channel only)
- Limited to bilateral channels
- No automatic rebalancing
- Manual voucher backup
- Active monitoring needed
- No automated dispute resolution
- Manual intervention for edge cases
Found a security issue? Contact us:
- Email: security@solbolt.dev
- GitHub: Private security advisories
- Response time: 48 hours for critical issues
Please provide:
- Detailed description
- Reproduction steps
- Potential impact
- Suggested fix (if any)
We follow responsible disclosure practices:
- 90-day disclosure timeline
- Coordinated public disclosure
- Security credits for researchers
- Bug bounty rewards for critical findings
- Anchor's built-in security checks
- Solana program verification
- Signature verification libraries
Security is a continuous process. This document will be updated as features are implemented and audited.