The Mystery Behind the Biggest Bitcoin Transaction(motherboard.vice.com)
motherboard.vice.com
The Mystery Behind the Biggest Bitcoin Transaction
http://motherboard.vice.com/read/the-mystery-behind-the-biggest-bitcoin-transaction-ever-made?trk_source=homepage-lede
4 comments
>First, why bother cleaning up the spam?
"to decrease UTXO bloat" from https://www.reddit.com/r/Bitcoin/comments/3cgft7/largest_tra...
(In short, all these transactions were in memory on full nodes, taking up valuable RAM space)
>If a transaction never gets processed, can the original person get their money back? I suppose they can double spend and the transaction that gets processed first wins, but that seems like a risky proposition. It's been a while since I looked at the protocol, but I can't recall anything about cancelling transactions (and I don't know how that would work...). So if nobody decided to add your transaction to a block, do you effectively lose that money? That seems like an unacceptable situation, so I have to imagine that there is some work around that I haven't imagined yet...
You can send another transaction with a higher fee, and it's up to miners themselves whether they'll mine the new one. By default, Bitcoin Core currently has a "first-seen" policy; a miner will ignore any transaction that spends outputs already in the mempool. There are also some miners running the "replace-by-fee" patch [0], which does exactly what it sounds like; however, there's opposition to this being merged to Core [1]. There's also talk of a "child pays for parent", also exactly what it sounds like.
>Finally, if there is some way to cancel a transaction, then I suppose this can lead to a DOS attack by sending out lots of transactions and then cancelling them right away. While nobody needs to add a transaction to a block, I can't understand a way for the protocol to work unless the transactions are propogated to every miner so that they can at least choose what to add to their blocks. Is there anything in the protocol to limit the effect of someone simply flooding the network with worthless transactions? (Given the current problem, I'm guessing no...)
There's no way directly to cancel one, no "cancel" message in the protocol, so your first point doesn't matter.
See also [2] and [3] for stuff on DOS protection.
[0] https://www.reddit.com/r/Bitcoin/comments/235zv5/why_you_sho... [1] https://medium.com/@octskyward/replace-by-fee-43edd9a1dd6d [2] https://en.bitcoin.it/wiki/Weaknesses#Denial_of_Service_.28D... [3] https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposu...
"to decrease UTXO bloat" from https://www.reddit.com/r/Bitcoin/comments/3cgft7/largest_tra...
(In short, all these transactions were in memory on full nodes, taking up valuable RAM space)
>If a transaction never gets processed, can the original person get their money back? I suppose they can double spend and the transaction that gets processed first wins, but that seems like a risky proposition. It's been a while since I looked at the protocol, but I can't recall anything about cancelling transactions (and I don't know how that would work...). So if nobody decided to add your transaction to a block, do you effectively lose that money? That seems like an unacceptable situation, so I have to imagine that there is some work around that I haven't imagined yet...
You can send another transaction with a higher fee, and it's up to miners themselves whether they'll mine the new one. By default, Bitcoin Core currently has a "first-seen" policy; a miner will ignore any transaction that spends outputs already in the mempool. There are also some miners running the "replace-by-fee" patch [0], which does exactly what it sounds like; however, there's opposition to this being merged to Core [1]. There's also talk of a "child pays for parent", also exactly what it sounds like.
>Finally, if there is some way to cancel a transaction, then I suppose this can lead to a DOS attack by sending out lots of transactions and then cancelling them right away. While nobody needs to add a transaction to a block, I can't understand a way for the protocol to work unless the transactions are propogated to every miner so that they can at least choose what to add to their blocks. Is there anything in the protocol to limit the effect of someone simply flooding the network with worthless transactions? (Given the current problem, I'm guessing no...)
There's no way directly to cancel one, no "cancel" message in the protocol, so your first point doesn't matter.
See also [2] and [3] for stuff on DOS protection.
[0] https://www.reddit.com/r/Bitcoin/comments/235zv5/why_you_sho... [1] https://medium.com/@octskyward/replace-by-fee-43edd9a1dd6d [2] https://en.bitcoin.it/wiki/Weaknesses#Denial_of_Service_.28D... [3] https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposu...
Yes, article is a little confused. For actual information about the transaction, see https://news.ycombinator.com/item?id=9861508
I read both articles and though I don't understand the mechanics involved I'm left with a big question: Could a a well-financed actor (state or otherwise) simply crash bitcoin with spam?
A marginally financed one could crash a lot of services but the best a well funded one could do with spam is make transactions more expensive for users. A better use of their money would be buying up farms and miner manufacturers and attacking the network that way. A couple hundred million would give you a large enough stake in most manufactures of competitive mining equipment. You could then use this control to route their supply to yourself basically cutting third parties out of the mining business.
> A better use of their money would be buying up farms and miner manufacturers and attacking the network that way.
Spamming enough to seriously impact the cost of transactions can be done for far less than getting most of the mining power. Probably less than a million, depending on how long you're willing to wait to accumulate coindays and other factors.
Spamming enough to seriously impact the cost of transactions can be done for far less than getting most of the mining power. Probably less than a million, depending on how long you're willing to wait to accumulate coindays and other factors.
You could do it for less than $25k at the moment, probably less than $5k a day if you were clever about the transactions. The second scenario was how a well funded entity could best disrupt it. Spamming transactions is annoying but doesn't really cause too many problems.
>Spamming transactions is annoying but doesn't really cause too many problems.
If you do it well enough such that there's no simple rule to distinguish them (that could be written in an emergency, as has been suggested), then it seems like it would be a big deal. Who's still using bitcoin when the fees are >$10 per tx?
(I think the eventual solution will involve larger blocksize + proper pruning, and shifting costs to the cost-generators by, for instance, requiring the sender to provide the full input instead of storing it in the utxo database, but so far the existing proposals aren't really complete and well-reviewed enough to be used.)
Edit: oh, and off-chain stuff like lightning.
If you do it well enough such that there's no simple rule to distinguish them (that could be written in an emergency, as has been suggested), then it seems like it would be a big deal. Who's still using bitcoin when the fees are >$10 per tx?
(I think the eventual solution will involve larger blocksize + proper pruning, and shifting costs to the cost-generators by, for instance, requiring the sender to provide the full input instead of storing it in the utxo database, but so far the existing proposals aren't really complete and well-reviewed enough to be used.)
Edit: oh, and off-chain stuff like lightning.
Napkin math but by the time you're spending enough on transaction fees to be pushing people into the >$10 per tx range to beat you, you'd be over $1m/day. I think at that point you're better off going with my "buy the miners" plan if destruction is your plan.
Speculation on /r/buttcoin is that this is either someone dumping coins and hiding it in the chaff, or a DNM exit scam and someone hiding it in the chaff.
The other interesting thing is that the price went up even though the network was literally unusable. The spam demonstrated that the price of Bitcoin is literally detached from any form of utility whatsoever. The exchange price appears to be dictated by day traders only.
The other interesting thing is that the price went up even though the network was literally unusable. The spam demonstrated that the price of Bitcoin is literally detached from any form of utility whatsoever. The exchange price appears to be dictated by day traders only.
>The spam demonstrated that the price of Bitcoin is literally detached from any form of utility whatsoever.
Why should the price track current utility as opposed to expected? If the market as a whole doesn't expect this spam to have a long-term effect, it won't affect the price.
Why should the price track current utility as opposed to expected? If the market as a whole doesn't expect this spam to have a long-term effect, it won't affect the price.
Exactly. One of the chief benefits of BitCoin is that you can act in an anonymous manner if you perform your transactions in a careful way. This means it is inherently open to being collapsed by a powerful actor that has the resources and will to attack. Certainly a state but I suspect a relatively small group could do the same.
Being found out as the source of an attack is the biggest deterrent. Without the deterrent the temptation for a vested interest must be a magnitude higher.
Being found out as the source of an attack is the biggest deterrent. Without the deterrent the temptation for a vested interest must be a magnitude higher.
>Being found out as the source of an attack is the biggest deterrent.
It doesn't seem like much of a deterrent. Suppose we knew for a fact that the attacker was John Smith in Chicago. How would that deter them?
It doesn't seem like much of a deterrent. Suppose we knew for a fact that the attacker was John Smith in Chicago. How would that deter them?
Because it's a crime that you can go to prison for. And all of the damaged parties could sue you.
It's not a crime to create many small transactions...
It is if you do it with the intent to defraud people or to make a service inaccessible. Same thing with a denial of service attack. It's not illegal to visit a webpage, but it is illegal to visit a webpage millions of times per second to bring the server down.
How exactly bitcoin transactions are anonymous? Sure they don't have your name tagged on them but they are signed with your key. It won't be that hard to do some data analysis on the block chain to expose who's really behind each transaction, if bitcoin ever goes mainstream it will effectively mean that everyone's creditcard bill will become public...
Well, modern wallets create new addresses for every transaction. So it's like having a new credit card number for every transaction in your analogy. It's pretty much anonymous.
And how long does it take to a new address to be accepted by the network? This isn't a viable solution for a large volume day to day usage.
Even a poorly financed actor could crash Bitcoin with spam. The network was jammed to unusability for a couple of days just now for a few hundred to a few thousand dollars' worth of Bitcoin. That's enough that if you had old Bitcoins you didn't care about, you could do it for teh lulz.
This is kind of a silly article. There's a huge amount of dust spam in the blockchain. This particular tx looks to me like somebody paying a tiny bit to clean up some of the easy-to-clean txs. It's not some gigantic mystery.
The linked core dev chat even says something along the lines of "appreciated, but not the most important thing to do right this second".
That single transaction cleared out lots and lots of spam, but there's lots more to go, apparently: a comment on the dev logs notes that there's more than 200k more dust spam txs in those addresses.
As a side note, Blockchain.info isn't super easy to deal with for txs this large; I wouldn't trust all the data on the page to be accurate.
The linked core dev chat even says something along the lines of "appreciated, but not the most important thing to do right this second".
That single transaction cleared out lots and lots of spam, but there's lots more to go, apparently: a comment on the dev logs notes that there's more than 200k more dust spam txs in those addresses.
As a side note, Blockchain.info isn't super easy to deal with for txs this large; I wouldn't trust all the data on the page to be accurate.
> Maybe it’s even Satoshi Nakamoto herself.
Well done.
Well done.
First, why bother cleaning up the spam? IIUC it has always been the case that miners are allowed to choose which transactions they do and don't include in a block. The idea is that as the block solving reward diminishes, there will be a market for transaction fees. If you set the fee high enough, many people trying to make a block will add it to their list. If the fee is not high enough, then nobody will add it to the list and it will take a long time (possibly forever) to clear. Ignoring tiny transactions that have very small transaction fees seems like a completely reasonable thing to do to me... Is there a downside to this?
This leads me to another question. If a transaction never gets processed, can the original person get their money back? I suppose they can double spend and the transaction that gets processed first wins, but that seems like a risky proposition. It's been a while since I looked at the protocol, but I can't recall anything about cancelling transactions (and I don't know how that would work...). So if nobody decided to add your transaction to a block, do you effectively lose that money? That seems like an unacceptable situation, so I have to imagine that there is some work around that I haven't imagined yet...
Finally, if there is some way to cancel a transaction, then I suppose this can lead to a DOS attack by sending out lots of transactions and then cancelling them right away. While nobody needs to add a transaction to a block, I can't understand a way for the protocol to work unless the transactions are propogated to every miner so that they can at least choose what to add to their blocks. Is there anything in the protocol to limit the effect of someone simply flooding the network with worthless transactions? (Given the current problem, I'm guessing no...)