diTHINK 2016

An Analysis of Bitcoin, and Its Impact on Global Finance

Created by Jonathan Gillett / gnu-user

Who am I?

  • MASc Student at the University of Ontario Institute of Technology.
  • Industry experience in backend development, HPC, Machine Learning, mobile, and web development.
  • Bitcoin enthusiast since reading the initial Bitcoin paper!
  • Email: jonathan.gillett@uoit.net
  • GitHub Account: gnu-user

What is Bitcoin?

Bitcoins Satoshi Nakamoto Bitcoin Miner

Is it a physical currency? Who is Satoshi Nakamoto? What are they mining anyways?

Bitcoin: A peer-to-peer electronic cash system

Introduced to the world in 2008 in a paper published under the pseudonym Satoshi Nakamoto, a proof of concept was released to the world a year later.

Layperson explanation: “A digital currency without any centralized authority or government, where the supply and security are controlled by mathematics.”

But What is the Benefit to Me?

  • Allows you to be in control of your own wealth without relying on a third party (e.g. vault in your own house).
  • Ease of use for transferring funds online (benefit over gold or cash which can be difficult to transact with).
  • Increasing mainstream adoption with services such as: Newegg, Expedia, and Dell.

What is it Really?

“Bitcoin is a peer-to-peer, decentralized digital currency with a mathematically defined supply that leverages cryptography in order to provide security as a financial medium through the use of a blockchain, a ledger of all transactions, and made secure through a process called mining, which incentives users to process transactions.”

Peer-to-Peer and Decentralized

Peer-to-Peer (P2P)

  • P2P communications mean that technically any node within the network can communicate or be connected to any other node (e.g. downloading with torrents).
  • In Bitcoin, the actual P2P connections per node (for performance reasons) are approximately 8 - 16.
  • In many P2P networks there is still centralization, which is required to operate the network, (e.g. trackers for torrents).

Decentralized

  • Decentralized networks are P2P, but without relying on centalized nodes to operate.
  • Often nodes are connected to smaller localized networks, similar to how the internet is architected.
  • Bitcoin requires no centalized tracker to relay transactions or catalog data pertaining to the network.
  • How is this possible? The blockchain! It makes it possible for a P2P network of untrusted nodes to create a collective trusted data store.

Mathematically Defined Supply

  • The currency (BTC) can only be minted as a reward to miners for processing transactions.
  • A mathematical function precisely describes the controlled supply made available.
  • At any point in time the supply of BTC can be precisely calculated based on this function.

The current supply of Bitcoin is 15,581,350, with a total supply of 21,000,000 defined by the following function.

$ \frac{\displaystyle\sum_{i=0}^{32} 21000 \big[ \frac{50.10^{8}}{2^i} \big]}{10^{8}} $

The initial reward to miners was 50 BTC, with the reward halving every 210,000 blocks.

Block Reward Supply Increase % of Supply
0 50.0 10,500,000 50.0%
210,000 25.0 15,750,000 75.0%
420,000 12.5 18,375,000 87.5%
630,000 6.25 19,687,500 93.75%
840,000 3.125 19,687,500 96.875%
1,050,000 1.5625 20,343,750 98.4375%
... ... ... ...
6,930,000 0.0 21,000,000 100.0%

Cryptography

  • Public key cryptography (elliptic curves).
  • Elliptic Curve Digital Signature Algorithm (ECDSA).
  • Hash function (SHA256).

Public Key Cryptography

  • Anyone can encrypt and send data to a recipient using the recipient's public key, and can only be decrypted by the recipient using their private key (which is not shared).
  • In Bitcoin, the public key is encoded as your address, which anyone in the network can use to send you Bitcoin.

Digital Signature Algorithm (DSA)

  • DSA makes use of public and private keys to sign data.
  • If the data is altered the signature will be invalidated
  • ECDSA is used for transactions, BTC is sent from one user to another by creating a transaction where the amount and recipient's address are provided, the user sending the Bitcoin then signs the transaction using their private and public keys.

