Skip to main content

Governance System

note

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:

  1. Centralization: A single governance diamond coordinates the entire network.
  2. Modularity: Independent use cases through the Diamond pattern.
  3. Access Control: Specific roles for each operation.
  4. 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

AspectDescription
ArchitectureCentral governance diamond coordinates all use cases
FactoriesBusinessLogic, Configuration, Proxy - deploy facets and use cases
RolesGranular control: GOVERNANCE_MANAGER, BUSINESS_LOGIC_DEPLOYER, PROXY_DEPLOYER, etc.
ConfigurationsPredefined sets of facets, versioned automatically
SecurityLocal/global pause, immutable roles (ISBE_ROLE), centralized DIDs
ModularityDiamond 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: