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.
Key roles include:
- `DEFAULT_ADMIN_ROLE`: Super-admin with the ability to manage other roles
- `REBASE_MANAGER_ROLE`: Controls rebase operations
- `BLACKLIST_MANAGER_ROLE`: Manages blacklisted addresses
- `STAKING_VAULT_ROLE`: Special permissions for staking operations
Two-Step Ownership Transfer
We utilize OpenZeppelin's Ownable2Step
pattern for secure ownership transfers, requiring the new owner to accept the transfer explicitly:
function transferOwnership(address newOwner) public virtual override(Ownable2Step, Ownable) onlyOwner {
Ownable2Step.transferOwnership(newOwner);
}
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:
event AdminChanged(address indexed oldAdmin, address indexed newAdmin);
event Blacklisted(address indexed account);
event WithdrawalDemandCreated(address indexed user, uint256 amount, uint256 timestamp);
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
This documentation provides a comprehensive overview of the security measures implemented in your smart contract system while offering guidance for secure operations and maintenance. You can further customize it based on your specific needs or add more technical details as required.
Last updated
Was this helpful?