Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

So, how do you cancel a transaction with such an obvious mistake when it is recorded on a blockchain?

(This is a rhetorical question.)

EDIT: Why the downvotes? It's not okay to discuss the fact that in the possibility of human error (assuming this is one, and not a very wild —yet successful— bet on a laundering attempt), the incapacity to cancel transaction may be a problem?



You can ask Buterik to roll it back for you. He did it once for the DAO guys, so worth a try.

(Of course, that rollback also demonstrated that Ethereum is a centralised coin with a controlling entity, and that 'code is law' is just a lie, but that's another story)


No it didn't demonstrate that. Vitalik et al reached consensus for rolling back the DAO hack. A major reason why they reached consensus was that so many players had a vested interest in the rollback. If Vitalik had tried to push something unpopular, he wouldn't have been able to push it through, because - in contrast to your claims - Ethereum is not a centrally controlled blockchain.


The only difference between this and an attack is that the purpose was altruistic. It's one thing to shift to new/updated infrastructure, it's another to manipulate blockchain transactions. We just have to hope that Vitalik or whoever holds the most sway over Ethereum doesn't ever act in bad faith (in a way that may not be immediately discernable to others).


It’s increasingly hard for any person to have that much influence with so many different client implementations for Eth2, and the nodes will have to accept those changes, whereas Bitcoin is pretty much Bitcoin Core.


I guess you'd better hope you're never on the wrong side, politically, from a majority of ETH miners.

"This guy who we all hate now owns $100MM in ETH? Now he doesn't."


This is also how nation states work. And it takes probably far fewer people, less time, and can be done in secrecy when the US wants to enact a sanction and freeze accounts than it does to hard-fork ethereum.


Yeah they can always coordinate, but these things are never so clean. They'd also need to be convinced it wouldn't undermine the network faith in a way against their interests, beyond being a well hated figure. And that no fork would emerge reinstating the person (as their deed is far from hidden)


Yeah, miners and node operators. That’s how this has always worked.


Miners can't just take money out of your account without your consent. That would require a change to how the protocol works.

At best a cabal of miners could censor you by refusing to include your transactions into blocks, and refusing to mine on top of any block that includes your transaction. But only while they maintain a majority of hashing power.


> Miners can't just take money out of your account without your consent. That would require a change to how the protocol works.

But that's exactly what we were talking about: hard forks that change how the protocol works. The parent comment that you responded to is correct in that theoretically a majority of miners could fork Ethereum to steal $100M from a single person.


The majority of nodes/users (not miners) would need to switch to the miners' new fork. Otherwise if the miners mined a block that doesn't follow the current protocol, it would be an invalid block and rejected by the network.


> The majority of nodes/users (not miners) would need to switch to the miners' new fork. Otherwise if the miners mined a block that doesn't follow the current protocol, it would be an invalid block and rejected by the network.

In the event of a contested hard fork both chains would continue to live, because some miners would mine chain A, and some miners would mine chain B. Yes, miners who mine the old chain would not accept blocks from miners who mine the new chain, you are correct about that, but the same statement holds true in reverse: miners who run the new chain would not accept blocks from miners who mine the old chain.

If a majority of miners decided to steal $100M by forking the chain, they absolutely could do that, even if the majority of users would support the old chain. In that event the tokens (which used to be worth $100M) would now exist on both chains, and it would be up to the market to decide how much the tokens are worth on each chain.


You don't need a majority of miners to create a hard fork. I still maintain it is up to the majority of nodes/users to determine if it is valid. If there has been a hard fork then by definition the network has rejected an invalid block(s). It is up to nodes/users to determine which network is "the" coin and thus mining valid blocks.


> You don't need a majority of miners to create a hard fork. I still maintain it is up to the majority of nodes/users to determine if it is valid. If there has been a hard fork then by definition the network has rejected an invalid block(s). It is up to nodes/users to determine which network is "the" coin and thus mining valid blocks.

Nope, I was very clear that in this context there is more than one network, so expressions like your "by definition the network has rejected invalid blocks" doesn't make sense. Network A rejects blocks by network B, and network B rejects blocks by network A. There is more than one network. You don't need to look further than Ethereum Classic to see that this can happen in practice. The "minority chain" doesn't just disappear magically.


I think we are losing track of the original claim which was miners could steal $100M from a user. Let's say I create a fork (network B) in which a user's account is set to 0 and mine has the amount that the user once had. In no sense have I stolen $100M from the user if it's on a chain that people don't recognize as being the one that represents the user's money (network A).

The original implication was you don't want to piss miners off otherwise they can unilaterally decide to take your money away. That is false.


> The original implication was you don't want to piss miners off otherwise they can unilaterally decide to take your money away. That is false.

If you are retreating your argument to that goal post, then we are in agreement: pissing off miners will not result in miners stealing your money. Your original argument was stronger, however. You were asserting that a minority-supported fork would not be able to steal money, which is not true.


I'm not retreating anything, that is still my assertion. The miners alone cannot delete your money. That was the original claim[1]. My responses[2] from the beginning have been addressing that.

It is a common misconception that miners, because they are the ones who produce new blocks, have power over the network and set the rules. That is not the case. Miners determine the order and inclusion of __valid__ transactions. Deleting your money would require a fork. Even if a majority of miners mined their own fork but didn't get users/nodes on board they would be wasting their time on what is essentially an altcoin that they alone care about. The network would ignore them and your $100M has not been deleted because it still exists on the chain everyone actually cares about.

There are only so many different ways I can state the above idea (going-on 4 times in this thread alone). If you still disagree, then I'm sorry I wasn't able to explain it any better. I'm going to politely decline from responding any further to this thread because I think we are just wasting each others' time.

[1]

"I guess you'd better hope you're never on the wrong side, politically, from a majority of ETH miners."

https://news.ycombinator.com/item?id=28678451

[2]

https://news.ycombinator.com/item?id=28681802

https://news.ycombinator.com/item?id=28682258


You're talking about minority-supported forks as if it was some kind of hypothetical scenario, where these forks couldn't possibly have any value. But it's not a hypothetical scenario, it's a scenario which has occurred multiple times in practice. So we don't have to discuss in hypotheticals about whether those minority-supported forks would have any value or not; we can look at what actually happened in those instances. For example, Bitcoin Cash right now has $9B market cap (not $0, like you imply).


The original claim was simply that the miners could delete $100M, not that a single person could unilaterally steal it.

I think it's not impossible to imagine miners and nodes voting to hard-fork a coin because some genocidal villain, Mr LiterallyHitler, had a large amount of wealth wrapped up in it.


Technically wasn’t a rollback but my understanding is it was a state change, and was done with community consensus via carbon vote.

Let’s not mention what Satoshi did in 2010 with the 184 billion BTC hack though ;)


