Skip to main contentA-REX Foundation

Diagrammes · 05

Rôles et frontières de confiance

Qui peut faire quoi sur le jeton de référence, où se situe la frontière de confiance avec les hooks, et la garde recommandée de chaque clé. L'autorité ne dérive jamais des soldes.

Acteurs et leurs capacités

flowchart LR
    subgraph GOV["Multisig de gouvernance + timelock"]
        ADMIN[DEFAULT_ADMIN_ROLE]
        UPG[UPGRADER_ROLE]
        HADM[HOOK_ADMIN_ROLE]
    end
    subgraph ENF["Multisig de mise en application (conformité + juridique)"]
        ENFR[ENFORCER_ROLE]
    end
    subgraph OPS["Services opérationnels, moindre privilège"]
        ISS[ISSUER_ROLE]
        STA[STATUS_ROLE]
        TRA[TRANSFORMER_ROLE]
        PAU[PAUSER_ROLE]
    end
    T[(ARexToken)]
    UPG -->|upgradeTo| T
    HADM -->|registerHook / removeHook| T
    ENFR -->|setFrozenTokens / forcedTransfer| T
    ISS -->|createBatch| T
    STA -->|setBatchStatus / setBatchMetadata| T
    TRA -->|"transform : traitement"| T
    PAU -->|pause / unpause| T
    HOLD["Détenteur / opérateur approuvé"] -->|"transfert · burn · réorganisation"| T
    T -->|check · onExecuted · canSend · canReceive| HOOKS[Hooks]
    HOOKS -.->|"ne peuvent ni ré-entrer ni déplacer des soldes"| T

La frontière de confiance des hooks

Un hook peutUn hook ne peut pas
rejeter une opération avec un codemodifier un solde quelconque
observer une opération exécutéeré-entrer dans le jeton (verrou)
répondre à canSend / canReceivemodifier ses propres drapeaux mis en cache sans nouvel enregistrement
lire le lot via IARexBatch(msg.sender)être enregistré en tant qu'EOA ou sans prise en charge d'ERC-165

Mesures d'atténuation pour un hook malveillant ou défectueux : HOOK_ADMIN_ROLE le retire (ordre préservé) ; PAUSER_ROLE interrompt tout sauf les transferts forcés ; un timelock sur les changements de hooks les rend visibles avant leur prise d'effet.