Midnight Network Glossary
Bech32m
An address encoding format used in blockchain networks for wallet addresses. It's an improved version of the original Bech32 format that provides better error detection when typing or copying addresses.
Coin
A coin is a digital asset that exists on a blockchain. It is a unit of account used as a store of value. Block producers are rewarded in coins, and coins are used to pay transaction fees. A coin is distinct from a token, which is any digital asset that means something to a decentralized application, including representing a real-world asset. That means all coins are tokens, but not all tokens are coins.
Compact
Compact is the domain-specific language, based on TypeScript, in which Midnight's smart contracts are expressed. While the language does allow contracts to be expressed concisely, the primary derivation of the name is from the noun form of the word compact, meaning an agreement, contract, or covenant among people or institutions.
Concurrency
Concurrency is the ability of many users to perform tasks simultaneously without blocking each other. This ensures increased throughput and makes transaction and smart contract processing more efficient.
Consensus mechanism
The consensus mechanism of a blockchain is the set of rules that govern the way that the participants in the network agree to add blocks to the chain. Each block must conform to the chain’s rules, and the blocks must be chained in the correct sequence, avoiding or resolving forks in the chain.
Cryptocurrency
A digital asset stored on a blockchain ledger that is intended to be used as a medium of exchange for goods or services. Blockchain protocols use cryptography to ensure the security and verification of ownership and fund movements. Unlike traditional currencies, a cryptocurrency is not controlled by a government. Its value is determined by the dynamics of market supply and demand.
Custom spend logic
A term used to indicate a potential feature of Midnight, where spending a coin involves executing attached logic so that certain invariants of token lifecycle can be enforced. An example use case may be requiring a known/ allowed source of tokens.
Custom token
Custom tokens are user-defined tokens designed to fulfill specific features and functionalities, like voting and governance. Custom tokens in Midnight are managed by the ledger alongside Midnight’s native tokens using the same mechanics.
DApp
A DApp, short for decentralized application, is a computer program that operates on a network without a single central server, typically a blockchain.
DApp developer
An individual or organization that creates and maintains DApps.
DApp operator
An individual or organization responsible for the management, operation, and support of a decentralized application. DApp operators often engage DApp developers, or are themselves DApp developers.
Decentralized
A system or organization where there is no single authority in control. Instead, the system or organization is run by numerous decision makers with equal or comparable standing.
Devnet
Short for ‘development network’, a devnet is a blockchain that behaves like the Mainnet and is used for testing DApps that are in development. It uses test tokens with no value. Some governance parameters may be set differently from Mainnet for the convenience of developers. In Midnight, the process of DApp deployment proceeds from a devnet to one or more testnets, such as Preview and Preprod, before the DApp is released on the Mainnet. Midnight's devnet has been deprecated in favor of the current testnet.
Distributed
A blockchain is distributed because a copy of it is stored on many computers across the world.
Domain separator
A field used when a DApp asks a user to sign a message. It helps ensure that a message from one DApp cannot be used in a different DApp or on a different network.
DUST
A shielded, non-transferable, consumable network resource used exclusively to pay transaction fees on Midnight.
Fungible token
Fungible tokens are identical to one another, have the same value, and are interchangeable.
Federated Node Operators (FNO)
A network of independent node operators that work together to maintain and secure the Midnight blockchain. These operators validate transactions, produce blocks, and ensure the network remains decentralized and reliable. Unlike a single centralized authority, FNOs distribute control across multiple trusted entities, enhancing security and reducing single points of failure.
Gadget
A gadget is a specialized entry point, specific to zero-knowledge cryptography, designed to bring ZK Snark circuit development within reach of a wide range of developers. Midnight cryptography (Midnight's cryptographic backend library) provides several gadgets, including a signing gadget, an encryption gadget, and a hashing gadget.
Halo 2
A high-performance ZK Snark implementation from the Electric Coin company.
Hard-fork
An event of changing the way transactions are being processed in a backwards-incompatible way (e.g. when introducing new features). It requires all nodes in the network to upgrade software to continue participation in the network.
Hash
In cryptography, a hash value, or hash for short, is the output of a mathematical operation called a hash function. A hash function takes a string of any length and produces a string of fixed length such that it is infeasible to derive the input value, there is a very low probability of two strings producing the same hash function, and even a small change to the input will always result in a different output.
HD wallet
Short for Hierarchical Deterministic wallet. A type of cryptocurrency wallet that can generate multiple addresses and private keys from a single master seed phrase, usually 12 or 24 words. This means you only need to back up one seed phrase to recover all your addresses and funds. Midnight uses HD wallets for deriving and managing the three different types of addresses used in the network: Unshielded, Shielded, and DUST.
Kachina
Kachina is a unified security model for data-protecting smart contracts that bridge the gap between a private state on the user’s local machine and a public state on the blockchain. It is based on the universally composable (UC) model. By relying on ZK Snarks, Kachina establishes a smart contract protocol that ensures data protection while operating within the UC security framework.
Ledger
The public record of contract state and token state on the blockchain. The ledger does not exist as a single document on the blockchain at any point. Instead, the current ledger, as of some block, can be synthesized by reading the blockchain up to that block.
In Compact, the ledger declaration specifies the contract's contributions to the global ledger.
Light client
A blockchain light client interacts with full nodes to find information about the blockchain, but only stores part of the ledger itself. By verifying headers and using Merkle proofs, light clients can ensure that the data they receive from full nodes is valid and accurate. Light clients require less processing power and storage capacity compared to full nodes, making them more suitable for devices with limited resources such as smartphones or IoT devices.
Mainnet
The fully developed and deployed blockchain where transactions are verified and recorded.
Merkle tree
A data structure used in cryptography and computer science to verify the integrity and consistency of large data sets. Named after its inventor Ralph Merkle, a Merkle tree is a binary tree where each leaf node represents a hash value of a specific data block.
MeshSDK
MeshSDK is an open-source library for Cardano that provides comprehensive tools and APIs for building decentralized applications. It offers TypeScript support, React hooks, wallet integration, and development utilities for Midnight Network DApps.
Multi-asset
Multi-asset refers to the capability of a blockchain platform or protocol to support and handle various types of digital assets or tokens simultaneously.
NIGHT
Midnight’s native utility token, transferable and persistent, used for governance, incentives, and as the source of DUST generation.
Non-fungible token (NFT)
Non-fungible tokens are unique and indivisible tokens recorded on a blockchain. They can represent ownership rights to tangible assets like real estate or artwork, or to intangible assets such as a rare magical sword in a Web3 game.
Nonce
A unique number that is used only once in cryptographic communications. In blockchain transactions, a nonce prevents replay attacks by ensuring each transaction is unique and can't be duplicated or reused maliciously. Think of it as a one-time serial number that protects your transactions from being copied and submitted again.
Node
A blockchain node is a computer or device that participates in a blockchain network. It plays a crucial role in maintaining the decentralized and distributed nature of blockchain technology. There are several types of nodes, and one node can be more than one type.
- An active node is one whose purpose is to mint blocks for the blockchain.
- A full node stores a copy of the entire blockchain, that is, all the transactions and data records ever executed within the network.
- A passive node is one that is receiving blocks and transactions from its peers (and in the future, will share these with its peers).
Oracle
An oracle is a service or mechanism that provides external data to smart contracts. It means smart contracts can interact with external information sources by using data from oracles to automate actions.
Pedersen commitments
A cryptographic technique introduced by Torben Pedersen in a 1992 conference paper that enables the commitment to a value without revealing the value itself. It involves combining the value with a random blinding factor using mathematical operations to create a commitment. The committed value remains hidden and computationally difficult to reverse-engineer without knowing the blinding factor. Pedersen commitments are homomorphically additive, allowing one to ‘add’ commitments to two values to get a commitment to the sum of the original values. This can be further stretched to sums of arbitrary-dimension vectors by committing each dimension with a different base.