Complete detail of how Bitcoin works

From Bitcoin Wiki
Revision as of 23:06, 5 October 2013 by Midnightmagic (talk | contribs) (Factual Inaccuracies)
Jump to: navigation, 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]
  • References 1997 work by Adam Back's hashcash anti-spam as the source of the POW idea. While it is almost certainly so that Adam Back is an independent originator of the idea of using a hash-based function as POW and it is likely he invented hash-based POW as it is used in Bitcoin (he himself insists that he independently came up with the idea of using a hash-based function for POW,) the idea of using POW in any form is actually much older. One example is the paper by Dwork and Naor, presenting the idea of using processing power to combat junk mail to Crypto'92, (including a hash-using Fiat-Shamir signature as a price function (see p.5, ss 4.2)) [6]NOTE: The POW function as used in Bitcoin could not be replaced with anything described in the Dwork paper, and Satoshi himself cited Adam Back in his Bitcoin 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.[7][8]
  • 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 20999999.97690000 - 0.00000001 bitcoins, assuming nobody ever again does what midnightmagic did[9][10], and pays themselves less.

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. Dwork and Naor, Crypto'92, a single counter-example proving the assertion that the POW idea originated [b]entirely[/b] with Adam Back somewhat wrong. There is a link to this paper directly from the Hashcash Papers site itself.
  7. Bitcoin - An Analysis, A 28c3 talk describing in depth some possible methods for de-anonymizing users, amongst quite a number of other topics studied
  8. Black OPs of TCP/IP, Dan Kaminsky rambling about Bitcoin security
  9. (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
  10. 124724, the full blockexplorer decode of the underpay block