Post-quantum support is experimental on testnet/devnet and is not yet audited for production use. Open roadmap

Experimental Research

Chipcoin Post-Quantum Research

Chipcoin has introduced an experimental post-quantum ownership path for testnet/devnet: CHCQ addresses backed by ML-DSA-44 signatures. This does not change PoW, block hash, Merkle root, legacy txid rules, block format, or mining consensus.

Experimental

CHCQ is a testnet/devnet research path. It is not presented as production-grade or audited.

Coexists with CHC

Classic CHC addresses remain unchanged. CHCQ adds a second UTXO ownership and signing mode.

Wallet/backend first

CHCQ starts in CLI, node, and consensus backend work. The browser wallet remains CHC legacy for now.

Address Model

CHCQ addresses commit to a post-quantum public key without embedding it directly.

ML-DSA-44 public keys are large, so a CHCQ address stores a compact commitment to the public key. The full public key is revealed at spend time.

Legacy CHC address

CHC + Base58Check(0x1c || HASH160(sec1_secp256k1_public_key))

Post-quantum CHCQ address

CHCQ + Base58Check(payload)

payload:
  version:uint8      = 0x50
  scheme_id:uint8
  commitment:bytes32 = SHA3-256(raw_pq_public_key)

Parsing rule

CHCQ is recognized before CHC so a CHCQ address is not accidentally interpreted as legacy CHC.

Spend-time reveal

The address commits to the post-quantum key. The full ML-DSA public key appears when the UTXO is spent.

Commitment check

A spend is valid only if SHA3-256(public_key) matches the commitment encoded in the CHCQ address.

Signature Schemes

Inputs declare their signature scheme explicitly.

The scheme is not guessed from public-key length. Transaction v2 inputs declare sig_scheme_id so mixed CHC and CHCQ inputs can coexist input by input.

Scheme ID Scheme Status
0 secp256k1 / ECDSA Legacy
10 ML-DSA-44 Experimental
11 ML-DSA-65 Reserved
20 Falcon Reserved
30 SPHINCS+ Reserved

ML-DSA-44 sizes

Seed: 32 bytes. Public key: 1312 bytes. Secret key: 2560 bytes. Signature: 2420 bytes.

Canonical backup

The canonical PQ wallet backup is the 32-byte seed, not the expanded private key.

Pinned backend

The native ML-DSA backend is pinned to a specific upstream commit instead of being selected dynamically at runtime.

Transaction Version 2

Transaction v2 adds signature-scheme metadata to each input.

Legacy transaction v1 remains unchanged. Transaction v2 lets each input declare its signature scheme while preserving compatibility with legacy CHC inputs.

Input v1

previous_txid:32
previous_index:u32le
signature:varbytes
public_key:varbytes
sequence:u32le

Input v2

previous_txid:32
previous_index:u32le
sig_scheme_id:u8
signature:varbytes
public_key:varbytes
sequence:u32le

Legacy in v2

Legacy CHC inputs inside transaction v2 use sig_scheme_id = 0.

CHCQ in v2

CHCQ inputs use sig_scheme_id = 10 for ML-DSA-44.

Mixed inputs

A transaction can mix CHC and CHCQ inputs because the signature scheme is declared per input.

Signing Digest

The v2 signing digest is domain-separated and network-bound.

The v2 signing payload removes signatures and public keys, preserves signature scheme identifiers, binds the input, and includes the network domain.

Domain and digest

domain = chipcoin:tx-signature:v2:<network>
digest = double_sha256(v2_signing_payload)

Cross-network protection

The network domain is part of the signed commitment to reduce replay ambiguity between devnet, testnet, and mainnet.

Scheme commitment

The signature type is committed in the digest, avoiding ambiguity between legacy and post-quantum signing.

Input binding

The digest binds the input being signed instead of treating all inputs as an undifferentiated payload.

Activation and Validation

CHCQ is gated by activation height on devnet and testnet.

Before activation, CHCQ outputs, CHCQ spends, and wallet v2 spends are rejected. After activation, CHC and CHCQ can coexist if contextual validation succeeds.

Network Activation Height Notes
Mainnet 0 Mainnet is not live; policy can start active from genesis.
Devnet 30000 Activation height avoids bootstrap breakage.
Testnet 30000 Wallet generation can exist before on-chain CHCQ output/spend activation.

CHCQ spend checks

  • Referenced UTXO address must be CHCQ.
  • sig_scheme_id must match address scheme id.
  • Scheme must be known.
  • Public key and signature sizes must be exact.
  • SHA3-256(public_key) must match the address commitment.
  • ML-DSA signature must verify against the v2 digest.

Current public posture

  • Experimental testnet/devnet support.
  • Not audited yet.
  • Designed for future quantum-resistance.
  • No production-grade mainnet security claim.

Browser Wallet Boundary

The browser wallet does not expose CHCQ signing yet.

CHCQ is CLI/node/backend first. The browser wallet remains on the legacy CHC path until CLI CHCQ spending, frozen vectors, interop, and review are stronger.

Needed first

Frozen test vectors for seed, public key, CHCQ address, unsigned tx bytes, v2 digest, signature, signed tx bytes, and txid.

Backend validation

Known Answer Tests, FIPS 204 coverage, cross-platform CI, and reproducible build checks are needed before stronger claims.

Mempool hardening

Large post-quantum signatures require stricter transaction size, fee, fast-reject, and DoS policy work.

Summary

Chipcoin now has a second experimental UTXO ownership path.

CHC remains the secp256k1 ECDSA legacy path. CHCQ is the experimental ML-DSA-44 post-quantum path for testnet/devnet research, gated by activation policy and intended to mature through vectors, KATs, CI, audit, mempool hardening, CLI spend testing, and only later browser-wallet support.