Glossary
This glossary defines and explains Webb ecosystem specific concepts and terminology.
Accepted Proposal
A proposal in which voting has concluded affirmatively, but the signature remains pending.
Acknowledge Proposal
A proposal that has been voted for in favor.
Active DKG Public Key
The public key of the DKG protocol that is currently active.
Active Nomination
A validator (or validators) that a nominator has selected to nominate and is actively validating this era. The nominator is placing their stake behind this validator for this era and will potentially receive staking rewards in return for doing so.
Active Proposal
A proposal in which voting is ongoing.
Anchor
Anchor
s are augmented nodes that possess graph-like data structures and functionality; that is, they can be connected and have edges. Users interact with Anchors through a deposit/withdraw API. To deposit into a Webb Anchor, a user generates a hashed commitment and submits this to the Anchor's merkle tree for insertion. The commitment contains the chainID of the chain they wish to withdraw on as well as some secret data.
AnchorHandler
Every SignatureBridge
contract has a corresponding AnchorHandler
to add or update the neighborRoots
of the anchors on that chain after relayers pass and execute proposals containing connected anchors' root updates. The Handler updates a specific anchor based on a mapping of a resourceID
to a LinkableAnchor
contract address which is set by the SignatureBridge
admin.
Authority
The nodes that act as a collective to manage consensus on a blockchain network. In a proof-of-stake blockchain—for example, a blockchain that uses the Staking pallet from FRAME—authorities are determined through a token-weighted nomination and voting system.
The terms authorities and validators sometimes seem to refer to the same thing. However, validators is a broader term that can include other aspects of chain maintenance such as parachain validation. In general, authorities are a (non-strict) subset of validators and many validators are authorities.
Block
A collection of data, such as transactions, that together indicate a state transition of the blockchain.
Block Explorer
An application that allows a user to explore the different blocks on a blockchain.
Bounty
A mechanism which works in some sense as the reverse of a Treasury Proposal, allowing the Polkadot Council to indicate that there is a need to do some task for the Polkadot network and allowing users to receive DOT in return for working on that task.
Bridge
A parachain that acts as an intermediary between the Polkadot Relay Chain and an external chain, in such a way that it appears to the Relay Chain that the external chain is a parachain (i.e., meets the Polkadot Host's requirements of parachains). Bridges allow for interaction between other blockchains, such as Ethereum and Bitcoin, that are not natively compatible with Polkadot.
Commitment
A commitment
is generated upon a user's deposit into an anchor and later used in a ZK proof for withdrawal. The commitment is the PoseidonHash(DestinationChainID + nullifier + secret)
. DestinationChainID is a user input indicating the chain they will withdraw on.
Crowdloan
A mechanism for potential parachains to temporarily source tokens to win an auction for a parachain slot. Tokens gathered in this way are programmatically returned to the lender after the lease period is over or the crowdloan period ends.
Distributed Key Generation
A cryptographic process in which multiple parties contribute to the calculation of a shared public and private key set. Unlike most public key encryption models, distributed key generation does not rely on Trusted Third Parties. Instead, the participation of a threshold of honest parties determines whether a key pair can be computed successfully. Distributed key generation prevents single parties from having access to a private key. The involvement of many parties requires Distributed key generation to ensure secrecy in the presence of malicious contributions to the key calculation.
Epoch
An epoch is a time duration in the BABE protocol that is broken into smaller time slots. Each slot has at least one slot leader who has the right to propose a block. In Kusama, it is the same duration as a session.
Era
A (whole) number of sessions, which is the period that the validator set (and each validator's active nominator set) is recalculated and where rewards are paid out.
Extrinsic
State changes that come from the outside world, i.e., they are not part of the system itself. Extrinsics can take two forms: "inherents" and "transactions".
Merkle Tree
Merkle trees' primary purpose is to prove the consistency of data and are essentially trees of hashes. A Merkle tree is a tree in which every leaf node is labeled with the hash of a data block, and every non-leaf node is labeled with the cryptographic hash of the labels of its child nodes.
NeighborRoots
Every LinkableAnchor
stores its neighborRoots
, a mapping containing the Merkle roots of the anchors it is connected to. Each anchor stores a history of 30 roots, so users can verify against a historical root while new deposits occur.
Next DKG Public Key
The public key of the DKG protocol that will be active after the next authority set change.
Next Session
This indicates that the validator will be a member of the active set in the next session.
Proposal Header
The proposal header is the first 40 bytes of the proposal. It contains the following:
- The
ResourceId
, which is a 32-byte value that uniquely identifies the target system. - The
FunctionSignature
, which is a 4-byte value that uniquely identifies the function to be executed on the target system. - The
Nonce
, which is a 4-byte value that is used to prevent replay attacks.
Proposals
A message that is voted on which suggests a change in the merkle roots or system. Proposals can be unsigned and signed. Below are all the proposal types in the system:
Proposals | Description |
---|---|
Refresh | Proposal to refresh a contract's governor |
AnchorUpdate | Proposal to update merkle roots |
SetVerifierProposal | Proposal to set a verifier address |
TokenAdd | Proposal to add token to a set |
TokenRemove | Proposal to remove token from a set |
WrappingFeeUpdate | Proposal to update fee parameter |
RescueToken | Proposal to move tokens from a Treasury |
MaxDepositLimitUpdate | Proposal to update a maximum deposit limit parameter |
MinWithdrawalLimitUpdate | Proposal to update a minimum withdrawal limit parameter |
FeeRecipientUpdateProposal | Proposal to update a fee recipient account |
SetTreasuryHandlerProposal | Proposal to set a treasury handler address |
ResourceIdUpdate | Proposal to add/update a resource ID |
ProposalSetUpdate | Proposal to update the latest proposer set state |
Refresh Delay
The length of time within a session that a key refresh protocol will be initiated.
Rejected Proposal
A proposal in which voting has resulted in a non-passage.
Relayer
Relayers are oracle systems that listen to external events and post this data back on-chain. In the Webb Protocol, a relayer watches for the state of anchors on the bridge. This information is then used to update the anchors, acting as a proposer of proposals.
ResourceID
resourceID
's provide a chain-agnostic identifier to connect tokens with the handlers and anchors that interact with that token. A resourceID
for a given token and denomination is defined as the hash of that token name concatenated with its denomination. The resourceID
for a token used in public bridging that is not tied to a denomination will simply be the hash of its token name.
Root Origin
A system-level origin in Substrate. This is the highest privilege level and can be thought of as the superuser of the runtime origin. To learn about more raw origins in Substrate, visit Substrate Docs.
Runtime
The state transition function of a blockchain. It defines a valid algorithm for determining the state of the next block given the previous state.
Session
A session is a Substrate implementation term for a period that has a constant set of validators. Validators can only join or exit the validator set at a session change.
Signature Bridge
The SignatureBridge
contract allows for both fixed denomination, private bridging and standard, public bridging of assets. The private bridging functionality uses an AnchorHandler
to track the state of connected chains, while the standard bridging uses an ERC20Handler
. The Bridge's state is maintained by a set of relayers through voting. These relayers vote to update the latest merkle roots of connected anchors in the case of private bridging, and to distribute bridged assets in the case of public bridging.
Signature Threshold
The 't' in (t-out-of-n) threshold signatures used in the DKG signing system. It is required of DKG authorities to generate signatures.
Signed Proposal
A proposal in which voting has concluded affirmatively, and a signature has been made.
Threshold Cryptosystem
A cryptosystem that protects information by encrypting it and distributing it among a cluster of fault-tolerant computers. The message is encrypted using a public key, and the corresponding private key is shared among the participating parties. With a threshold cryptosystem, in order to decrypt an encrypted message or to sign a message, several parties (more than some threshold number) must cooperate in the decryption or signature protocol.
Transaction
An extrinsic that is signed. Transactions are gossiped on the network and incur a transaction fee. Transactions are "provably true," unlike inherents. For example, one can prove that Alice wants to send funds to Bob by the fact that she signed a transfer-funds message with her private key.
Unsigned Proposal
A proposal that is unsigned and is ready to be signed by the DKG authorities.
Unsigned Queue Proposal
A queue of unsigned proposals that are ready for signing.
UTXO
The unspent transaction output (UTXO) model for ledger-keeping, which is most notably used by the Bitcoin blockchain, is logically more similar to a cash-based system than Ethereum's account model. In a cash-based system, a finite set of discrete units (cash) represents value. In a UTXO system, entities may only spend the discrete units of value of which they have ownership. This means that each transaction consists of some set of "inputs" (the collection of cash that is used to pay for the transaction) and some set of "outputs" (the change that is leftover).
Validator
A node that secures the Relay Chain by staking, validating proofs from collators on parachains, and voting on consensus along with other validators.
Voting
The process of stakeholders determining whether or not a referendum should pass. Votes are weighted both by the number of tokens that the stakeholder account controls and the amount of time they are willing to lock their tokens.
WebAssembly
An instruction format for a virtual, stack-based machine. Polkadot Runtime Modules are compiled to WebAssembly. Also known as Wasm.
Witness
Cryptographic proof statements of data validity.