abstract: Bitcoin is a "crypto currency", a decentralized electronic payment scheme based on cryptography. It implements a particular type of peer-to-peer financial anarchy. It has very recently gained excessive popularity and attracted a lot of attention in the mainstream press and media. Scientific research on this topic is less abundant. A paper at Financial Cryptography 2012 conference explains that Bitcoin is a system which *uses no fancy cryptography, and is by no means perfect* .
  .
  Bitcoin depends on well-known cryptographic standards such as SHA-256. In this paper we revisit the cryptographic process which allows one to make money by producing new bitcoins. We reformulate this problem as a specific sort of Constrained Input Small Output (CISO) hashing problem and reduce the problem to a pure block cipher problem, cf. Fig. . We estimate the speed of this process and we show that the amortized cost of this process is less than it seems and it depends on a certain cryptographic constant which is estimated to be at most 1.89. These optimizations enable bitcoin miners to save tens of millions of dollars per year in electricity bills.
  .
  Miners who set up mining operations face many economic incertitudes such as high volatility. In this paper we point out that there are fundamental incertitudes which depend very strongly on the bitcoin specification and that this is specification is NOT written in stone. The energy efficiency of bitcoin miners have already been improved by a factor of about 10,000 since bitcoin have been invented, and we claim that further improvements are inevitable. Better technology is bound to be invented, would it be quantum bitcoin miners. More importantly, the specification of the problem to solve is likely to change. A major change in the Proof of Work function have been proposed in May 2013 at Bitcoin conference in San Diego by Dan Kaminsky . However, any sort of change could be flatly rejected by the community which have heavily invested in ASIC mining with the current technology.
  .
  Another question is the reward halving scheme in bitcoin. The current bitcoin specification mandates a strong 4-year cyclic property. This cycle is totally **artificial** and is simply an artifact of the current specification. We find this property totally unreasonable and harmful and explain why and how it needs to be changed.
  .
  .
  .
  **Keywords:** electronic payment, crypto currencies, bitcoin, hash functions, SHA-256, cryptanalysis, CICO problem (Constrained Input Constrained Output), bitcoin mining, business cycles.
author: Nicolas T. Courtois$^{1}$, Marek Grajek$^{2}$; Rahul Naik$^{1}$
title:  The Unreasonable Fundamental Incertitudes Behind Bitcoin Mining

### Background: The Emergence Of Bitcoin

Bitcoin is a collaborative virtual currency and a decentralized peer-to-peer payment system without trusted central authorities. It has been invented in 2008 and launched in 2009. It is based entirely on methods and ideas already known for more than a decade . The audacity of was to actually put these ideas into practice and design a system able to function for many decades to come. However, ever since Bitcoin was launched in 2009, it has been presented by its technical architects as an experimental rather than mature electronic currency ecosystem.

In cryptography bitcoin is a practical payment and virtual currency system. However from the point of view of financial markets, it could be considered as a play currency, an experiment in the area of electronic payment. This is how it has started: a self-governing open-source crypto co-operative and a social experiment. Initially it concerned only some enthusiasts of cryptography and computer programmers who believed in it and supported it. It is not clear whether bitcoin was actually ever meant to become an equivalent or replacement of our traditional currencies governed by central banks. However bitcoin is expected to be a currency or money. Since 2010 a Japanese company Mt. Gox has started exchanging bitcoins against real currency in a professional way. To this day this single company accounts for the majority of such transactions worldwide. However the press and media coverage and the appreciation of bitcoin on the markets made that bitcoin is no longer a play currency and is taken much more seriously.

Bitcoin is frequently associated with a criticism of the sorry state of the global financial industry. All bitcoin transactions are descendants of one single initial transaction which contains a reference to a paper about a government bailout for banks which have appeared in the British newspaper The Times on 3 January 2009. In contrast bitcoin does not allow any government intervention and it is claimed to be immune against inflation. In this respect bitcoin is sometimes compared to gold .

#### Bitcoin Hits The Sky

In March/April 2013 bitcoin have attracted a lot of the mainstream press and media in a very close relation to the aftermath of the bank deposit crisis in Cyprus . Verbal speculation was accompanied by increased trading and speculation and the apparent entry of professionals such as hedge funds into bitcoin trading. In a space of a few weeks, the market price paid for one bitcoin has more than tripled, attained about 200 dollars, then it fell more than 50 percent in a few hours .

This event however cannot be seen as a purely financial event: a major upgrade of Mt Gox exchange web site took place also at this moment. Likewise bitcoin was very strongly influenced by its growing popularity and media coverage. Interestingly bitcoin did not fall anywhere near its levels from before March 2013. On 13 April 2013 the leading newspaper The Economist explains that bitcoin is here to stay, that it is a future of payments and calls it *digital gold* . It is possible to see that the correction which followed an earlier crash (cf. Fig. ) has finished at this precise moment. Even though the press and media have actually debated and criticized bitcoin a lot. It is like bitcoin has achieved maturity and become a mainstream financial asset on that very day. At the moment of writing on 22 October 2013 it has again been tending towards 200 dollars.

### Bitcoin in Question

Recent popularity makes that many people ask themselves a lot of questions about bitcoin which challenges our traditional ideas about money and payment.

#### Is Bitcoin a Currency?

Some commentators explain that bitcoins function essentially like any other currency . The Economist calls it a currency, digital money, and compares it to *digital gold* . Other authors, such as Paul Krugman, Nobel price in economics, have many times criticized bitcoin as just one of possible ways to pay electronically which would not have all the desirable characteristics of a modern currency . According to the Forbes magazine bitcoin is not money because it does not have a stable intrinsic value . However all these arguments seem to be rather superficial. There are much more serious questions at stake. Money has benefited from extremely **strong legal protection** in most countries for centuries. This is combined with effective **policing of fraud** which costs a lot of money. Major governments with their armies stand behind their money. All this makes that counterfeit currency rates with coins and paper money are surprisingly low. They are roughly just 1000 times smaller compared to higher rates of fraud which are systematically seen with modern payment technologies: for example we have known massive amounts of bank card fraud such as skimming.

In this paper we will present some additional arguments to the effect that bitcoin cannot (yet) in the current state be called a currency, mainly due to its inherent built-in instability cf. Section . These properties however, could be eventually fixed.

#### Some Interesting Good Points About Bitcoin

Not all is bad with bitcoin. Bitcoin has a lot more to offer than prospects to make or lose a lot of money in yet another high-tech investment scheme, with interrogations whether it is just another Ponzi scheme. It has some very interesting properties: it allows payments to be sent in a short time. Payments are irreversible. It offers some degree of public verifiability, and transparency for all bitcoin transactions without any exception. Bitcoin transactions can to some extent be traced and connected to each other, see . It could be regulated by governments like any other financial market.

Bitcoin shows that with modern technology it may radically cheaper than previously thought to run an electronic payment system. The cooperative and democratic character of the bitcoin currency should be a model for the financial industry which has lost a lot in confidence of the public.

More importantly bitcoin has a major built-in feature: an artificially limited and strictly controlled monetary supply. This built-in deflationary scarcity contrasts with the potentially unlimited monetary expansion of major traditional currencies which have been observed in the recent years. This has been praised by many commentators and at occasions bitcoin is presented as a miracle remedy against inflation. The Economist have famously compared bitcoin to *digital gold* .

Unhappily as we will see in this paper, if we look at the details, we will see that this mechanism of decreasing returns is designed in a highly problematic way, cf. Section . This for no apparent reason. We will also explain how to fix this problem.

#### Bitcoin Fundamentals

It is not true that bitcoins have no intrinsic value . On the contrary. A lot value comes from the network effects . The network of bitcoin nodes has acquired some serious value. The network of bitcoin supporters and users and their faith in bitcoin adds more value. Its popularity is astounding. The easiness with which payments can be made within this system is valuable. The security properties of how hard it is to make bitcoins, steal them, or create new bitcoins, have some price. All these properties add value to bitcoins. In general the value of bitcoins comes from distinct sources than that of the traditional financial instruments, but one cannot possibly deny that bitcoin has some value, which is considerable if we look at it the current market price.

