Hot answers tagged

39

The Finney attack is named after Hal Finney, who suggested it in this comment. (Hal happens to be the first recipient of a Bitcoin transaction, and the first person to comment on the release of the Bitcoin source code.) It is a double spending attack with the following features: It only works if the merchant accepts unconfirmed transactions. It still works,...


36

Disclaimer: I believe this question may be primarily opinion-based and not very appropriate for this site, but there are a number of technical misunderstandings that can be clarified along with it, so I'll give it a shot. There are many nuances involved here, and I fear that a large part of them didn't reach as much of an audience as the exchange announcing ...


28

The distinction is of theoretical importance only. But if the attacker controls exactly 50%, then it's true that the attacker will eventually catch up, but he won't stay caught up: the honest population will eventually overtake his chain, and we'll be in an unstable situation where control of the "best" chain will bounce back and forth between them forever....


22

"TL;DR: Bitcoin mining is virtually immune to someone attacking it with a supercomputer, because the mining market is already flooded with supercomputers custom tailored to the job at the hardware level." (via Cort Ammon in comments) First of all, the difficulty reset happens after 2016 blocks. That's only after about 14 days if the hashrate is stable. When ...


21

A double spend is an attack where the given set of coins is spent in more than one transaction. There are a couple main ways to perform a double spend: Send two conflicting transactions in rapid succession into the Bitcoin network. This is called a race attack. Pre-mine one transaction into a block and spend the same coins before releasing the block to ...


20

I am the operator of My Wallet which is a similar javascript based wallet service. I will try and keep this answer as impartial as possible. The Website Owner is Malicious The website operator is free to change the javascript code at any time so if they are so inclined can change the code to uploaded your unencrypted keys or intercept your password. If ...


20

Suppose Alice wants to add a fake transaction where she receives X ammount of BTC. I understand that in order to add that transaction to the blockchain she would have to compete against all the other miners to generate the next block, which makes it improbable to happen as an individual against them. No, that isn't correct. No matter how much mining power ...


15

There are too many issues rolled up into this question, I'll try to address each separately. The fact that the miner does not include transactions is not a problem. Miners have a right to exclude transactions, even all transactions. Senders can include tx fees if they want to improve the chances of being included quickly (if the miner excludes transactions ...


15

The simplest form of it called Finney attack, named for Hal Finney who first described it. The attack is variation of a double-spend attack involving accepting 0-confirmation transactions. An attacker would generate a valid block but will not broadcast it, and then broadcast transaction A as a payment for a good or service. A merchant will see transaction A ...


14

I'm the owner of StrongCoin. Ben has detailed just about every possible risk with StrongCoin. You can read about how we handle server security in our FAQ. It's not in my interests to defraud my customers, I'm pretty easy to trace and I don't fancy having angry users knocking on my door So with Bitcoin like cash there are risks with storage, I lost a ...


14

The Finney attack is a variation of a double-spend attack. The attacker creates two transactions - one crediting the victim and one crediting themselves. They keep the first transaction for now and proceed to try mining the second one into a block. When they succeed (this may take awhile), they quickly make a purchase with the first transaction, get the ...


14

The issue is that you assume a majority attack is an attack that can be prevented. It is not. It is a fundamental breakdown of the security assumptions. Proof of work (PoW)'s assumption is that the majority of the hashrate will cooperate and converge on a single chain, because it is most financially advantageous thing to do. When that is no longer the case, ...


12

The thing to consider is, "what does the attacker have to give up in order to attack me?" If the cost of that thing is less than the reward from a successful attack, then attacking is rational from a purely economic standpoint. (Obviously, attacking someone comes with a non-economic moral cost.) A miner who controls more than half of the network hash rate,...


11

Ripple solves the double spend problem by consensus. Everyone who wants to run a server on the Ripple network picks a set of validators and tries to reach a consensus with them on which transactions are valid. The Ripple equivalent of Bitcoin's 51% attack would be if some group obtained control over enough validators that the consensus process failed. ...


11

There are several groups of people that could have incentives to DDoS mining pools: Owners of other mining pools. Mining pools make profit from the blocks mined by their miners. So it would make perfect sense for them to attack other pools to encourage users to abandon the pool and perhaps find a new home at theirs. People mining at other pools, including ...


