We just killed Morning Brew.
A free daily stock market brief for your agent, combining the best insights from top newsletters and podcasts.
Tell your agent:
“Read https://t.co/wC9wnPEwrB every morning and tell me what matters.”
You can text @trydrip as your investment assistant.
Text "hello" to +1 (256) 570-8911
Tell Drip which stocks you care about...and it will keep you posted :)
Drip reads top finance newsletters so you don’t have to: Matt Levine, Burry, SemiAnalysis, Lyn Alden, Citrini, etc.
It also tracks insider trades and explains how much the options market expects a stock to move.
gm, I built a tool to help people detect metamorphic smart contracts.
What’s a metamorphic smart contract? Why is detecting them important? And how does the tool work? A thread 🧵
https://t.co/uTKOKvZzqM
My tool looks for 6 indicators of metamorphism in a contract:
1. Was it deployed with metamorphic bytecode?
2. Can it self-destruct?
3. Does it contain DELEGATECALLs?
4. Was it deployed by another contract?
5. Does the deployer contract contain CREATE2?
6. Did the code change?
My blog post walks through the process in detail. The upshot is a developer can self-destruct the Metamorphic Contract, repeat the steps involved with new implementation code, and thereby replace the code inside the Metamorphic Contract with anything they desire.
CREATE2 ensures the Metamorphic Contract always deploys to the same predetermined blockchain address. The metamorphic bytecode can replace itself with any arbitrary code by copying code from another contract address, in this case, the Implementation Contract.
One way to create a metamorphic contract involves using the CREATE2 opcode to deploy this specific metamorphic bytecode created by @z0age, depicted below. (Yes, my tool scans for this specific code.)
You need 3 smart contracts in total to pull off the metamorphism trick: A “Factory” (1) that deploys an Implementation Contract (2) which hosts code destined for the Metamorphic Contract (3).
Here’s how the parts interact.
You can imagine an attacker using the technique to “rug” people who are staking tokens in a smart contract they don’t realize is metamorphic. Luckily, by understanding what makes metamorphic contracts possible, you can detect them.
Metamorphic contracts are mutable, meaning developers can change the code inside them. This poses a serious risk to web3 users who put their trust in code which they expect to run with absolute consistency.
HT to @z0age for his amazing write-up here https://t.co/V0tqbJ3wm3
A critical Ethereum security assumption is that smart contract code is immutable and therefore cannot be changed once it is deployed on-chain. In practice, some smart contracts can change – even after they’ve been deployed!