Complete detail of how Bitcoin works

From Bitcoin Wiki
Revision as of 21:49, 14 March 2015 by Taras (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Steve Gibson's Explanation of Bitcoin

Out-of-Date Information

  • Project is not on SourceForge anymore. It's on GitHub. [1]
  • We no longer go to an IRC chat room to find peers. We use DNS-based host seeding.
  • We have gone through a reward halving already. So his 50-bitcoin-reward is now out-of-date.
  • He references the EFF bitcoin donation page, which is no longer available.
  • He says coin creation rate is 300 coins per hour within the entire system. Since the block halving, this is no longer the case.
  • The network is no longer 186GH/s. It is as of this writing 36TH/s.[2]
  • The UI no longer works in only two decimal digits of precision.
  • One can no longer use bitcoind to directly generate coins, nor is CPU mining of basically any worth.

Factual Inaccuracies

  • Asserts Satoshi is Japanese. We don't know that.
  • He asserts that currencies are "synthetic", but people use objects with instrinsic value all the time as currency, so this is incorrect unless you accept the narrow definition of "currency" as a "modern money system issued by a government." [3]
  • Humans didn't just choose gold just because it was scarce. We chose gold for a whole host of other properties.[4]
  • Satoshi's paper doesn't fully explain how bitcoin works, or else we'd all be able to just point to that paper and let newbies read it.[5]
  • It was incorrectly claimed that Adam Back invented the concept of proof of work. Bitcoin does use Back's hashcash proof-of-work because bitcoin needs specific properties and hashcash is the simplest (and so far only) proof of work with these required properties (primecoin maybe the new exception). But the PoW concept is older, and due to Dwork & Naor in their crypto 1992 paper.
  • Explanation of hashing is wrong: To get 20 bits of 0 at the beginning of a hash, you still don't get a guarantee that after 220 hashes, you have all zeroes, and that half that number on average are what's necessary to find a 20-zero solution. Basically this whole explanation is just plain wrong.
  • Hashcash didn't fail because legitimate mailing lists are indistinguishable from spammers. He states that there are no measures that could be taken to allow legit mass-mailing lists while denying spamming. This is factually incorrect.
  • The public key of the signer of a transaction is NOT included in the transaction itself.[5]
  • He says multiple times that all nodes on the network are busy mining. This is not the case at all, nor was it for months prior to the video's creation date, which was February, 2011.
  • The blockchain is not the chain "up to the most recent block that anyone has created." It is the chain of most-work-done. Counter-examples include the possibility of multiple competing sibling blocks, and stale blocks arriving too late.
  • He equates the number of zeroes in front of the difficulty target directly with the integer-sounding difficulty.
  • Gibson says multiple times it is completely anonymous currency. False.
  • He says when you first fire up bitcoin it creates "a keypair." It's actually a whole bunch of them.
  • Since bitcoin is not anonymous, when he says there's no way of knowing who is behind addresses, this is misleading.
  • There are ways in fact to track bitcoin users, even if you create all the pubkeys you want. Staying relatively anonymous doesn't require you to just create a bunch of pubkeys. It is quite a bit harder than that.[6][7]
  • CPU mining is basically no point anymore. Nor was there a point even back then.
  • 21,000,000 is not the real number. The real number of bitcoins ever created in the far future will be 20999839.77085750 - 0.00000001 bitcoins, assuming nobody ever again does what midnightmagic did[8][9], and pays themselves less, and that there are no further bugs in the program which incidentally destroy more bitcoins.

Imprecise Wording

  • A block is more than just a collection of transactions.
  • He says bitcoind addresses are "public keys converted into ascii" which is somewhat misleading. It's a special form of base-58.
  • Steve says the same thing twice without linking the two concepts: He says each four years X bitcoins are created (divided by two each four years,) but then then describes 210,000 blocks afterwards as the same thing without really linking the two facts together.
  • Is not using the terminology for "double-spend" or explaining why it's even a consideration for cryptocurrency, which prevents people from looking terminology up later. (Too dumbed-down.)
  • The term "anchored" is wrong. Bitcoin is not anchored to other currencies.

References

  1. bitcoin on Github, The primary Bitcoin project page on Github
  2. Excellent hashrate graphs, sipa built a regularly-updated set of hashrate graphs
  3. Investopedia "Currency" Definition, A definition of the term as per an online reference
  4. Why Gold for Currency, Reasons why gold was the best (and perhaps only) choice for currency on Earth
  5. 5.0 5.1 Bitcoin: A Peer-to-Peer Electronic Cash System, The seminal paper by Satoshi Nakamoto himself
  6. Bitcoin - An Analysis, A 28c3 talk describing in depth some possible methods for de-anonymizing users, amongst quite a number of other topics studied
  7. Black OPs of TCP/IP, Dan Kaminsky rambling about Bitcoin security
  8. (in his case, as a tribute), midnightmagic claims to have underpaid himself by 1x10-8, but he accidentally threw away a bunch of fees too
  9. 124724, the full blockexplorer decode of the underpay block