Bitcoin War: The First Real Threat to Bitcoin?
privateinternetaccess.com
privateinternetaccess.com
Probably those blocks are mined by a new mining pool, one that someone hasn't implemented transaction handling into.
There is a free market for transaction fees built into Bitcoin, and any miner is free to ignore transactions as they will, it's always been that way. It's not an 'attack', it's just an economic system built in.
Miners will almost certainly demand more bitcoin for their work in the future than they do now; the way I think of it, the network itself is pre-emptively fronting a baseline transaction value to miners right now. Eventually that will be phased out, and people who wish to transact will pay the burden of getting their transactions secured. C'est la vie.
Until then, move along, the article does not, in any way, detail a 'real threat' to bitcoin.
It is annoying (in that it slows transaction acceptance and validation) that someone doesn't wish to mine transactions, but if it ever became a large threat, clients could adjust to ignore blocks from known bad-behavior miners, bringing them into line. Or, I suppose, miners could value same-height blocks with more transaction fees in them. I'm not sure if this would impact other attack vectors, though.
Relevant:
As you're aware, Bitcoin uses certain cryptographic guarantees in order to publish a public and immutable "block chain", which is essentially a public list of all Bitcoin transactions since the beginning of time.
Each block in the block chain is essentially a list of transactions which occurred between the time frame "after the previous block was discovered, but before this block was discovered".
(A block is 'discovered' by searching the hash space brute-force, searching for a valid code.)
When a new transaction is initiated, it is an interesting situation because it needs to be done in a way where neither party can somehow cheat the system. I believe this is accomplished by sending the transaction to many Bitcoin peers simultaneously. When, say, 5 or more peers have "acknowledged" this transaction, then you can be fairly confident (>99.9%) that your transaction will be encoded into the next block in the block chain.
The only reason this works is because it's assumed that each peer in the Bitcoin network is following the protocol in an unbiased way. E.g. it's assumed that peers aren't "going out of their way to do shady things". What kind of things? One example: acknowledge a transaction, but then discard/ignore that transaction, thereby attempting to trick you into thinking your transaction was processed when it wasn't.
Right now it doesn't matter if only a few people are doing shady things. This is because the majority of people are known to not be cheaters. Therefore, by the law of large numbers, you can assume that by waiting for N acknowledgements then you can become exponentially more confident that your transaction will be encoded into the public block chain, rather than maliciously ignored. The only reason this works is because less than 50% of the Bitcoin peers are attempting to cheat. If more than 50% were cheaters, then you'd have no way to "verify that your transaction will definitely make it into the public block chain". Thus, the system would cease to be useful.
Now, notice I'm talking in terms of "more than 50% of peers", but the article is talking about "more than 50% of processing power". I think the argument for "why 50% of the computation power needs to be non-malicious" is the same or very similar to my argument which I presented above. But I'm not positive on that.
(Essentially, if you control more than 50% of your "new block-finding capability", then you would have control over which transactions will/will not make it into the public block chain. Thus, we would lose our cryptographic guarantee that "if my transaction was acknowledged by at least N peers, then it will definitely be entered into the public block chain un-tampered.")
The confirmation task can be easily paralelised - therefore, what is usually done is creating a whole pool of computers that together work on the transaction confirmation task, then the main computer announces the confirmation and is remembered in the blockchain. That's what these so-called mining pools do.
You can browse the blockchain by yourself here http://blockexplorer.com/
There is always at least 1 transaction in the block with the amount 50 - that's the "new" bitcoins that the person "mined" - those weren't previously in the system, you got them for the confirmation. Someone is cheating the system by creating empty blocks with only this transaction.
And look at the timestamp on #171618: http://screencast.com/t/Kzzwiyi9Mz ... The timestamp reads "21:35:01". But the timestamp of the previous block is "21:35:35". So it's "in the past, by half a minute". What's up with that? I mean, I could understand a timestamp uncertainty of a few seconds when discovering new blocks ... but that's a discrepency of over half a minute. (Maybe this is a totally insignificant observation -- I have no idea. I'm just pointing it out.)
Bigger question: what's up with those "1-transaction blocks"? Could you talk a little bit more about that / why that's an indication that someone is cheating? Also, do you have any idea why they're doing this / what the benefit is?
Since most mining is done in pools, there is quite a concentration of power in pool operators; if they want to ignore certain types of transactions, they can just omit them from the blocks that they mine.
The real threat is that if any mining pool that had more than 50% of the world-wide hashing power, they could effectively control which transactions would become verified, and which would remain forever "pending". They would accomplish this by ignoring all other mined blocks, knowing that they will be able to outrace the rest of the world in producing the chain representing the "most difficulty".
Ordinary (non-mining) clients can disrupt the propagation of transactions around the network - but as long as you have a possible communication path to SOME miner, you should be able to have your transactions registered in a new block; like the Internet, the bitcoin network has redundant paths to foil censorship from a minority of nodes.
Bitcoin relies on agreement among peers on a single unbroken chain of blocks: https://en.bitcoin.it/wiki/Block_chain
It takes computation work (searching for a header that produces a hard-to-find hash value) to generate the next block. Therefore, the block chain can be taken over by someone with 51% of all the hashing power on the network because the peers agree on whatever chain reflects the most work: https://en.bitcoin.it/wiki/How_bitcoin_works#Double_spending
In order for a bitcoin transaction to be consummated, it must be encoded in a new block. The entity that generates the block chooses which transactions to include in the new block, and the 15% entity that is the subject of this article is not including any transactions. Instead, it is only awarding itself the standard bounty for discovering a new block.
http://www.seomoz.org/blog/how-to-use-memes-to-build-easy-ba...
I would not be surprised to hear that a government project is in place to shut down or otherwise reduce the effectiveness of it.
Bitcoin could have dilluted this problem by really running with the unique strength Bitcoin has: micro-transactions. All of the sudden it was conceivable and somewhat simple to send someone $.05. Instead of focusing on this the Bitcoin community was more interested in creating an anarchic currency that was anonymous and beholden to no-one. I personally like to believe that if they had instead focused on ease of use, wide spread adoption through micro-transactions (tip jars, content that costs less than $0.75, etc) that it would have really gotten a lot more traction with the mainstream.
You forgot to add the most nefarious entity to that list. Government.
I, personally, see the biggest disadvantage of bitcoin (1) the price unstability - it jumps up and down like crazy, and (2) the still unclear legality - from the tax endpoint, and the like. And (3) - also its biggest strength - it's as safe as your PC is safe. When someone steals your Microsoft Word documents or your Excel tables, who cares. If someone steals your wallet.dat, you are screwed. Period.
It may seem like a moot point, but both Mt.Gox - the largest exchange of bitcoins - and Slush - second largest miner - has had its servers compromised. And those are the highest end-points. Now think of all the users - the lowest end-points, who have "password" as their PC password. You want THEM to have all their money on their wallet.dat files, on their disks?
Now, drug sellers on silkroad really don't care about the second point, but much of the regular businesses do. On the other hands, the regular users have their lowly secured PCs as the only gateway to their money.
I am not sure if Bitcoin will ever get off, given all these circumstances.
2) yup, this is a problem, though I believe technically it should be a capital gain in most countries.
3) This is also clearly a problem though not an unsurmountable one. The cool thing about bitcoin is that you don't have to run the wallet locally, but you have the choice of doing so if you want to. With widespread adoption I believe you would see banks who host wallets, this is how your average person would interact with bitcoin. The final piece of the puzzle is bitcoin insurance to guard against a nefarious wallet hoster, we don't have this yet but there is no reason why it can't be done.
I've looked at the bitcoin page on scalability, and it says sure, we can get to VISA-level scale, all we have to do is centralize this and decentralize that and we're good. Sure.
Meanwhile, last I heard the bitcoin developers are focusing on features, thinking that will get them the users, leaving scalability until they need it. I think scalability is the feature that will bring users. Nobody wants to use a payment system that might crap out as soon as it really gets popular.
If anyone doubts that scalability is a problem, just go on the bitcoin forum and propose layering some kind of new and potentially high-volume use on top of the blockchain, and see how much people freak out about you flooding the network.
I believe we have a protected right to use technology like Bitcoin. To make it illegal you would have to deny me the right to:
1. Free communication/speech.
2. Identify myself (authentication/digital signatures).
3. Retain private information (keys).
4. Trade with other people.
The government has an interest in requiring me to report Income so that they can check if I've paid my taxes. But this is no different than any other cash or barter transaction.It would require a very restrictive police state to outlaw the use of Bitcoin as a technology.
If Bitcoin continues to grow in popularity at a sufficient pace it should be safe, but the minute it becomes cost-effective to attack it, it will fall.
If you want to send a lot of money through Bitcoin transactions, I suggest you estimate expected compute cost of subverting the number of validating transactions you are going to wait to secure it, and using that as a baseline.
E.g. subverting 10 transactions in a row with > 50% likelihood (but doing so without anyone noticing, that is, timed appropriately) would take something like 10x the current compute power for about an hour, = close to a million dollars? hundreds of thousands certainly.
Ergo, wait a day for a $1mm bitcoin transaction to clear, and similarly, don't worry about a $500 transaction at all.
Details here: https://en.bitcoin.it/wiki/Why_a_GPU_mines_faster_than_a_CPU...