Hacker News new | past | comments | ask | show | jobs | submit login
Stop Saying Bitcoin Transactions Aren’t Reversible (elidourado.com)
178 points by tlo on Dec 5, 2013 | hide | past | favorite | 80 comments



Sigh. The author misses the point.

Amex can tell a Bank which is analgous to the BitCoin Wallet in this case, to move your money from it into some other Bank, whether you agree or not based on your agreement with Amex and the Bank's agreement with Amex. Nobody can 'force' a BitCoin wallet to transfer funds without the express permission and co-operation of the person who has the wallet's secret key.

So in the example, seller and buyer agree on an escrow agent, seller sends merch, buyer says they got it, transaction completes, but if the buy then discovers that the transaction was fraudulent [1] then there is no way for them to "force" the seller to give them back their money or, in the parlance of payments markets, "reverse" the transaction. Can't do it unless the seller initiates a new transaction to send you the funds back, and if they don't or won't, you are out of luck.

[1] (say only the top layer of kilos were cocaine and the layers below that were just corn starch)


> So in the example, seller and buyer agree on an escrow agent, seller sends merch, buyer says they got it, transaction completes, but if the buy then discovers that the transaction was fraudulent [1] then there is no way for them to "force" the seller to give them back their money or, in the parlance of payments markets, "reverse" the transaction.

I think you are missing the point since the same is true of credit cards. Credit cards typically freeze the merchant's money until a given chargeback period is over or they require the merchant to always have a minimal amount of money in their bank account. Even a credit card company can't reverse a transaction if the merchant's bank account is empty. At best, they can refund the buyer out of their own pocket.

With Bitcoin "escrowed" transactions, all those schemes are possible. If a buyer wants to be able to reverse a transaction after X days, "chargeback period", he can simply wait X days before he signs the transaction. If he doesn't file a complaint within X days, the escrow is authorized to sign the transaction. Obviously, the "chargeback period" should be agreed upon beforehand between the seller, buyer and escrow.


I can only speak for the experience in US banks, your statement "Even a credit card company can't reverse a transaction if the merchant's bank account is empty or if they do, they do so at their own cost." is not true. Bank accounts can, and do have negative balances[1]. Both the banks and the credit card companies, are in a position to attach liens, refer to collections, and generally destroy the credit worthiness of an individual or a merchant as a result of a dispute between the merchant and a customer, as a result of a chargeback. The bank may be left with an unfunded liability, but they are equipped with a number of legal ways to collect on that from the individual who opened the account. The entire banking industry is built upon the singular question of when and how liability is transferred. Further that structure is backed by the enforcement arms of the government which has licensed the bank. This is underneath the level of what the typical retail banking customer sees or experiences.

You pay someone in cash, and they rip you off, there is no way for you to get your money back except to sue them, send some enforcers around to threaten them, or to steal something of theirs of equal value and sell it. This is exactly the same way BitCoin works. It was designed that way, and it is the very definition of 'irreversible.'

Once a transaction is complete there is no way for it to be reversed without both parties participating in the process. And this is fundamentally different than a banking/payments system which is reversible.

Now it would be possible to create a structure using BitCoin that would have the property of being reversible, which is you bring a third party into the mix, a Bank, and create a series of regulations and rules about how and when transactions are voided and those institutions cause the reversals to actualize in the respective accounts of holders. But that is not how it works today. The current BitCoin payments system is equivalent to a bunch of people walking around with suitcases full of cash.

You can argue it is a 'strength' or you can argue it is a 'weakness' of BitCoin that completed transactions are not reversible, but it is a matter of fact that this is a fundamental difference between BitCoin as a payment mechanism and currency as a payment mechanism.

[1] I once participated in a long running conversation with Bank of America about this when the account in question was mine. Remember, just because you or I might not have any money in our account, it doesn't mean the Bank doesn't have any money it can give to the Credit Card company.


I feel it should be that way. Buyer flip flopping on whether the merch is acceptable opens up another type of fraud.


