Intro
Answer: Not as far as I can tell. Of course it’s irresistible for us technical folks to try. Here are my back-of-the-envelope calculations for my trial.
The details
A currency that’s not linked to any one government’s policies has a lot of attraction. Bitcoin is that currency, and it seems to be catching on. I knew people last year who were “mining” Bitcoins. I had no idea what they were talking about, but I could tell from what they were saying that they were trying to create more currency units. How strange and wonderful, a currency that gets minted by potentially anyone.
I learn mostly by doing, so I decided to download one of those mining programs and see what this was all about.
Well, I still haven’t learned what it’s all about because it’s more complicated than I thought, but I learned what approach not to take. And that’s what I’m sharing here.
I downloaded bfgminer for my CentOS Amazon EC2 server. That in itself was a good exercise as it needed a whole ecosystem of other packages to be installed first. On my system I found I needed ncurses-devel and libcurl-devel, which brought in other packages so that by the time they were installed I had installed all these packages:
libcurl-devel-7.19.7-35.el6 curl-7.19.7-35.el6 libidn-devel-1.18-2.el6 libcurl-7.19.7-35.el6 libssh2-1.4.2-1.el6 ncurses-static-5.7-3.20090208.el6 ncurses-devel-5.7-3.20090208.el6 |
It’s also designed more for a different type of computing environment. Getting it to compile was one thing, but getting it to actually run is another.
At first it found nothing to run on. So I had to recompile, this time specifying:
$ ./configure –enable-cpumining
to enable use of my virtual CPU.
It wanted a pool and URL and other things I don’t have when it starts up. I finally found a way to run it in test mode.
The results
My setup at Amazon could calculate 0.4 mega hashes per second. Doesn’t sound too bad, right? Wrong. Looking at some of the relevant numbers and doing a back-of-the-envelope calculation we have:
– total world computing power dedicated to this effort: 60,000 Giga hashes per second
– rate of blocks being written: six per hour
– number of bitcoins in a block: 25
– value of a bitcoin: $78
From this we have:
Minimum computation required for a DIY effort to produce one block:
Effort = 10 minutes * 60 s/min * 60×10^12 hashes/s = 3.6×10^16 hashes =~ 4×10^16 hashes
So with my resources one my small instance this will take me:
time to make a block = 4×10^16 hashes/block / 0.4×10^6 hashes/s = 10^11 s
= 10^11 s * year/(π•10^7 s) =~ 3×10^3 years
Why my fixation on a block as the minimum unit of bitcoins? Because in my five minutes of reading that seems to be the minimum acceptable unit to be able to mint more bitcoins.
By the way, every physicist knows that a year has π•10^7 seconds! That’s one of those useful numbers we carry around in our heads.
For the scientific-notation challenged, I’m saying that it will take me 3,000 years to create a block of bitcoins by myself!
Now let’s have some fun with this. Of course Amazon being the premier cloud hosting company that it is, you can rent (I have heard of this actually being done) 30,000 servers at once.
To be continued…
Appendix
How I measure my has rate
I ran
$ bfgminer –benchmark
Then I did a
[2013-04-16 08:25:39] Summary of runtime statistics: [2013-04-16 08:25:39] Started at [2013-04-15 12:55:43] [2013-04-16 08:25:39] Pool: Benchmark [2013-04-16 08:25:39] CPU hasher algorithm used: c [2013-04-16 08:25:39] Runtime: 19 hrs : 29 mins : 56 secs [2013-04-16 08:25:39] Average hashrate: 0.4 Megahash/s [2013-04-16 08:25:39] Solved blocks: 0 [2013-04-16 08:25:39] Best share difficulty: 0 [2013-04-16 08:25:39] Queued work requests: 0 [2013-04-16 08:25:39] Share submissions: 0 [2013-04-16 08:25:39] Accepted shares: 0 [2013-04-16 08:25:39] Rejected shares: 0 [2013-04-16 08:25:39] Accepted difficulty shares: 0 [2013-04-16 08:25:39] Rejected difficulty shares: 0 [2013-04-16 08:25:39] Hardware errors: 0 [2013-04-16 08:25:39] Efficiency (accepted / queued): 0% [2013-04-16 08:25:39] Utility (accepted shares / min): 0.00/min [2013-04-16 08:25:39] Discarded work due to new blocks: 46376 [2013-04-16 08:25:39] Stale submissions discarded due to new blocks: 0 [2013-04-16 08:25:39] Unable to get work from server occasions: 0 [2013-04-16 08:25:39] Work items generated locally: 0 [2013-04-16 08:25:39] Submitting work remotely delay occasions: 0 [2013-04-16 08:25:39] New blocks detected on network: 0 [2013-04-16 08:25:39] Summary of per device statistics: [2013-04-16 08:25:39] CPU0 | 5s: 0.0 avg:377.4 u: 0.0 kh/s | A:0 R:0 HW:0 U:0.0/m |
The about fourth line from the top shows the average has rate of 0.4 Megahashes/second.
Other resources
Bitcoin exchange value really fluctuates a lot compared to conventional government-sponsored currencies! Go here for the current value.
A timely and informative intro to Bitcoin is available here.