Decentralisation Matters

Hi,

and welcome :wave: to Decentralisation Matters. In this topic I will regularly present the results of analyses that I conduct independently on Cardano blockchain data.

The analyses will be presented with minimal commentary (eg results, but not necessarily strong interpretations): this is so that interested readers can form their own opinions and contribute to discussions here on the Forum.

The queries used to acquire all data, as well as the scripts used to produce the analyses are available on GitHub. Each analysis will be presented separately and will require different datasets and scripts to replicate.

My hope is that interested readers will replicate some of my work to check it, as well as ask their own questions.

:beers: Cheers and happy Cardano analyses!

6 Likes

A slow but steady decrease in Cardano Stake Pools

Here I will take a close look at block production in Cardano since the advent of Shelley (epoch 209) in terms of Stake Pools participating in the protocol. These analyses were conducted independently and cover epochs 209 through to 539, spanning a total of 6,939,060 blocks. Over the total period analysed, 3229 unique Pools participated in the Cardano protocol (minted at least 1 block).

Shelley was launched in epoch 209, after which d was progressively decreased to 0 (reached in epoch 257). This parameter was eventually removed in 2022. When d reached 0, block production moved fully to Community Stake Pools (no more federated block production) (Figure 1).


Figure 1. The effects of the progressive decrease of d can be seen here, helping us identify the cutoff of epoch 257, which will be useful throughout the rest of this analysis.

Having identified this cutoff, let’s look at the trend in the number of Stake Pools participating in the Cardano protocol. Between epochs 209 and 257 the “Shelley Effect” is clearly visible (Figure 2). As d decreases, more and more Community Pools participate in block production, up to 951 Pools in epoch 257.

The maximum number of Pools contributing blocks in any given epoch was reached in epoch 301 (1151 Pools) (Figure 2). The minimum number since d=0 (so after epoch 257, included) was 944 Pools in epoch 342 (Figure 2). To clarify: epochs prior to 257 are not included in the minimum calculation because there was still a contribution of federated blocks, so block production had not fully been delegated to Community Pools yet (Figure 1).


Figure 2. Number of Community Pools contributing blocks to the Cardano blockchain over epochs since the launch of Shelley. The lines of best fit correspond to two separate linear regressions, with a cutoff at epoch 301, when the maximum number of Pools per epoch was reached.

Overall, the number of Pools regularly participating in the Cardano protocol (i.e., producing a block in at least 10% of epochs) was 1849. In the epochs following 257 (when d=0) the average number of Stake Pools contributing blocks in any given epoch was 1089, and in the same period 2919 unique Pools contributed to the blockchain.

Our models, no_pools ~ epoch, capture a good portion of the variability in number of Stake Pools contributing to Cardano (Figure 2). This means that the passing of time (epochs) has an influence over the number of Stake Pools participating in the protocol.

Before epoch 257 we see a quick and steady increase in participating Pools, with our model explaining over 90% of the data distribution (R-squared 0.9037, p<0.001). This is expected, as more and more Pools came online and got to participate thanks to the decrease of d.

Our second model analysed data from epoch 302 onwards (immediately following the peak in contributing Pools seen in epoch 301) (Figure 2). Here, we captured over 26% of the data variability and observed a slow but steady decline in number of participating Pools (R-squared 0.2634, p<0.001).

This latter trend indicates that the system is losing diversity of participating Pools since its peak in epoch 301. The retirement of Stake Pools through time is surely responsible for this trend, at least in part. So, let’s look at retirement of Pools next.

Since Shelley, 5956 Pools have registered. As we have seen in our previous analysis, approximately 54% of these (3229) have, at least once, contributed a block to Cardano. In the same period, 1733 Pools have retired (Figure 3). Retirement of Pools has not been linear: it appears to have peaked in rate around 2021 and to be now plateauing (Figure 3).


Figure 3. Cumulative number of Cardano Stake Pools retiring over time.

The epoch that saw most retirements was 442, with 29 Pools retiring. 287 Pools retired in 2020, 737 in 2021, 347 in 2022, 226 in 2023, 123 in 2024 and 13 so far in 2025 (up to epoch 539).

Overall, the number of retired Pools constitutes 29.1% of those that have ever registered. Of the 1733 retired Pools, 632 have minted at least one block (36.4%). The latter 632 retired Pools have minted in total 372,941 blocks (5.3% of the blocks since Shelley). Further, they represent 19.6% of the Pools with at least one lifetime block. These numbers are quite large and, together with the significant decline in contributing Pools over time, indicate that Pools are being “weeded out”.

Although the number of Stake Pools contributing to the Cardano blockchain seems to be stabilising (around 1000 in each given epoch) (Figure 2), there is a potentially worrisome declining trend. There are surely factors, other than Pool retirement, contributing to this trend: these could include the consolidation of stake into large Pools, as well as an increased influence of known Pool groups. These, and other factors influencing decentralisation of block production in Cardano will be examined in future analyses.

