Glossary of Concordium Terms#
See also our whitepaper for more details on the terms described below.
An addressable store of funds on the blockchain. An account is associated with one or more account keys that can be used to authorize transactions originating from the account, as well as with an encryption key that can be used to send shielded transfers to the account. An account is also associated with the account holder’s identity, although this association is encrypted for anonymity. This anonymity can only be revoked by anonymity revokers, in cooperation with the account’s identity provider.
A kind of sub-account structure that can be created. An account owner can create different aliases for different uses to keep track of transfers and assign them meaning. Each account has 16777216 addresses, namely a so-called canonical account address together with matching account aliases. The canonical account address is derived when an account is created on chain. The other 16 million addresses with matching initial 29 bytes are referred to as account aliases for the same account. Thus, accounts can be referred to by any address whose initial 29 bytes match.
An authority who has power to know the identity of a participant. The anonymity revokers and identity provider can work together to determine the owner of an account and determine which accounts belong to the same owner. (They should only do so when legally obliged to, such as by a court order.) Anonymity revocation is a two-stage process, requiring cooperation of multiple parties.
User data, such as date of birth or country of residence, that is associated with a user identity. Users can choose which attributes should be revealed in each of their accounts.
The chain a baker will build upon when making a new block. The best chain selection procedure is determined by the consensus protocol. In particular, the best chain has the most finalized blocks, and the most blocks after the last finalized block.
The basic unit of the blockchain, which is produced by a baker. A block contains a (possibly empty) list of transaction, and has a pointer to a previous block (with the exception of the genesis block). A block and its predecessors form a chain, and the sequence of transactions they contain form a ledger. Each block has a slot time that records when it was baked. A block also contains information relating to consensus, for instance establishing which baker created the block, and that the baker was entitled to do so.
A chain of blocks that has split from the main chain. All branches have the potential to become the main chain. The Chain selection rule determines which branch is the best chain.
The mechanism by which a node receive messages that may have been missed, for instance because the node was offline when it was sent.
CCD is the currency of the Concordium blockchain. CCD can be used for multiple purposes:
as a form of payment between users via transactions,
as a payment for executing smart contracts,
as a store of value,
The smallest subdivision of CCD is the µCCD (micro CCD), with 1 CCD = 1,000,000 µCCD. This means that CCD amounts are given with up to six decimal places of precision.
A sequence of blocks, starting from the genesis block, in which each successive block points to the predecessor. There may be multiple valid chains, and the consensus protocol establishes which chain is authoritative.
Chain selection rule#
A rule that selects the best chain based on the following criteria:
chain with the most finalized blocks
which last block has the earliest slot in the chains
which last block has the largest block luck in the chains
which last block has the largest hash in the chains.
A command-line tool that ships with the Concordium distribution. It is designed as a low-level interface to the Concordium blockchain. It cannot be used to create identities, but it can import accounts exported from the mobile wallets. Once an account has been imported, Concordium client can be used to do CCD transfers from the account and other transaction types supported by the Concordium blockchain.
A period of time during which a transaction is frozen. Examples of when cool-down periods apply include removing a baker and updating stake. The length of a cool-down period varies between transactions.
A certificate derived from the Identity Object that proves that the owner has been verified by an identity provider. The key feature of the credential is that it does not identify the owner to the identity provider, nor to any other single entity, however it contains enough information to allow anonymity revokers in concert with the identity provider to find the owner.
The user holding a credential. An account is owned by one or more credential holders.
A method by which one party (the prover) can prove to another party (the verifier) that a given statement is true while the prover avoids conveying any additional information apart from the fact that the statement is indeed true. This is known as a zero-knowledge proof.
Dual to encryption key. In contrast to the encryption key, which is public, this key is only known to the account holder.
A time period consisting of multiple slots (on the testnet, an epoch lasts for approximately one hour). At the start of each epoch, we compute a leadership election nonce based on the block nonces of the previous epoch. The leadership election nonce is valid for the duration of the epoch.
The process by which a block is marked to be “finalized”, i.e. part of the authoritative chain. Transactions that are part of finalized blocks are considered authoritative. New blocks can be only added following the last finalized block. The finalization process is conducted periodically by the bakers with staked amount at least 0.1% of the total amount of existing CCD.
Before opening an account on the Concordium Platform, one’s real-world identity must be verified and recorded by an identity provider. A user’s identity is anonymous on-chain, however this anonymity can be revoked and their real-world identity revealed in response to a valid request from a government authority.
An object issued by the Identity Provider to the user which allows the user to prove to third parties that their real life identity has been verified by a trusted third party.
A person or organization that performs off-chain identification of users. Users are required to obtain an identity object from an identity provider in order to open an account on the Concordium Platform.
An intial account is an account submitted to the chain by the identity provider during the process of requesting a new identity. The initial account can perform all of the same actions as a regular account, however the real-life identity of the initial-account owner is known by the identity provider who submitted it to the chain. In contrast, the real-life identity of the owner of a regular account can only be ascertained by anonymity revokers working in concert with the identity provider.
To check whether a given baker has won in a given slot, the baker uses the slot number and the leadership election nonce to compute a value r. The leadership election nonce is a random value that is periodically updated to prevent parties from predicting too far into the future when they will win. A baker wins if the value r is below a certain threshold, which depends on the baker’s lottery power and a common difficulty parameter f. The winning probability is roughly proportional to the baker’s stake, and higher difficulty parameters decrease the winning probability for all parties.
A baker’s lottery power is its relative stake and is therefore proportional to the staked amount of that baker. The lottery power is updated each epoch, and is based on the stake distribution at the end of the epoch before last. (This delay ensures that the stake distribution is determined before the randomness that fixes the bakers for the epoch: otherwise, stakeholders might redistribute their stake to luckier bakers, which undermines the security of the system.)
The main Concordium network which is expected to launch in early 2021. The mainnet will receive periodic upgrades, but in contrast to the testnet, it will never be reset, and accounts created on the mainnet will remain indefinitely.
A participant in the Concordium network. Nodes receive blocks and transactions, and track the current state of the blockchain. A baker node has cryptographic keys that enable it to take part in baking and finalization. A node without these keys is referred to as a passive node.
May refer to:
Transaction sequence number (same as account sequence number)
Refers to activities outside of the Concordium blockchain. Some on-chain actions need preliminary actions off-chain, for example to create an account on the Concordium blockchain the user must first work with an identity provider, e.g., via their website or mobile application, to obtain a specific digital certificate. We refer to this certificate as the identity.
Refers to an an event or activity that is propagated through the Concordium network and recorded on the Concordium blockchain. The recording can be explicit or implicit as part of the consensus protocol. An example of the former is a transaction such as a CCD transfer, an example of the latter are the rewards given out to, e.g., bakers.
An amount of CCD that is encrypted with the public key of an account. Only the owner of the secret key can determine how many CCDs are contained in the encryption.
The part of the balance of an account that only the owner of the account can see. This is achieved by encrypting transfers to an account with the account’s encryption key. Every participant of the Concordium network can see the ciphertexts of all the transfers, however they provide no information on how many CCDs were transferred. The receiver of the transfer can use their secret key to decrypt the ciphertexts, and seeing how many CCDs they have received.
For technical reasons the shielded balance of the account consists of two parts, the “self balance” and the “incoming shielded amounts”.
Incoming shielded amount#
This is a list of shielded amounts that is extended each time an account receives an shielded transfer. When the account makes a shielded transfer it can use a number of shielded amounts from this list as inputs to the transfer.
In the blockchain, time is divided into equally sized units called slots. On the testnet the duration of slot is one second. In every slot, each baker checks locally whether they won the lottery, which entitles the winner to bake a block in that slot. Zero, one, or multiple bakers can win the lottery. The probability of these different events is controlled by the difficulty parameter f. For example, with difficulty 0.5 on average every second slot will have a lottery winner.
Bakers can have part of the balance of its account staked. The amount that is staked remains locked while staked and cannot be transferred or moved in any way. The staked amount is proportional to the lottery power of a baker.
A test network run by Concordium to test its protocols and software. There can be several test networks in existence at the same time. All the features are tested on the testnet before they are released on the mainnet.
An atomic operation that defines a change of state in the ledger, such as transferring funds from one account to another. A transaction typically has a sender account and a transaction sequence number, and incurs a fee. The sender account must sign the transaction to authorize it. (The exception to this is a credential deployment transaction that creates a new account, which does not have a sender account.)
Additional data that a user can provide when making a transfer, a shielded transfer or a transfer with schedule. The data will appear on chain as a bytestring. It is expected to be CBOR encoded and can therefore represent strings, numbers and JSON values, but this is not enforced.
Transfer with schedule#
A special kind of transfer of CCD that makes the CCD amount available to the receiver only in a limited way until a specified point in time. The point in time is specified as part of a transfer. The CCD are immediately owned by the receiver account, and the transfer cannot be revoked, but the receiver cannot spend the CCD until the specified time.
Transaction Sequence Number#
A sequence number that orders transaction on a given account. In a ledger, all transactions for an account must be ordered with consecutive transaction sequence numbers, starting from 1. Transaction sequence numbers ensure that a transaction cannot be repeated in the ledger, and that the transactions occur in the order intended by the sender account holder.
User identity certificate#
Issued to the individual or entity once their real-world identity has been verified and recorded by an Identity Provider. You cannot use the Concordium Platform without a User Identity Certificate. The user identity certificate includes attributes such as name, age, and nationality. When the Identity Provider has validated the attributes, it issues a user identity certificate, which is basically the Identity Provider’s signature over some cryptographic keys of the user and the validated personal attributes. Unlike usual public key certificates such as X.509 certificates, the user identity certificate is private to the user; it is not submitted to the chain. Note that the Identity Provider also stores some information, but this is only used for a possible, subsequent investigation of the user’s activities (i.e. anonymity revocation). The Identity Provider is not involved in any subsequent use of the user identity certificate. The user identity certificate is signed using the Pointcheval-Sanders signature scheme.
A wallet is an app that allows cryptocurrency users to store and retrieve their digital assets, and manage identities and accounts. Concordium has two wallet types.
The Desktop Wallet#
The Desktop Wallet is a digital wallet that enables you to create and manage your Concordium identities, credentials, and accounts from your desktop and to create transactions such as sending CCD, adding a baker, and exporting and importing account information.
The Mobile Wallet#
The Mobile Wallet is a digital smartphone wallet that enables you to create and manage your Concordium identities and accounts, to create simple and shielded transactions, and to export and import your accounts and identities.