Governance System
Prerequisites: To understand governance, it is essential to know the Diamond Pattern and the Network Control Model.
Audience: For those seeking to understand network control.
Usage Context: To understand the deployment lifecycle and network security mechanisms.
The ISBE Governance System is the central contract that controls the deployment and management of all use cases in the network using the Diamond pattern (EIP-2535).
Overview
ISBE uses a centralized governance architecture:
- Governance Diamond: Central contract coordinating the entire network.
- Use Case Diamonds: Each application/organization has its own independent diamond.
- Facets: Reusable modules deployed via factories.
Principles:
- Centralization: A single governance diamond coordinates the entire network.
- Modularity: Independent use cases through the Diamond pattern.
- Access Control: Specific roles for each operation.
- Security: Global pause and centralized management of DIDs.
Governance Diamond Capabilities
Factories (Deployment):
- BusinessLogicFactory: Deploys and versions reusable facets.
- ConfigurationManagement: Creates configurations (sets of facets).
- ProxyFactory: Deploys use case diamonds.
Management:
- AccessControl: Role and permission control.
- DiamondCut/Loupe: Diamond management and introspection.
- GlobalPause: Emergency pause of any use case.
- DidRegistry: Centralized identity registry (DIDs).
- ENS: Decentralized naming system.
Roles
Governance Roles:
- GOVERNANCE_MANAGER_ROLE: Manages the governance diamond.
- BUSINESS_LOGIC_DEPLOYER_ROLE: Deploys facets via factory.
- GOVERNANCE_CONFIGURATION_MANAGER_ROLE: Creates configurations.
- PROXY_DEPLOYER_ROLE: Deploys use cases.
- ISBE_PAUSER_ROLE: Global emergency pause.
- DID_REGISTRY_ROLE: Manages DIDs (institutional onboarding).
- DEFAULT_ADMIN_ROLE: Role administration.
Use Case Roles:
- DEFAULT_ADMIN_ROLE: Local admin of the use case.
- ISBE_ROLE: Governance representative (immutable).
- PAUSER_ROLE: Local pause.
- Specific roles: According to the included facets.
ISBE_ROLE: This role is immutable and ensures that governance always maintains control over use cases.
How it Works
1. Facet Deployment
ISBE deploys facets via the BusinessLogicFactory:
- Each facet is identified with a unique businessId.
- The system versions automatically: same facet → v1, v2, v3...
- Facets are reusable modules implementing specific functionality.
2. Configurations
Configurations are predefined sets of facets:
- They are created via ConfigurationManagement.
- Example: "Traceability" Config = HashTimestamp + Pausable + AccessControl.
- They are also versioned automatically when updated.
3. Use Case Deployment
The ProxyFactory creates use case diamonds:
- An existing configuration is selected.
- Governance facets are automatically added.
- Initial roles are configured.
- Result: Full diamond ready to use.
4. Continuous Management
- Local Pause: Each use case can be paused individually.
- Global Pause: Governance can pause any use case (emergencies).
- DIDs: Centralized registry queryable by all use cases.
Governance Summary
| Aspect | Description |
|---|---|
| Architecture | Central governance diamond coordinates all use cases |
| Factories | BusinessLogic, Configuration, Proxy - deploy facets and use cases |
| Roles | Granular control: GOVERNANCE_MANAGER, BUSINESS_LOGIC_DEPLOYER, PROXY_DEPLOYER, etc. |
| Configurations | Predefined sets of facets, versioned automatically |
| Security | Local/global pause, immutable roles (ISBE_ROLE), centralized DIDs |
| Modularity | Diamond pattern (EIP-2535) allows unlimited and upgradeable facets |
The governance system provides controlled deployment and centralized management of the entire ISBE network.
Other technical reference topics: