Bitcoin Mining10/6/2017 J.P. Morgan announced recently that they have developed their own Ethereum derivative called Quorum. It is designed to be a platform for smart contracts and a distributed ledger based on Blockchain technology. www.jpmorgan.com/country/US/EN/Quorum HSBC, Bank of America, and Merrill Lynch, have also announced they are setting up a Blockchain ledgers system for clearing inter-bank transactions: www.cityam.com/257426/blockchain-technology-could-revolutionise-global-trade And Microsoft and IBM are setting up Blockchain platforms that they can sell to other business, dubbed Blockchain-as-a-service (Baas) www.coindesk.com/ibm-vs-microsoft-two-tech-giants-two-blockchain-visions/ The info that's been released by these companies about how the technologies will actually work is rather sparse though. There seems to be a lot of buzz, but still no clear consensus on exactly how these technologies will work in practice. In order to try to understand how Blockchains might be important I did some more reading on how they work as part of the Bitcoin protocol, but I actually found myself getting really interested in some of the details of Bitcoin Mining. One of the books I read was the excellent 'Mastering Bitcoins' by Andreas Antonopoulos. It works through all the nitty gritty technical details of the Bitcoins protocol and it really helped crystallise my understanding of some of the technical details. Metaphors about signatures, ledgers, or Alice sending Bob a box with two padlocks on it will only get you so far, at a certain point you need to read through the actual algorithms that are used, and review some source code. So what is Bitcoin Mining and why is it so interesting? What is Bitcoin Mining? Mining is the process by which new transactions are sent over the Bitcoin network and also the process by which new Bitcoins are created. The term Bitcoin Mining is actually a bit of a misnomer, as the creation of the new Bitcoins is not a necessary part of Mining. Even if no new Bitcoins were created, the process of Mining would be the same, and just as important, as it is the mechanism by which transactions are processed within the Bitcoin network. The network is configured so that approximately every ten minutes one of the miners currently attempting to mine the Bitcoin network will find a solution to the hashing problem which will have the following effects:
In essence, assuming the network is not overloaded by transactions (which at the moment it is due to something called the block size limit controversy, which I might blog about another time) every ten minutes all the new transactions which have been created in the last ten minutes will be processed and sent across the Bitcoin network. All these transactions will be included in the latest block which will be added to the end of the Bitcoin Blockchain. The person who mined this latest block will receive a reward of 12.5 new Bitcoins, and all the transaction fees from the last ten minutes. One thing that I didn't understand when first reading about Bitcoins, is that there is only one Blockchain at any one point (barring something going wrong), and that all transactions across the entire Bitcoin network are processed by a single miner in a single Block which is added to the end of the Blockchain. The problem which miners need to solve in order to create a new block in the Blockchain is to find a hash generated by running the the SHA256 algorithm twice on the new block so that the number of leading zeros of the hash is less than the current difficulty specified by the bitcoin network. SHA256 is basically just a complicated algorithm that produces outputs that are effectively random. They are random in the sense that it is impossible to predict what output you will get for a given input, but if you use precisely the same input you will get the sense answer every time. If this sounds a bit complicated, don't worry, it took me ages to get my head around how it all works. Effectively, there is no way to shortcut the above process, SHA256 was designed so that there is no way to predict an input which will generate a given output. If I change the input by a tiny amount, the output will change completely, and there is no pattern to how the output is effected by a chance in the input. The only way to find a valid output is to brute force the problem. So essentially, the only way to mine a new block is to repeatedly attempt to create a new block using all the information about the transactions you would like to include and adding an arbitrary string to the end of the transactions, which you vary every time you calculate the hash of this input, until you find a value that satisfies the conditions set by the Bitcoin network. If someone else finds a solution before you, then everyone starts again with the new set of transactions. Total Hashing Power On average, every ten minutes somewhere in the world a miner will find a valid solution and mine a new block. Whenever the average time to find a solution gets too high or too low, the difficulty of the problem is decreased or increased automatically so as to bring the average time closer to ten minutes. The problem that needs to be solved by the Miners was designed in a clever way so that it could be made arbitrarily hard or easy depending on how many miners are attempting to Mine the network. What is the monetary value of successfully mining a Bitcoin block? We can easily check this by looking at the average transaction fees from the last few blocks that have been mined. For example in the latest block : blockchain.info/block/0000000000000000010465d2dc60e5bf41911b98411ee6b04632a97af41a5df9 The miner received a reward of 12.5 Bitcoins, and also received 1.5 Bitcoins in transaction fees. At today's exchange rate, a Bitcoin is worth around 3,000 USD, which means each block is worth 42,000 USD to the miner at today's exchange rate. Given six blocks are mined per hour, 24 hours per day. The total value of mining the Bitcoin network is approximately 6 million USD per day, or 2 billion USD per year! Given these massive sums up for grabs, there has naturally been a huge arms race in miners attempting to capture this value. Given the design of the SHA256 algorithm and the fact that the only way to mine Bitcoins is to brute force the problem, the only way to increase your share of the 2 billion USD pa is to increase the number of hashes you are checking per second. In fact we can track the total hashing power of the Bitcoin network and see how this has increased over the last 10 years, I took the following graph from Blockchain.info. We can see that the total hashing power has been increasing exponentially year on year. The total Bitcoin network is currently estimated as running at around 5,000 PetaHashes per second. Which in long form is 5,000,000,000,000,000 hashes per second. Bitcoin mining was originally carried out by miners using the CPU in a normal desktop computer, but as the number of miners increased, miners started to adapt by using GPU in their computer instead which is much more efficient. Once everyone started to use GPUs though, the next step was for miners to start using something called Field Programmable gate arrays. These are circuits which can be optimised to carry out specific operations very efficiently, so we can set one up that is optimised to carry out the operations that are used in the SHA256 algorithm very efficiently. The latest step in the arms race is the use of circuits called Application Specific Integrated Circuits (ASIC), these are circuits which are designed to do nothing but carry out the specific operations of the SHA256 algorithm extremely efficiently. While the Field Programmable Gate Arrays had been optimised by the people who had bought them to carry out the SHA256 algorithm, the ASICs can do nothing but carry out the algorithm. So due to the fact that the Bitcoin network uses the SHA256 algorithm to validate blocks, we have the weird situation that manufacturers have mass produced ASIC which have the sole function of carrying out the SHA256 algorithm millions of times a second. Who would have guessed that that would have happened ten years ago? The Mining Arms Race The point to remember when thinking about mining is that once the processing power of miners gets above a very small initial threshold, there is no benefit to the network as a whole in increasing the amount of total processing power. The Bitcoin network naturally increases the complexity of the problem that miners need to solve if the total level of hashing increases, so that it always takes approximately ten minutes to mine a block. Bitcoin mining really is an arms race in that if all miners agreed tomorrow to reduce their mining output by 90% there would be no negative effect on the network as a whole, and everyone would still receive the same share of the mining reward. Yet, as soon as one miner starts mining in a much more efficient way, all other miners need to do the same or risk losing out. What does it matter if all this effort is going into mining Bitcoins? The issues is that due to the sums involved, we are now globally spending a huge amount of money and computation power on carrying out what effectively counts as pointless calculations. If aliens visited us tomorrow they'd probably ask why we have a network of computers set up which are carrying out quadrillions of calculations per second of the same fairly uninteresting algorithm. Let's try to put the Bitcoin network into some context. For comparison, the largest Supercomputer in the world is currently the Sunway TaihuLight system at the National Supercomputing centre in Wuxi, China. It has over 10 million cores, and a max speed of 93 PetaFlops per second. Which means it can perform approximately 93,000,000,000,000,000 floating point operations per second. How does this compare to the total bitcoin network? It's impossible to compare the network directly given the fact that so much of the current hashing power is dominated by ASICs which are unable to do anything other than calculate the hash function. We can however attempt to make some comparisons by using other metrics as proxies. When I looked at the most common ASIC used by miners, the Antminer S7 looks to be one of the most widely used circuits by amatuer Miners. It has a hashpower of 4.73 TH/s and comes at a cost of 500 USD. If we divide the total hashing power of the network by the hashpower of the S7, we can derive a (very) rough estimate of the total cost of the hardware currently used in the bitcoin network. This comes out as 500 USD * 5,000 Quadrillion / 4.73 Trillion = 528m USD. We'll use this number later on to estimate the size of the supercomputer we could have brought instead. Since the above estimate is so rough, let's think another way to estimate the total cost of the computing power making up the Bitcoin Network to give ourselves a range of values. If we think instead about the average annualised mining reward from the Bitcoin Network over the last year, and then think about the kind of investment returns Miners would be expecting from the investment in hardware, this will give us another estimate of the total amount spent on Mining equipment across the Bitcoin network. The average Bitcoin price over the last year, according to CoinDesk was 971 USD. I've put an image of the graph of the price over the last year below, but for the calculation I downloaded the Daily mid-price and then averaged accross the year. Assuming 14 Bitcoins received per block mined as per our analysis above, and 6 blocks mined per hour over the year we get a value of around 700 million USD as the average amount that the network as a whole received for mining bitcoins in the last year. Assuming a rate of return commensurate with the risk (let's say a range of 50% to 100%) and assuming this rate of return includes the cost of electricity. We are looking at a capital value of between 700 million/1 and 700 million/0.5 currently invested in mining the Bitcoin network. This alternative estimate gives us a range between 700 million USD and 1.4 billion USD spent on the hardware currently being used to mine Bitcoins. If we take this dollar value of the computing power being used to mine the Bitcoin network and compare it to the FLOPs per Second per dollar of the largest supercomputers in the world we can estimate the speed of the supercomputer we could have purchased instead. The Sunway TaihuLight system, which is currently the most powerful in the world, is estimated to cost around 273 million USD. So by this metric, the Bitcoin network could be said to be twice as powerful, 3 times as powerful, or even 5 times as powerful as the world's largest supercomputer depending on which estimate of the cost of the Bitcoin hardware currently being used. The frustrating conclusion is that we have collectively gathered a network with a total computing power multiple times that of the largest supercomputer in the word and yet all the computation we are carrying out is effectively useless. The proof-of-work underlying Bitcoin is essentially an arbitrarily hard piece of computing who's only utility is to secure the Bitcoin network. Of course this in itself is a valid purpose, but it definitely does not warrant more computing power than the top 5 super computers in the world combined! Gridcoin I'm not the first person to notice this problem and there have been attempts to develop alt-coins which harness this computing power to attempt to solve useful problems. One such alt-coin is Gridcoin, which randomly assigns a reward to a miner who is mining Gridcoin in proportion to the amount of useful computation they have contributed in the last ten minutes. Users of Gridcoin can select which project they contribute computing power to from a centrally maintained whitelist. The whitelist includes projects such as simulating Protein Folding (used in medical research), searching for Prime Numbers, running climate models, and analysing data from particle physic experiments. The current issue with Gridcoin though is that it relies on a centralised system to allocate the mining rewards. This undermines many of the benefits of the Bitcoin system which was designed to be a decentralised, non-trust based system. What we ultimately need is a system which combines the decentralised Bitcoin protocol, with a system that rewards some sort of useful proof-of-work algorithm. Bitcoin - Who is Satoshi Nakamoto21/4/2017 Who is the mysterious Satoshi Nakamoto? Let me pitch you an idea for a movie - following the 2007 financial crisis, fed up with the corruption of the modern financial system, a lone genius creates a new virtual currency with which he aims to completely undermine the modern baking system. This new currency allows instantaneous online payments to be made with minimal transaction fees and with almost complete anonymity. Better yet, this system is completely decentralised, requiring no central bank or governing body. To further add to the mystique, our hero decides to eschew fame, remaining completely anonymous while netting himself a cool USD 1 billion in bitcoins. But our hero decides to walk away and leave the USD 1 billion in bitcoins untouched on a public ledger on the internet, proving to the world that he was never in it for the money. All that he leaves behind is a name - ***Cue dramatic music*** - Satoshi Nakamoto, Chuck in some bad guys and a love interest and we've got the making of a Hollywood blockbuster! This is of course the true story of the origins of bitcoin. Unsurprisingly, there have been many attempts to find the true identity of Satoshi Nakamoto, every six months or so a new candidate is found and the media jumps on the bandwagon, but none of the candidates so far have been really convincing. I thought I'd do a bit of digging myself and see what we have to work with, and what we can know for certain., and what we can speculate about. So what info do we have work with? Satoshi left behind the following:
The Forum Posts Almost all the forum posts are highly technical, and there is very little to be gleaned about Satoshi's identity from the content of the posts. I did look through most of them just in case. But based on an idea in Satoshi's Wikipedia article, I have graphed the timestamps from the forum posts. All the forum posts can be found on the following website, which I scraped using web scraper and then chucked into excel to extract the timestamps: satoshi.nakamotoinstitute.org/ We can see that there is a clear trend for most posts to be made between 4pm and 11pm, with almost none being made between 5 am - 1 pm, suggesting that this is when Satoshi is asleep. Based on most people I know who don't have a 9-5 job, but are still involved in IT, this is a pretty reasonable sleeping pattern for someone living in a GMT time zone. If we assume that Satoshi has a conventional sleeping pattern though, then we would expect him to be living somewhere on the US East Coast. Both of these seem plausible to me, it does gets less plausible though to consider someone living much further east than Europe. I then graphed the weekday of each forum post. Which shows a fairly stable pattern of posts through out the week. Nothing too surprising here. It has also been noted that the blog posts from Satoshi use British spellings rather than US spelling. Let's also test that. I collected a list of words that are spelt differently in UK and US English, and cross referenced it against the blog posts we scraped earlier. The following words were all used by Satoshi but with the UK spelling. amortised colour decentralised favour fulfil gauge grey greyed labelled labelling liberalising modernised optimised prioritising reorganised This strongly suggests that the author is most familiar with British English over American English. It's also been noted (and I concur) that Satoshi's posts are written like a native English speaker. He uses common idioms well and his grammer and structuring all give compelling reasons to think that he is a native English Speaker .This has been put forward by some as definitive proof that he is British. I'm not so sure though, having met Europeans who through having a lot of exposure to English speakers growing up, now sound like native English speakers when writing or texting. Leaving the blog posts for the time being, let's look at the emails in the mailing list. Mailing List Emails The mailing list was a Cryptography focused mailing list, established in 2000, and can be found through the following link: www.metzdowd.com/mailman/listinfo/cryptography The website gives the following introduction to the mailing list. "Cryptography" is a low-noise moderated mailing list devoted to cryptographic technology and its political impact. Occasionally, the moderator allows the topic to veer more generally into security and privacy technology and its impact, but this is rare. WHAT TOPICS ARE APPROPRIATE: "On topic" discussion includes technical aspects of cryptosystems, social repercussions of cryptosystems, and the politics of cryptography such as export controls or laws restricting cryptography. Satoshi began posting to the mailing list in November 2011, and his first post was an introduction to his new bitcoin system, it gave a brief overview and then linked to the paper he had written which contained the technical details. It therefore seems that the mailing list was a method of generating interest for his already fleshed out system rather than something he contributed to already. I was initially slightly suspicious of how well written the emails are compared to the forum posts. It's been suggested by a few people that Satoshi might actually be the name chosen by a group of collaborators rather than one single person. On consideration though, the mailing list is said to be 'highly moderated' and therefore it should perhaps not be surprisingly that Satoshi has polished his grammar and writing when sending emails to the mailing list. Plus you'd expect quite a bit more care when replying to an email rather than making a forum post. To be honest I struggled to gleam much more from the emails other than a couple of interesting quotes which I've included at the end of this post. The Genesis Block Satoshi created the first block of the first blockchain. Since there were no preceding transactions, Satoshi was able to insert a message into the block. The message he selected was: "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks" This tells us a few things. Firstly, it's evidence that no Bitcoins were mined prior to this date. Secondly, it could be seen as a comment on the financial bailout that was ongoing at the time and which may have cause Satoshi to develop Bitcoin in the first place. And finally, it's another link to the UK, given Satoshi has selected a British newspaper to timestamp his first block. Other Random Thoughts:
Here are some additional thoughts on the Satoshi question which I have included in the hopes that someone else might find them useful. Since Satoshi stopped working on Bitcoin in 2011, perhaps we should be looking for someone who has made interesting contributions to a different project since then? Would a better programmer than me be able to spot idiosyncrasies in Satoshi's coding style which could be traced in other places? What if someone trawled Github and looked for these quirks? Some people have attempted a Stylometric Analysis. I haven't looked into this at all, but it's something I might look into at another point. Satoshi is the Japanese name of the main character (Ash Ketchum) in Pokemon and also the name of the creator of Pokemon, Satoshi Tajiri. Are there any other famous Satoshis? Or Famous Nakamotos? I did a quick google, but I couldn't find anyone who stood out to me. Satoshi was familiar with Mises' regression theorem, which is a pretty niche economic concept from Ludwig von Mises, an economist from the Austrian School. The Austrian School are famously associated with libertarian or right wing anarchist views. Satochi seems pretty au fait with libertarian concepts generally Prior to Bitcoin's rise, crytocurrencies were a very niche interest, perhaps it would be worthwhile to look at who was going to conferences, writing papers, working in the industry, etc. prior to 2007. It should be a relatively small group of people, and you would imagine that Satoshi would have a footprint in there somewhere. Some interesting quotes from Satoshi: Yes, but we can win a major battle in the arms race and gain a new territory of freedom for several years. Governments are good at cutting off the heads of a centrally controlled networks like Napster, but pure P2P networks like Gnutella and Tor seem to be holding their own. ... I appreciate your questions. I actually did this kind of backwards. I had to write all the code before I could convince myself that I could solve every problem, then I wrote the paper. I think I will be able to release the code sooner than I could write a detailed spec. You're already right about most of your assumptions where you filled in the blanks. ... It's very attractive to the libertarian viewpoint if we can explain it properly. I'm better with code than with words though. ... I believe I've worked through all those little details over the last year and a half while coding it, and there were a lot of them. The functional details are not covered in the paper, but the sourcecode is coming soon. I sent you the main files. ... Banks must be trusted to hold our money and transfer it electronically, but they lend it out in waves of credit bubbles with barely a fraction in reserve. Conclusions? To draw a few tentative conclusions, we seem to be looking at: A native English speaker. Who picked a Japanese pseudonym. Who favours British English over US English. Who selected a British newspaper to timestamp his genesis block. Who's background is primarily coding based. Who seems to hold libertarian views and be motivated by libertarian beliefs Who has an interest in Crytography and Crytocurrencies which stretches back to at least 2007. And who appears to be operating either on the East Coast or on a Western European time zone. Surely there can't be many people out there who meet all these criteria? |
AuthorI work as an actuary and underwriter at a global reinsurer in London. Categories
All
Archives
April 2024
|