Moreover this value grows with time as the network grows. It is widely known that the value of networks grows faster than linearly. Networks are expected to generate value which is more than the sum of the parts which constitute the network . The particularity of the bitcoin network is that it has accumulated an astronomical amount of "cryptographic evidence" which testifies about the whole bitcoin history in detail, and which it would be very hard and extremely costly to falsify. In this aspect bitcoin performs all the desired functions of an electronic notary system which is there to certify its own past history. Such a system is also valuable.

In this paper we look at bitcoin from the point of view of a curious cryptologist and an information security expert. Ideally we would like to see if bitcoin is secure and what kind of attacks are possible against bitcoin, and maybe how it can be improved, cf. . However we cannot pretend to cover all these questions in one paper. Instead we concentrate just on the questions of bitcoin mining. We look at the cryptographic foundations of bitcoin and also consider some potential broader business and financial consequences of these questions. In particular we look at various factors which are likely to affect the stability of bitcoin as a currency in very substantial ways and at additional factors which will affect the bitcoin market participants and investors.

# Bitcoin and Bitcoin Mining

### The Challenge

Each time a certain type of good, medium or technology is widely adopted as a mean of exchange and payment, and regardless if we would really agree call it "a currency", it has certain pre-existing characteristics. These are its (relative) rarity, security understood as important difficulty to forge this "currency" and/or to commit fraud. The rules which govern the adoption of cryptographic technology are not dissimilar. In cryptography, when a certain cryptographic scheme is massively adopted, it is so because it is hard to break. Money has somewhat to resist fraud theft and forgery, cryptography has to withstand the presence of hackers and code breakers. Both emerge through the process of **natural selection** in which different types of payment technology or/and different sorts of cryptography co-exist. With time some solutions emerge as a preferred choice however a certain bio-diversity always remains.

In this paper we study bitcoin with particular attention paid to the process of bicoin mining, which is the specialist term given to the process by which new bitcoins are created. We are going study this question from many different angles. It is a cryptographic puzzle, but also a disruptive technology in monetary history. It also is method to make money for miners, a method to own and control the bitcoin currency, a method to police the bitcoin network and enforce the compliance with a certain version of the bitcoin specification, etc. Later in Part we are going to to study in a lot of detail one particular technical question in symmetric cryptography to see if there exists an improved method which allows one to mine bitcoins faster.

### What Are Bitcoins and Bitcoin Mining

Bitcoins are a type of digital currency which can be stored on a computer, though it is advisable to store them rather in a more secure way. For example on paper and in a safe, or on a smart card or another highly secure platform.

Bitcoins use the concept of so called "Proofs or Work" which are solutions to certain very hard cryptographic puzzles based on hash functions. However these solutions are NOT bitcoins. The puzzles are rather part of the bitcoin trust infrastructure. In fact the puzzles are connected together to form a chain and as the length of this chain grows, so does the security level. Bitcoins are simply awarded to people who produce these "Proofs or Work" which is a very difficult task.

Ownership of bitcoins is achieved through digital signatures: the owner of a certain private key is the owner of a certain quantity of bitcoins. This private key is the unique way to transfer the bitcoin to another computer or person.

The operation of so called *bitcoin mining* or creating bitcoins out of the thin air is not only possible. It is essential, it is encouraged, and it is a crucial and necessary part of the Bitcoin ecosystem. Cryptographic computations executed by a peer-to-peer network of a growing network of currently some twenty thousand independent nodes are the heart of the security assurance provided by this virtual currency system. It would be very difficult and extremely costly for one entity to corrupt all these independent people. The sum of all this collective computational work provides some sort of solid cryptographic proof and prevents attacks on this system. This also how the network polices itself: miners are expected to approve only correctly formed transactions. Bitcoin implements a specific sort of distributed and decentralized electronic notary system without a central authority. Well almost. Certain decisions about how the system works, what exactly the bitcoin software does and how , are still pretty centralized. They are subject to adoption or rejection by the wider community.

In a nutshell, bitcoin miners make money when they find a 32-bit value which, when hashed together with the data from other transactions with a standard hash function gives a hash with a certain number of 60 or more zeros. This is an extremely rare event. It is in general believed that there is no way to produce these data otherwise than by engaging in very long and costly computations. This question of feasibility of bitcoin mining and possible improvements is a central question in this paper and we study it later in more details.

### Are Bitcoins Secure?

Is Bitcoin a secure distributed system and in what sense it is secure remains unclear. As far as we can see nobody yet claimed that bitcoin is provably secure as we understand it in cryptography with a formal definition and a security proof. On the contrary, **bitcoin clearly isn't a state of the art cryptographic system**, see . It is a practical system with many potential shortcomings. In this respect it has been a tremendous success and it has no serious competitor at the present moment.

For the time being we need to assume that the security of bitcoin payments is based on the shared belief that there is no way to hack the bitcoin system in any substantial way. Officially bitcoin is experimental, it does not claim to be secure. In fact the security of the bitcoin protocol and software **has already been broken once**. On 15 August 2010 somebody has created an unbelievably high quantity of 184 billion of bitcoins worth literally trillions of dollars out of nothing and made the distributed system accept it, see . The protocol system and software have been patched immediately and bitcoin protocol is now at version 2. All bitcoin adopters worldwide had to agree to discard this strange attribution of money. The only way to recover from this sort of error is by consensus. There were also major cyber attacks with concrete exploits against bitcoin software and systems, see . In just once such incident 17000 BTC were lost (or maybe stolen) which is worth millions of dollars. These embarrassing incidents are not very widely publicized.

Moreover there are some non-technical reasons to be very cautious with bitcoin. Quite interestingly the creator of the system was apparently a pseudonym and seems to have disappeared. As far as we can see no serious academic cryptologist has publicly expressed their faith in bitcoins and their security. On the contrary, the cryptographic community, as well as the software engineering community, are full of highly capable code breakers able to find new attacks and exploits on secure systems such as bitcoin every day.

A major reference in this area is a paper published at Financial Cryptography 2012 . This paper clearly explains that *hundreds of academic papers have been published to improve the efficiency and security of e-cash constructions*. At the same time the authors explain that bitcoin is a rather simple system which *uses no fancy cryptography, and is by no means perfect*. Then they analyse the security of the bitcoin system from numerous angles and consider many interesting attacks, see .

In this paper we look mostly at the questions of how bitcoin works and how exactly bitcoin mining works. We try to see if it is possible to improve this process to be more efficient. Later we will look at what are the consequences of what we have learned.

### The Main Activity of Miners

The goal of the miner is to solve a certain cryptographic puzzle which we will later call **a CISO Hash Problem**. The solution will be called **a CISO block**. Great majority of miners ignore what exactly they are doing, they are running either open source software or have purchased some hardware to do mining very efficiently. However miners must know that the operation is very timely and that they need to be permanently connected to the network. The solutions to these puzzles are linked to each other and form a **unique** chain of solutions. This is usually called *the block chain*. The whole block chain is published on the Internet. The whole of it can for example be consulted at <http://blockexplorer.com/>. All new blocks which are found need to be broadcast to all network participants as soon as possible. The miners need to be very reactive and they do it because it is in their interest (note: a very recent paper proposes another strategy ). They need to listen to broadcasts in order to receive the data about recent transactions which they are expected to approve. Then they need need to broadcast any solution (a CISO block) which they have found as soon as they found it, because their solution is likely to be part of the *"main chain of blocks"* only if it is widely known. Once the solution is known it "discourages" other miners from searching for the same block. Instead they can concentrate on searching for the next block which will confirm the present block and will make the miner be able to claim hist a reward for producing this CISO block.