You're getting downvoted because it's a longtime well-known problem of the blockchain. The answer to your question is that nobody can reverse the transaction or undo it. That's kind of the point, for better or or for $23m worse.


Please don't go on about downvotes—this is in the site guidelines: https://news.ycombinator.com/newsguidelines.html.

If the downvotes were inappropriate, other users will usually correct them (https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sor...), but off-topic, guidelines-breaking complaints like the one you added don't get garbage-collected when that happens, so they linger on, adding noise to the thread.


It’s pretty easy to revert it: you fork the protocol. The ETH guys already did this once, hence Ethereum Classic.


The idea that the code maintainers get to decide which transactions are valid or not is insane. Almost as insane as saying an 'easy' fix is to arbitrarily fork the chain undermining it's whole purpose.


I'm not defending anything here but adding context. It wasn't JUST the "code maintainers." They made a proposal and all of the nodes "voted" by opting in or out. A lot of them opted out (Eth Classic) but majority usually wins in these situations. Did certain entities have more influence or power in this situation, yes 100%. Is that better or worse then how it would play out in standard US finance system? I'm not sure, you decide.


USD doesn’t split into two different competing currencies when a transaction has to be reversed, so I think the ethereum solution is clearly worse.


You can roll back Ethereum transactions without forking the blockchain if you build the rollback mechanism into your settlement contract.

