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?
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.
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
- Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system. http://nakamotoinstitute.org/bitcoin, Oct. 2008. [Online; accessed Mar. 1, 2016].
- Sarah Meiklejohn, Marjori Pomarole, Grant Jordan, Kirill Levchenko, Damon McCoy, Geoffrey M Voelker, and Stefan Savage. A fistful of bitcoins: characterizing payments among men with no names. In Proceedings of the 2013 conference on Internet measurement conference, pages 127–140. ACM, 2013.
- Forbes. 2013: Year Of The Bitcoin. http://www.forbes.com/sites/kitconews/2013/12/10/2013-year-of-the-bitcoin/#6d1109ee2295, Dec. 2013. [Online; accessed May 3, 2016].
- Mt. Gox Files for Bankruptcy; Nearly $500M Of Bitcoins Lost. http://www.npr.org/blogs/thetwo-way/2014/02/28/283863219/mtgox-files-for-bankruptcy-nearly-500m-of-bitcoins-lost, Feb. 2014. [Online; accessed May 4, 2016].
- Reuters. U.S. holds final auction of bitcoins from Silk Road case. http://www.reuters.com/article/us-usa-bitcoin-auction-idUSKCN0SU28Q20151105, Nov. 2015. [Online; accessed May 2, 2016].
- Reuters. Banks, tech companies move on from bitcoin to blockchain. http://www.reuters.com/article/us-usa-bitcoin-blockchain-idUSKCN0XT23Y, May 2016. [Online; accessed May 4, 2016].
diTHINK 2016
An Analysis of Bitcoin, and Its Impact on Global Finance
Created by Jonathan Gillett / gnu-user