Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
LABS
Guides

How to Architect a Delegated Voting System for AI Governance

This guide provides a technical blueprint for implementing a delegated voting system tailored to AI governance, covering delegation mechanisms, steward roles, and on-chain performance tracking.
Chainscore © 2026
introduction
INTRODUCTION

How to Architect a Delegated Voting System for AI Governance

A technical guide to designing a secure and scalable delegated voting system for governing autonomous AI agents and models.

Delegated voting, or liquid democracy, is a hybrid governance model that combines direct and representative democracy. In this system, token holders can vote directly on proposals or delegate their voting power to experts, known as delegates or representatives. This delegation is dynamic and can be revoked or changed at any time, creating a flexible and informed decision-making layer. For AI governance, this model is particularly powerful, as it allows a community to empower specialists in AI safety, ethics, and technical domains to make nuanced decisions on behalf of the collective.

The core architecture of such a system is built on a smart contract foundation, typically on a blockchain like Ethereum, Arbitrum, or Optimism. The contract manages the registry of delegates, tracks delegation links, tallies votes, and executes successful proposals. Key data structures include a mapping from voter addresses to their chosen delegate address, and a separate mapping to track the voting power (often derived from a token balance snapshot) of each delegate. This separation of the delegation graph from the vote tallying logic is a critical design pattern for gas efficiency and clarity.

Implementing this requires careful consideration of several mechanisms. The delegate(address to) function allows a token holder to redirect their voting power. A castVote(uint proposalId, uint support) function enables delegates to vote, with their power calculated as their own tokens plus all tokens delegated to them. To prevent manipulation, most systems use a checkpointed token standard like OpenZeppelin's ERC20Votes or ERC5805, which records historical balances at the start of each voting period, making the system immune to "token renting" attacks.