Our goal is to clarify how this system works. In the present section we consider a static computational problem which needs to be solved. In Section we will further explain the dynamics of bitcoin production in the long run: how this problem changes with time in a predetermined way.

#### Bitcoin Mining vs. Block Cipher Cryptanalysis

The problem of bitcoin mining is very closely related to well known problems in cryptography. One crucial question is as follows: how does the bitcoin mining differ from traditional questions in cryptanalysis of block ciphers and hash functions and is there a more efficient way to mine bitcoins.

First we are going to briefly describe the problem as a static computation problem about a certain block cipher. Then we are going to look at how the problem evolves in time and how solutions to the CISO problem are converted to shares in the bitcoin currency. Finally we are going to study what the possible solutions and optimizations are.

#### Constrained Input Small Output (CISO) Hashing Problem

New bitcoins can be created if the miner can hash some data from the bitcoin network together with a 32-bit random nonce, and obtain a number on 256 bits which starts with a certain number of zeros. We call this problem CISO: **C**onstrained **I**nput **S**mall **O**utput.

This can be seen as a special case of a problem which is sometimes called CICO which means **C**onstrained **I**nputs **C**onstrained **O**utputs problem. This terminology have been introduced recently in the study of the most recently standardized U.S. government standard hash function SHA-3 a.k.a. Keccak. SHA-3 is the latest hash function in the SHA family and a successor to SHA-256 used in bitcoin . It is possible to claim that this means that SHA-256 of Bitcoin is considered by the United States NIST and a broader cryptographic engineering community as NOT sufficiently secure for long term security. This sort of CISO/CICO problems are not new, they are very frequently studied in cryptanalysis of hash functions since ever, and endless variants of these problems exist for specific hash functions, some examples can be found in .

The exact details of the specific Constrained Input Small Output (CISO) problem which we have in bitcoin are described below. It can be obtained by the inspection of the bitcoin source code, see . Both code for bitcode mining and for the whole bitcoin network is open and therefore the process is relatively transparent.

#### (CISO) Hashing Problem Internals

On Fig. we show the cryptographic computation which is executed many many times by bitcoin miners. This picture emphasizes the internal structure inside SHA-256 hash function. The inputs and contraints on these inputs are explained in details in Section below.

SHA-256 is a hash function built from a block cipher following the so called Davies-Meyer construction. The principle of the Davies-Meyer construction is that the input value is at the end added to the output and that it transforms an encryption algorithm into a "hashing" algorithm, a building piece of a standard hash function. The underlying block cipher has 64 rounds and thus a 2048-bit expanded internal key (64x32 bits). This key is obtained from the message block to be compressed, which has 512 bits at the input and is expanded four times to form this 2048-bit internal key for our block cipher. In one sense on Fig. we convert the problem of bitcoin mining or of solving CISO hash puzzles, to a specific problem with three distinct applications of the block cipher which underlies SHA-256 connected together to form certain circuit. More details about these inner workings of SHA-256 as it is used in Bitcoin mining will be given in Section .

#### The Main Objective of CISO Hashing

The goal of CISO hashing is to produce solutions which are correctly formed in the sense that they satisfy all the required conditions and constraints, which we are going to explain in details in Section . The miner is trying to find a solution to the CISO problem such that

$$H2 < \mbox{{\tt{target}}}.$$

Here `target` is a large integer which is a global variable for the whole bitcoin system worldwide, and on which all the participants worldwide are expected to agree. The value of `target` slowly changes with time and is adjusted approximately every 2 weeks. More details are given below in Section .

The job of bitcoin miners is to find these solutions and publish them. They are rewarded with some bitcoins for their work. In 2013 the reward is 25 BTC (25 bitcoins) per valid solution. How exactly this reward works and how it changes over time will be explained later.

It is generally believed that there is no other method to achieve success than trial and error; hashing at random as depicted on Fig. until a result with a sufficient number of leading zeros is found. However this is unlikely to be true, there is always a better way, at least slightly, see Section .

#### The Inputs and Input Constraints In CISO Hashing

A number of data fields are present as inputs to the CISO problem, cf. Fig. . Some data are fixed or change very slowly and these are indicated in green on Fig. . Other data need to be adjusted by the miner in order to obtain a solution however they still change very slowly. Such data are indicated in yellow on the main picture. Data which change the most frequently are indicated in red: these are "hot" data which need to be re-computed each time the nonce changes.

Bitcoin is a live distributed system and the exact conditions required for the data to be consider valid are essentially fixed and known, however they are likely to evolve with time in subtle ways. Rules have already been and are likely to be altered during the operation of the system. They also depend on the consensus of participants in the system. It is generally admitted in the bitcoin community that there could be and should be many different versions of the software which co-exist. This is because if all the software came from one single source, bitcoin would cease to be a system independent from any central authority and would develop a serious syndrome of a single point of failure. Therefore bitcoin software should be diverse. We could even postulate that nobody should be excluded from making their own software even though we might be worried about Denial of Service attacks. In practice the reality is different: the original Satoshi software conserves a prominent position.

In what follows we are going to describe what different inputs are. We need to pay attention to the degree of freedom which is allowed: to what extend the miner is able to select different values in order to achieve the desired result. We have:

1.  **Version number on 32 bits.** This is an integer which represents the version number of the bitcoin software. It defines the rules which govern the blocks, which blocks could be accepted as valid. It is essentially a constant, since the creation of the system in 2009 it has always been equal to 1 then it became 2. At the time of writing new blocks are typically version 2 and it has been announced that very soon the community will stop accepting blocks generated compliant with older version 1 rules.

2.  **The previous block on 256 bits.** Or more precisely a hash on 256 bits of all the data of the previous CISO block encoded in a specific way. Each new block is added at the end of the chain of blocks. Ideally there is only one official chain of blocks.

    The miner has essentially no choice, a new CISO block is created approximately every 10 minutes and it is broadcast in the peer to peer network (and published on the Internet) as soon as possible. The current block very quickly becomes obsolete. Either miners will now use it as a previous block, or they will use another freshly generated solution. The solution is NOT unique however there is only one winner (in the long run). Each miner who produces a solution wants this solution to be known by the highest possible number of other miners and ahead of any competing solution. It is a race where every microsecond counts.

    The process of generating new blocks is a sort of lottery and the probability that there will be two winners in a very short interval of time is low. It is the miner's responsibility to check very frequently if a solution have not already been found. If this is the case, it is not in his interest to find another one later on, his chances to succeed decrease quickly with time. On the human and technical/software side however, network propagation makes that not all participants have the same view of which solution was the first, and there is a real possibility to have disputes. Potentially bitcoin could split into two systems which do not recognize each other and which operate two independent ever growing blockchains. In theory there is a so called Longest Chain rule which allows to solve this problem . In practice it is a bit different. The Longest Chain rule might be hard to enforce. People may rather trust a well-established website than siome votes which come from the (more obscure) peer-to-peer network. They could suspect or resist an attack by a powerful entity. They can simply agree to disagree because they have spent some substantial money on electricity on one version of the chain.

3.  **The Merkle root on 256 bits**. This is a sort of an aggregated hash of many recent events in the bitcoin network which certifies that the system recognizes all of them simultaneously as being valid. Moreover it also has a **self-certifying property**. It also hashes and certifies the public key of the future owner of this freshly created portion of bitcoin currency which this block is intended to embody, as soon as it is in turn confirmed by few other CISO blocks.

    The current CISO block which the miner is trying to create by solving the current CISO problem and all subsequent CISO blocks will provide an accumulation of evidence about all these events which will be increasingly secure and increasingly hard to falsify with time. This security guarantee increases with time. It is achieved because miners expend a lot of computing power, the number of miners is increasing, and more recently they use specialized devices with increasing fixed (equipment) costs. All these things are increasingly hard to imitate.

    Interestingly the value of the Merkle root can (and needs to be) influenced by the miner as explained below. First of all it is clear that miners do have some discretionary powers and should be able to collude and/or select which transactions are going to be recognized by the system. However the transaction fees which are decided at the moment of making a transfer from one bitcoin address to another are an incentive to include every single transaction. Thus the miner is able to collect hundreds of transaction fees for each block generated.

    The Merkle root value is always produced by a hash function which is expected to behave as a random oracle. This means that the miner can influence this Merkle root value but only very slightly, basically by trial and error.

