Smart contract security
This documentation outlines the security measures implemented in our smart contract system, focusing on access control, role management, and monitoring mechanisms.
Role-Based Access Control
Our contracts implement a robust role-based access control (RBAC) system using OpenZeppelin's 'AccessControl' pattern.
Two-Step Ownership Transfer
We utilize OpenZeppelin's Ownable2Step
pattern for secure ownership transfers, requiring the new owner to accept the transfer explicitly:
Decentralization of Power
Role Distribution
To prevent single points of failure and reduce trust requirements, different roles should be assigned to separate trusted entities:
Admin Role: System maintenance and emergency functions
Rebase Manager: Handles rebase operations
Blacklist Manager: Controls address restrictions
Staking Vault: Manages staking operations
Multi-Signature Recommendations
Critical operations should be protected by multi-signature wallets:
Treasury management
Protocol parameter updates
Emergency functions
Data Security
Storage Safety
Access Controls
Strict visibility modifiers
Internal function protection
State variable access restrictions
Monitoring and Alerts
Critical Events
Monitor these events for security:
Security Checkpoints
Transaction Monitoring
Large transfers
Ownership changes
Role assignments
Blacklist Operations
Address additions/removals
Blocked transaction attempts
Withdrawal Operations
Request creation
Claim attempts
Failed transactions
Clear Emergency Process
Clear incident response plan
Emergency contact list
Recovery procedures
Revokation protocols
Last updated
Was this helpful?