There isn’t anything to “fork” in USD since it isn’t a blockchain, but different USD settlement layers get out of sync and have to be manually reconciled. If you instead tried to “fork”/replicate USD in that situation, you’d probably be thrown in jail for life. I personally prefer the blockchain way of expressing my option through code and seeing if anyone wants to follow me and not having to ask for permission.


The new kingmakers are the stablecoins. Whichever chain they decide to honor has a huge amount of economic weight behind it.

How much of this economic weight is real, at least in the case of Tether, is another story. I suspect we'll find out in the next few years as regulation ramps up.


> undermining it's whole purpose

Quiet, now. We don't want people to know about systemic risks to crypto.


And Ethereum Classic has a nice solution: 51% attack and mine the txn yourself.


I'm guessing you're also getting downvoted because sarcasm and rhetorical questions and not great ways of starting meaningful discussions.


Can't anyone ask question to HN Gods without fear of being ridiculed? I am also curious about this myself.


Yes you can, but that wasn't a geniune question.


I'll answer even if it's rhetorical, but there are some blockchains (I used to work for one) that allow arbitrary state transitions as long as it's approved by an approved authority.

Now, Ethereum has another way to fix this: forbid transactions that use a gas fee MUCH MUCH larger than the current average one.


if it's mined the only possible way would be to bribe the miners to revert the blocks by paying even more (like time bandit attack) or renting soooo much hashpower to create your own fork.

If it's not included yet you need to send another transaction with the same nonce that sends yourself 0 ether but with a higher gas price asap, this is not a guarantee however because the miner would probably still go with the transaction that is more profitable for them and because the fee was so high it got included in under 1 minute.

So once this transaction landed in the (public?) mempool it was gg.


And sending a tx with a fee bigger than $23m wouldn't actually fixed their problem


Reversing transactions is massive problem in finance in general. It causes losses for merchants in both physical shops and online sellers because there's no objective measure of whether a transaction was a mistake or not so it's begging to be abused for fraud. Even if a court decides, somebody still loses when both parties had different expectations. People have overpaid wages or social welfare payments taken back from them after they already assumed it was correct and spent it, and are now in a big debt. People accidentally sign contracts that require them to pay more than they expected. There's fraud where people buy an item online, then claim they never received it and get their payment refunded while keeping the item.

Here's an example of traditional finance screwing someone over for making an obvious mistake. Where's this ability to reverse transactions when you need it? https://www.livemint.com/opinion/online-views/a-fascinating-...

You're assuming there's some benevolent God who can arbitrate who's right and who's wrong. In reality, people get screwed by bad payment reversal decisions all the time and there's no objective way to decide in every case.


> You're assuming there's some benevolent God who can arbitrate who's right and who's wrong

Literally nobody assumes this. Please don't invent strawmen.

The point is, even with all the failings of the courts, different interpretations of language, and every other flaw, it's still better than having no recourse at all.

> There's fraud where people buy an item online, then claim they never received it and get their payment refunded while keeping the item.

And of course, the blockchain solves none of this. It just makes rectifying the problem far more difficult.


> > There's fraud where people buy an item online, then claim they never received it and get their payment refunded while keeping the item.

> And of course, the blockchain solves none of this. It just makes rectifying the problem far more difficult.

Web3 stores would use an escrow service for physical goods where the buyer's money goes into the escrow contract and gets released to the seller when the buyer receives the item. In the case of a dispute it would summon a Kleros jury of say 30 jurors who would look at the presented evidence and come to consensus on an outcome. A lot of these problems have already been solved in a decentralized way but it's still early days so higher complexity projects take a while to come to fruition.


How would any reversals be decided without a benevolent God? I've shown that traditional finance can't do it "correctly". Apparently smart contracts can't either. Courts can't because the law is sometimes ambiguous and unknown before it's tested in court. Traditional contracts can't because people get tricked by not reading the fine print. I think nobody can except an imaginary benevolent God.

If you just call the boss of reversals and say "sorry I made a terrible mistake, please reverse the payment", how can he trust that you're not the fraudster yourself? Even in the case in this article, how can any 3rd party truly know that it was a mistake and not just someone pretending it was a mistake so they can get it back?

Blockchain solves the problem of chargeback fraud. It's one specific class of fraud but it's solved by that technology even if other classes of fraud are created.