The fraud works both ways, seller to buyer, buyer to seller. But in the payments market it seems to be stacked in the buyer's favor.


Could this fundamental nature of bitcoin actually be used to create walled gardens? So that you take one bitcoin, divide it up and then have an official exchange rate between a restricted branch of bitcoin and everyone else. This would let you peg the value to something in the real world.


Yes I expect it could. If someone wants a throw away 'startup' idea, consider a baby sitting co-op using BitCoin. The notion of a babysitting co-op is not new, and a number of people you know will probably behaving babies soon, and there is the whole complex thing of trading hours for hours which as spawned such co-ops again and again. Often these things have token systems where you 'buy in' with some number of tokens/tickets and you 'cash out' by trading your tokens back in for cash. Do the whole thing with BitCoin and you've got yourself a very durable little system for what has historically been a cash only system.


No, you're misunderstanding how 2-of-3 multisig works.

http://bitcoin.stackexchange.com/questions/13841/how-do-i-us...


No, you missed the point. These two scenarios are effectively the same, if the buyer doesn't complete the transaction until after the same period of time as the chargeback window.

The only other difference is the credit card company may "loan" the merchant the funds while they are in "escrow".


Chargebacks happen after the transaction settled.


This is not 'reversibility'. It's a go/no-go system, basically the same as an escrow. The article is wrong in saying it's not escrow - the justification used is "the independent party might sod off with the money"; that is a downside to current escrow services when they go wrong, not the actual escrow function itself. Multisig offers the same basic function as an escrow: an independent third party signs off on the payment or the cancelling of it.

So, once a payment has been made, how does multisig reverse the payment, as the article title promises?


> Multisig offers the same basic function as an escrow: an independent third party signs off on the payment or the cancelling of it.

Multisig allows the escrow to do _just_ that, and nothing else with the money (at least, not without the buyer/seller agreeing to it). Regular escrow puts the funds under the full control of the escrow provider, where he _could_ do something else with the money, regardless of the buyer and seller wishes. I find this to be an important distinction.

> So, once a payment has been made, how does multisig reverse the payment, as the article title promises?

The payment is made to the multisig address and not released to the seller until the buyer is satisfied. If there are any problems with the sale, the buyer and the arbitrator could together send the money back from the multisig address to the buyer. You aren't exactly reversing the original transaction, you're creating another transaction that reverses the effect of the original one.

Disclaimer: I'm the creator of Bitrated.


> The payment is made to the multisig address and not released to the seller until the buyer is satisfied. If there are any problems with the sale, the buyer and the arbitrator could together send the money back from the multisig address to the buyer. You aren't exactly reversing the original transaction, you're creating another transaction that reverses the effect of the original one.

So it's just more secure escrow?


It doesn't really fall under the definition of an escrow:

    a bond, deed, or other document kept in the custody
    of a third party and taking effect only when a specified
    condition has been fulfilled.

    [usually as modifier] a deposit or fund held in trust or
    as a security
The arbitrator gets "voting power" in regards to deciding where the funds goes, he doesn't keep it in his custody nor he have full control over it. What Bitcoin allows to do is really unique, and was never possible before. When the money is in a multisig address, it isn't really "owned" by anyone.

Edit: perhaps you could say that its owned collectively by the Bitcoin network, that can decide to allow moving it elsewhere if a transaction that fulfills the Bitcoin rules is received. Under that definition, one could say that the funds are in an escrow controlled by the Bitcoin network as a whole.


If I understand correctly the independent third party is only needed in a dispute. If the buyer and seller are happy then completing the transaction does not require action by anyone else.

This delays payment until 2 of the three parties sign off. From the buyer's point if view that is reversibility. From the sellers point of view this is a delay in getting paid.


People complain that PayPal freezes merchants accounts. But PayPal only does that if the number of unsettled goods is too high. In this particular case it would always happen because parties would not acknowledge a transaction for a long time.

Chargebacks allow a merchant to get the money right away and still give the customer the option to reverse the charge a month (or more later) in case something happens.


