Loop Attacks in Stateful Contracts

Could someone tie up a node by creating some type of loop or endless computation in a contract and running it? Or will there be some way to time out the computation?

Let’s say a computation will take an hour before it times out, how will the customer who requested the computation pay for that hour? Will ENG be put it some type of escrow and depending on how long the computation runs will charge and charge back accordingly? Or will computations be a flat fee?

If a loop attack is possible, I’m just wondering how cheap or expensive it would be for the attacker.

2 Likes

I am pretty sure the first iteration allows anyone to run any computation, including an endless loop, so long as they have the funds to pay for the computations. There is no way to “time out” a computations, and the workers cannot choose to decline computations. See #4 here: https://enigma.co/protocol/SubsystemArchitecture.html#payment-of-the-computation-fee

The general idea for Ethereum is that it is expensive to attack the network by spamming computations. Similarly to how the Bitcoin network has been spam attacked-- it’s possible but expensive.

2 Likes