4.  **Timestamp on 32 bits**. This is the current time in seconds. The miner can hardly change it. This would be extremely risky as another solution could be submitted at any moment. There are only 600 seconds in 10 minutes.

5.  **Target on 32 bits**. More precisely the global variable `target` is on 256 bits and what is stored here is a compressed version of `target` which is frequently called $\mbox{{\tt{difficulty}}}$. We have $\mbox{{\tt{difficulty}}} \approx
    %8,974,296$
    %21,335,329\approx 2^{24.4}$ %at the moment of writing on 7 July 2013.
    267,731,249\approx 2^{28.0}$ as of 22 October 2013. This `difficulty` is a real (floating) number which is at least 1 and which is stored in a 32-bit format. We have $\mbox{{\tt{difficulty}}} \cdot 2^{32}
    =  1 / \mbox{{\tt{probability}}}
    =  2^{256} / \mbox{{\tt{target}}}$.

6.  **Nonce on 32 bits**. This nonce is freely chosen by the miner. Interestingly the nonce has only 32 bits while the current value of `target` makes that the probability of obtaining a suitable $H2$ by accident is as low as $2^{-60.00}.$

    This means that the miner needs to be able to generate different versions of the puzzle with a different Merkle root (or with other differences)

7.  **Padding+ Len has 384 bits for H1 and 256 bits for H2**. These are two constants due to the specification of SHA-256 hash function which is used here twice with data of different sizes: the input hashed has 640 and 256 bits respectively in each application of SHA-256. These two values never change.

With respect to the input data requirements and constraints above and the output constraint $H2 < \mbox{{\tt{target}}}$ we have:

### Evolution of The Difficulty of CISO Puzzles With Time

The integer `target` is system-wide variable which should be the same for all bitcoin miners at any given moment. From the point of view of the miner it should be considered as a constant. It changes with time according to pre-determined rules. It determines how hard it is to solve the CISO problem. It is implements self-regulation. The `target` value is adjusted simply in such a way that the total number of CISO blocks found by all miners on our planet taken together is constant in a given period of time.

#### Moving Target - Regulation Of Speed At Which CISO Blocks Are Generated

More precisely and according to the rules embedded in current bitcoin software, on average one block should be generated every 10 minutes. This regulation is achieved by observation of the speed at which shares have been generated in a fixed period of time and adjusting the global variable `target` accordingly. The exact value `target` changes roughly every two weeks, or when exactly 2016 new blocks have been produced. It goes without saying that the actual speed at which the blocks are generated is not uniform, however it remains close to uniform.

As of 22 October 2013 we have $$\mbox{{\tt{target}}} \approx 2^{256-60.00}.$$ This current probability of $2^{-60.00}$ corresponds to the requirement of having 60 leading zeros, and in fact slightly more or less slightly less than 60, the exact rule is simply that the equation $H2 < \mbox{{\tt{target}}}$ needs to hold. The value of $\mbox{{\tt{target}}}$ changes quite frequently.

This current probability of $2^{-60.00}$ is really **the** success probability for mining by hashing the appropriate data at random with a double application of the hash function (as required cf. Fig ). This is already an extremely small figure. It makes bitcoin mining very difficult. It reflects the fact that many people have already solved many CISO puzzles and obtained bitcoins as a reward. Tens of thousands of people worldwide mine bitcoins with increasingly powerful computing devices. Accordingly the difficulty increases which is necessary in order to keep limited monetary supply in the system. At the moment of writing the global hash rate in the network was already 3000 TH/s and has increased about 50 times in the previous 6 months.

**Remark 1.** Typically `target` decreases with time. However it can also go slightly up in order to insure that CISO blocks are produced at a uniform speed. It should and could substantially increase if for some reason the global production of CISO blocks goes down, for example due to increased electricity prices or important "real money" capital outflows in the bitcoin market. Such events are more than likely to happen, see Section .

**Remark 2.** Initially in early 2009 the probability was only $2^{-32.0}$. Back then it was 256 million times easier than today to solve CISO puzzles. Many early adopters of bitcoin have made a lot of money. One of the well-known problems of bitcoin is the problem of hoarding: a substantial proportion of bitcoins in circulation is not used.

**Remark 3.** It is also widely believed that many bitcoins have been lost because their owners did not think it would ever be worth some serious money. Even though all bitcoin data are public there is no way to tell the difference between bitcoins which are saved (and could be sold or exchanged later), from those which have been lost. Therefore is it not correct to believe that the monetary supply of bitcoins is fixed. We can only say that it is upper bounded and limited by the existing production and a cap of 21 million bitcoins to be ever produced. However there is no way to know how many bitcoins are in *active* existence.

# How To Speed Up The Bitcoin Mining Process

### Is There A Better Way?

In this part we look at a pure specialist question which pertains to symmetric cryptography, of whether there is a cryptographic "shortcut" attack: simply a method of mining bitcoins faster than brute force, or faster than the trivial method in which the SHA-256 hash function is a black box. The answer is trivially yes, such a method trivially exists and most developers of modern bitcoin miner hardware have already applied various tricks which enhance the speed or/and decrease the cost. However until now there was no public discussion of these questions and it was not possible to see how far one can go in this direction. In this paper we describe a series of more or less non-trivial optimizations of the bitcoin mining process. These optimizations are quite important as considerable computing power is already expended on our planet on bitcoin mining .

The question is what is the fastest possible method for bitcoin mining, given the specific structure of Fig. and can we save some of the gates needed for this task. The answer is yes we can.

In this paper we are the first to develop such techniques openly and publish them. We have invented these techniques independently from scratch and to the best of our knowledge they are free of any intellectual property rights. However we expect that ASIC designers have already done similar optimizations and some of these techniques could have been patented.

**Related Search:** One could also try to solve this problem by formal coding and "a software algebraic attack", see .

### Bitcoin Mining: Past Present and Future

#### Four Generations of Bitcoin Miners

Since 2009 bitcoin mining have gone through four major stages. Speed of bitcoin operations is measured in GH/s or mega hashes per second, as these operations are essentially about computing the standard hash function SHA-256 many times. No source gives a clear definition of H/s as the speed of SHA-256 is variable and depends on data length. We will go back to this question later.

1.  **First generation - software mining using CPUs**. Initially amateurs used to do these computations at home with open-source software.

    Various modern CPUs allow to achieve roughly between 1 and 5 MH/s per CPU core. With this technology miners have been expending quantities of energy to produce one Giga Hash per second. For example we have computed that with Intel i5 processors we would need some 50 4-core CPUs consuming 4000 Watts. The power consumption is therefore 4000 W per GH/s.

2.  **Second generation - software mining using GPUs**. Graphic card CPUs have revolutionized bitcoin mininng however they have NOT always achieved very important savings compared to CPUs. In some cases their electricity consumption is not much lower than with CPUs. Other solutions are more efficient and allow one to mine with a power consumption at least 10 times lower than with CPU mining see . For example with Radeon 7790 we obtain about 0.33 GH/s with a power consumption of 70 watts. This is about 210 W per GH/s.

3.  **Third generation - hardware mining with FPGAs**. Then miners have used FPGAs, not always achieving much higher speeds on devices with comparable cost and size, but decreasing the power consumption quite substantially, up to 100 times in comparison to CPU mining. For example ModMiner Quad based on a 45 nm FPGA requires about 50 W per Gh/s.

4.  **Fourth generation - hardware mining with ASICs**. Finally since mid-2013 miners are moving towards using ASICs, dedicated hashing chips. This further decreases the cost of mining and in particular power consumption many times. These devices can achieve as little as 0.35 W per Gh/s (pre-order announcement from Bitmine.ch expected to ship in November 2013).

