Vote-buying in decentralized governance occurs when a voter's decision is directly influenced by a financial incentive outside the protocol's native reward mechanism. This undermines the integrity of the voting process by prioritizing short-term profit over the project's long-term health. Detecting these patterns requires analyzing on-chain data for transactions that correlate voting behavior with external payments. Unlike simple delegation or bribery-resistant mechanisms like conviction voting, vote-buying is often covert and requires a heuristic-based detection framework to identify suspicious patterns across wallets and transactions.
How to Implement a Vote-Buying Detection Framework
How to Implement a Vote-Buying Detection Framework
A technical guide for developers on building systems to identify and mitigate illicit vote-buying in on-chain governance.
The core of a detection system is a set of heuristics that flag potentially illicit behavior. Key signals to monitor include: - Token transfers from a proposal creator or beneficiary to voters before a vote. - Flashloan-funded voting where large voting power is borrowed, used, and returned. - Sybil clustering where many small wallets with similar voting patterns receive funds from a common source. - Timing analysis linking vote casts to subsequent airdrops or NFT transfers. These heuristics must be tuned to minimize false positives from legitimate activities like gas reimbursement or delegate compensation.
To implement detection, start by indexing relevant on-chain events. For an Ethereum-based DAO, you would track VoteCast events from the governance contract (e.g., Compound's Governor Bravo) and Transfer events for the governance token and any suspected payment tokens. Using a subgraph or a custom indexer, create a database linking voter addresses, proposal IDs, vote direction, and timestamps. Correlate this with transfer events in a defined time window (e.g., 72 hours before or after the vote) to build a graph of potential vote-payment relationships.
Here is a simplified Python pseudocode example for a basic correlation check:
python# Pseudo-code for correlating votes and transfers def detect_vote_buying(vote_event, transfer_events, time_window=86400): suspicious_pairs = [] for transfer in transfer_events: if abs(transfer.timestamp - vote_event.timestamp) < time_window: if transfer.to == vote_event.voter: # Flag if transfer is from a proposal beneficiary if transfer.from_ in get_proposal_beneficiaries(vote_event.proposal_id): suspicious_pairs.append({ 'voter': vote_event.voter, 'payer': transfer.from_, 'amount': transfer.value, 'proposal': vote_event.proposal_id }) return suspicious_pairs
This logic checks for payments to voters from parties that directly benefit from a proposal's outcome.
After identifying suspicious correlations, the next step is risk scoring. Not every transfer is malicious; you must assign weights based on heuristic confidence. A large, direct transfer from a beneficiary is high-risk. A small, indirect transfer through a mixer is lower confidence. Aggregate scores per voter and proposal to surface the most likely incidents. Tools like The Graph for indexing and Dune Analytics for initial query prototyping are invaluable. For production systems, consider open-source detectors like OpenZeppelin's Defender Sentinel to create automated monitoring and alerts.
Finally, integrate detection into a governance workflow. Flags can trigger: - Enhanced scrutiny requiring higher delegation thresholds. - On-chain challenges using a schelling point system like UMA's optimistic oracle to dispute votes. - Retroactive punishment via slashing in systems with bonded voting. The goal is deterrence, not just detection. Publishing methodology and aggregate statistics (while protecting privacy) increases transparency. As vote-buying tactics evolve, continuously update heuristics and collaborate with security researchers through bug bounties to keep the governance process secure.
How to Implement a Vote-Buying Detection Framework
This guide outlines the technical foundation required to build a system that detects and analyzes vote-buying patterns in on-chain governance.
Before writing detection logic, you must establish a reliable data pipeline. The core prerequisite is access to historical and real-time blockchain data. For Ethereum-based DAOs, you will need an archive node (e.g., Geth, Erigon) or a dedicated RPC provider like Alchemy or Infura with archive capabilities. This is essential for querying past voting events, token transfers, and proposal states. You should also be familiar with the specific governance smart contracts (like Governor Bravo or OpenZeppelin's Governor) to understand their event signatures and state-changing functions.
Your development environment should include Node.js (v18+) or Python 3.10+, along with essential libraries. For JavaScript/TypeScript projects, install ethers.js v6 or viem for contract interaction and axios for API calls. Python developers can use web3.py. You will also need a database to store processed data; PostgreSQL with the TimescaleDB extension is ideal for time-series analysis of voting patterns, while a simpler start can use SQLite. Set up a project structure that separates data ingestion, analysis modules, and alerting systems.
The detection framework hinges on analyzing specific on-chain relationships. You must programmatically track: (1) Delegation events (DelegateChanged), (2) Vote casts (VoteCast), and (3) Token transfers (Transfer) to and from voters around proposal timelines. A critical setup step is creating a local registry of governance token addresses and their corresponding governor contracts. For multi-chain analysis, you will need to replicate this setup for each chain (e.g., setting up providers for Polygon, Arbitrum) and normalize data across different contract ABIs.
Implementing the core detection logic requires defining heuristic patterns. Code a module to flag suspicious activity, such as large token inflows to a voting address immediately before a proposal's snapshot block, followed by a vote and an outflow. Calculate metrics like the ratio of voting power to historical average balance. Use the eth_getLogs RPC method with block range filters to efficiently fetch relevant events. Always test your queries on a testnet or a forked mainnet environment using tools like Hardhat or Anvil before running on live data.
Finally, establish an output and monitoring system. Detection results should be logged structured (JSON format) and can be sent to a dashboard, a Discord webhook, or an alerting service. Consider implementing a simple scoring system where each suspicious pattern adds to a "risk score" for a given vote. For ongoing maintenance, schedule your data ingestion scripts using cron jobs or a task queue like Celery. Remember to monitor your RPC provider's rate limits and implement error handling for reorgs and missed blocks.
How to Implement a Vote-Buying Detection Framework
This guide outlines a practical framework for detecting on-chain vote-buying by analyzing transaction patterns, token flows, and governance contract interactions.
Vote-buying on-chain typically manifests through observable financial incentives tied to governance actions. The core mechanism involves a voter receiving a payment—often in a stablecoin or a project's native token—in exchange for casting a specific vote. This creates a clear, on-chain link: a transfer of value to a voter's address followed by that address submitting a vote transaction. To detect this, you must analyze sequences of transactions within a defined time window around a governance proposal's voting period, looking for anomalous patterns that deviate from organic voter behavior.
Building a detection framework starts with data ingestion. You need to index transactions for the relevant governance token and the proposal's voting contract. Using a node provider like Alchemy or QuickNode, you can query for all VoteCast events. Simultaneously, track all Transfer events for major payment tokens (USDC, USDT, WETH) and the governance token itself to and from the voting addresses. A simple Python script using Web3.py can batch these event calls. The key is to create a timeline for each voter, mapping incoming payments to their subsequent voting actions.
The analysis phase focuses on identifying suspicious correlations. Look for transactions where the value received by a voter exceeds a threshold (e.g., more than the gas cost by 10x) and occurs within a short timeframe (e.g., 24-48 hours) before their vote. Cluster voters who received payments from the same funding source and voted identically. Calculate the percentage of voters in a proposal whose behavior fits this pattern—a sudden spike can signal coordinated vote-buying. Tools like Dune Analytics or Flipside Crypto are useful for prototyping these SQL-based analyses on indexed blockchain data.
For deeper investigation, examine the smart contract interactions themselves. Sophisticated vote-buying may use bribery vaults or vote escrow contracts that programmatically release funds upon verification of a vote. Analyze contract creations and call data preceding the vote. Look for interactions with known bribery marketplaces or the deployment of new, simple contracts that act as payment routers. Monitoring the funding sources—especially if they originate from a decentralized exchange swap or a Tornado Cash withdrawal—adds crucial context to the financial trail.
Implementing this framework requires setting alert thresholds. You might flag an address that receives a payment and votes within 5 blocks, or a proposal where >15% of the voting power comes from addresses that received fresh funds. These rules should be tuned per governance system, as norms differ. Continuously validate your model's outputs against known cases, such as the Curve gauge weight bribery incidents. Open-source your detection logic to benefit from community scrutiny and improvement, enhancing the E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) of your findings.
Finally, consider the limitations. This on-chain analysis cannot detect off-chain agreements or vote-buying disguised as legitimate liquidity mining rewards. It's one component of a broader monitoring system. For production use, integrate this framework with on-chain monitoring tools like Forta Network, which can run your detection logic as real-time agents. This creates a scalable system for alerting protocol teams and the community to potential governance manipulation as it happens, fostering more secure and transparent decentralized decision-making.
Data Sources and Analysis Tools
A practical guide to the on-chain data sources, analytical frameworks, and open-source tools needed to identify and analyze potential vote-buying in decentralized governance.
Analytical Frameworks & Metrics
Transform raw data into actionable signals using these analytical approaches:
- Voting Power Concentration: Measure the Gini coefficient or Herfindahl-Hirschman Index (HHI) of votes per proposal.
- Vote Timing & Coordination: Analyze if votes from disparate addresses are cast in tight temporal clusters.
- Token Flow Analysis: Use common input ownership heuristics (e.g., detecting funded-by-same-EOA patterns) to link wallets.
- Delegation Swings: Flag large, last-minute delegations to specific addresses before a snapshot.
Building a Detection Bot
A step-by-step approach to creating an automated monitor:
- Data Ingestion: Use an Ethers.js script with a provider to listen for
VoteCastevents from the governance contract. - Heuristic Engine: Apply rules (e.g., "vote weight > 1% of supply AND wallet funded < 24h ago").
- Alerting: Integrate with Discord/Telegram webhooks or PagerDuty for real-time notifications.
- Example: A bot tracking Compound Governance could flag if a wallet receiving 50,000 COMP from a new exchange deposit immediately delegates it all and votes.
Limitations & Ethical Considerations
Understanding what your framework cannot detect is crucial.
- Privacy-Preserving Tech: Votes via zk-SNARKs (e.g., Aztec) or Tornado Cash deposits obscure fund origins.
- Off-Chain Coordination: Signals like forum discussions or social media bribes are not on-chain.
- False Positives: Legitimate last-minute voter mobilization can look like manipulation. Always include a manual review layer.
- Transparency vs. Privacy: Detection tools should aim for ecosystem health, not voter doxxing.
Step 1: Monitor Token Transfers to Delegates
The first step in detecting vote-buying is establishing a robust data pipeline to track all token transfers to known delegate addresses. This forms the foundational dataset for behavioral analysis.
Vote-buying in token-governed DAOs often involves the transfer of assets—typically the governance token itself or a stablecoin—to a delegate's wallet address in exchange for their voting power. To detect this, you must first programmatically collect all on-chain transfers to a curated list of delegate addresses. This requires querying a blockchain indexer like The Graph, an RPC node with archival data, or a specialized data provider such as Dune Analytics or Flipside Crypto. The goal is to build a historical and real-time feed of Transfer events where the to address matches a delegate on your watchlist.
Your delegate list should be dynamic and sourced from the protocol's governance contracts. For example, in Compound Governance, you can query the DelegateChanged event from the Governor Bravo contract to get the current delegate for any token holder. For Uniswap, you would monitor the DelegateChanged event from the UNI token contract. Maintaining this list programmatically ensures you track all active delegates, not just well-known ones. Store this data in a time-series database (e.g., PostgreSQL, TimescaleDB) with fields for block_number, transaction_hash, from, to, value, token_address, and timestamp.
A critical implementation detail is filtering for relevant tokens. Monitoring transfers of the native governance token (e.g., UNI, COMP) is essential, but vote-buying can also occur via stablecoins (USDC, DAI) or even NFTs. Your detection logic should allow for a configurable list of token addresses to monitor. When processing Transfer events from ERC-20 contracts, remember that the value field is raw units; you must apply the token's decimals for accurate amounts. For bulk analysis, consider using Multicall contracts to batch RPC requests for efficiency.
Here is a simplified Python example using Web3.py to fetch recent transfers to a delegate address from an ERC-20 contract, which you could run as a scheduled task:
pythonfrom web3 import Web3 w3 = Web3(Web3.HTTPProvider('YOUR_RPC_URL')) token_contract = w3.eth.contract(address='0xTokenAddress', abi=ERC20_ABI) delegate_address = '0xDelegateAddress' event_filter = token_contract.events.Transfer.create_filter(fromBlock='latest', toBlock='latest', argument_filters={'to': delegate_address}) transfers = event_filter.get_all_entries() for event in transfers: value = event['args']['value'] / (10 ** 18) # Adjust for decimals print(f"Transfer of {value} tokens from {event['args']['from']} to delegate.")
Finally, establish a real-time alerting system for large or anomalous transfers. Set thresholds based on the delegate's typical activity or the token's circulating supply. A sudden transfer of 50,000 UNI to a delegate who usually receives small tips is a high-signal event worth flagging. This raw transfer data is not proof of vote-buying, but it creates the essential input for the next steps: correlating these transfers with voting patterns and analyzing the timing around governance proposals. Without comprehensive monitoring, subsequent analysis will have significant blind spots.
Step 2: Analyze Voting Pattern Anomalies
This step focuses on identifying suspicious voting behaviors by analyzing on-chain data for statistical deviations from expected patterns.
The core of a vote-buying detection framework is identifying statistical anomalies in voting data. This involves moving beyond simple vote counts to analyze the temporal, financial, and social patterns of voting activity. Key metrics to examine include the timing of votes relative to proposal deadlines, the concentration of voting power from new or inactive wallets, and the correlation between voting direction and token transfers. By establishing a baseline of 'normal' voting behavior for a specific DAO, you can flag deviations that warrant deeper investigation.
A primary red flag is sybil voting, where a single entity controls multiple wallets to amplify their influence. Detection involves clustering addresses based on funding sources (common deposit addresses), transaction patterns, and on-chain interactions. Tools like the Ethereum ERC-20 MultiTransfer pattern can reveal bulk token distributions to hundreds of addresses preceding a vote. Analyzing the from and to fields in these transactions helps map potential voter networks. The Nansen Wallet Profiler and Chainalysis Storyline are commercial tools that automate parts of this clustering analysis.
To implement a basic check, you can query a blockchain indexer like The Graph or Covalent. For example, to find wallets that received tokens from a common source and then voted on a specific Snapshot proposal, your query would join transfer events with vote events within a defined time window. The pseudocode logic is: SELECT voter, COUNT(DISTINCT proposal_id) FROM votes WHERE voter IN (SELECT recipient FROM transfers WHERE sender = '0xSuspicious' AND timestamp > proposal_start_time). This identifies voters funded by a suspicious address.
Another critical anomaly is voting consistency anomalies. Legitimate voters typically exhibit varied preferences across different proposal types (e.g., treasury management vs. protocol upgrades). A cluster of addresses that votes identically on every proposal, especially with high capital weight, may indicate coordinated vote-buying. Calculate the Jaccard Similarity Index or Hamming distance between voters' binary vote vectors (For/Against) across multiple proposals to quantify this uniformity. A score approaching 1.0 for a large group is a strong signal.
Finally, integrate these anomaly scores into a risk dashboard. Assign weighted scores to different signals: sybil clustering (weight: 0.4), temporal concentration (0.3), and voting uniformity (0.3). A proposal with a composite risk score above a defined threshold (e.g., 0.7) should trigger an alert for manual review by governance stewards. This systematic approach transforms raw on-chain data into actionable intelligence for securing DAO governance.
Step 3: Integrate Off-Chain Signal Monitoring
This section details how to build a monitoring system that analyzes off-chain data to identify potential vote-buying activity before it influences on-chain governance.
On-chain analysis alone is insufficient for detecting sophisticated vote-buying. Attackers often coordinate and exchange value on private channels like Discord, Telegram, or through off-chain agreements. An effective detection framework must ingest and analyze signals from these off-chain sources. This involves monitoring social sentiment, forum discussions, and communication channels for patterns that correlate with sudden, anomalous voting behavior. For example, a surge in discussion about a specific proposal, coupled with promises of future rewards, is a strong off-chain signal.
To implement this, you need to set up data collectors for key platforms. Use the Discord API and Telegram Bot API to scrape public channels and groups. For forum data (like Commonwealth or Discourse), utilize their public REST APIs. The goal is to capture text, user mentions, proposal IDs, and timestamps. A simple Python script using aiohttp for asynchronous requests can poll these sources. It's critical to respect rate limits and store raw data in a time-series database like TimescaleDB for temporal analysis.
Once data is collected, apply Natural Language Processing (NLP) techniques to extract signals. Use a pre-trained model like all-MiniLM-L6-v2 from the sentence-transformers library to generate embeddings for text snippets. You can then cluster similar discussions or detect spikes in topic frequency. Look for keywords and phrases associated with bribery: "reward for votes," "delegation incentive," "payment after snapshot." Combine this with on-chain data—like new token delegations or sudden voting weight changes—to correlate off-chain chatter with on-chain action.
The final component is an alerting system. When your NLP pipeline identifies a high-confidence signal of potential vote-buying, it should trigger an alert. This can be a message to a security channel, an entry in a dashboard, or an automated report. The alert should include the off-chain evidence (e.g., "Discord message link"), the correlated on-chain addresses or proposals, and a risk score. This gives governance participants time to investigate before a vote is finalized. Open-source tools like The Graph for on-chain indexing and Elasticsearch for log analysis can form the backbone of this system.
Comparison of Detection Heuristics and Their Efficacy
A comparison of common on-chain heuristics for identifying potential vote-buying, including their detection rate, false positive rate, and implementation complexity.
| Heuristic / Metric | Sybil Cluster Analysis | Token Flow Correlation | Voting Pattern Anomaly | Social Graph Analysis |
|---|---|---|---|---|
Primary Detection Signal | Clusters of wallets with similar funding sources and voting history | Correlated token transfers from a single entity to multiple voters pre-proposal | Identical voting weight distribution across unrelated proposals | Analysis of off-chain social connections and on-chain coordination |
Typical False Positive Rate | 5-15% | 8-20% | 10-25% | 15-30% |
Estimated Detection Coverage | High (70-85%) | Medium (50-65%) | Low (30-45%) | Medium-High (60-75%) |
Data Requirements | Historical voting and funding data for all addresses | Full transaction history for proposal voters and known entities | Voting records across multiple DAO proposals | Combined on-chain data and off-chain social metadata |
Implementation Complexity | High | Medium | Low | Very High |
Real-Time Detection Capability | ||||
Effectiveness Against Collusion | ||||
Examples (Protocols) | Snapshot, Tally | Compound, Aave | Uniswap, Arbitrum DAO | Gitcoin Grants, Optimism |
How to Implement a Vote-Buying Detection Framework
A technical guide to building automated systems that identify and mitigate on-chain vote-buying in decentralized governance.
Vote-buying detection frameworks analyze on-chain data to identify patterns where voting power is systematically influenced by financial incentives, such as direct token transfers, liquidity provision rewards, or staking bonuses tied to specific governance outcomes. The core challenge is distinguishing legitimate delegation and participation from coordinated manipulation. A robust framework typically monitors three primary data streams: token transfer flows into delegate wallets before a vote, delegate voting history for consistency, and correlations between financial transactions and specific proposal support. Tools like The Graph for indexing and Dune Analytics for querying are essential for aggregating this data across blocks.
The first implementation step is to define clear heuristics or "risk flags." Common indicators include a delegate receiving a large, one-time transfer from a new address just before voting, a delegate's voting pattern abruptly shifting to align with a single funder, or a cluster of delegates all receiving funds from a common source and voting identically. These rules should be codified. For example, a simple Python script using the Web3.py library can listen for Transfer events to a delegate's address from a snapshot block, then check if that delegate subsequently voted.
pythonfrom web3 import Web3 import json # Connect to an Ethereum node w3 = Web3(Web3.HTTPProvider('YOUR_INFURA_URL')) def monitor_transfers(delegate_address, proposal_snapshot_block): """Check for large transfers to a delegate before a snapshot.""" # ABI for ERC-20 Transfer event transfer_abi = json.loads('[{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]') # Filter logs for transfers TO the delegate in the 100 blocks before snapshot filter_params = { 'fromBlock': proposal_snapshot_block - 100, 'toBlock': proposal_snapshot_block, 'topics': [w3.keccak(text='Transfer(address,address,uint256)').hex(), None, w3.to_hex(w3.to_bytes(hexstr=delegate_address))] } logs = w3.eth.get_logs(filter_params) suspicious_transfers = [] for log in logs: # Decode the log decoded = w3.eth.contract(abi=transfer_abi).events.Transfer().process_log(log) value_eth = w3.from_wei(decoded['args']['value'], 'ether') if value_eth > 1000: # Example threshold: 1000 tokens suspicious_transfers.append({ 'from': decoded['args']['from'], 'value': value_eth }) return suspicious_transfers
For production systems, you must move beyond simple scripts to a scalable architecture. This involves a pipeline: a data ingestion layer (e.g., using Chainstack or QuickNode for reliable node access), a processing engine (Apache Spark or a dedicated indexer) to apply detection logic, and a reporting/alerting module (like a Discord/Slack webhook). The complexity increases when analyzing Delegated Proof-of-Stake (DPoS) chains or liquid staking derivatives, where voting power is inherently fluid. Here, the focus shifts to detecting sudden, large delegations from previously inactive stakers or patterns of "delegation farming" where rewards are split to influence many small delegates.
Finally, integrate your detection framework with governance platforms. For Snapshot, you can use its GraphQL API to fetch proposal and vote data, cross-referencing it with your on-chain analysis. The goal is to generate a risk score for each vote or delegate, which can be displayed on a dashboard or used to trigger governance pauses via a security module. Remember, no system is perfect; false positives are likely. The framework should inform human judgment, not replace it. Continuously refine your heuristics based on community feedback and emerging attack vectors, such as those documented in research from OpenZeppelin and BlockScience.
Resources and Further Reading
Primary tools, datasets, and research sources used to design and validate an onchain vote-buying detection framework. These resources focus on governance mechanics, transaction graph analysis, and empirical attack patterns.
Frequently Asked Questions on Vote-Buying Detection
Common technical questions and troubleshooting steps for implementing a vote-buying detection framework in on-chain governance systems.
Vote-buying is a governance attack where a proposal creator or supporter offers direct financial incentives (like token transfers or NFT airdrops) to voters in exchange for their support. This undermines the integrity of decentralized governance by prioritizing short-term profit over the protocol's long-term health. Detection frameworks analyze on-chain transaction patterns to identify suspicious correlations between proposal votes and subsequent token transfers, often using heuristics like time proximity, transfer amounts, and participant overlap. For example, if 100 addresses that voted "Yes" on a Uniswap proposal each received 0.1 ETH from the same wallet within 24 hours, this would be a strong signal for potential vote-buying.
Conclusion and Next Steps
This guide has outlined the core components for building a vote-buying detection framework. The next step is to integrate these concepts into a functional system.
You now have the foundational knowledge to implement a vote-buying detection framework. The key is to operationalize the detection patterns—like analyzing on-chain transaction flows to governance token holders, monitoring for suspicious flash loan activity preceding a vote, or identifying patterns in delegation changes from low-reputation wallets. Start by building data pipelines using providers like The Graph for indexed event data or directly querying node RPCs for real-time analysis.
For a practical implementation, consider this simplified code structure for a transaction flow analyzer in Python using web3.py. This snippet checks for inbound transfers to a list of voter addresses from a common source within a specified time window before a proposal snapshot.
pythonfrom web3 import Web3 import time def detect_vote_buying_transfers(voter_addresses, proposal_snapshot_block, w3): suspicious_transfers = [] # Scan blocks before the snapshot start_block = proposal_snapshot_block - 100 for block_num in range(start_block, proposal_snapshot_block): block = w3.eth.get_block(block_num, full_transactions=True) for tx in block.transactions: if tx['to'] in voter_addresses and tx['value'] > 0: # Check if sender is a known market maker or suspicious contract suspicious_transfers.append({ 'from': tx['from'], 'to': tx['to'], 'value': w3.fromWei(tx['value'], 'ether'), 'block': block_num }) return suspicious_transfers
Your next steps should focus on systematizing detection and response. First, establish a baseline of normal voting behavior for each protocol to reduce false positives. Integrate with alerting systems like PagerDuty or Discord webhooks to notify governance stewards in real-time. Finally, consider making your framework modular and chain-agnostic; the core logic for analyzing transaction graphs or delegation patterns is similar across EVM chains like Arbitrum, Optimism, and Polygon. Open-source your detection modules to contribute to the ecosystem's security, similar to tools like Forta Network's bot ecosystem for real-time monitoring.
Continuously refine your models. Vote-buying tactics evolve, so incorporate machine learning classifiers to identify novel patterns from your collected data. Partner with DAOs or security researchers to test your framework in a controlled environment. Resources like the OpenZeppelin Defender Sentinel rules or Tenderly's simulation API can be used to build preventive monitoring and test attack scenarios. The goal is to create a transparent, verifiable system that enhances the integrity of on-chain governance without adding unnecessary centralization.