5

Here is the transaction details that has transaction fee for 2,100 Ether ($309,267.00) only for sending 0.1 Ether.

There is no fairness for users, hence accidentally adding a zero might cause them to lose thousands of dollars.

enter image description here


[Q] How and why is this possible? Why Ethereum does not provide any protection mechanism for paying very high transaction fees and why there is no limit for that?

Since it is a mistake done by the user, why Ethereum does not provide any payback/refund mechanism?


From this comment, it seems like it is not an accident.

My guess is they have their own block and they add the 300k to it as a fee. They DO NOT broadcast this transaction out, they are the only ones that know about it and are the only ones trying to mine the high fee transaction.

Now they start mining that block, everytime a new block is found by the network(not them), they move their transaction to the new block and start mining it, NEVER broadcasting this 300k transaction fee, sooner or later they will solve this block and the 300k fee they never broadcast ends up inside the block as valid on the network.

Once the block is mined, they hurry up and broadcast it to the network, which makes every transaction inside the block valid, including the secret one they kept from the network while trying to mine for it for days.

This ETH address has other high fee transactions another one for 420 ETH fee. All these blocks were mined by the SAME miner. The odds of this being a accident = ZERO.

  • 1
    Ha :-) Very good :-) (The details in your edit.) – Richard Horrocks Feb 20 at 8:48
3

How and why is this possible?

The user set a value of 0.1 ETH (100,000,000 Gwei) as the gas price. It's possible to set the gas price to anything you want.

Why Ethereum does not provide any protection mechanism for paying very high transaction fees and why there is no limit for that?

It's likely that certain wallets do prevent such mistakes from being made by setting upper limits to gas prices, or warning users before they confirm. (Or just outputting the associated dollar price that the transaction will cost, which the user can see and use to take corrective action.) It's possible the user was using the CLI or an interface that didn't provide any warning or feedback.

Since it is a mistake done by the user...

How do you know it was a mistake?

In this case we can probably all agree that it was a mistake. But how large would a transaction fee have to be before we can all agree that it's a mistake? What if I send a transaction with a slightly higher fee than normal - because I want my transaction to be included in a block promptly - but then change my mind? Should I be able to claim it was a mistake? Where's the line between a mistake and deliberate action?

..., why Ethereum does not provide any payback/refund mechanism?

Because you'd need some sort of social consensus or governance mechanism that would judge whether a transaction is deserving of being reversed.

Because the same mechanism could be used to censor certain transactions and users.

Because it could probably be used as an attack vector. (I pay you for some goods, I use the refund mechanism to get my money back, while walking away with the goods as well. Or at least something along those lines.)

2

The Ethereum network allows you to set two variables when sending a transaction: gasLimit and gasPrice. The transaction fee, which is 2,100 Ether in this case, is equal to gasLimit * gasPrice.

gasLimit is the amount of gas to send in order to complete a transaction. For example, if your transaction to a smart contract needs 100,000 gas, you will send a gasLimit of 100,000.

gasPrice is the price you are willing to pay to get this transaction accepted by the miners. You can set this variable to be whatever you want, but it will not be picked up if it is too low (meaning other people keep offering a higher gasPrice than you). Miners will choose the transactions with the highest gasPrice so that they will be paid the most for their work (their payment for including the transaction in a block is the transaction fee mentioned above). See this list of pending transactions and their associated gasPrices.


The above explains what the use of these variables are. Now, to answer your questions:

How and why is this possible?

This is possible because the sender used a very high gasPrice on the transaction. In this case, they used 100,000,000 Gwei (For reference, the average gasPrice at the time of writing is ~5 Gwei).

It is possible because Ethereum was designed to give users flexibility when sending transactions.

Why Ethereum does not provide any protection mechanism for paying very high transaction fees and why there is no limit for that?

There are many scenarios in which one may want to adjust these values at a very granular level. Because of this, Ethereum does not limit what you can do. What does happen, however, is blocking on the client side. If you use a service, such as MetaMask or MyCrypto, you will see that they send the average gasPrice by default when sending a transaction. Additionally, you must go to "Advanced Settings" in order to change the gasPrice to a number similar to that of the transaction in question.

This transaction was likely performed programmatically, as opposed to through the use of a client.

Since it is a mistake done by the user, why Ethereum does not provide any payback/refund mechanism?

When used correctly, this gas mechanism is very effective in the processing of transactions. In fact, it is part of the incentive for miners to mine and secure the network. Like many things in life, if used incorrectly or abused, it has potentially undesirable consequences.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.