Not in every case, for sure. But many cases are pretty easy to arbitrate. This one for example: when the transaction fees 230× greater than the transaction amount, it is fair to assume that is was not meant to be that way. If I loose my credit card and/or it gets stolen, and someone uses it in the time between when I declare I lost it and when it is blocked, my bank is required by law to refund me (and I guess my bank attempts to get their money back too, but that's not really my problem).

Also:

> There's fraud where people buy an item online, then claim they never received it and get their payment refunded while keeping the item.

A blockchain can't solve that kind of problems. And it never will. It is not because something is written on a blockchain that it is true, except for cryptocurrencies because that is how they define truth. But as soon as you have something happen in the real-world (in your example, an item sent in exchange for a payment), then a blockchain is useless, or at least, it is not any more useful than any type of ledger.


Everyday credit card users who rely on the bank to protect them from fraud should not be using cryptocurrency directly. They also should not carry their money around in cash, yet cash still exists and people can take personal responsibility for the risk of loss if they choose.

A blockchain can solve "didn't receive the item" fraud because the merchant has the payment before they send the item and can refuse to refund it. Of course it creates a new kind of risk for the buyer, but that's not what we're talking about here.


It's inevitable that transactions made in error cause problems for the sender or receiver or both, but it is still better to have a human judge scrutinize the case with the ability to impose a more reasonable outcome than the status quo, than to have no such recourse. The position of defi fans that it is better to have no such recourse is ludicrous.

Your example is a good one: that particular case was carefully scrutinized by the court and the judge decided that the outcome was reasonable, mainly because the creditors who received the money were owed the money. If the outcome was obviously unreasonable, e.g. Citibank had simply sent $1B to some random address, of course the judge would have reversed it.


>Here's an example of traditional finance screwing someone over for making an obvious mistake. Where's this ability to reverse transactions when you need it?

It still exists, and note that the case did reach a court. It just happens that the beneficieries were also owed that money, and that allowed them to win the subsequent lawsuit:

https://clsbluesky.law.columbia.edu/2021/02/24/how-the-litig...


If you’re in the financial transaction business, a big chunk of the service you provide is dispute handling, people tend not to realize this. It isn’t a simple cost of business or side service, it’s a primary competence of anybody responsible for handling money.


Yes, that's why it's a big problem. They also often make the wrong decision and leave people screwed over. Just look at all the complaints from Ebay sellers who got ripped off by Ebay siding with the fraudulent customer. There are cases where the seller can't trust the buyer and the authorities that are supposed to be arbitrating disputes can't be bothered doing their job because it's too hard. That's where crypto's non-reversibility is useful.


You negotiate with the recipient of the transaction to return the money.


The fee went to the miner, not the recipient of the transaction. So probably an anonymous mining setup that has little incentive to return $23M


That sounds like a lot of trust to put on someone in a “trustless” system


It's the exact same flaw as cash. If you mess up and send it to the wrong person in the mail or set it on fire, there is absolutely no recourse, unless there's someone to sue maybe.

As long as you understand that I don't see the problem. I use cash a lot myself. Of course, we basically did invent the entire banking system to get away from the many downsides of literally lugging bags of gold around, like theft and loss without recourse.


Yeah, I hate it when I accidentally pay someone 6 orders of magnitude more than I meant to when I’m using cash. Just like cryptocurrency!


Citibank managed to do it with USD and still hasn't gotten it back.

Meanwhile in this case the miner gave back the money so maybe the tech isn't the issue?


Once it's recorded on the blockchain, there is no way to cancel it.

If they are lucky, they may be able to reach out to the miner and get a portion returned. Probably just tough luck though.


Unless you just get the devs to write it out of existence and fork the chain.


it varies from coin to coin.

in limited cases you can perform another operation which makes the preceding operation illegal.

in normal cases, not being able to cancel is the entire point of the technology.


You're pointing out an obvious major flaw with blockchain that is a consequence of what many in the crypto community believe to be an advantage, namely that your assets cannot be seized without your private key.

Your post is basically this, but less humorous so people are upset. https://xkcd.com/538/

So to answer your question, how you revert this transaction is to buy $5 wrench and go have a conversation with the miner.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: