Qubic uses K12 hashing and standard cryptography for enhanced performance, detailed in qubic-cli/keyUtils.cpp. Addresses and transaction verifications are securely managed.
Qsilver · Dec 31, 2023.
In the unofficial interim whitepaper, I didn’t delve into the detailed crypto algorithms used. For those uncomfortable with reading C++ code, here’s a small addendum:
Instead of SHA256, Qubic uses K12 (Keccak Team), which is faster and an improvement over SHA256. Qubic employs standard public/private key cryptography. A 55-character lowercase alpha seed maps to binary values 0 to 25, then is K12 hashed twice to create the 256-bit private key. The public key is derived from the private key using ecc_mul_fixed
. User-visible addresses are generated from the public key bits with a K12 checksum.
The process, including transaction hash creation, is detailed in about 100 lines of code in qubic-cli/keyUtils.cpp.
Astute readers may note that since the seed maps to a 256-bit high entropy private key, wallets could use 24 BIP39 words to manage user addresses instead of the Qubic-specific 55-character seeds.
Each epoch, the arbitrator determines a new set of computors based on the previous epoch's performance, broadcasting the list of 676 computors. This enables nodes to verify the proper computor signed a tick. The tick leader, the next computor on the list, signs each tick if it achieves quorum, making all tick data verifiable.
Every transaction is signed by the appropriate private key, ensuring everything in Qubic is cryptographically verifiable, despite no explicit link between blocks. Even an empty tick requires quorum agreement to prevent attacks from false empty tick submissions.
For the latest updates, join the Valis Discord, follow us on X, and bookmark our blog.
← Previous
Arbitrator is not an Alligator
Next →
An Unofficial Qubic Interim Whitepaper
On this Page
Related Posts