For AI governance applications, the proposal types must be tailored to the autonomous system being managed. This could include: parameter adjustments (e.g., tuning an AI model's risk thresholds), upgrade approvals for new model versions or smart contract logic, treasury allocations for funding safety research, and delegate slashing for malicious behavior. Each proposal should have a well-defined execution path, often via a Timelock contract, which queues successful votes for execution after a delay to allow for review and reaction.

Security is paramount. Beyond using battle-tested voting standards, architects must consider attack vectors like vote buying (mitigated by secret voting or commitment schemes), delegate collusion, and governance fatigue. A robust system will include features like a minimum delegation period, a delegate reputation system tracked on-chain, and perhaps a quadratic voting mechanism to reduce the power of large token holders. The ultimate goal is to create a system where the AI's actions are transparently and accountably directed by its most knowledgeable stakeholders.

prerequisites
FOUNDATIONAL KNOWLEDGE

Prerequisites

Before architecting a delegated voting system for AI governance, you need a solid grasp of the underlying technologies and design principles.

Building a robust delegated voting system requires proficiency in smart contract development. You should be comfortable with Solidity (or a similar smart contract language) and have experience with development frameworks like Hardhat or Foundry. Understanding core concepts such as access control, state management, and upgradeability patterns (e.g., Transparent or UUPS proxies) is essential for creating secure and maintainable governance contracts. Familiarity with the ERC-20 and ERC-721 token standards is also crucial, as governance power is often derived from token ownership.

You must understand the core mechanics of delegated voting (also known as liquid democracy). This model allows token holders to vote directly on proposals or delegate their voting power to representatives, who then vote on their behalf. Key design decisions include: how delegation is recorded and revoked, whether delegation is transitive (can a delegate further delegate?), and how vote weights are calculated. Studying existing implementations like Compound's Governor Bravo or OpenZeppelin's Governor contracts provides valuable insight into standard patterns and security considerations.

A functional AI governance system needs a way to submit, process, and execute on-chain proposals. This involves designing the proposal lifecycle: creation, a voting delay period, an active voting period, a timelock for execution, and finally, execution itself. You'll need to integrate with a decentralized oracle (e.g., Chainlink) or a verifiable computation layer to bring off-chain AI model outputs or evaluation metrics on-chain in a trust-minimized way, as these outputs often form the basis of governance decisions.

Security is paramount. You must account for common attack vectors in governance systems, such as vote buying, flash loan attacks to manipulate voting power, and proposal spam. Implementing safeguards like a proposal submission deposit, a minimum voting period, and a quorum requirement are standard practice. Thorough testing, including unit tests, integration tests, and scenario-based fuzzing (using tools like Echidna), is non-negotiable before deploying to a mainnet environment.

Finally, consider the user experience and front-end integration. Governance participants need clear interfaces to delegate votes, view proposals, and cast votes. You should be prepared to interact with your smart contracts using a library like ethers.js or viem, and understand how to index on-chain events for efficient data retrieval, potentially using a service like The Graph. The system's success depends on both its technical robustness and its accessibility to the community it governs.

system-design-overview
SYSTEM DESIGN OVERVIEW

How to Architect a Delegated Voting System for AI Governance

A technical blueprint for building a secure, scalable, and transparent delegated voting mechanism to govern decentralized AI models and protocols.

A delegated voting system, or liquid democracy, is a hybrid governance model where token holders can vote directly on proposals or delegate their voting power to trusted representatives, called delegates. This architecture is critical for AI governance, where proposals can be highly technical—ranging from model parameter updates and training data sourcing to ethical guardrails and fee structures. Delegation allows for informed decision-making by experts while maintaining the democratic principle of one-token-one-vote. Core components include a voting smart contract, a delegate registry, a proposal factory, and an on-chain execution module to enact approved decisions.

The system's security and integrity depend on its smart contract design. Voting power should be calculated as a snapshot of token balances at a specific block to prevent manipulation. The delegation mechanism must allow users to delegate to any address and revoke or re-delegate at any time, with changes taking effect after a time-lock period to prevent last-minute swings. Votes should be weighted and tallied on-chain, with results immutable and publicly verifiable. Using a battle-tested framework like OpenZeppelin Governor provides a secure foundation, but custom logic is needed to handle the unique state changes of AI systems, such as updating a model's inference endpoint or modifying a reward distribution algorithm.

For AI governance, the proposal lifecycle must be carefully structured. A typical flow includes: 1) Submission with a defined deposit, 2) Delegated Discussion period on a forum, 3) On-chain Voting with options like For, Against, and Abstain, and 4) Queued Execution after a successful vote. Given the complexity of AI proposals, it's essential to include an attestation layer. Here, delegates or designated experts can publish cryptographic attestations—using a service like EAS (Ethereum Attestation Service)—to verify a proposal's technical feasibility or safety, providing voters with crucial signals before casting their weighted votes.

Scalability is a major challenge, as on-chain voting for every decision can be costly and slow. A common pattern is to use a multisig council for routine operational upgrades (Tier 1) and reserve the full delegated voting system for major protocol changes (Tier 2). Another approach is to implement gasless voting via meta-transactions or a Layer 2 solution like Arbitrum or Optimism, where voting transactions are submitted by a relayer. The delegation graph itself can become a valuable social layer; tracking delegate profiles, voting history, and their stated mandates on a front-end helps token holders make informed delegation choices, fostering a robust governance ecosystem.

Finally, the system must be designed for resilience and adaptability. This includes a veto or emergency shutdown mechanism controlled by a time-locked multisig to respond to critical vulnerabilities. Governance parameters like voting delay, voting period, and proposal threshold should be upgradeable through the governance process itself. By architecting the system with modularity in mind—separating the voting logic, delegation registry, and proposal types—developers can create a future-proof foundation for governing the rapidly evolving landscape of decentralized artificial intelligence.

core-contract-components
ARCHITECTURE

Core Contract Components

Building a secure and efficient delegated voting system requires specific smart contract modules. This section details the essential components and their functions.

01

Vote Token & Delegation Registry

The foundation is an ERC-20Votes or ERC-5805 compliant token. This standard provides built-in snapshots for vote weight and a delegation registry. Key functions include:

  • delegate(address delegatee): Allows a token holder to delegate their voting power.
  • getVotes(address account): Returns the current voting power of an account, including delegated votes.
  • getPastVotes(address account, uint256 blockNumber): Enables gas-efficient historical vote lookups for proposal execution.

Without this, tracking delegated power across blocks is complex and gas-intensive.

02

