diff --git a/paper/paper.tex b/paper/paper.tex index 8e6bc5172d8b6b17ccc1beb352cf40c03774a4a5..b157e7df6c19075f8e74ed23b01222b459a91067 100644 --- a/paper/paper.tex +++ b/paper/paper.tex @@ -7,8 +7,6 @@ % [phdthesis] - switch to PhD thesis style % [twoside] - double sided -%\usepackage[utf8]{inputenc} - \usepackage{booktabs} \usepackage{graphicx} @@ -61,13 +59,6 @@ \chapter*{Abstract} \addcontentsline{toc}{chapter}{Abstract} -%% about 1/2 page: \\ -%% (1) Motivation (Why do we care?) \\ -%% (2) Problem statement (What problem are we trying to solve?) \\ -%% (3) Approach (How did we go about it) \\ -%% (4) Results (What's the answer?) \\ -%% (5) Conclusion (What are the implications of the answer?) - Bitcoin is the most popular and well-known cryptocurrency to date. It is built upon a technology called blockchain and utilizes a distributed consensus mechanism. This Proof Of Work consensus algorithm is very energy intensive and reports of Bitcoin's growing energy usage are all over the news. @@ -248,42 +239,6 @@ Due to the modern lithography process of 16nm it is able to achieve a very high \chapter{Energy Demand of Proof Of Work} \label{ch:energydemand} -%% \begin{frame}{Bitcoin network} - -%% \begin{table} -%% \begin{tabular}{@{} lr @{}} -%% \toprule -%% Bitcoin Network\\ -%% \midrule -%% Hash rate & 12,186,684,383 GH/s\note{12 Exahashes/s}\\ -%% Total coins mined & 16,721,438 \note{out of 21,000,000 that is 79.6percent}\\ -%% Price & 11,615.00 USD\\ -%% Transactions per day & 375,000\\ -%% % \note{as we've learned, a single transaction can have more than one input and output}\\ -%% Transaction volume per day & 4,355,625,000 USD\\ -%% % \note{in _real_ money that equates to 4,4 million US dollars}\\ -%% Blockchain size & 171.45 GB\\ -%% \bottomrule - -%% \end{tabular} -%% \end{table} - -%% % TODO Update data (also update BibTeX) -%% Sources: -%% \newline -%% \url{blockchain.info/stats} \cite{BlockchainInfoStats} \parentext{accessed: \citedate{BlockchainInfoStats}} -%% \newline -%% \url{www.bitcoinblockhalf.com} \cite{BitcoinBlockHalf} \parentext{accessed: \citedate{BitcoinBlockHalf}} - -%% \end{frame} - -%% Not in presentation due to time constraints -%% \begin{frame}<all:0>{Bitcoin network hash rate} - -%% % https://blockchain.info/charts/hash-rate?timespan=all&daysAverageString=7 -%% graph from blockchain.info of network hash rate -%% \end{frame} - Proof Of Work is a very energy intensive application. Based on assumptions of the power consumption of mining hardware shown in Chapter \ref{sec:mininghardware} and the total network hash rate the energy demand of the entire mining network can be estimated. \section{Bitcoin's energy demand} @@ -309,8 +264,6 @@ Multiplying the efficiency of the hardware $\eta$ with network hash rate $H_R$ r However, we also need to keep in mind that the efficiency of mining hardware only continues to increase and most Bitcoin miners are running very up to date and efficient hardware, in order to reduce their electricity cost. -%% \note{to give you an idea: 1.4GW is about the power output of a single reactor nuclear power plant, like we have it here in Germany in Brokdorf or Brunnsbüttel for example} - Multiplying these power figures with an amount of time, we get hourly, daily and annual values for Bitcoin's energy usage. \begin{table}[hbt!] @@ -327,8 +280,6 @@ Multiplying these power figures with an amount of time, we get hourly, daily and \end{tabular} \end{table} -%% TODO comparison - Table \ref{tab:bitcoinenergy} includes estimates from Digiconomist \cite{DigiconomistEU}, who used a different efficiency value for the mining hardware. According to their numbers, Bitcoin mining is 0.15\% of the world's electricity consumption \cite{DigiconomistEU}. \section{Ethereum's energy demand} @@ -336,8 +287,6 @@ Table \ref{tab:bitcoinenergy} includes estimates from Digiconomist \cite{Digicon Ethereum is another very popular blockchain. Unlike Bitcoin, its Proof Of Work algorithm is \emph{\acs{ASIC}-resistant}, thus mainly \acp{GPU} are utilized for mining, as they can be reconfigured. This leads to a very diverse, decentralized and heterogenous landscape of miners all around the world, because anyone with a \ac{GPU} can start mining Ethereum without the need of buying additional hardware etc. but it also leads to a higher overhead and generally less efficient mining. -% TODO explain more here ? - The NVIDIA GTX 1070 is currently the most efficient \ac{GPU} for Ethereum mining \cite{HR1070}, with a conversion rate of $5$ megahashes per second (the Antminer S9 we mentioned for Bitcoin mining is at $13.5$ gigahashes per second, see Section \ref{sec:mininghardware}). Just like we did for Bitcoin, the hash rate of the entire Ethereum network can be derived from the block difficulty. Ethereum is currently at $125$ terahashes per second (obtained on 14th of December 2017 from \cite{EtherscanHashRate}). @@ -400,146 +349,8 @@ E_{Block} = \frac{E_{1H}}{Blocks_{1H}} E_{TXN} = \frac{E_{1D}}{TXN_{1D}} \end{equation} -%% Electricity usage per block: -%% \note{electricity usage per hour divided by six blocks, block generation time is 10 minutes, therefore six blocks per hour} -%% \begin{equation*} -%% E_{Block} = \frac{E_{1H}}{\SI{1}{\hour}/\SI{10}{\minute}} = \frac{E_{1H}}{6} = \SI{199 049 178.3}{\watthour} = \SI{199}{\mega\watthour} -%% \end{equation*} - -%% - -%% Electricity usage per transaction: -%% \begin{equation*} -%% E_{TXN} = \frac{E_{1D}}{TXN_{1D}} = \frac{E_{1D}}{375,000} = \SI{76 434.88445}{\watthour} = \SI{76}{\kilo\watthour} -%% \end{equation*} - With these transaction statistics we can derive the amount of energy it takes to produce a single block (Equation \ref{eq:eblock}) or even a single transaction (Equation \ref{eq:etxn}). While it takes only one-tenth of the electrical energy to produce a block in the Ethereum network compared to Bitcoin, looking at the energy demand per transaction, Ethereum uses only one-forth of the electrical energy compared to Bitcoin (Table \ref{tab:bitcoinethereumcomparison}). Generally speaking for Proof Of Work algorithms, as the network hash rate (and therefore the block difficulty) increases, it takes more and more energy to produce a block. This in turn then affects the energy required for each transaction, as they need to be stored inside the blocks. -%% \section{Energy usage comparison} - -%% removed, reference nuclear power plant after calculating power of Bitcoin network -%% \begin{frame}{Electricity usage comparison} -%% \note{So I was wondering what that number compares to. There are all these wild articles out there on businessinsider and the like, comparing the numbers to something totally unrelated} -%% \note{Like any good student does, I asked my good friend WolframAlpha what he thinks} - -%% - -%% \begin{columns}[t] -%% \begin{column}{0.6\linewidth} - -%% \includegraphics[width=\linewidth]{../resources/WA/WA12GW.png} - -%% \end{column} -%% \begin{column}{0.4\linewidth} - -%% Source: \citetitle{WA12GW} \autocite{WA12GW} -%% \newline -%% (accessed: \citedate{WA12GW}) - -%% \end{column} -%% \end{columns} - -%% \end{frame} - - -%% removed, not so funny -%% \begin{frame}{Electricity usage comparison} - -%% \begin{columns}[t] -%% \begin{column}{0.6\linewidth} - -%% \includegraphics[width=\linewidth]{../resources/WA/WA12GWH.png} - -%% \end{column} -%% \begin{column}{0.4\linewidth} - -%% Source: \citetitle{WA12GWH} \autocite{WA12GWH} -%% \newline -%% (accessed: \citedate{WA12GWH}) - -%% \end{column} -%% \end{columns} - -%% \end{frame} - -%% \begin{frame}{Electricity usage comparison} -%% \note{So I was wondering what that number compares to. There are all these wild articles out there on businessinsider and the like, comparing the numbers to something totally unrelated} -%% \note{Like any good student does, I asked my good friend WolframAlpha what he thinks} - - - -%% \note{Daily power usage of Bitcoin network} -%% \note{about the energy yield of the Little Boy nuclear bomb} -%% \note{Carbon dioxide mass generated by producing this amount of electrical energy: 21,000 metric tons of CO2} - -%% \includegraphics[width=\linewidth]{../resources/WA/WA287GWH.png} - -%% % Source: \citetitle{WA287GWH} \autocite{WA287GWH} -%% % (accessed: \citedate{WA287GWH}) - -%% \end{frame} - -%% \begin{frame}{Electricity usage comparison} -%% \note{annual power usage of the Bitcoin network} -%% \note{two years for the Ethereum network} -%% \note{about the power output of all nuclear power plant in a single day} - -%% \includegraphics[width=\linewidth]{../resources/WA/WA105TWH.png} - -%% % Source: \citetitle{WA105TWH} \autocite{WA105TWH} -%% % (accessed: \citedate{WA105TWH}) - -%% \end{frame} - -%% \begin{frame}{Electricity usage} - -%% Electricity usage per block: -%% \note{electricity usage per hour divided by six blocks, block generation time is 10 minutes, therefore six blocks per hour} -%% \begin{equation*} -%% E_{Block} = \frac{E_{1H}}{\SI{1}{\hour}/\SI{10}{\minute}} = \frac{E_{1H}}{6} = \SI{199 049 178.3}{\watthour} = \SI{199}{\mega\watthour} -%% \end{equation*} - -%% - -%% Electricity usage per transaction: -%% \begin{equation*} -%% E_{TXN} = \frac{E_{1D}}{TXN_{1D}} = \frac{E_{1D}}{375,000} = \SI{76 434.88445}{\watthour} = \SI{76}{\kilo\watthour} -%% \end{equation*} - -%% % TODO Update data -%% Transactions per Day from \url{blockchain.info/stats} \cite{BlockchainInfoStats} \parentext{accessed: \citedate{BlockchainInfoStats}} - -%% \end{frame} - -%% \begin{frame}<beamer:0>{Electricity usage comparison} - -%% \begin{columns}[t] -%% \begin{column}{0.6\linewidth} - -%% \includegraphics[width=\linewidth]{../resources/BMWiEE/canvas.png} - -%% \end{column} -%% \begin{column}{0.5\linewidth} - -%% - -%% Renewable energy produced in Germany in 2016: $\SI{188}{\tera\watthour}$ - -%% - -%% \note{With this knowledge, we can calculate how many blocks we can mine with that energy:} - -%% \begin{equation*} -%% n_{Blocks} = \lfloor \frac{E}{E_{Block}} \rfloor = \num{1 058 000} -%% \end{equation*} - -%% \end{column} -%% \end{columns} - -%% Source: \citetitle{BMWiEE} \autocite[P. 42]{BMWiEE} - -%% \end{frame} - \section{Electricity demand comparison} \label{sec:electricitycomparison} @@ -584,62 +395,6 @@ Therefore, one could run ten of \acs{NSA}'s data centers for the power usage of While the Bitcoin and Ethereum network together use at least $18$ terawatthours of electricity per year, this is only one tenth of the renewable energy produced in Germany alone in 2016, as $188$ TWh were generated, according to the German Ministry for Economy and Energy \cite{BMWiEE}. -%% \begin{frame}{Electricity cost} -%% Based on US commercial prices in 2016: $10\frac{ct}{kWh}$ - -%% \vspace{\baselineskip} - -%% Electricity cost per block: -%% \begin{equation*} -%% C_{Block} = E_{Block} \times \SI[sticky-per]{0.1}{\usd\per\kilo\watthour} = \SI{23 333.33}{\usd} -%% \end{equation*} -%% \note{Woah! Over 20.000 dollars} - -%% Electricity cost per transaction: -%% \begin{equation*} -%% C_{TXN} = E_{TXN} \times \SI[sticky-per]{0.1}{\usd\per\kilo\watthour} = \SI{8.4}{\usd} -%% \end{equation*} - -%% \note{Remember, this is not the transaction fee, just the electricity cost} - -%% \note{Both China and Iceland and have electricity costs of about 5ct/kWh, therefore can have the calculations from the previous slide for these countries} -%% \end{frame} - -%% \begin{frame}{Bitcoin mine distribution} -%% Bitcoin mine distribution chart -%% \end{frame} - -%% \begin{frame}{Reward} -%% \note{So we have discussed the cost (both hardware and operation) of bitcoin mining, but what about the reward? The reason miners are doing this is:} - -%% Each time a block is found and appended to the blockchain, the miner is rewarded with the block reward and the transaction fees of all transactions stored inside that block. - - - -%% \note{as we previously discussed:} -%% \begin{equation*} -%% \begin{aligned} -%% Reward &= Block Reward + Transaction Fees \\ -%% &= \SI{12.5}{\btc} + \SI{1.4}{\milli\btc} \times 2700 \frac{TXN}{Block} \\ -%% &= \SI{16.8}{\btc} -%% \end{aligned} -%% \end{equation*} - - - -%% \begin{equation*} -%% Reward_{USD} = Reward_{BTC} \times \SI{16 385}{\usd} = \SI{275 268}{\usd} -%% \end{equation*} -%% \note{Now that's some reward!} - - - -%% Transaction fees and transaction per block from: -%% \newline -%% % \url{bitinfocharts.com/bitcoin/} \cite{BitInfoChartsBTC} \parentext{accessed: \citedate{BitInfoChartsBTC}} - -%% \end{frame} - \chapter{Alternative Consensus Mechanisms} \label{ch:alternatives} @@ -654,7 +409,6 @@ Instead of spending all the work on simply computing hash functions, the energy One of the first ideas that comes to mind is using the generated heat by the mining process to heat homes and offices. On first sight, this idea might seem astronomic. However, researches from Microsoft argue in their paper ``The Data Furnace: Heating Up with Cloud Computing'' that the approach leads to a smaller carbon footprint and a reduced cost of hardware ownership. In the case of cloud computing it also significantly decreases the proximity to users, therefore lowering latency. They call the concept ``Data Furnance'' \cite{MSDataFurnace}. - %% Thinking this idea further, one could also combine running mining with spikes of renewable energy, preventing energy grid from damage. This can for example happen when the sun is shining, generating solar electricity, and it's very windy, generating electricity by the wind turbines, but there are not enough ``regular'' users of this energy. Though, the practical challenges of the implementation are another factor to consider, and may be even greater than those of the original problem. @@ -671,42 +425,6 @@ Finding these prime number chains becomes exponentially harder as the chain leng Primecoin is comparable to the \ac{GIMPS} project which is run by enthusiasts on their computers all around the world and has found most of the largest prime numbers known to date. -%% \begin{frame}{Proof Of Useful Work: Renewable Energy} - -%% % SolarCoin / solar power plant image here? - - - -%% SolarCoin has a market cap of 97,500 TWh of solar energy generation - - - -%% \begin{itemize} -%% \item 0.1\% have been mined with Proof Of Work and represent historically generated solar electricity (unclaimed within SolarCoin) - -%% \item 0.5\% reside in the genesis pool account, reserved for environmental charities, volunteers, advisers, builders and maintainers of SolarCoin - -%% \item 99.4\% are stored in the generator pool account, exchanged for solar electricity generation -%% \end{itemize} - - - -%% Each SolarCoin in circulation represents $\SI{1}{\mega\watthour}$ of generated solar electricity. - - - -%% Coins are issued by The SolarCoin Foundation to operators of solar facilities - -%% \note{To get SolarCoin, one has to register the solar facility with The SolarCoin Foundation} -%% \note{After verifying the electricity generated via solar panels, the foundation sends coins from the reserve account to the claimant} -%% \note{This transaction from the reserve account is the visible in the blockchain} - -%% Source: %\citetitle{SolarCoinFAQ} \cite{SolarCoinFAQ} - -%% \note{This distributed ledger requires a central authority to verify the work before issuing coins} -%% \note{Nevertheless, I think this an interesting spin on the ``Proof of Work'' idea} -%% \end{frame} - \subsection{Problems} \label{subsec:pouwproblems} @@ -772,18 +490,6 @@ Proof Of Stake is so complex because it not only changes the consensus algorithm A general concern with Proof Of Stake methods is often referred to as the \emph{rich get richer scheme}: as one's voting power and dividends of the transaction fees proportionally increase with the staked amount, wealthy owners of coins gradually become richer. While many researchers, including the authors of various Proof Of Stake schemes themselves, argue this is not the case, only the future can bring certainty on how the economics of blockchains play out. -%% \begin{frame}{Proof Of Stake: Tendermint} -%% \note{Used in blockchain network Cosmos} - -%% Byzantin fault tolerance-based PoS: -%% \begin{itemize} -%% \item weakly asynchronous (only a single synchronous state for a maximum amount of time) -%% \item favors consistency over availability (requires only 1/3 of "evil" votes to halt, but at least 2/3 of votes to fail) -%% \item energy efficient and fast -%% \item well suited for enterprise blockchain -%% \end{itemize} -%% \end{frame} - \section{Delegated Proof Of Stake} This consensus mechanism was first implemented by the BitShares blockchain and has been updated several times since. Broadly speaking, it is comparable to the U.S. electoral college system. Under Delegated Proof Of Stake, stakeholders elect a number of \emph{witnesses} to generate blocks \cite{BitsharesDPoS}. Witnesses serve the role of validating signatures and timestamping transactions by including them in blocks, therefore they are BitShares equivalent of miners (without the intensive work, of course). Each account is allowed one vote per share per witness, this process is known as \emph{approval voting}. The top $N$ witnesses by total approval are selected, where $N$ is defined such that at least 50\% of voting stakeholders believe there is sufficient decentralization. When stakeholders express their desired number of witnesses, they have to cast a vote for at least that many witnesses.