All Koios queries and R scripts for analyses presented here, can be found on GitHub at this link:
https://github.com/adrem1/block_data_analyses (01_blocks_by_pools)


CHANGELOG:
2025.02.28 posted analysis
2025.02.28 edited figure 2 caption for clarity

3 Likes

Thank you for the research share. I think, although it may not be a particularly serious issue right now, it will still be necessary to seek solutions in the future that can ensure greater decentralization

1 Like

Thank you for putting this together and starting these conversations. I hope to see more discussions of decentralization starting to take place.

Here’s a link to another article about decentralization on Cardano that may be a complimentary view point.

3 Likes

@QuasarChains it is my pleasure. I will be adding more analyses here as time permits.

PS the link in your post takes me to a discord channel. Can you please explain?

Cheers🍻

1 Like

@champollion thank you for your support. Agreed, long-term solutions will need to be identified and implemented. Future analyses of current trends might help highlight avenues to pursue.

2 Likes

The Rising Influence of Known Pool Groups in Cardano Block Production

Here I will take a close look at block production in Cardano since the advent of Shelley (epoch 209) in terms of Pool groups participating in the protocol. These analyses were conducted independently and cover epochs 209 through to 539, spanning a total of 6,939,060 blocks. I wish to thank Balance for the identification and publication of all currently known Pool groups used herein. Group data used in these analyses were fetched from Balance Pool’s API in late February 2025 and have been added to the GitHub repo associated with this write-up (linked below) to be compared (if desired) with the latest group data available through the same API here.

Known Pool groups are becoming more numerous in Cardano. The groups used in this analysis belong to a wide range of types: from well established, easy to identify MultiPool groups run by Centralised Exchanges (CEXs) to MultiPool groups that came to light only thanks to extensive blockchain data forensics.

There are 126 currently known Pool groups. For the purposes of the analyses presented here, groups were further classified, based on the number of Pools in them (Table 1).

Table 1. Pool groups in Cardano and their definition for these analyses. Pool group data courtesy of Balance Pool.

Definition Number of Groups % of total Groups Number of Pools
XL Groups 8 or more Pools 22 17.5% 457
L Groups 4-7 Pools 29 23% 140
M Groups 2-3 Pools 74 58.7% 164
Single Pools Single 1 0.8% 2738

Not all Pool groups behave and represent themselves in the same way. Therefore, different groups (and different size groups) are expected to show variation in performance through time. Let’s examine the top 22 Pool groups by number of Pools (XL Groups) and track their influence on Cardano block production through time (Figure 1). Single Pools were removed as a group from this analysis and will be treated separately.

Without going into details for all specific XL groups, we notice that some groups have seen their influence on block production steadily increase over time: this is indicated by the representation of Pools in Cardano blocks over epochs (Figure 1). Conversely, other groups have lost influence over block production over the same period (Figure 1).

Two XL groups deserve a special treatment here: ASTRL and ROCKX (Figure 1). Despite having 10 Pools in its group, ASTRL never minted a single block (absent in Figure 1). All Pools in this group contain (and, as far as I could tell, have always contained) less than 200 ADA each, making the probability of slot assignment negligible. It is not my role to give explanations as to why anyone would go through the trouble of doing this, but asking the question may be relevant in the future. ROCKX on the other hand is never represented by more than one Pool in any given epoch (Figure 1). This is because 8 out of 10 ROCKX Pools have never met their pledge, one has never had more than 20,000 ADA in it and the last is the only one running with a considerable stake delegation.

Similar observations can be made for L groups (Figure 2). Here we see some groups stabilizing the number of contributing Pools over epochs, indicating that Pools in those groups have grown to thresholds of stake that allow them to mint blocks every epoch (Figure 2). Other groups had short contributions to the chain and then disappeared, others again saw their influence on block production decrease through time (Figure 2). Overall, the XL and L groups’ landscape seems stable in terms of how many Pools in these groups regularly mint blocks, particularly after epoch 257 (d=0) (Figures 1, 2).

The proportion of Pools (minting blocks in any given epoch) belonging to different size groups is not stable through time (Figure 3). The relative stability observed above, when “zooming in” on specific groups, is replaced by clear trends in “winners” and “losers” when looking at general patterns through time (Figure 3). Specifically, XL groups have been steadily minting more blocks over time and L groups have occupied a stable niche in block production, to the detriment of M groups, those with 2-3 Pools in them, which seem to be losing influence over time (Figure 3). Although Single Pools also seem to have gained influence, it is important to remember that Single Pools constitute over 78% of the total Pools examined here (2738 out of 3499) and their influence on block production is never close to that (Figure 3).