11

Is is possible that a miner modified a unconfirmed transaction (like changing the output of transaction to the miner himself) and put it into the local block, and after 10 mins the miner luckily solved the PoW, putting the block on the chain and broadcast it to others? No, because the transaction would be invalid. The vast majority of transactions contain ...


10

However, what happens when my generated private key matches a private key that is already used? Then you got lucky, and can spend someone else's coins. Does the protocol reject private keys if they are already used? No, how should it? Keys can be used more than once in normal operation. Fortunately, it is extremely unlikely that this ever happens. See ...


10

As I suggested in my Bitcoin master thesis, a 51% attack would cost in a bulk part of about 7 million dollars to execute. The figure will change depending on the technology used, the current difficulty and so forth. This option would make Bitcoin or any other Bitcoin-like currency useless. However, if the USA goverment was to crack down on Bitcoin as a ...


10

Yes it is possible. You already answered your own question: "This could dramatically increase the time it takes for transactions to be confirmed, as well as makes it not profitable for other miners. Granted this would only last until the difficulty is readjusted, but perhaps it could be enough to shake public confidence in the network." There are other ...


9

The "Linode problem" is storing Bitcoins on a managed device. That managed device might be server hosting from Linode, for example, or a cloud server at RackSpace for another example. In both instances, by simply gaining root access using the service provider's systems, tens of thousands of bitcoins were stolen. The incident in which the "Linode problem" ...


9

Your future self could memorize some SatoshiDice secrets after they are revealed. This would allow him to win every dice bet he placed after travelling back in time, since knowledge of a day's secret allows one to determine whether a bet will win or not before placing the bet. There is a theory that this has already happened.


9

The current maximum size of a block is 1 MB. Current block sizes are about half that, so the absolute worse case scenario is that the block chain grows in size twice as fast as it does now. That's not particularly scary. It's easy to create more than 1 MB of transactions every 10 minutes. If anyone does that, some transactions can't be included in blocks. ...


9

Nothing directly prevents it in Bitcoin, and indeed the attack has been demonstrated on testnet3 many times---it's the primary reason that testnet3 currently has almost three times as many blocks as Bitcoin, despite being launched several years after Bitcoin mainnet and with a something similar to[1] Bitcoin's 10-minute average block interval. Indirectly, ...


9

(adding some color) Some discussion I saw suggested that people promoting this believed they only needed to achieve >50% hashpower, which caused them to overestimate the feasibility. Reorging with only slightly over 50% would take weeks-- even months, creating massive disruption if successful, and virtually guaranteeing an effective public initiative to ...


8

Transactions are signed with ECDSA. Incidentally, bitcoin addresses are hashes of the ECDSA public key that can spend them. You can't spend somebody else's coins unless you 1) do a bruteforce search to find their private key or 2) find a public key that hashes out to the same thing. Both are much, much harder than doing a double spend attack.


8

How to Double Spend You can double spend using Electrum quite easily. Even without duplicating your wallet, be it on the same or on 2 different machines. Btw.: Duplicating wallets is super easy with Electrum. Just go to Tools → Preferences → Transactions and check View transaction before signing. Close the settings, go to the "Send" tab, and enter the ...


8

It's not done every 14 days - it's done every 2016 blocks, which will happen in 14 days if hashpower stays the same. If hashpower goes up, then the retarget happens sooner.


7

If you are attempting a 0-confirm double spend then which transactions (if any) are included in the next block is irrelevant. Your goal is to simply complete both transaction prior to either merchant getting notification of the other one. The "problem" is that the network is fairly quick at passing transactions from one node to the next. Unless you have ...


7

This is like worrying that your house will get hit by two asteroids. There are so many ways your house can get destroyed that are millions of times more likely. So it's not rational to worry about this, except for the second or two it takes to realize that it's not worth worrying about. For example, a collision on the hash of the public key is about 80 ...


7

You're absolutely correct. The following would completely work: Get ready to perform a Finney attack. Gamble some coins. If you lose, go through with the Finney attack. Otherwise, cancel your Finney attack, and collect your 1250 BTC from satoshidice. Is anybody doing this? I don't know.


Only top voted, non community-wiki answers of a minimum length are eligible