Experimental
CHCQ is a testnet/devnet research path. It is not presented as production-grade or audited.
Experimental 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.
CHCQ is a testnet/devnet research path. It is not presented as production-grade or audited.
Classic CHC addresses remain unchanged. CHCQ adds a second UTXO ownership and signing mode.
CHCQ starts in CLI, node, and consensus backend work. The browser wallet remains CHC legacy for now.
Address Model
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.
CHC + Base58Check(0x1c || HASH160(sec1_secp256k1_public_key))
CHCQ + Base58Check(payload)
payload:
version:uint8 = 0x50
scheme_id:uint8
commitment:bytes32 = SHA3-256(raw_pq_public_key)
CHCQ is recognized before CHC so a CHCQ address is not accidentally interpreted as legacy CHC.
The address commits to the post-quantum key. The full ML-DSA public key appears when the UTXO is spent.
A spend is valid only if SHA3-256(public_key) matches the commitment encoded in the CHCQ address.
Signature Schemes
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 |
Seed: 32 bytes. Public key: 1312 bytes. Secret key: 2560 bytes. Signature: 2420 bytes.
The canonical PQ wallet backup is the 32-byte seed, not the expanded private key.
The native ML-DSA backend is pinned to a specific upstream commit instead of being selected dynamically at runtime.
Transaction Version 2
Legacy transaction v1 remains unchanged. Transaction v2 lets each input declare its signature scheme while preserving compatibility with legacy CHC inputs.
previous_txid:32
previous_index:u32le
signature:varbytes
public_key:varbytes
sequence:u32le
previous_txid:32
previous_index:u32le
sig_scheme_id:u8
signature:varbytes
public_key:varbytes
sequence:u32le
Legacy CHC inputs inside transaction v2 use sig_scheme_id = 0.
CHCQ inputs use sig_scheme_id = 10 for ML-DSA-44.
A transaction can mix CHC and CHCQ inputs because the signature scheme is declared per input.
Signing Digest
The v2 signing payload removes signatures and public keys, preserves signature scheme identifiers, binds the input, and includes the network domain.
domain = chipcoin:tx-signature:v2:<network>
digest = double_sha256(v2_signing_payload)
The network domain is part of the signed commitment to reduce replay ambiguity between devnet, testnet, and mainnet.
The signature type is committed in the digest, avoiding ambiguity between legacy and post-quantum signing.
The digest binds the input being signed instead of treating all inputs as an undifferentiated payload.
Activation and Validation
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. |
sig_scheme_id must match address scheme id.Browser Wallet Boundary
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.
Frozen test vectors for seed, public key, CHCQ address, unsigned tx bytes, v2 digest, signature, signed tx bytes, and txid.
Known Answer Tests, FIPS 204 coverage, cross-platform CI, and reproducible build checks are needed before stronger claims.
Large post-quantum signatures require stricter transaction size, fee, fast-reject, and DoS policy work.
Summary
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.