Keeping in mind the disproportionate influence exerted by a relatively small number of Pools (those belonging to groups), we shall look at block production by group size (Figure 4). Here, after the initial increase of Community Pools’ influence as d was gradually being lowered to 0 (epoch 257), group-size-level influence enters a relatively stable pattern (Figure 4). Despite representing just over 13% of the total Pool population (457 out of 3499), XL groups regularly mint over 40% of blocks in any given epoch (Figure 4). Single Pools are distant seconds hovering close to 25%, followed by L and M groups, coming in around 10-12% each (Figure 4). As above, we must keep in mind that Single Pools are by far more numerous than all the other Pools (those in groups) combined, and yet they control less than 25% of blocks (Figure 4).

When we treat Single Pools as a separate entity from all Pools belonging to groups, we get an even clearer picture: Single Pools minted a proportion in the range of 19% to 29% of blocks in any given epoch, with an average of 25% (Figure 5). Pool groups, conversely, range between 71% to 81%, with an average of 75% of blocks minted (Figure 5). In short, an overwhelming minority of the Pool population (22%) is consistently responsible for most of the block production in Cardano (Figure 5).

When we weigh block production by number of Pools in a group, the disproportionate influence of Pool groups becomes even more evident (Figure 6). Despite constituting an overwhelming majority by number of Pools (78% of the Pool population), Single Pools hardly ever exerted more than a 10% influence on block production (Figure 6).

In the previous analysis presented here, the number of retired Pools was identified in 1733, 632 of which had previously minted at least one block. So, how many of these retired pools belonged to groups before retirement? After determining that 98 Pools retired prior to epoch 257 (d=0), I was able to match retired Pools to currently available group data. Overall, 577 of the minting retired Pools had no group data available, and of the remaining 55, 53 (96%) were Single Pools.

We have seen that Pool groups have more influence over block production than Single Pools. The total number of Pools contributing blocks to Cardano is shrinking and it appears that those remaining are slowly shifting toward large, consolidated groups (Figure 3). There is further evidence of this trend when we look at the number of entities required to mint 50%+1 of the blocks in any given epoch (Figure 7). Please note that this metric is not the same as MAV (Minimum Attack Vector), because the latter refers to the smallest set of entities controlling 50%+1 of stake. Even though stake influences block production heavily, it is not a 1:1 match, as it considers neither efficiency and performance of Pools, nor luck in slot assignment.

We notice that the number of Pools and groups needed to achieve a 50%+1 majority of blocks is shrinking (Figure 7). Since epoch 257 (when d=0), the maximum number of pools needed to mint over half of Cardano blocks in any given epoch was 201 (epoch 340) and has now declined to a minimum of 166 (epoch 538), with an average of 186 (Figure 7). During the same period, groups needed for half of the blocks ranged from 34 (epoch 323) to 19 (epoch 258), with an average of 26 (Figure 7). These are quite low numbers, very close to the current estimates for MAV, indicating that Cardano is losing decentralisation to the advantage of few, large Pool groups.

Pool groups also show much more longevity and stability than Single Pools (Figure 8). Longevity here is defined as the number of epochs any given group or Pool has been contributing to the system (in other words, how long they have been around for), and stability is defined as the percentage of epochs in which any given group or Pool has been minting blocks.

A vast majority of the known groups has existed and continues to exist throughout the period analysed here, so since the Shelley launch (Figure 8). Conversely, the longevity of Pools shows two peaks, corresponding to short-lived Pools and long-lived Pools respectively, with many in between (Figure 8). Stability of block production in Pools also shows most Pools minting blocks infrequently, in stark contrast with known groups (Figure 8). It may be possible to partially explain enhanced longevity and stability in Pool groups with the reluctance to move delegations (a phenomenon known as “sticky stake”), a possibility that will require further analyses.

We have previously seen declining trends in Pool diversity over time and now we have a clearer picture as to where that diversity is being lost from. In future analyses, the inclusion of stake distribution data might shed further light on the apparent dominance of known Pool groups in the Cardano block production landscape.

I wish to thank Wayne [OTG], Rich [ECP] and Homer [AAA] for providing early feedback to this writeup.

All Koios queries and R scripts for analyses presented here, can be found on GitHub at this link. Please note that Koios queries are the same as the previously presented analysis, but have been provided again for convenience. The group data fetched in late February 2025 from the Balance Pool API are also provided in the folder for ease of comparison.


CHANGELOG:
2025.03.12 Initial Post
2025.03.12 Added last paragraphs and figure as I had mistakenly posted incomplete draft
2025.03.12 Moved changelog to bottom of post
2025.03.13 temporarily removed section about 50%+1 blocks (further analysis needed, checking consistency with Koios staff)
2025.03.13 temporarily renumbered figures and in-text references to them to reflect above changes
2025.03.13 grammar
2025.03.13 added 50%+1 section again, with corrected analysis and plot, included acknowledgement for AAA - Homer

3 Likes