As we can see, the energy efficiency of bitcoin miners have improved by a factor of nearly 10,000 since 2009. Recent developments have driven amateurs out of business and require them to invest thousands of dollars and purchase specialized hardware. At the same tile new innovative business ventures make money by selling increasingly sophisticated bitcoin mining devices. At the moment of writing the key players in this business are the US company Butterfly Labs, Swedish KNC miner, the Swiss company Bitmine.ch, their Russian competitor BitFury and few other.

#### Electricity Consumption of Bitcoin Mining Operations

There is abundant publicly available data about bitcoin mining. In April 2013 it was estimated that bitcoin miners already used about 982 Megawatt hours every day, enough to power about 30,000 U.S. homes or an equivalent of 150,000 USD per day in electricity bills. Still they would be able to make some 0.7 Millions of dollars in daily profits . At that time the hash rate was about 60 Tera Hashes/s.

At the moment of writing (22 October 2013) the hash rate has attained 3000 Tera Hashes/s due to a massive switch from GPU and FPGA mining to ASIC mining. However the power consumption have probably decreased due to the fact that recent mining devices are more efficient, see Section .

Bitcoin mining is known to be a highly profitable business. Some online tools for bitcoin profitability calculations based on the price of electricity are available, cf. .

#### Towards a Fifth Generation of Miners

We contend that there will be further improvements in the basic technology. In science, not everything can be improved. Interestingly in business, we are accustomed to see that more or less every technology which has some economic impact can be systematically improved every year. This is for example is reflected in the famous Moore's law. We see no reason why it should be otherwise with basic algorithmic technology behind bitcoin mining, this independently from the question of efficient hardware implementation of this technology. Such improvements are inevitable. In the long run, we believe that sooner or later there will be substantially better technology for bitcoin mining, would this be with quantum computers, software algebraic attacks , or a fundamentally different methodology than currently known. In order to fix the ideas we call this claim a *super optimistic assumption*.

The interesting aspect is that researchers who are able to generate such improvements will be able to make a lot of money by mining bitcoins and selling them at their market price, or by licencing their algorithmic improvements to miners. Moreover even a tiny energy efficiency improvement of 1 $\%$ could be profitable as it will generate already thousands of dollars of tangible savings on electricity bills. In this paper we show that such improvements are possible, see Section . However we do not claim that we are getting anywhere near the fifth generation of bitcoin miners. We have been only moderately successful in this task and therefore our result are like generation 4.1. of bitcoin miners, a small improvement. We offer our improvements free of charge and do not plan to patent them.

### Description of the Problem

In this section we re-visit and expand our technical explanation of the internals behind bitcoin mining fom Section . We recall that we can see the problem of bitcoin mining as a specific problem in symmetric cryptography which we called "CISO hash puzzle". It involves three applications of a block cipher. We have already outlined this approach on Fig. and now we explain it in all due details. Our analysis follows the NIST specification of SHA-256 and the inspection of the Bitcoin source code . We use vere similar notations and graphical conventions as the leading experts of SHA-256 in the cryptographic literature, see for example . We start by recalling how the SHA-256 has function is constructed and then we show how exactly it is used in bitcoin mining.

SHA-256 is a hash function built from a block cipher following the well-known Davies-Meyer construction in which the input is at the end added to the output. This construction is one of the known methods to transform a block cipher into a compression function. A compression function is a building block of a hash function with a fixed input size. It is typically equal to twice the output size. In our case we have a compression function from 512 to 256 bits, cf. Fig. .

The block size in this block cipher is 256 bits, the key size is 512 bits which is expanded to 64 subkeys on 32 bits each for each of 64 rounds of the cipher. The first 16 subkeys for the first 16 rounds are identical to the message and are copied in the same order cf. and later Fig. .

In addition in order to hash a full message, SHA-256 applies a Merkle-Damgard padding and length extension which makes it a secure hash function for messages of variable length. In the pre-processing stage, we must append one binary 1 and many zeros to the message in such a way that the resulting length is equal to 448 modulo 512, cf. . Then we append the length of the message in bits as a 64-bit big-endian integer.

An interesting peculiarity in Bitcoin specification and source code is that hashing with full SHA-256 is applied twice. This may seem as excessive: one "secure" hash function should be sufficient. It also makes our job of optimizing bitcoin mining substantially more difficult. In the first application of SHA-256 in Bitcoin mining the message has a fixed length of 640 bits which requires two applications of the compression function as shown on Fig. . In the second application SHA-256 is applied to 256 bits. Overall "in theory" we need three applications of the compression function as already shown on Fig. which we also show on a smaller-scale Fig. below for convenience.

It may therefore seem that a bitcoin miner needs to compute the compression function 3.0 times for each nonce and for each Merkle hash. In the following sections we are going to work on reducing this figure down to about 1.89 on average. Further details about inner mechanisms of SHA-256 will be provided later when we need them cf. for example Section .

#### Short Description of the CISO Hashing Problem

We recall from Section that new bitcoins can be created when the miner succeeds to hash some data from the bitcoin network together with a 32-bit random nonce and is able to obtain a number on 256 bits which starts with a certain number of 60 or more zeros.

We call it **C**onstrained **I**nput **S**mall **O**utput problem or shortly the CISO problem. On Fig. we recall the key steps in this process. The process needs to be iterated with different values of MerkleRoot and different 32-bit nonces until a suitable "CISO configuration" is found in which the output satisfies $H2 < \mbox{{\tt{target}}}$ as explained in Section .

### Our Optimizations

#### Improvement 1: Remove First Compression Function

We can reduce the cost factor from 3.0 to 2.0 almost instantly by making the following observation. In the process of bitcoin mining the first compression function does **not** depend on the random nonce on 32 bits. Therefore we can compute it once every $2^{32}$ nonces. On average we need $$2.0+\frac{1}{2^{32}}$$ compression functions. The added factor is the amortized cost of the first hash and can be neglected.

**Important Remark.** In more advanced bitcoin mining algorithms the miner does **not** have to compute the output for every nonce. He can do it only for some well chosen nonces. They may be chosen in such a way as in order to obtain specific values which make the computation easier. Moreover, some well chosen nonces could be generated in some specific order in order to enable incremental computations. In an incremental computation some computations could made easier by reusing all the (known) internal values in one or several previous computations. There is a lot of highly non-trivial optimizations which can be developed. One simple example of incremental computation will be given in Section , another in Section .

#### Improvement 2: Save 3 Rounds at the End

We look at the computation of H2 on Fig. , (the second computation of the hash function and the third compression function). A close examination reveals that in last rounds of the underlying block cipher the two words on 32 bits in which we we want to have at least 60 zeros, after addition of a suitable constant, are created at rounds 60 and 61 if we number from 0. We basically want to force values created at rounds $t=60$ and 61 to two fixed constants which come from the SHA-256 IV constants, and which would produce zeros at the output. For this most of the time we just need to compute the first 61 rounds out of 64 and we can early reject most cases. Only in $1/2^{32}$ of cases we need to compute 62 rounds in the third compression function. Then only in some $1/2^{60}$ of cases where we have actually obtained at least 60 zeros, we would need compute the full 64 rounds.

Thus overall one only needs to compute the whole compression function an equivalent of very roughly $1+61/64 \approx 1.95$ times on average. Most of the time one only needs to compute $H1$ and 61 rounds of $H2$ to early reject the 32-bit value obtained which must be equal to the IV constant.

**Remark 1.** This figure is not exact and in fact it is slightly less. This is because we can in fact save a higher fraction of about 3/48 of the message expansion process when we stop our computation at 61 rounds. This is due to the fact that message expansion is only computed in the last 48 rounds, in the first 16 rounds the message is copied cf. and later Fig. . For the sake of simplicity we ignore the message expansion in our calculations.

