(EIP-1155) Transient Storage on Op-Geth
(EIP-1153) Implementation of Transient Storage in Optimism-Geth
Screenshots




Problem Statement
Implementation of Transient Storage in EVM using op-geth codebase (go-ethereum fork) for development. Transient Storage is defined within EIP-1153 as a temporary state storage mapping that only exists for the duration of a single EVM transaction. All contracts within a transaction call graph will have access to the same transient storage. Transient Storage supports constant gas costs (100 gas) for reads and writes; making it a more effective substitute than standard contract storage for transaction contextual data. The project produces a MVP example showcasing Transient Storage used to block a re-entrancy attempt from a malicious callee contract.
Solution
Go-ethereum or Ethereum node implementation is the only real technology used. Execution of Transient Storage was verified through a series of unit tests and manual tests that emulated re-entrancy guarding from one contract to another. Transient Storage is constructed at the beginning of a Ethereum state transition and propagated through the EVM during contract calls.All test bytecode was written from scratch using public opcode references and EVM playground. Re-entrancy guard test case also bootstraps minimal world state with necessary contract bytecodes.
Hackathon
ETHSanFrancisco 2022
2022
Contributors
- obscuren
3951 contributions
- karalabe
2708 contributions
- fjl
1468 contributions
- holiman
847 contributions
- tgerring
569 contributions
- rjl493456442
472 contributions
- zelig
377 contributions
- MariusVanDerWijden
265 contributions
- CJentzsch
226 contributions
- debris
212 contributions
- gballet
208 contributions
- zsfelfoldi
192 contributions
- protolambda
154 contributions
- s1na
137 contributions
- jsvisa
121 contributions
- ucwong
115 contributions
- lightclient
97 contributions
- nonsense
95 contributions
- janos
81 contributions
- sebastianst
70 contributions
- jwasinger
69 contributions
- ajsutton
68 contributions
- acud
53 contributions
- gluk256
53 contributions
- trianglesphere
52 contributions
- renaynay
47 contributions
- gavofyork
44 contributions
- Arachnid
42 contributions
- aaronbuchwald
38 contributions
- sandakersmann
36 contributions