Just wanted to give a quick update on the work I’ve been doing. I found I was struggling to write the front end piece for my keccak variant so I instead used the shake256 solidity code that @rdubois-crypto provided in their link and made some minor modifications. It’s increased the gas consumption but I can now verify the NIST falcon signatures on chain (anvil). The 1024 version consumes just over 15 million gas while the 512 version consumes a little over 7.4 million gas. This is only with local testing and just a single test case for each for the time being so there could be some variation to that. I’m going to do some more testing before I publish the updates to my public repository but hope to provide those updates later this month.
I have updated the github repository with code that will work for falcon-512 verification on chain using SHAKE256. Once again that link is GitHub - Cointrol-Limited/QuantumAccount: An implementation of an ERC4337 wallet that uses FIPS 206 (falcon-1024) for signature verification
I have also published the contract on Sepolia and updated etherscan with the contract details. That can be found here: Address: 0x6f70f347...3Ea76dB45 | Etherscan Sepolia
I plan to release a free wallet in sepolia in the next week that uses the facon-512 implementation for anyone to try out.
I have just made another update to the repository link above. I was able to reduce gas consumption a further 37%. Falcon512 verification now uses ~4.7 million units of gas while Falcon1024 uses ~9.2 million. I also removed the public key encoding/decoding to reduce that consumption. Loading a public key now consumes ~1.1 million gas for 512 and ~2.7 million gas for 1024.
This is an intelligent move. The rumors of some entity breaking btc’s ECDSA encryption scheme last July 4th, rippled quickly, not due to the impact of such a profound notion - the event actually happened. And the result was some anon actor using a legal shield to cover for a technical engineering flaw.