Skip to main content

Exploring Voter Agreement Networks in Radicle

Published onJul 03, 2024
Exploring Voter Agreement Networks in Radicle
·

Introduction

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.

Background

What is a Voter Agreement Network?

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.

Methods

Data Collection

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.

Proposal Votes

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.

Data Analysis

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.

Results

Overall

Agreement Count per Voter

This table shows how often two voters agreed on proposals.

Agree v. Disagree

The table below shows how often voters agreed and disagreed.

Type

Count

Agree

2729

Disagree

129

1-VA

Connections per Voter

This table shows how often a voter had an agreement with another voter.

Visualization prior to community detection

Static

Visualization posterior to community detection

5-VA

Connections per Voter

This table shows how often a voter had an agreement with another voter.

Visualization prior to community detection

Visualization posterior to community detection

Community Detection

Analysis

1-VA

5-VA

Louvain Community Detection

4 communities

3 communities

Findings

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.

Future Directions

  1. Adding voting power as an attribute to voters for node size;

  2. Determine an appropriate threshold for voter agreement count;

  3. Applying the Leiden algorithm for community detection; and

  4. Improving my understanding of voting blocs and their implications for governance, especially regarding power distribution.

Request for Comments

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.

Contact Information

  1. Twitter

Comments
0
comment
No comments here
Why not start the discussion?