By Jonas Gehrlein, Web3 Foundation Research Scientist
This is the second report on Kusama’s parachain auctions. It follows a similar format as the first, however detailed explanations about the candle mechanism applied in the auctions are left out because they were discussed in the first report.
When Kusama’s governance body enabled the second batch of auctions, the plan was to allocate another set of five parachain slots. Later and after some discussion within the community, the council, as representatives of the token holders, scheduled a sixth auction. This brings the total number of parachains (at the time of writing) to twelve — eleven allocated by auctions and one, Statemine, allocated by governance as a common good parachain. This was possible because experts agreed on the technical stability of the network and because there was enough time to fit in an auction before the start of the subsequent lease period. In total, the second batch of 6 auctions ran from September 1st until October 13th. Each auction lasted seven days with a two-day starting period and a five-day ending period (candle phase). The table below provides the dates for the four important events of each auction (the same table with the events expressed in their block heights can be found in the Appendix).
In total, sixteen parachain teams registered crowdloans for the second batch of auctions and received contributions from 37,225 unique accounts (49,766 total across both batches of auctions) totalling 1,348,589 KSM in contributions. Of this, 1,251,097 KSM has been locked in slots until August 5th, 2022, while the rest can be reclaimed by users, as their chosen crowdloans were not able to secure a parachain slot. Currently, 43% of all issued tokens are locked in staking and 20.4% are locked for crowdloans from auctions 1 - 11. Individual accounts participated in, on average, 2.2 crowdloans with an average of 36.2 KSM per contribution.
The following table summarizes relevant metrics for the seven projects with the highest locked KSM for crowdloans, ordered by the amount of contributions (the full table is available in the Appendix).
The following graph shows the cumulative contributions of the seven highest-backed crowdloans for the entire second batch. This gives some visual insights about the dynamics behind contributions to the different projects.
We can spot a clear hierarchy between the contribution levels in the first three auctions of this batch, while things get more dynamic especially for the fourth auction. As all bids were made for the same lease periods (full duration of the slot), contributions can be compared within a single graph. Upon visual inspection of the graph above, we can see that the contribution curve flattens out for several teams. This could be for one of two reasons: first, the crowdloan won an auction; and second, the crowdloan reached its cap. In both cases, no further contributions are accepted by the Relay Chain. During the whole batch, six teams obtained a slot while three of them reached their crowdloan cap before their respective auction ended.
We’ll now take a closer look at each auction.
Similarly to the first batch of auctions, we observed three teams taking the lead early on. Those three managed to win auction 6-8 without much interference from each other. That is, at no point during the auctions did the winning bid flip between teams. KILT Spiritnet, the winner of the first auction of this batch (auction 6), reached their cap of 220,000 KSM shortly after the beginning and well before the ending period started. While the contribution levels of the two other teams came close to each other, at no point did the winning bid change during the respective auctions. Auction 7 was won by Calamari Network with a total of 218,247 locked KSM, and auction 8 was won by Basilisk after hitting their cap with a total of 222,222 KSM.
The following graph illustrates the dynamics of the crowdloan contributions for these three parachains aggregated on a daily basis. The vertical lines correspond to the ending dates of the respective auctions.
In auction 9, there were three teams that realistically had a chance to compete for the slot. Those were Altair, Parallel Heiko, and Kintsugi BTC. Altair was able sustain a lead for quite a while early on in the auction, but Parallel Heiko’s crowdloan surpassed the number of tokens locked by Altair during the ending period and consequently took over the winning bid. While Kintsugi BTC’s crowdloan managed to secure a significant number of locked tokens in a short time, propelling them past Altair, in the end they were beaten by Parallel Heiko. The graph below illustrates the bidding over time. The vertical lines indicate the beginning of the auction, the start of the ending period, the retrospective ending block, and the end of the bidding phase.
We can see that Altair led the cumulative sum of contributions in the starting period and some time at the beginning of the decisive ending period. Specifically, they led around 35.2% of the ending period. Eventually, in block number 9387388 (26.09.2021), Parallel Heiko’s crowdloan received a single contribution of 57,320 KSM which led to their crowdloan moving ahead in the auction and becoming the winning bid. Eventually, Kintsugi BTC also managed to overtake Altair, putting Altair in last place. Altair once again surpassed Kintsugi BTC shortly before the end of the bidding phase to obtain second place. By the end of the auction, contributors had bonded 187,835.2 KSM for Altair, 196,985.7 KSM for Parallel Heiko, and 173,299.2 KSM for Kintsugi BTC. Technically, either Altair or Parallel Heiko could have won in this close race. Kintsugi BTC was not eligible to win at any point because they never had the top bid during the ending period. In the following graph, we increase the resolution to aggregated contributions on a block-level and focus only on the time of the auction itself.
The third vertical line from the left indicates the block that was randomly and retroactively chosen to determine the winner. We can see that the auction terminated shortly before Parallel Heiko could secure the lead, which eventually led to Altair winning the ninth auction and obtaining the respective slot.
Who blows out the candle?
At the end of the auction, Altair was in second-place in the amount of contributions among the three teams (and had occasionally during the ending period had even been in last place). Still, they managed to be chosen as the winner of the slot. How did that come about? The reason is that the figurative candle went out during the beginning of the ending period (~35% of the way into the ending period) when Altair still was in the lead. As this happens retroactively, we only learned about this after the auction had ended. But who actually blows out the candle?
To answer this question, we need to learn more about how bids are stored in the first place. This is achieved with a technique called sampling. The ending period lasts exactly 72,000 blocks and is divided into 3,600 samples (i.e., every 20 blocks). Those samples are essentially like any other block, but they also store the current winner(s) of the auction. Compared to the case of storing the information in all blocks, this vastly reduces storage requirements and thereby puts much less load on the blockchain. After the auction concludes, one of those samples is selected with equal probability. Then, the bidders that held the winning bid(s) in this selected block are chosen as winners and they are rewarded with the respective lease periods. As all samples have an equal probability of being selected and there are a sufficient number of samples, auctions should end, on average, at 50% of the way into the ending period (later more on this).
But that does not yet answer who blows out the candle. To understand this, we need to familiarize ourselves with the concept of Verifiable Random Functions (VRF). Those functions, on a high level, provide provable randomness, with the entities calculating it having no influence on the result. This is already an important feature in Polkadot’s (and hence Kusama’s) block production protocol BABE, which uses a VRF to determine which validators earn the right to produce blocks. Most importantly, each produced block then contains a small piece of randomness provided by the respective validator. For the outcome of the candle auctions, the protocol gathers enough of those randomness pieces for a defined time and aggregates those to an epoch randomness. This process guarantees a non-influenced randomness value, which is then used to randomly select the sample containing the winner(s) of the auction.
In auction nine, this happened in block 9434278 at the event with index 0. The parent block updated the epoch randomness and thereby provided the needed input to determine the winning sample, a parameter called the winningOffset. That number, in this case 1078, designates the sample that was chosen as the termination block of the auction. If we take the start block of the ending period, 9362014, and add 1078 * 20 = 21560 blocks to it, we can calculate the termination block as 9383574.
In conclusion, the validator that produces the block containing the winningOffset figuratively blows out the candle. Yet, on a further inspection, it is the aggregated randomness provided by all block-producing validators of the previous epoch that contributed to the final value. Therefore, the validator producing the block 9434278 was merely the messenger of the result and did not have any influence on the outcome.
Parallel Heiko entered the bidding for auction 10 continuing with their lead from auction 9. Maintaining a strong position since the auction 4, Parallel Heiko continued to compete for what at the time appeared to be the last available slot for this batch. The vertical lines in the graph below indicate the beginning and end of the auction.
Because Parallel Heiko set a funding cap of 400,000 KSM and Kintsugi BTC of 200,000 KSM, the former was able to outcompete the latter. Parallel Heiko had the winning bid in 100% of the samples, and thus, it was clear that they would win the slot. Kintsugi BTC reached their cap during the auction and therefore was not able to gather more contributions, which sealed the outcome. One could argue that, for the first time in Kusama auctions, the outcome was determined by the contribution cap set by a team. Interestingly, the contribution curve for Parallel Heiko flattens out after beating the 200,000 KSM cap of Kintsugi BTC, indicating that users strategically bonded tokens with the aim of winning the slot. Ultimately, Parallel Heiko won auction 10 with a bid of 202,793.4 KSM.
Auction 11: Expected chaos
After discussions in the Kusama Direction Element channel around the feasibility of adding an additional auction to the second batch (there was sufficient time remaining before the start of the next lease period) and some assessments by experts about the stability of the network, the council scheduled moved forwarded with scheduling an eleventh auction. This illustrates the flexibility of Kusama’s governance on-chain body and the ability to quickly respond to new circumstances. In the absence of any competitors and as the crowdloan was already capped, Kintsugi BTC held the winning bid during the whole auction and thereby won the final slot of this batch with a total of 199,999.9 KSM.
The impact of the candle mechanism
The candle auction is composed of two different stages, namely the starting and ending periods. The latter is further divided (retrospectively), into a period that falls before and after the termination block. This mechanism could lead to the situation that the highest bidder at the end of the auction does not necessarily win the auction — since winning bids that fall after the termination block determined by the VRF do not count. As we have seen, this occurred during auction 9. All tokens contributed to a winning crowdloan during the entire auction are locked for the full duration of the respective parachain lease. This means that some inefficiencies could be observed, both in determining the winner and in locking tokens that did not contribute to a higher winning bid. In the next table, the sum of contributions is separated by the respective phases. Additionally, the table shows when the termination block occurred as a percent of the entire ending phase.
A striking takeaway from this table is that contributions to crowdloans are strongly concentrated towards the starting period, and it seems that the candle mechanism, in addition to the crowdloan cap, efficiently incentivizes users to bond their tokens early in the auctions.
Comparison between batches
The table below compares the first and the second set of auctions by some key metrics. As we can see, the number of contributions almost doubled, as well as the unique participating accounts.
The average contributions for winning crowdloans (i.e., the amount of tokens required to be bonded for a slot) was higher in the first batch, on average, than in the second batch. This is mainly due to the crowdloan by Karura, which received around 501,000 KSM. Given that the second batch of auctions had roughly double the number of contributions, while the total amount of KSM locked was similar in both auctions, the average contribution per account was roughly half in the second batch.
Examining the average candle expiration, i.e., the percentage at which the candle expired during the ending period, we can observe that the average is smaller in the second batch than in the first. As the VRF produces randomness this is prone to statistical noise. However, combining both batches together, auctions terminated on average at 51.09%, which is very close to the theoretical prediction of 50%.
The second batch of auctions on Kusama has concluded and all parachains have been successfully onboarded. The winners of this batch of auctions, in order, were KILT Spiritnet, Calamari Network, Basilisk, Altair, Parallel Heiko, and Kintsugi BTC. In this batch of auctions, there are three things to highlight:
First, we saw, for the first time ever in any Kusama auction, that the candle mechanism picked a winner that was not in the lead at the end of the auction. This further emphasizes the importance of contributing as early as possible during the ending period, both for users as well as teams that might help their own crowdloan.
Second, the crowdloan cap played a prominent role in the contribution and bidding dynamics. In fact, half of the teams reached their crowdloan cap. In the case of KILT Spiritnet, the crowdloan was already filled well before the decisive ending period had started. This could serve as an important lesson for users to unbond their tokens early and schedule the unbonding time not directly to coincide with the start of the ending period, but, to be safe, well before that. In auction 10, the cap might have played a decisive role in determining the outcome, because Kintsugi BTC was not able to get more contributions while being close to the bid of Parallel Heiko. It is impossible to know how things would have turned out if the cap was set higher, but this case certainly makes teams realize that it is an important parameter of their whole strategy.
But if a cap could hinder the success of a crowdloan, why would a project set it lower than the maximum? One reason is to control the maximum number of contributions, so that a fixed rate at which parachains allocate their own tokens to supporters can be determined (at least the 'smallest' rate) before the auction. However, as we saw, the cap might become a parameter that determines the success or failure of a crowdloan, and teams might want to set it as high as possible. Therefore, teams might find themselves in a dilemma. On the one hand, they want to start their crowdloan as soon as possible to catch the attention of supporters. On the other hand, they do not want to set it too early so that other teams can observe the cap and set a slightly higher one. This might have already happened as Basilisk set their cap only 2,000 KSM higher than KILT Spiritnet. It will be interesting to see how teams approach this dilemma and handle the crowdloan cap in the future.
Third, we saw the governance body of Kusama react quickly and flexibly to new circumstances by enabling another auction. This was possible because of active discussions in the community and among technical experts evaluating the stability of the network. Given that an eleventh auction fit into the lease period preceding the onboarding of winning parachains, it was possible that contributions already made earlier in the second batch could be used in the eleventh auction. In the end, with the successful completion of Kusama’s second batch of auctions, the number of parachains on Kusama increased to twelve.
Events of auctions expressed in block heights
Full table of crowdloans
From the blog
Elevating Polkadot's Performance and Scale with Asynchronous Backing
Asynchronous backing is the latest step in the roadmap towards natively scaling Polkadot’s performance and flexibility for Web3 use cases across every industry.