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:

  1. Admin Role: System maintenance and emergency functions

  2. Rebase Manager: Handles rebase operations

  3. Blacklist Manager: Controls address restrictions

  4. 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

  1. Access Controls

    • Strict visibility modifiers

    • Internal function protection

    • State variable access restrictions

Monitoring and Alerts

Critical Events

Monitor these events for security:

Security Checkpoints

  1. Transaction Monitoring

    • Large transfers

    • Ownership changes

    • Role assignments

  2. Blacklist Operations

    • Address additions/removals

    • Blocked transaction attempts

  3. 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?