Tags: keep-network/sortition-pools
Tags
v1.1.0 This version introduces changes to how minimum unbonded value is handled. There are two separate values now: one defining the minimum unbonded value the operator needs to have so that it can join and stay in the pool, and another defining the required bond value for the current selection. If the given operator has enough unbonded value to stay in the pool but it does not have enough unbonded value for the current group selection, it is skipped. If the given operator does not have enough unbonded value to stay in the pool, it is deleted from there. A reasonable minimum unbonded value should be set on BondedSortitionPool creation and updated later by the pool owner (application) as needed.
v0.2.0 - Improve the distinction between leaf positions and leaf values #64 - Function to check if initialization period passed #66 - Reduce the cost of initialization queries during group selection #67 - Fully backed pool #69 - Drop solidity bytes utils dependency #70 - Factory for FullyBackedSortitionPool #71
v0.1.1 Sortition pool is a logarithmic data structure used to store the pool of eligible operators weighted by their stakes. In the Keep network the stake consists of staked KEEP tokens. It allows to select a group of operators based on the provided pseudo-random seed and optional bonding requirements. Each privileged application has its own sortition pool and eligibility is checked when an operator is selected, rejecting and removing ineligible operators from the pool. A sortition pool provides instant selection results and is less affected by censorship that the ticket selection, although malicious miners can still censor protocol result submissions. Additionally, miners and other actors that can predict the selection seed (due to frontrunning the beacon or a public cached seed being used) may be able to manipulate selection outcomes to some degree by selectively updating the pool. To mitigate this, operators who have joined the pool too recently are ineligible for selection, and the pool and its RNG have been designed to reduce the degrees of freedom available to such an adversary. The fewer outdated operators there are in the pool, the less attack surface the pool presents, so proactive maintenance is also helpful. In this version, we ship two versions of sortition pool: bonded sortition pool allowing to select group of unique operators based on the provided bonding requirements and standard sortition pool allowing to select operators group with possible duplicates.