12573
Paul Miller

@paulm #12573

Security, austrian school. Developing noble cryptography: audited js libraries for web3. https://paulmillr.com/noble
40192 Follower 29 Following
Some thoughts on how ETH can become quantum-resistant.

There are lots of small tasks, but it seems quite doable.

https://ethresear.ch/t/tidbits-of-post-quantum-eth/21296
Fresh drop from australian NSA:

“taking into account projected technological advances in quantum computing”

- DH / ECDH / ECDSA will not be approved for use beyond 2030
- Also AES-128 and AES-192
- Also SHA-256 (!)
- Also ML-KEM-768 / ML-DSA-65 (!!)

https://www.cyber.gov.au/resources-business-and-government/essential-cyber-security/ism/cyber-security-guidelines/guidelines-cryptography
/dev
There are challenges in upgrading blockchains to be post-quantum safe, however, some of them seem easy.

Most keys these days are generated from BIP39 mnemonics. Bip39 is pq-safe. We freeze all balances. To unfreeze, we ask users to generate a STARK proof which shows seedphrase is related to their address. After that funds are moved to a new system. Done.

(https://ethresear.ch/t/how-to-hard-fork-to-save-most-users-funds-in-a-quantum-emergency/18901)
@pmarca is right: Debanking is real. It’s also real outside of US. Because US policy affects the world. Especially if you’re in a mildly controversial business. Or if you have “high-risk” citizenship / residency.

If that never happened to you, think how would your life change, if it does.
NIST wants to ban ECDSA in 2035. It is tight.

HTTPS, messengers, cryptocurrencies and everyone else will need to move to new algorithms. Not all functionality is currently feasible in pq setting.

Here’s an excerpt from noble-post-quantum on speed & key size in JS implementations.
/dev
noble-ciphers got audited, while curves got their third audit. Thanks to OpenSats for funding & Cure53 for the work! PDF in repo.

Contact me if you’re:

- auditor (paid / unpaid) willing to review new open-source goods
- willing to fund auditors

https://github.com/paulmillr/noble-ciphers
/dev
Ethereum $130B staking contract was created using Tornado Cash.

Torn has mostly been used for legit on-chain privacy. An example is the transaction by anon dev, deploying the contract.

The repo rebuilds it using modern tech. Great for ZK education! https://github.com/nkrishang/tornado-cash-rebuilt

https://etherscan.io/tx/0xe75fb554e433e03763a1560646ee22dcb74e5274b34c5ad644e7c0f619a7e1d0
Kinda sad there are people working on eth who think Tornado should be shut down due to crime. Even though most of its usage is legitimate privacy, which cannot be reliably achieved in other methods.

Anti privacy ethos all the way.
New release of JS eth-signer is out. A lot of new features have been added:

- EIP-7702 AA transactions
- EIP-4844 KZG implementation in pure JS
- EIP-712 / EIP-191 message signing
- EIP-7495 SSZ stable container

https://github.com/paulmillr/micro-eth-signer
Just released post-quantum v0.2.0, implementing final FIPS 203 / 204 / 205 specs. You can now use PQ cryptography in JS apps today!

https://github.com/paulmillr/noble-post-quantum
This is one of the best cryptography libraries:

- ~High level language (nim)
- Tons of useful docs and comments. Check out repository issues!
- All kinds of algorithms. ECC, pairings, r1cs, you name it
- Solid for educating newcomers

Great job @mratsim
Releasing new package: micro-rsa-dsa-dh

Minimal implementation of older cryptography algorithms. Elliptic curves have gained adoption these days, however, classical algos are still needed sometimes.

As usual, the code is simple and good for education.

https://github.com/paulmillr/micro-rsa-dsa-dh
The new ETH client by @gakonst and @paradigm is live.

All historical transactions (aka “archive node”) fit in just 2.3TB. Full node is 1.2TB. Syncing from genesis takes 50 hours. Can be ran on a cheap pc: no need to pay for 3rd party RPC which tracks users.

https://www.paradigm.xyz/2024/06/reth-prod
Human Rights Foundation (hrf.org) awarded us some money for nip44 encrypted chat spec.

Looks like we’ll be having an audit of noble-ciphers and remaining parts of curves later in the summer!
micro-eth-signer 0.9 is out.

No more block explorers: the release adds ability to fetch full account history and token balances using an archive node, such as @erigon

It also implements SSZ in just 900 lines: nearest library is 8x larger.

https://github.com/paulmillr/micro-eth-signer
Grateful for the grant from Farcaster.

Going to spend the funding on new security audits of open-source software.
Announcing noble-post-quantum: minimal JS implementation of ML-KEM, ML-DSA and SLH-DSA.

Also known as Kyber, Dilithium & SPHINCS+. Only 2000 lines of code - great learning resource for anyone who’s messing with PQ stuff. Check out README for comparison.

https://github.com/paulmillr/noble-post-quantum
micro-eth-signer 0.8 with support for dencun EIP4844 “blob-carrying” transactions is out.

- Alternative to ethers and viem when you only need basics
- New 100-line RLP parser
- Very friendly debugging experience
- Tested against 150MB of vectors

https://github.com/paulmillr/micro-eth-signer
/dev
New uniswap drama: the lawyers sent takedown notices to legitimate forks that removed censorship.

If you are looking to embed uni functionality into your app, glance over micro-eth-signer (https://github.com/paulmillr/micro-eth-signer) .It allows to call Uni contract directly, without censorship, in 10 lines of code.
/dev
Ethereum ABI parsers are vulnerable to DoS.

It’s also possible to inject information in transactions, hidden from parsers. This allows tracking users across different wallets and even stealing private data.

Details in a new article. https://github.com/paulmillr/micro-eth-signer/discussions/20
/dev
Last month, we've collaborated with Starknet and released a new addition to
"scure" family of audited libraries. The audit was done by Kudelski security.
The package includes stark curve and poseidon / pedersen hashes. Check it out:

https://github.com/paulmillr/scure-starknet
Someone published NPM fork of noble-curves (and ethereum-cryptography) that sent private keys to a server in China. Be careful and check for typos

https://blog.phylum.io/typosquat-of-popular-ethereum-package-steals-private-keys/
MLS is a new open protocol for e2e encrypted group messaging. Think of it as Signal ratchet v2023, or OTR.

Did you know Signal group chats are basically a bunch of 1-to-1 messages? Not very efficient. The new protocol has just received the RFC number and will improve on that.

https://blog.phnx.im/rfc-9420-mls/
Announcing noble-ciphers: tiny 0-dependency cryptographic library, implementing
Salsa20, ChaCha, Poly1305, AES-SIV and others.

Bonus: a reasonable wrapper around native WebCrypto's AES.

Check out its README for some insights: https://github.com/paulmillr/noble-ciphers
What’s happening?