been thinking a lot about randomx, asics, and specter’s design philosophy.
specter is supposed to be hash based, simple, and post quantum. it rejects elliptic curves, trusted setups, and unnecessary complexity. but randomx is probably the most complex part of the whole system.
for specter, nodes already need to verify stark proofs per transaction, so adding slow pow verification on top just increases sync and validation cost. every block header during sync needs a randomx evaluation.
also, the bitmain x9 proves the point. even randomx eventually got asics, despite being designed to resist them. so i’m starting to think fighting asics is pointless. it’s just natural hardware evolution. what matters more is fast and cheap verification at the protocol level.
because of that, i decided to use hash based pow with blake3.
why blake3 fits specter better:
- already used in the stack for hashing and merkle commitments
- extremely fast verification
- tiny implementation compared to randomx
- post quantum safe
- much easier to audit
yes, blake3 will favor gpus and eventually asics. but specter’s anti spam mechanism is already the stark proof cost, not pow. pow is mainly there for:
- block level sybil resistance
- emission scheduling
for that job, a simple hash pow is enough.
https://github.com/ignotusnemo/specter/blob/main/docs/specter-whitepaper.txt