Could the money really be considered the merchant's if PayPal can still come later and take it back?


PayPal does not come back later, that's the point of paypal. PayPal hedges against chargebacks and handles them itself. In case thinks you're above the average risk, it will start freezing your account temporarily. But they will never come back after 180 days and want your money.

On the other hand if you sell directly via credit cards, the credit card company can come to you after 180 days and want money back.


This is great. I had read about the M of N multi-signature support before but from what I understood, it was half baked and not supported at all. I'm glad to hear that it's usable.

Is there built in support for paying the mediator a percent or fixed fee from the transaction or is it expected the buyer or seller would just pay them in a separate transaction?

I paid for an asic bitcoin miner using bitcoins and after 10 months of non-delivery I really wanted to just get my money back but then I realized I couldn't. I had been so accustomed to being protected by credit card chargebacks and bank reversals that I just didn't think about a bitcoin payment as being non reversible.

It actually made me really cautious about paying for ANYTHING on the internet with bitcoin because it is so easy for the seller to rip you off.


Hey, I'm the author of Bitrated. Yes, currently you're expected to pay the arbitrator separately. I'm still thinking how to go about it exactly, and might improve that in the future.


I find this title misleading.

What this post describes is a 2-of-3 multisig, which adds further encumbrances in constructing a valid transaction.

But any transaction, once broadcast, is irreversible.


You are arguing on semantics. The word "transaction" in the title doesn't refer to bits and bytes transactions found in the blockchain but to the more common definition "an instance of buying or selling something". I agree that a better title would have been: "Stop saying that Bitcoin transactions have to be irreversible".


Every domain has domain terms: specialized knowledge and vocabulary.

Within payments, "transactions," "reversibility," "revocability," and "escrow" have definitions. Since BitCoin is in this space, I'd expect an article to use the domain terms from this space.

Yes, if you re-define these terms to mean something more colloquial, it may look like that. If you squint. But that doesn't make it not look amateurish.


Not to be pedantic, but that's not necessarily true; we've had 1 major chain split before that killed ##'s of blocks containing thousands of transactions.

And also transactions that don't make it into a block will just die if the original node doesn't rebroadcast it. So after 1 confirm it's mostly irreversible.


To be truly pedantic, those transactions were never Bitcoin transactions to begin with since they were never on the Bitcoin blockchain :)


To be truely pedantic, at the time they were on the Bitcoin blockchain, it wasn't until well after the incident started that the developers and pool owners decided to reject that blockchain (which was just as compliant with the stated Bitcoin rules and had a mining majority) and switch to the other side of the form.


That's pretty pedantic...


I'm sure it isn't pedantic to the recipients of transactions in the orphaned block chain


To be pedantic, those aren't really 'reversed transactions' so much as 'data loss'. It's not like specific transactions were targeted. If a bank incorrectly recorded a credit card purchase of yours, you wouldn't classify it as 'a reversed transaction'.


If your transaction gets orphaned you can just broadcast it again.


If the goods you purchased are already in your hands, and your bitcoin payment has been lost in a blockchain accident, what is your incentive to rebroadcast your bitcoin payment?


That's why this thread is discussing m-of-n and escrow. But since transactions are public anyone (like the recipient) could rebroadcast it.


Honor my friend, honor. Unfortunately I find myself sorely lacking.


I believe you can use nLockTime[0] to construct and broadcast a transaction that cannot be accepted into a block at least until a particular time. Before that time is reached, you should be able to broadcast a conflicting transaction if so desired that is included in a block sooner, thus invalidating the previously broadcast transaction.

[0] https://en.bitcoin.it/wiki/NLockTime


That's right. You have to keep broadcasting it though, the transaction won't be retained in the nodes storage for a long period of time.


i am with you, i actually think the author coming from economics background who knows nothing about cryptography systems should just shut up before saying anything stupid in public...


If I send coins to an M-of-N multisignature output, I can't economically back out once it's confirmed. In finance we have a special word for that kind of transaction: irrevocable.