Governor Core Contract

This is the main proposal lifecycle manager, typically extending OpenZeppelin's Governor contract. It handles:

  • Proposal Creation: propose() function with target contracts, calldata, and description.
  • Vote Casting: castVote() which checks the delegate registry for the voter's power.
  • State Management: Tracks if a proposal is Pending, Active, Succeeded, Defeated, or Executed.
  • Timelock Integration: Can queue successful proposals to a TimelockController for delayed execution.

The core logic for vote counting (e.g., simple majority, quorum) is implemented here.

03

Voting Strategy & Quorum

This module defines how votes are counted and what constitutes a valid outcome. It's often a separate contract referenced by the Governor.

  • Voting Strategies: Implement COUNTING_MODE() returning support=bravo&quorum=for,abstain. This determines if votes are counted per proposal or per voter.
  • Quorum Logic: A critical security parameter. Can be a fixed number, a percentage of total supply, or dynamic based on past participation (e.g., Compound's quorum ramp).
  • Vote Types: Support for For, Against, and Abstain, with configurable weight for each.

Misconfigured quorum is a common failure point, leading to low participation attacks.

05

Front-end & Indexing Integration

The system is unusable without a way to query proposals and voter status. This requires off-chain infrastructure.

  • The Graph Subgraph: Indexes on-chain events (ProposalCreated, VoteCast) to provide fast queries for proposal lists, voter history, and real-time status.
  • Front-end Libraries: Use wagmi and ConnectKit or RainbowKit to interact with the Governor contract, delegate tokens, and cast votes from a dApp.
  • Snapshot Integration (Optional): For gas-free signaling votes, you can use the Snapshot protocol with a custom strategy that reads on-chain token balances.

Without proper indexing, discovering active proposals becomes a manual blockchain scan.

06

Security & Upgradeability

Governance contracts control treasury funds, making security paramount.

  • Audits: Essential. Major systems like OpenZeppelin Governor have undergone multiple audits.
  • Upgrade Patterns: Use a Transparent Proxy or UUPS pattern for the Governor contract to fix bugs or adjust quorum without migrating tokens.
  • Emergency Controls: Consider a guardian role with limited powers (e.g., pausing proposals) as a circuit-breaker, or a veto multisig for critical vulnerabilities.
  • Simulation: Use Tenderly or a forked mainnet test to simulate proposal execution before going live.

Assume the contract will be attacked and design defense-in-depth layers.

implementing-delegation-logic
IMPLEMENTING DELEGATION LOGIC

How to Architect a Delegated Voting System for AI Governance

A technical guide to designing a secure and efficient delegation mechanism for on-chain AI governance, using modular smart contract patterns.

Delegated voting is a cornerstone of scalable on-chain governance, allowing token holders to delegate their voting power to experts or representatives. In the context of AI governance, this is critical for making informed decisions on model upgrades, parameter adjustments, and treasury allocations. The core architectural challenge is designing a system that is non-custodial, transparent, and resistant to manipulation, while allowing for flexible delegation strategies. A well-architected system separates the delegation registry from the voting logic itself, enabling modular upgrades and cross-protocol compatibility.

The foundation is a delegation registry contract that maps user addresses to their chosen delegate. A basic Solidity implementation stores a simple mapping: mapping(address => address) public delegates;. Users interact with a delegate(address to) function that updates their delegation. Crucially, the contract should implement a pull-over-push pattern for state updates to save gas and prevent reentrancy; the delegate's voting power is calculated on-demand by the voting contract by iterating through delegators, rather than being pushed and stored on every delegation change.

For AI governance, you must handle vote weight calculation. A user's voting power is typically their token balance plus the balance of all addresses that delegate to them. This requires the voting contract to query the token's balance for each delegator. To optimize this for gas efficiency, consider implementing a snapshot mechanism using a merkle tree or a dedicated snapshot contract that records balances at a specific block number, preventing manipulation during the voting period. Libraries like OpenZeppelin's ERC20Votes provide a standard pattern for this.

Advanced delegation features include partial delegation (splitting votes among multiple delegates) and delegation with parameters (delegating only for specific proposal types or AI model categories). This can be implemented by extending the registry to store a list of delegates with associated weights or topic flags. Security is paramount: ensure the system guards against self-delegation loops and implements a timelock or cool-down period for changing delegates to prevent last-minute vote swinging.

Finally, integrate the delegation system with your governance proposal contract. When a vote is cast, the contract must calculate the delegate's total voting power by summing their own balance and the balances of their delegators from the snapshot. Use established standards like Governor Bravo or build upon a modular framework like OpenZeppelin Governor to handle proposal lifecycle, quorum, and vote tallying. This separation of concerns keeps the system upgradeable and auditable. Always test delegation logic extensively using forked mainnet simulations to capture edge cases.

ARCHITECTURAL PATTERNS

Delegation Model Comparison

A comparison of core delegation mechanisms for implementing AI governance voting systems.

FeatureDirect DelegationLiquid DelegationCommittee-Based Delegation

Vote Weight Transfer

Delegation Token (NFT/ERC-20)

Delegator Override Capability

Real-time Vote Power Updates

Default Quorum Requirement

50% of stake

33% of stake

66% of committee

Typical Slashing Condition

Inactivity

Malicious Voting

Breach of mandate

Avg. Finality Time (Epoch)

3-7 days

1-3 days

1 day

Implementation Complexity

Low (e.g., Compound)

High (e.g., ENS)

Medium (e.g., Aave)

integrating-expert-stewards
IMPLEMENTATION GUIDE

Architecting a Delegated Voting System for AI Governance

A technical guide to designing and implementing a delegated voting system that integrates expert stewards for responsible AI governance.

A delegated voting system for AI governance enables token holders to delegate their voting power to trusted experts, or stewards, who vote on proposals on their behalf. This model, inspired by systems like Compound's Governor and Uniswap's delegation, is crucial for aligning complex, high-stakes AI decisions with specialized knowledge. The core architecture involves three primary smart contracts: a voting token (e.g., an ERC-20 or ERC-1155 with voting extensions), a delegation registry to track delegate relationships, and a governor contract that manages proposal lifecycle and tallies votes based on delegated balances. This separation of concerns ensures modularity and security.

The delegation mechanism is the system's backbone. Instead of a simple token transfer, delegation is a permissionless call where a user assigns their voting power to another address. The delegation registry maps delegator -> delegatee and must efficiently calculate the voting power of any delegatee by summing the balances of all their delegators. For gas efficiency, many implementations use a snapshot mechanism, where voting power is recorded at a specific block number per proposal, preventing manipulation via "delegation flash loans." Critical functions include delegate(address to), getVotes(address account, uint256 blockNumber), and delegates(address account).

Expert stewards are typically represented by on-chain addresses controlled by individuals or multisig wallets (like Safe) for collective responsibility. The governor contract's proposal logic must be carefully designed to handle AI-specific parameters, such as model deployment thresholds, training data usage policies, or bias mitigation requirements. Voting options often extend beyond simple "For/Against" to include weighted voting or quadratic voting to prevent whale dominance. The contract must also enforce a timelock period between a proposal's passage and execution, allowing for a final review—a critical safety feature for irreversible AI actions.

Implementing this requires a secure development lifecycle. Start with established frameworks like OpenZeppelin Governor for a battle-tested base, extending it with custom logic for delegation and AI-specific voting. Thorough testing with tools like Hardhat or Foundry is non-negotiable; simulate attack vectors such as vote duplication, delegation griefing, and flash loan exploits. After audits, a phased rollout on a testnet (like Sepolia) with a bug bounty program is recommended. Key resources include the OpenZeppelin Governance documentation and the Compound Governor Bravo audit reports for reference on secure patterns.

Successful integration depends on off-chain components. A transparent steward dashboard is essential for delegators to monitor their delegate's voting history and rationale. Platforms like Tally or Boardroom can be forked or integrated. Furthermore, establishing clear social accountability for stewards—through forums like Commonwealth or Discourse—complements the on-chain system. The final architecture creates a feedback loop: on-chain votes execute decisions, while off-chain discourse informs future proposals, creating a resilient and knowledgeable governance layer for steering AI development.

tracking-delegate-performance
ARCHITECTURE GUIDE

On-Chain Delegate Performance Tracking

This guide details the technical architecture for building a delegated voting system with transparent performance metrics, essential for AI governance and DAO operations.

A delegated voting system for AI governance shifts decision-making from a direct democracy model to a representative one, where token holders delegate their voting power to specialized delegates. The core smart contract architecture must manage three primary states: the delegate registry mapping voters to their chosen representative, a proposal and voting engine to execute decisions, and a performance ledger that immutably records each delegate's actions and outcomes. This ledger is the foundation for performance tracking, storing every vote cast, proposal authored, and delegation change in a queryable on-chain history.

To track performance effectively, the system must define and calculate key metrics on-chain. Essential metrics include voting participation rate (votes cast vs. opportunities), constituent alignment (how often a delegate's vote matches their delegators' later expressed sentiment), proposal success rate, and delegated voting power over time. These calculations should be performed in a gas-efficient manner, often using off-chain indexers like The Graph to aggregate data and serve it via a subgraph, while keeping critical verification logic, like tallying final votes, on-chain.

Implementing this requires specific smart contract patterns. For the delegation registry, consider a simple mapping like mapping(address => address) public delegateOf. For vote tracking, each proposal contract can emit a structured event such as VoteCast(address indexed delegate, uint proposalId, bool support). A crucial upgrade is to implement a delegate contract pattern, where delegates are not simple EOAs but smart contract wallets (like a Safe). This allows for programmable voting strategies, automatic execution of pre-committed policies, and richer on-chain attestations to their decision-making logic.

Transparency is achieved by making all performance data publicly verifiable. The historical ledger allows any voter to audit their delegate's record. Furthermore, integrating with on-chain credential platforms like Ethereum Attestation Service (EAS) enables delegates to earn verifiable attestations for positive actions, such as successful proposals or high constituent alignment. These attestations become portable reputation tokens that delegates can carry across different governance platforms, creating a composable reputation layer for Web3.

Finally, the system must include mechanisms for delegation withdrawal and slashing. Voters should be able to re-delegate or self-delegate at any time, with the contract instantly updating voting power allocations. In more advanced systems, a slashing condition can be coded to automatically reduce a delegate's voting power for proven malicious acts, such as double-voting or violating a pre-signed commitment. This combination of transparent tracking, portable reputation, and enforceable accountability creates a robust foundation for scalable, informed AI governance.

DEVELOPER FAQ

Frequently Asked Questions

Common technical questions and solutions for architects building delegated voting systems for on-chain AI governance.

A standard DAO typically uses token-weighted voting on specific proposals. A delegated AI governance system introduces an additional abstraction layer where voters delegate their voting power to AI Agents or specialized delegates who make decisions autonomously based on pre-defined logic or machine learning models. The key architectural components are:

  • Vote Delegation Registry: A smart contract mapping token holders to their chosen AI Agent delegate.
  • Agent Execution Environment: A secure, verifiable environment (like an EigenLayer AVS or a dedicated co-processor network) where the agent's decision logic runs.
  • On-Chain Attestation: The agent's vote decision must be cryptographically signed and submitted as a transaction, often via a relayer to manage gas.
  • Temporal Decoupling: Voting power is delegated for a period or specific policy domain, not per proposal, enabling continuous, automated governance.

This shifts the consensus mechanism from human deliberation to delegated algorithmic execution, requiring robust slashing conditions for malicious agent behavior.

security-considerations
SECURITY AND ATTACK VECTORS

How to Architect a Delegated Voting System for AI Governance

Designing a secure delegated voting system is critical for decentralized AI governance. This guide covers key architectural decisions and security considerations to prevent common attack vectors.

A delegated voting system, or liquid democracy, allows token holders to vote directly or delegate their voting power to representatives. In AI governance, this model is used to make decisions on model parameters, training data inclusion, or protocol upgrades. The core smart contract architecture typically involves a Voting contract that manages a registry of delegates, tracks delegated voting power, and tallies votes on proposals. Key state variables include a mapping from voter to delegate and a record of each delegate's accumulated voting weight. This separation of vote custody from voting execution is the primary source of both flexibility and security risk.

Several critical attack vectors must be mitigated in the design phase. Sybil attacks occur when an attacker creates many identities to gain disproportionate influence; this is countered by linking voting power to a scarce resource like a governance token. Delegate collusion happens when delegates form cartels to control outcomes; mitigation strategies include vote delegation limits and transparent delegate platforms. The nothing-at-stake problem arises if delegates can vote on multiple conflicting proposals without cost; enforcing lock-up periods for delegated tokens can align incentives. Flash loan attacks allow borrowing massive, temporary voting power; implementing a time-weighted snapshot of token balances before each proposal prevents this.

Implement secure vote delegation with checks on state changes. The delegate function should prevent self-delegation loops and update voting power correctly. Use a pull-over-push pattern for state updates to avoid gas limit issues during vote tallying.

solidity
function delegate(address to) external {
    require(to != msg.sender, "Cannot delegate to self");
    require(to != address(0), "Delegate cannot be zero address");
    
    address currentDelegate = delegates[msg.sender];
    uint256 senderVotes = getVotes(msg.sender);
    
    // Update the delegate
    delegates[msg.sender] = to;
    
    // Move voting power from old delegate to new delegate
    _moveVotingPower(currentDelegate, to, senderVotes);
    
    emit DelegateChanged(msg.sender, currentDelegate, to);
}

Vote tallying must be resistant to manipulation. Calculate voting power based on a historical snapshot (e.g., block number) taken when a proposal is created, not at the time of casting. This prevents last-minute vote buying or flash loan exploits. Use the Compound Governor pattern, which stores a proposalSnapshot block number. The getVotes function then reads the account's balance from that past block using a snapshot mechanism like ERC20Votes. Ensure the voting period is sufficiently long to allow delegates to review proposals but short enough to maintain agility. A common range is 3-7 days for AI governance proposals, which may require technical evaluation.

For AI-specific governance, consider quadratic voting or conviction voting to reduce whale dominance and measure sustained preference. Integrate a delay-execute pattern for proposals that change critical AI model parameters; after a vote passes, a timelock enforces a waiting period before execution, allowing users to exit if they disagree with the change. Use decentralized oracle networks like Chainlink to verify off-chain conditions for proposals, such as whether a model has achieved a certain benchmark score. Always conduct audits on the full system, focusing on the interaction between the voting contract, token contract, and any timelock controller. Reference established implementations from OpenZeppelin Governor and Aragon OSx for secure base templates.

conclusion
ARCHITECTURAL SUMMARY

Conclusion and Next Steps

This guide has outlined the core components for building a secure, transparent, and efficient delegated voting system for on-chain AI governance. The next steps involve implementing these patterns and exploring advanced features.

We've established a foundational architecture for a delegated voting system. The core components are a VoteToken contract for delegation, a VotingSession contract to manage proposals and tally votes, and an optional TallyModule for complex vote aggregation. Using a pull-over-push pattern for vote claiming and a check-effects-interactions pattern for state changes are critical for security and gas efficiency. For production, you must integrate with a decentralized oracle like Chainlink Functions or Pyth for secure, trust-minimized execution of off-chain AI model inferences that trigger governance proposals.

To move from a prototype to a production system, several key enhancements are necessary. First, implement a timelock controller (e.g., OpenZeppelin's TimelockController) to queue successful proposals, preventing malicious or rushed execution. Second, integrate a snapshot mechanism for gasless voting, allowing token holders to sign votes off-chain which are then verified on-chain; libraries like Snapshot X or OpenZeppelin's EIP-712 signatures can facilitate this. Finally, rigorous testing with frameworks like Foundry or Hardhat is essential, including fuzz tests for delegation logic and fork tests against live networks.

The long-term evolution of AI governance will likely involve more sophisticated mechanisms. Explore quadratic voting to reduce whale dominance, conviction voting for measuring sustained support over time, and futarchy for using prediction markets to inform decisions. Interoperability is also key; consider making your voting system compatible with EIP-5805 (Delegation Manager) and EIP-6372 (Clock) for cross-application consistency. Continuous auditing and bug bounty programs are non-negotiable for maintaining the integrity of a system governing potentially high-stakes AI actions.

How to Architect a Delegated Voting System for AI Governance | ChainScore Guides