Custom mining hardware
Customizing an ASIC for Bloch-SIS-PoW.
What a custom miner (ASIC or FPGA) must accelerate to mine the Bloch-SIS proof-of-work — and how to build one. This is an engineering description of the algorithm, not an endorsement to build hardware.
Read first
- No economic reason to build one. The coin is not a security and not an asset — no price, no market, no value claim. Do this for research/education only.
- Parameters are NOT security-validated. At
β = q/16the residual gate is structurally weak by the protocol's own admission; the chain is unaudited and 51%-attackable, and the no-shortcut proof is outstanding. Any consensus parameter can change in a future hard fork and invalidate a fixed-parameter chip.
The PoW
Two gates per candidate.
A valid block carries a SIS witness: a short integer vector s that (1) satisfies a Module-SIS lattice gate and (2) whose block's auxiliary hash beats the difficulty target. Mining searches nonces/seeds for a candidate passing both.
(A, t) = SHAKE256-expand(seed) # A ∈ Z_q^{m×n}, t ∈ Z_q^m
r = A·s - t (mod q, centered) # residual
gate_ok = ||r||∞ < β on k coefficients # structural filter (Module-SIS)
work_ok = SHAKE256(header‖s) ≤ target # cumulative hashcash work
valid = gate_ok AND work_ok
Security is cumulative SHAKE-256 hashcash work; the lattice gate is a structural filter, not a security claim by itself.
Canonical parameters
Aligned with ML-DSA-65 on purpose.
q = 8 380 417- = 2²³ − 2¹³ + 1 — the ML-DSA-65 / FIPS 204 (Dilithium) prime, chosen so an NTT core can be shared with the signature subsystem. That's the reuse hook: existing Dilithium/Kyber NTT + modular-reduction hardware IP drops straight in.
n = 256,m = 512- Solution dimension and matrix rows (
A ∈ Z_q^{m×n},m = 2n). β = q/16- Residual ∞-norm bound. Not security-validated — weak by design at this value.
k = 8- Residual coefficients the gate constrains (mainnet, now active; testnet was 4). Each step of k makes valid candidates exponentially rarer (~4096× from k=4 to k=8).
What the chip accelerates
Keccak + 24-bit modular multiply.
- SHAKE-256 / Keccak-f[1600] (throughput core) — expands
A(≈131k field entries) andtfrom the seed, and computes the work hash. Standard SHA-3 permutation logic. - Matrix-vector product
A·s mod q— 512 dot-products of length 256 over a 24-bit prime. Reuse Dilithium NTT butterflies / a wide MAC array with centered reduction. - Norm gate —
kparallel comparators againstβ; place it early to reject most candidates before the work hash. - Difficulty compare — 256-bit compare of the aux hash to the ASERT-tuned target (~30 s block time, ±4×/step).
The design is compute-bound on Keccak + 24-bit modmul and can keep A on-die (≈384 KiB), which is what makes it ASIC-amenable rather than memory-hard.
Full ASIC customization spec (PDF) ↓ — the pipeline diagram, the practical FPGA-first path, and the honest limits. Reference solver: crates/bloch-sis-pow in the protocol repo (see Run a node). Unaudited; parameters not security-validated.