Continuing with our work exploring quantitative analyses of Decentralized Autonomous Organizations (DAOs), I explored voter agreement networks (VAN).
Specifically, I explored VANs in Radicle (i.e., Radworks) DAO.
Here, a VAN is defined as a graph where the nodes represent voters, and the edges represent agreement between voters (i.e., making the same choice) on a proposal [1].
The edge weights are set to the number of times voters agreed on proposals.
By examining the VAN, we can potentially determine communities of like-minded (in the sense that they have the same or similar voting behavior) voters, i.e., voting blocs, that are present in a DAO.
I collected data on votes on Radicle proposals via Boardroom’s Governance API. The Proposal Votes dataset (PVD) contains each voter (i.e., token holder) who voted on a proposal.
I collected PVD on May 27th, 2024.
PVD only included voters who voted on a proposal. Thus, PVD may not include all Radicle token holders.
Under the choice field, 0.0 represents no, and 1.0 represents yes.
I replaced choice 0.0 with -1.0 to better show when a voter chose no on a proposal.
The majority of proposal choices were yes and no.
I analyzed PVD to find total voter agreement and disagreement, and the count of agreements between voters.
I constructed two VANs based on PVN.
The first VAN included all voters with at least one agreement with another voter (1-VA), while the second VAN includes all voters with at least five (5) agreements with another voter (5-VA).
I determined if there were any communities in 1-VA and 5-VA by applying the Louvain community detection algorithm via the NetworkX python library.
I visualized 1-VA and 5-VA with the Gravis python library, for both prior- and posterior-application of the Louvain community detection algorithm.
This table shows how often two voters agreed on proposals.
The table below shows how often voters agreed and disagreed.
Type | Count |
---|---|
Agree | 2729 |
Disagree | 129 |
This table shows how often a voter had an agreement with another voter.
This table shows how often a voter had an agreement with another voter.
Analysis | 1-VA | 5-VA |
---|---|---|
Louvain Community Detection | 4 communities | 3 communities |
For 1-VA, I detected four (4) communities via the Louvain community detection algorithm, and for 5-VA, I detected three (3) communities via the Louvain community detection algorithm.
Adding voting power as an attribute to voters for node size;
Determine an appropriate threshold for voter agreement count;
Applying the Leiden algorithm for community detection; and
Improving my understanding of voting blocs and their implications for governance, especially regarding power distribution.
I am seeking feedback on this pub for any improvements to make, errors to correct, or other areas to explore.
Please leave your feedback here, on the Ledgerback discussion forum, or on Twitter.