**Remark 2.** We have carefully checked the ordering of words by inspection of bitcoin source code and by computer experiments. An interesting question is what would happen if the bitcoin designers have formatted the output of the hash function in the reversed order. If they required that 60 bits are at 0 at the opposite end compared to the current formatting, then it is possible to see that the miner would need to do more work: 63 out of 64 rounds in the last application of the compression function. This would make mining more expensive and would cancel a good proportion of our savings.

#### Improvement 3: Reduce the Number of Rounds at the Beginning

Now we look at the second computation of the hash function in the second compression function, the computation of H1 on Fig. . Here we use the observation that in SHA-256 the key for the first 16 rounds are exactly the 16 message blocks in the same order, cf. and Fig. . It is possible that in the second compression function on Fig. the nonce enters at round 3 (numbered from 0) and therefore in most cases we just need to compute the last 61 out of 64 rounds of the block cipher. The first three rounds are the same for every nonce and their (amortized) cost is nearly zero.

Putting together Improvement 2 and Improvement 3, overall one only needs to compute the whole compression function slightly less than an equivalent of about $2\times 61/64 = 1.90$ times.

#### Improvement 4: Incremental Calculations in Round 3

This improvement requires us to delve more deeply into the structure of the block cipher inside SHA-256. We recall that the state of the cipher after round 2 is constant and does not yet depend on the value od the nonce. The 32-bit nonce will be precisely copied to become the session key for the round 3 of encryption. On Fig. we show the circuit for one round of encryption where at round 3 the nonce enters as $W_3=\mbox{{\tt{nonce}}}$ as shown on later Fig. . Here $\boxplus$ denotes one addition on 32 bits.

Here $W_t$ is the key derived from the message and $K_t$ is a certain constant . For $t=3$ we have $W_3=\mbox{{\tt{nonce}}}$. Now it is obvious that the whole round 3 can be computed essentially for free in the incremental way. We just need two 32-bit increments instead of one whole round which is about 7 additions and 4 other 32-bit operations. Each time we increment the nonce we simply need to increment two values (in columns A and E) at the output of round 3, which is shown on Fig. below.

Thus we have saved one more round in each of our computations.

#### Improvement 5: Exploiting Zeros and Constants in the Key

The next improvement comes from the fact that the key in the first 16 rounds of the block cipher is an exact copy of the message. Many parts of this key are constants. Many are actually always equal to zero. This allows one to save a lot of additions in the computation of SHA-256.

Let $KW_t=K_t\boxplus W_t$. Overall we see that we can save 18 additions: 16 additions have a constant equal equal to zero, and $KW_t=K_t$ and we have 2 more additions with 0x80000000 which can be replaced by flipping one bit, the cost of which is very small (in hardware).

#### Improvement 6: Saving Two More Additions with Hard Coding

It is easy to see that 2 more additions can be saved. Looking at Fig we should not count the three first constants on the left in yellow which are identical for all the $2^{32}$ different nonces. This is because this saving was already done in Section . However we have two additional constants in the last line in green. Then in these two last rounds, one in each computation, and because the $K_t$ are constants and do not depend on the message being hashed, we can pre-compute the constants $KW_t=K_t\boxplus W_t$ on 32 bits which saves us 2 additions such as in the upper right corner of Fig. .

**Remark:** In Section above and here in Section we saved 18+2 additions. Moreover the output of these two additions is a constant in 18+2 cases saving not one but first two additions in the upper right corner of Fig. . However these savings are illusory, because we can **save many more additions** by another method. For example later on Fig. we are going to show that one only needs essentially 2 additions in order to implement the whole round function of SHA256, this instead of 6+1 full adders as on Fig. .

#### Known Results About SHA256 in Hardware/ASIC

The goal of this paper is NOT to describe the best possible ASIC implementation of SHA256 and what is the best compromise between the circuit area/propagation time, see . We work on a slightly different problem: we show that the problem goes beyond any state of the art SHA256 circuit, and has its own specificity. The novelty in our paper is adaptation to mining specifically, such as most hashed message blocks are constants, and 6 block cipher rounds do NOT need to be computed at all, incremental techniques etc.

#### Improvement X - Saving LOTS More Additions With Delayed Carry Propagation

We are going to use Carry Save Adders (CSA) in order to delay the propagation of carries and save a lot of circuit area.[^1] The main idea which is attributed to John von Neumann. is to propagate the carries only locally delaying a complete propagation to the very end. This allows a dramatic reduction in the cost of implementing multiple additions: three or more additions cost do NOT cost much more than one single addition.

More precisely Carry Save Adders (CSA) allow to add $n$ numbers for any $n\geq 3$ and to form two numbers which need to be added to obtain the final result. This is obtained by a successive transformation of 3 numbers into 2 numbers with a Carry Save Adder (CSA) which has a very low cost and a final addition of 2 numbers.

In the case of addition modulo $2^{k}$ there is a slight simplification as the most significant digits can be discarded but the result remains essentially the same.

Overall the application of Carry Save Adders (CSA) allows us to implement each round of SHA256 with only two additions :

Now we are also going to look beyond the 64 rounds of SHA256 seen as a block cipher. What remains is the key expansion which expands the message to be hashed into the 64x32 bit keys $W_t$.

#### Short Description of Message Expansion in SHA-256

Before we can propose additional optimizations, we need to explain how the message expansion works in the NIST specification of SHA-256 . We refer to for definitions of $\sigma_0$ and $\sigma_1$.

#### Improvement 7: Saving Two More Additions

We consider the computation of H1. It is possible to see that the first two non-trivial keys $W_{16}$ and $W_{17}$ are also constants and do not yet depend on the nonce. This is because following Fig. we have:

$$W_{16} = \sigma_1 (W_{14}) \boxplus W_{9} \boxplus \sigma_0 (W_{1}) \boxplus W_{0}$$

and

$$W_{17} = \sigma_1 (W_{15}) \boxplus W_{10} \boxplus \sigma_0 (W_{2}) \boxplus W_{1}$$

We see that these two values depend only on values which are constants on Fig. . Therefore they can be pre-computed and as in Improvement 6 we can replace the traditional hard-coded constants $K_t$ by new hard-coded constants $KW_t=W_t\boxplus K_t$ for the whole range of $2^{32}$ nonces. Thus we save two more additions.

#### Improvement 8: One More Additions Saved by Incremental Computation

Now still in the case of H1 we have:

$$W_{19} = \sigma_1 (W_{17}) \boxplus W_{11} \boxplus \sigma_0 (W_{4}) \boxplus W_{3}.$$

Here $W_{3}$ is the nonce which is incremented by 1. Other elements do not depend on the nonce and change at a much slower rate. We can thus save one more addition and simply increment $W_{19}$ directly for each consecutive nonce.

**Remark:** We also have:

$$W_{18} = \sigma_1 (W_{16}) \boxplus W_{11} \boxplus \sigma_0 (W_{3}) \boxplus W_{2}$$

Here the incremental computation is also possible though less efficient. For the sake of simplicity we ignore these additional savings.

#### Improvement X2: More Additions Saved By Delayed Carry Propagation

We see in the two above sections that three values $W_t$ require zero additions and cost essentially nothing. There remains 48-3 values $W_t$ to be computed. If we use again Carry Save Adders (CSA) we see that in each of the 45 cases we need just one full adder instead of 3 full adders.

### Our Overall Result on the Speed of Hashing

We have obtained the following result:

*Justification:* We have saved about 7 rounds and many additions. However known ASIC implementations also save many additions and actually the designs which achieve the lowest possible area are not necessarily the fastest. Therefore we are just going to estimate the RELATIVE savings w.r.t. best standard ASIC implementations of full SHA256 such as in . Thus overall cost minus savings are equivalent to a total of

$$\frac{64+64}{64}-\frac{7}{64} = 2-\frac{7}{64} \approx 1.89 \mbox{~~compression functions}
%removed on 07042014   +23\cdot 0.08$$

