Skip to content

Instantly share code, notes, and snippets.

@Aareon
Last active July 7, 2021 18:03
Show Gist options
  • Save Aareon/c6d2b3aff2f5cb6847b5b4eb5e4a3a5f to your computer and use it in GitHub Desktop.
Save Aareon/c6d2b3aff2f5cb6847b5b4eb5e4a3a5f to your computer and use it in GitHub Desktop.
ChickenTicket mechanics

<Copyright (c) 2021 Aareon Sullivan>

ChickenTicket - mechanics

The Node communicates with the network, & receives messages from peers, a Validator Node, & the Primary Validator.

Definitions:

* PV: Primary Validator
* VP: Validator Pool
* Vn: Validator node
* Tx: Transaction
* Government: PV (president), VP (senate), Vn (governor)
* House: Selection out of VP by PV when PV takes control. If VP population lowers beyond a threshold, a fork will be required. If 
* Peer: Consumer of network messages
* Node: A peer capable of confirming transactions & blocks
* Stake: A restricted-access fund created by an account

Validator Nodes and the Primary Validator work the same as a regular Node, with the addition, that: * PV performs concensus with the VP and finalizes blocks. * Vn works with the PV for concensus and rectifying government issues.

The Primary Validator is announced in an interval. If the PV underperforms, its "rotation vector" is affected. Once a PV's rotation vector weighted against other rotation vectors in the VP reaches a score, the PV will be rechosen. A PV's statistics is logged by the VP.

Target performance is automatically adjusted based on last-block block-time, and target block-time (1 minute).

A registered Vn will be announced by the Primary Validator to every Node in the network. This Vn receives and verifies your transactions. The PV receives and validates the Vn's results, and then commits it to the ledger. The "block" is then announced via the PV and reaffirmed by the VP before a node ever accepts the new ledger.

No validation of txs or blocks is ever required on a Node. It is solely their prerogative.

This model is not trustless, but allows trust to be delegated amongst many trustworthy nodes. Trust and performance is weighted, and concensus allows bad actors to be removed from the process.

As the VP retains a copy of every transaction up for validation at any given time, the PV can be weeded out at any time and the network can begin moving again.

The same performance weight is applied to each Vn in the VP. If a Vn is determined to be compromised, it is easily rotated with a worthy Vn.

A Validator Pool is an expansive pool of registered Validators. A PV's "House" is the sub-pool of Vns broadcast by the PV. It is the House's responsibility to be transparent, yet pragmatic, when advertising registered Validators. If the House misbehaves, any peer in the network with any wherewithal will be able to oust the perpetrators.

A Node can register to become a Validator by staking coins and improving their stake weight. Validators are registered by Nodes that choose to recognize their performance and readiness. To register as a Vn is a opt-in process done by the user/owner of the node.

Any staking node can confirm mempool transactions. Staking rewards are directly correlated with stake weight, network staking difficulty, and confirmation performance. Low performing nodes with high stake weights are not healthy Validators.

Fork potential

The entire government can be subverted by Nodes interested in performing their own concensus. This still requires a network of healthy Validators, and inherently subverts any optimizations that having a government offers.

If a majority of Nodes choose to oust a government node, this will create a fork in the chain. Wherein, the old chain will have the old government, and the new chain will have the new government. Once a government is “overthrown”, the main network will fork creating a new chain, disabling the old government’s hold on the network. An “impeached” PV / Vn may not become government ever again without creating a fork.

Minting coins

Coins are minted as rewards for staking, as rewards for block confirmation, as well as via “rains”. Rains are sent to randomly chosen actively staking accounts. It is equivalent to receiving 1 coin from the network for existing on the network. The total rain amount is equivalent to 1/3 of the last-block reward, and is taken out of the reward given to the government at the time the block is confirmed. The entirety of the rain is consumed, and it is only sent to staking nodes. If it can not be consumed, it is lost. The rain may not be sent to government, or registered Vns.

There is no central authority minting new coins, but a government of pragmatically elected Nodes following strict consensus rules overseeing the minting of new coins.

There is no proof-of-work algorithm for minting coins. Coins are minted as network investment increases (i.e. total network stake). The more people that stake coins, the more coins that are minted. The stake mint reward operates on a curve (undetermined) and will decrease over time until the maximum tokens have been minted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment