Docs
Glossary

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

Anchors 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:

ProposalsDescription
RefreshProposal to refresh a contract's governor
AnchorUpdateProposal to update merkle roots
SetVerifierProposalProposal to set a verifier address
TokenAddProposal to add token to a set
TokenRemoveProposal to remove token from a set
WrappingFeeUpdateProposal to update fee parameter
RescueTokenProposal to move tokens from a Treasury
MaxDepositLimitUpdateProposal to update a maximum deposit limit parameter
MinWithdrawalLimitUpdateProposal to update a minimum withdrawal limit parameter
FeeRecipientUpdateProposalProposal to update a fee recipient account
SetTreasuryHandlerProposalProposal to set a treasury handler address
ResourceIdUpdateProposal to add/update a resource ID
ProposalSetUpdateProposal 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.