This 1.89 compression functions is equivalent to saving of $37 \%$ compared to the initial cost of 3.0 compression functions as per Fig. . It also shows how much can be gained in bitcoin mining compared to using an optimized SHA256 ASIC implementation three times.

**Remark 1.** Fact might seem a bit trivial. In fact it allows miners to **save up to about 50 Megawatt hours every day**, or some 75,000 USD per day in electricity bills, if we assume the reported daily consumption of bitcoin mining in April 2013 . This would be some 28 million dollars per year in savings.

**Remark 2.** However at the moment of writing (22 Oct 2013) things are expected to be different. The aggregated hash rate in the network has increased to 3000 Tera hash, roughly a 50 times increase from April 2013. However we don't expect to consume as much as 1 GWh per day consumed announced in because it appears that the power consumption has decreased and not increased in the recent months, this due to more efficient ASIC miners and to progressive phasing out of inefficient miners which are no longer profitable. If we assume that the average power consumption today is 3.2 W per Terahash as with ButterFly Labs devices , it gives 9.6 Mega Watts of estimated consumption for miners or some 230 Megawatt hours per day. this is about 4 times less than in . If these estimations are correct then the savings as of today would be only roughly a quarter of 75,000 daily saving of April 2013. This will nevertheless amount to some 7 millions of dollars saved each year.

**Remark 3.** We ignore if recent mining devices already use Fact which developers could have discovered independently. We have noticed that the Swedish company KNCminer have explained in some Internet forums that they do indeed use some optimizations which allow them to save about 30 $\%$ of the cost of mining.

**Remark 4.** Any further improvement in this 1.89 factor is going to allow bitcoin miners to save tens of thousands of dollars per day on electricity. It is also likely to influence the market price of bitcoins in the future.

**Remark 5.** Our problem is essentially the same as a brute force attack on a block cipher. The same computation is done a very large number of times, yet cheaper, maybe just a small factor cheaper. It is not correct to believe that block ciphers are well understood in cryptography. On the contrary, it appears that for more or less any block cipher there may exist an attack which will be just slightly faster than brute force, see . An efficient low-data software algebraic attack could also be a solution to this problem, cf. . We expect that the future will bring many new developments in this space.

# The Unreasonable Long-Term Property

### The Unreasonable Artificial 4 Year Cycle

Is there anything wrong with bitcoin at all? In the following sections we are going to argue that bitcoin has at least one property which is truly unreasonable and which needs to be changed in the near future. In fact we are going to discuss something which has not yet been observed. A predicted cycle of 4 years in bitcoin markets and data. However bitcoin has been in existence for just over 4 years and market data have been heavily distorted and blurred by tremendous growth of the number of bitcoins in circulation and large capital inflows. Under these circumstances our obscure 4-year property has not attracted a lot of attention. It is however an undeniable fundamental and built-in feature of the current bitcoin virtual currency system and it cannot possibly be ignored.

#### The Artificial 4 Year Reward Cycle

We recall the mechanism known as Block Reward Halving which exists in all current bitcoin software . Every 4 years the amount of bitcoins awarded to a successul miner will be divided by 2. It is 25 BTC as of 2013.

The origins of this property are obscure. It was NOT proposed in the original paper of 2008 cf. which simply says that *any needed rules and incentives can be enforced*. It simply is **a fact hard coded in the current software**, cf. . This mechanism is very closely related to the fact that the monetary supply of bitcoins is fixed to 21 million. In fact this is how the 21 million cap is implemented. The reward halving and 21 million cap are two faces of the same property. In this paper we describe it only briefly, we refer to for a more detailed explanation and discussions concerning the reasons why this peculiar property is as it is. It may seem that this property is a sort of software bug, however contrary a the software bug this property is very frequently applauded and praised. It appears that we are the first to seriously criticize this property.

To summarize we have a 4 year reward cycle in the bitcoin digital currency as we know it. Here is how exactly this mechanism works. Initially prior to November 2012 all new CISO hashes were rewarded with 50 BTC. Currently it is at 25 BTC for all blocks starting at 210,000 This reward price is going to stay stable until roughly end of 2016, and then it will drop to 12.5 BTC for another period of 4 approximately years. Then in each period of 210,000 blocks the reward is going to be halved again.

More precisely every 210,000 blocks at every block which is an exact multiple of 210,000 the reward is halved for the next 210,000 blocks. It is a sudden abrupt change which takes place approximately every 4 years (but not exactly) depending on the actual speed with which the block have been generated. We should note that 210,000 is exactly 1 $\%$ of the 21 million and we have an infinite geometric progression with a finite sum. Our mechanism can be described by the following formula. Let $t=210000*f$, the reward for any period of time $t\geq 0$ is:

$$\mbox{{\tt{reward}}}_{t\in [210000\cdot f\ldots 210000\cdot f+209999]}
~~=~~
%\mathbf{
50\cdot 2^{-f}
%}
\mbox{~BTC~~~for any~~} f\geq 0.$$

Then it is easy to see that this mechanism is precisely how the cap of 21 million of bitcoins to be ever generated is enforced. More precisely if we count all the bitcoins ever produced with the current mechanism we obtain:

