From 559ba77d001e5c79d89676cdbfd2db7ce7f57f4b Mon Sep 17 00:00:00 2001 From: illuzen Date: Thu, 5 Feb 2026 22:42:01 +0800 Subject: [PATCH 1/3] added whitepaper as blog --- website/public/blog/covers/whitepaper.jpeg | Bin 0 -> 283131 bytes website/src/contents/en-US/whitepaper.md | 341 ++++++++++++++++++ website/src/contents/zh-CN/whitepaper.md | 393 +++++++++++++++++++++ 3 files changed, 734 insertions(+) create mode 100644 website/public/blog/covers/whitepaper.jpeg create mode 100644 website/src/contents/en-US/whitepaper.md create mode 100644 website/src/contents/zh-CN/whitepaper.md diff --git a/website/public/blog/covers/whitepaper.jpeg b/website/public/blog/covers/whitepaper.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..488eaffe69d9a4eee09bd3dffa1c5b69e647c71b GIT binary patch literal 283131 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≠+I1fj_tBz+xKiC8 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%0ATy`PFKxAv$ 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 literal 0 HcmV?d00001 diff --git a/website/src/contents/en-US/whitepaper.md b/website/src/contents/en-US/whitepaper.md new file mode 100644 index 0000000..151649c --- /dev/null +++ b/website/src/contents/en-US/whitepaper.md @@ -0,0 +1,341 @@ +--- +title: "Quantus Whitepaper" +description: "The official Quantus Network whitepaper detailing our quantum-secure Layer 1 blockchain architecture, post-quantum cryptography, and tokenomics." +pubDate: "2026-02-05" +heroImage: "/blog/covers/whitepaper.jpeg" +heroAlt: "Quantus Network Whitepaper" +featured: true +tags: + [ + "whitepaper", + "post-quantum-cryptography", + "blockchain", + "quantus-network", + "dilithium", + "zero-knowledge-proofs", + ] +--- + +**Quantus Network Whitepaper v0.3.2** +Legal Disclaimer: This whitepaper is provided for informational purposes only and does not constitute an offer to sell, a solicitation of an offer to buy, or a recommendation for any security, investment, or financial product. Readers should conduct their own due diligence and consult with qualified professionals before making any investment decisions. Quantus Network makes no representations or warranties regarding the accuracy or completeness of the information herein. + +**1. Introduction** + +The Quantum Threat + +Traditional blockchains face an existential threat from cryptographically relevant quantum computers (CRQCs). The cryptographic foundations of blockchains rely on the hardness of the discrete logarithm problem (DLP), and quantum algorithms, notably Shor's, can solve the DLP exponentially faster than classical computers. This vulnerability could enable quantum-adversaries to derive private keys from public keys, which would allow them to forge transactions and decrypt sensitive financial data. + +This outcome is a catastrophic system failure. Without proactive quantum-resistant upgrades, the trillion-dollar crypto economy risks sudden devaluation from such attacks. + +Unique Value Proposition + +Named after the Latin word for "how much", Quantus Network enables scalable, quantum-secure, private money. Quantus is not a general purpose smart contract platform. Quantus focuses on doing a small number of things better than any other chain. Like a restaurant with a few highly perfected menu items, Quantus delivers: + +- Post-Quantum signatures for all transactions +- Post-Quantum signatures and encryption (ML-DSA and ML-KEM) to secure peer connections +- Post-Quantum zero-knowledge-proofs to scale +- High Security Accounts to deter theft and enable recovery from mistakes +- Human-Readable check-phrases for easy address verification + +The decision to focus on scalable, quantum-secure, private money stems from the threat CRQCs present to the industry and Bitcoin's inability to address these challenges. + +**2. The Quantum Threat to Blockchain** + +Quantum Computing Basics + +Quantum computers leverage principles like superposition and entanglement to perform computations that are intractable for classical machines. Unlike classical bits, which are either 0 or 1, quantum bits (qubits) can exist in multiple states simultaneously, enabling exponential parallelism for certain problems. This capability poses existential risks to the cryptographic systems underpinning blockchain finance, as algorithms developed for quantum hardware undermine the security assumptions of most public-key cryptography. + +Shor's algorithm, introduced in 1994 by Peter Shor, provides a polynomial-time method for factoring large integers and solving the discrete logarithm problem on a quantum computer. In essence, it exploits Quantum Fourier Transforms (QFT) to find the period of a function, allowing efficient reversal of the trapdoor functions that underlie schemes like RSA or elliptic curve cryptography (ECC). For blockchain finance, this means an attacker with a sufficiently powerful quantum computer (estimated at \~2,000 logical qubits [6][7][8][9]) could derive private keys from public keys in polynomial time O(n³). This is an extreme speed-up, rendering vulnerable systems obsolete overnight. [1] + +Grover's algorithm, proposed by Lov Grover in 1996, offers a quadratic speedup for unstructured search problems, reducing the time to find a specific item in an unsorted database from O(n) to O(√n) operations. It works by iteratively amplifying the amplitude of the target state through quantum interference. While not as devastating as Shor's for asymmetric cryptography, Grover's impacts symmetric primitives like hash functions and AES encryption, effectively halving the security level (e.g., a 256-bit key behaves like 128 bits against quantum attacks). While impactful, this attack is mitigated by simply doubling the security bits, rather than changing the cryptographic scheme. Additionally, Grover's quadratic speedup is impractical due to its high qubit and gate requirements, requiring billions of operations in sequence, with limited parallelization, making it infeasible for real-world reversals even on future hardware. [2] + +The dangers of quantum computing to blockchain finance can be categorized into four areas: + +- Forging Digital Signatures: Shor's algorithm directly threatens ECC-based signatures used in most blockchains (e.g., Bitcoin's secp256k1 curve), allowing adversaries to impersonate users and authorize fraudulent transactions. Such a capability would represent a critical failure of the most basic feature of a blockchain. +- Forging False Proofs in Zero-Knowledge Systems: Many zero-knowledge proofs, such as those in zk-SNARKs for privacy-focused finance, rely on discrete logarithm hardness via elliptic-curve pairings for commitments; Shor's could enable the creation of invalid proofs that appear valid, which could allow an attacker to mint new coins or falsify the state of Layer-2s (L2s). +- Decrypting Secret Information: Quantum attacks could expose encrypted data protected by vulnerable public-key schemes in privacy protocols such as Zcash or Monero. It could also decrypt p2p communications in financial protocols, revealing sensitive wealth details and enabling targeted theft. +- Reversing Hash Functions: Grover's algorithm could accelerate preimage attacks on hashes like SHA-256, used for proof-of-work and address generation, but this is the least concerning threat. Many post-quantum cryptographic schemes incorporate hash-based constructions as hashes are considered secure-enough with a large enough digest. + +Scaling Challenges in Post-Quantum Cryptography + +While post-quantum cryptography (PQC) offers essential protections against quantum threats, it introduces significant scaling hurdles due to the inherent design of these algorithms. Unlike elliptic curve schemes, which rely on compact mathematical structures, PQC primitives require larger parameters to maintain security against both classical and quantum adversaries. This results in substantially bigger public keys, private keys, and signatures, often by orders of magnitude. The following table illustrates typical sizes for ML-DSA at a 128-bit post-quantum security level compared to classical counterparts like 256-bit ECDSA [10]: + +| Algorithm | Public Key Size (Bytes) | Private Key Size (Bytes) | Signature Size (Bytes) | +| --- | --- | --- | --- | +| ML-DSA-87 (Dilithium) | 2,592 | 4,896 | 4,627 | +| ECDSA (256-bit) | 32 | 32 | 65 | + +As shown, ML-DSA signatures can be over 70 times larger than ECDSA equivalents, and public keys more than 80 times larger. Other PQC families exacerbate this: hash-based schemes like SPHINCS+ may produce signatures up to 41 KB, while even size-optimized lattice variants like FALCON still exceed classical sizes by a significant multiple. + +In blockchain contexts, these inflated sizes compound into systemic scaling issues. Larger signatures bloat individual transactions, reducing transactions per second (TPS) as blocks fill faster and require more time for validation. This also strains peer-to-peer (P2P) communication, increasing bandwidth demands and propagation delays, which can heighten the risk of network forks or orphaned blocks in consensus mechanisms like proof-of-work. Storage requirements are also affected, leading to higher node operating costs and barriers for participation, especially for resource-constrained users or validators. + +These scaling challenges will have to be addressed by **all blockchains** in the future. Bitcoin, for example, will have much less than 1 TPS if the max block size is not increased. + +**3. The Migration Crisis ** + +The Coordination Problem + +Bitcoin's conservative culture resists protocol changes. Any PQC upgrade would require consensus on contentious issues such as migration timelines, potential coin seizure, and block size increases. Even if the community agreed, every individual user would need to migrate their coins to new quantum-secure addresses. Migration requires action from every crypto holder, many of whom have lost access to their wallets or remain unaware of the threat. + +These issues exist for every public blockchain, but are uniquely challenging to Bitcoin due to its lack of clear leadership and philosophy of technical ossification. + +The Lost Coin Problem + +An estimated $250 billion to $500 billion worth of Bitcoin is permanently inaccessible due to lost keys, deceased holders, or forgotten wallets. [3] These coins cannot be migrated and serve as a public bounty for creating a cryptographically relevant quantum computer (CRQC). Quantum attackers will derive the private keys from exposed unmigrated public keys and likely dump billions of dollars of BTC onto the market. + +Technically, the only way to prevent this is a hard deadline that somehow freezes unmigrated coins, but this is politically impossible. The Bitcoin community would have to confiscate funds from users who failed to act, including estates of deceased holders and long-term investors not paying attention. Without such a deadline, the outcome will be that unmigrated coins are stolen and sold, crashing the market and destroying confidence in the network. + +The Migration Timeline Problem + +Even successful migration faces a scaling wall. Post-quantum signatures are 20x-80x larger than current Bitcoin signatures. Without fundamental architectural changes, Bitcoin's throughput will collapse to a fraction of its already limited capacity. + +Assuming Bitcoin solves the political and technical challenges, the migration itself would take months or years. Every holder must submit at least one transaction to move funds to a quantum-secure address. Many will send test transactions first. With bloated PQC signatures choking throughput, the network faces a backlog lasting months or years while quantum-vulnerable coins remain exposed. + +These compounding challenges make retrofitting quantum security onto existing chains extraordinarily difficult. Quantus Network sidesteps this by building quantum security into the chain from day one. + +**4. Quantus Network Architecture** + +Foundation + +Quantus Network is built on Substrate, a blockchain SDK developed by Parity Technologies, the team behind Ethereum and Polkadot. Substrate is highly modular, enabling easy replacement of components so we can focus on what makes Quantus unique. + +Quantus upgrades Substrate by: + +- Adding support for post-quantum signature schemes +- Upgrading the p2p networking security to be post-quantum +- Adding user-controlled transaction reversibility +- Making the database zk-friendly by aligning all data types to field-element boundaries + +Post-Quantum Cryptographic Primitives + +Quantus Network employs NIST-standardized PQC to ensure the security of transactions and network communications against quantum threats. At the core of transaction integrity is ML-DSA (Module-Lattice-based Digital Signature Algorithm, formerly known as CRYSTALS-Dilithium), a lattice-based signature scheme selected for its balance of security, efficiency, and ease of implementation. ML-DSA leverages the hardness of problems like Learning With Errors (LWE) and Short Integer Solution (SIS) over module lattices, providing robust resistance to both classical and quantum attacks, including those from Shor's algorithm. [4] + +For transaction signatures, Quantus integrates ML-DSA-87, the parameter set offering the highest security level (NIST Security Level 5, equivalent to 256-bit classical and 128-bit quantum security) to protect against potential cryptanalytic breakthroughs in lattice problems. This choice prioritizes caution, as lattice cryptography is relatively new and less battle-tested than classical schemes. The larger parameters mitigate risks from potential advances in lattice cryptanalysis, which would still leave smaller key sizes as softer targets. + +**Alternatives** + +ML-DSA was selected over alternatives like FN-DSA (Falcon) due to + +- FN-DSA's greater implementation complexity (e.g., requiring floating-point operations, which are blockchain-unfriendly) +- lack of deterministic key generation in its specification +- its non-finalized status at the time of development + +Hash-based options like SLH-DSA were not chosen because of their even larger signature sizes (exceeding 17 KB). Crypto-agility (being able to swap in different signature schemes) is built into Substrate, so it is relatively easy to add these alternatives at a future date, should circumstances demand. + +While ML-DSA-87 results in larger keys and signatures, these are manageable in Quantus's early-stage network, where storage is not yet a bottleneck, and optimizations like wormhole addresses via zero-knowledge proofs will address scaling. + +For technical details about the implementation see QIP-0006. + +**Libp2p** + +Quantus Network secures peer-to-peer (P2P) node communications using a combination of ML-DSA for authentication and ML-KEM (Module-Lattice-based Key Encapsulation Mechanism, formerly CRYSTALS-Kyber) for encryption. This integration extends PQC to the libp2p networking stack, modifying core components for quantum resistance: using ML-DSA-87 signatures for peer identity and ML-KEM-768 for transport security (extending the Noise handshake with an additional KEM message for quantum-resistant shared secrets). [5] + +The P2P layer is often neglected in quantum-security analysis. Authentication of peers is important, but the worst an attacker could do at the peer level is impersonate a node and send invalid messages, which could result in denial-of-service. This attack is already mitigated by the fact that nodes are generally untrusted in the blockchain model and nodes can easily switch their keys if the attack is detected. Likewise, decrypting P2P communications yields limited attacker benefits (e.g., tracking transaction paths, mitigated by proxies or Tor), and most data becomes public on-chain anyway. + +Nevertheless, quantum-securing the P2P layer protects against eavesdropping, man-in-the-middle attacks, and quantum decryption, ensuring that node gossip, block propagation, and other network interactions remain confidential and tamper-proof for the foreseeable future. + +For technical details about the implementation see QIP-0004. + +Scaling PQC + +To address the scaling challenges inherent in post-quantum cryptography, Quantus Network introduces an innovative aggregated post-quantum signature scheme called "Wormhole Addresses". This system leverages zero-knowledge proofs (ZKPs) generated via the Plonky2 proving system (basically STARKs) to move balance verification off-chain, allowing the chain to verify a single compact proof without processing individual signatures. Wormhole Addresses enable the verification of a large number of transactions with one proof, with the public inputs (e.g., nullifiers, storage root, exit addresses, and amounts) becoming the primary limiting factor. This reduces the amortized per-transaction storage demands to approximately 256 additional bytes per transaction, much smaller than any known PQC signature scheme. + +The quantum security of the scheme derives from the use of the secure hash function Poseidon2 for commitments via FRI (Fast Reed-Solomon Interactive Oracle Proofs), instead of the quantum-vulnerable elliptic-curve pairings commonly used in SNARKs. + +Additionally the authentication secrets are hidden behind Poseidon2. Since secure hash functions are only quadratically weakened by Grover's algorithm, not broken, hash preimage proofs can serve as lightweight post-quantum signatures in ZK contexts, similar to hash-based schemes like SPHINCS+. + +**Client / Prover Flow ** + +Users generate a provably unspendable address by double-hashing a salt concatenated with a secret + +H(H(salt | secret)) + +This construction prevents false positives (e.g., mistaking a single-hash public key for an unspendable address) because in Substrate (and generally) blockchain addresses are the single hash of a public key, which is derived from the private key via some algebraic operation, not via a secure hash. The security of the construction therefore reduces to finding the preimage-of-a-preimage of a secure hash. Tokens sent to this address are effectively burned. They cannot be spent because no private key exists for the address that received them. These coins can therefore be re-minted without inflating supply. + +For each transfer, a TransferProof storage object is created, containing details like a unique global transfer count. The user's wallet generates a Merkle-Patricia-Trie (MPT) storage proof from a recent block header's storage root to the leaf for this TransferProof. A nullifier is computed + +H(H(salt | secret | global\_transfer\_count)) + +to prevent double-spends, with the secret derived deterministically from the wallet seed for retention. + +**Aggregator Flow: ** + +Any party (client, miner, or third-party) can aggregate multiple proofs using Plonky2's recursion, forming a tree of proofs where each parent proof is a verification of the child proofs, with the child proofs' public inputs aggregated: + +- nullifiers pass unchanged +- exit addresses are deduplicated +- block hashes are proven to be linked and then all but the most recent is dropped +- amounts for duplicate exit addresses are summed + +This recursion supports hierarchical aggregation, drastically reducing on-chain data. + +**Chain / Verifier Flow: ** + +The network verifies the aggregated proof by checking: + +- block hash is on chain and recent +- nullifier uniqueness (to prevent double-spends) +- proof validity + +The ZK circuit enforces: + +- storage proof correctness +- nullifier computation accuracy +- address unspendability +- balance match between inputs and outputs +- block header linkage + +Plonky2 was selected for the following reasons + +- already audited +- post-quantum +- no trusted setup +- efficient proving/verification +- seamless proof aggregation +- Rust-native implementation +- compatible with Substrate's no-std environment + +Performance highlights include recursive proofs in 170 milliseconds and compact sizes (100 KB per aggregated proof), enabling massive throughput gains. In an optimal case with 5 MB blocks and all transactions going to the same output, Wormhole Addresses could pack \~153,000 transactions into a single block (4.9 MB / 32 bytes per nullifier), a 223x improvement over \~685 raw ML-DSA transactions (5 MB / 7.3 KB each). + +**Security Notes: ** + +Potential risks include inflation bugs from faulty circuit/verification implementations, although this would be economically detectable if re-minted coins exceed balances of zero-send addresses. Users can optionally prove an address is a wormhole by publishing the first hash without revealing the secret. Verification transactions are unsigned, so denial-of-service via failed transactions needs to be mitigated non-financially. Token supply calculations are maintained, as re-mints appear as new coins but maintain maximum supply guarantees via burns. + +For more technical details about the implementation see QIP-0005. + +Consensus Mechanism + +Quantus Network uses a Proof-of-Work (PoW) consensus algorithm that preserves the desirable properties of Bitcoin's consensus algorithm while improving compatibility with ZK-proof systems by switching out SHA-256 with Poseidon2. + +Importantly, this change is not being made for quantum security. Cryptographic hash functions like SHA-256 are weakened but not destroyed by quantum algorithms, notably Grover's. Some post-quantum signature schemes use secure hashes as a building block for this reason. + +Poseidon2 is a refinement of the Poseidon hash function. Creating SNARKs or STARKs for computations involving traditional hash functions like SHA-256 often requires nearly 100x the number of gates compared to using Poseidon, which relies entirely on algebraic functions over field elements, instead of bit-level operations. + +We use the Goldilocks field for both Poseidon2 and Plonky2. The Goldilocks field's order fits in a unsigned 64 bit integer, which increases efficiency without compromising soundness.   + +**5. Wealth Preservation** + +There are many risks in managing cryptocurrency keys. Most of them are avoidable. + +Reversible Transactions + +Quantus Network offers user-configurable reversible transactions. Senders set a time window during which they can cancel outgoing transfers. This deters theft and corrects errors without sacrificing finality. The system uses a modified Substrate "scheduler pallet" with timestamps. Wallets display countdowns for both sender (with a cancel button) and recipient. + +Reversible transactions enable novel security protocols while maintaining decentralization through onchain enforcement. + +For more technical details see QIP-0009. + +Check-Phrases + +Quantus Network introduces "check-phrases," a cryptographically-secure human-readable checksum for blockchain addresses. The address is hashed to generate a short sequence of memorable words from the BIP-39 mnemonic list. Check-phrases protect against typos, tampering, and address poisoning attacks. A 50,000 iteration key derivation function makes rainbow table attacks expensive. For large transactions, users should still verify every character of the address. + +For more technical detail please see QIP-0008. + +High-Security Accounts + +Any account can be upgraded to a "high-security account" with mandatory reversal periods on all outgoing transfers. A designated "guardian" (hardware wallet, multisig, or trusted third party) can cancel suspicious transactions during the reversal period, sending funds to the guardian instead of the sender or receiver. This opt-in feature is permanent once activated, preventing thieves from disabling it. + +Guardians can be chained: a high-security account's guardian can itself be a high-security account with its own guardian. This creates composable hierarchies where each guardian has superior permissions to the account it protects. The design gives users time to detect and respond to unauthorized activity without compromising finality for legitimate transfers. + +For more technical details see QIP-0011. + +Key Recovery + +Many crypto-fortunes have gone to the grave with their owners. Quantus Network offers a simple way to specify a recovery address that can pull your funds at any time, subject to a fixed delay. During this time, the owner can deny recovery if they have access to the key. This feature enables survivorship: users have an onchain will without the need for courts or estates. + +HD-Lattice + +Hierarchical Deterministic (HD) wallets are the industry standard for blockchains, allowing users to back up one seed phrase for all keys, improving security and convenience over manual backups per action. Adapting this to lattice schemes like Dilithium involves two challenges: + +- HMAC-SHA512 outputs can't directly form lattice private keys, which are polynomials sampled from a ring with certain properties. +- Non-hardened key derivation relies on elliptic curve addition, absent in lattices (public keys aren't closed under any algebraic operation). + +Quantus Network addresses the first issue by using the output of the HMAC as entropy to deterministically construct the private key, not as the private key itself. The second issue is less critical and remains an open research question whether lattice cryptography can be adapted to address it. + +For more technical details see QIP-0002. + +**6. Tokenomics and Governance** + +Quantus Network exists in a changing environment, and we cannot assume that we will get everything right on the first try. For this reason, we choose a simple starting point and allow the governance system to make changes as new information is acquired. This design makes the blockchain a living entity that can adapt to its environment at will. In particular, the Substrate governance process allows deep changes to the chain with minimal coordination among the various node-runners. + +Block Rewards + +Quantus Network employs a straightforward tokenomics model imitating that of Bitcoin. There is a maximum supply of 21,000,000 coins and a simple heuristic determines the reward each block. + +```javascript +block_reward = (max_supply - current_supply) / constant +``` + +This heuristic forms a smooth exponentially decaying curve as the block\_reward contributes to the current\_supply which reduces the block\_reward computed at the next block. Any burns from fees or otherwise reduce current\_supply and essentially become part of the budget for block rewards. The constant is chosen so that, in the absence of any burns, 99% of the coins will be emitted in about 40 years. + + + +Investor Allocations + +Quantus Network was built with the help of angel investors who took great risk in funding it. To avoid the supply overhangs that investor-lockups create, all investors, public and private, will be fully liquid on day one. This allocation will be the only "pre-mine". All other tokens will have to be mined into existence. Depending on the success of public sales this portion will represent 20-30% of the total supply. + +Company Allocations + +To compensate the team for taking the risk to build new technology with no promise of success, a portion of the block reward is sent to the company for approximately four years. This gives a de facto vesting schedule of about 10% of the total supply to the company. + +After that point, the company's portion of block rewards will be redirected to a treasury governed by token holders, essentially forming a DAO. + + + +Transaction Fees + +Standard transactions have a fee that goes to miners, providing an incentive to include transactions. Reversed transactions from high-security accounts are charged a volume-based fee of 1% that is burned, essentially adding it to the security budget. Transactions that go thru the zk aggregation system are also subject to a volume-based fee of 0.1%, which is split evenly between the miner and a burn. + +Forkless Upgrades + +Quantus Network supports "forkless" upgrades through Substrate's runtime upgrades, allowing the blockchain's core logic (the "runtime") to evolve without hard forks that could disrupt the network or split the community. This is achieved via on-chain governance referenda, where approved proposals trigger a runtime swap, essentially replacing the existing WASM code blob with a new one in a single block, ensuring continuity of state and operations. This upgrade path minimizes downtime and risks, empowering the community to iteratively refine the protocol as real world usage reveals potential improvements. + +As the community gains confidence in the system over time, the power to change the runtime will be significantly reduced to limit the attack surface, should a malicious actor obtain control of the upgrade process. + +Governance System + +Quantus Network inherits its governance framework from Polkadot's OpenGov system via Substrate. Token holders participate via conviction voting, where they agree to lock their assets for varying periods to amplify their vote's weight. This amplification can range from 1x (no lock) to 6x (maximum lockup). This design encourages long-term alignment by tying influence to commitment. + +Proposals are categorized into multiple voting tracks called "origins". Each origin has tailored parameters like approval thresholds (e.g., supermajority for high-impact changes), minimum deposits to deter spam, preparation/enactment periods, and decision timelines to prevent gridlock. This multi-track design allows parallel processing of diverse referenda, from routine treasury spends to critical runtime upgrades. + +The Technical Collective is a curated group of technical experts serving as a specialized body to propose, review, or whitelist urgent technical matters, expediting them through a dedicated track while maintaining community oversight. + +Quantus adopts this system without modifications but starts with a minimalistic setup to avoid complexity in its early stages. Initially, only the Technical Collective track is active, which will be used for binding, high-privilege decisions like protocol upgrades or parameter tweaks. + +Later, Quantus can add a non-binding community vote track for gauging sentiment on non-enforceable topics, such as feature suggestions or ecosystem polls. This system will become binding when the company turns the network over to the DAO. + +This phased approach allows the network to evolve organically via future governance votes without burdening users with unnecessary complexity at the beginning. + +**7. Roadmap** + +The current roadmap through 2026, subject to change: + +- Heisenberg Inception - December 2024 - Funding Secured, Substrate Chosen +- Resonance Alpha - July 2025 - Public Testnet, Dilithium Signatures, Reversible Transactions +- Schrödinger Beta - October 2025 - Feature Complete, Ready for Audit +- Dirac Beta - November 2025 - PoW changed to Poseidon2, Audits Addressed +- Planck Beta - January 2026 - High Security Accounts, Multisigs, Hardware Wallet, ZK Integration +- Bell Mainnet - Q2 2026 - Mainnet Launch +- Fermi Upgrade - Q4 2026 - ZK Proof Aggregation Infrastructure + +**8. Risks** + +Building Quantus Network comes with inherent risks. + +- Implementation Issues: Flaws in software logic can cause serious failures in even the best designed systems. +- NIST Algorithm Selection Issues: Potential flaws or backdoors in selected post-quantum standards (e.g., ML-DSA, ML-KEM) that could emerge post-standardization. In the worst case, such flaws would allow an attacker to forge signatures by deriving a private key from the public, representing a catastrophic failure mode of the chain. If such flaws were made public, Quantus Network could be upgraded to a new algorithm, but if such flaws are exploited sparingly they may never be discovered. +- Quantum Computing Timelines: Quantum breakthroughs might arrive much later than anticipated, delaying the need for PQC; conversely, secretive development (e.g. by governments) could lead to sudden threats if the blockchain community fails to update swiftly. +- Other Considerations: General adoption barriers, regulatory uncertainties in finance/blockchain, and the inherent volatility of crypto ecosystems. + +**9. References & Further Reading** + +1. Shor, P. W. (1997). Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. *SIAM Journal on Computing*, 26(5), 1484–1509. [https://doi.org/10.1137/S0097539795293172](https://doi.org/10.1137/S0097539795293172) +2. Grover, L. K. (1996). A fast quantum mechanical algorithm for database search. *Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing*, 212–219. [https://doi.org/10.1145/237814.237866](https://doi.org/10.1145/237814.237866) +3. Chainalysis. (2024). The Chainalysis 2024 Crypto Crime Report. [https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/](https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/) +4. National Institute of Standards and Technology. (2024). FIPS 204: Module-Lattice-Based Digital Signature Standard (ML-DSA). U.S. Department of Commerce. [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf) +5. National Institute of Standards and Technology. (2024). FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM). U.S. Department of Commerce. [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf) +6. Häner, T., Jaques, S., Naehrig, M., Roetteler, M., & Soeken, M. (2020). Improved quantum circuits for elliptic curve discrete logarithms. *arXiv preprint arXiv:2002.12480*. [https://arxiv.org/abs/2002.12480](https://arxiv.org/abs/2002.12480) +7. Gidney, C., & Ekerå, M. (2021). How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits. *arXiv preprint arXiv:1905.09749*. [https://arxiv.org/abs/1905.09749](https://arxiv.org/abs/1905.09749) +8. Aggarwal, D., et al. (2021). Assessment of Quantum Threat To Bitcoin and Derived Cryptocurrencies. *ePrint IACR*. [https://eprint.iacr.org/2021/967.pdf](https://eprint.iacr.org/2021/967.pdf) +9. Roetteler, M., Naehrig, M., Svore, K. M., & Lauter, K. (2017). Quantum resource estimates for computing elliptic curve discrete logarithms. *arXiv preprint arXiv:1706.06752*. [https://arxiv.org/abs/1706.06752](https://arxiv.org/abs/1706.06752) +10. Open Quantum Safe Project. (n.d.). ML-DSA | Open Quantum Safe. Retrieved January 29, 2026, from https://openquantumsafe.org/liboqs/algorithms/sig/ml-dsa.html diff --git a/website/src/contents/zh-CN/whitepaper.md b/website/src/contents/zh-CN/whitepaper.md new file mode 100644 index 0000000..5bc0229 --- /dev/null +++ b/website/src/contents/zh-CN/whitepaper.md @@ -0,0 +1,393 @@ +--- +title: "Quantus 白皮书" +description: "Quantus Network 官方白皮书,详细介绍我们的量子安全第一层区块链架构、后量子密码学和代币经济学。" +pubDate: "2026-02-05" +heroImage: "/blog/covers/whitepaper.jpeg" +heroAlt: "Quantus Network 白皮书" +featured: true +tags: + [ + "whitepaper", + "post-quantum-cryptography", + "blockchain", + "quantus-network", + "dilithium", + "zero-knowledge-proofs", + ] +--- + +# **Quantus Network 白皮书 v0.3.2** +## **法律免责声明** + +本白皮书仅供信息参考之用,不构成出售要约、购买要约的招揽,亦不构成对任何证券、投资或金融产品的推荐。读者在做出任何投资决策前,应自行进行尽职调查,并咨询合格专业人士。Quantus Network 不对本文信息的准确性或完整性做出任何陈述或保证。 + +**术语表** + +- **CRQC** (Cryptographically Relevant Quantum Computer) 对密码学具有实际影响的量子计算机(或“密码学相关量子计算机”) 指一台容错、规模足够大的量子计算机,能够在合理时间内(如数月内)运行Shor算法破解当前公钥密码(如ECC或RSA)。不同于当前噪声中间规模量子(NISQ)设备,后者尚无法实现密码学级攻击。 +- **Quantum-resistant** / **Post-quantum** 抗量子 / 后量子 指能抵抗量子计算机攻击的密码学方案(包括NIST标准化的算法)。 +- **ML-DSA** (Module-Lattice-based Digital Signature Algorithm, 前身为CRYSTALS-Dilithium) 模块格数字签名算法(ML-DSA) +- **ML-KEM** (Module-Lattice-based Key-Encapsulation Mechanism, 前身为CRYSTALS-Kyber) 模块格密钥封装机制(ML-KEM) +- **Non-hardened key derivation** 非硬化密钥派生 在HD钱包中,指不使用硬化路径的密钥派生方式(依赖代数运算,在格密码学中实现更具挑战)。 +- **Wormhole Addresses** 虫洞地址(或建议备选:跃迁地址 / 聚合地址 / 零知识隧道地址) Quantus特有的ZK聚合地址系统,利用Plonky2证明实现高效后量子交易聚合。 +- **Check-phrases** 校验短语(或人类可读校验短语) 人类可读的地址校验和,基于BIP-39词表生成,用于防范地址错误或投毒攻击。 + +# **1. 引言** + +## **量子威胁** + +传统区块链正面临来自 CRQCs 的存在性威胁。区块链的密码学基础依赖于离散对数问题(DLP)的难度,而量子算法(特别是Shor算法)能够以指数级速度更快地求解 DLP。这种漏洞可能使量子攻击者从公钥推导出私钥,从而伪造交易并解密敏感金融数据。 + +这将导致灾难性的系统性失败。如果不主动进行抗量子升级,万亿美元规模的加密经济将面临由此类攻击导致的突发性贬值风险。 + +## **独特价值主张** + +Quantus Network 以拉丁语"多少"(how much)命名,旨在实现可扩展的、量子安全的、私密货币。Quantus 并非通用智能合约平台。它专注于在少数几件事上做得比其他链更好,就像一家菜品不多但每道菜都做到极致的餐厅,Quantus 提供: + +• 所有交易均使用后量子签名 + +• 用于保护点对点连接的后量子签名和加密(ML-DSA 和 ML-KEM) + +• 可扩展的后量子零知识证明 + +• 高安全性账户,用于防止盗窃并从错误中恢复 + +• 人类可读的校验短语,便于地址验证 + +专注于可扩展、量子安全、私密货币的决定,源于 CRQCs 对行业的威胁以及比特币在应对这些挑战上的不足。 + +# **2. 区块链面临的量子威胁** + +## **量子计算基础** + +量子计算机利用叠加和纠缠等原理,能够执行传统计算机难以处理的计算。与经典比特(仅为 0 或 1)不同,量子比特(qubits)可同时处于多种状态,从而针对某些问题实现指数级并行。这项能力对区块链金融的密码系统构成存在性风险,因为专为量子硬件开发的算法(如 Shor 算法)破坏了大多数公钥密码的安全假设。 + +Shor算法由 Peter Shor 于 1994 年提出,为量子计算机上分解大整数和解决离散对数问题(DLP)提供了多项式时间的方法。本质上,它利用量子傅里叶变换(QFT)找到函数周期,从而高效逆转 RSA 或椭圆曲线密码学(ECC)等方案的单向陷门函数。对于区块链金融,这意味着拥有足够强大 CRQC(估计约 2,000 个逻辑量子比特 [6][7][8][9])的攻击者,可以在多项式时间 O(n³) 内从公钥推导出私钥。这种极端加速将使脆弱的系统在一夜之间实效。[1] + +Grover算法由 Lov Grover 于 1996 年提出,为非结构化搜索问题提供二次加速,将在无序数据库中查找特定项的时间从 O(n) 降至 O(√n)次 操作。它通过量子干涉迭代放大目标状态的幅度。虽然对非对称密码学的破坏性不如Shor算法,但Grover算法影响对称原语如哈希函数和 AES 加密,实际上将安全水平减半(例如,256 位密钥在量子攻击下相当于 128 位)。尽管有影响,此攻击可通过简单地将安全位数加倍来缓解,而无需更改密码学方案。此外,由于Grover算法的二次加速需要高量子比特和门要求,需要数十亿次顺序操作,并行化能力有限,使得即使在未来硬件上也难以实现真实世界逆转。[2] + +量子计算对区块链金融的危险可归类为四个领域: + +**• 伪造数字签名:**Shor算法直接威胁大多数区块链使用的基于 ECC 的签名(例如比特币的 secp256k1 曲线),使攻击者能够冒充用户并授权欺诈交易。这种能力将代表区块链最基本功能的严重失效。 + +**• 在零知识系统中伪造虚假证明:**许多零知识证明(如隐私金融中的 zk-SNARKs)依赖椭圆曲线配对的离散对数难度用于承诺;Shor算法可能创建看似有效的无效证明,从而允许攻击者铸造新币或伪造 Layer-2(L2)状态。 + +**• 解密秘密信息:**量子攻击可能暴露隐私协议(如 Zcash 或 Monero)中由易受攻击公钥方案保护的加密数据。它还可能解密金融协议中的 P2P 通信,暴露敏感财富细节并使针对性盗窃成为可能。 + +**• 逆转哈希函数:**Grover算法可加速对 SHA-256 等哈希的原像攻击(用于工作量证明和地址生成),但这是最不严重的威胁。许多后量子密码方案采用基于哈希的构造,因为足够大的摘要被视为足够安全。 + +## **后量子密码学的扩展挑战** + +虽然后量子密码学(PQC)提供对抗量子威胁的必要保护,但由于这些算法的固有设计,它引入了重大的扩展障碍。与依赖紧凑数学结构的椭圆曲线方案不同,PQC 原语需要更大的参数来维持对经典和量子攻击者的安全性。这导致公钥、私钥和签名大幅增大,通常达到数量级。以下表格展示了 128 位后量子安全水平的 ML-DSA 与经典对应方案(如 256 位 ECDSA)的典型大小比较 [10]: + +| **算法** | **公钥大小(字节)** | **私钥大小(字节)** | **签名大小(字节)** | +| ML-DSA-87 (Dilithium) | 2,592 | 4,896 | 4,627 | +| ECDSA (256-bit) | 32 | 32 | 65 | + +如表所示,ML-DSA 签名可能比 ECDSA 等效方案大 70 倍以上,公钥大 80 倍以上。其他 PQC 系列加剧了这一问题:基于哈希的方案如 SPHINCS+ 可能产生高达 41 KB 的签名,即使是大小优化的格变体如 FALCON 也显著超过经典方案的大小数倍。 + +在区块链环境中,这些膨胀的大小会积累成系统性扩展问题。更大的签名会使单个交易膨胀,导致区块更快填满、验证时间更长,从而降低每秒交易数(TPS)。这还会增加 点对点(P2P) 通信压力,提高带宽需求和传播延迟,可能加剧在工作量证明等共识机制中的网络分叉或孤块风险。存储需求也会受影响,导致节点运营成本上升和参与门槛提高,特别是对于资源受限用户或验证者。 + +这些扩展挑战未来**所有区块链**都必须面对。例如,如果不增加最大区块大小,比特币的 TPS 将远低于 1。 + +# **3. 迁移危机** + +## **协调问题** + +比特币的保守文化抵制协议变更。任何后量子密码学(PQC)升级都需要就迁移时间表、潜在币没收以及区块大小增加等争议性问题达成共识。即使社区达成一致,每个用户也必须将自己的币迁移到新的量子安全地址。迁移需要每个加密货币持有者采取行动,其中许多人已失去钱包访问权限或仍未意识到这一威胁。 + +这些问题存在于每个公链中,但由于领导力缺失和技术固化,使得其对于比特币而言尤其具有挑战性。 + +## **丢失币问题** + +据估计,价值 2500 亿至 5000 亿美元的比特币因丢失密钥、持有人去世或遗忘钱包而永久无法访问。[3] 这些币无法迁移,并成为创建 CRQC 的公开赏金。量子攻击者将从暴露的未迁移公钥中推导出私钥,并很可能将数十亿美元的 BTC 抛售到市场上。 + +技术上,唯一阻止此情况的方法是设定硬性截止日期以某种方式冻结未迁移币,但这在政治上不可能。比特币社区将不得不没收未采取行动用户的资金,包括已故持有者的遗产以及未关注此事的长期投资者。如果没有这样的截止日期,未迁移币将被窃取并出售,导致市场崩盘并摧毁对加密网络的信心。 + +## **迁移时间表问题** + +即使成功迁移,也会面临扩展壁垒。后量子签名比当前比特币签名大 20-80 倍。如果不进行根本性架构变更,比特币的吞吐量将崩溃至其已有限容量的几分之一。 + +假设比特币解决了政治和技术挑战,迁移本身也将耗时数月或数年。每个持有者至少需提交一笔交易将资金转移至量子安全地址。许多人会先发送测试交易。随着膨胀的 PQC 签名阻塞吞吐量,网络将面临数月或数年的积压,而量子易受攻击的币仍暴露在外。 + +这些复合挑战使得在现有链上改造量子安全性极其困难。Quantus Network 通过从第一天起将量子安全性构建到链中来规避此问题。 + +# **4. Quantus Network 架构** + +## **基础** + +Quantus Network 基于 Substrate 构建,这是一个由 Parity Technologies(Ethereum 和 Polkadot 背后的团队)开发的区块链 SDK。Substrate 具有高度模块化特性,便于替换组件,从而让我们能够专注于 Quantus 的独特之处。 + +Quantus 对 Substrate 的升级包括: + +• 添加对后量子签名方案的支持 + +• 将 P2P 网络安全升级为后量子级别 + +• 添加用户可控的交易可逆转功能 + +• 通过将所有数据类型对齐到域元素边界,使数据库对零知识证明友好 + +## **后量子密码原语** + +Quantus Network 采用 NIST 标准化的后量子密码学(PQC),以确保交易和网络通信免受量子威胁的影响。交易完整性的核心是 ML-DSA(基于模格的数字签名算法,前身为 CRYSTALS-Dilithium),这是一种基于格的签名方案,因其在安全性、效率和易实现性之间的平衡而被选中。ML-DSA 利用模格上的带错误学习(LWE)和短整数解(SIS)等问题的难度,对经典和量子攻击(包括Shor算法)都提供了强大的抵抗力。[4] + +对于交易签名,Quantus 集成 ML-DSA-87 参数集,该参数集提供最高安全级别(NIST 安全级别 5,相当于 256 位经典安全和 128 位量子安全),以防范格问题中潜在的密码分析突破。这一选择优先考虑谨慎,因为格密码学相对较新,与经典方案相比经受过实战检验较少。更大的参数有助于降低格密码分析潜在进展的风险,而较小密钥尺寸仍将是更易受攻击的目标。 + +### **备选方案** + +选择ML-DSA 而非 FN-DSA(Falcon)等替代方案的原因包括: + +• FN-DSA 实现复杂度更高(例如需要浮点运算,这对区块链不友好) + +• 其规范中缺乏确定性密钥生成 + +• 在开发时标准尚未最终确定 + +基于哈希的选项如 SLH-DSA 未被选用,是因为其签名尺寸更大(超过 17 KB)。Substrate 内置了密码敏捷性(crypto-agility),因此在未来可以根据需要轻松添加这些备选方案。 + +虽然 ML-DSA-87 导致密钥和签名较大,但在 Quantus 的早期网络中这些大小是可管理的,因为存储尚未成为瓶颈,并且通过零知识证明实现的虫洞地址( Wormhole Addresses) 等优化将解决扩展性问题。 + +有关实现的技术细节,请参阅 QIP-0006。 + +## **Libp2p** + +Quantus Network 使用 ML-DSA 进行身份验证和 ML-KEM(基于模格的密钥封装机制,前身为 CRYSTALS-Kyber)进行加密,来保护点对点(P2P)节点通信。这一集成将PQC扩展到 libp2p 网络栈,修改核心组件以实现抗量子性:使用 ML-DSA-87 签名作为节点身份验证,并使用 ML-KEM-768 进行传输安全(通过在 Noise 握手协议中添加额外的 KEM 消息来实现抗量子的共享密钥)。[5] + +P2P 层在量子安全分析中常被忽视。节点认证很重要,但攻击者在节点层面能做的最坏情况也只是冒充节点并发送无效消息,这可能导致拒绝服务(DoS)。这种攻击已经通过以下事实得到缓解:区块链模型中节点普遍不被信任,且节点可在检测到攻击时轻松更换密钥。同样,解密 P2P 通信给攻击者带来的收益有限(例如跟踪交易路径,可通过代理或 Tor 缓解),且大多数数据最终会在链上公开。 + +尽管如此,对 P2P 层进行量子保护可防范窃听、中间人攻击和量子解密,确保节点 gossip、区块传播和其他网络交互在可预见的未来保持机密且防篡改。 + +有关实现的技术细节,请参阅 QIP-0004。 + +## **扩展 PQC** + +为了应对后量子密码学固有的扩展性挑战,Quantus Network 引入创新的聚合后量子签名方案——Wormhole Addresses(虫洞地址)。该系统利用 Plonky2 证明系统(本质上是 STARKs)生成的零知识证明(ZKPs),将余额验证移至链下,从而允许链上仅验证单个紧凑证明而无需处理单个签名。Wormhole Addresses 可通过单一证明验证大量交易,公共输入(如 nullifier、存储根、退出地址和金额)成为主要限制因素。这将每笔交易的平均链上存储需求降至约 256 额外字节,远低于任何已知 PQC 签名方案。 + +该方案的量子安全性源于使用安全的哈希函数 Poseidon2 通过 FRI(快速 Reed-Solomon 交互式预言机证明)进行承诺,而不是 SNARKs 中常用的易受量子攻击的椭圆曲线配对。 + +此外,身份认证密匙隐藏在 Poseidon2 之后。由于安全哈希函数仅被Grover算法二次削弱而未被破解,哈希原像证明可在 ZK 上下文中作为轻量级后量子签名,类似于基于哈希的方案如 SPHINCS+。 + +### **客户端 / 证明者流程** + +用户通过对盐(salt)和秘密(secret)的双重哈希生成一个可证明不可花费的地址: + +*H(H(salt | secret))* + +这一构造防止假阳性(例如将单哈希公钥误认为是不可花费地址),在 Substrate(以及大多数区块链)中,地址通常是公钥的单哈希,而公钥通过代数运算从私钥派生,而非安全哈希。因此,该构造的安全性最终归结为寻找哈希原像的原像。发送到该地址的代币实际上已被“销毁”(因无对应私钥,无法花费),这些币可在不增加总供应的情况下被重新铸造。 + +对于每笔转账,会创建一个 TransferProof 存储对象,包含唯一全局转账计数等细节。用户钱包从最近区块头存储根生成 Merkle-Patricia-Trie(MPT)存储证明,到该 TransferProof 的叶子节点。nullifier 计算为: + +*H(H(salt | secret | global\_transfer\_count))* + +以防止双花,其中相关密钥从钱包种子确定性派生,确保用户可保留控制。 + +### **聚合者流程** + +任何一方(客户端、矿工或第三方)均可使用 Plonky2 的递归功能聚合多个证明,形成证明树,其中每个父证明验证其子证明,子证明的公共输入被聚合: + +• nullifier 保持不变传递 + +• 退出地址去重 + +• 区块哈希被证明链接,然后除最新外全部丢弃 + +• 重复退出地址的金额求和 + +这种递归支持分层聚合,大幅减少链上数据。 + +### **链上 / 验证者流程** + +网络通过检查以下内容验证聚合证明: + +• 区块哈希在链上且近期 + +• nullifier 唯一性(防止双花) + +• 证明有效性 + +ZK 电路强制执行: + +• 存储证明正确性 + +• nullifier 计算准确性 + +• 地址不可花费性 + +• 输入输出余额匹配 + +• 区块头链接 + +选择Plonky2 的原因包括: + +• 已审计 + +• 后量子 + +• 无需可信设置 + +• 高效证明/验证 + +• 无缝证明聚合 + +• Rust 原生实现 + +• 与 Substrate 的 no-std 环境兼容 + +性能亮点包括递归证明在 170 毫秒内完成,聚合证明大小紧凑(每个 100 KB),实现巨大吞吐量提升。在最优情况下,使用 5 MB 区块且所有交易指向同一输出,Wormhole Addresses 可在单个区块(4.9 MB /每个 nullifier 32 字节)中打包约 153,000 笔交易,相比约 685 笔原始 ML-DSA 交易(5 MB / 7.3 KB 每笔)提升 223 倍。 + +### **安全说明** + +潜在风险包括故障电路/验证实现导致的通胀漏洞,但若重新铸造币超过零发送地址余额,则可通过经济手段检测。用户可选择通过发布第一个哈希(不透露秘钥)来证明地址为 wormhole。验证交易为无签名的,因此需通过非金融方式来缓解失败交易导致的拒绝服务攻击。代币供应计算保持不变,因为重新铸造表现为新币,但通过销毁维持最大供应保证。 + +有关实现的更多技术细节,请参阅 QIP-0005。 + +## **共识机制** + +Quantus Network 使用工作量证明(PoW)共识算法,该算法保留了比特币共识算法的理想属性,同时通过将 SHA-256 替换为 Poseidon2 来提升与 ZK 证明系统的兼容性。 + +重要的是,这一变更并非出于量子安全考虑。像 SHA-256 这样的密码哈希函数虽被量子算法(特别是格罗弗)削弱,但并未被破解。一些后量子签名方案正是因此使用安全哈希作为构建模块。 + +Poseidon2 是 Poseidon 哈希函数的改进版本。在涉及传统哈希函数(如 SHA-256)的计算中创建 SNARKs 或 STARKs 通常需要比使用Poseidon多近 100 倍的门数,而 Poseidon 完全依赖域元素上的代数函数,而非位级操作。 + +我们在 Poseidon2 和 Plonky2 中均使用 Goldilocks 域。Goldilocks 域的阶适合无符号 64 位整数,从而提升效率而不损害 可靠性。 + +# **5. 财富保护** + +管理加密货币密钥存在许多风险,其中大多数是可以避免的。 + +## **可逆转交易** + +Quantus Network 提供用户可配置的可逆转交易。发送者可设定一个时间窗口,在此期间可以取消发出的转账。这一功能威慑盗窃并纠正错误,同时不牺牲最终性。该系统使用有时间戳的修改版 Substrate "scheduler pallet" 。钱包会为发送者(附带取消按钮)和接收者均显示倒计时。 + +可逆转交易在保持链上强制执行的去中心化前提下,启用新型安全协议。 + +有关更多技术细节,请参阅 QIP-0009。 + +## **校验短语** + +Quantus Network 引入"校验短语"(check-phrases),这是一种密码学安全的、人类可读的区块链地址校验和。地址经过哈希生成来自 BIP-39 助记词列表的简短易记单词序列。校验短语可防范打字错误、篡改和地址投毒攻击。采用 50,000 次迭代的密钥派生函数,使彩虹表攻击成本高昂。对于大额交易,用户仍应逐字符验证地址。 + +有关更多技术细节,请参阅 QIP-0008。 + +## **高安全性账户** + +任何账户均可升级为"高安全性账户",所有转出交易均强制带有可逆转期。指定的"守护者"(硬件钱包、多签或可信第三方)可在逆转期内取消可疑交易,并将资金发送至守护者而非发送者或接收者。这一可选功能一旦激活即永久生效,防止盗贼将其禁用。 + +守护者可链式组合:高安全性账户的守护者本身也可以是高安全性账户,拥有自己的守护者。这创建了可组合的层级结构,其中每个守护者对其保护的账户拥有更高权限。该设计为用户提供时间来检测并响应未经授权的活动,同时不损害合法转账的最终性。 + +有关更多技术细节,请参阅 QIP-0011。 + +## **密钥恢复** + +许多加密财富随持有者离世而消失。Quantus Network 提供一种简单方式来指定恢复地址,该地址可随时提取资金,但需经过固定的延迟期。在此期间,如果原持有者仍能访问密钥,可拒绝恢复。这一功能实现生存性继承:用户拥有链上遗嘱,无需法院或遗产程序。 + +## **HD-Lattice** + +分层确定性(HD)钱包是区块链的行业标准,允许用户用一个种子短语备份所有密钥,比逐个手动备份更安全便捷。将此适配到如 Dilithium 等格方案涉及两个挑战: + +• HMAC-SHA512 输出无法直接形成格私钥,格私钥是从具有特定性质的环中采样的多项式。 + +• 非硬化密钥派生依赖椭圆曲线加法,而格中不存在(公钥在任何代数运算下均不封闭)。 + +Quantus Network 通过将 HMAC 输出用作熵来确定性构造私钥(而非直接作为私钥)来解决第一个问题。第二个问题相对不那么关键,格密码学能否适配以解决该问题仍是一个开放的研究问题。 + +有关更多技术细节,请参阅 QIP-0002。 + +# **6. 代币经济学与治理** + +Quantus Network 处于不断变化的环境中,我们不能假设第一次就能把一切都做对。因此,我们选择一个简单的起点,并允许治理系统随着新信息的获取而进行变更。这一设计使区块链成为一个能够随意适应环境的生命体。特别是 Substrate 的治理流程允许在各个节点运行者之间只需最少协调,即可对链进行深度变更。 + +## **区块奖励** + +Quantus Network 采用一种模仿比特币的简单代币经济学模型。最大供应量为 21,000,000 枚代币,每区块奖励由一个简单启发式公式决定: + +*block\_reward = (max\_supply - current\_supply) / constant* + +这一启发式公式形成一条平滑的指数衰减曲线,因为区块奖励会增加 current\_supply,从而降低下一区块计算出的区块奖励。任何来自费用或其他方式的销毁都会减少 current\_supply,并实质上成为区块奖励预算的一部分。常数的选择确保在没有销毁的情况下,99% 的代币将在约 40 年内发行完毕。 + +## **投资者分配** + +Quantus Network 在天使投资者的帮助下建成,他们承担了极大的风险。为避免投资者锁仓造成的供应悬垂,所有投资者(公开和私募)将在第一天完全流动。这一分配将是唯一的"预挖"。所有其他代币必须通过挖矿产生。根据公开销售的成功程度,这一比例将占总供应的 20-30%。 + +## **公司分配** + +为补偿团队在无成功保证的情况下构建新技术所承担的风险,区块奖励的一部分将在约四年内发送给公司。这形成了公司约占总供应 10% 的事实上的归属时间表。 + +此后,公司部分的区块奖励将被重定向至由代币持有者治理的财库,实质上形成一个 DAO。 + +## **交易费用** + +标准交易收取费用并支付给矿工,提供包含交易的激励。高安全性账户的可逆转交易收取基于交易量的 1% 费用,该费用被销毁,本质上将其添加到安全预算中。通过 ZK 聚合系统的交易也收取基于交易量的 0.1% 费用,该费用在矿工和销毁之间平均分配。 + +## **无分叉升级** + +Quantus Network 通过 Substrate 的运行时升级机制实现了"无分叉"升级,使区块链的核心逻辑("运行时")在不发生可能扰乱网络或分裂社区的硬分叉的情况下演进。这一升级通过链上治理公投实现:被批准的提案触发运行时替换,在单个区块中用新的 WASM 代码 blob 替换现有代码,确保状态和操作的连续性。这一升级路径将停机时间和风险降到最低,赋能社区根据真实世界使用情况迭代优化协议。 + +随着社区对系统的信心逐步增强,将逐步收紧对运行时环境的变更权限,以在升级机制遭到恶意控制时降低系统的攻击暴露面。 + +## **治理系统** + +Quantus Network 通过 Substrate 继承了 Polkadot 的 OpenGov 治理框架。代币持有者通过信念投票(conviction voting)参与,他们同意锁定资产不同期限以放大投票权重。权重放大倍数从 1x(无锁定)到 6x(最长锁定期限)。这一设计通过将影响力与承诺挂钩,激励长期一致性。 + +提案被分类到多个称为"origins"的投票轨道中。每个 origin 均设有定制参数,如审批门槛(例如高影响变更需超级多数)、最低保证金以防垃圾提案、准备/执行周期,以及决策时间线以避免僵局。这一多轨道设计允许并行处理多类公投,覆盖从常规财库支出到关键运行时升级。 + +技术委员会(Technical Collective)是一个精选的技术专家小组,作为专门机构提出、审查或白名单化紧急技术提案,通过专属决策轨道加速处理相关决策,同时保留社区监督权。 + +Quantus 未做任何修改地直接采用这一系统,但初期采用极简配置以避免早期治理复杂性。初始阶段仅启用技术委员会轨道,用于具有约束力的、高权限决策事项,如协议升级或参数调整。 + +后续阶段,Quantus 可引入非约束性的社区投票轨道,用于评估非强制事项的反馈,例如功能提议或生态系统调研。当公司将网络治理权移交给 DAO 时,这一系统将具有约束力。 + +这一分阶段方法允许网络通过未来治理投票有机演进,同时避免在初期阶段给用户带来不必要的复杂性。 + +# **7. 路线图** + +当前路线图(截至 2026 年,可能会有变更): + +**• Heisenberg Inception** - 2024 年 12 月 - 完成融资,确定采用 Substrate 架构 + +**• Resonance Alpha** - 2025 年 7 月 - 公共测试网、Dilithium 签名、可逆转交易 + +**• Schrödinger Beta** - 2025 年 10 月 - 功能完成、准备审计 + +**• Dirac Beta** - 2025 年 11 月 - PoW 变更为 Poseidon2、处理审计问题 + +**• Planck Beta** - 2026 年 1 月 - 高安全性账户、多签、硬件钱包、ZK 整合 + +**• Bell Mainnet** - 2026 年第二季度 - 主网上线 + +**• Fermi Upgrade** - 2026 年第四季度 - ZK 证明聚合基础设施 + +# **8. 风险** + +构建 Quantus Network 伴随着固有风险。 + +**• 实现问题:**即使是设计完善的系统,软件逻辑缺陷也可能导致严重故障。 + +**• NIST 算法选择问题:**已选定的后量子标准(例如 ML-DSA、ML-KEM)在标准化后可能出现潜在缺陷或后门。在最极端情况下,此类缺陷可能使攻击者从公钥推导出私钥,从而伪造签名,这代表链的灾难性失效模式。如果此类漏洞被公开,Quantus Network 可升级到新算法进行应对;但如果缺陷被谨慎利用,它们可能永远不会被发现。 + +**• 量子计算时间表:**量子突破可能远晚于预期,从而推迟对后量子密码学(PQC)的需求;反之,秘密开发(例如由政府进行)可能导致突发威胁,如果区块链社区未能迅速更新,则将面临风险。 + +**• 其他考虑因素:**通用使用壁垒、金融/区块链领域的监管不确定性,以及加密生态系统的固有波动性。 + +# **9. 参考文献与进一步阅读** + +1. Shor, P. W. (1997). Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. SIAM Journal on Computing, 26(5), 1484-1509. https://doi.org/10.1137/S0097539795293172 + +2. Grover, L. K. (1996). A fast quantum mechanical algorithm for database search. Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing, 212-219. https://doi.org/10.1145/237814.237866 + +3. Chainalysis. (2024). The Chainalysis 2024 Crypto Crime Report. https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/ + +4. National Institute of Standards and Technology. (2024). FIPS 204: Module-Lattice-Based Digital Signature Standard (ML-DSA). U.S. Department of Commerce. https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf + +5. National Institute of Standards and Technology. (2024). FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM). U.S. Department of Commerce. https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf + +6. Häner, T., Jaques, S., Naehrig, M., Roetteler, M., & Soeken, M. (2020). Improved quantum circuits for elliptic curve discrete logarithms. arXiv preprint arXiv:2002.12480. https://arxiv.org/abs/2002.12480 + +7. Gidney, C., & Ekerå, M. (2021). How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits. arXiv preprint arXiv:1905.09749. https://arxiv.org/abs/1905.09749 + +8. Aggarwal, D., et al. (2021). Assessment of Quantum Threat To Bitcoin and Derived Cryptocurrencies. ePrint IACR. https://eprint.iacr.org/2021/967.pdf + +9. Roetteler, M., Naehrig, M., Svore, K. M., & Lauter, K. (2017). Quantum resource estimates for computing elliptic curve discrete logarithms. arXiv preprint arXiv:1706.06752. https://arxiv.org/abs/1706.06752 + +10. Open Quantum Safe Project. (n.d.). ML-DSA | Open Quantum Safe. Retrieved January 29, 2026, from https://openquantumsafe.org/liboqs/algorithms/sig/ml-dsa.html + From 1e2573956626fcc873bf9de034ab0bf8945af4f7 Mon Sep 17 00:00:00 2001 From: illuzen Date: Thu, 5 Feb 2026 22:51:41 +0800 Subject: [PATCH 2/3] "code quality" --- website/src/contents/en-US/whitepaper.md | 30 ++++++++++-------------- website/src/contents/zh-CN/whitepaper.md | 10 ++++---- 2 files changed, 18 insertions(+), 22 deletions(-) diff --git a/website/src/contents/en-US/whitepaper.md b/website/src/contents/en-US/whitepaper.md index 151649c..b8c5a33 100644 --- a/website/src/contents/en-US/whitepaper.md +++ b/website/src/contents/en-US/whitepaper.md @@ -60,10 +60,10 @@ Scaling Challenges in Post-Quantum Cryptography While post-quantum cryptography (PQC) offers essential protections against quantum threats, it introduces significant scaling hurdles due to the inherent design of these algorithms. Unlike elliptic curve schemes, which rely on compact mathematical structures, PQC primitives require larger parameters to maintain security against both classical and quantum adversaries. This results in substantially bigger public keys, private keys, and signatures, often by orders of magnitude. The following table illustrates typical sizes for ML-DSA at a 128-bit post-quantum security level compared to classical counterparts like 256-bit ECDSA [10]: -| Algorithm | Public Key Size (Bytes) | Private Key Size (Bytes) | Signature Size (Bytes) | -| --- | --- | --- | --- | -| ML-DSA-87 (Dilithium) | 2,592 | 4,896 | 4,627 | -| ECDSA (256-bit) | 32 | 32 | 65 | +| Algorithm | Public Key Size (Bytes) | Private Key Size (Bytes) | Signature Size (Bytes) | +| --------------------- | ----------------------- | ------------------------ | ---------------------- | +| ML-DSA-87 (Dilithium) | 2,592 | 4,896 | 4,627 | +| ECDSA (256-bit) | 32 | 32 | 65 | As shown, ML-DSA signatures can be over 70 times larger than ECDSA equivalents, and public keys more than 80 times larger. Other PQC families exacerbate this: hash-based schemes like SPHINCS+ may produce signatures up to 41 KB, while even size-optimized lattice variants like FALCON still exceed classical sizes by a significant multiple. @@ -154,7 +154,7 @@ This construction prevents false positives (e.g., mistaking a single-hash public For each transfer, a TransferProof storage object is created, containing details like a unique global transfer count. The user's wallet generates a Merkle-Patricia-Trie (MPT) storage proof from a recent block header's storage root to the leaf for this TransferProof. A nullifier is computed -H(H(salt | secret | global\_transfer\_count)) +H(H(salt | secret | global_transfer_count)) to prevent double-spends, with the secret derived deterministically from the wallet seed for retention. @@ -263,12 +263,10 @@ Block Rewards Quantus Network employs a straightforward tokenomics model imitating that of Bitcoin. There is a maximum supply of 21,000,000 coins and a simple heuristic determines the reward each block. ```javascript -block_reward = (max_supply - current_supply) / constant +block_reward = (max_supply - current_supply) / constant; ``` -This heuristic forms a smooth exponentially decaying curve as the block\_reward contributes to the current\_supply which reduces the block\_reward computed at the next block. Any burns from fees or otherwise reduce current\_supply and essentially become part of the budget for block rewards. The constant is chosen so that, in the absence of any burns, 99% of the coins will be emitted in about 40 years. - - +This heuristic forms a smooth exponentially decaying curve as the block_reward contributes to the current_supply which reduces the block_reward computed at the next block. Any burns from fees or otherwise reduce current_supply and essentially become part of the budget for block rewards. The constant is chosen so that, in the absence of any burns, 99% of the coins will be emitted in about 40 years. Investor Allocations @@ -280,8 +278,6 @@ To compensate the team for taking the risk to build new technology with no promi After that point, the company's portion of block rewards will be redirected to a treasury governed by token holders, essentially forming a DAO. - - Transaction Fees Standard transactions have a fee that goes to miners, providing an incentive to include transactions. Reversed transactions from high-security accounts are charged a volume-based fee of 1% that is burned, essentially adding it to the security budget. Transactions that go thru the zk aggregation system are also subject to a volume-based fee of 0.1%, which is split evenly between the miner and a burn. @@ -329,13 +325,13 @@ Building Quantus Network comes with inherent risks. **9. References & Further Reading** -1. Shor, P. W. (1997). Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. *SIAM Journal on Computing*, 26(5), 1484–1509. [https://doi.org/10.1137/S0097539795293172](https://doi.org/10.1137/S0097539795293172) -2. Grover, L. K. (1996). A fast quantum mechanical algorithm for database search. *Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing*, 212–219. [https://doi.org/10.1145/237814.237866](https://doi.org/10.1145/237814.237866) +1. Shor, P. W. (1997). Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. _SIAM Journal on Computing_, 26(5), 1484–1509. [https://doi.org/10.1137/S0097539795293172](https://doi.org/10.1137/S0097539795293172) +2. Grover, L. K. (1996). A fast quantum mechanical algorithm for database search. _Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing_, 212–219. [https://doi.org/10.1145/237814.237866](https://doi.org/10.1145/237814.237866) 3. Chainalysis. (2024). The Chainalysis 2024 Crypto Crime Report. [https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/](https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/) 4. National Institute of Standards and Technology. (2024). FIPS 204: Module-Lattice-Based Digital Signature Standard (ML-DSA). U.S. Department of Commerce. [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf) 5. National Institute of Standards and Technology. (2024). FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM). U.S. Department of Commerce. [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf) -6. Häner, T., Jaques, S., Naehrig, M., Roetteler, M., & Soeken, M. (2020). Improved quantum circuits for elliptic curve discrete logarithms. *arXiv preprint arXiv:2002.12480*. [https://arxiv.org/abs/2002.12480](https://arxiv.org/abs/2002.12480) -7. Gidney, C., & Ekerå, M. (2021). How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits. *arXiv preprint arXiv:1905.09749*. [https://arxiv.org/abs/1905.09749](https://arxiv.org/abs/1905.09749) -8. Aggarwal, D., et al. (2021). Assessment of Quantum Threat To Bitcoin and Derived Cryptocurrencies. *ePrint IACR*. [https://eprint.iacr.org/2021/967.pdf](https://eprint.iacr.org/2021/967.pdf) -9. Roetteler, M., Naehrig, M., Svore, K. M., & Lauter, K. (2017). Quantum resource estimates for computing elliptic curve discrete logarithms. *arXiv preprint arXiv:1706.06752*. [https://arxiv.org/abs/1706.06752](https://arxiv.org/abs/1706.06752) +6. Häner, T., Jaques, S., Naehrig, M., Roetteler, M., & Soeken, M. (2020). Improved quantum circuits for elliptic curve discrete logarithms. _arXiv preprint arXiv:2002.12480_. [https://arxiv.org/abs/2002.12480](https://arxiv.org/abs/2002.12480) +7. Gidney, C., & Ekerå, M. (2021). How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits. _arXiv preprint arXiv:1905.09749_. [https://arxiv.org/abs/1905.09749](https://arxiv.org/abs/1905.09749) +8. Aggarwal, D., et al. (2021). Assessment of Quantum Threat To Bitcoin and Derived Cryptocurrencies. _ePrint IACR_. [https://eprint.iacr.org/2021/967.pdf](https://eprint.iacr.org/2021/967.pdf) +9. Roetteler, M., Naehrig, M., Svore, K. M., & Lauter, K. (2017). Quantum resource estimates for computing elliptic curve discrete logarithms. _arXiv preprint arXiv:1706.06752_. [https://arxiv.org/abs/1706.06752](https://arxiv.org/abs/1706.06752) 10. Open Quantum Safe Project. (n.d.). ML-DSA | Open Quantum Safe. Retrieved January 29, 2026, from https://openquantumsafe.org/liboqs/algorithms/sig/ml-dsa.html diff --git a/website/src/contents/zh-CN/whitepaper.md b/website/src/contents/zh-CN/whitepaper.md index 5bc0229..c57b9b4 100644 --- a/website/src/contents/zh-CN/whitepaper.md +++ b/website/src/contents/zh-CN/whitepaper.md @@ -17,6 +17,7 @@ tags: --- # **Quantus Network 白皮书 v0.3.2** + ## **法律免责声明** 本白皮书仅供信息参考之用,不构成出售要约、购买要约的招揽,亦不构成对任何证券、投资或金融产品的推荐。读者在做出任何投资决策前,应自行进行尽职调查,并咨询合格专业人士。Quantus Network 不对本文信息的准确性或完整性做出任何陈述或保证。 @@ -171,13 +172,13 @@ P2P 层在量子安全分析中常被忽视。节点认证很重要,但攻击 用户通过对盐(salt)和秘密(secret)的双重哈希生成一个可证明不可花费的地址: -*H(H(salt | secret))* +_H(H(salt | secret))_ 这一构造防止假阳性(例如将单哈希公钥误认为是不可花费地址),在 Substrate(以及大多数区块链)中,地址通常是公钥的单哈希,而公钥通过代数运算从私钥派生,而非安全哈希。因此,该构造的安全性最终归结为寻找哈希原像的原像。发送到该地址的代币实际上已被“销毁”(因无对应私钥,无法花费),这些币可在不增加总供应的情况下被重新铸造。 对于每笔转账,会创建一个 TransferProof 存储对象,包含唯一全局转账计数等细节。用户钱包从最近区块头存储根生成 Merkle-Patricia-Trie(MPT)存储证明,到该 TransferProof 的叶子节点。nullifier 计算为: -*H(H(salt | secret | global\_transfer\_count))* +_H(H(salt | secret | global_transfer_count))_ 以防止双花,其中相关密钥从钱包种子确定性派生,确保用户可保留控制。 @@ -301,9 +302,9 @@ Quantus Network 处于不断变化的环境中,我们不能假设第一次就 Quantus Network 采用一种模仿比特币的简单代币经济学模型。最大供应量为 21,000,000 枚代币,每区块奖励由一个简单启发式公式决定: -*block\_reward = (max\_supply - current\_supply) / constant* +_block_reward = (max_supply - current_supply) / constant_ -这一启发式公式形成一条平滑的指数衰减曲线,因为区块奖励会增加 current\_supply,从而降低下一区块计算出的区块奖励。任何来自费用或其他方式的销毁都会减少 current\_supply,并实质上成为区块奖励预算的一部分。常数的选择确保在没有销毁的情况下,99% 的代币将在约 40 年内发行完毕。 +这一启发式公式形成一条平滑的指数衰减曲线,因为区块奖励会增加 current_supply,从而降低下一区块计算出的区块奖励。任何来自费用或其他方式的销毁都会减少 current_supply,并实质上成为区块奖励预算的一部分。常数的选择确保在没有销毁的情况下,99% 的代币将在约 40 年内发行完毕。 ## **投资者分配** @@ -390,4 +391,3 @@ Quantus 未做任何修改地直接采用这一系统,但初期采用极简配 9. Roetteler, M., Naehrig, M., Svore, K. M., & Lauter, K. (2017). Quantum resource estimates for computing elliptic curve discrete logarithms. arXiv preprint arXiv:1706.06752. https://arxiv.org/abs/1706.06752 10. Open Quantum Safe Project. (n.d.). ML-DSA | Open Quantum Safe. Retrieved January 29, 2026, from https://openquantumsafe.org/liboqs/algorithms/sig/ml-dsa.html - From a9e46893aa36f061e1e0a6c5b9429e24327c318f Mon Sep 17 00:00:00 2001 From: illuzen Date: Thu, 5 Feb 2026 22:57:20 +0800 Subject: [PATCH 3/3] add other languages --- website/src/contents/de-DE/whitepaper.md | 337 +++++++++++++++++++ website/src/contents/es-ES/whitepaper.md | 337 +++++++++++++++++++ website/src/contents/hi-IN/whitepaper.md | 337 +++++++++++++++++++ website/src/contents/id-ID/whitepaper.md | 337 +++++++++++++++++++ website/src/contents/ja-JP/whitepaper.md | 393 +++++++++++++++++++++++ website/src/contents/ko-KR/whitepaper.md | 393 +++++++++++++++++++++++ website/src/contents/ru-RU/whitepaper.md | 337 +++++++++++++++++++ 7 files changed, 2471 insertions(+) create mode 100644 website/src/contents/de-DE/whitepaper.md create mode 100644 website/src/contents/es-ES/whitepaper.md create mode 100644 website/src/contents/hi-IN/whitepaper.md create mode 100644 website/src/contents/id-ID/whitepaper.md create mode 100644 website/src/contents/ja-JP/whitepaper.md create mode 100644 website/src/contents/ko-KR/whitepaper.md create mode 100644 website/src/contents/ru-RU/whitepaper.md diff --git a/website/src/contents/de-DE/whitepaper.md b/website/src/contents/de-DE/whitepaper.md new file mode 100644 index 0000000..b8c5a33 --- /dev/null +++ b/website/src/contents/de-DE/whitepaper.md @@ -0,0 +1,337 @@ +--- +title: "Quantus Whitepaper" +description: "The official Quantus Network whitepaper detailing our quantum-secure Layer 1 blockchain architecture, post-quantum cryptography, and tokenomics." +pubDate: "2026-02-05" +heroImage: "/blog/covers/whitepaper.jpeg" +heroAlt: "Quantus Network Whitepaper" +featured: true +tags: + [ + "whitepaper", + "post-quantum-cryptography", + "blockchain", + "quantus-network", + "dilithium", + "zero-knowledge-proofs", + ] +--- + +**Quantus Network Whitepaper v0.3.2** +Legal Disclaimer: This whitepaper is provided for informational purposes only and does not constitute an offer to sell, a solicitation of an offer to buy, or a recommendation for any security, investment, or financial product. Readers should conduct their own due diligence and consult with qualified professionals before making any investment decisions. Quantus Network makes no representations or warranties regarding the accuracy or completeness of the information herein. + +**1. Introduction** + +The Quantum Threat + +Traditional blockchains face an existential threat from cryptographically relevant quantum computers (CRQCs). The cryptographic foundations of blockchains rely on the hardness of the discrete logarithm problem (DLP), and quantum algorithms, notably Shor's, can solve the DLP exponentially faster than classical computers. This vulnerability could enable quantum-adversaries to derive private keys from public keys, which would allow them to forge transactions and decrypt sensitive financial data. + +This outcome is a catastrophic system failure. Without proactive quantum-resistant upgrades, the trillion-dollar crypto economy risks sudden devaluation from such attacks. + +Unique Value Proposition + +Named after the Latin word for "how much", Quantus Network enables scalable, quantum-secure, private money. Quantus is not a general purpose smart contract platform. Quantus focuses on doing a small number of things better than any other chain. Like a restaurant with a few highly perfected menu items, Quantus delivers: + +- Post-Quantum signatures for all transactions +- Post-Quantum signatures and encryption (ML-DSA and ML-KEM) to secure peer connections +- Post-Quantum zero-knowledge-proofs to scale +- High Security Accounts to deter theft and enable recovery from mistakes +- Human-Readable check-phrases for easy address verification + +The decision to focus on scalable, quantum-secure, private money stems from the threat CRQCs present to the industry and Bitcoin's inability to address these challenges. + +**2. The Quantum Threat to Blockchain** + +Quantum Computing Basics + +Quantum computers leverage principles like superposition and entanglement to perform computations that are intractable for classical machines. Unlike classical bits, which are either 0 or 1, quantum bits (qubits) can exist in multiple states simultaneously, enabling exponential parallelism for certain problems. This capability poses existential risks to the cryptographic systems underpinning blockchain finance, as algorithms developed for quantum hardware undermine the security assumptions of most public-key cryptography. + +Shor's algorithm, introduced in 1994 by Peter Shor, provides a polynomial-time method for factoring large integers and solving the discrete logarithm problem on a quantum computer. In essence, it exploits Quantum Fourier Transforms (QFT) to find the period of a function, allowing efficient reversal of the trapdoor functions that underlie schemes like RSA or elliptic curve cryptography (ECC). For blockchain finance, this means an attacker with a sufficiently powerful quantum computer (estimated at \~2,000 logical qubits [6][7][8][9]) could derive private keys from public keys in polynomial time O(n³). This is an extreme speed-up, rendering vulnerable systems obsolete overnight. [1] + +Grover's algorithm, proposed by Lov Grover in 1996, offers a quadratic speedup for unstructured search problems, reducing the time to find a specific item in an unsorted database from O(n) to O(√n) operations. It works by iteratively amplifying the amplitude of the target state through quantum interference. While not as devastating as Shor's for asymmetric cryptography, Grover's impacts symmetric primitives like hash functions and AES encryption, effectively halving the security level (e.g., a 256-bit key behaves like 128 bits against quantum attacks). While impactful, this attack is mitigated by simply doubling the security bits, rather than changing the cryptographic scheme. Additionally, Grover's quadratic speedup is impractical due to its high qubit and gate requirements, requiring billions of operations in sequence, with limited parallelization, making it infeasible for real-world reversals even on future hardware. [2] + +The dangers of quantum computing to blockchain finance can be categorized into four areas: + +- Forging Digital Signatures: Shor's algorithm directly threatens ECC-based signatures used in most blockchains (e.g., Bitcoin's secp256k1 curve), allowing adversaries to impersonate users and authorize fraudulent transactions. Such a capability would represent a critical failure of the most basic feature of a blockchain. +- Forging False Proofs in Zero-Knowledge Systems: Many zero-knowledge proofs, such as those in zk-SNARKs for privacy-focused finance, rely on discrete logarithm hardness via elliptic-curve pairings for commitments; Shor's could enable the creation of invalid proofs that appear valid, which could allow an attacker to mint new coins or falsify the state of Layer-2s (L2s). +- Decrypting Secret Information: Quantum attacks could expose encrypted data protected by vulnerable public-key schemes in privacy protocols such as Zcash or Monero. It could also decrypt p2p communications in financial protocols, revealing sensitive wealth details and enabling targeted theft. +- Reversing Hash Functions: Grover's algorithm could accelerate preimage attacks on hashes like SHA-256, used for proof-of-work and address generation, but this is the least concerning threat. Many post-quantum cryptographic schemes incorporate hash-based constructions as hashes are considered secure-enough with a large enough digest. + +Scaling Challenges in Post-Quantum Cryptography + +While post-quantum cryptography (PQC) offers essential protections against quantum threats, it introduces significant scaling hurdles due to the inherent design of these algorithms. Unlike elliptic curve schemes, which rely on compact mathematical structures, PQC primitives require larger parameters to maintain security against both classical and quantum adversaries. This results in substantially bigger public keys, private keys, and signatures, often by orders of magnitude. The following table illustrates typical sizes for ML-DSA at a 128-bit post-quantum security level compared to classical counterparts like 256-bit ECDSA [10]: + +| Algorithm | Public Key Size (Bytes) | Private Key Size (Bytes) | Signature Size (Bytes) | +| --------------------- | ----------------------- | ------------------------ | ---------------------- | +| ML-DSA-87 (Dilithium) | 2,592 | 4,896 | 4,627 | +| ECDSA (256-bit) | 32 | 32 | 65 | + +As shown, ML-DSA signatures can be over 70 times larger than ECDSA equivalents, and public keys more than 80 times larger. Other PQC families exacerbate this: hash-based schemes like SPHINCS+ may produce signatures up to 41 KB, while even size-optimized lattice variants like FALCON still exceed classical sizes by a significant multiple. + +In blockchain contexts, these inflated sizes compound into systemic scaling issues. Larger signatures bloat individual transactions, reducing transactions per second (TPS) as blocks fill faster and require more time for validation. This also strains peer-to-peer (P2P) communication, increasing bandwidth demands and propagation delays, which can heighten the risk of network forks or orphaned blocks in consensus mechanisms like proof-of-work. Storage requirements are also affected, leading to higher node operating costs and barriers for participation, especially for resource-constrained users or validators. + +These scaling challenges will have to be addressed by **all blockchains** in the future. Bitcoin, for example, will have much less than 1 TPS if the max block size is not increased. + +**3. The Migration Crisis ** + +The Coordination Problem + +Bitcoin's conservative culture resists protocol changes. Any PQC upgrade would require consensus on contentious issues such as migration timelines, potential coin seizure, and block size increases. Even if the community agreed, every individual user would need to migrate their coins to new quantum-secure addresses. Migration requires action from every crypto holder, many of whom have lost access to their wallets or remain unaware of the threat. + +These issues exist for every public blockchain, but are uniquely challenging to Bitcoin due to its lack of clear leadership and philosophy of technical ossification. + +The Lost Coin Problem + +An estimated $250 billion to $500 billion worth of Bitcoin is permanently inaccessible due to lost keys, deceased holders, or forgotten wallets. [3] These coins cannot be migrated and serve as a public bounty for creating a cryptographically relevant quantum computer (CRQC). Quantum attackers will derive the private keys from exposed unmigrated public keys and likely dump billions of dollars of BTC onto the market. + +Technically, the only way to prevent this is a hard deadline that somehow freezes unmigrated coins, but this is politically impossible. The Bitcoin community would have to confiscate funds from users who failed to act, including estates of deceased holders and long-term investors not paying attention. Without such a deadline, the outcome will be that unmigrated coins are stolen and sold, crashing the market and destroying confidence in the network. + +The Migration Timeline Problem + +Even successful migration faces a scaling wall. Post-quantum signatures are 20x-80x larger than current Bitcoin signatures. Without fundamental architectural changes, Bitcoin's throughput will collapse to a fraction of its already limited capacity. + +Assuming Bitcoin solves the political and technical challenges, the migration itself would take months or years. Every holder must submit at least one transaction to move funds to a quantum-secure address. Many will send test transactions first. With bloated PQC signatures choking throughput, the network faces a backlog lasting months or years while quantum-vulnerable coins remain exposed. + +These compounding challenges make retrofitting quantum security onto existing chains extraordinarily difficult. Quantus Network sidesteps this by building quantum security into the chain from day one. + +**4. Quantus Network Architecture** + +Foundation + +Quantus Network is built on Substrate, a blockchain SDK developed by Parity Technologies, the team behind Ethereum and Polkadot. Substrate is highly modular, enabling easy replacement of components so we can focus on what makes Quantus unique. + +Quantus upgrades Substrate by: + +- Adding support for post-quantum signature schemes +- Upgrading the p2p networking security to be post-quantum +- Adding user-controlled transaction reversibility +- Making the database zk-friendly by aligning all data types to field-element boundaries + +Post-Quantum Cryptographic Primitives + +Quantus Network employs NIST-standardized PQC to ensure the security of transactions and network communications against quantum threats. At the core of transaction integrity is ML-DSA (Module-Lattice-based Digital Signature Algorithm, formerly known as CRYSTALS-Dilithium), a lattice-based signature scheme selected for its balance of security, efficiency, and ease of implementation. ML-DSA leverages the hardness of problems like Learning With Errors (LWE) and Short Integer Solution (SIS) over module lattices, providing robust resistance to both classical and quantum attacks, including those from Shor's algorithm. [4] + +For transaction signatures, Quantus integrates ML-DSA-87, the parameter set offering the highest security level (NIST Security Level 5, equivalent to 256-bit classical and 128-bit quantum security) to protect against potential cryptanalytic breakthroughs in lattice problems. This choice prioritizes caution, as lattice cryptography is relatively new and less battle-tested than classical schemes. The larger parameters mitigate risks from potential advances in lattice cryptanalysis, which would still leave smaller key sizes as softer targets. + +**Alternatives** + +ML-DSA was selected over alternatives like FN-DSA (Falcon) due to + +- FN-DSA's greater implementation complexity (e.g., requiring floating-point operations, which are blockchain-unfriendly) +- lack of deterministic key generation in its specification +- its non-finalized status at the time of development + +Hash-based options like SLH-DSA were not chosen because of their even larger signature sizes (exceeding 17 KB). Crypto-agility (being able to swap in different signature schemes) is built into Substrate, so it is relatively easy to add these alternatives at a future date, should circumstances demand. + +While ML-DSA-87 results in larger keys and signatures, these are manageable in Quantus's early-stage network, where storage is not yet a bottleneck, and optimizations like wormhole addresses via zero-knowledge proofs will address scaling. + +For technical details about the implementation see QIP-0006. + +**Libp2p** + +Quantus Network secures peer-to-peer (P2P) node communications using a combination of ML-DSA for authentication and ML-KEM (Module-Lattice-based Key Encapsulation Mechanism, formerly CRYSTALS-Kyber) for encryption. This integration extends PQC to the libp2p networking stack, modifying core components for quantum resistance: using ML-DSA-87 signatures for peer identity and ML-KEM-768 for transport security (extending the Noise handshake with an additional KEM message for quantum-resistant shared secrets). [5] + +The P2P layer is often neglected in quantum-security analysis. Authentication of peers is important, but the worst an attacker could do at the peer level is impersonate a node and send invalid messages, which could result in denial-of-service. This attack is already mitigated by the fact that nodes are generally untrusted in the blockchain model and nodes can easily switch their keys if the attack is detected. Likewise, decrypting P2P communications yields limited attacker benefits (e.g., tracking transaction paths, mitigated by proxies or Tor), and most data becomes public on-chain anyway. + +Nevertheless, quantum-securing the P2P layer protects against eavesdropping, man-in-the-middle attacks, and quantum decryption, ensuring that node gossip, block propagation, and other network interactions remain confidential and tamper-proof for the foreseeable future. + +For technical details about the implementation see QIP-0004. + +Scaling PQC + +To address the scaling challenges inherent in post-quantum cryptography, Quantus Network introduces an innovative aggregated post-quantum signature scheme called "Wormhole Addresses". This system leverages zero-knowledge proofs (ZKPs) generated via the Plonky2 proving system (basically STARKs) to move balance verification off-chain, allowing the chain to verify a single compact proof without processing individual signatures. Wormhole Addresses enable the verification of a large number of transactions with one proof, with the public inputs (e.g., nullifiers, storage root, exit addresses, and amounts) becoming the primary limiting factor. This reduces the amortized per-transaction storage demands to approximately 256 additional bytes per transaction, much smaller than any known PQC signature scheme. + +The quantum security of the scheme derives from the use of the secure hash function Poseidon2 for commitments via FRI (Fast Reed-Solomon Interactive Oracle Proofs), instead of the quantum-vulnerable elliptic-curve pairings commonly used in SNARKs. + +Additionally the authentication secrets are hidden behind Poseidon2. Since secure hash functions are only quadratically weakened by Grover's algorithm, not broken, hash preimage proofs can serve as lightweight post-quantum signatures in ZK contexts, similar to hash-based schemes like SPHINCS+. + +**Client / Prover Flow ** + +Users generate a provably unspendable address by double-hashing a salt concatenated with a secret + +H(H(salt | secret)) + +This construction prevents false positives (e.g., mistaking a single-hash public key for an unspendable address) because in Substrate (and generally) blockchain addresses are the single hash of a public key, which is derived from the private key via some algebraic operation, not via a secure hash. The security of the construction therefore reduces to finding the preimage-of-a-preimage of a secure hash. Tokens sent to this address are effectively burned. They cannot be spent because no private key exists for the address that received them. These coins can therefore be re-minted without inflating supply. + +For each transfer, a TransferProof storage object is created, containing details like a unique global transfer count. The user's wallet generates a Merkle-Patricia-Trie (MPT) storage proof from a recent block header's storage root to the leaf for this TransferProof. A nullifier is computed + +H(H(salt | secret | global_transfer_count)) + +to prevent double-spends, with the secret derived deterministically from the wallet seed for retention. + +**Aggregator Flow: ** + +Any party (client, miner, or third-party) can aggregate multiple proofs using Plonky2's recursion, forming a tree of proofs where each parent proof is a verification of the child proofs, with the child proofs' public inputs aggregated: + +- nullifiers pass unchanged +- exit addresses are deduplicated +- block hashes are proven to be linked and then all but the most recent is dropped +- amounts for duplicate exit addresses are summed + +This recursion supports hierarchical aggregation, drastically reducing on-chain data. + +**Chain / Verifier Flow: ** + +The network verifies the aggregated proof by checking: + +- block hash is on chain and recent +- nullifier uniqueness (to prevent double-spends) +- proof validity + +The ZK circuit enforces: + +- storage proof correctness +- nullifier computation accuracy +- address unspendability +- balance match between inputs and outputs +- block header linkage + +Plonky2 was selected for the following reasons + +- already audited +- post-quantum +- no trusted setup +- efficient proving/verification +- seamless proof aggregation +- Rust-native implementation +- compatible with Substrate's no-std environment + +Performance highlights include recursive proofs in 170 milliseconds and compact sizes (100 KB per aggregated proof), enabling massive throughput gains. In an optimal case with 5 MB blocks and all transactions going to the same output, Wormhole Addresses could pack \~153,000 transactions into a single block (4.9 MB / 32 bytes per nullifier), a 223x improvement over \~685 raw ML-DSA transactions (5 MB / 7.3 KB each). + +**Security Notes: ** + +Potential risks include inflation bugs from faulty circuit/verification implementations, although this would be economically detectable if re-minted coins exceed balances of zero-send addresses. Users can optionally prove an address is a wormhole by publishing the first hash without revealing the secret. Verification transactions are unsigned, so denial-of-service via failed transactions needs to be mitigated non-financially. Token supply calculations are maintained, as re-mints appear as new coins but maintain maximum supply guarantees via burns. + +For more technical details about the implementation see QIP-0005. + +Consensus Mechanism + +Quantus Network uses a Proof-of-Work (PoW) consensus algorithm that preserves the desirable properties of Bitcoin's consensus algorithm while improving compatibility with ZK-proof systems by switching out SHA-256 with Poseidon2. + +Importantly, this change is not being made for quantum security. Cryptographic hash functions like SHA-256 are weakened but not destroyed by quantum algorithms, notably Grover's. Some post-quantum signature schemes use secure hashes as a building block for this reason. + +Poseidon2 is a refinement of the Poseidon hash function. Creating SNARKs or STARKs for computations involving traditional hash functions like SHA-256 often requires nearly 100x the number of gates compared to using Poseidon, which relies entirely on algebraic functions over field elements, instead of bit-level operations. + +We use the Goldilocks field for both Poseidon2 and Plonky2. The Goldilocks field's order fits in a unsigned 64 bit integer, which increases efficiency without compromising soundness.   + +**5. Wealth Preservation** + +There are many risks in managing cryptocurrency keys. Most of them are avoidable. + +Reversible Transactions + +Quantus Network offers user-configurable reversible transactions. Senders set a time window during which they can cancel outgoing transfers. This deters theft and corrects errors without sacrificing finality. The system uses a modified Substrate "scheduler pallet" with timestamps. Wallets display countdowns for both sender (with a cancel button) and recipient. + +Reversible transactions enable novel security protocols while maintaining decentralization through onchain enforcement. + +For more technical details see QIP-0009. + +Check-Phrases + +Quantus Network introduces "check-phrases," a cryptographically-secure human-readable checksum for blockchain addresses. The address is hashed to generate a short sequence of memorable words from the BIP-39 mnemonic list. Check-phrases protect against typos, tampering, and address poisoning attacks. A 50,000 iteration key derivation function makes rainbow table attacks expensive. For large transactions, users should still verify every character of the address. + +For more technical detail please see QIP-0008. + +High-Security Accounts + +Any account can be upgraded to a "high-security account" with mandatory reversal periods on all outgoing transfers. A designated "guardian" (hardware wallet, multisig, or trusted third party) can cancel suspicious transactions during the reversal period, sending funds to the guardian instead of the sender or receiver. This opt-in feature is permanent once activated, preventing thieves from disabling it. + +Guardians can be chained: a high-security account's guardian can itself be a high-security account with its own guardian. This creates composable hierarchies where each guardian has superior permissions to the account it protects. The design gives users time to detect and respond to unauthorized activity without compromising finality for legitimate transfers. + +For more technical details see QIP-0011. + +Key Recovery + +Many crypto-fortunes have gone to the grave with their owners. Quantus Network offers a simple way to specify a recovery address that can pull your funds at any time, subject to a fixed delay. During this time, the owner can deny recovery if they have access to the key. This feature enables survivorship: users have an onchain will without the need for courts or estates. + +HD-Lattice + +Hierarchical Deterministic (HD) wallets are the industry standard for blockchains, allowing users to back up one seed phrase for all keys, improving security and convenience over manual backups per action. Adapting this to lattice schemes like Dilithium involves two challenges: + +- HMAC-SHA512 outputs can't directly form lattice private keys, which are polynomials sampled from a ring with certain properties. +- Non-hardened key derivation relies on elliptic curve addition, absent in lattices (public keys aren't closed under any algebraic operation). + +Quantus Network addresses the first issue by using the output of the HMAC as entropy to deterministically construct the private key, not as the private key itself. The second issue is less critical and remains an open research question whether lattice cryptography can be adapted to address it. + +For more technical details see QIP-0002. + +**6. Tokenomics and Governance** + +Quantus Network exists in a changing environment, and we cannot assume that we will get everything right on the first try. For this reason, we choose a simple starting point and allow the governance system to make changes as new information is acquired. This design makes the blockchain a living entity that can adapt to its environment at will. In particular, the Substrate governance process allows deep changes to the chain with minimal coordination among the various node-runners. + +Block Rewards + +Quantus Network employs a straightforward tokenomics model imitating that of Bitcoin. There is a maximum supply of 21,000,000 coins and a simple heuristic determines the reward each block. + +```javascript +block_reward = (max_supply - current_supply) / constant; +``` + +This heuristic forms a smooth exponentially decaying curve as the block_reward contributes to the current_supply which reduces the block_reward computed at the next block. Any burns from fees or otherwise reduce current_supply and essentially become part of the budget for block rewards. The constant is chosen so that, in the absence of any burns, 99% of the coins will be emitted in about 40 years. + +Investor Allocations + +Quantus Network was built with the help of angel investors who took great risk in funding it. To avoid the supply overhangs that investor-lockups create, all investors, public and private, will be fully liquid on day one. This allocation will be the only "pre-mine". All other tokens will have to be mined into existence. Depending on the success of public sales this portion will represent 20-30% of the total supply. + +Company Allocations + +To compensate the team for taking the risk to build new technology with no promise of success, a portion of the block reward is sent to the company for approximately four years. This gives a de facto vesting schedule of about 10% of the total supply to the company. + +After that point, the company's portion of block rewards will be redirected to a treasury governed by token holders, essentially forming a DAO. + +Transaction Fees + +Standard transactions have a fee that goes to miners, providing an incentive to include transactions. Reversed transactions from high-security accounts are charged a volume-based fee of 1% that is burned, essentially adding it to the security budget. Transactions that go thru the zk aggregation system are also subject to a volume-based fee of 0.1%, which is split evenly between the miner and a burn. + +Forkless Upgrades + +Quantus Network supports "forkless" upgrades through Substrate's runtime upgrades, allowing the blockchain's core logic (the "runtime") to evolve without hard forks that could disrupt the network or split the community. This is achieved via on-chain governance referenda, where approved proposals trigger a runtime swap, essentially replacing the existing WASM code blob with a new one in a single block, ensuring continuity of state and operations. This upgrade path minimizes downtime and risks, empowering the community to iteratively refine the protocol as real world usage reveals potential improvements. + +As the community gains confidence in the system over time, the power to change the runtime will be significantly reduced to limit the attack surface, should a malicious actor obtain control of the upgrade process. + +Governance System + +Quantus Network inherits its governance framework from Polkadot's OpenGov system via Substrate. Token holders participate via conviction voting, where they agree to lock their assets for varying periods to amplify their vote's weight. This amplification can range from 1x (no lock) to 6x (maximum lockup). This design encourages long-term alignment by tying influence to commitment. + +Proposals are categorized into multiple voting tracks called "origins". Each origin has tailored parameters like approval thresholds (e.g., supermajority for high-impact changes), minimum deposits to deter spam, preparation/enactment periods, and decision timelines to prevent gridlock. This multi-track design allows parallel processing of diverse referenda, from routine treasury spends to critical runtime upgrades. + +The Technical Collective is a curated group of technical experts serving as a specialized body to propose, review, or whitelist urgent technical matters, expediting them through a dedicated track while maintaining community oversight. + +Quantus adopts this system without modifications but starts with a minimalistic setup to avoid complexity in its early stages. Initially, only the Technical Collective track is active, which will be used for binding, high-privilege decisions like protocol upgrades or parameter tweaks. + +Later, Quantus can add a non-binding community vote track for gauging sentiment on non-enforceable topics, such as feature suggestions or ecosystem polls. This system will become binding when the company turns the network over to the DAO. + +This phased approach allows the network to evolve organically via future governance votes without burdening users with unnecessary complexity at the beginning. + +**7. Roadmap** + +The current roadmap through 2026, subject to change: + +- Heisenberg Inception - December 2024 - Funding Secured, Substrate Chosen +- Resonance Alpha - July 2025 - Public Testnet, Dilithium Signatures, Reversible Transactions +- Schrödinger Beta - October 2025 - Feature Complete, Ready for Audit +- Dirac Beta - November 2025 - PoW changed to Poseidon2, Audits Addressed +- Planck Beta - January 2026 - High Security Accounts, Multisigs, Hardware Wallet, ZK Integration +- Bell Mainnet - Q2 2026 - Mainnet Launch +- Fermi Upgrade - Q4 2026 - ZK Proof Aggregation Infrastructure + +**8. Risks** + +Building Quantus Network comes with inherent risks. + +- Implementation Issues: Flaws in software logic can cause serious failures in even the best designed systems. +- NIST Algorithm Selection Issues: Potential flaws or backdoors in selected post-quantum standards (e.g., ML-DSA, ML-KEM) that could emerge post-standardization. In the worst case, such flaws would allow an attacker to forge signatures by deriving a private key from the public, representing a catastrophic failure mode of the chain. If such flaws were made public, Quantus Network could be upgraded to a new algorithm, but if such flaws are exploited sparingly they may never be discovered. +- Quantum Computing Timelines: Quantum breakthroughs might arrive much later than anticipated, delaying the need for PQC; conversely, secretive development (e.g. by governments) could lead to sudden threats if the blockchain community fails to update swiftly. +- Other Considerations: General adoption barriers, regulatory uncertainties in finance/blockchain, and the inherent volatility of crypto ecosystems. + +**9. References & Further Reading** + +1. Shor, P. W. (1997). Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. _SIAM Journal on Computing_, 26(5), 1484–1509. [https://doi.org/10.1137/S0097539795293172](https://doi.org/10.1137/S0097539795293172) +2. Grover, L. K. (1996). A fast quantum mechanical algorithm for database search. _Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing_, 212–219. [https://doi.org/10.1145/237814.237866](https://doi.org/10.1145/237814.237866) +3. Chainalysis. (2024). The Chainalysis 2024 Crypto Crime Report. [https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/](https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/) +4. National Institute of Standards and Technology. (2024). FIPS 204: Module-Lattice-Based Digital Signature Standard (ML-DSA). U.S. Department of Commerce. [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf) +5. National Institute of Standards and Technology. (2024). FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM). U.S. Department of Commerce. [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf) +6. Häner, T., Jaques, S., Naehrig, M., Roetteler, M., & Soeken, M. (2020). Improved quantum circuits for elliptic curve discrete logarithms. _arXiv preprint arXiv:2002.12480_. [https://arxiv.org/abs/2002.12480](https://arxiv.org/abs/2002.12480) +7. Gidney, C., & Ekerå, M. (2021). How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits. _arXiv preprint arXiv:1905.09749_. [https://arxiv.org/abs/1905.09749](https://arxiv.org/abs/1905.09749) +8. Aggarwal, D., et al. (2021). Assessment of Quantum Threat To Bitcoin and Derived Cryptocurrencies. _ePrint IACR_. [https://eprint.iacr.org/2021/967.pdf](https://eprint.iacr.org/2021/967.pdf) +9. Roetteler, M., Naehrig, M., Svore, K. M., & Lauter, K. (2017). Quantum resource estimates for computing elliptic curve discrete logarithms. _arXiv preprint arXiv:1706.06752_. [https://arxiv.org/abs/1706.06752](https://arxiv.org/abs/1706.06752) +10. Open Quantum Safe Project. (n.d.). ML-DSA | Open Quantum Safe. Retrieved January 29, 2026, from https://openquantumsafe.org/liboqs/algorithms/sig/ml-dsa.html diff --git a/website/src/contents/es-ES/whitepaper.md b/website/src/contents/es-ES/whitepaper.md new file mode 100644 index 0000000..b8c5a33 --- /dev/null +++ b/website/src/contents/es-ES/whitepaper.md @@ -0,0 +1,337 @@ +--- +title: "Quantus Whitepaper" +description: "The official Quantus Network whitepaper detailing our quantum-secure Layer 1 blockchain architecture, post-quantum cryptography, and tokenomics." +pubDate: "2026-02-05" +heroImage: "/blog/covers/whitepaper.jpeg" +heroAlt: "Quantus Network Whitepaper" +featured: true +tags: + [ + "whitepaper", + "post-quantum-cryptography", + "blockchain", + "quantus-network", + "dilithium", + "zero-knowledge-proofs", + ] +--- + +**Quantus Network Whitepaper v0.3.2** +Legal Disclaimer: This whitepaper is provided for informational purposes only and does not constitute an offer to sell, a solicitation of an offer to buy, or a recommendation for any security, investment, or financial product. Readers should conduct their own due diligence and consult with qualified professionals before making any investment decisions. Quantus Network makes no representations or warranties regarding the accuracy or completeness of the information herein. + +**1. Introduction** + +The Quantum Threat + +Traditional blockchains face an existential threat from cryptographically relevant quantum computers (CRQCs). The cryptographic foundations of blockchains rely on the hardness of the discrete logarithm problem (DLP), and quantum algorithms, notably Shor's, can solve the DLP exponentially faster than classical computers. This vulnerability could enable quantum-adversaries to derive private keys from public keys, which would allow them to forge transactions and decrypt sensitive financial data. + +This outcome is a catastrophic system failure. Without proactive quantum-resistant upgrades, the trillion-dollar crypto economy risks sudden devaluation from such attacks. + +Unique Value Proposition + +Named after the Latin word for "how much", Quantus Network enables scalable, quantum-secure, private money. Quantus is not a general purpose smart contract platform. Quantus focuses on doing a small number of things better than any other chain. Like a restaurant with a few highly perfected menu items, Quantus delivers: + +- Post-Quantum signatures for all transactions +- Post-Quantum signatures and encryption (ML-DSA and ML-KEM) to secure peer connections +- Post-Quantum zero-knowledge-proofs to scale +- High Security Accounts to deter theft and enable recovery from mistakes +- Human-Readable check-phrases for easy address verification + +The decision to focus on scalable, quantum-secure, private money stems from the threat CRQCs present to the industry and Bitcoin's inability to address these challenges. + +**2. The Quantum Threat to Blockchain** + +Quantum Computing Basics + +Quantum computers leverage principles like superposition and entanglement to perform computations that are intractable for classical machines. Unlike classical bits, which are either 0 or 1, quantum bits (qubits) can exist in multiple states simultaneously, enabling exponential parallelism for certain problems. This capability poses existential risks to the cryptographic systems underpinning blockchain finance, as algorithms developed for quantum hardware undermine the security assumptions of most public-key cryptography. + +Shor's algorithm, introduced in 1994 by Peter Shor, provides a polynomial-time method for factoring large integers and solving the discrete logarithm problem on a quantum computer. In essence, it exploits Quantum Fourier Transforms (QFT) to find the period of a function, allowing efficient reversal of the trapdoor functions that underlie schemes like RSA or elliptic curve cryptography (ECC). For blockchain finance, this means an attacker with a sufficiently powerful quantum computer (estimated at \~2,000 logical qubits [6][7][8][9]) could derive private keys from public keys in polynomial time O(n³). This is an extreme speed-up, rendering vulnerable systems obsolete overnight. [1] + +Grover's algorithm, proposed by Lov Grover in 1996, offers a quadratic speedup for unstructured search problems, reducing the time to find a specific item in an unsorted database from O(n) to O(√n) operations. It works by iteratively amplifying the amplitude of the target state through quantum interference. While not as devastating as Shor's for asymmetric cryptography, Grover's impacts symmetric primitives like hash functions and AES encryption, effectively halving the security level (e.g., a 256-bit key behaves like 128 bits against quantum attacks). While impactful, this attack is mitigated by simply doubling the security bits, rather than changing the cryptographic scheme. Additionally, Grover's quadratic speedup is impractical due to its high qubit and gate requirements, requiring billions of operations in sequence, with limited parallelization, making it infeasible for real-world reversals even on future hardware. [2] + +The dangers of quantum computing to blockchain finance can be categorized into four areas: + +- Forging Digital Signatures: Shor's algorithm directly threatens ECC-based signatures used in most blockchains (e.g., Bitcoin's secp256k1 curve), allowing adversaries to impersonate users and authorize fraudulent transactions. Such a capability would represent a critical failure of the most basic feature of a blockchain. +- Forging False Proofs in Zero-Knowledge Systems: Many zero-knowledge proofs, such as those in zk-SNARKs for privacy-focused finance, rely on discrete logarithm hardness via elliptic-curve pairings for commitments; Shor's could enable the creation of invalid proofs that appear valid, which could allow an attacker to mint new coins or falsify the state of Layer-2s (L2s). +- Decrypting Secret Information: Quantum attacks could expose encrypted data protected by vulnerable public-key schemes in privacy protocols such as Zcash or Monero. It could also decrypt p2p communications in financial protocols, revealing sensitive wealth details and enabling targeted theft. +- Reversing Hash Functions: Grover's algorithm could accelerate preimage attacks on hashes like SHA-256, used for proof-of-work and address generation, but this is the least concerning threat. Many post-quantum cryptographic schemes incorporate hash-based constructions as hashes are considered secure-enough with a large enough digest. + +Scaling Challenges in Post-Quantum Cryptography + +While post-quantum cryptography (PQC) offers essential protections against quantum threats, it introduces significant scaling hurdles due to the inherent design of these algorithms. Unlike elliptic curve schemes, which rely on compact mathematical structures, PQC primitives require larger parameters to maintain security against both classical and quantum adversaries. This results in substantially bigger public keys, private keys, and signatures, often by orders of magnitude. The following table illustrates typical sizes for ML-DSA at a 128-bit post-quantum security level compared to classical counterparts like 256-bit ECDSA [10]: + +| Algorithm | Public Key Size (Bytes) | Private Key Size (Bytes) | Signature Size (Bytes) | +| --------------------- | ----------------------- | ------------------------ | ---------------------- | +| ML-DSA-87 (Dilithium) | 2,592 | 4,896 | 4,627 | +| ECDSA (256-bit) | 32 | 32 | 65 | + +As shown, ML-DSA signatures can be over 70 times larger than ECDSA equivalents, and public keys more than 80 times larger. Other PQC families exacerbate this: hash-based schemes like SPHINCS+ may produce signatures up to 41 KB, while even size-optimized lattice variants like FALCON still exceed classical sizes by a significant multiple. + +In blockchain contexts, these inflated sizes compound into systemic scaling issues. Larger signatures bloat individual transactions, reducing transactions per second (TPS) as blocks fill faster and require more time for validation. This also strains peer-to-peer (P2P) communication, increasing bandwidth demands and propagation delays, which can heighten the risk of network forks or orphaned blocks in consensus mechanisms like proof-of-work. Storage requirements are also affected, leading to higher node operating costs and barriers for participation, especially for resource-constrained users or validators. + +These scaling challenges will have to be addressed by **all blockchains** in the future. Bitcoin, for example, will have much less than 1 TPS if the max block size is not increased. + +**3. The Migration Crisis ** + +The Coordination Problem + +Bitcoin's conservative culture resists protocol changes. Any PQC upgrade would require consensus on contentious issues such as migration timelines, potential coin seizure, and block size increases. Even if the community agreed, every individual user would need to migrate their coins to new quantum-secure addresses. Migration requires action from every crypto holder, many of whom have lost access to their wallets or remain unaware of the threat. + +These issues exist for every public blockchain, but are uniquely challenging to Bitcoin due to its lack of clear leadership and philosophy of technical ossification. + +The Lost Coin Problem + +An estimated $250 billion to $500 billion worth of Bitcoin is permanently inaccessible due to lost keys, deceased holders, or forgotten wallets. [3] These coins cannot be migrated and serve as a public bounty for creating a cryptographically relevant quantum computer (CRQC). Quantum attackers will derive the private keys from exposed unmigrated public keys and likely dump billions of dollars of BTC onto the market. + +Technically, the only way to prevent this is a hard deadline that somehow freezes unmigrated coins, but this is politically impossible. The Bitcoin community would have to confiscate funds from users who failed to act, including estates of deceased holders and long-term investors not paying attention. Without such a deadline, the outcome will be that unmigrated coins are stolen and sold, crashing the market and destroying confidence in the network. + +The Migration Timeline Problem + +Even successful migration faces a scaling wall. Post-quantum signatures are 20x-80x larger than current Bitcoin signatures. Without fundamental architectural changes, Bitcoin's throughput will collapse to a fraction of its already limited capacity. + +Assuming Bitcoin solves the political and technical challenges, the migration itself would take months or years. Every holder must submit at least one transaction to move funds to a quantum-secure address. Many will send test transactions first. With bloated PQC signatures choking throughput, the network faces a backlog lasting months or years while quantum-vulnerable coins remain exposed. + +These compounding challenges make retrofitting quantum security onto existing chains extraordinarily difficult. Quantus Network sidesteps this by building quantum security into the chain from day one. + +**4. Quantus Network Architecture** + +Foundation + +Quantus Network is built on Substrate, a blockchain SDK developed by Parity Technologies, the team behind Ethereum and Polkadot. Substrate is highly modular, enabling easy replacement of components so we can focus on what makes Quantus unique. + +Quantus upgrades Substrate by: + +- Adding support for post-quantum signature schemes +- Upgrading the p2p networking security to be post-quantum +- Adding user-controlled transaction reversibility +- Making the database zk-friendly by aligning all data types to field-element boundaries + +Post-Quantum Cryptographic Primitives + +Quantus Network employs NIST-standardized PQC to ensure the security of transactions and network communications against quantum threats. At the core of transaction integrity is ML-DSA (Module-Lattice-based Digital Signature Algorithm, formerly known as CRYSTALS-Dilithium), a lattice-based signature scheme selected for its balance of security, efficiency, and ease of implementation. ML-DSA leverages the hardness of problems like Learning With Errors (LWE) and Short Integer Solution (SIS) over module lattices, providing robust resistance to both classical and quantum attacks, including those from Shor's algorithm. [4] + +For transaction signatures, Quantus integrates ML-DSA-87, the parameter set offering the highest security level (NIST Security Level 5, equivalent to 256-bit classical and 128-bit quantum security) to protect against potential cryptanalytic breakthroughs in lattice problems. This choice prioritizes caution, as lattice cryptography is relatively new and less battle-tested than classical schemes. The larger parameters mitigate risks from potential advances in lattice cryptanalysis, which would still leave smaller key sizes as softer targets. + +**Alternatives** + +ML-DSA was selected over alternatives like FN-DSA (Falcon) due to + +- FN-DSA's greater implementation complexity (e.g., requiring floating-point operations, which are blockchain-unfriendly) +- lack of deterministic key generation in its specification +- its non-finalized status at the time of development + +Hash-based options like SLH-DSA were not chosen because of their even larger signature sizes (exceeding 17 KB). Crypto-agility (being able to swap in different signature schemes) is built into Substrate, so it is relatively easy to add these alternatives at a future date, should circumstances demand. + +While ML-DSA-87 results in larger keys and signatures, these are manageable in Quantus's early-stage network, where storage is not yet a bottleneck, and optimizations like wormhole addresses via zero-knowledge proofs will address scaling. + +For technical details about the implementation see QIP-0006. + +**Libp2p** + +Quantus Network secures peer-to-peer (P2P) node communications using a combination of ML-DSA for authentication and ML-KEM (Module-Lattice-based Key Encapsulation Mechanism, formerly CRYSTALS-Kyber) for encryption. This integration extends PQC to the libp2p networking stack, modifying core components for quantum resistance: using ML-DSA-87 signatures for peer identity and ML-KEM-768 for transport security (extending the Noise handshake with an additional KEM message for quantum-resistant shared secrets). [5] + +The P2P layer is often neglected in quantum-security analysis. Authentication of peers is important, but the worst an attacker could do at the peer level is impersonate a node and send invalid messages, which could result in denial-of-service. This attack is already mitigated by the fact that nodes are generally untrusted in the blockchain model and nodes can easily switch their keys if the attack is detected. Likewise, decrypting P2P communications yields limited attacker benefits (e.g., tracking transaction paths, mitigated by proxies or Tor), and most data becomes public on-chain anyway. + +Nevertheless, quantum-securing the P2P layer protects against eavesdropping, man-in-the-middle attacks, and quantum decryption, ensuring that node gossip, block propagation, and other network interactions remain confidential and tamper-proof for the foreseeable future. + +For technical details about the implementation see QIP-0004. + +Scaling PQC + +To address the scaling challenges inherent in post-quantum cryptography, Quantus Network introduces an innovative aggregated post-quantum signature scheme called "Wormhole Addresses". This system leverages zero-knowledge proofs (ZKPs) generated via the Plonky2 proving system (basically STARKs) to move balance verification off-chain, allowing the chain to verify a single compact proof without processing individual signatures. Wormhole Addresses enable the verification of a large number of transactions with one proof, with the public inputs (e.g., nullifiers, storage root, exit addresses, and amounts) becoming the primary limiting factor. This reduces the amortized per-transaction storage demands to approximately 256 additional bytes per transaction, much smaller than any known PQC signature scheme. + +The quantum security of the scheme derives from the use of the secure hash function Poseidon2 for commitments via FRI (Fast Reed-Solomon Interactive Oracle Proofs), instead of the quantum-vulnerable elliptic-curve pairings commonly used in SNARKs. + +Additionally the authentication secrets are hidden behind Poseidon2. Since secure hash functions are only quadratically weakened by Grover's algorithm, not broken, hash preimage proofs can serve as lightweight post-quantum signatures in ZK contexts, similar to hash-based schemes like SPHINCS+. + +**Client / Prover Flow ** + +Users generate a provably unspendable address by double-hashing a salt concatenated with a secret + +H(H(salt | secret)) + +This construction prevents false positives (e.g., mistaking a single-hash public key for an unspendable address) because in Substrate (and generally) blockchain addresses are the single hash of a public key, which is derived from the private key via some algebraic operation, not via a secure hash. The security of the construction therefore reduces to finding the preimage-of-a-preimage of a secure hash. Tokens sent to this address are effectively burned. They cannot be spent because no private key exists for the address that received them. These coins can therefore be re-minted without inflating supply. + +For each transfer, a TransferProof storage object is created, containing details like a unique global transfer count. The user's wallet generates a Merkle-Patricia-Trie (MPT) storage proof from a recent block header's storage root to the leaf for this TransferProof. A nullifier is computed + +H(H(salt | secret | global_transfer_count)) + +to prevent double-spends, with the secret derived deterministically from the wallet seed for retention. + +**Aggregator Flow: ** + +Any party (client, miner, or third-party) can aggregate multiple proofs using Plonky2's recursion, forming a tree of proofs where each parent proof is a verification of the child proofs, with the child proofs' public inputs aggregated: + +- nullifiers pass unchanged +- exit addresses are deduplicated +- block hashes are proven to be linked and then all but the most recent is dropped +- amounts for duplicate exit addresses are summed + +This recursion supports hierarchical aggregation, drastically reducing on-chain data. + +**Chain / Verifier Flow: ** + +The network verifies the aggregated proof by checking: + +- block hash is on chain and recent +- nullifier uniqueness (to prevent double-spends) +- proof validity + +The ZK circuit enforces: + +- storage proof correctness +- nullifier computation accuracy +- address unspendability +- balance match between inputs and outputs +- block header linkage + +Plonky2 was selected for the following reasons + +- already audited +- post-quantum +- no trusted setup +- efficient proving/verification +- seamless proof aggregation +- Rust-native implementation +- compatible with Substrate's no-std environment + +Performance highlights include recursive proofs in 170 milliseconds and compact sizes (100 KB per aggregated proof), enabling massive throughput gains. In an optimal case with 5 MB blocks and all transactions going to the same output, Wormhole Addresses could pack \~153,000 transactions into a single block (4.9 MB / 32 bytes per nullifier), a 223x improvement over \~685 raw ML-DSA transactions (5 MB / 7.3 KB each). + +**Security Notes: ** + +Potential risks include inflation bugs from faulty circuit/verification implementations, although this would be economically detectable if re-minted coins exceed balances of zero-send addresses. Users can optionally prove an address is a wormhole by publishing the first hash without revealing the secret. Verification transactions are unsigned, so denial-of-service via failed transactions needs to be mitigated non-financially. Token supply calculations are maintained, as re-mints appear as new coins but maintain maximum supply guarantees via burns. + +For more technical details about the implementation see QIP-0005. + +Consensus Mechanism + +Quantus Network uses a Proof-of-Work (PoW) consensus algorithm that preserves the desirable properties of Bitcoin's consensus algorithm while improving compatibility with ZK-proof systems by switching out SHA-256 with Poseidon2. + +Importantly, this change is not being made for quantum security. Cryptographic hash functions like SHA-256 are weakened but not destroyed by quantum algorithms, notably Grover's. Some post-quantum signature schemes use secure hashes as a building block for this reason. + +Poseidon2 is a refinement of the Poseidon hash function. Creating SNARKs or STARKs for computations involving traditional hash functions like SHA-256 often requires nearly 100x the number of gates compared to using Poseidon, which relies entirely on algebraic functions over field elements, instead of bit-level operations. + +We use the Goldilocks field for both Poseidon2 and Plonky2. The Goldilocks field's order fits in a unsigned 64 bit integer, which increases efficiency without compromising soundness.   + +**5. Wealth Preservation** + +There are many risks in managing cryptocurrency keys. Most of them are avoidable. + +Reversible Transactions + +Quantus Network offers user-configurable reversible transactions. Senders set a time window during which they can cancel outgoing transfers. This deters theft and corrects errors without sacrificing finality. The system uses a modified Substrate "scheduler pallet" with timestamps. Wallets display countdowns for both sender (with a cancel button) and recipient. + +Reversible transactions enable novel security protocols while maintaining decentralization through onchain enforcement. + +For more technical details see QIP-0009. + +Check-Phrases + +Quantus Network introduces "check-phrases," a cryptographically-secure human-readable checksum for blockchain addresses. The address is hashed to generate a short sequence of memorable words from the BIP-39 mnemonic list. Check-phrases protect against typos, tampering, and address poisoning attacks. A 50,000 iteration key derivation function makes rainbow table attacks expensive. For large transactions, users should still verify every character of the address. + +For more technical detail please see QIP-0008. + +High-Security Accounts + +Any account can be upgraded to a "high-security account" with mandatory reversal periods on all outgoing transfers. A designated "guardian" (hardware wallet, multisig, or trusted third party) can cancel suspicious transactions during the reversal period, sending funds to the guardian instead of the sender or receiver. This opt-in feature is permanent once activated, preventing thieves from disabling it. + +Guardians can be chained: a high-security account's guardian can itself be a high-security account with its own guardian. This creates composable hierarchies where each guardian has superior permissions to the account it protects. The design gives users time to detect and respond to unauthorized activity without compromising finality for legitimate transfers. + +For more technical details see QIP-0011. + +Key Recovery + +Many crypto-fortunes have gone to the grave with their owners. Quantus Network offers a simple way to specify a recovery address that can pull your funds at any time, subject to a fixed delay. During this time, the owner can deny recovery if they have access to the key. This feature enables survivorship: users have an onchain will without the need for courts or estates. + +HD-Lattice + +Hierarchical Deterministic (HD) wallets are the industry standard for blockchains, allowing users to back up one seed phrase for all keys, improving security and convenience over manual backups per action. Adapting this to lattice schemes like Dilithium involves two challenges: + +- HMAC-SHA512 outputs can't directly form lattice private keys, which are polynomials sampled from a ring with certain properties. +- Non-hardened key derivation relies on elliptic curve addition, absent in lattices (public keys aren't closed under any algebraic operation). + +Quantus Network addresses the first issue by using the output of the HMAC as entropy to deterministically construct the private key, not as the private key itself. The second issue is less critical and remains an open research question whether lattice cryptography can be adapted to address it. + +For more technical details see QIP-0002. + +**6. Tokenomics and Governance** + +Quantus Network exists in a changing environment, and we cannot assume that we will get everything right on the first try. For this reason, we choose a simple starting point and allow the governance system to make changes as new information is acquired. This design makes the blockchain a living entity that can adapt to its environment at will. In particular, the Substrate governance process allows deep changes to the chain with minimal coordination among the various node-runners. + +Block Rewards + +Quantus Network employs a straightforward tokenomics model imitating that of Bitcoin. There is a maximum supply of 21,000,000 coins and a simple heuristic determines the reward each block. + +```javascript +block_reward = (max_supply - current_supply) / constant; +``` + +This heuristic forms a smooth exponentially decaying curve as the block_reward contributes to the current_supply which reduces the block_reward computed at the next block. Any burns from fees or otherwise reduce current_supply and essentially become part of the budget for block rewards. The constant is chosen so that, in the absence of any burns, 99% of the coins will be emitted in about 40 years. + +Investor Allocations + +Quantus Network was built with the help of angel investors who took great risk in funding it. To avoid the supply overhangs that investor-lockups create, all investors, public and private, will be fully liquid on day one. This allocation will be the only "pre-mine". All other tokens will have to be mined into existence. Depending on the success of public sales this portion will represent 20-30% of the total supply. + +Company Allocations + +To compensate the team for taking the risk to build new technology with no promise of success, a portion of the block reward is sent to the company for approximately four years. This gives a de facto vesting schedule of about 10% of the total supply to the company. + +After that point, the company's portion of block rewards will be redirected to a treasury governed by token holders, essentially forming a DAO. + +Transaction Fees + +Standard transactions have a fee that goes to miners, providing an incentive to include transactions. Reversed transactions from high-security accounts are charged a volume-based fee of 1% that is burned, essentially adding it to the security budget. Transactions that go thru the zk aggregation system are also subject to a volume-based fee of 0.1%, which is split evenly between the miner and a burn. + +Forkless Upgrades + +Quantus Network supports "forkless" upgrades through Substrate's runtime upgrades, allowing the blockchain's core logic (the "runtime") to evolve without hard forks that could disrupt the network or split the community. This is achieved via on-chain governance referenda, where approved proposals trigger a runtime swap, essentially replacing the existing WASM code blob with a new one in a single block, ensuring continuity of state and operations. This upgrade path minimizes downtime and risks, empowering the community to iteratively refine the protocol as real world usage reveals potential improvements. + +As the community gains confidence in the system over time, the power to change the runtime will be significantly reduced to limit the attack surface, should a malicious actor obtain control of the upgrade process. + +Governance System + +Quantus Network inherits its governance framework from Polkadot's OpenGov system via Substrate. Token holders participate via conviction voting, where they agree to lock their assets for varying periods to amplify their vote's weight. This amplification can range from 1x (no lock) to 6x (maximum lockup). This design encourages long-term alignment by tying influence to commitment. + +Proposals are categorized into multiple voting tracks called "origins". Each origin has tailored parameters like approval thresholds (e.g., supermajority for high-impact changes), minimum deposits to deter spam, preparation/enactment periods, and decision timelines to prevent gridlock. This multi-track design allows parallel processing of diverse referenda, from routine treasury spends to critical runtime upgrades. + +The Technical Collective is a curated group of technical experts serving as a specialized body to propose, review, or whitelist urgent technical matters, expediting them through a dedicated track while maintaining community oversight. + +Quantus adopts this system without modifications but starts with a minimalistic setup to avoid complexity in its early stages. Initially, only the Technical Collective track is active, which will be used for binding, high-privilege decisions like protocol upgrades or parameter tweaks. + +Later, Quantus can add a non-binding community vote track for gauging sentiment on non-enforceable topics, such as feature suggestions or ecosystem polls. This system will become binding when the company turns the network over to the DAO. + +This phased approach allows the network to evolve organically via future governance votes without burdening users with unnecessary complexity at the beginning. + +**7. Roadmap** + +The current roadmap through 2026, subject to change: + +- Heisenberg Inception - December 2024 - Funding Secured, Substrate Chosen +- Resonance Alpha - July 2025 - Public Testnet, Dilithium Signatures, Reversible Transactions +- Schrödinger Beta - October 2025 - Feature Complete, Ready for Audit +- Dirac Beta - November 2025 - PoW changed to Poseidon2, Audits Addressed +- Planck Beta - January 2026 - High Security Accounts, Multisigs, Hardware Wallet, ZK Integration +- Bell Mainnet - Q2 2026 - Mainnet Launch +- Fermi Upgrade - Q4 2026 - ZK Proof Aggregation Infrastructure + +**8. Risks** + +Building Quantus Network comes with inherent risks. + +- Implementation Issues: Flaws in software logic can cause serious failures in even the best designed systems. +- NIST Algorithm Selection Issues: Potential flaws or backdoors in selected post-quantum standards (e.g., ML-DSA, ML-KEM) that could emerge post-standardization. In the worst case, such flaws would allow an attacker to forge signatures by deriving a private key from the public, representing a catastrophic failure mode of the chain. If such flaws were made public, Quantus Network could be upgraded to a new algorithm, but if such flaws are exploited sparingly they may never be discovered. +- Quantum Computing Timelines: Quantum breakthroughs might arrive much later than anticipated, delaying the need for PQC; conversely, secretive development (e.g. by governments) could lead to sudden threats if the blockchain community fails to update swiftly. +- Other Considerations: General adoption barriers, regulatory uncertainties in finance/blockchain, and the inherent volatility of crypto ecosystems. + +**9. References & Further Reading** + +1. Shor, P. W. (1997). Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. _SIAM Journal on Computing_, 26(5), 1484–1509. [https://doi.org/10.1137/S0097539795293172](https://doi.org/10.1137/S0097539795293172) +2. Grover, L. K. (1996). A fast quantum mechanical algorithm for database search. _Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing_, 212–219. [https://doi.org/10.1145/237814.237866](https://doi.org/10.1145/237814.237866) +3. Chainalysis. (2024). The Chainalysis 2024 Crypto Crime Report. [https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/](https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/) +4. National Institute of Standards and Technology. (2024). FIPS 204: Module-Lattice-Based Digital Signature Standard (ML-DSA). U.S. Department of Commerce. [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf) +5. National Institute of Standards and Technology. (2024). FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM). U.S. Department of Commerce. [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf) +6. Häner, T., Jaques, S., Naehrig, M., Roetteler, M., & Soeken, M. (2020). Improved quantum circuits for elliptic curve discrete logarithms. _arXiv preprint arXiv:2002.12480_. [https://arxiv.org/abs/2002.12480](https://arxiv.org/abs/2002.12480) +7. Gidney, C., & Ekerå, M. (2021). How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits. _arXiv preprint arXiv:1905.09749_. [https://arxiv.org/abs/1905.09749](https://arxiv.org/abs/1905.09749) +8. Aggarwal, D., et al. (2021). Assessment of Quantum Threat To Bitcoin and Derived Cryptocurrencies. _ePrint IACR_. [https://eprint.iacr.org/2021/967.pdf](https://eprint.iacr.org/2021/967.pdf) +9. Roetteler, M., Naehrig, M., Svore, K. M., & Lauter, K. (2017). Quantum resource estimates for computing elliptic curve discrete logarithms. _arXiv preprint arXiv:1706.06752_. [https://arxiv.org/abs/1706.06752](https://arxiv.org/abs/1706.06752) +10. Open Quantum Safe Project. (n.d.). ML-DSA | Open Quantum Safe. Retrieved January 29, 2026, from https://openquantumsafe.org/liboqs/algorithms/sig/ml-dsa.html diff --git a/website/src/contents/hi-IN/whitepaper.md b/website/src/contents/hi-IN/whitepaper.md new file mode 100644 index 0000000..b8c5a33 --- /dev/null +++ b/website/src/contents/hi-IN/whitepaper.md @@ -0,0 +1,337 @@ +--- +title: "Quantus Whitepaper" +description: "The official Quantus Network whitepaper detailing our quantum-secure Layer 1 blockchain architecture, post-quantum cryptography, and tokenomics." +pubDate: "2026-02-05" +heroImage: "/blog/covers/whitepaper.jpeg" +heroAlt: "Quantus Network Whitepaper" +featured: true +tags: + [ + "whitepaper", + "post-quantum-cryptography", + "blockchain", + "quantus-network", + "dilithium", + "zero-knowledge-proofs", + ] +--- + +**Quantus Network Whitepaper v0.3.2** +Legal Disclaimer: This whitepaper is provided for informational purposes only and does not constitute an offer to sell, a solicitation of an offer to buy, or a recommendation for any security, investment, or financial product. Readers should conduct their own due diligence and consult with qualified professionals before making any investment decisions. Quantus Network makes no representations or warranties regarding the accuracy or completeness of the information herein. + +**1. Introduction** + +The Quantum Threat + +Traditional blockchains face an existential threat from cryptographically relevant quantum computers (CRQCs). The cryptographic foundations of blockchains rely on the hardness of the discrete logarithm problem (DLP), and quantum algorithms, notably Shor's, can solve the DLP exponentially faster than classical computers. This vulnerability could enable quantum-adversaries to derive private keys from public keys, which would allow them to forge transactions and decrypt sensitive financial data. + +This outcome is a catastrophic system failure. Without proactive quantum-resistant upgrades, the trillion-dollar crypto economy risks sudden devaluation from such attacks. + +Unique Value Proposition + +Named after the Latin word for "how much", Quantus Network enables scalable, quantum-secure, private money. Quantus is not a general purpose smart contract platform. Quantus focuses on doing a small number of things better than any other chain. Like a restaurant with a few highly perfected menu items, Quantus delivers: + +- Post-Quantum signatures for all transactions +- Post-Quantum signatures and encryption (ML-DSA and ML-KEM) to secure peer connections +- Post-Quantum zero-knowledge-proofs to scale +- High Security Accounts to deter theft and enable recovery from mistakes +- Human-Readable check-phrases for easy address verification + +The decision to focus on scalable, quantum-secure, private money stems from the threat CRQCs present to the industry and Bitcoin's inability to address these challenges. + +**2. The Quantum Threat to Blockchain** + +Quantum Computing Basics + +Quantum computers leverage principles like superposition and entanglement to perform computations that are intractable for classical machines. Unlike classical bits, which are either 0 or 1, quantum bits (qubits) can exist in multiple states simultaneously, enabling exponential parallelism for certain problems. This capability poses existential risks to the cryptographic systems underpinning blockchain finance, as algorithms developed for quantum hardware undermine the security assumptions of most public-key cryptography. + +Shor's algorithm, introduced in 1994 by Peter Shor, provides a polynomial-time method for factoring large integers and solving the discrete logarithm problem on a quantum computer. In essence, it exploits Quantum Fourier Transforms (QFT) to find the period of a function, allowing efficient reversal of the trapdoor functions that underlie schemes like RSA or elliptic curve cryptography (ECC). For blockchain finance, this means an attacker with a sufficiently powerful quantum computer (estimated at \~2,000 logical qubits [6][7][8][9]) could derive private keys from public keys in polynomial time O(n³). This is an extreme speed-up, rendering vulnerable systems obsolete overnight. [1] + +Grover's algorithm, proposed by Lov Grover in 1996, offers a quadratic speedup for unstructured search problems, reducing the time to find a specific item in an unsorted database from O(n) to O(√n) operations. It works by iteratively amplifying the amplitude of the target state through quantum interference. While not as devastating as Shor's for asymmetric cryptography, Grover's impacts symmetric primitives like hash functions and AES encryption, effectively halving the security level (e.g., a 256-bit key behaves like 128 bits against quantum attacks). While impactful, this attack is mitigated by simply doubling the security bits, rather than changing the cryptographic scheme. Additionally, Grover's quadratic speedup is impractical due to its high qubit and gate requirements, requiring billions of operations in sequence, with limited parallelization, making it infeasible for real-world reversals even on future hardware. [2] + +The dangers of quantum computing to blockchain finance can be categorized into four areas: + +- Forging Digital Signatures: Shor's algorithm directly threatens ECC-based signatures used in most blockchains (e.g., Bitcoin's secp256k1 curve), allowing adversaries to impersonate users and authorize fraudulent transactions. Such a capability would represent a critical failure of the most basic feature of a blockchain. +- Forging False Proofs in Zero-Knowledge Systems: Many zero-knowledge proofs, such as those in zk-SNARKs for privacy-focused finance, rely on discrete logarithm hardness via elliptic-curve pairings for commitments; Shor's could enable the creation of invalid proofs that appear valid, which could allow an attacker to mint new coins or falsify the state of Layer-2s (L2s). +- Decrypting Secret Information: Quantum attacks could expose encrypted data protected by vulnerable public-key schemes in privacy protocols such as Zcash or Monero. It could also decrypt p2p communications in financial protocols, revealing sensitive wealth details and enabling targeted theft. +- Reversing Hash Functions: Grover's algorithm could accelerate preimage attacks on hashes like SHA-256, used for proof-of-work and address generation, but this is the least concerning threat. Many post-quantum cryptographic schemes incorporate hash-based constructions as hashes are considered secure-enough with a large enough digest. + +Scaling Challenges in Post-Quantum Cryptography + +While post-quantum cryptography (PQC) offers essential protections against quantum threats, it introduces significant scaling hurdles due to the inherent design of these algorithms. Unlike elliptic curve schemes, which rely on compact mathematical structures, PQC primitives require larger parameters to maintain security against both classical and quantum adversaries. This results in substantially bigger public keys, private keys, and signatures, often by orders of magnitude. The following table illustrates typical sizes for ML-DSA at a 128-bit post-quantum security level compared to classical counterparts like 256-bit ECDSA [10]: + +| Algorithm | Public Key Size (Bytes) | Private Key Size (Bytes) | Signature Size (Bytes) | +| --------------------- | ----------------------- | ------------------------ | ---------------------- | +| ML-DSA-87 (Dilithium) | 2,592 | 4,896 | 4,627 | +| ECDSA (256-bit) | 32 | 32 | 65 | + +As shown, ML-DSA signatures can be over 70 times larger than ECDSA equivalents, and public keys more than 80 times larger. Other PQC families exacerbate this: hash-based schemes like SPHINCS+ may produce signatures up to 41 KB, while even size-optimized lattice variants like FALCON still exceed classical sizes by a significant multiple. + +In blockchain contexts, these inflated sizes compound into systemic scaling issues. Larger signatures bloat individual transactions, reducing transactions per second (TPS) as blocks fill faster and require more time for validation. This also strains peer-to-peer (P2P) communication, increasing bandwidth demands and propagation delays, which can heighten the risk of network forks or orphaned blocks in consensus mechanisms like proof-of-work. Storage requirements are also affected, leading to higher node operating costs and barriers for participation, especially for resource-constrained users or validators. + +These scaling challenges will have to be addressed by **all blockchains** in the future. Bitcoin, for example, will have much less than 1 TPS if the max block size is not increased. + +**3. The Migration Crisis ** + +The Coordination Problem + +Bitcoin's conservative culture resists protocol changes. Any PQC upgrade would require consensus on contentious issues such as migration timelines, potential coin seizure, and block size increases. Even if the community agreed, every individual user would need to migrate their coins to new quantum-secure addresses. Migration requires action from every crypto holder, many of whom have lost access to their wallets or remain unaware of the threat. + +These issues exist for every public blockchain, but are uniquely challenging to Bitcoin due to its lack of clear leadership and philosophy of technical ossification. + +The Lost Coin Problem + +An estimated $250 billion to $500 billion worth of Bitcoin is permanently inaccessible due to lost keys, deceased holders, or forgotten wallets. [3] These coins cannot be migrated and serve as a public bounty for creating a cryptographically relevant quantum computer (CRQC). Quantum attackers will derive the private keys from exposed unmigrated public keys and likely dump billions of dollars of BTC onto the market. + +Technically, the only way to prevent this is a hard deadline that somehow freezes unmigrated coins, but this is politically impossible. The Bitcoin community would have to confiscate funds from users who failed to act, including estates of deceased holders and long-term investors not paying attention. Without such a deadline, the outcome will be that unmigrated coins are stolen and sold, crashing the market and destroying confidence in the network. + +The Migration Timeline Problem + +Even successful migration faces a scaling wall. Post-quantum signatures are 20x-80x larger than current Bitcoin signatures. Without fundamental architectural changes, Bitcoin's throughput will collapse to a fraction of its already limited capacity. + +Assuming Bitcoin solves the political and technical challenges, the migration itself would take months or years. Every holder must submit at least one transaction to move funds to a quantum-secure address. Many will send test transactions first. With bloated PQC signatures choking throughput, the network faces a backlog lasting months or years while quantum-vulnerable coins remain exposed. + +These compounding challenges make retrofitting quantum security onto existing chains extraordinarily difficult. Quantus Network sidesteps this by building quantum security into the chain from day one. + +**4. Quantus Network Architecture** + +Foundation + +Quantus Network is built on Substrate, a blockchain SDK developed by Parity Technologies, the team behind Ethereum and Polkadot. Substrate is highly modular, enabling easy replacement of components so we can focus on what makes Quantus unique. + +Quantus upgrades Substrate by: + +- Adding support for post-quantum signature schemes +- Upgrading the p2p networking security to be post-quantum +- Adding user-controlled transaction reversibility +- Making the database zk-friendly by aligning all data types to field-element boundaries + +Post-Quantum Cryptographic Primitives + +Quantus Network employs NIST-standardized PQC to ensure the security of transactions and network communications against quantum threats. At the core of transaction integrity is ML-DSA (Module-Lattice-based Digital Signature Algorithm, formerly known as CRYSTALS-Dilithium), a lattice-based signature scheme selected for its balance of security, efficiency, and ease of implementation. ML-DSA leverages the hardness of problems like Learning With Errors (LWE) and Short Integer Solution (SIS) over module lattices, providing robust resistance to both classical and quantum attacks, including those from Shor's algorithm. [4] + +For transaction signatures, Quantus integrates ML-DSA-87, the parameter set offering the highest security level (NIST Security Level 5, equivalent to 256-bit classical and 128-bit quantum security) to protect against potential cryptanalytic breakthroughs in lattice problems. This choice prioritizes caution, as lattice cryptography is relatively new and less battle-tested than classical schemes. The larger parameters mitigate risks from potential advances in lattice cryptanalysis, which would still leave smaller key sizes as softer targets. + +**Alternatives** + +ML-DSA was selected over alternatives like FN-DSA (Falcon) due to + +- FN-DSA's greater implementation complexity (e.g., requiring floating-point operations, which are blockchain-unfriendly) +- lack of deterministic key generation in its specification +- its non-finalized status at the time of development + +Hash-based options like SLH-DSA were not chosen because of their even larger signature sizes (exceeding 17 KB). Crypto-agility (being able to swap in different signature schemes) is built into Substrate, so it is relatively easy to add these alternatives at a future date, should circumstances demand. + +While ML-DSA-87 results in larger keys and signatures, these are manageable in Quantus's early-stage network, where storage is not yet a bottleneck, and optimizations like wormhole addresses via zero-knowledge proofs will address scaling. + +For technical details about the implementation see QIP-0006. + +**Libp2p** + +Quantus Network secures peer-to-peer (P2P) node communications using a combination of ML-DSA for authentication and ML-KEM (Module-Lattice-based Key Encapsulation Mechanism, formerly CRYSTALS-Kyber) for encryption. This integration extends PQC to the libp2p networking stack, modifying core components for quantum resistance: using ML-DSA-87 signatures for peer identity and ML-KEM-768 for transport security (extending the Noise handshake with an additional KEM message for quantum-resistant shared secrets). [5] + +The P2P layer is often neglected in quantum-security analysis. Authentication of peers is important, but the worst an attacker could do at the peer level is impersonate a node and send invalid messages, which could result in denial-of-service. This attack is already mitigated by the fact that nodes are generally untrusted in the blockchain model and nodes can easily switch their keys if the attack is detected. Likewise, decrypting P2P communications yields limited attacker benefits (e.g., tracking transaction paths, mitigated by proxies or Tor), and most data becomes public on-chain anyway. + +Nevertheless, quantum-securing the P2P layer protects against eavesdropping, man-in-the-middle attacks, and quantum decryption, ensuring that node gossip, block propagation, and other network interactions remain confidential and tamper-proof for the foreseeable future. + +For technical details about the implementation see QIP-0004. + +Scaling PQC + +To address the scaling challenges inherent in post-quantum cryptography, Quantus Network introduces an innovative aggregated post-quantum signature scheme called "Wormhole Addresses". This system leverages zero-knowledge proofs (ZKPs) generated via the Plonky2 proving system (basically STARKs) to move balance verification off-chain, allowing the chain to verify a single compact proof without processing individual signatures. Wormhole Addresses enable the verification of a large number of transactions with one proof, with the public inputs (e.g., nullifiers, storage root, exit addresses, and amounts) becoming the primary limiting factor. This reduces the amortized per-transaction storage demands to approximately 256 additional bytes per transaction, much smaller than any known PQC signature scheme. + +The quantum security of the scheme derives from the use of the secure hash function Poseidon2 for commitments via FRI (Fast Reed-Solomon Interactive Oracle Proofs), instead of the quantum-vulnerable elliptic-curve pairings commonly used in SNARKs. + +Additionally the authentication secrets are hidden behind Poseidon2. Since secure hash functions are only quadratically weakened by Grover's algorithm, not broken, hash preimage proofs can serve as lightweight post-quantum signatures in ZK contexts, similar to hash-based schemes like SPHINCS+. + +**Client / Prover Flow ** + +Users generate a provably unspendable address by double-hashing a salt concatenated with a secret + +H(H(salt | secret)) + +This construction prevents false positives (e.g., mistaking a single-hash public key for an unspendable address) because in Substrate (and generally) blockchain addresses are the single hash of a public key, which is derived from the private key via some algebraic operation, not via a secure hash. The security of the construction therefore reduces to finding the preimage-of-a-preimage of a secure hash. Tokens sent to this address are effectively burned. They cannot be spent because no private key exists for the address that received them. These coins can therefore be re-minted without inflating supply. + +For each transfer, a TransferProof storage object is created, containing details like a unique global transfer count. The user's wallet generates a Merkle-Patricia-Trie (MPT) storage proof from a recent block header's storage root to the leaf for this TransferProof. A nullifier is computed + +H(H(salt | secret | global_transfer_count)) + +to prevent double-spends, with the secret derived deterministically from the wallet seed for retention. + +**Aggregator Flow: ** + +Any party (client, miner, or third-party) can aggregate multiple proofs using Plonky2's recursion, forming a tree of proofs where each parent proof is a verification of the child proofs, with the child proofs' public inputs aggregated: + +- nullifiers pass unchanged +- exit addresses are deduplicated +- block hashes are proven to be linked and then all but the most recent is dropped +- amounts for duplicate exit addresses are summed + +This recursion supports hierarchical aggregation, drastically reducing on-chain data. + +**Chain / Verifier Flow: ** + +The network verifies the aggregated proof by checking: + +- block hash is on chain and recent +- nullifier uniqueness (to prevent double-spends) +- proof validity + +The ZK circuit enforces: + +- storage proof correctness +- nullifier computation accuracy +- address unspendability +- balance match between inputs and outputs +- block header linkage + +Plonky2 was selected for the following reasons + +- already audited +- post-quantum +- no trusted setup +- efficient proving/verification +- seamless proof aggregation +- Rust-native implementation +- compatible with Substrate's no-std environment + +Performance highlights include recursive proofs in 170 milliseconds and compact sizes (100 KB per aggregated proof), enabling massive throughput gains. In an optimal case with 5 MB blocks and all transactions going to the same output, Wormhole Addresses could pack \~153,000 transactions into a single block (4.9 MB / 32 bytes per nullifier), a 223x improvement over \~685 raw ML-DSA transactions (5 MB / 7.3 KB each). + +**Security Notes: ** + +Potential risks include inflation bugs from faulty circuit/verification implementations, although this would be economically detectable if re-minted coins exceed balances of zero-send addresses. Users can optionally prove an address is a wormhole by publishing the first hash without revealing the secret. Verification transactions are unsigned, so denial-of-service via failed transactions needs to be mitigated non-financially. Token supply calculations are maintained, as re-mints appear as new coins but maintain maximum supply guarantees via burns. + +For more technical details about the implementation see QIP-0005. + +Consensus Mechanism + +Quantus Network uses a Proof-of-Work (PoW) consensus algorithm that preserves the desirable properties of Bitcoin's consensus algorithm while improving compatibility with ZK-proof systems by switching out SHA-256 with Poseidon2. + +Importantly, this change is not being made for quantum security. Cryptographic hash functions like SHA-256 are weakened but not destroyed by quantum algorithms, notably Grover's. Some post-quantum signature schemes use secure hashes as a building block for this reason. + +Poseidon2 is a refinement of the Poseidon hash function. Creating SNARKs or STARKs for computations involving traditional hash functions like SHA-256 often requires nearly 100x the number of gates compared to using Poseidon, which relies entirely on algebraic functions over field elements, instead of bit-level operations. + +We use the Goldilocks field for both Poseidon2 and Plonky2. The Goldilocks field's order fits in a unsigned 64 bit integer, which increases efficiency without compromising soundness.   + +**5. Wealth Preservation** + +There are many risks in managing cryptocurrency keys. Most of them are avoidable. + +Reversible Transactions + +Quantus Network offers user-configurable reversible transactions. Senders set a time window during which they can cancel outgoing transfers. This deters theft and corrects errors without sacrificing finality. The system uses a modified Substrate "scheduler pallet" with timestamps. Wallets display countdowns for both sender (with a cancel button) and recipient. + +Reversible transactions enable novel security protocols while maintaining decentralization through onchain enforcement. + +For more technical details see QIP-0009. + +Check-Phrases + +Quantus Network introduces "check-phrases," a cryptographically-secure human-readable checksum for blockchain addresses. The address is hashed to generate a short sequence of memorable words from the BIP-39 mnemonic list. Check-phrases protect against typos, tampering, and address poisoning attacks. A 50,000 iteration key derivation function makes rainbow table attacks expensive. For large transactions, users should still verify every character of the address. + +For more technical detail please see QIP-0008. + +High-Security Accounts + +Any account can be upgraded to a "high-security account" with mandatory reversal periods on all outgoing transfers. A designated "guardian" (hardware wallet, multisig, or trusted third party) can cancel suspicious transactions during the reversal period, sending funds to the guardian instead of the sender or receiver. This opt-in feature is permanent once activated, preventing thieves from disabling it. + +Guardians can be chained: a high-security account's guardian can itself be a high-security account with its own guardian. This creates composable hierarchies where each guardian has superior permissions to the account it protects. The design gives users time to detect and respond to unauthorized activity without compromising finality for legitimate transfers. + +For more technical details see QIP-0011. + +Key Recovery + +Many crypto-fortunes have gone to the grave with their owners. Quantus Network offers a simple way to specify a recovery address that can pull your funds at any time, subject to a fixed delay. During this time, the owner can deny recovery if they have access to the key. This feature enables survivorship: users have an onchain will without the need for courts or estates. + +HD-Lattice + +Hierarchical Deterministic (HD) wallets are the industry standard for blockchains, allowing users to back up one seed phrase for all keys, improving security and convenience over manual backups per action. Adapting this to lattice schemes like Dilithium involves two challenges: + +- HMAC-SHA512 outputs can't directly form lattice private keys, which are polynomials sampled from a ring with certain properties. +- Non-hardened key derivation relies on elliptic curve addition, absent in lattices (public keys aren't closed under any algebraic operation). + +Quantus Network addresses the first issue by using the output of the HMAC as entropy to deterministically construct the private key, not as the private key itself. The second issue is less critical and remains an open research question whether lattice cryptography can be adapted to address it. + +For more technical details see QIP-0002. + +**6. Tokenomics and Governance** + +Quantus Network exists in a changing environment, and we cannot assume that we will get everything right on the first try. For this reason, we choose a simple starting point and allow the governance system to make changes as new information is acquired. This design makes the blockchain a living entity that can adapt to its environment at will. In particular, the Substrate governance process allows deep changes to the chain with minimal coordination among the various node-runners. + +Block Rewards + +Quantus Network employs a straightforward tokenomics model imitating that of Bitcoin. There is a maximum supply of 21,000,000 coins and a simple heuristic determines the reward each block. + +```javascript +block_reward = (max_supply - current_supply) / constant; +``` + +This heuristic forms a smooth exponentially decaying curve as the block_reward contributes to the current_supply which reduces the block_reward computed at the next block. Any burns from fees or otherwise reduce current_supply and essentially become part of the budget for block rewards. The constant is chosen so that, in the absence of any burns, 99% of the coins will be emitted in about 40 years. + +Investor Allocations + +Quantus Network was built with the help of angel investors who took great risk in funding it. To avoid the supply overhangs that investor-lockups create, all investors, public and private, will be fully liquid on day one. This allocation will be the only "pre-mine". All other tokens will have to be mined into existence. Depending on the success of public sales this portion will represent 20-30% of the total supply. + +Company Allocations + +To compensate the team for taking the risk to build new technology with no promise of success, a portion of the block reward is sent to the company for approximately four years. This gives a de facto vesting schedule of about 10% of the total supply to the company. + +After that point, the company's portion of block rewards will be redirected to a treasury governed by token holders, essentially forming a DAO. + +Transaction Fees + +Standard transactions have a fee that goes to miners, providing an incentive to include transactions. Reversed transactions from high-security accounts are charged a volume-based fee of 1% that is burned, essentially adding it to the security budget. Transactions that go thru the zk aggregation system are also subject to a volume-based fee of 0.1%, which is split evenly between the miner and a burn. + +Forkless Upgrades + +Quantus Network supports "forkless" upgrades through Substrate's runtime upgrades, allowing the blockchain's core logic (the "runtime") to evolve without hard forks that could disrupt the network or split the community. This is achieved via on-chain governance referenda, where approved proposals trigger a runtime swap, essentially replacing the existing WASM code blob with a new one in a single block, ensuring continuity of state and operations. This upgrade path minimizes downtime and risks, empowering the community to iteratively refine the protocol as real world usage reveals potential improvements. + +As the community gains confidence in the system over time, the power to change the runtime will be significantly reduced to limit the attack surface, should a malicious actor obtain control of the upgrade process. + +Governance System + +Quantus Network inherits its governance framework from Polkadot's OpenGov system via Substrate. Token holders participate via conviction voting, where they agree to lock their assets for varying periods to amplify their vote's weight. This amplification can range from 1x (no lock) to 6x (maximum lockup). This design encourages long-term alignment by tying influence to commitment. + +Proposals are categorized into multiple voting tracks called "origins". Each origin has tailored parameters like approval thresholds (e.g., supermajority for high-impact changes), minimum deposits to deter spam, preparation/enactment periods, and decision timelines to prevent gridlock. This multi-track design allows parallel processing of diverse referenda, from routine treasury spends to critical runtime upgrades. + +The Technical Collective is a curated group of technical experts serving as a specialized body to propose, review, or whitelist urgent technical matters, expediting them through a dedicated track while maintaining community oversight. + +Quantus adopts this system without modifications but starts with a minimalistic setup to avoid complexity in its early stages. Initially, only the Technical Collective track is active, which will be used for binding, high-privilege decisions like protocol upgrades or parameter tweaks. + +Later, Quantus can add a non-binding community vote track for gauging sentiment on non-enforceable topics, such as feature suggestions or ecosystem polls. This system will become binding when the company turns the network over to the DAO. + +This phased approach allows the network to evolve organically via future governance votes without burdening users with unnecessary complexity at the beginning. + +**7. Roadmap** + +The current roadmap through 2026, subject to change: + +- Heisenberg Inception - December 2024 - Funding Secured, Substrate Chosen +- Resonance Alpha - July 2025 - Public Testnet, Dilithium Signatures, Reversible Transactions +- Schrödinger Beta - October 2025 - Feature Complete, Ready for Audit +- Dirac Beta - November 2025 - PoW changed to Poseidon2, Audits Addressed +- Planck Beta - January 2026 - High Security Accounts, Multisigs, Hardware Wallet, ZK Integration +- Bell Mainnet - Q2 2026 - Mainnet Launch +- Fermi Upgrade - Q4 2026 - ZK Proof Aggregation Infrastructure + +**8. Risks** + +Building Quantus Network comes with inherent risks. + +- Implementation Issues: Flaws in software logic can cause serious failures in even the best designed systems. +- NIST Algorithm Selection Issues: Potential flaws or backdoors in selected post-quantum standards (e.g., ML-DSA, ML-KEM) that could emerge post-standardization. In the worst case, such flaws would allow an attacker to forge signatures by deriving a private key from the public, representing a catastrophic failure mode of the chain. If such flaws were made public, Quantus Network could be upgraded to a new algorithm, but if such flaws are exploited sparingly they may never be discovered. +- Quantum Computing Timelines: Quantum breakthroughs might arrive much later than anticipated, delaying the need for PQC; conversely, secretive development (e.g. by governments) could lead to sudden threats if the blockchain community fails to update swiftly. +- Other Considerations: General adoption barriers, regulatory uncertainties in finance/blockchain, and the inherent volatility of crypto ecosystems. + +**9. References & Further Reading** + +1. Shor, P. W. (1997). Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. _SIAM Journal on Computing_, 26(5), 1484–1509. [https://doi.org/10.1137/S0097539795293172](https://doi.org/10.1137/S0097539795293172) +2. Grover, L. K. (1996). A fast quantum mechanical algorithm for database search. _Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing_, 212–219. [https://doi.org/10.1145/237814.237866](https://doi.org/10.1145/237814.237866) +3. Chainalysis. (2024). The Chainalysis 2024 Crypto Crime Report. [https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/](https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/) +4. National Institute of Standards and Technology. (2024). FIPS 204: Module-Lattice-Based Digital Signature Standard (ML-DSA). U.S. Department of Commerce. [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf) +5. National Institute of Standards and Technology. (2024). FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM). U.S. Department of Commerce. [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf) +6. Häner, T., Jaques, S., Naehrig, M., Roetteler, M., & Soeken, M. (2020). Improved quantum circuits for elliptic curve discrete logarithms. _arXiv preprint arXiv:2002.12480_. [https://arxiv.org/abs/2002.12480](https://arxiv.org/abs/2002.12480) +7. Gidney, C., & Ekerå, M. (2021). How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits. _arXiv preprint arXiv:1905.09749_. [https://arxiv.org/abs/1905.09749](https://arxiv.org/abs/1905.09749) +8. Aggarwal, D., et al. (2021). Assessment of Quantum Threat To Bitcoin and Derived Cryptocurrencies. _ePrint IACR_. [https://eprint.iacr.org/2021/967.pdf](https://eprint.iacr.org/2021/967.pdf) +9. Roetteler, M., Naehrig, M., Svore, K. M., & Lauter, K. (2017). Quantum resource estimates for computing elliptic curve discrete logarithms. _arXiv preprint arXiv:1706.06752_. [https://arxiv.org/abs/1706.06752](https://arxiv.org/abs/1706.06752) +10. Open Quantum Safe Project. (n.d.). ML-DSA | Open Quantum Safe. Retrieved January 29, 2026, from https://openquantumsafe.org/liboqs/algorithms/sig/ml-dsa.html diff --git a/website/src/contents/id-ID/whitepaper.md b/website/src/contents/id-ID/whitepaper.md new file mode 100644 index 0000000..b8c5a33 --- /dev/null +++ b/website/src/contents/id-ID/whitepaper.md @@ -0,0 +1,337 @@ +--- +title: "Quantus Whitepaper" +description: "The official Quantus Network whitepaper detailing our quantum-secure Layer 1 blockchain architecture, post-quantum cryptography, and tokenomics." +pubDate: "2026-02-05" +heroImage: "/blog/covers/whitepaper.jpeg" +heroAlt: "Quantus Network Whitepaper" +featured: true +tags: + [ + "whitepaper", + "post-quantum-cryptography", + "blockchain", + "quantus-network", + "dilithium", + "zero-knowledge-proofs", + ] +--- + +**Quantus Network Whitepaper v0.3.2** +Legal Disclaimer: This whitepaper is provided for informational purposes only and does not constitute an offer to sell, a solicitation of an offer to buy, or a recommendation for any security, investment, or financial product. Readers should conduct their own due diligence and consult with qualified professionals before making any investment decisions. Quantus Network makes no representations or warranties regarding the accuracy or completeness of the information herein. + +**1. Introduction** + +The Quantum Threat + +Traditional blockchains face an existential threat from cryptographically relevant quantum computers (CRQCs). The cryptographic foundations of blockchains rely on the hardness of the discrete logarithm problem (DLP), and quantum algorithms, notably Shor's, can solve the DLP exponentially faster than classical computers. This vulnerability could enable quantum-adversaries to derive private keys from public keys, which would allow them to forge transactions and decrypt sensitive financial data. + +This outcome is a catastrophic system failure. Without proactive quantum-resistant upgrades, the trillion-dollar crypto economy risks sudden devaluation from such attacks. + +Unique Value Proposition + +Named after the Latin word for "how much", Quantus Network enables scalable, quantum-secure, private money. Quantus is not a general purpose smart contract platform. Quantus focuses on doing a small number of things better than any other chain. Like a restaurant with a few highly perfected menu items, Quantus delivers: + +- Post-Quantum signatures for all transactions +- Post-Quantum signatures and encryption (ML-DSA and ML-KEM) to secure peer connections +- Post-Quantum zero-knowledge-proofs to scale +- High Security Accounts to deter theft and enable recovery from mistakes +- Human-Readable check-phrases for easy address verification + +The decision to focus on scalable, quantum-secure, private money stems from the threat CRQCs present to the industry and Bitcoin's inability to address these challenges. + +**2. The Quantum Threat to Blockchain** + +Quantum Computing Basics + +Quantum computers leverage principles like superposition and entanglement to perform computations that are intractable for classical machines. Unlike classical bits, which are either 0 or 1, quantum bits (qubits) can exist in multiple states simultaneously, enabling exponential parallelism for certain problems. This capability poses existential risks to the cryptographic systems underpinning blockchain finance, as algorithms developed for quantum hardware undermine the security assumptions of most public-key cryptography. + +Shor's algorithm, introduced in 1994 by Peter Shor, provides a polynomial-time method for factoring large integers and solving the discrete logarithm problem on a quantum computer. In essence, it exploits Quantum Fourier Transforms (QFT) to find the period of a function, allowing efficient reversal of the trapdoor functions that underlie schemes like RSA or elliptic curve cryptography (ECC). For blockchain finance, this means an attacker with a sufficiently powerful quantum computer (estimated at \~2,000 logical qubits [6][7][8][9]) could derive private keys from public keys in polynomial time O(n³). This is an extreme speed-up, rendering vulnerable systems obsolete overnight. [1] + +Grover's algorithm, proposed by Lov Grover in 1996, offers a quadratic speedup for unstructured search problems, reducing the time to find a specific item in an unsorted database from O(n) to O(√n) operations. It works by iteratively amplifying the amplitude of the target state through quantum interference. While not as devastating as Shor's for asymmetric cryptography, Grover's impacts symmetric primitives like hash functions and AES encryption, effectively halving the security level (e.g., a 256-bit key behaves like 128 bits against quantum attacks). While impactful, this attack is mitigated by simply doubling the security bits, rather than changing the cryptographic scheme. Additionally, Grover's quadratic speedup is impractical due to its high qubit and gate requirements, requiring billions of operations in sequence, with limited parallelization, making it infeasible for real-world reversals even on future hardware. [2] + +The dangers of quantum computing to blockchain finance can be categorized into four areas: + +- Forging Digital Signatures: Shor's algorithm directly threatens ECC-based signatures used in most blockchains (e.g., Bitcoin's secp256k1 curve), allowing adversaries to impersonate users and authorize fraudulent transactions. Such a capability would represent a critical failure of the most basic feature of a blockchain. +- Forging False Proofs in Zero-Knowledge Systems: Many zero-knowledge proofs, such as those in zk-SNARKs for privacy-focused finance, rely on discrete logarithm hardness via elliptic-curve pairings for commitments; Shor's could enable the creation of invalid proofs that appear valid, which could allow an attacker to mint new coins or falsify the state of Layer-2s (L2s). +- Decrypting Secret Information: Quantum attacks could expose encrypted data protected by vulnerable public-key schemes in privacy protocols such as Zcash or Monero. It could also decrypt p2p communications in financial protocols, revealing sensitive wealth details and enabling targeted theft. +- Reversing Hash Functions: Grover's algorithm could accelerate preimage attacks on hashes like SHA-256, used for proof-of-work and address generation, but this is the least concerning threat. Many post-quantum cryptographic schemes incorporate hash-based constructions as hashes are considered secure-enough with a large enough digest. + +Scaling Challenges in Post-Quantum Cryptography + +While post-quantum cryptography (PQC) offers essential protections against quantum threats, it introduces significant scaling hurdles due to the inherent design of these algorithms. Unlike elliptic curve schemes, which rely on compact mathematical structures, PQC primitives require larger parameters to maintain security against both classical and quantum adversaries. This results in substantially bigger public keys, private keys, and signatures, often by orders of magnitude. The following table illustrates typical sizes for ML-DSA at a 128-bit post-quantum security level compared to classical counterparts like 256-bit ECDSA [10]: + +| Algorithm | Public Key Size (Bytes) | Private Key Size (Bytes) | Signature Size (Bytes) | +| --------------------- | ----------------------- | ------------------------ | ---------------------- | +| ML-DSA-87 (Dilithium) | 2,592 | 4,896 | 4,627 | +| ECDSA (256-bit) | 32 | 32 | 65 | + +As shown, ML-DSA signatures can be over 70 times larger than ECDSA equivalents, and public keys more than 80 times larger. Other PQC families exacerbate this: hash-based schemes like SPHINCS+ may produce signatures up to 41 KB, while even size-optimized lattice variants like FALCON still exceed classical sizes by a significant multiple. + +In blockchain contexts, these inflated sizes compound into systemic scaling issues. Larger signatures bloat individual transactions, reducing transactions per second (TPS) as blocks fill faster and require more time for validation. This also strains peer-to-peer (P2P) communication, increasing bandwidth demands and propagation delays, which can heighten the risk of network forks or orphaned blocks in consensus mechanisms like proof-of-work. Storage requirements are also affected, leading to higher node operating costs and barriers for participation, especially for resource-constrained users or validators. + +These scaling challenges will have to be addressed by **all blockchains** in the future. Bitcoin, for example, will have much less than 1 TPS if the max block size is not increased. + +**3. The Migration Crisis ** + +The Coordination Problem + +Bitcoin's conservative culture resists protocol changes. Any PQC upgrade would require consensus on contentious issues such as migration timelines, potential coin seizure, and block size increases. Even if the community agreed, every individual user would need to migrate their coins to new quantum-secure addresses. Migration requires action from every crypto holder, many of whom have lost access to their wallets or remain unaware of the threat. + +These issues exist for every public blockchain, but are uniquely challenging to Bitcoin due to its lack of clear leadership and philosophy of technical ossification. + +The Lost Coin Problem + +An estimated $250 billion to $500 billion worth of Bitcoin is permanently inaccessible due to lost keys, deceased holders, or forgotten wallets. [3] These coins cannot be migrated and serve as a public bounty for creating a cryptographically relevant quantum computer (CRQC). Quantum attackers will derive the private keys from exposed unmigrated public keys and likely dump billions of dollars of BTC onto the market. + +Technically, the only way to prevent this is a hard deadline that somehow freezes unmigrated coins, but this is politically impossible. The Bitcoin community would have to confiscate funds from users who failed to act, including estates of deceased holders and long-term investors not paying attention. Without such a deadline, the outcome will be that unmigrated coins are stolen and sold, crashing the market and destroying confidence in the network. + +The Migration Timeline Problem + +Even successful migration faces a scaling wall. Post-quantum signatures are 20x-80x larger than current Bitcoin signatures. Without fundamental architectural changes, Bitcoin's throughput will collapse to a fraction of its already limited capacity. + +Assuming Bitcoin solves the political and technical challenges, the migration itself would take months or years. Every holder must submit at least one transaction to move funds to a quantum-secure address. Many will send test transactions first. With bloated PQC signatures choking throughput, the network faces a backlog lasting months or years while quantum-vulnerable coins remain exposed. + +These compounding challenges make retrofitting quantum security onto existing chains extraordinarily difficult. Quantus Network sidesteps this by building quantum security into the chain from day one. + +**4. Quantus Network Architecture** + +Foundation + +Quantus Network is built on Substrate, a blockchain SDK developed by Parity Technologies, the team behind Ethereum and Polkadot. Substrate is highly modular, enabling easy replacement of components so we can focus on what makes Quantus unique. + +Quantus upgrades Substrate by: + +- Adding support for post-quantum signature schemes +- Upgrading the p2p networking security to be post-quantum +- Adding user-controlled transaction reversibility +- Making the database zk-friendly by aligning all data types to field-element boundaries + +Post-Quantum Cryptographic Primitives + +Quantus Network employs NIST-standardized PQC to ensure the security of transactions and network communications against quantum threats. At the core of transaction integrity is ML-DSA (Module-Lattice-based Digital Signature Algorithm, formerly known as CRYSTALS-Dilithium), a lattice-based signature scheme selected for its balance of security, efficiency, and ease of implementation. ML-DSA leverages the hardness of problems like Learning With Errors (LWE) and Short Integer Solution (SIS) over module lattices, providing robust resistance to both classical and quantum attacks, including those from Shor's algorithm. [4] + +For transaction signatures, Quantus integrates ML-DSA-87, the parameter set offering the highest security level (NIST Security Level 5, equivalent to 256-bit classical and 128-bit quantum security) to protect against potential cryptanalytic breakthroughs in lattice problems. This choice prioritizes caution, as lattice cryptography is relatively new and less battle-tested than classical schemes. The larger parameters mitigate risks from potential advances in lattice cryptanalysis, which would still leave smaller key sizes as softer targets. + +**Alternatives** + +ML-DSA was selected over alternatives like FN-DSA (Falcon) due to + +- FN-DSA's greater implementation complexity (e.g., requiring floating-point operations, which are blockchain-unfriendly) +- lack of deterministic key generation in its specification +- its non-finalized status at the time of development + +Hash-based options like SLH-DSA were not chosen because of their even larger signature sizes (exceeding 17 KB). Crypto-agility (being able to swap in different signature schemes) is built into Substrate, so it is relatively easy to add these alternatives at a future date, should circumstances demand. + +While ML-DSA-87 results in larger keys and signatures, these are manageable in Quantus's early-stage network, where storage is not yet a bottleneck, and optimizations like wormhole addresses via zero-knowledge proofs will address scaling. + +For technical details about the implementation see QIP-0006. + +**Libp2p** + +Quantus Network secures peer-to-peer (P2P) node communications using a combination of ML-DSA for authentication and ML-KEM (Module-Lattice-based Key Encapsulation Mechanism, formerly CRYSTALS-Kyber) for encryption. This integration extends PQC to the libp2p networking stack, modifying core components for quantum resistance: using ML-DSA-87 signatures for peer identity and ML-KEM-768 for transport security (extending the Noise handshake with an additional KEM message for quantum-resistant shared secrets). [5] + +The P2P layer is often neglected in quantum-security analysis. Authentication of peers is important, but the worst an attacker could do at the peer level is impersonate a node and send invalid messages, which could result in denial-of-service. This attack is already mitigated by the fact that nodes are generally untrusted in the blockchain model and nodes can easily switch their keys if the attack is detected. Likewise, decrypting P2P communications yields limited attacker benefits (e.g., tracking transaction paths, mitigated by proxies or Tor), and most data becomes public on-chain anyway. + +Nevertheless, quantum-securing the P2P layer protects against eavesdropping, man-in-the-middle attacks, and quantum decryption, ensuring that node gossip, block propagation, and other network interactions remain confidential and tamper-proof for the foreseeable future. + +For technical details about the implementation see QIP-0004. + +Scaling PQC + +To address the scaling challenges inherent in post-quantum cryptography, Quantus Network introduces an innovative aggregated post-quantum signature scheme called "Wormhole Addresses". This system leverages zero-knowledge proofs (ZKPs) generated via the Plonky2 proving system (basically STARKs) to move balance verification off-chain, allowing the chain to verify a single compact proof without processing individual signatures. Wormhole Addresses enable the verification of a large number of transactions with one proof, with the public inputs (e.g., nullifiers, storage root, exit addresses, and amounts) becoming the primary limiting factor. This reduces the amortized per-transaction storage demands to approximately 256 additional bytes per transaction, much smaller than any known PQC signature scheme. + +The quantum security of the scheme derives from the use of the secure hash function Poseidon2 for commitments via FRI (Fast Reed-Solomon Interactive Oracle Proofs), instead of the quantum-vulnerable elliptic-curve pairings commonly used in SNARKs. + +Additionally the authentication secrets are hidden behind Poseidon2. Since secure hash functions are only quadratically weakened by Grover's algorithm, not broken, hash preimage proofs can serve as lightweight post-quantum signatures in ZK contexts, similar to hash-based schemes like SPHINCS+. + +**Client / Prover Flow ** + +Users generate a provably unspendable address by double-hashing a salt concatenated with a secret + +H(H(salt | secret)) + +This construction prevents false positives (e.g., mistaking a single-hash public key for an unspendable address) because in Substrate (and generally) blockchain addresses are the single hash of a public key, which is derived from the private key via some algebraic operation, not via a secure hash. The security of the construction therefore reduces to finding the preimage-of-a-preimage of a secure hash. Tokens sent to this address are effectively burned. They cannot be spent because no private key exists for the address that received them. These coins can therefore be re-minted without inflating supply. + +For each transfer, a TransferProof storage object is created, containing details like a unique global transfer count. The user's wallet generates a Merkle-Patricia-Trie (MPT) storage proof from a recent block header's storage root to the leaf for this TransferProof. A nullifier is computed + +H(H(salt | secret | global_transfer_count)) + +to prevent double-spends, with the secret derived deterministically from the wallet seed for retention. + +**Aggregator Flow: ** + +Any party (client, miner, or third-party) can aggregate multiple proofs using Plonky2's recursion, forming a tree of proofs where each parent proof is a verification of the child proofs, with the child proofs' public inputs aggregated: + +- nullifiers pass unchanged +- exit addresses are deduplicated +- block hashes are proven to be linked and then all but the most recent is dropped +- amounts for duplicate exit addresses are summed + +This recursion supports hierarchical aggregation, drastically reducing on-chain data. + +**Chain / Verifier Flow: ** + +The network verifies the aggregated proof by checking: + +- block hash is on chain and recent +- nullifier uniqueness (to prevent double-spends) +- proof validity + +The ZK circuit enforces: + +- storage proof correctness +- nullifier computation accuracy +- address unspendability +- balance match between inputs and outputs +- block header linkage + +Plonky2 was selected for the following reasons + +- already audited +- post-quantum +- no trusted setup +- efficient proving/verification +- seamless proof aggregation +- Rust-native implementation +- compatible with Substrate's no-std environment + +Performance highlights include recursive proofs in 170 milliseconds and compact sizes (100 KB per aggregated proof), enabling massive throughput gains. In an optimal case with 5 MB blocks and all transactions going to the same output, Wormhole Addresses could pack \~153,000 transactions into a single block (4.9 MB / 32 bytes per nullifier), a 223x improvement over \~685 raw ML-DSA transactions (5 MB / 7.3 KB each). + +**Security Notes: ** + +Potential risks include inflation bugs from faulty circuit/verification implementations, although this would be economically detectable if re-minted coins exceed balances of zero-send addresses. Users can optionally prove an address is a wormhole by publishing the first hash without revealing the secret. Verification transactions are unsigned, so denial-of-service via failed transactions needs to be mitigated non-financially. Token supply calculations are maintained, as re-mints appear as new coins but maintain maximum supply guarantees via burns. + +For more technical details about the implementation see QIP-0005. + +Consensus Mechanism + +Quantus Network uses a Proof-of-Work (PoW) consensus algorithm that preserves the desirable properties of Bitcoin's consensus algorithm while improving compatibility with ZK-proof systems by switching out SHA-256 with Poseidon2. + +Importantly, this change is not being made for quantum security. Cryptographic hash functions like SHA-256 are weakened but not destroyed by quantum algorithms, notably Grover's. Some post-quantum signature schemes use secure hashes as a building block for this reason. + +Poseidon2 is a refinement of the Poseidon hash function. Creating SNARKs or STARKs for computations involving traditional hash functions like SHA-256 often requires nearly 100x the number of gates compared to using Poseidon, which relies entirely on algebraic functions over field elements, instead of bit-level operations. + +We use the Goldilocks field for both Poseidon2 and Plonky2. The Goldilocks field's order fits in a unsigned 64 bit integer, which increases efficiency without compromising soundness.   + +**5. Wealth Preservation** + +There are many risks in managing cryptocurrency keys. Most of them are avoidable. + +Reversible Transactions + +Quantus Network offers user-configurable reversible transactions. Senders set a time window during which they can cancel outgoing transfers. This deters theft and corrects errors without sacrificing finality. The system uses a modified Substrate "scheduler pallet" with timestamps. Wallets display countdowns for both sender (with a cancel button) and recipient. + +Reversible transactions enable novel security protocols while maintaining decentralization through onchain enforcement. + +For more technical details see QIP-0009. + +Check-Phrases + +Quantus Network introduces "check-phrases," a cryptographically-secure human-readable checksum for blockchain addresses. The address is hashed to generate a short sequence of memorable words from the BIP-39 mnemonic list. Check-phrases protect against typos, tampering, and address poisoning attacks. A 50,000 iteration key derivation function makes rainbow table attacks expensive. For large transactions, users should still verify every character of the address. + +For more technical detail please see QIP-0008. + +High-Security Accounts + +Any account can be upgraded to a "high-security account" with mandatory reversal periods on all outgoing transfers. A designated "guardian" (hardware wallet, multisig, or trusted third party) can cancel suspicious transactions during the reversal period, sending funds to the guardian instead of the sender or receiver. This opt-in feature is permanent once activated, preventing thieves from disabling it. + +Guardians can be chained: a high-security account's guardian can itself be a high-security account with its own guardian. This creates composable hierarchies where each guardian has superior permissions to the account it protects. The design gives users time to detect and respond to unauthorized activity without compromising finality for legitimate transfers. + +For more technical details see QIP-0011. + +Key Recovery + +Many crypto-fortunes have gone to the grave with their owners. Quantus Network offers a simple way to specify a recovery address that can pull your funds at any time, subject to a fixed delay. During this time, the owner can deny recovery if they have access to the key. This feature enables survivorship: users have an onchain will without the need for courts or estates. + +HD-Lattice + +Hierarchical Deterministic (HD) wallets are the industry standard for blockchains, allowing users to back up one seed phrase for all keys, improving security and convenience over manual backups per action. Adapting this to lattice schemes like Dilithium involves two challenges: + +- HMAC-SHA512 outputs can't directly form lattice private keys, which are polynomials sampled from a ring with certain properties. +- Non-hardened key derivation relies on elliptic curve addition, absent in lattices (public keys aren't closed under any algebraic operation). + +Quantus Network addresses the first issue by using the output of the HMAC as entropy to deterministically construct the private key, not as the private key itself. The second issue is less critical and remains an open research question whether lattice cryptography can be adapted to address it. + +For more technical details see QIP-0002. + +**6. Tokenomics and Governance** + +Quantus Network exists in a changing environment, and we cannot assume that we will get everything right on the first try. For this reason, we choose a simple starting point and allow the governance system to make changes as new information is acquired. This design makes the blockchain a living entity that can adapt to its environment at will. In particular, the Substrate governance process allows deep changes to the chain with minimal coordination among the various node-runners. + +Block Rewards + +Quantus Network employs a straightforward tokenomics model imitating that of Bitcoin. There is a maximum supply of 21,000,000 coins and a simple heuristic determines the reward each block. + +```javascript +block_reward = (max_supply - current_supply) / constant; +``` + +This heuristic forms a smooth exponentially decaying curve as the block_reward contributes to the current_supply which reduces the block_reward computed at the next block. Any burns from fees or otherwise reduce current_supply and essentially become part of the budget for block rewards. The constant is chosen so that, in the absence of any burns, 99% of the coins will be emitted in about 40 years. + +Investor Allocations + +Quantus Network was built with the help of angel investors who took great risk in funding it. To avoid the supply overhangs that investor-lockups create, all investors, public and private, will be fully liquid on day one. This allocation will be the only "pre-mine". All other tokens will have to be mined into existence. Depending on the success of public sales this portion will represent 20-30% of the total supply. + +Company Allocations + +To compensate the team for taking the risk to build new technology with no promise of success, a portion of the block reward is sent to the company for approximately four years. This gives a de facto vesting schedule of about 10% of the total supply to the company. + +After that point, the company's portion of block rewards will be redirected to a treasury governed by token holders, essentially forming a DAO. + +Transaction Fees + +Standard transactions have a fee that goes to miners, providing an incentive to include transactions. Reversed transactions from high-security accounts are charged a volume-based fee of 1% that is burned, essentially adding it to the security budget. Transactions that go thru the zk aggregation system are also subject to a volume-based fee of 0.1%, which is split evenly between the miner and a burn. + +Forkless Upgrades + +Quantus Network supports "forkless" upgrades through Substrate's runtime upgrades, allowing the blockchain's core logic (the "runtime") to evolve without hard forks that could disrupt the network or split the community. This is achieved via on-chain governance referenda, where approved proposals trigger a runtime swap, essentially replacing the existing WASM code blob with a new one in a single block, ensuring continuity of state and operations. This upgrade path minimizes downtime and risks, empowering the community to iteratively refine the protocol as real world usage reveals potential improvements. + +As the community gains confidence in the system over time, the power to change the runtime will be significantly reduced to limit the attack surface, should a malicious actor obtain control of the upgrade process. + +Governance System + +Quantus Network inherits its governance framework from Polkadot's OpenGov system via Substrate. Token holders participate via conviction voting, where they agree to lock their assets for varying periods to amplify their vote's weight. This amplification can range from 1x (no lock) to 6x (maximum lockup). This design encourages long-term alignment by tying influence to commitment. + +Proposals are categorized into multiple voting tracks called "origins". Each origin has tailored parameters like approval thresholds (e.g., supermajority for high-impact changes), minimum deposits to deter spam, preparation/enactment periods, and decision timelines to prevent gridlock. This multi-track design allows parallel processing of diverse referenda, from routine treasury spends to critical runtime upgrades. + +The Technical Collective is a curated group of technical experts serving as a specialized body to propose, review, or whitelist urgent technical matters, expediting them through a dedicated track while maintaining community oversight. + +Quantus adopts this system without modifications but starts with a minimalistic setup to avoid complexity in its early stages. Initially, only the Technical Collective track is active, which will be used for binding, high-privilege decisions like protocol upgrades or parameter tweaks. + +Later, Quantus can add a non-binding community vote track for gauging sentiment on non-enforceable topics, such as feature suggestions or ecosystem polls. This system will become binding when the company turns the network over to the DAO. + +This phased approach allows the network to evolve organically via future governance votes without burdening users with unnecessary complexity at the beginning. + +**7. Roadmap** + +The current roadmap through 2026, subject to change: + +- Heisenberg Inception - December 2024 - Funding Secured, Substrate Chosen +- Resonance Alpha - July 2025 - Public Testnet, Dilithium Signatures, Reversible Transactions +- Schrödinger Beta - October 2025 - Feature Complete, Ready for Audit +- Dirac Beta - November 2025 - PoW changed to Poseidon2, Audits Addressed +- Planck Beta - January 2026 - High Security Accounts, Multisigs, Hardware Wallet, ZK Integration +- Bell Mainnet - Q2 2026 - Mainnet Launch +- Fermi Upgrade - Q4 2026 - ZK Proof Aggregation Infrastructure + +**8. Risks** + +Building Quantus Network comes with inherent risks. + +- Implementation Issues: Flaws in software logic can cause serious failures in even the best designed systems. +- NIST Algorithm Selection Issues: Potential flaws or backdoors in selected post-quantum standards (e.g., ML-DSA, ML-KEM) that could emerge post-standardization. In the worst case, such flaws would allow an attacker to forge signatures by deriving a private key from the public, representing a catastrophic failure mode of the chain. If such flaws were made public, Quantus Network could be upgraded to a new algorithm, but if such flaws are exploited sparingly they may never be discovered. +- Quantum Computing Timelines: Quantum breakthroughs might arrive much later than anticipated, delaying the need for PQC; conversely, secretive development (e.g. by governments) could lead to sudden threats if the blockchain community fails to update swiftly. +- Other Considerations: General adoption barriers, regulatory uncertainties in finance/blockchain, and the inherent volatility of crypto ecosystems. + +**9. References & Further Reading** + +1. Shor, P. W. (1997). Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. _SIAM Journal on Computing_, 26(5), 1484–1509. [https://doi.org/10.1137/S0097539795293172](https://doi.org/10.1137/S0097539795293172) +2. Grover, L. K. (1996). A fast quantum mechanical algorithm for database search. _Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing_, 212–219. [https://doi.org/10.1145/237814.237866](https://doi.org/10.1145/237814.237866) +3. Chainalysis. (2024). The Chainalysis 2024 Crypto Crime Report. [https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/](https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/) +4. National Institute of Standards and Technology. (2024). FIPS 204: Module-Lattice-Based Digital Signature Standard (ML-DSA). U.S. Department of Commerce. [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf) +5. National Institute of Standards and Technology. (2024). FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM). U.S. Department of Commerce. [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf) +6. Häner, T., Jaques, S., Naehrig, M., Roetteler, M., & Soeken, M. (2020). Improved quantum circuits for elliptic curve discrete logarithms. _arXiv preprint arXiv:2002.12480_. [https://arxiv.org/abs/2002.12480](https://arxiv.org/abs/2002.12480) +7. Gidney, C., & Ekerå, M. (2021). How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits. _arXiv preprint arXiv:1905.09749_. [https://arxiv.org/abs/1905.09749](https://arxiv.org/abs/1905.09749) +8. Aggarwal, D., et al. (2021). Assessment of Quantum Threat To Bitcoin and Derived Cryptocurrencies. _ePrint IACR_. [https://eprint.iacr.org/2021/967.pdf](https://eprint.iacr.org/2021/967.pdf) +9. Roetteler, M., Naehrig, M., Svore, K. M., & Lauter, K. (2017). Quantum resource estimates for computing elliptic curve discrete logarithms. _arXiv preprint arXiv:1706.06752_. [https://arxiv.org/abs/1706.06752](https://arxiv.org/abs/1706.06752) +10. Open Quantum Safe Project. (n.d.). ML-DSA | Open Quantum Safe. Retrieved January 29, 2026, from https://openquantumsafe.org/liboqs/algorithms/sig/ml-dsa.html diff --git a/website/src/contents/ja-JP/whitepaper.md b/website/src/contents/ja-JP/whitepaper.md new file mode 100644 index 0000000..c57b9b4 --- /dev/null +++ b/website/src/contents/ja-JP/whitepaper.md @@ -0,0 +1,393 @@ +--- +title: "Quantus 白皮书" +description: "Quantus Network 官方白皮书,详细介绍我们的量子安全第一层区块链架构、后量子密码学和代币经济学。" +pubDate: "2026-02-05" +heroImage: "/blog/covers/whitepaper.jpeg" +heroAlt: "Quantus Network 白皮书" +featured: true +tags: + [ + "whitepaper", + "post-quantum-cryptography", + "blockchain", + "quantus-network", + "dilithium", + "zero-knowledge-proofs", + ] +--- + +# **Quantus Network 白皮书 v0.3.2** + +## **法律免责声明** + +本白皮书仅供信息参考之用,不构成出售要约、购买要约的招揽,亦不构成对任何证券、投资或金融产品的推荐。读者在做出任何投资决策前,应自行进行尽职调查,并咨询合格专业人士。Quantus Network 不对本文信息的准确性或完整性做出任何陈述或保证。 + +**术语表** + +- **CRQC** (Cryptographically Relevant Quantum Computer) 对密码学具有实际影响的量子计算机(或“密码学相关量子计算机”) 指一台容错、规模足够大的量子计算机,能够在合理时间内(如数月内)运行Shor算法破解当前公钥密码(如ECC或RSA)。不同于当前噪声中间规模量子(NISQ)设备,后者尚无法实现密码学级攻击。 +- **Quantum-resistant** / **Post-quantum** 抗量子 / 后量子 指能抵抗量子计算机攻击的密码学方案(包括NIST标准化的算法)。 +- **ML-DSA** (Module-Lattice-based Digital Signature Algorithm, 前身为CRYSTALS-Dilithium) 模块格数字签名算法(ML-DSA) +- **ML-KEM** (Module-Lattice-based Key-Encapsulation Mechanism, 前身为CRYSTALS-Kyber) 模块格密钥封装机制(ML-KEM) +- **Non-hardened key derivation** 非硬化密钥派生 在HD钱包中,指不使用硬化路径的密钥派生方式(依赖代数运算,在格密码学中实现更具挑战)。 +- **Wormhole Addresses** 虫洞地址(或建议备选:跃迁地址 / 聚合地址 / 零知识隧道地址) Quantus特有的ZK聚合地址系统,利用Plonky2证明实现高效后量子交易聚合。 +- **Check-phrases** 校验短语(或人类可读校验短语) 人类可读的地址校验和,基于BIP-39词表生成,用于防范地址错误或投毒攻击。 + +# **1. 引言** + +## **量子威胁** + +传统区块链正面临来自 CRQCs 的存在性威胁。区块链的密码学基础依赖于离散对数问题(DLP)的难度,而量子算法(特别是Shor算法)能够以指数级速度更快地求解 DLP。这种漏洞可能使量子攻击者从公钥推导出私钥,从而伪造交易并解密敏感金融数据。 + +这将导致灾难性的系统性失败。如果不主动进行抗量子升级,万亿美元规模的加密经济将面临由此类攻击导致的突发性贬值风险。 + +## **独特价值主张** + +Quantus Network 以拉丁语"多少"(how much)命名,旨在实现可扩展的、量子安全的、私密货币。Quantus 并非通用智能合约平台。它专注于在少数几件事上做得比其他链更好,就像一家菜品不多但每道菜都做到极致的餐厅,Quantus 提供: + +• 所有交易均使用后量子签名 + +• 用于保护点对点连接的后量子签名和加密(ML-DSA 和 ML-KEM) + +• 可扩展的后量子零知识证明 + +• 高安全性账户,用于防止盗窃并从错误中恢复 + +• 人类可读的校验短语,便于地址验证 + +专注于可扩展、量子安全、私密货币的决定,源于 CRQCs 对行业的威胁以及比特币在应对这些挑战上的不足。 + +# **2. 区块链面临的量子威胁** + +## **量子计算基础** + +量子计算机利用叠加和纠缠等原理,能够执行传统计算机难以处理的计算。与经典比特(仅为 0 或 1)不同,量子比特(qubits)可同时处于多种状态,从而针对某些问题实现指数级并行。这项能力对区块链金融的密码系统构成存在性风险,因为专为量子硬件开发的算法(如 Shor 算法)破坏了大多数公钥密码的安全假设。 + +Shor算法由 Peter Shor 于 1994 年提出,为量子计算机上分解大整数和解决离散对数问题(DLP)提供了多项式时间的方法。本质上,它利用量子傅里叶变换(QFT)找到函数周期,从而高效逆转 RSA 或椭圆曲线密码学(ECC)等方案的单向陷门函数。对于区块链金融,这意味着拥有足够强大 CRQC(估计约 2,000 个逻辑量子比特 [6][7][8][9])的攻击者,可以在多项式时间 O(n³) 内从公钥推导出私钥。这种极端加速将使脆弱的系统在一夜之间实效。[1] + +Grover算法由 Lov Grover 于 1996 年提出,为非结构化搜索问题提供二次加速,将在无序数据库中查找特定项的时间从 O(n) 降至 O(√n)次 操作。它通过量子干涉迭代放大目标状态的幅度。虽然对非对称密码学的破坏性不如Shor算法,但Grover算法影响对称原语如哈希函数和 AES 加密,实际上将安全水平减半(例如,256 位密钥在量子攻击下相当于 128 位)。尽管有影响,此攻击可通过简单地将安全位数加倍来缓解,而无需更改密码学方案。此外,由于Grover算法的二次加速需要高量子比特和门要求,需要数十亿次顺序操作,并行化能力有限,使得即使在未来硬件上也难以实现真实世界逆转。[2] + +量子计算对区块链金融的危险可归类为四个领域: + +**• 伪造数字签名:**Shor算法直接威胁大多数区块链使用的基于 ECC 的签名(例如比特币的 secp256k1 曲线),使攻击者能够冒充用户并授权欺诈交易。这种能力将代表区块链最基本功能的严重失效。 + +**• 在零知识系统中伪造虚假证明:**许多零知识证明(如隐私金融中的 zk-SNARKs)依赖椭圆曲线配对的离散对数难度用于承诺;Shor算法可能创建看似有效的无效证明,从而允许攻击者铸造新币或伪造 Layer-2(L2)状态。 + +**• 解密秘密信息:**量子攻击可能暴露隐私协议(如 Zcash 或 Monero)中由易受攻击公钥方案保护的加密数据。它还可能解密金融协议中的 P2P 通信,暴露敏感财富细节并使针对性盗窃成为可能。 + +**• 逆转哈希函数:**Grover算法可加速对 SHA-256 等哈希的原像攻击(用于工作量证明和地址生成),但这是最不严重的威胁。许多后量子密码方案采用基于哈希的构造,因为足够大的摘要被视为足够安全。 + +## **后量子密码学的扩展挑战** + +虽然后量子密码学(PQC)提供对抗量子威胁的必要保护,但由于这些算法的固有设计,它引入了重大的扩展障碍。与依赖紧凑数学结构的椭圆曲线方案不同,PQC 原语需要更大的参数来维持对经典和量子攻击者的安全性。这导致公钥、私钥和签名大幅增大,通常达到数量级。以下表格展示了 128 位后量子安全水平的 ML-DSA 与经典对应方案(如 256 位 ECDSA)的典型大小比较 [10]: + +| **算法** | **公钥大小(字节)** | **私钥大小(字节)** | **签名大小(字节)** | +| ML-DSA-87 (Dilithium) | 2,592 | 4,896 | 4,627 | +| ECDSA (256-bit) | 32 | 32 | 65 | + +如表所示,ML-DSA 签名可能比 ECDSA 等效方案大 70 倍以上,公钥大 80 倍以上。其他 PQC 系列加剧了这一问题:基于哈希的方案如 SPHINCS+ 可能产生高达 41 KB 的签名,即使是大小优化的格变体如 FALCON 也显著超过经典方案的大小数倍。 + +在区块链环境中,这些膨胀的大小会积累成系统性扩展问题。更大的签名会使单个交易膨胀,导致区块更快填满、验证时间更长,从而降低每秒交易数(TPS)。这还会增加 点对点(P2P) 通信压力,提高带宽需求和传播延迟,可能加剧在工作量证明等共识机制中的网络分叉或孤块风险。存储需求也会受影响,导致节点运营成本上升和参与门槛提高,特别是对于资源受限用户或验证者。 + +这些扩展挑战未来**所有区块链**都必须面对。例如,如果不增加最大区块大小,比特币的 TPS 将远低于 1。 + +# **3. 迁移危机** + +## **协调问题** + +比特币的保守文化抵制协议变更。任何后量子密码学(PQC)升级都需要就迁移时间表、潜在币没收以及区块大小增加等争议性问题达成共识。即使社区达成一致,每个用户也必须将自己的币迁移到新的量子安全地址。迁移需要每个加密货币持有者采取行动,其中许多人已失去钱包访问权限或仍未意识到这一威胁。 + +这些问题存在于每个公链中,但由于领导力缺失和技术固化,使得其对于比特币而言尤其具有挑战性。 + +## **丢失币问题** + +据估计,价值 2500 亿至 5000 亿美元的比特币因丢失密钥、持有人去世或遗忘钱包而永久无法访问。[3] 这些币无法迁移,并成为创建 CRQC 的公开赏金。量子攻击者将从暴露的未迁移公钥中推导出私钥,并很可能将数十亿美元的 BTC 抛售到市场上。 + +技术上,唯一阻止此情况的方法是设定硬性截止日期以某种方式冻结未迁移币,但这在政治上不可能。比特币社区将不得不没收未采取行动用户的资金,包括已故持有者的遗产以及未关注此事的长期投资者。如果没有这样的截止日期,未迁移币将被窃取并出售,导致市场崩盘并摧毁对加密网络的信心。 + +## **迁移时间表问题** + +即使成功迁移,也会面临扩展壁垒。后量子签名比当前比特币签名大 20-80 倍。如果不进行根本性架构变更,比特币的吞吐量将崩溃至其已有限容量的几分之一。 + +假设比特币解决了政治和技术挑战,迁移本身也将耗时数月或数年。每个持有者至少需提交一笔交易将资金转移至量子安全地址。许多人会先发送测试交易。随着膨胀的 PQC 签名阻塞吞吐量,网络将面临数月或数年的积压,而量子易受攻击的币仍暴露在外。 + +这些复合挑战使得在现有链上改造量子安全性极其困难。Quantus Network 通过从第一天起将量子安全性构建到链中来规避此问题。 + +# **4. Quantus Network 架构** + +## **基础** + +Quantus Network 基于 Substrate 构建,这是一个由 Parity Technologies(Ethereum 和 Polkadot 背后的团队)开发的区块链 SDK。Substrate 具有高度模块化特性,便于替换组件,从而让我们能够专注于 Quantus 的独特之处。 + +Quantus 对 Substrate 的升级包括: + +• 添加对后量子签名方案的支持 + +• 将 P2P 网络安全升级为后量子级别 + +• 添加用户可控的交易可逆转功能 + +• 通过将所有数据类型对齐到域元素边界,使数据库对零知识证明友好 + +## **后量子密码原语** + +Quantus Network 采用 NIST 标准化的后量子密码学(PQC),以确保交易和网络通信免受量子威胁的影响。交易完整性的核心是 ML-DSA(基于模格的数字签名算法,前身为 CRYSTALS-Dilithium),这是一种基于格的签名方案,因其在安全性、效率和易实现性之间的平衡而被选中。ML-DSA 利用模格上的带错误学习(LWE)和短整数解(SIS)等问题的难度,对经典和量子攻击(包括Shor算法)都提供了强大的抵抗力。[4] + +对于交易签名,Quantus 集成 ML-DSA-87 参数集,该参数集提供最高安全级别(NIST 安全级别 5,相当于 256 位经典安全和 128 位量子安全),以防范格问题中潜在的密码分析突破。这一选择优先考虑谨慎,因为格密码学相对较新,与经典方案相比经受过实战检验较少。更大的参数有助于降低格密码分析潜在进展的风险,而较小密钥尺寸仍将是更易受攻击的目标。 + +### **备选方案** + +选择ML-DSA 而非 FN-DSA(Falcon)等替代方案的原因包括: + +• FN-DSA 实现复杂度更高(例如需要浮点运算,这对区块链不友好) + +• 其规范中缺乏确定性密钥生成 + +• 在开发时标准尚未最终确定 + +基于哈希的选项如 SLH-DSA 未被选用,是因为其签名尺寸更大(超过 17 KB)。Substrate 内置了密码敏捷性(crypto-agility),因此在未来可以根据需要轻松添加这些备选方案。 + +虽然 ML-DSA-87 导致密钥和签名较大,但在 Quantus 的早期网络中这些大小是可管理的,因为存储尚未成为瓶颈,并且通过零知识证明实现的虫洞地址( Wormhole Addresses) 等优化将解决扩展性问题。 + +有关实现的技术细节,请参阅 QIP-0006。 + +## **Libp2p** + +Quantus Network 使用 ML-DSA 进行身份验证和 ML-KEM(基于模格的密钥封装机制,前身为 CRYSTALS-Kyber)进行加密,来保护点对点(P2P)节点通信。这一集成将PQC扩展到 libp2p 网络栈,修改核心组件以实现抗量子性:使用 ML-DSA-87 签名作为节点身份验证,并使用 ML-KEM-768 进行传输安全(通过在 Noise 握手协议中添加额外的 KEM 消息来实现抗量子的共享密钥)。[5] + +P2P 层在量子安全分析中常被忽视。节点认证很重要,但攻击者在节点层面能做的最坏情况也只是冒充节点并发送无效消息,这可能导致拒绝服务(DoS)。这种攻击已经通过以下事实得到缓解:区块链模型中节点普遍不被信任,且节点可在检测到攻击时轻松更换密钥。同样,解密 P2P 通信给攻击者带来的收益有限(例如跟踪交易路径,可通过代理或 Tor 缓解),且大多数数据最终会在链上公开。 + +尽管如此,对 P2P 层进行量子保护可防范窃听、中间人攻击和量子解密,确保节点 gossip、区块传播和其他网络交互在可预见的未来保持机密且防篡改。 + +有关实现的技术细节,请参阅 QIP-0004。 + +## **扩展 PQC** + +为了应对后量子密码学固有的扩展性挑战,Quantus Network 引入创新的聚合后量子签名方案——Wormhole Addresses(虫洞地址)。该系统利用 Plonky2 证明系统(本质上是 STARKs)生成的零知识证明(ZKPs),将余额验证移至链下,从而允许链上仅验证单个紧凑证明而无需处理单个签名。Wormhole Addresses 可通过单一证明验证大量交易,公共输入(如 nullifier、存储根、退出地址和金额)成为主要限制因素。这将每笔交易的平均链上存储需求降至约 256 额外字节,远低于任何已知 PQC 签名方案。 + +该方案的量子安全性源于使用安全的哈希函数 Poseidon2 通过 FRI(快速 Reed-Solomon 交互式预言机证明)进行承诺,而不是 SNARKs 中常用的易受量子攻击的椭圆曲线配对。 + +此外,身份认证密匙隐藏在 Poseidon2 之后。由于安全哈希函数仅被Grover算法二次削弱而未被破解,哈希原像证明可在 ZK 上下文中作为轻量级后量子签名,类似于基于哈希的方案如 SPHINCS+。 + +### **客户端 / 证明者流程** + +用户通过对盐(salt)和秘密(secret)的双重哈希生成一个可证明不可花费的地址: + +_H(H(salt | secret))_ + +这一构造防止假阳性(例如将单哈希公钥误认为是不可花费地址),在 Substrate(以及大多数区块链)中,地址通常是公钥的单哈希,而公钥通过代数运算从私钥派生,而非安全哈希。因此,该构造的安全性最终归结为寻找哈希原像的原像。发送到该地址的代币实际上已被“销毁”(因无对应私钥,无法花费),这些币可在不增加总供应的情况下被重新铸造。 + +对于每笔转账,会创建一个 TransferProof 存储对象,包含唯一全局转账计数等细节。用户钱包从最近区块头存储根生成 Merkle-Patricia-Trie(MPT)存储证明,到该 TransferProof 的叶子节点。nullifier 计算为: + +_H(H(salt | secret | global_transfer_count))_ + +以防止双花,其中相关密钥从钱包种子确定性派生,确保用户可保留控制。 + +### **聚合者流程** + +任何一方(客户端、矿工或第三方)均可使用 Plonky2 的递归功能聚合多个证明,形成证明树,其中每个父证明验证其子证明,子证明的公共输入被聚合: + +• nullifier 保持不变传递 + +• 退出地址去重 + +• 区块哈希被证明链接,然后除最新外全部丢弃 + +• 重复退出地址的金额求和 + +这种递归支持分层聚合,大幅减少链上数据。 + +### **链上 / 验证者流程** + +网络通过检查以下内容验证聚合证明: + +• 区块哈希在链上且近期 + +• nullifier 唯一性(防止双花) + +• 证明有效性 + +ZK 电路强制执行: + +• 存储证明正确性 + +• nullifier 计算准确性 + +• 地址不可花费性 + +• 输入输出余额匹配 + +• 区块头链接 + +选择Plonky2 的原因包括: + +• 已审计 + +• 后量子 + +• 无需可信设置 + +• 高效证明/验证 + +• 无缝证明聚合 + +• Rust 原生实现 + +• 与 Substrate 的 no-std 环境兼容 + +性能亮点包括递归证明在 170 毫秒内完成,聚合证明大小紧凑(每个 100 KB),实现巨大吞吐量提升。在最优情况下,使用 5 MB 区块且所有交易指向同一输出,Wormhole Addresses 可在单个区块(4.9 MB /每个 nullifier 32 字节)中打包约 153,000 笔交易,相比约 685 笔原始 ML-DSA 交易(5 MB / 7.3 KB 每笔)提升 223 倍。 + +### **安全说明** + +潜在风险包括故障电路/验证实现导致的通胀漏洞,但若重新铸造币超过零发送地址余额,则可通过经济手段检测。用户可选择通过发布第一个哈希(不透露秘钥)来证明地址为 wormhole。验证交易为无签名的,因此需通过非金融方式来缓解失败交易导致的拒绝服务攻击。代币供应计算保持不变,因为重新铸造表现为新币,但通过销毁维持最大供应保证。 + +有关实现的更多技术细节,请参阅 QIP-0005。 + +## **共识机制** + +Quantus Network 使用工作量证明(PoW)共识算法,该算法保留了比特币共识算法的理想属性,同时通过将 SHA-256 替换为 Poseidon2 来提升与 ZK 证明系统的兼容性。 + +重要的是,这一变更并非出于量子安全考虑。像 SHA-256 这样的密码哈希函数虽被量子算法(特别是格罗弗)削弱,但并未被破解。一些后量子签名方案正是因此使用安全哈希作为构建模块。 + +Poseidon2 是 Poseidon 哈希函数的改进版本。在涉及传统哈希函数(如 SHA-256)的计算中创建 SNARKs 或 STARKs 通常需要比使用Poseidon多近 100 倍的门数,而 Poseidon 完全依赖域元素上的代数函数,而非位级操作。 + +我们在 Poseidon2 和 Plonky2 中均使用 Goldilocks 域。Goldilocks 域的阶适合无符号 64 位整数,从而提升效率而不损害 可靠性。 + +# **5. 财富保护** + +管理加密货币密钥存在许多风险,其中大多数是可以避免的。 + +## **可逆转交易** + +Quantus Network 提供用户可配置的可逆转交易。发送者可设定一个时间窗口,在此期间可以取消发出的转账。这一功能威慑盗窃并纠正错误,同时不牺牲最终性。该系统使用有时间戳的修改版 Substrate "scheduler pallet" 。钱包会为发送者(附带取消按钮)和接收者均显示倒计时。 + +可逆转交易在保持链上强制执行的去中心化前提下,启用新型安全协议。 + +有关更多技术细节,请参阅 QIP-0009。 + +## **校验短语** + +Quantus Network 引入"校验短语"(check-phrases),这是一种密码学安全的、人类可读的区块链地址校验和。地址经过哈希生成来自 BIP-39 助记词列表的简短易记单词序列。校验短语可防范打字错误、篡改和地址投毒攻击。采用 50,000 次迭代的密钥派生函数,使彩虹表攻击成本高昂。对于大额交易,用户仍应逐字符验证地址。 + +有关更多技术细节,请参阅 QIP-0008。 + +## **高安全性账户** + +任何账户均可升级为"高安全性账户",所有转出交易均强制带有可逆转期。指定的"守护者"(硬件钱包、多签或可信第三方)可在逆转期内取消可疑交易,并将资金发送至守护者而非发送者或接收者。这一可选功能一旦激活即永久生效,防止盗贼将其禁用。 + +守护者可链式组合:高安全性账户的守护者本身也可以是高安全性账户,拥有自己的守护者。这创建了可组合的层级结构,其中每个守护者对其保护的账户拥有更高权限。该设计为用户提供时间来检测并响应未经授权的活动,同时不损害合法转账的最终性。 + +有关更多技术细节,请参阅 QIP-0011。 + +## **密钥恢复** + +许多加密财富随持有者离世而消失。Quantus Network 提供一种简单方式来指定恢复地址,该地址可随时提取资金,但需经过固定的延迟期。在此期间,如果原持有者仍能访问密钥,可拒绝恢复。这一功能实现生存性继承:用户拥有链上遗嘱,无需法院或遗产程序。 + +## **HD-Lattice** + +分层确定性(HD)钱包是区块链的行业标准,允许用户用一个种子短语备份所有密钥,比逐个手动备份更安全便捷。将此适配到如 Dilithium 等格方案涉及两个挑战: + +• HMAC-SHA512 输出无法直接形成格私钥,格私钥是从具有特定性质的环中采样的多项式。 + +• 非硬化密钥派生依赖椭圆曲线加法,而格中不存在(公钥在任何代数运算下均不封闭)。 + +Quantus Network 通过将 HMAC 输出用作熵来确定性构造私钥(而非直接作为私钥)来解决第一个问题。第二个问题相对不那么关键,格密码学能否适配以解决该问题仍是一个开放的研究问题。 + +有关更多技术细节,请参阅 QIP-0002。 + +# **6. 代币经济学与治理** + +Quantus Network 处于不断变化的环境中,我们不能假设第一次就能把一切都做对。因此,我们选择一个简单的起点,并允许治理系统随着新信息的获取而进行变更。这一设计使区块链成为一个能够随意适应环境的生命体。特别是 Substrate 的治理流程允许在各个节点运行者之间只需最少协调,即可对链进行深度变更。 + +## **区块奖励** + +Quantus Network 采用一种模仿比特币的简单代币经济学模型。最大供应量为 21,000,000 枚代币,每区块奖励由一个简单启发式公式决定: + +_block_reward = (max_supply - current_supply) / constant_ + +这一启发式公式形成一条平滑的指数衰减曲线,因为区块奖励会增加 current_supply,从而降低下一区块计算出的区块奖励。任何来自费用或其他方式的销毁都会减少 current_supply,并实质上成为区块奖励预算的一部分。常数的选择确保在没有销毁的情况下,99% 的代币将在约 40 年内发行完毕。 + +## **投资者分配** + +Quantus Network 在天使投资者的帮助下建成,他们承担了极大的风险。为避免投资者锁仓造成的供应悬垂,所有投资者(公开和私募)将在第一天完全流动。这一分配将是唯一的"预挖"。所有其他代币必须通过挖矿产生。根据公开销售的成功程度,这一比例将占总供应的 20-30%。 + +## **公司分配** + +为补偿团队在无成功保证的情况下构建新技术所承担的风险,区块奖励的一部分将在约四年内发送给公司。这形成了公司约占总供应 10% 的事实上的归属时间表。 + +此后,公司部分的区块奖励将被重定向至由代币持有者治理的财库,实质上形成一个 DAO。 + +## **交易费用** + +标准交易收取费用并支付给矿工,提供包含交易的激励。高安全性账户的可逆转交易收取基于交易量的 1% 费用,该费用被销毁,本质上将其添加到安全预算中。通过 ZK 聚合系统的交易也收取基于交易量的 0.1% 费用,该费用在矿工和销毁之间平均分配。 + +## **无分叉升级** + +Quantus Network 通过 Substrate 的运行时升级机制实现了"无分叉"升级,使区块链的核心逻辑("运行时")在不发生可能扰乱网络或分裂社区的硬分叉的情况下演进。这一升级通过链上治理公投实现:被批准的提案触发运行时替换,在单个区块中用新的 WASM 代码 blob 替换现有代码,确保状态和操作的连续性。这一升级路径将停机时间和风险降到最低,赋能社区根据真实世界使用情况迭代优化协议。 + +随着社区对系统的信心逐步增强,将逐步收紧对运行时环境的变更权限,以在升级机制遭到恶意控制时降低系统的攻击暴露面。 + +## **治理系统** + +Quantus Network 通过 Substrate 继承了 Polkadot 的 OpenGov 治理框架。代币持有者通过信念投票(conviction voting)参与,他们同意锁定资产不同期限以放大投票权重。权重放大倍数从 1x(无锁定)到 6x(最长锁定期限)。这一设计通过将影响力与承诺挂钩,激励长期一致性。 + +提案被分类到多个称为"origins"的投票轨道中。每个 origin 均设有定制参数,如审批门槛(例如高影响变更需超级多数)、最低保证金以防垃圾提案、准备/执行周期,以及决策时间线以避免僵局。这一多轨道设计允许并行处理多类公投,覆盖从常规财库支出到关键运行时升级。 + +技术委员会(Technical Collective)是一个精选的技术专家小组,作为专门机构提出、审查或白名单化紧急技术提案,通过专属决策轨道加速处理相关决策,同时保留社区监督权。 + +Quantus 未做任何修改地直接采用这一系统,但初期采用极简配置以避免早期治理复杂性。初始阶段仅启用技术委员会轨道,用于具有约束力的、高权限决策事项,如协议升级或参数调整。 + +后续阶段,Quantus 可引入非约束性的社区投票轨道,用于评估非强制事项的反馈,例如功能提议或生态系统调研。当公司将网络治理权移交给 DAO 时,这一系统将具有约束力。 + +这一分阶段方法允许网络通过未来治理投票有机演进,同时避免在初期阶段给用户带来不必要的复杂性。 + +# **7. 路线图** + +当前路线图(截至 2026 年,可能会有变更): + +**• Heisenberg Inception** - 2024 年 12 月 - 完成融资,确定采用 Substrate 架构 + +**• Resonance Alpha** - 2025 年 7 月 - 公共测试网、Dilithium 签名、可逆转交易 + +**• Schrödinger Beta** - 2025 年 10 月 - 功能完成、准备审计 + +**• Dirac Beta** - 2025 年 11 月 - PoW 变更为 Poseidon2、处理审计问题 + +**• Planck Beta** - 2026 年 1 月 - 高安全性账户、多签、硬件钱包、ZK 整合 + +**• Bell Mainnet** - 2026 年第二季度 - 主网上线 + +**• Fermi Upgrade** - 2026 年第四季度 - ZK 证明聚合基础设施 + +# **8. 风险** + +构建 Quantus Network 伴随着固有风险。 + +**• 实现问题:**即使是设计完善的系统,软件逻辑缺陷也可能导致严重故障。 + +**• NIST 算法选择问题:**已选定的后量子标准(例如 ML-DSA、ML-KEM)在标准化后可能出现潜在缺陷或后门。在最极端情况下,此类缺陷可能使攻击者从公钥推导出私钥,从而伪造签名,这代表链的灾难性失效模式。如果此类漏洞被公开,Quantus Network 可升级到新算法进行应对;但如果缺陷被谨慎利用,它们可能永远不会被发现。 + +**• 量子计算时间表:**量子突破可能远晚于预期,从而推迟对后量子密码学(PQC)的需求;反之,秘密开发(例如由政府进行)可能导致突发威胁,如果区块链社区未能迅速更新,则将面临风险。 + +**• 其他考虑因素:**通用使用壁垒、金融/区块链领域的监管不确定性,以及加密生态系统的固有波动性。 + +# **9. 参考文献与进一步阅读** + +1. Shor, P. W. (1997). Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. SIAM Journal on Computing, 26(5), 1484-1509. https://doi.org/10.1137/S0097539795293172 + +2. Grover, L. K. (1996). A fast quantum mechanical algorithm for database search. Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing, 212-219. https://doi.org/10.1145/237814.237866 + +3. Chainalysis. (2024). The Chainalysis 2024 Crypto Crime Report. https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/ + +4. National Institute of Standards and Technology. (2024). FIPS 204: Module-Lattice-Based Digital Signature Standard (ML-DSA). U.S. Department of Commerce. https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf + +5. National Institute of Standards and Technology. (2024). FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM). U.S. Department of Commerce. https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf + +6. Häner, T., Jaques, S., Naehrig, M., Roetteler, M., & Soeken, M. (2020). Improved quantum circuits for elliptic curve discrete logarithms. arXiv preprint arXiv:2002.12480. https://arxiv.org/abs/2002.12480 + +7. Gidney, C., & Ekerå, M. (2021). How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits. arXiv preprint arXiv:1905.09749. https://arxiv.org/abs/1905.09749 + +8. Aggarwal, D., et al. (2021). Assessment of Quantum Threat To Bitcoin and Derived Cryptocurrencies. ePrint IACR. https://eprint.iacr.org/2021/967.pdf + +9. Roetteler, M., Naehrig, M., Svore, K. M., & Lauter, K. (2017). Quantum resource estimates for computing elliptic curve discrete logarithms. arXiv preprint arXiv:1706.06752. https://arxiv.org/abs/1706.06752 + +10. Open Quantum Safe Project. (n.d.). ML-DSA | Open Quantum Safe. Retrieved January 29, 2026, from https://openquantumsafe.org/liboqs/algorithms/sig/ml-dsa.html diff --git a/website/src/contents/ko-KR/whitepaper.md b/website/src/contents/ko-KR/whitepaper.md new file mode 100644 index 0000000..c57b9b4 --- /dev/null +++ b/website/src/contents/ko-KR/whitepaper.md @@ -0,0 +1,393 @@ +--- +title: "Quantus 白皮书" +description: "Quantus Network 官方白皮书,详细介绍我们的量子安全第一层区块链架构、后量子密码学和代币经济学。" +pubDate: "2026-02-05" +heroImage: "/blog/covers/whitepaper.jpeg" +heroAlt: "Quantus Network 白皮书" +featured: true +tags: + [ + "whitepaper", + "post-quantum-cryptography", + "blockchain", + "quantus-network", + "dilithium", + "zero-knowledge-proofs", + ] +--- + +# **Quantus Network 白皮书 v0.3.2** + +## **法律免责声明** + +本白皮书仅供信息参考之用,不构成出售要约、购买要约的招揽,亦不构成对任何证券、投资或金融产品的推荐。读者在做出任何投资决策前,应自行进行尽职调查,并咨询合格专业人士。Quantus Network 不对本文信息的准确性或完整性做出任何陈述或保证。 + +**术语表** + +- **CRQC** (Cryptographically Relevant Quantum Computer) 对密码学具有实际影响的量子计算机(或“密码学相关量子计算机”) 指一台容错、规模足够大的量子计算机,能够在合理时间内(如数月内)运行Shor算法破解当前公钥密码(如ECC或RSA)。不同于当前噪声中间规模量子(NISQ)设备,后者尚无法实现密码学级攻击。 +- **Quantum-resistant** / **Post-quantum** 抗量子 / 后量子 指能抵抗量子计算机攻击的密码学方案(包括NIST标准化的算法)。 +- **ML-DSA** (Module-Lattice-based Digital Signature Algorithm, 前身为CRYSTALS-Dilithium) 模块格数字签名算法(ML-DSA) +- **ML-KEM** (Module-Lattice-based Key-Encapsulation Mechanism, 前身为CRYSTALS-Kyber) 模块格密钥封装机制(ML-KEM) +- **Non-hardened key derivation** 非硬化密钥派生 在HD钱包中,指不使用硬化路径的密钥派生方式(依赖代数运算,在格密码学中实现更具挑战)。 +- **Wormhole Addresses** 虫洞地址(或建议备选:跃迁地址 / 聚合地址 / 零知识隧道地址) Quantus特有的ZK聚合地址系统,利用Plonky2证明实现高效后量子交易聚合。 +- **Check-phrases** 校验短语(或人类可读校验短语) 人类可读的地址校验和,基于BIP-39词表生成,用于防范地址错误或投毒攻击。 + +# **1. 引言** + +## **量子威胁** + +传统区块链正面临来自 CRQCs 的存在性威胁。区块链的密码学基础依赖于离散对数问题(DLP)的难度,而量子算法(特别是Shor算法)能够以指数级速度更快地求解 DLP。这种漏洞可能使量子攻击者从公钥推导出私钥,从而伪造交易并解密敏感金融数据。 + +这将导致灾难性的系统性失败。如果不主动进行抗量子升级,万亿美元规模的加密经济将面临由此类攻击导致的突发性贬值风险。 + +## **独特价值主张** + +Quantus Network 以拉丁语"多少"(how much)命名,旨在实现可扩展的、量子安全的、私密货币。Quantus 并非通用智能合约平台。它专注于在少数几件事上做得比其他链更好,就像一家菜品不多但每道菜都做到极致的餐厅,Quantus 提供: + +• 所有交易均使用后量子签名 + +• 用于保护点对点连接的后量子签名和加密(ML-DSA 和 ML-KEM) + +• 可扩展的后量子零知识证明 + +• 高安全性账户,用于防止盗窃并从错误中恢复 + +• 人类可读的校验短语,便于地址验证 + +专注于可扩展、量子安全、私密货币的决定,源于 CRQCs 对行业的威胁以及比特币在应对这些挑战上的不足。 + +# **2. 区块链面临的量子威胁** + +## **量子计算基础** + +量子计算机利用叠加和纠缠等原理,能够执行传统计算机难以处理的计算。与经典比特(仅为 0 或 1)不同,量子比特(qubits)可同时处于多种状态,从而针对某些问题实现指数级并行。这项能力对区块链金融的密码系统构成存在性风险,因为专为量子硬件开发的算法(如 Shor 算法)破坏了大多数公钥密码的安全假设。 + +Shor算法由 Peter Shor 于 1994 年提出,为量子计算机上分解大整数和解决离散对数问题(DLP)提供了多项式时间的方法。本质上,它利用量子傅里叶变换(QFT)找到函数周期,从而高效逆转 RSA 或椭圆曲线密码学(ECC)等方案的单向陷门函数。对于区块链金融,这意味着拥有足够强大 CRQC(估计约 2,000 个逻辑量子比特 [6][7][8][9])的攻击者,可以在多项式时间 O(n³) 内从公钥推导出私钥。这种极端加速将使脆弱的系统在一夜之间实效。[1] + +Grover算法由 Lov Grover 于 1996 年提出,为非结构化搜索问题提供二次加速,将在无序数据库中查找特定项的时间从 O(n) 降至 O(√n)次 操作。它通过量子干涉迭代放大目标状态的幅度。虽然对非对称密码学的破坏性不如Shor算法,但Grover算法影响对称原语如哈希函数和 AES 加密,实际上将安全水平减半(例如,256 位密钥在量子攻击下相当于 128 位)。尽管有影响,此攻击可通过简单地将安全位数加倍来缓解,而无需更改密码学方案。此外,由于Grover算法的二次加速需要高量子比特和门要求,需要数十亿次顺序操作,并行化能力有限,使得即使在未来硬件上也难以实现真实世界逆转。[2] + +量子计算对区块链金融的危险可归类为四个领域: + +**• 伪造数字签名:**Shor算法直接威胁大多数区块链使用的基于 ECC 的签名(例如比特币的 secp256k1 曲线),使攻击者能够冒充用户并授权欺诈交易。这种能力将代表区块链最基本功能的严重失效。 + +**• 在零知识系统中伪造虚假证明:**许多零知识证明(如隐私金融中的 zk-SNARKs)依赖椭圆曲线配对的离散对数难度用于承诺;Shor算法可能创建看似有效的无效证明,从而允许攻击者铸造新币或伪造 Layer-2(L2)状态。 + +**• 解密秘密信息:**量子攻击可能暴露隐私协议(如 Zcash 或 Monero)中由易受攻击公钥方案保护的加密数据。它还可能解密金融协议中的 P2P 通信,暴露敏感财富细节并使针对性盗窃成为可能。 + +**• 逆转哈希函数:**Grover算法可加速对 SHA-256 等哈希的原像攻击(用于工作量证明和地址生成),但这是最不严重的威胁。许多后量子密码方案采用基于哈希的构造,因为足够大的摘要被视为足够安全。 + +## **后量子密码学的扩展挑战** + +虽然后量子密码学(PQC)提供对抗量子威胁的必要保护,但由于这些算法的固有设计,它引入了重大的扩展障碍。与依赖紧凑数学结构的椭圆曲线方案不同,PQC 原语需要更大的参数来维持对经典和量子攻击者的安全性。这导致公钥、私钥和签名大幅增大,通常达到数量级。以下表格展示了 128 位后量子安全水平的 ML-DSA 与经典对应方案(如 256 位 ECDSA)的典型大小比较 [10]: + +| **算法** | **公钥大小(字节)** | **私钥大小(字节)** | **签名大小(字节)** | +| ML-DSA-87 (Dilithium) | 2,592 | 4,896 | 4,627 | +| ECDSA (256-bit) | 32 | 32 | 65 | + +如表所示,ML-DSA 签名可能比 ECDSA 等效方案大 70 倍以上,公钥大 80 倍以上。其他 PQC 系列加剧了这一问题:基于哈希的方案如 SPHINCS+ 可能产生高达 41 KB 的签名,即使是大小优化的格变体如 FALCON 也显著超过经典方案的大小数倍。 + +在区块链环境中,这些膨胀的大小会积累成系统性扩展问题。更大的签名会使单个交易膨胀,导致区块更快填满、验证时间更长,从而降低每秒交易数(TPS)。这还会增加 点对点(P2P) 通信压力,提高带宽需求和传播延迟,可能加剧在工作量证明等共识机制中的网络分叉或孤块风险。存储需求也会受影响,导致节点运营成本上升和参与门槛提高,特别是对于资源受限用户或验证者。 + +这些扩展挑战未来**所有区块链**都必须面对。例如,如果不增加最大区块大小,比特币的 TPS 将远低于 1。 + +# **3. 迁移危机** + +## **协调问题** + +比特币的保守文化抵制协议变更。任何后量子密码学(PQC)升级都需要就迁移时间表、潜在币没收以及区块大小增加等争议性问题达成共识。即使社区达成一致,每个用户也必须将自己的币迁移到新的量子安全地址。迁移需要每个加密货币持有者采取行动,其中许多人已失去钱包访问权限或仍未意识到这一威胁。 + +这些问题存在于每个公链中,但由于领导力缺失和技术固化,使得其对于比特币而言尤其具有挑战性。 + +## **丢失币问题** + +据估计,价值 2500 亿至 5000 亿美元的比特币因丢失密钥、持有人去世或遗忘钱包而永久无法访问。[3] 这些币无法迁移,并成为创建 CRQC 的公开赏金。量子攻击者将从暴露的未迁移公钥中推导出私钥,并很可能将数十亿美元的 BTC 抛售到市场上。 + +技术上,唯一阻止此情况的方法是设定硬性截止日期以某种方式冻结未迁移币,但这在政治上不可能。比特币社区将不得不没收未采取行动用户的资金,包括已故持有者的遗产以及未关注此事的长期投资者。如果没有这样的截止日期,未迁移币将被窃取并出售,导致市场崩盘并摧毁对加密网络的信心。 + +## **迁移时间表问题** + +即使成功迁移,也会面临扩展壁垒。后量子签名比当前比特币签名大 20-80 倍。如果不进行根本性架构变更,比特币的吞吐量将崩溃至其已有限容量的几分之一。 + +假设比特币解决了政治和技术挑战,迁移本身也将耗时数月或数年。每个持有者至少需提交一笔交易将资金转移至量子安全地址。许多人会先发送测试交易。随着膨胀的 PQC 签名阻塞吞吐量,网络将面临数月或数年的积压,而量子易受攻击的币仍暴露在外。 + +这些复合挑战使得在现有链上改造量子安全性极其困难。Quantus Network 通过从第一天起将量子安全性构建到链中来规避此问题。 + +# **4. Quantus Network 架构** + +## **基础** + +Quantus Network 基于 Substrate 构建,这是一个由 Parity Technologies(Ethereum 和 Polkadot 背后的团队)开发的区块链 SDK。Substrate 具有高度模块化特性,便于替换组件,从而让我们能够专注于 Quantus 的独特之处。 + +Quantus 对 Substrate 的升级包括: + +• 添加对后量子签名方案的支持 + +• 将 P2P 网络安全升级为后量子级别 + +• 添加用户可控的交易可逆转功能 + +• 通过将所有数据类型对齐到域元素边界,使数据库对零知识证明友好 + +## **后量子密码原语** + +Quantus Network 采用 NIST 标准化的后量子密码学(PQC),以确保交易和网络通信免受量子威胁的影响。交易完整性的核心是 ML-DSA(基于模格的数字签名算法,前身为 CRYSTALS-Dilithium),这是一种基于格的签名方案,因其在安全性、效率和易实现性之间的平衡而被选中。ML-DSA 利用模格上的带错误学习(LWE)和短整数解(SIS)等问题的难度,对经典和量子攻击(包括Shor算法)都提供了强大的抵抗力。[4] + +对于交易签名,Quantus 集成 ML-DSA-87 参数集,该参数集提供最高安全级别(NIST 安全级别 5,相当于 256 位经典安全和 128 位量子安全),以防范格问题中潜在的密码分析突破。这一选择优先考虑谨慎,因为格密码学相对较新,与经典方案相比经受过实战检验较少。更大的参数有助于降低格密码分析潜在进展的风险,而较小密钥尺寸仍将是更易受攻击的目标。 + +### **备选方案** + +选择ML-DSA 而非 FN-DSA(Falcon)等替代方案的原因包括: + +• FN-DSA 实现复杂度更高(例如需要浮点运算,这对区块链不友好) + +• 其规范中缺乏确定性密钥生成 + +• 在开发时标准尚未最终确定 + +基于哈希的选项如 SLH-DSA 未被选用,是因为其签名尺寸更大(超过 17 KB)。Substrate 内置了密码敏捷性(crypto-agility),因此在未来可以根据需要轻松添加这些备选方案。 + +虽然 ML-DSA-87 导致密钥和签名较大,但在 Quantus 的早期网络中这些大小是可管理的,因为存储尚未成为瓶颈,并且通过零知识证明实现的虫洞地址( Wormhole Addresses) 等优化将解决扩展性问题。 + +有关实现的技术细节,请参阅 QIP-0006。 + +## **Libp2p** + +Quantus Network 使用 ML-DSA 进行身份验证和 ML-KEM(基于模格的密钥封装机制,前身为 CRYSTALS-Kyber)进行加密,来保护点对点(P2P)节点通信。这一集成将PQC扩展到 libp2p 网络栈,修改核心组件以实现抗量子性:使用 ML-DSA-87 签名作为节点身份验证,并使用 ML-KEM-768 进行传输安全(通过在 Noise 握手协议中添加额外的 KEM 消息来实现抗量子的共享密钥)。[5] + +P2P 层在量子安全分析中常被忽视。节点认证很重要,但攻击者在节点层面能做的最坏情况也只是冒充节点并发送无效消息,这可能导致拒绝服务(DoS)。这种攻击已经通过以下事实得到缓解:区块链模型中节点普遍不被信任,且节点可在检测到攻击时轻松更换密钥。同样,解密 P2P 通信给攻击者带来的收益有限(例如跟踪交易路径,可通过代理或 Tor 缓解),且大多数数据最终会在链上公开。 + +尽管如此,对 P2P 层进行量子保护可防范窃听、中间人攻击和量子解密,确保节点 gossip、区块传播和其他网络交互在可预见的未来保持机密且防篡改。 + +有关实现的技术细节,请参阅 QIP-0004。 + +## **扩展 PQC** + +为了应对后量子密码学固有的扩展性挑战,Quantus Network 引入创新的聚合后量子签名方案——Wormhole Addresses(虫洞地址)。该系统利用 Plonky2 证明系统(本质上是 STARKs)生成的零知识证明(ZKPs),将余额验证移至链下,从而允许链上仅验证单个紧凑证明而无需处理单个签名。Wormhole Addresses 可通过单一证明验证大量交易,公共输入(如 nullifier、存储根、退出地址和金额)成为主要限制因素。这将每笔交易的平均链上存储需求降至约 256 额外字节,远低于任何已知 PQC 签名方案。 + +该方案的量子安全性源于使用安全的哈希函数 Poseidon2 通过 FRI(快速 Reed-Solomon 交互式预言机证明)进行承诺,而不是 SNARKs 中常用的易受量子攻击的椭圆曲线配对。 + +此外,身份认证密匙隐藏在 Poseidon2 之后。由于安全哈希函数仅被Grover算法二次削弱而未被破解,哈希原像证明可在 ZK 上下文中作为轻量级后量子签名,类似于基于哈希的方案如 SPHINCS+。 + +### **客户端 / 证明者流程** + +用户通过对盐(salt)和秘密(secret)的双重哈希生成一个可证明不可花费的地址: + +_H(H(salt | secret))_ + +这一构造防止假阳性(例如将单哈希公钥误认为是不可花费地址),在 Substrate(以及大多数区块链)中,地址通常是公钥的单哈希,而公钥通过代数运算从私钥派生,而非安全哈希。因此,该构造的安全性最终归结为寻找哈希原像的原像。发送到该地址的代币实际上已被“销毁”(因无对应私钥,无法花费),这些币可在不增加总供应的情况下被重新铸造。 + +对于每笔转账,会创建一个 TransferProof 存储对象,包含唯一全局转账计数等细节。用户钱包从最近区块头存储根生成 Merkle-Patricia-Trie(MPT)存储证明,到该 TransferProof 的叶子节点。nullifier 计算为: + +_H(H(salt | secret | global_transfer_count))_ + +以防止双花,其中相关密钥从钱包种子确定性派生,确保用户可保留控制。 + +### **聚合者流程** + +任何一方(客户端、矿工或第三方)均可使用 Plonky2 的递归功能聚合多个证明,形成证明树,其中每个父证明验证其子证明,子证明的公共输入被聚合: + +• nullifier 保持不变传递 + +• 退出地址去重 + +• 区块哈希被证明链接,然后除最新外全部丢弃 + +• 重复退出地址的金额求和 + +这种递归支持分层聚合,大幅减少链上数据。 + +### **链上 / 验证者流程** + +网络通过检查以下内容验证聚合证明: + +• 区块哈希在链上且近期 + +• nullifier 唯一性(防止双花) + +• 证明有效性 + +ZK 电路强制执行: + +• 存储证明正确性 + +• nullifier 计算准确性 + +• 地址不可花费性 + +• 输入输出余额匹配 + +• 区块头链接 + +选择Plonky2 的原因包括: + +• 已审计 + +• 后量子 + +• 无需可信设置 + +• 高效证明/验证 + +• 无缝证明聚合 + +• Rust 原生实现 + +• 与 Substrate 的 no-std 环境兼容 + +性能亮点包括递归证明在 170 毫秒内完成,聚合证明大小紧凑(每个 100 KB),实现巨大吞吐量提升。在最优情况下,使用 5 MB 区块且所有交易指向同一输出,Wormhole Addresses 可在单个区块(4.9 MB /每个 nullifier 32 字节)中打包约 153,000 笔交易,相比约 685 笔原始 ML-DSA 交易(5 MB / 7.3 KB 每笔)提升 223 倍。 + +### **安全说明** + +潜在风险包括故障电路/验证实现导致的通胀漏洞,但若重新铸造币超过零发送地址余额,则可通过经济手段检测。用户可选择通过发布第一个哈希(不透露秘钥)来证明地址为 wormhole。验证交易为无签名的,因此需通过非金融方式来缓解失败交易导致的拒绝服务攻击。代币供应计算保持不变,因为重新铸造表现为新币,但通过销毁维持最大供应保证。 + +有关实现的更多技术细节,请参阅 QIP-0005。 + +## **共识机制** + +Quantus Network 使用工作量证明(PoW)共识算法,该算法保留了比特币共识算法的理想属性,同时通过将 SHA-256 替换为 Poseidon2 来提升与 ZK 证明系统的兼容性。 + +重要的是,这一变更并非出于量子安全考虑。像 SHA-256 这样的密码哈希函数虽被量子算法(特别是格罗弗)削弱,但并未被破解。一些后量子签名方案正是因此使用安全哈希作为构建模块。 + +Poseidon2 是 Poseidon 哈希函数的改进版本。在涉及传统哈希函数(如 SHA-256)的计算中创建 SNARKs 或 STARKs 通常需要比使用Poseidon多近 100 倍的门数,而 Poseidon 完全依赖域元素上的代数函数,而非位级操作。 + +我们在 Poseidon2 和 Plonky2 中均使用 Goldilocks 域。Goldilocks 域的阶适合无符号 64 位整数,从而提升效率而不损害 可靠性。 + +# **5. 财富保护** + +管理加密货币密钥存在许多风险,其中大多数是可以避免的。 + +## **可逆转交易** + +Quantus Network 提供用户可配置的可逆转交易。发送者可设定一个时间窗口,在此期间可以取消发出的转账。这一功能威慑盗窃并纠正错误,同时不牺牲最终性。该系统使用有时间戳的修改版 Substrate "scheduler pallet" 。钱包会为发送者(附带取消按钮)和接收者均显示倒计时。 + +可逆转交易在保持链上强制执行的去中心化前提下,启用新型安全协议。 + +有关更多技术细节,请参阅 QIP-0009。 + +## **校验短语** + +Quantus Network 引入"校验短语"(check-phrases),这是一种密码学安全的、人类可读的区块链地址校验和。地址经过哈希生成来自 BIP-39 助记词列表的简短易记单词序列。校验短语可防范打字错误、篡改和地址投毒攻击。采用 50,000 次迭代的密钥派生函数,使彩虹表攻击成本高昂。对于大额交易,用户仍应逐字符验证地址。 + +有关更多技术细节,请参阅 QIP-0008。 + +## **高安全性账户** + +任何账户均可升级为"高安全性账户",所有转出交易均强制带有可逆转期。指定的"守护者"(硬件钱包、多签或可信第三方)可在逆转期内取消可疑交易,并将资金发送至守护者而非发送者或接收者。这一可选功能一旦激活即永久生效,防止盗贼将其禁用。 + +守护者可链式组合:高安全性账户的守护者本身也可以是高安全性账户,拥有自己的守护者。这创建了可组合的层级结构,其中每个守护者对其保护的账户拥有更高权限。该设计为用户提供时间来检测并响应未经授权的活动,同时不损害合法转账的最终性。 + +有关更多技术细节,请参阅 QIP-0011。 + +## **密钥恢复** + +许多加密财富随持有者离世而消失。Quantus Network 提供一种简单方式来指定恢复地址,该地址可随时提取资金,但需经过固定的延迟期。在此期间,如果原持有者仍能访问密钥,可拒绝恢复。这一功能实现生存性继承:用户拥有链上遗嘱,无需法院或遗产程序。 + +## **HD-Lattice** + +分层确定性(HD)钱包是区块链的行业标准,允许用户用一个种子短语备份所有密钥,比逐个手动备份更安全便捷。将此适配到如 Dilithium 等格方案涉及两个挑战: + +• HMAC-SHA512 输出无法直接形成格私钥,格私钥是从具有特定性质的环中采样的多项式。 + +• 非硬化密钥派生依赖椭圆曲线加法,而格中不存在(公钥在任何代数运算下均不封闭)。 + +Quantus Network 通过将 HMAC 输出用作熵来确定性构造私钥(而非直接作为私钥)来解决第一个问题。第二个问题相对不那么关键,格密码学能否适配以解决该问题仍是一个开放的研究问题。 + +有关更多技术细节,请参阅 QIP-0002。 + +# **6. 代币经济学与治理** + +Quantus Network 处于不断变化的环境中,我们不能假设第一次就能把一切都做对。因此,我们选择一个简单的起点,并允许治理系统随着新信息的获取而进行变更。这一设计使区块链成为一个能够随意适应环境的生命体。特别是 Substrate 的治理流程允许在各个节点运行者之间只需最少协调,即可对链进行深度变更。 + +## **区块奖励** + +Quantus Network 采用一种模仿比特币的简单代币经济学模型。最大供应量为 21,000,000 枚代币,每区块奖励由一个简单启发式公式决定: + +_block_reward = (max_supply - current_supply) / constant_ + +这一启发式公式形成一条平滑的指数衰减曲线,因为区块奖励会增加 current_supply,从而降低下一区块计算出的区块奖励。任何来自费用或其他方式的销毁都会减少 current_supply,并实质上成为区块奖励预算的一部分。常数的选择确保在没有销毁的情况下,99% 的代币将在约 40 年内发行完毕。 + +## **投资者分配** + +Quantus Network 在天使投资者的帮助下建成,他们承担了极大的风险。为避免投资者锁仓造成的供应悬垂,所有投资者(公开和私募)将在第一天完全流动。这一分配将是唯一的"预挖"。所有其他代币必须通过挖矿产生。根据公开销售的成功程度,这一比例将占总供应的 20-30%。 + +## **公司分配** + +为补偿团队在无成功保证的情况下构建新技术所承担的风险,区块奖励的一部分将在约四年内发送给公司。这形成了公司约占总供应 10% 的事实上的归属时间表。 + +此后,公司部分的区块奖励将被重定向至由代币持有者治理的财库,实质上形成一个 DAO。 + +## **交易费用** + +标准交易收取费用并支付给矿工,提供包含交易的激励。高安全性账户的可逆转交易收取基于交易量的 1% 费用,该费用被销毁,本质上将其添加到安全预算中。通过 ZK 聚合系统的交易也收取基于交易量的 0.1% 费用,该费用在矿工和销毁之间平均分配。 + +## **无分叉升级** + +Quantus Network 通过 Substrate 的运行时升级机制实现了"无分叉"升级,使区块链的核心逻辑("运行时")在不发生可能扰乱网络或分裂社区的硬分叉的情况下演进。这一升级通过链上治理公投实现:被批准的提案触发运行时替换,在单个区块中用新的 WASM 代码 blob 替换现有代码,确保状态和操作的连续性。这一升级路径将停机时间和风险降到最低,赋能社区根据真实世界使用情况迭代优化协议。 + +随着社区对系统的信心逐步增强,将逐步收紧对运行时环境的变更权限,以在升级机制遭到恶意控制时降低系统的攻击暴露面。 + +## **治理系统** + +Quantus Network 通过 Substrate 继承了 Polkadot 的 OpenGov 治理框架。代币持有者通过信念投票(conviction voting)参与,他们同意锁定资产不同期限以放大投票权重。权重放大倍数从 1x(无锁定)到 6x(最长锁定期限)。这一设计通过将影响力与承诺挂钩,激励长期一致性。 + +提案被分类到多个称为"origins"的投票轨道中。每个 origin 均设有定制参数,如审批门槛(例如高影响变更需超级多数)、最低保证金以防垃圾提案、准备/执行周期,以及决策时间线以避免僵局。这一多轨道设计允许并行处理多类公投,覆盖从常规财库支出到关键运行时升级。 + +技术委员会(Technical Collective)是一个精选的技术专家小组,作为专门机构提出、审查或白名单化紧急技术提案,通过专属决策轨道加速处理相关决策,同时保留社区监督权。 + +Quantus 未做任何修改地直接采用这一系统,但初期采用极简配置以避免早期治理复杂性。初始阶段仅启用技术委员会轨道,用于具有约束力的、高权限决策事项,如协议升级或参数调整。 + +后续阶段,Quantus 可引入非约束性的社区投票轨道,用于评估非强制事项的反馈,例如功能提议或生态系统调研。当公司将网络治理权移交给 DAO 时,这一系统将具有约束力。 + +这一分阶段方法允许网络通过未来治理投票有机演进,同时避免在初期阶段给用户带来不必要的复杂性。 + +# **7. 路线图** + +当前路线图(截至 2026 年,可能会有变更): + +**• Heisenberg Inception** - 2024 年 12 月 - 完成融资,确定采用 Substrate 架构 + +**• Resonance Alpha** - 2025 年 7 月 - 公共测试网、Dilithium 签名、可逆转交易 + +**• Schrödinger Beta** - 2025 年 10 月 - 功能完成、准备审计 + +**• Dirac Beta** - 2025 年 11 月 - PoW 变更为 Poseidon2、处理审计问题 + +**• Planck Beta** - 2026 年 1 月 - 高安全性账户、多签、硬件钱包、ZK 整合 + +**• Bell Mainnet** - 2026 年第二季度 - 主网上线 + +**• Fermi Upgrade** - 2026 年第四季度 - ZK 证明聚合基础设施 + +# **8. 风险** + +构建 Quantus Network 伴随着固有风险。 + +**• 实现问题:**即使是设计完善的系统,软件逻辑缺陷也可能导致严重故障。 + +**• NIST 算法选择问题:**已选定的后量子标准(例如 ML-DSA、ML-KEM)在标准化后可能出现潜在缺陷或后门。在最极端情况下,此类缺陷可能使攻击者从公钥推导出私钥,从而伪造签名,这代表链的灾难性失效模式。如果此类漏洞被公开,Quantus Network 可升级到新算法进行应对;但如果缺陷被谨慎利用,它们可能永远不会被发现。 + +**• 量子计算时间表:**量子突破可能远晚于预期,从而推迟对后量子密码学(PQC)的需求;反之,秘密开发(例如由政府进行)可能导致突发威胁,如果区块链社区未能迅速更新,则将面临风险。 + +**• 其他考虑因素:**通用使用壁垒、金融/区块链领域的监管不确定性,以及加密生态系统的固有波动性。 + +# **9. 参考文献与进一步阅读** + +1. Shor, P. W. (1997). Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. SIAM Journal on Computing, 26(5), 1484-1509. https://doi.org/10.1137/S0097539795293172 + +2. Grover, L. K. (1996). A fast quantum mechanical algorithm for database search. Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing, 212-219. https://doi.org/10.1145/237814.237866 + +3. Chainalysis. (2024). The Chainalysis 2024 Crypto Crime Report. https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/ + +4. National Institute of Standards and Technology. (2024). FIPS 204: Module-Lattice-Based Digital Signature Standard (ML-DSA). U.S. Department of Commerce. https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf + +5. National Institute of Standards and Technology. (2024). FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM). U.S. Department of Commerce. https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf + +6. Häner, T., Jaques, S., Naehrig, M., Roetteler, M., & Soeken, M. (2020). Improved quantum circuits for elliptic curve discrete logarithms. arXiv preprint arXiv:2002.12480. https://arxiv.org/abs/2002.12480 + +7. Gidney, C., & Ekerå, M. (2021). How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits. arXiv preprint arXiv:1905.09749. https://arxiv.org/abs/1905.09749 + +8. Aggarwal, D., et al. (2021). Assessment of Quantum Threat To Bitcoin and Derived Cryptocurrencies. ePrint IACR. https://eprint.iacr.org/2021/967.pdf + +9. Roetteler, M., Naehrig, M., Svore, K. M., & Lauter, K. (2017). Quantum resource estimates for computing elliptic curve discrete logarithms. arXiv preprint arXiv:1706.06752. https://arxiv.org/abs/1706.06752 + +10. Open Quantum Safe Project. (n.d.). ML-DSA | Open Quantum Safe. Retrieved January 29, 2026, from https://openquantumsafe.org/liboqs/algorithms/sig/ml-dsa.html diff --git a/website/src/contents/ru-RU/whitepaper.md b/website/src/contents/ru-RU/whitepaper.md new file mode 100644 index 0000000..b8c5a33 --- /dev/null +++ b/website/src/contents/ru-RU/whitepaper.md @@ -0,0 +1,337 @@ +--- +title: "Quantus Whitepaper" +description: "The official Quantus Network whitepaper detailing our quantum-secure Layer 1 blockchain architecture, post-quantum cryptography, and tokenomics." +pubDate: "2026-02-05" +heroImage: "/blog/covers/whitepaper.jpeg" +heroAlt: "Quantus Network Whitepaper" +featured: true +tags: + [ + "whitepaper", + "post-quantum-cryptography", + "blockchain", + "quantus-network", + "dilithium", + "zero-knowledge-proofs", + ] +--- + +**Quantus Network Whitepaper v0.3.2** +Legal Disclaimer: This whitepaper is provided for informational purposes only and does not constitute an offer to sell, a solicitation of an offer to buy, or a recommendation for any security, investment, or financial product. Readers should conduct their own due diligence and consult with qualified professionals before making any investment decisions. Quantus Network makes no representations or warranties regarding the accuracy or completeness of the information herein. + +**1. Introduction** + +The Quantum Threat + +Traditional blockchains face an existential threat from cryptographically relevant quantum computers (CRQCs). The cryptographic foundations of blockchains rely on the hardness of the discrete logarithm problem (DLP), and quantum algorithms, notably Shor's, can solve the DLP exponentially faster than classical computers. This vulnerability could enable quantum-adversaries to derive private keys from public keys, which would allow them to forge transactions and decrypt sensitive financial data. + +This outcome is a catastrophic system failure. Without proactive quantum-resistant upgrades, the trillion-dollar crypto economy risks sudden devaluation from such attacks. + +Unique Value Proposition + +Named after the Latin word for "how much", Quantus Network enables scalable, quantum-secure, private money. Quantus is not a general purpose smart contract platform. Quantus focuses on doing a small number of things better than any other chain. Like a restaurant with a few highly perfected menu items, Quantus delivers: + +- Post-Quantum signatures for all transactions +- Post-Quantum signatures and encryption (ML-DSA and ML-KEM) to secure peer connections +- Post-Quantum zero-knowledge-proofs to scale +- High Security Accounts to deter theft and enable recovery from mistakes +- Human-Readable check-phrases for easy address verification + +The decision to focus on scalable, quantum-secure, private money stems from the threat CRQCs present to the industry and Bitcoin's inability to address these challenges. + +**2. The Quantum Threat to Blockchain** + +Quantum Computing Basics + +Quantum computers leverage principles like superposition and entanglement to perform computations that are intractable for classical machines. Unlike classical bits, which are either 0 or 1, quantum bits (qubits) can exist in multiple states simultaneously, enabling exponential parallelism for certain problems. This capability poses existential risks to the cryptographic systems underpinning blockchain finance, as algorithms developed for quantum hardware undermine the security assumptions of most public-key cryptography. + +Shor's algorithm, introduced in 1994 by Peter Shor, provides a polynomial-time method for factoring large integers and solving the discrete logarithm problem on a quantum computer. In essence, it exploits Quantum Fourier Transforms (QFT) to find the period of a function, allowing efficient reversal of the trapdoor functions that underlie schemes like RSA or elliptic curve cryptography (ECC). For blockchain finance, this means an attacker with a sufficiently powerful quantum computer (estimated at \~2,000 logical qubits [6][7][8][9]) could derive private keys from public keys in polynomial time O(n³). This is an extreme speed-up, rendering vulnerable systems obsolete overnight. [1] + +Grover's algorithm, proposed by Lov Grover in 1996, offers a quadratic speedup for unstructured search problems, reducing the time to find a specific item in an unsorted database from O(n) to O(√n) operations. It works by iteratively amplifying the amplitude of the target state through quantum interference. While not as devastating as Shor's for asymmetric cryptography, Grover's impacts symmetric primitives like hash functions and AES encryption, effectively halving the security level (e.g., a 256-bit key behaves like 128 bits against quantum attacks). While impactful, this attack is mitigated by simply doubling the security bits, rather than changing the cryptographic scheme. Additionally, Grover's quadratic speedup is impractical due to its high qubit and gate requirements, requiring billions of operations in sequence, with limited parallelization, making it infeasible for real-world reversals even on future hardware. [2] + +The dangers of quantum computing to blockchain finance can be categorized into four areas: + +- Forging Digital Signatures: Shor's algorithm directly threatens ECC-based signatures used in most blockchains (e.g., Bitcoin's secp256k1 curve), allowing adversaries to impersonate users and authorize fraudulent transactions. Such a capability would represent a critical failure of the most basic feature of a blockchain. +- Forging False Proofs in Zero-Knowledge Systems: Many zero-knowledge proofs, such as those in zk-SNARKs for privacy-focused finance, rely on discrete logarithm hardness via elliptic-curve pairings for commitments; Shor's could enable the creation of invalid proofs that appear valid, which could allow an attacker to mint new coins or falsify the state of Layer-2s (L2s). +- Decrypting Secret Information: Quantum attacks could expose encrypted data protected by vulnerable public-key schemes in privacy protocols such as Zcash or Monero. It could also decrypt p2p communications in financial protocols, revealing sensitive wealth details and enabling targeted theft. +- Reversing Hash Functions: Grover's algorithm could accelerate preimage attacks on hashes like SHA-256, used for proof-of-work and address generation, but this is the least concerning threat. Many post-quantum cryptographic schemes incorporate hash-based constructions as hashes are considered secure-enough with a large enough digest. + +Scaling Challenges in Post-Quantum Cryptography + +While post-quantum cryptography (PQC) offers essential protections against quantum threats, it introduces significant scaling hurdles due to the inherent design of these algorithms. Unlike elliptic curve schemes, which rely on compact mathematical structures, PQC primitives require larger parameters to maintain security against both classical and quantum adversaries. This results in substantially bigger public keys, private keys, and signatures, often by orders of magnitude. The following table illustrates typical sizes for ML-DSA at a 128-bit post-quantum security level compared to classical counterparts like 256-bit ECDSA [10]: + +| Algorithm | Public Key Size (Bytes) | Private Key Size (Bytes) | Signature Size (Bytes) | +| --------------------- | ----------------------- | ------------------------ | ---------------------- | +| ML-DSA-87 (Dilithium) | 2,592 | 4,896 | 4,627 | +| ECDSA (256-bit) | 32 | 32 | 65 | + +As shown, ML-DSA signatures can be over 70 times larger than ECDSA equivalents, and public keys more than 80 times larger. Other PQC families exacerbate this: hash-based schemes like SPHINCS+ may produce signatures up to 41 KB, while even size-optimized lattice variants like FALCON still exceed classical sizes by a significant multiple. + +In blockchain contexts, these inflated sizes compound into systemic scaling issues. Larger signatures bloat individual transactions, reducing transactions per second (TPS) as blocks fill faster and require more time for validation. This also strains peer-to-peer (P2P) communication, increasing bandwidth demands and propagation delays, which can heighten the risk of network forks or orphaned blocks in consensus mechanisms like proof-of-work. Storage requirements are also affected, leading to higher node operating costs and barriers for participation, especially for resource-constrained users or validators. + +These scaling challenges will have to be addressed by **all blockchains** in the future. Bitcoin, for example, will have much less than 1 TPS if the max block size is not increased. + +**3. The Migration Crisis ** + +The Coordination Problem + +Bitcoin's conservative culture resists protocol changes. Any PQC upgrade would require consensus on contentious issues such as migration timelines, potential coin seizure, and block size increases. Even if the community agreed, every individual user would need to migrate their coins to new quantum-secure addresses. Migration requires action from every crypto holder, many of whom have lost access to their wallets or remain unaware of the threat. + +These issues exist for every public blockchain, but are uniquely challenging to Bitcoin due to its lack of clear leadership and philosophy of technical ossification. + +The Lost Coin Problem + +An estimated $250 billion to $500 billion worth of Bitcoin is permanently inaccessible due to lost keys, deceased holders, or forgotten wallets. [3] These coins cannot be migrated and serve as a public bounty for creating a cryptographically relevant quantum computer (CRQC). Quantum attackers will derive the private keys from exposed unmigrated public keys and likely dump billions of dollars of BTC onto the market. + +Technically, the only way to prevent this is a hard deadline that somehow freezes unmigrated coins, but this is politically impossible. The Bitcoin community would have to confiscate funds from users who failed to act, including estates of deceased holders and long-term investors not paying attention. Without such a deadline, the outcome will be that unmigrated coins are stolen and sold, crashing the market and destroying confidence in the network. + +The Migration Timeline Problem + +Even successful migration faces a scaling wall. Post-quantum signatures are 20x-80x larger than current Bitcoin signatures. Without fundamental architectural changes, Bitcoin's throughput will collapse to a fraction of its already limited capacity. + +Assuming Bitcoin solves the political and technical challenges, the migration itself would take months or years. Every holder must submit at least one transaction to move funds to a quantum-secure address. Many will send test transactions first. With bloated PQC signatures choking throughput, the network faces a backlog lasting months or years while quantum-vulnerable coins remain exposed. + +These compounding challenges make retrofitting quantum security onto existing chains extraordinarily difficult. Quantus Network sidesteps this by building quantum security into the chain from day one. + +**4. Quantus Network Architecture** + +Foundation + +Quantus Network is built on Substrate, a blockchain SDK developed by Parity Technologies, the team behind Ethereum and Polkadot. Substrate is highly modular, enabling easy replacement of components so we can focus on what makes Quantus unique. + +Quantus upgrades Substrate by: + +- Adding support for post-quantum signature schemes +- Upgrading the p2p networking security to be post-quantum +- Adding user-controlled transaction reversibility +- Making the database zk-friendly by aligning all data types to field-element boundaries + +Post-Quantum Cryptographic Primitives + +Quantus Network employs NIST-standardized PQC to ensure the security of transactions and network communications against quantum threats. At the core of transaction integrity is ML-DSA (Module-Lattice-based Digital Signature Algorithm, formerly known as CRYSTALS-Dilithium), a lattice-based signature scheme selected for its balance of security, efficiency, and ease of implementation. ML-DSA leverages the hardness of problems like Learning With Errors (LWE) and Short Integer Solution (SIS) over module lattices, providing robust resistance to both classical and quantum attacks, including those from Shor's algorithm. [4] + +For transaction signatures, Quantus integrates ML-DSA-87, the parameter set offering the highest security level (NIST Security Level 5, equivalent to 256-bit classical and 128-bit quantum security) to protect against potential cryptanalytic breakthroughs in lattice problems. This choice prioritizes caution, as lattice cryptography is relatively new and less battle-tested than classical schemes. The larger parameters mitigate risks from potential advances in lattice cryptanalysis, which would still leave smaller key sizes as softer targets. + +**Alternatives** + +ML-DSA was selected over alternatives like FN-DSA (Falcon) due to + +- FN-DSA's greater implementation complexity (e.g., requiring floating-point operations, which are blockchain-unfriendly) +- lack of deterministic key generation in its specification +- its non-finalized status at the time of development + +Hash-based options like SLH-DSA were not chosen because of their even larger signature sizes (exceeding 17 KB). Crypto-agility (being able to swap in different signature schemes) is built into Substrate, so it is relatively easy to add these alternatives at a future date, should circumstances demand. + +While ML-DSA-87 results in larger keys and signatures, these are manageable in Quantus's early-stage network, where storage is not yet a bottleneck, and optimizations like wormhole addresses via zero-knowledge proofs will address scaling. + +For technical details about the implementation see QIP-0006. + +**Libp2p** + +Quantus Network secures peer-to-peer (P2P) node communications using a combination of ML-DSA for authentication and ML-KEM (Module-Lattice-based Key Encapsulation Mechanism, formerly CRYSTALS-Kyber) for encryption. This integration extends PQC to the libp2p networking stack, modifying core components for quantum resistance: using ML-DSA-87 signatures for peer identity and ML-KEM-768 for transport security (extending the Noise handshake with an additional KEM message for quantum-resistant shared secrets). [5] + +The P2P layer is often neglected in quantum-security analysis. Authentication of peers is important, but the worst an attacker could do at the peer level is impersonate a node and send invalid messages, which could result in denial-of-service. This attack is already mitigated by the fact that nodes are generally untrusted in the blockchain model and nodes can easily switch their keys if the attack is detected. Likewise, decrypting P2P communications yields limited attacker benefits (e.g., tracking transaction paths, mitigated by proxies or Tor), and most data becomes public on-chain anyway. + +Nevertheless, quantum-securing the P2P layer protects against eavesdropping, man-in-the-middle attacks, and quantum decryption, ensuring that node gossip, block propagation, and other network interactions remain confidential and tamper-proof for the foreseeable future. + +For technical details about the implementation see QIP-0004. + +Scaling PQC + +To address the scaling challenges inherent in post-quantum cryptography, Quantus Network introduces an innovative aggregated post-quantum signature scheme called "Wormhole Addresses". This system leverages zero-knowledge proofs (ZKPs) generated via the Plonky2 proving system (basically STARKs) to move balance verification off-chain, allowing the chain to verify a single compact proof without processing individual signatures. Wormhole Addresses enable the verification of a large number of transactions with one proof, with the public inputs (e.g., nullifiers, storage root, exit addresses, and amounts) becoming the primary limiting factor. This reduces the amortized per-transaction storage demands to approximately 256 additional bytes per transaction, much smaller than any known PQC signature scheme. + +The quantum security of the scheme derives from the use of the secure hash function Poseidon2 for commitments via FRI (Fast Reed-Solomon Interactive Oracle Proofs), instead of the quantum-vulnerable elliptic-curve pairings commonly used in SNARKs. + +Additionally the authentication secrets are hidden behind Poseidon2. Since secure hash functions are only quadratically weakened by Grover's algorithm, not broken, hash preimage proofs can serve as lightweight post-quantum signatures in ZK contexts, similar to hash-based schemes like SPHINCS+. + +**Client / Prover Flow ** + +Users generate a provably unspendable address by double-hashing a salt concatenated with a secret + +H(H(salt | secret)) + +This construction prevents false positives (e.g., mistaking a single-hash public key for an unspendable address) because in Substrate (and generally) blockchain addresses are the single hash of a public key, which is derived from the private key via some algebraic operation, not via a secure hash. The security of the construction therefore reduces to finding the preimage-of-a-preimage of a secure hash. Tokens sent to this address are effectively burned. They cannot be spent because no private key exists for the address that received them. These coins can therefore be re-minted without inflating supply. + +For each transfer, a TransferProof storage object is created, containing details like a unique global transfer count. The user's wallet generates a Merkle-Patricia-Trie (MPT) storage proof from a recent block header's storage root to the leaf for this TransferProof. A nullifier is computed + +H(H(salt | secret | global_transfer_count)) + +to prevent double-spends, with the secret derived deterministically from the wallet seed for retention. + +**Aggregator Flow: ** + +Any party (client, miner, or third-party) can aggregate multiple proofs using Plonky2's recursion, forming a tree of proofs where each parent proof is a verification of the child proofs, with the child proofs' public inputs aggregated: + +- nullifiers pass unchanged +- exit addresses are deduplicated +- block hashes are proven to be linked and then all but the most recent is dropped +- amounts for duplicate exit addresses are summed + +This recursion supports hierarchical aggregation, drastically reducing on-chain data. + +**Chain / Verifier Flow: ** + +The network verifies the aggregated proof by checking: + +- block hash is on chain and recent +- nullifier uniqueness (to prevent double-spends) +- proof validity + +The ZK circuit enforces: + +- storage proof correctness +- nullifier computation accuracy +- address unspendability +- balance match between inputs and outputs +- block header linkage + +Plonky2 was selected for the following reasons + +- already audited +- post-quantum +- no trusted setup +- efficient proving/verification +- seamless proof aggregation +- Rust-native implementation +- compatible with Substrate's no-std environment + +Performance highlights include recursive proofs in 170 milliseconds and compact sizes (100 KB per aggregated proof), enabling massive throughput gains. In an optimal case with 5 MB blocks and all transactions going to the same output, Wormhole Addresses could pack \~153,000 transactions into a single block (4.9 MB / 32 bytes per nullifier), a 223x improvement over \~685 raw ML-DSA transactions (5 MB / 7.3 KB each). + +**Security Notes: ** + +Potential risks include inflation bugs from faulty circuit/verification implementations, although this would be economically detectable if re-minted coins exceed balances of zero-send addresses. Users can optionally prove an address is a wormhole by publishing the first hash without revealing the secret. Verification transactions are unsigned, so denial-of-service via failed transactions needs to be mitigated non-financially. Token supply calculations are maintained, as re-mints appear as new coins but maintain maximum supply guarantees via burns. + +For more technical details about the implementation see QIP-0005. + +Consensus Mechanism + +Quantus Network uses a Proof-of-Work (PoW) consensus algorithm that preserves the desirable properties of Bitcoin's consensus algorithm while improving compatibility with ZK-proof systems by switching out SHA-256 with Poseidon2. + +Importantly, this change is not being made for quantum security. Cryptographic hash functions like SHA-256 are weakened but not destroyed by quantum algorithms, notably Grover's. Some post-quantum signature schemes use secure hashes as a building block for this reason. + +Poseidon2 is a refinement of the Poseidon hash function. Creating SNARKs or STARKs for computations involving traditional hash functions like SHA-256 often requires nearly 100x the number of gates compared to using Poseidon, which relies entirely on algebraic functions over field elements, instead of bit-level operations. + +We use the Goldilocks field for both Poseidon2 and Plonky2. The Goldilocks field's order fits in a unsigned 64 bit integer, which increases efficiency without compromising soundness.   + +**5. Wealth Preservation** + +There are many risks in managing cryptocurrency keys. Most of them are avoidable. + +Reversible Transactions + +Quantus Network offers user-configurable reversible transactions. Senders set a time window during which they can cancel outgoing transfers. This deters theft and corrects errors without sacrificing finality. The system uses a modified Substrate "scheduler pallet" with timestamps. Wallets display countdowns for both sender (with a cancel button) and recipient. + +Reversible transactions enable novel security protocols while maintaining decentralization through onchain enforcement. + +For more technical details see QIP-0009. + +Check-Phrases + +Quantus Network introduces "check-phrases," a cryptographically-secure human-readable checksum for blockchain addresses. The address is hashed to generate a short sequence of memorable words from the BIP-39 mnemonic list. Check-phrases protect against typos, tampering, and address poisoning attacks. A 50,000 iteration key derivation function makes rainbow table attacks expensive. For large transactions, users should still verify every character of the address. + +For more technical detail please see QIP-0008. + +High-Security Accounts + +Any account can be upgraded to a "high-security account" with mandatory reversal periods on all outgoing transfers. A designated "guardian" (hardware wallet, multisig, or trusted third party) can cancel suspicious transactions during the reversal period, sending funds to the guardian instead of the sender or receiver. This opt-in feature is permanent once activated, preventing thieves from disabling it. + +Guardians can be chained: a high-security account's guardian can itself be a high-security account with its own guardian. This creates composable hierarchies where each guardian has superior permissions to the account it protects. The design gives users time to detect and respond to unauthorized activity without compromising finality for legitimate transfers. + +For more technical details see QIP-0011. + +Key Recovery + +Many crypto-fortunes have gone to the grave with their owners. Quantus Network offers a simple way to specify a recovery address that can pull your funds at any time, subject to a fixed delay. During this time, the owner can deny recovery if they have access to the key. This feature enables survivorship: users have an onchain will without the need for courts or estates. + +HD-Lattice + +Hierarchical Deterministic (HD) wallets are the industry standard for blockchains, allowing users to back up one seed phrase for all keys, improving security and convenience over manual backups per action. Adapting this to lattice schemes like Dilithium involves two challenges: + +- HMAC-SHA512 outputs can't directly form lattice private keys, which are polynomials sampled from a ring with certain properties. +- Non-hardened key derivation relies on elliptic curve addition, absent in lattices (public keys aren't closed under any algebraic operation). + +Quantus Network addresses the first issue by using the output of the HMAC as entropy to deterministically construct the private key, not as the private key itself. The second issue is less critical and remains an open research question whether lattice cryptography can be adapted to address it. + +For more technical details see QIP-0002. + +**6. Tokenomics and Governance** + +Quantus Network exists in a changing environment, and we cannot assume that we will get everything right on the first try. For this reason, we choose a simple starting point and allow the governance system to make changes as new information is acquired. This design makes the blockchain a living entity that can adapt to its environment at will. In particular, the Substrate governance process allows deep changes to the chain with minimal coordination among the various node-runners. + +Block Rewards + +Quantus Network employs a straightforward tokenomics model imitating that of Bitcoin. There is a maximum supply of 21,000,000 coins and a simple heuristic determines the reward each block. + +```javascript +block_reward = (max_supply - current_supply) / constant; +``` + +This heuristic forms a smooth exponentially decaying curve as the block_reward contributes to the current_supply which reduces the block_reward computed at the next block. Any burns from fees or otherwise reduce current_supply and essentially become part of the budget for block rewards. The constant is chosen so that, in the absence of any burns, 99% of the coins will be emitted in about 40 years. + +Investor Allocations + +Quantus Network was built with the help of angel investors who took great risk in funding it. To avoid the supply overhangs that investor-lockups create, all investors, public and private, will be fully liquid on day one. This allocation will be the only "pre-mine". All other tokens will have to be mined into existence. Depending on the success of public sales this portion will represent 20-30% of the total supply. + +Company Allocations + +To compensate the team for taking the risk to build new technology with no promise of success, a portion of the block reward is sent to the company for approximately four years. This gives a de facto vesting schedule of about 10% of the total supply to the company. + +After that point, the company's portion of block rewards will be redirected to a treasury governed by token holders, essentially forming a DAO. + +Transaction Fees + +Standard transactions have a fee that goes to miners, providing an incentive to include transactions. Reversed transactions from high-security accounts are charged a volume-based fee of 1% that is burned, essentially adding it to the security budget. Transactions that go thru the zk aggregation system are also subject to a volume-based fee of 0.1%, which is split evenly between the miner and a burn. + +Forkless Upgrades + +Quantus Network supports "forkless" upgrades through Substrate's runtime upgrades, allowing the blockchain's core logic (the "runtime") to evolve without hard forks that could disrupt the network or split the community. This is achieved via on-chain governance referenda, where approved proposals trigger a runtime swap, essentially replacing the existing WASM code blob with a new one in a single block, ensuring continuity of state and operations. This upgrade path minimizes downtime and risks, empowering the community to iteratively refine the protocol as real world usage reveals potential improvements. + +As the community gains confidence in the system over time, the power to change the runtime will be significantly reduced to limit the attack surface, should a malicious actor obtain control of the upgrade process. + +Governance System + +Quantus Network inherits its governance framework from Polkadot's OpenGov system via Substrate. Token holders participate via conviction voting, where they agree to lock their assets for varying periods to amplify their vote's weight. This amplification can range from 1x (no lock) to 6x (maximum lockup). This design encourages long-term alignment by tying influence to commitment. + +Proposals are categorized into multiple voting tracks called "origins". Each origin has tailored parameters like approval thresholds (e.g., supermajority for high-impact changes), minimum deposits to deter spam, preparation/enactment periods, and decision timelines to prevent gridlock. This multi-track design allows parallel processing of diverse referenda, from routine treasury spends to critical runtime upgrades. + +The Technical Collective is a curated group of technical experts serving as a specialized body to propose, review, or whitelist urgent technical matters, expediting them through a dedicated track while maintaining community oversight. + +Quantus adopts this system without modifications but starts with a minimalistic setup to avoid complexity in its early stages. Initially, only the Technical Collective track is active, which will be used for binding, high-privilege decisions like protocol upgrades or parameter tweaks. + +Later, Quantus can add a non-binding community vote track for gauging sentiment on non-enforceable topics, such as feature suggestions or ecosystem polls. This system will become binding when the company turns the network over to the DAO. + +This phased approach allows the network to evolve organically via future governance votes without burdening users with unnecessary complexity at the beginning. + +**7. Roadmap** + +The current roadmap through 2026, subject to change: + +- Heisenberg Inception - December 2024 - Funding Secured, Substrate Chosen +- Resonance Alpha - July 2025 - Public Testnet, Dilithium Signatures, Reversible Transactions +- Schrödinger Beta - October 2025 - Feature Complete, Ready for Audit +- Dirac Beta - November 2025 - PoW changed to Poseidon2, Audits Addressed +- Planck Beta - January 2026 - High Security Accounts, Multisigs, Hardware Wallet, ZK Integration +- Bell Mainnet - Q2 2026 - Mainnet Launch +- Fermi Upgrade - Q4 2026 - ZK Proof Aggregation Infrastructure + +**8. Risks** + +Building Quantus Network comes with inherent risks. + +- Implementation Issues: Flaws in software logic can cause serious failures in even the best designed systems. +- NIST Algorithm Selection Issues: Potential flaws or backdoors in selected post-quantum standards (e.g., ML-DSA, ML-KEM) that could emerge post-standardization. In the worst case, such flaws would allow an attacker to forge signatures by deriving a private key from the public, representing a catastrophic failure mode of the chain. If such flaws were made public, Quantus Network could be upgraded to a new algorithm, but if such flaws are exploited sparingly they may never be discovered. +- Quantum Computing Timelines: Quantum breakthroughs might arrive much later than anticipated, delaying the need for PQC; conversely, secretive development (e.g. by governments) could lead to sudden threats if the blockchain community fails to update swiftly. +- Other Considerations: General adoption barriers, regulatory uncertainties in finance/blockchain, and the inherent volatility of crypto ecosystems. + +**9. References & Further Reading** + +1. Shor, P. W. (1997). Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. _SIAM Journal on Computing_, 26(5), 1484–1509. [https://doi.org/10.1137/S0097539795293172](https://doi.org/10.1137/S0097539795293172) +2. Grover, L. K. (1996). A fast quantum mechanical algorithm for database search. _Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing_, 212–219. [https://doi.org/10.1145/237814.237866](https://doi.org/10.1145/237814.237866) +3. Chainalysis. (2024). The Chainalysis 2024 Crypto Crime Report. [https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/](https://www.chainalysis.com/blog/2024-crypto-crime-report-introduction/) +4. National Institute of Standards and Technology. (2024). FIPS 204: Module-Lattice-Based Digital Signature Standard (ML-DSA). U.S. Department of Commerce. [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf) +5. National Institute of Standards and Technology. (2024). FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM). U.S. Department of Commerce. [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf) +6. Häner, T., Jaques, S., Naehrig, M., Roetteler, M., & Soeken, M. (2020). Improved quantum circuits for elliptic curve discrete logarithms. _arXiv preprint arXiv:2002.12480_. [https://arxiv.org/abs/2002.12480](https://arxiv.org/abs/2002.12480) +7. Gidney, C., & Ekerå, M. (2021). How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits. _arXiv preprint arXiv:1905.09749_. [https://arxiv.org/abs/1905.09749](https://arxiv.org/abs/1905.09749) +8. Aggarwal, D., et al. (2021). Assessment of Quantum Threat To Bitcoin and Derived Cryptocurrencies. _ePrint IACR_. [https://eprint.iacr.org/2021/967.pdf](https://eprint.iacr.org/2021/967.pdf) +9. Roetteler, M., Naehrig, M., Svore, K. M., & Lauter, K. (2017). Quantum resource estimates for computing elliptic curve discrete logarithms. _arXiv preprint arXiv:1706.06752_. [https://arxiv.org/abs/1706.06752](https://arxiv.org/abs/1706.06752) +10. Open Quantum Safe Project. (n.d.). ML-DSA | Open Quantum Safe. Retrieved January 29, 2026, from https://openquantumsafe.org/liboqs/algorithms/sig/ml-dsa.html