Hash function

  • Hash functions are used to map input data to a specified set of outputs, for example mapping all words to integers from $0\ldots100$.
  • Cryptographic hash functions SHA256 and RIPEMD160 are used in Bitcoin for many applications, including reducing the characters generated when encoding an addresses.
  • SHA256 maps any input to an output that is a fixed size of 256 bits, with a total of $2^{256} = 1.15792...\times10^{77}$ possible outputs.

Blockchain

  • The public ledger of all Bitcoin transactions, it is made up of blocks, with each new block added to the chain dependent on all of the previous blocks.
  • Any attempt to alter the past events recorded on the blockchain, would invalidate any proceeding blocks.
  • The blocks are the collection of all transactions that occurred on the network that have not yet been added to the blockchain.
  • Blocks are added to the blockchain and made secure through a process called mining.

Mining

  • Mining is the process in which a new block (collection of transactions) are validated and added to the blockchain.
  • The first miner to add a new block is rewarded with Bitcoin, the only way currency is minted.
  • But how can the mining process be made fair and gamified, why would anyone bother mining?
  • SHA256 It adds a computational weight to the mining process and makes it provably fair.
  • For example, if there are only two miners, and one has 10x the computational power of the other, they can expect to earn 10x more Bitcoin.

SHA256 Hashing

  • SHA256 is used to ensure that on average it takes all miners approximately 10 minutes to solve a new block.
  • For a block to be accepted by the network, miners must find a nonce, which is included in the block, in order to generate a hash that has a specified number of leading bits that are 0.
  • The number of leading bits is the difficulty.
  • The block can be validated by checking that the nonce produces a hash that meets the difficulty.
  • $\text{SHA256}(\text{SHA256}(B)) = (0^{\ell} || {\{0, 1\}}^{256-\ell})$

Impact on Global Finance

Bitcoin is a disruptive financial technology, the concept and technology have unleashed a revolution that shows no signs of slowing down.

2013: Year Of The Bitcoin Mt. Gox Files for Bankruptcy; Nearly $500M of Bitcoins Lost U.S. holds final auction of bitcoins from Silk Road case Banks, tech companies move on from bitcoin to blockchain

How Much Volume?

  • It's just a cryptocurrency... a fad... how much daily volume (USD) could it possibly have?
  • 1 Million? 5 Million? 10 Million?!
  • 325 Million USD! (based on the historical price since 2013).
  • That's based on daily blockchain transactions, what about off the blockchain, such as on exchanges?
  • A conservative estimate of the daily trading volume on all major exchanges (EUR, CNY, USD) since 2013, based on our research, is 55 Million USD!

How do we Measure Bitcoin?

  • Bit-index, a metric that tries to better explain and measure the activity of the Bitcoin network.
  • Takes into account the historical activity of users and accurately represents their current influence in the network while also accounting for the drastic increase in the value of Bitcoin.
  • Metric is inspired by the widely used h-index, a metric for the impact of authors based on their publications.

Bit-index


def bit-index(measures):
    sorted = measures.sort(reverse=True)
    for idx, measure in enumerate(sorted):
        if idx+1 >= measure:
            return measure
						
  • The measurements are sorted in descending order.
  • The bit-index is the last measurement that is greater than or equal to the current position in the list.
  • What should be used as a measurement? What is the best way to measure the activity on the network? Balance? Volume? Number of transactions?
  • Orange line is the partition, intersection is the bit-index.
  • Left figure is calculated based on balance, right using the amount of volume sent.
  • Balance accounts poorly for speculative hoarding, but volume is also susceptible to outliers and noise.
  • In both cases the users became inactive over time, which bit-index is more representative?

Bit-index Calculation

  • There are hundreds of millions of transactions.
  • We store the blockchain in a relational database > 1 TB.
  • Bit-index calculation for each user is embarassingly parallel to calculate.
  • Calculations done by partitioning query results grouped by each user, mapped to processes using MPI.
  • Ideal scenario, use Hadoop with BigData database (Hive), use MapReduce to easily parallelize the calculations.

Future Work

  • More robust bit-index calculation to account for outliers and noise, such as by applying a Kalman filter.
  • Application of features that take into account the graph relationship of transactions between users.
  • Addition of weighting features to measurements to make the metric more accurate.

References

Thank You!

Questions?