Diagramme · 05
Rollen und Vertrauensgrenzen
Wer was mit dem Referenz-Token tun kann, wo die Vertrauensgrenze zu den Hooks verläuft und wie jeder Schlüssel empfohlenermaßen verwahrt wird. Befugnis leitet sich nie aus Salden ab.
Akteure und ihre Fähigkeiten
flowchart LR
subgraph GOV["Governance-Multisig + Timelock"]
ADMIN[DEFAULT_ADMIN_ROLE]
UPG[UPGRADER_ROLE]
HADM[HOOK_ADMIN_ROLE]
end
subgraph ENF["Durchsetzungs-Multisig (Compliance + Recht)"]
ENFR[ENFORCER_ROLE]
end
subgraph OPS["Operative Dienste, minimale Rechte"]
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: Verarbeitung"| T
PAU -->|pause / unpause| T
HOLD["Inhaber / zugelassener Operator"] -->|"Transfer · Burn · Re-Batch"| T
T -->|check · onExecuted · canSend · canReceive| HOOKS[Hooks]
HOOKS -.->|"können nicht erneut eintreten, können keine Salden bewegen"| TDie Vertrauensgrenze der Hooks
| Ein Hook kann | Ein Hook kann nicht |
|---|---|
| eine Operation mit einem Code ablehnen | irgendeinen Saldo ändern |
| eine ausgeführte Operation beobachten | den Token erneut betreten (Sperre) |
canSend / canReceive beantworten | seine eigenen zwischengespeicherten Flags ohne erneute Registrierung ändern |
die Charge über IARexBatch(msg.sender) lesen | als EOA oder ohne ERC-165-Unterstützung registriert werden |
Gegenmaßnahmen bei einem bösartigen oder defekten Hook: HOOK_ADMIN_ROLE entfernt ihn (Reihenfolge bleibt erhalten); PAUSER_ROLE hält alles außer erzwungenen Transfers an; ein Timelock auf Hook-Änderungen macht sie sichtbar, bevor sie wirksam werden.