Blockchain Analysis
Final Project Demo
Rory Powell - 40081529

Project Supervisor: Professor Weiru Liu
Technical Advisor: Ryan McConville
Background
What is the blockchain?
- The public ledger of all bitcoin transactions, ever.
- Transactions need to be verified
- Hosted peer to peer - Not controlled by any single entity

Original Goals
Community Detection
Visualize the entire blockchain and the communities within
Execute community detection algorithm
And display the results
Owner Identification
Find known bitcoin owners
Live retrieval of latest data
Integrated into the application
Early Results

- Used a bitcoin client to download blockchain history in hex format (~35GB, 2009 - 2015)
- bitcoinJ (Bitcoin java library) provided a parser for this to get meaningful data.
- Streamed through the dataset writing the results to csv
- Linking each input in a transaction to each output
- Used Gephi to visualise this data (albeit at a very cut down size)
- Of 170 .dat files, gephi could handle a fraction of 1
- (7,000 lines out of 500,000 csv lines in one file)

Gephi
(Photoshop for graphs)



Revised Goals
Owner Detection
Correlate addresses owned by a single entity
Community Detection
Visualize the immediate community of an address
Owner Identification
Find known bitcoin owners
Live retrieval of latest data
Integrated into the application
Revised Model
- Replaced the .dat files with api calls to blockchain.info
- A more granular approach was needed to get meaningful data
- Neo4j - a graph database
- Works using nodes and relationships
- Neo4j - a graph database
- Early model:

Revised Data Structure




Results

Address with small community

Address with more in depth community

Large number of addresses involved in a transaction

Address that shares an owner with another address

Address that shares owner with two others

Address that shares owner with five others

Owners identified by username from https://bitcoin-otc.com/viewgpg.php?
Demo
Final Demonstration
By Rory Powell
Final Demonstration
Final demonstration for QUB final project
- 282