Bitcoin is an ingenious invention. Some suggested the inventor should receive a Nobel prize in economics. I think this is a fair suggestion. Bitcoin have revolutionized the concept of currency and demonstrated a way to liberate monetary policy from institutions' grip. In practical sense, it significantly lower the cost of currency exchange and international money wiring. However, as sophisticated and secure as it is perceived, there are flaws in the design. The biggest problem on the design of Bitcoin is the assumption that the network at which it runs on, is a homogenously distributed network. In reality, this is not true in multiple ways. I will briefly discuss the flaws I see.
The operation of Bitcoin relies on linking blocks of crypto transaction data in an unanimously agreed order amongst nodes in the network. However, nodes do not immediately have consensus on the order of newly added blocks. The Bitcoin algorithm incorporated a decentralized decision making mechanism, similar to our democratic voting system, at which nodes will take the order it sees as the choice of the majority. So, a consensus on the order of previous blocks will quickly be reached after a few new blocks being added. This is the mechanism to prevent a bitcoin from being double used. (The first block mentioning of a particular bitcoin from an account is the only valid transaction).
First of all, our internet is not as distributed as we thought. Communication between some continents are connected through major subsea optical cables. Severe them can effectively split a bitcoin network into two independent networks, allowing the possibility of double counting a bitcoin for a period of time (as long as we needs to reconnect then, up to days). As rare as it sounds, subsea optical cables had been cut by fishing vessels rather frequent in the past. More importantly, these subsea cables are very vulnerable to deliberate attacks. Wiki leaks had exposed their location already. Having the mean of bitcoin exploitation adds to the incentive of such malicious attack. In a similar manner, the control of major internet switches, like the great firewall of China, can split a bitcoin network effectively into two. A possible scenario would be groups exploiting the bitcoin network to pass dissident messages (which is technically possible by the way), and the government decided to block inbound/outbound bitcoin communications (packets).
Another reason why bitcoin network is not homogeneously distributed has a dynamic origin. It is a result of our capitalistic economic behavior and is predicted by game theory. In brief, it is designed to have a bitcoin being mined in around every 10 minutes. Since the net computation power is not known at the time of bitcoin's design, difficulty of the mining is made adjustable to keep the mining rate of bitcoin constant. In the early days of bitcoin, miners uses their personal computer to perform mining operations. Ever since bitcoins were first assigned a value in our real world economy, a massive digital gold rush begins. Engineer soon realize they can build specific hardware dedicated to bitcoin mining algorithm (like ASIC and FPGA). Such hardware would out-perform any desktop cpu and gpu by a factor of up to thousands, effectively removing casual miners out of the game. Dedicated miners pay a reasonable cost for these dedicated machines, and soon many dedicated miners follows, which effectively raise the mining difficulty. Then, new generation of mining hardware arise, making previous machines obsolete, while yet again create a leap in the difficulty level. The game will only ends when the cost to develop a superior mining hardware matches the values such machine can generate. This happens when the manufacturing of an ASIC machine requires state-of-the-art solid-state microfabrication technology. From that we can conclude only very few mining machine developer have the capital or expertise to access such technology. As a result, mining machines will be coming from very few manufacturers. In this abstract level, bitcoin network is not well distributed. All mining systems might be coming from one manufacture. It is therefore very susceptible to a wide spread vulnerability or maniputation. For instance, a manufacturer can, knowingly or not, implant malicious code in their mining machine. A widespread vulnerability or bugs can also yield hackers manipulation to the entire network. In fact, a similar event was recently reported for firewall. A firewall company (Juniper Networks) discovered back door code in their firewall source code. The source of the malicious act is not yet known, but similar event can happen to bitcoin mining machine. In fact, the profitability of exploiting bitcoin miner at the source would be much higher than exploiting a firewall product.