$$%\mbox{\var{reward}}_{t\in [210000\cdot f\ldots 210000\cdot f+209999]}
%\mathbf{
\sum_{f=0}^{\infty}
210,000\cdot 50\cdot 2^{-f}
~=~
210,000\cdot 50\cdot (1+1/2+1/4+\ldots)
~=~
21,000,000$$

**Summary.** The key point is that with the current mechanism, at fixed moments in time it suddenly becomes twice more costly to mine bitcoins. These **sudden jumps** occur every 4 years and are bound to have very serious financial consequences. It suddenly makes miners stop mining and switch their devices off. Overnight. This must lead to serious perturbations in the market.

The fact that this depreciation of the work of miners happens by sudden jumps every 4 years is very surprising. It is bound to have some serious consequences in all bitcoin-related markets.

#### Artificial Cycle and Instability By Design

With current bitcoin software , at certain moments in time the reward for mining is divided by two in one single step. This is NOT compensated by the fact the the difficulty of mining increases all the time. It just adds sudden adjustments every 4 years to a difficulty curve which typically goes systematically up due to a steady increase in the production of new hashes. We predict that in the future the `difficulty` curve will have a discontinuity at the moment of the 4-year halving. Until now it has not happened because apparently only very small percentage of active mining devices were switched off on 29 November 2012.

Inevitably, on one day many devices will stop being profitable and many people may lose their interest in bitcoin. We are talking about the human factor. Investors may decide that they are no longer going to give lots of money to a high-tech industry which has just decreased production of hashes per second and is binning many mining machines at a massive scale due to a strange rule which has no justification and could easily be modified. They might move their money elsewhere and invest in another cryptocurrency. Overall we expect that a sudden slump in profitability of mining is likely to provoke some sort of **a much larger ripple** in the bitcoin markets, potentially lasting up to 4 full years.

To summarize we claim that the current bitcoin reward rule has important consequences. It creates an artificial economical cycle for the whole the industry of bitcoin mining, for investors, and for traders who trade bitcoins. There will be large capital inflows and outflows, there will be privileged moments to invest money and make profits. Likewise it is extremely likely that there will be periods of time of excessive production of SHA-256 hashes which will no longer be profitable. Depending on the market price offered for bitcoin an over-production might force the miner of less profitable devices to switch them off earlier than at the boundary privileged moment where the reward is halved.

#### The Inextricable Dilemma of Reforming How Bitcoin Works

Interestingly this cyclical property is easy to fix, bitcoin technical authorities and developers and stake holders can agree to patch the bitcoin protocol, and to smooth the thresholds of delivery of new bitcoins to bitcoin miners.

However they will hesitate a lot and will be faced with a certain dilemma:

1.  Either we will be criticized by the financial press and media that **bitcoin is not exactly as stable as government-issued currencies** and that it has some truly unreasonable cyclic properties.

2.  Or we will fix this problem. Technically it is extremely easy. It just requires a majority of people to agree. Then suddenly bitcoin could become more stable and therefore more like a currency.

Now if we change the way in which bitcoins are awarded, any decision made will have very serious consequences and it would be extremely difficult to change again.

#### Can The Reward Halving Cycle Be Compensated By Fees?

In the current bitcoin system there is no obligation whatsoever to include any fees in transactions. A transaction fee will be decided by the sender of money decided at the moment of making a transfer from one bitcoin address to another and it will be an incentive for the miner to include the current transaction, and the miner is able to collect hundreds of transaction fees for each block generated with no effort. In practice current bitcoin software applies fees to most transactions however the users are also able to override this behavior and sent transactions without fees knowing that they will take longer to be confirmed.

It is unthinkable that fees would increase in a very substantial way overnight. Therefore the income from fees is probably not going to compensate the cyclic property we have described. However at the very moment when the profitability of mining goes down, miners used to a certain level of income will try to increase their income from fees. This can for example by done by innovating in some way. For instance miners might promote some method to achieve greater anonymity on the bitcoin network which will split the usual transactions into many smaller transactions and use large number of freshly generated addresses. An increased number of transactions processed in each block would allow to claim more fees, and bitcoin users are likely to accept to spend more on fees as a price to pay for better anonymity. Overall we believe that yes, the sudden slump in the reward is going to increase the income from fess, but this is not going to happen overnight. On the contrary, it is one of these economic mechanisms which will extend a predicted sudden slump at the boundaries of the cycle to a much larger and much "slower moving" economic cycle lasting up to the full 4 years.

#### A Proposed Fix

We propose that the block reward should be decremented with a substantially higher frequency than after a whole very long period of 210000 blocks. We are quite conservative and propose to leave sufficient time for all bitcoin software worldwide to be upgraded and re-programmed. We propose to start in a very gradual way and make the change only at the next reward halving which is at 420000 blocks, which is expected to occur at the end of year 2016. We also want the new mechanism to share many features of the old system and we do not propose any revolution, rather an evolution which keeps all that main premises of the old mechanism. The only thing we want to achieve is to smooth the reward thresholds to become more continuous and less abrupt.

It is not obvious to see how to design such a mechanism. We could for example propose to decrease the block reward to be decremented after every 2016 blocks (roughly every two weeks), when the $\mbox{{\tt{difficulty}}}$ changes in the current bitcoin software. This would make it relatively easy to manage for miners. However the problem is that 210,000 is not a multiple of 2016 and we would like to be able to compare the new scheme to the old scheme with abrupt changes at every 210,000 blocks. Therefore we propose to decrement it every 336 blocks. We have $GCD(210000,2016)=336$, $336=3\cdot 2^4\cdot 7$ and $2016=6\cdot 336$. This creates a cycle which is still possible to manage for miners and which will always happen at exact boundaries of two other cycles of 2016 and 210,000 blocks. Interestingly we have $210,000=336\cdot 5^4$ and the change will happen exactly three times per week as $3\cdot 336\cdot 10$ minutes is exactly 7 days. This will make our solution quite elegant and we obtain one nice closed formula (cf. Fig. below).

Our new mechanism is designed in order to satisfy the following requirements:

1.  The block reward should be decremented every 336 blocks, starting at block 420,336 where it should already be slightly smaller than 25 BTC.

2.  We want to maintain the exact cap of 21 million BTC ever produced.

3.  This means that at the beginning the reward will be bigger than before. Then eventually later it will be smaller than before.

4.  We want to have one single continuous curve starting from block 420,000 and one single closed formula. This turns out to be possible and we can solve our problem with one single mathematical formula.

5.  Currently the reward is halved at each 210,000 blocks. For blocks up to 209,999 we had 10,5 millions bitcoins produced.

6.  For all blocks up to block 419,999 we will have $10.5+5.25=15.75$ millions of bitcoins produced.

7.  It remains 5.25 million of bitcoins to be produced. We need to be able to maintain this exact number with a new reward formula for the period between 420,000 and infinity.

Thus we postulate that the following modified reward mechanism should be introduced at and after block 420000:

**Remark.** Yes this means that for the first half on the 4-year period the reward will be first bigger than before, and only eventually later it will be smaller. This is inevitable if want to maintain the same production of 21 millions of bitcoins in the long run and have one single closed formula to use.

**Correctness.** We give here a calculation sheet in Maple which proves the correctness of our reward scheme. For comparison we do it also the previous (original Satoshi) reward scheme.

    >#Satoshi
    >15.75+sum(210000*12.5/2^(f-2),'f'=2..infinity)/10^6;
                                              21.00000000
    >#New formula
    >15.75+sum(336*25.0*(625/624)^((1250-k)),'k'=1250..infinity)/10^6;
                                              21.00000000

**Examples.** We give here below some concrete examples of rewards with the old formula and the new formula. We see that with the new scheme for a long time the miner reward is higher than before. We contend that this property is probably impossible to avoid if we want to maintain a geometric progression in one single closed formula, the 21 million cap and continuity at block 420,000.

### Summary and Conclusion

In this paper we explain how bitcoin electronic currency works and show that the profitability of bitcoin mining depends on a certain cryptographic constant which we showed to be at most 1.89. Normally very few people care about this sort of fine cryptographic engineering details. However here it is different. This observation alone allows bitcoin miners to save many millions of dollars each year. The biggest incertitudes however do not come from cryptography.

#### The Unreasonable Incertitudes

In this paper we argument that investors who build, buy, or run bitcoin miners are exposed to a number of incertitudes and risks which strongly depend on the current bitcoin specification and its future updates. We contend that the lack of stability of bitcoin goes far beyond the relatively small size of the market compared to traditional finance. It can be and to some extent it is an inherent built-in feature. In particular we found the bitcoin 4-year reward halving system very disturbing. We see absolutely **no reason and no benefit of any kind to have this sort of mechanism built in a crypto currency.** On the contrary, we claim that this mechanism is **unnecessary and harmful**. It somewhat discredits bitcoin as a stable currency which could be a reliable store of value. At the very least it can seriously limit a wider adoption of bitcoin. Therefore we propose to change it as soon as possible and propose a modified reward formula.

Bitcoin obeys the rules of a new technology venture business with a strong business cycle and strong incentives for innovation. Each new generation of bitcoin miners drives the previous generation out of business each time the production method is changed. In this paper we have shown that one can improve bitcoin miners also on the algorithmic side and we have achieved a 38 $\%$ improvement. This is not a lot compared to the fact that mass production of specialized ASIC circuits have allowed many more substantial improvements simply due to higher density and highly specialized production. Will there ever be a fifth generation of miners which brings a more radical change? We contend that better technology is bound to be invented, would it be quantum bitcoin miners.

More importantly, the specification of the problem to solve is likely to change. The idea to modify the Proof of Work function in bitcoin have been proposed in May 2013 at Bitcoin conference in San Diego by Dan Kaminsky . However this type of change could be flatly rejected by the community which have heavily invested in ASIC mining with the current technology.

In fact there is a profound reason why such a change is proposed. According to Dan Kaminsky the production of new bitcoins is now in the hands of too few people . Bitcoin has lost its widely distributed and democratic character. In particular the companies which manufacture ASIC miners are in the privileged position. They can decide to whom they sell their hardware or delay their shipping for no reason and it is profitable for them to do so. Potentially more competition and wider promotion of honesty, good reputation and trustworthiness in this business could solve this problem, as there is no public authority which would regulate the bitcoin mining market.

[^1]: We call it Improvement X and we do not give it a number in this paper as this improvement also concerns full SHA256 implementations in ASIC and has already been applied by most ASIC designers. In this paper we focus on the difference between fully functional general-purpose ASIC and a specific solution for bitcoin mining.