Skip to main content
note

A new version of Mina Docs is coming soon! This page will be rewritten.

Delegation Program Tiebreak System

How it works and verification instructions

At the end of every delegation cycle the Delegation Program Uptime Tracker determines up to 240 external validators who have received the highest Performance Scores. In cases where a tiebreak is needed, a random tiebreak process will be implemented to ensure fairness and transparency. This system is outlined below and, if you wish, you can follow the process described below to verify the results.

How the Delegation Program Tiebreak System Works

1.  Block Producer keys eligible to receive a Mina Foundation delegation (see: Mina Foundation Delegation Policy) with tied Performance Scores that straddle the 240th place in the uptime snapshot are determined

2.  This list of tied keys is sorted alphanumerically using the canonical ascii representation

3.  The sorted list is randomized using Random.org’s List Randomizer;

       a.  The VRF seed from the last epoch of the previous cycle is used as the “persistent identifier”

Verifying the Delegation Program Random Tiebreak

Requirements

If you would like to verify the Delegation Program random tiebreak result you will need the following:

Instructions

Step 1: Identify the VRF seed from the last epoch of the previous cycle

a.   The VRF seed will be posted with the list of the Top 240 eligible delegatees

b.   If you like you can obtain the VRF seed yourself by:

       i.  Query https://graphql.minaexplorer.com/, using last epoch of the previous cycle, with the following:

query epochSeed {
blocks(limit: 1, query: {canonical: true, protocolState: {consensusState: {epoch: 33}}}) {
protocolState {
consensusState {
stakingEpochData {
seed
}
}
}
}
}

with the results of the above sample query for Epoch 33 returning the seed:

2vbJHBGhsg12Hpm5y8QDz3VkR5XfNtK7HsyybWS83TGQrrJLRPiN

Step 2: Sort the tied wallet addresses alphanumerically using the canonical ascii representation

a.  This can be done using a tool like Sort Strings

       i.  Uncheck “Sort strings numerically”

       ii.  Enter the tied addresses in “input strings” with no extra spaces or line breaks

       iii.  Copy the sorted wallet addresses from “sorted strings”

Step 3: Randomize the sorted list of tied wallet addresses using Random.org and the VRF seed from Step 1

a.  Visit https://www.random.org/lists/?mode=advanced

b.  Enter the sorted list of addresses into “Part 1: Enter List Items”

c.  In “Part 2: Choose Output Format” select “As a bare-bones text document (type text/plain)”

d.  In “Part 3: Choose Randomization” select “Use pregenerated randomization based on persistent identifier enter-id-here (max 64 alphanumeric characters)” and where it says “enter-id-here” enter the VRF seed you identified

e.  In “Part 4: Go!” press the “Randomize” button

Through this process you will be able to confirm the random tiebreak result. If you need any help, please post your question in the #delegation-program channel on Mina Protocol Discord.