Content
@
https://ethereum.org
0 reply
0 recast
0 reaction
sudo rm -rf --no-preserve-root /
@pcaversaccio
1/ From time to time I take a look back and think it's a shame that we didn't try hard enough to prevent reentrancy attack vectors in the early days (to be clear, it's still an issue today!). There is this example of the Bamboo smart contract language written in OCaml (https://github.com/cornellblockchain/bamboo).
1 reply
0 recast
4 reactions
sudo rm -rf --no-preserve-root /
@pcaversaccio
2/ Unfortunately, it has not been maintained since _2018_. BUT, iirc, they were the first to build a built-in reentrancy guard into the language. It was pretty simple how it worked: every time you called an external address, you had to specify what would happen if you were called back via the keyword "reentrance".
1 reply
0 recast
0 reaction
sudo rm -rf --no-preserve-root /
@pcaversaccio
3/ Fortunately, Vyper took this opportunity and added the `nonreentrant` decorator in February 2019 (https://github.com/vyperlang/vyper/pull/1264).
1 reply
1 recast
0 reaction
sudo rm -rf --no-preserve-root /
@pcaversaccio
4/ For anyone claiming that reentrancy is a feature and not a bug at the _language-level_, I recommend taking a careful look at my chronological and (hopefully) complete list of reentrancy attacks to date: https://github.com/pcaversaccio/reentrancy-attacks.
0 reply
0 recast
0 reaction