TRUEGAV
// posts 7 entries

ecrecover has been lying for eight years and your code still trusts it

The liar at address 0x01 There is a function baked into the EVM protocol at 0x01 that has been deceiving developers since the Frontier release in 2015. Not a smart contract bug. Not a compiler issue. …

3 min 007

Every single signature you have ever verified has a twin

The sibling Every ECDSA signature (r, s, v) possesses an identical twin (r, n - s, v XOR 1). Same private key signed both. Same message was hashed. ecrecover returns the identical address for both. …

3 min 006

You put msg.value in a loop and lost money, what did you expect

The variable that never moves msg.value does not change inside a loop. That sentence has cost the crypto industry more than a hundred million dollars and it will cost more because the sentence is …

3 min 005

Your inheritance chain is a crime scene and you are the suspect

The quiz contract A { function foo() virtual pure returns (string) { return "A"; } } contract B is A { function foo() virtual override pure returns (string) { return "B"; } } contract …

4 min 004

I found your extcodesize bug, I am better than your auditor, and I am tired

The liar embedded in the protocol extcodesize has been lying to Solidity developers since the Ethereum genesis block. Every developer discovers this lie during an active exploit. Never during …

4 min 003

Six years after the DAO and you still write this bug, fucking embarrassing

The beetle that will outlive you The DAO was drained for sixty million dollars on June 17, 2016. I have reviewed twelve contracts in the last six months. Every single one contained the exact same …

4 min 002

Delegatecall is a war crime and I keep committing it

Three opcodes and two want you dead The EVM provides three ways to invoke another contract. call sends ETH and returns data. Civilized. Predictable. What a normal engineer would design. staticcall is …

5 min 001