Stop Making Misleading Headlines That Aren't True.


You can't single-handedly back out of a credit card transaction either. The credit card company has to agree with you and give you your money back.

Most people would, however, consider a credit card payment reversible.


In the credit card situation, it's possible for the consumer to change their mind for up to 180 days. If so, then the credit card company gets involved and things move on from there.

If I understand this BTC mechanism properly (and I've never used it, so disclaimer there), once the consumer says "yes" there's no going back as far as they're concerned. Since the merchant is going to always say "yes" right away, that means that the only way to approximate the level of consumer protection that credit cards offer using this protocol is if the consumer makes a habit of waiting up to 6 months to release funds to the merchant. Which is something I wouldn't blame merchants for not being willing to accept such a situation. Defaulting to "180 days, same as cash" sounds like a terrible business practice to me.


That's not how the mechanism works. The buyer sends the money to a special address which is like a staging area. The money cannot leave that staging area in any direction (including back to the buyer) until two of the buyer, seller, and arbiter agree on its destination.


Right. . . but once it leaves that staging area, no backsies. So in order to replicate the kind of consumer protection that credit cards offer, probably you'd do something where the buyer doesn't do anything, and instead has 180 days to vote to cancel the transaction. At the end of that 180 day period, the 3rd party automatically votes to release the funds from the merchant.

From the buyer's perspective that kind of arrangement might feel like they paid for the product right away. But from the seller's perspective, it's a terrible deal because they never get paid until half a year later.


i.e. not reversible. Once the buyer says they received the merchandise and signs off, the money goes to the merchant. If after two days the merchandise goes bad because it was fraudulent, the buyer is screwed. No 180 day waiting period.


Ok but it's a pretty involved and rare scam sending a product which arrives and appears legitimate and later breaks down.


It's one of the most widespread scams around: Sell cheap counterfeits.


Not technically related, but wouldn't any bitcoin transaction be covered by consumer protection rules anyway? Like if I had paid cash in a shop?

I pay a certain amount into a seller's publicized bitcoin wallet and I have a receipt from the seller explaining what I bought, the agreed amount, terms, etc. Same as a cash transaction?


Yes, but on far worse terms than when using a credit card which also entail Visa/MC rules which are specifically designed for transacting parties.


Yes.

Or same if you agreed to pay in diamonds or gold or jewelry. If the original item can't be recovered (it was sold) I am guessing the worth in USD would be substituted.


What's the protection against double spending given that the transaction isn't yet broadcast? Imagine that I am the buyer and as soon as I receive the goods I double spend what was on my key. If the third party signs the transaction, wont it fail because the funds will already be spent?


I haven't heard about m-of-n transactions until now, but the way I understood it is that you do broadcast a transaction transferring the money to an account controlled by 2-of-3 people. So no one can then spend the money until two of the three people - the buyer, the seller, and the arbitrator - agree on what to do with it.


Does that create another way for money to just disappear? What happens if 2 people disagree and the other takes a flight to Conventry for whatever reason?


Then the funds are locked until an agreement is settled. Funds could possibly become permanently frozen in such an event.

That's likely the one major downside of this system.


Yeah, it's important to have an arbitrator whom both parties trust to fulfill their obligation (such as a major bank, to borrow the article's example). Otherwise, the arbitrator could also just offer to split the money with one of the parties if the deal goes sour.


You do broadcast a special transaction to put the coins in escrow. Once they are in escrow they're no longer in your direct control; you need the cooperation of either the merchant or the arbitrator to move them anywhere.


I think this is why most merchants who accept bitcoin won't consider the balance paid until it has been confirmed x times.

I vaguely remember Humble Bundle having some verbiage about confirmations before completing the sale.


I've bought from the Humble Store twice recently, both transactions have been accepted instantly (i.e. before being included in the blockchain).

I don't believe that anyone's heard of a successful Bitcoin double-spend attack against a competent merchant yet.


