All pages

Overview

Qubits is a layer 1 for holding and moving value after large quantum computers break the signatures most chains use today. These pages describe the protocol as it is implemented in the reference client, version 0.2.3, for people who build on it, run it or audit it.

What it is

Qubits is deliberately narrow: an account chain with native vaults, a small validator set and a contract system that only governance can extend. Post-quantum signatures are large, so the design accepts fewer transactions of higher value and refuses anything that would bring a classical signature back in.

PropertyValue
Default signatureML-DSA-65 (FIPS 204)
Hash-based signatureSLH-DSA-SHA2-192s (FIPS 205)
HashBLAKE3, 256-bit, one derive-key context per use
Encodingborsh for everything hashed or signed
Addressesbech32m with the prefix qb1, the hash of the account's initial policy
ConsensusPipelined Moonshot, n = 3f + 1, up to 50 validators
StateJellyfish Merkle Tree on RocksDB
Validator linksTLS 1.3 restricted to the hybrid X25519MLKEM768 key exchange
ContractsWebAssembly on the wasmi interpreter, deployed by governance only
Native token18 decimals, amounts are u128 base units
LicenceApache-2.0

Threat model

A quantum computer running Shor's algorithm breaks elliptic curve signatures and key exchange. Grover's algorithm only gives a square-root speed-up against hashes.

ComponentQuantum effectIn Qubits
Signatures such as ECDSA and Ed25519Broken by ShorML-DSA-65 and SLH-DSA-SHA2-192s
Hashes such as SHA-2, SHA-3 and BLAKE3Square-root speed-up from GroverNo change needed
Key exchange such as X25519Broken, and traffic recorded today can be decrypted laterHybrid X25519 and ML-KEM-768
Pairing-based proofs and BLSBrokenNot used

ML-DSA and SLH-DSA rest on different assumptions, lattices and hashes alone, which is why the protocol keeps both. Accounts may mix them in one policy, so a vault can pair a daily ML-DSA key with a cold SLH-DSA recovery key. See Status and limits for what this model does not cover yet.

How a transaction moves

 wallet or CLI              any node                    validators
 -------------              --------                    ----------
 build draft
 compute minimum fee
 sign with the key(s)
        |
        |  POST /v1/transactions
        v
                     check signature and rules
                     without running contracts
                     keep it in the mempool
                             |
                             |  gossip
                             v
                                                 leader proposes a block
                                                 every validator executes it
                                                 on top of uncommitted parents
                                                 and votes by broadcast
                                                        |
                                                        |  2f+1 votes, twice
                                                        v
                                                 block is final, written with
                                                 its state root and receipts
  1. A client builds a transaction bound to the chain's genesis hash, with a nonce, a fee and a last valid block time. See Transactions and fees.
  2. A node accepts it after checking the signature and the rules, but runs no contract code, because submitting is free. See Node operation.
  3. A leader orders it into a block. Every validator executes that block speculatively and votes. See Consensus.
  4. Once a block is final, it is stored in one synced batch with the state tree and the transaction index. See State and blocks.

How the code is organised

The reference client is a Rust workspace. Each crate depends only on the ones above it.

CrateRoleDocs
qubits-cryptoSignature schemes, domains, encrypted key filesCryptography
qubits-typesAddresses, accounts, policies, transactions, blocks, limitsAccounts, Transactions
qubits-stateState trait, Jellyfish Merkle Tree on RocksDBState and blocks
qubits-vmWebAssembly sandbox and gasVirtual machine
qubits-executionTransaction rules, vaults, contractsVaults, Contract model
qubits-consensusSans-I/O consensus engineConsensus
qubits-nodeValidator, networking, sync, HTTP and WebSocket APINode operation, HTTP API
qubits-cliThe qubits binaryCLI
qubits-wasmWallet core for browsersBrowser wallet

Where to start

Source

The project's GitHub organization is QubitsChain.