Glossary
Definitions of terminology and concepts used in the documentation
Application Binary Interface (ABI)
The binary-level interface between a smart contract and the Ethereum Virtual Machine (EVM). The ABI defines the contract interface and is used to call contract functions and for contract-to-contract interactions. The ABI is represented as JSON and compiled to bytecode for execution in the EVM. See the Contract ABI Specification in Solidity programming language docs for design and specification.
account
An account is an object in the blockchain system state identified by a unique address. It has an intrinsic balance denominated in the native coin auton, transaction state, and if a contract account has EVM code and contract state storage.
There are 2 types of account:
- Externally owned accounts (EOA’s). These are owned and controlled by a private key held by an external user, have no associated EVM code, and submit transactions and calls to the blockchain
- Contract accounts. These are controlled by their associated EVM code, execute that associated EVM code contract logic when a transaction is sent to the account, and may send message calls to other contract accounts as part of their EVM code execution.
account state
A part of system state that is specific to an account address. Account state comprises: the account’s native coin balance (auton), the count of transactions sent from the account (nonce), and, if a contract account, a hash (storageRoot) of the associated account storage and hash (codeHash) of the associated EVM code.
address
A 64 character hex string providing the unique identifier of an account.
Auton
A native coin of an Autonity Network. Auton is the native coin in which an account balance is denominated and is the coin used for paying gas fees within the Autonity Protocol. See also Protocol assets, Auton.
Autonomous Currency Unit (ACU)
A base-invariant, volatility-minimised index based on a currency basket of 7 free-floating fiat currencies.
The ACU is the Stabilization Target for Auton price stability used by the Auton Stabilization Mechanism (ASM).
Auton Stabilization Mechanism (ASM)
The protocol mechanism used to maintain Auton price stability. The Stabilization Mechanism is CDP, Auton borrowed against Newton collateral.
Collateralised Debt Position (CDP)
A smart contract based lending mechanism where collateral is deposited and locked in a smart contract to borrow another token-based asset. CDPs operate subject to collateral requirements and may be liquidated if the lender fails to maintain, i.e. breaches, the collateral conditions of the CDP.
CDPs are used by the Auton Stabilization Mechanism (ASM) to borrow Auton against Newton or Liquid Newton collateral.
Autonity Go Client (AGC)
Autonity Go Client is main client software for accessing and participating in an Autonity network. AGC implements the Autonity Protocol. All nodes of an Autonity network run AGC software. When connected to an Autonity network an AGC is a participant in that network.
For AGC features see Concept Client.
Autonity network
An instance of an Autonity blockchain peer-to-peer network, all peer nodes running Autonity Go Client main client software. Public Autonity networks are instantiated for specific purposes - e.g. testnet, mainnet.
Autonity network peers are connected in a full mesh network. Peers discover and connect to one another via Autonity’s communication layer protocols which are based on the Ethereum devp2p networking protocol.
Autonity Oracle Server (AOS)
Autonity Oracle Server (AOS) is software for participating in the Autonity oracle network. AOS retrieves exchange rate data for currency pairs from data providers, consolidates these data points into a standardised report, and submits to the Autonity Protocol’s oracle contract on-chain via the AOS operator’s validator node. Submitted data reports are then aggregated by the oracle contract which uses a voting mechanism to provide exchange rate reference data agreed by consensus.
Providing oracle reference data is a validator responsibility. Validator node operators must operate an AOS connected to their validator node.
For AOS features see Concept Oracle Server.
For AOS features see Concept Oracle Server.
Autonity Protocol
A generalization of the Ethereum Protocol modified to incorporate proof-of-stake based Tendermint consensus, native tokenomics, deterministic finality, an oracle protocol, and liquid staking.
The Autonity Protocol uses Ethereum’s EVM-based state transition function. State transition is by transaction, the transaction associated with an economic cost for computation, and transactions affecting system state).
block
A set of transaction’s validated by consensus and appended to the blockchain.
blockchain
A decentralised system in which system state is maintained as a sequence of blocks in an append-only data structure maintained as a distributed ledger by consensus between peer nodes.
block height
The distance of a block from the root block of the system’s blockchain, the genesis block. Block height is measured as the count of blocks from genesis block to current block.
block period
The minimum period of time between blocks, measured in seconds. The block period delay ensures consistent block production over time.
bond
The operation of bonding stake to a validator.
Stake can be delegated or self-bonded, the distinction being self-bonded stake is owned by the identity operating the validator and delegated stake is not.
bytecode
Executable code passed to the EVM for execution. Bytecode - also known as EVM code - is compiled from the high-level programming language (Solidity) used to write smart contracts for execution in the Ethereum Virtual Machine (EVM).
Byzantine failure
A failure of consensus due to participant behaviour that does not accord with the protocol.
Byzantine fault tolerance (BFT)
The ability of a distributed system to operate and agree consensus according to protocol under Byzantine failure conditions.
Autonity implements Tendermint BFT consensus, an asynchronous consensus protocol that can require up to 1/3 of committee members being at fault. Tendermint requires 3f+1
of participant validators behave correctly and is tolerant of f
faults.
calldata
Data committed to state by arguments to a smart contract deployed on the blockchain. ‘calldata’ is accessed by the Solidity .call()
function. Calldata is non-executable - it is state not smart contract bytecode.
consensus
The computational process by which system state is agreed and replicated by validator nodes in a distributed system. Autonity implements a Proof of Stake (PoS) based consensus algorithm.
consensus algorithm
An algorithm used by distributed systems to ensure that peer nodes have consistent state with resilience to computer network or Byzantine behaviour. See Byzantine-fault tolerance.
consensus committee
The set of validator nodes participating in the consensus protocol for a block epoch period. The committee is responsible for proposing new blocks, voting on block proposals to affirm the validity of proposed blocks and decide if committed to state, and notifying new blocks to peer nodes to replicate the new state.
A new consensus committee is selected at every block epoch in an autonomous process executed by Autonity’s Proof of Stake (PoS) consensus protocol. The selection algorithm ranks registered validators according to the amount of their bonded stake, selecting those with the highest stake to fill the available committee member slots. Ranking by stake serves to maximise the amount of stake securing the network in an epoch.
cryptocurrency
A digital currency that provides a medium of exchange in a decentralised computer network. The record of transactions in the crypto(graphic) currency is verified and recorded in the network’s distributed ledger using cryptography.
currency pair
Two currencies valued against one another with a quotation and pricing structure based on quoting one currency against the other. A currency pair consists of a base currency (listed first) and a quote currency (listed second). The currency pair expresses the amount of quote currency required to buy one unit of the base currency.
For example, in the currency pair JPY-USD 0.0074
, 1
Japanese Yen will trade for 0.0074
US dollars.
data oracle
An off-chain data feed service that provides data to a blockchain. An oracle data service is considered a secure and reliable source of information on the blockchain and may be used in on-chain logic execution. For example, a price data feed. See also Autonity Oracle Server (AOS)
decentralised application (dApp)
A software application deployed on to a blockchain p2p network. A dApp interacts with one or more smart contracts and is typically a combination of those contract(s) and a frontend for using that contract. The frontend graphical user interface (GUI) is typically built out using JavaScript, HTML, CSS technologies. User interactions with a dApp are by transactions and calls submitted to a network peer’s JSON RPC API using the web3.js library. Interactions may be mediated by a user via a GUI or application-level interactions.
delegated
Stake token bonded to a validator by a stakeholder. Delegated stake earns staking rewards and the staker is minted Liquid Newton for the Newton stake token bonded. The account submitting the stake delegation transaction (cf. bond) can be any network account except the validator treasury
account.
Stake delegation transactions submitted from the validator treasury
account result in self-bonded stake.
delegation
The process of bonding stake token to a validator by a stakeholder.
See related concepts: staking, delegated stake, self-bonded stake, and delegation rate.
delegation rate
The percentage commission of earned staking rewards that a validator charges as a commission on delegated stake.
enode
The unique identifier of a node in the form of a URI. It provides the network address of a node on an Autonity network, giving the network location of the node client for p2p networking.
The enode URL is formed according the Ethereum enode url format which is described in the Ethereum Developers Docs, Networking layer.
epoch
A fixed number (i.e. epochPeriod) of consecutive blocks where the validator committee - as recorded in the state of the autonity contract - cannot change.
epoch period
The period of time for which a consensus committee is elected, defined as a number of blocks. The epoch period can be any integer number > 0, but must be shorter than the unbonding period. Without this constraint unbonding could take place before slashing penalties and staking transitions are applied.
Ethereum Virtual Machine (EVM)
The distributed state machine responsible for computing system state. The EVM provides the runtime environment for smart contract execution, computing valid state transitions as transactions are computed and smart contract bytecode executed.
Contract logic is executed by the EVM instruction set (opcodes) which define the allowed computation operations. The set of opcodes allows the EVM to be Turing complete. Strictly it is quasi Turing complete because the gas model constrains execution - transactions will revert before full execution if they run out of gas. The EVM provides an abstraction layer between the execution of application (smart contract) bytecode and the OS of the machine hosting the Autonity client software.
finality
Finality is the quality of being in an end state that cannot be altered. In blockchain, finality refers to the point at which state transitions are immutable. Autonity’s Tendermint consensus is deterministic: finality for a block and the transactions within it is achieved at the point a block is appended (i.e. committed) to the blockchain. Each block creates a checkpoint in the chain and provides a guarantee that blocks before that checkpoint cannot be altered.
genesis block
The first block of a blockchain containing the genesis state of the system and the root of the blockchain.
The genesis state is provided in the genesis state file. As root block, the genesis block has the block number index 0
.
genesis state file
The JSON-formatted genesis configuration file that contains the data necessary to generate the genesis block of an Autonity network. Typically called genesis.json
but can be given any custom name.
gigaton
The denomination of Autonity’s auton cryptocurrency used to denominate Autonity gas prices. 1 gigaton
= 1,000,000,000 ton. The Autonity equivalent of wei is ton and of gwei gigaton.
incentivization scheme
A cryptoeconomic mechanism where economic penalties are applied for incorrect actions or state transitions by network participants, enforced by cryptographic proofs of state or action.
jailing
A protocol action that excludes a validator from selection to the consensus committee for a designated period of time as a slashing penalty. Jailing may be temporary or permanent. See jail period and jailbound .
jailbound
A state in which a validator is permanently barred from selection to the consensus committee. A validator may only enter a jailbound state if a 100% slashing penalty is applied.
jail period
The period of time for which a validator is temporarily barred from selection to the consensus committee, defined as a number of blocks. The jail period is set as a protocol parameter.
The block height marking the end of a validator’s jail period is recorded in validator state as a non-zero value in the jailReleaseBlock
property.
key pair
A pair of public and private cryptography keys used for signing and encryption. The private key is used to produce signatures that are publicly verifiable using the public key. The public key may also be used to encrypt messages intended for the private key holder who can decrypt them using the private key.
Liquid Newton
The liquid token representing Newton stake token delegated to a validator in an Autonity Network (see stake delegation). Unlike bonded Newton, Liquid Newton is transferrable and the holder receives due staking rewards. See also Protocol assets, Liquid Newton.
liquid staking
A staking model in which funds staked to a Proof of Stake network have a liquid representation of staked assets in the form of a token. For Autonity’s liquid staking model see Staking, Liquid staking.
mesh network
A network topology where each node is connected to one or more other network nodes. All nodes in the mesh relay data and co-operate in the distribution of data across the network. A mesh topology can be full or partial.
In a full mesh topology each node is directly connected to every other node. In a partial mesh topology a node is directly connected to a subset of the other network nodes only.
native coin
A cryptocurrency that is inherent to a decentralised computer network.
Autonity tokenomics have the native coin Auton and ERC20 tokens Newton and Liquid Newton.
Newton
The stake token used to stake an Autonity network. Once Newton is staked it is locked and only redeemable by unbonding after an unbonding period. Newton can be in three states (bonded, unbonded, unbonding) as described in Protocol assets, Newton. See Proof of Stake (PoS).
node
A participant running the Autonity Go Client software and able to connect to an Autonity network. See peer mesh network, peer-to-peer network.
oracle network
The network of validator-operated oracles that submits price data from off-chain external data providers on-chain and votes on agreeing an aggregated median price data according to an oracle protocol.
The set of Autonity Oracle Server (AOS) instances run by validators nodes logically forms an “Autonity oracle network”.
Median price data is computed by protocol in voting rounds.
participant
A peer node that is currently connected to other nodes in an Autonity network.
A participant is able to sync state, and broadcast and receive transactions, and potentially be a validator node.
peer
A node which is currently connected to other nodes in a peer-to-peer network and is a participant in that network.
peer-to-peer network (p2p)
A distributed systems architecture in which the systems’ resources are pooled and shared across nodes that are peers of the network.
Penalty-Absorbing Stake (PAS)
A stake slashing model whereby self-bonded stake is slashed before delegated stake when applying slashing penalties for accountability events.
In the PAS model self-bonded stake absorbs any slashing penalties before they are applied pro-rata to the remaining delegated stake.
permissionless network
A peer-to-peer network where access is open and public. Any node can connect to the network and become a peer.
Proof of Stake (PoS)
A consensus algorithm where the blockchain is secured by economic value through bonding stake token to validators. Consensus committee members are chosen by a selection mechanism that maximises the amount of stake backing the committee and so the economic value securing the network.
If the protocol determines that a validator has failed to follow consensus rules, slashing penalties are applied according to Autonity’s accountability and fault detection protocol.
self-bonded
Stake token bonded to a validator where the validator is the stakeholder. The account submitting the stake delegation transaction (cf. bond) is the validator treasury
account.
Self-bonded stake earns staking rewards, but unlike delegated stake does not have Liquid Newton minted for the Newton stake token bonded.
Stake delegation transactions submitted from other stakeholder accounts result in delegated stake.
slashing
A protocol action that reduces the amount of a validator’s bonded stake as a slashing penalty.
slashing penalty
An economic penalty applied to a validator for misbehaviour. Examples of slashing penalty are: stake slashing, stake freezing, jailing.
smart contract
The program code for encoding and executing decentralised application logic in the EVM. Smart contracts are written in a higher level programming language such as ‘Solidity’ and compiled to bytecode for execution in the EVM. A smart contract stores the application’s state.
stake token
The token used as economic value to secure a blockchain in Proof of Stake (PoS) consensus.
Autonity’s stake token is Newton.
stakeholder
A network participant that holds an amount of the Newton stake token.
staking
The process by which stake is delegated to a validator node in a Proof of Stake (PoS) blockchain. Validators with bonded stake participate in transaction validation if a member of the consensus committee. Stake can be self-bonded or delegated.
staking rewards
Revenue earned by bonded stake when it is actively securing the network during consensus. Only stake bonded to members of the current consensus committee earn staking rewards.
staking wallet account
The account used by a stakeholder for stake delegation. This is the account address used to submit transactions for operations to:
- bond and unbond Newton stake token to a validator in Autonity’s liquid staking model
- transfer Liquid Newton to another account
- claim rewards for stake delegation.
state database
The local data store of a node used to persist the node’s local copy of system state.
system state
The computational state of an Autonity system. State is computed according to the Autonity Protocol. System state is stored as key-value pairs, mapping between account addresses and account states in Ethereum’s modified Merkle Patricia trie data structure (See Merkle Patricia Tree, Ethereum Developer docs).
ton
The smallest denomination of Autonity’s auton native cryptocurrency. 1 auton
= 1,000,000,000,000,000,000 ton (10^18). The ton is Autonity’s equivalent denomination to Ethereum’s wei. See also gigaton.
transaction fee mechanism (TFM)
The protocol mechanism for pricing the cost of processing a transaction on a blockchain.
unbond
The operation of unbonding stake from a validator.
In Autonity’s liquid staking model stake can be unbonded at any time, but staked Newton is not redeemable until an unbonding period has elapsed.
unbonding period
The period of time for which bonded stake remains locked after processing an unbonding transaction. Unbonding period is defined as a number of blocks.
Proof of Stake consensus places constraints on the minimum length of the unbonding period. It must be long enough to allow the detection and reporting of consensus faults by validators, and not short enough to allow unbonding before a slashing penalty can be applied. As such it is a security property of the network.
Unix time
The Unix OS system for representing a point in time as a timestamp. Time is measured as the number of seconds since the Unix Epoch began - 1st January 1970 at 00:00:00 UTC. Unix time is used for Autonity timestamps. For detail and format see Unix time.
validator
A participant node that has registered as a validator on an Autonity network. Validator nodes may be selected to the consensus committee and participate in consensus if they have enough bonded stake.
vote period
An Autonity network’s configured voting period for price voting and aggregation) by the oracle network.
voting period
The period of time measured in blocks over which Autonity oracles submit and vote on price data reports to agree an aggregated data price for the currency pair symbols for which an Autonity network provides a median price. See vote period.
voting power
The amount of stake bonded by delegation to a validator. A validator’s voting power may also be referred to as its weight. The sum of stake bonded to validators that are members of a consensus committee may be referred to as the total voting power of the committee.
voting round
An Autonity network’s configured voting period for computing median price data for currency pairs provided by the oracle network.
wallet
A software application that provides functionality for a system user to access and manage their accounts.
wei
The smallest denomination of Ethereum’s ether
native cryptocurrency. 1 ether
= 1,000,000,000,000,000,000 wei (10^18). In Ethereum gas prices are denominated in gwei - giga wei (10^9), 1 gwei = 1,000,000,000 wei. The Autonity equivalent of wei is ton and of gwei gigaton.