Potential vector of attack to look for, not an exploit. Thus, flagged.
Vector of attack for future contracts but already impacts the DAO.
21–30 of 180 posts
Potential vector of attack to look for, not an exploit. Thus, flagged.
Vector of attack for future contracts but already impacts the DAO.
I don't understand "you can't assume anything about the state of the contract." Surely the contract's state is only modified by the contract's own code, which means you can assume that the state is not altered arbitrarily but only according to the rules set up by the contract. Yes, you need to be careful about external calls that make altering calls to you.
None of these "exploits" really sound much more dramatic than using a database without transactions
Pretty much this: http://www.thespanner.co.uk/2011/05/30/json-hijacking/
The answer to this is that mutation needs to be kept under control. Immutable data structures in mutable buckets. Locking around the data that mustn't change. Deep copy all state before calling out. And so forth.
This is basically an understood problem and I'm a bit appalled that Ethereum didn't build protection against it into their design.
Gotta love unexplained acronyms!
Seems like this is what mutexes were invented for
Nearly a year ago I made the comment -- "Who are these people[1] and what credentials do they have to build and run a cryptocurrency platform?" [1] https://angel.co/ethereum-1 Today, not a single cryptographer, mathematician, or anyone with software security experience is listed on the Ethereum Foundation member list[2]. I am not attacking any individuals by themselves, but as a group this says a lot. For the record,…
I'm messing around with contracts to do about a dozen different things, and it turns out to be easy to meet this restriction, as long as I'm willing to design the UI accordingly. (E.g. don't send money to lots of users in one step, just update their balances and make them call a withdraw function.)