That's because protection was added (about a year ago I think) to rapidly broadcast detected double-spends through the network. Before the canary function, it actually used to be pretty easy to get a double-spend accepted into the network within 5 minutes of the first spend.


The Humble Bundle uses Coinbase to accept bitcoin, so they'd be completely insulated from actually dealing with bitcoin. I did notice that I got the payment confirmation & game link email when the transaction I sent had 1 confirmation though.


I wonder how many of their sales processed by Paypal get reversed.


This is nice; I hadn't heard about m-of-n txns earlier.

But on the con side, unlimited, distributed arbitrators may not work out in practice. The more the number of arbitrators, the smaller the intersection set of arbitrators that are trusted by two unrelated parties.


Not with a reputation system. Perhaps the reputation system could even be based directly on the blockchain; just sum the total BTC the arbitrator has arbitrated in the past.


The naive total-arbitrated-BTC solution wouldn't work, since someone can always arbitrate a bunch of 'transactions' between sockpuppet addresses they themselves control. But as long as there's some mechanism to pay arbitrators for their services, it seems reasonable to expect a small set of trusted arbitration services to spring up, analogous to CAs. Of course, once you're paying an arbitration fee on top of a bitcoin transaction fee, it's not clear that you're saving any money relative to a standard credit card transaction.


How about max arbitrated transaction? It at least requires significant capital to be a scammer.


A multisign service like this would be very difficult to make worthwhile. On small transaction, it would be hard to justify doing an investigation for a rate that would be worthwhile to the parties involved. It works well for Visa because Visa's already handling everything. Having these investigation services encourages people to use Visa, due to the peace of mind. It comes with it. With this type of service, you have to seek it out, pay for it separately and pay enough that this party will actually do an investigation. Obviously, it would have to work like insurance, were a majority of people aren't being scammed, but it's a difficult business model to comprehend.


The Bitcoin ledger doesn't provide credit. There's nothing stoping someone from offering a credit account (e.g. a consumer credit card) denominated in Bitcoin.


> There's nothing stoping someone from offering a credit account (e.g. a consumer credit card) denominated in Bitcoin.

It's definitely possible to offer a credit card transacting in bitcoin though it would have a number of technical differences. One big one is that the settlement process would need to be immediate, otherwise the transaction would be rejected. With a normal credit card transaction the funds don't actually transfer till the end of the day (if you're lucky) or the next business day (most of the time). With a bitcoin backed card it'd need to be immediate and the credit card company would need to have the bitcoin "at hand" at the time of the transaction.


How is that relevant here?


Credit cards are a service that exists on top of traditional currency, so comparing the features of bitcoin to the features or a credit card is in some ways an unfair comparison; in other more pragmatic ways it reflects the way bitcoins and and traditional currency are used for online purchases today.


It's relevant because the article opens up comparing BC and CC. If there were a credit card denominated in BC, the credit provider would probably hold the BC for a while just like they do with money, therefore grating it's users the same warranties.

A better, tough far from perfect, comparison would be to sending money through mail to later receive the goods, or a debit card sans the paper trail.

The article starts from a fallacy, but that doesn't mean it's point is null.


Understood, thanks for the now-obvious explanation =)


Even a 2-of-2 transaction would work, without any arbitrator, if both buyer and seller place additional funds at risk and specify a verifiably neutral means to sacrifice funds in a non-destructive way. This could be as funding the jackpot of an automatic lottery, giving to the EFF, or as a prize added to the next block mined--any transaction that is verifiably not controllable by either party.

The seller commits the sale price in bitcoins. The buyer commits double the sale price. If both agree the sale was good, the seller gets what the buyer committed, and the buyer gets what the seller committed. If both do not agree, the entire amount goes to the verifiably neutral address, or becomes a windfall for the next block miner.

If the buyer cheats by accepting the goods and rejecting the transaction, he pays double the sale price for it. The seller is twice as screwed as usual. If the seller cheats by failing to deliver, he loses the cost of the item, and the buyer is twice as screwed as usual.

