Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Governance Fork System

Overview

The governance fork mechanism enables users to choose between different governance rulesets without affecting Bitcoin consensus. This provides an escape hatch for users who disagree with governance decisions while maintaining Bitcoin protocol integrity.

Fork Types

TypeDefinitionCompatibilityExamples
Soft ForkChanges without breaking compatibilityExisting users continue, new users choose updatedAdding signature requirements, modifying time locks, updating thresholds
Hard ForkBreaking changesAll users must choose, no backward compatibilityChanging signature schemes, modifying fundamental principles, removing tiers

Ruleset Export

Export Format

Governance rulesets exported as versioned, signed packages in YAML format:

ruleset_version: "1.2.0"
export_timestamp: "YYYY-MM-DDTHH:MM:SSZ"
previous_ruleset_hash: "sha256:abc123..."
governance_rules:
  action_tiers: { /* tier definitions */ }
  repository_layers: { /* layer definitions */ }
  maintainers: { /* maintainer registry */ }
  emergency_procedures: { /* emergency protocols */ }
cryptographic_proofs:
  maintainer_signatures: [ /* signed by maintainers */ ]
  ruleset_hash: "sha256:def456..."
  merkle_root: "sha256:ghi789..."
compatibility:
  min_version: "1.0.0"
  max_version: "2.0.0"
  breaking_changes: false

Export Process

  1. Ruleset preparation (compile current governance rules from YAML files)
  2. Cryptographic signing (maintainers sign the ruleset)
  3. Hash calculation (generate tamper-evident hash)
  4. Merkle tree (create verification structure)
  5. Export generation (package for distribution)
  6. Publication (make available for download)

Code: export.rs

Versioning System

Version ComponentMeaningExample
MajorBreaking changes (hard fork)2.0.0 (incompatible with 1.x)
MinorNew features (soft fork)1.2.0 (compatible with 1.x)
PatchBug fixes and improvements1.1.1 (compatible with 1.1.x)

Compatibility: Compatible (upgrade without issues), Incompatible (must choose), Deprecated (removed), Supported (receives updates).

Adoption Tracking

Track ruleset adoption through: node count, hash rate, user count, exchange support.

Public Dashboard: Current distribution, adoption trends, geographic distribution, exchange listings.

Fork Decision Process

User Choice

  1. Download ruleset package
  2. Verify maintainer signatures
  3. Validate ruleset integrity (hash)
  4. Configure client (set ruleset)
  5. Announce choice (publicly declare)

Client Implementation

  • Ruleset loading (load chosen ruleset)
  • Signature verification (verify maintainer signatures)
  • Rule enforcement (apply governance rules)
  • Status reporting (report chosen ruleset)
  • Update mechanism (handle ruleset updates)

Code: executor.rs

Fork Resolution

Conflict Resolution

When forks occur:

  1. User notification (alert users to fork)
  2. Choice period (30 days to choose ruleset)
  3. Migration support (tools for ruleset migration)
  4. Documentation (clear migration guides)
  5. Support (community support during transition)

Fork Merging

Forks can be merged by: consensus building, gradual migration, feature adoption, clean slate.

Security Considerations

AspectRequirements
Ruleset IntegrityCryptographic signatures, hash verification, Merkle trees, timestamp anchoring
Fork SecurityReplay protection, version validation, signature verification, threshold enforcement

Examples

ScenarioTypeChangeResult
Adding signature requirementSoft ForkRequire 4-of-5 instead of 3-of-5Existing users continue with 3-of-5, new users use 4-of-5
Changing signature schemeHard ForkSwitch from Ed25519 to DilithiumClean split into two governance models

Configuration

  • governance/config/governance-fork.yml - Fork configuration
  • governance/fork-registry.yml - Registered forks