Election System

Intro

An election system with a k threshold is commonly used to prevent bad actors from gaining control or manipulating the system. The k threshold refers to the minimum number of votes required for a candidate or option to be elected or chosen.
By setting a k threshold, the system ensures that a significant portion of the population supports the elected candidate or option, rather than just a small group with a particular agenda. This helps to ensure the decentralized and trustless nature of the decision-making process.
Moreover, an election system can also prevent bad actors from rigging the system or manipulating the results to their advantage. By requiring a minimum number of votes, it becomes much more difficult for a single bad actor or a small group of them to sway the election in their favor.
Overall, an election system with a k threshold provides a decentralized and trustless way of making decisions, while also protecting against bad actors who may attempt to take advantage of the system.

How to pick the threshold

When choosing the threshold for an election system, it's important to strike a balance between effectiveness and security. In this case, the election system serves as a mechanism to ensure that only good actors are able to participate in the decision-making process, while bad actors can't decide because of the threshold required.
We developed an election system that determines actions based on a threshold of integer of (N * 67%). When the threshold is met for a positive result, the action takes place. If N - integer of (N * 67%) is met for a negative result, no action occurs.
These actions are voted on by miners of the mining pool, and the results of the vote determine whether the action takes place or nothing happens.

The main election based actions:

  • add new participant as miner
  • remove miner from the pool
  • update notifier

Threshold optimizations

Add new participant as miner

When adding participants to the mining pool, there is an optimization that can be made to add multiple participants at the same time instead of adding them one by one. This optimization reduces the amount of Distributed Key Generation (DKG) required, which results in creating fewer new Bitcoin addresses for the mining pool.
The power contributed to the current block is a median between the average of the last 6 blocks and this block spent and by creating a new address the mining pool is forced to participate in the first 4-5 blocks with quite 0 chances of winning them, just to be able to win the next ones.
So this optimization increases the chances of winning blocks because the necessary loss happens less often. ( and can be customized from pool to pool to the wanted number of blocks they see fit )

Remove miner from the pool

The optimization here happens because the FROST does not need to recalculate the DKG after one miner leaves or is removed from the pool. Instead, it will not get the messages through the miner coordinator and will not be able to sign them. This means now there is a bigger % of participants to sign the transactions to meet the K.
General example for removal threshold DKG
Mine with 100 participants -> threshold 66
Remove 15 participants
Miner with 85 particpants -> threshold 66
The threshold now is 66/85*100 ~ 77
When it hits 75 we are running DKG ( before reaching 85 participants )
This can also be customized as the pool see fit.
Overall, these optimization helps to make the mining process more efficient and effective, allowing for a greater chance of winning blocks and maximizing profits for the participants in the pool.