Normal transaction: There is a Nash equilibrium for both parties reneging. You cannot buy or sell with confidence unless you have a retaliation strategy, like chargebacks and blacklists.

Bonded transaction: The only Nash equilibrium is at both parties being honest.


The bonded 2 of 2 having a Nash equilibrium only when both parties are honest makes some assumptions that leave some opportunity for abuse regarding comparative advantage.

For instance if I the seller benefit from having the purchaser lose money. I can remove twice as much money from the other party as from myself.

Extremely Hypothetical Example: Party 1: Rich Grape grower Party 2: Upstart Raisin maker

Party 1 sells grapes to party 2 which sells raisins, party 1 decides to enter the Raisin market off party 2 demonstrating its profitability. The next order for N bit coins worth of grapes Party 2 places never arrives, party 2 is now out 2N bitcoins which to them as a small bussiness is huge and may delay or reduce their next order from an alternate supplier, Party 1 is out only N bitcoins which to them as an established business is minor and they have hurt the existing player in the market they are about to enter.


Your hypothetical example shows that you know nothing of raisin farming. The grapes are laid out on paper next to the grapevine, and don't move a centimeter until they are dried. Moving grapes that are mostly water to be dried at a second location is a waste of cargo capacity--you would be moving water just for it to be evaporated somewhere else.

But let's fix it by changing the grapes to ARM CPUs and the raisins to tablet computers. The chip fab decides to stiff the customer intentionally. You still didn't say who the known reneg recipient is. Perhaps an open-source tablet software project? If it is someone both parties are likely to support anyway, they simply reduce their donation by the reneg amount and blacklist each other.

With high-value supply-chain transactions, you probably want a lawyer-written contract in place and at least one face-to-face meeting. At the least, you know who the supplier is, and can go break his kneecaps with your lawyers. Or you pick an arbitrator and do 2-of-3.

The bonded 2-of-2 is pretty much just to solve the problem of non-recurring or rarely-recurring consumer-level transactions. If you want to buy weed online and can't trust a third party, you can put up bonds. If the assumptions of bonded 2-of-2 don't hold, you don't use it. One such assumption is that the 2 parties are anonymous and cannot trust anyone or effectively retaliate.

It could certainly be gamed. The FBI could take all of its Silk Road seizure coins and put up as many fake bonded 2-of-2s as possible. In the end, it would probably just end up funding a "legalize pot" PAC with a massive amount of coins, since it would still have to designate a credible reneg recipient, which must be clearly identifiable.


I agree, though he's using a different meaning of "transaction" than is normally used in Bitcoin. I'd call it "payment" or something.

It's kind of like saying IP isn't a reliable transport protocol, which is true, but a reliable transport like TCP can be built on top of it.

Bitcoin transactions aren't reversible, but payments can be.


Dourado is right -- but only in the same sense that physical cash transactions "aren't reversible".

Which is to say that:

a) Once the transfer is made (of physical cash or bitcoins), then only a big show of force against the right people can reverse it.

b) But you can still layer an escrow particle on top of bitcoins and physical cash to extend the window of (non-forced) reversibilility.

It's still meaningful to say that bitcoin transactions in themselves, per the protocol, are irreversible.

(And it's still stupid to promote Bitcoin on the false, flaky grounds that somehow makes chargebacks impossible, even if the parties agree to enable them.)


Stop saying that someone should stop saying anything


Seems like Bitcoin doesn't have lots of tools to be considered as reliable payment tool for every possible scnerio in which current currencies are being used without issues. I'm wondering how this and other informations could impact on bitcoin price in the future


The point the article is making is that: Saying "Bitcoin transactions aren't reversible" and then using that as a premise for a "well it's fucked before getting out the gate" argument is bullshit. Reversible transactions will emerge with very little friction because the currency has the m-of-n feature and there's a clear business model for service providers to be the trusted third party.


it's called escrow service


lol somebody listens to KCRW...


bitcoin transactions aren't reversible.




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

Search: