Posts

Showing posts from December, 2013

To Krugman: Finding the Intrinsic Value of Bitcoin

Recently, Paul Krugman has been writing a series of blog posts about the Bitcoin cryptocurrency.  I'm still on the fence about Bitcoin and friends, despite my recent dabbling in their technical aspects, but I'm honestly surprised to see someone ordinarily so smart be so far off the mark.  So, let's start: Krugman comments that " . .. it remains completely unclear why BitCoin should be a stable store of value " while leaving open the question of whether Bitcoin may  (emphasis added) be a useful medium of exchange.  But he then notes that "[ he hasn't]  been able to get [his] correspondents to recognize that these are different questions. " The answer, of course, is because they aren't different questions.  The intrinsic value of Bitcoin is entirely  derived from its utility as a medium of exchange. Let's do a little thought experiment and assume that Bitcoin replaces Visa.   According to Nerdwallet , US$3.273 trillion was processed by Vi

Scrypt mining changes incorporated into CudaMiner

Just a quick followup to the previous two posts about scrypt-based mining on Nvidia GPUs :  The improvements I made have been incorporated (extremely rapidly!) into the existing full-featured mining client CudaMiner . I'm leaving my keplerminer code up on Github , because it serves my pedagogical purpose of helping to explain the parallelization of scrypt more simply than having to understand a more complex miner codebase, but for most people who just want code that runs fast now, go grab CudaMiner and enjoy.  Kudos to  +Christian Buchner  for getting it all incorporated so quickly, which required updating the rest of the CudaMiner codebase to CUDA 5.5. Some quotes from folks on the bitcointalk.org message board: " With a 670 GTX and the same settings as before, I bumped from 160ish khash to 190 khash" " Went from 152 per card to 212!!! Actually uses the max power limit now" ( GTX 660) " Looks like my GTX580 doesn't like the latest build"

Inside a better CUDA-based scrypt miner

In my previous post , I discussed how I'd written a more-efficient NVidia-based scrypt coin miner and took advantage of the competitive advantage it conferred to (briefly) mine profitably on Amazon EC2 instances.  In today's post, I'll break down the algorithmic and engineering details of that improved mining.  You can read along in the code that I've released on github . Some terms:  GPUs are big vector processors, but they can, at high expense, let the individual items in the vector "diverge" and take different paths through the code.  As a result, NVidia refers to this as a "CMT" machine:  Concurrent Multi-Threading.  The "Kepler" architecture GPUs my code targets execute 32 threads at a time (in groups of 192 in total) on a single vector unit. The ideal candidate GPU code looks something like:   process_vector(vec) {      for i := 0; i < vecsize; i++ {         do_something_expensive(vec[i])      }   } where the something_

Briefly profitable alt-coin mining on Amazon through better code

Image
Over the past three weeks, I've been running crypto-coin mining software on between 20 and 60 Amazon EC2 GPU instances at a (very small) profit, with the goal of understanding the currencies, exchanges, and algorithms in more detail.  This is post #1 of 2 discussing scrypt coin mining on Amazon.  In the follow-up post, I'll go into the algorithmic and engineering details of building a better CUDA-based miner. A few weeks ago, Gün and colleagues wrote a paper describing a new collusion attack against Bitcoin .  I hadn't thought much about BTC before that, but he got me curious.  As I explored, I discovered Litecoin ,  an alternative to Bitcoin that is designed to reduce the comparative advantage of using custom ASICs (or GPUs) for mining it relative to using a conventional CPU.  Its future is even less certain that BTC, of course, as a later comer, but the technically interesting bits lie in its proof-of-work hash function:   Scrypt .  Scrypt is designed to be "memory