Conversation

Someone stole $320M in crypto, and apparently the root cause was that whoever designed this thought it would be a good idea to check for signatures by *retroactively checking that the previous instruction was, indeed, a signature check*. What‽
Quote Tweet
Within "verify_signatures", the Wormhole program attempts to check that the thing that happened right before this function was triggered was that the Secp256k1 signature verification function was executed: github.com/certusone/worm
Show this thread
15
450
I love how these people are using Rust and then building layers upon layers of second- and third-systems on top that are a fragile mess. And if they make a single mistake hundreds of millions of dollars just vanish.
4
163
I'd say you'd think they could afford to hire security people who know what they're doing to tell them what they're doing is insane, but 1) security people who know what they're doing don't want to touch this with a 10ft pole, and 2) they'd ignore whatever they say anyway.
6
160
Replying to
twitter.com/DanielMicay/st It's an unworkable approach. I don't see how users can ever be expected to vet complex ad-hoc smart contracts even if they're developers familiar with the platform. It'd be hard enough to get it right once let alone everyone building their own contracts.
Quote Tweet
Replying to @0xabad1dea
There's a huge difference between the simple smart contracts supported by Bitcoin such as 3-of-5 multisig which becomes 2-of-5 multisig after 5 years vs. writing complex contracts in the equivalent of JavaScript where you're near guaranteed to have bugs/deficiencies ship with it.
1
5
Replying to and
A standard tiny set of conditions that's agreed upon for an application like payment channels (such as Lightning's 2-of-2 multisig and timelocks) is scary enough and deserving of an immense amount of review and debate over years. People have gotten way ahead of what's reasonable.
1
4
Replying to and
General population has little clue about how software works and there's way too much faith in open source conferring magical security properties. We don't have means to verify those kinds of things are secure and simply securing a base protocol is already a hard unsolved problem.
4