Not logged in.

Contribution Details

Type Bachelor's Thesis
Scope Discipline-based scholarship
Title Processing Bitcoin Blockchain Data using a Big Data-specific Framework
Organization Unit
Authors
  • Dominik Sommer
Supervisors
  • Eder John Scheid
Language
  • English
Institution University of Zurich
Faculty Faculty of Business, Economics and Informatics
Number of Pages 57
Date 2019
Abstract Text Die Analyse von Bitcoin Blockchain-Daten, wie zum Beispiel die Aggregation von Bitcoin-Adressen, ist interessant fur Blockchain- sowie Wirtschafts- Forscher. Mit wachsender Grösse der Bitcoin Blockchain sind solche Analysen jedoch schwieriger geworden, weil die Laufzeiten der dafür benötigten Programme sehr lang sind. Im Gegensatz zu Lösungen, die in früheren Arbeiten erwähnt werden, zielt der in dieser Arbeit präsentierte Ansatz nicht nur darauf ab, die Laufzeit zu reduzieren, sondern (i) dies auf handelsüblicher Hardware zu bewerkstelligen, als auch (ii) zukünftigen Nutzern die Möglichkeit zu bieten, neue Heuristiken in einer einfachen Art und Weise zu implementieren. Dieser Ansatz beinhaltet die Bildung eines Transaktionsgraphen in der Graphendatenbank Neo4j aus den rohen Bitcoin-Blocken. Auf diesem Transaktionsgraphen können dann in der Abfragesprache Cypher verfasste Heursitiken in einem Spark Cluster mit Hilfe von Cypher for Apache Spark (CAPS) angewendet werden. Die Nutzung von Cypher fur die Implementierung der Heuristiken erlaubt es zukünftigen Nutzern eigene Heuristiken zu entwickeln, die die Graphstruktur der Blockchain-Daten nutzen. Auswertungen haben gezeigt, dass es praktikabel ist, die Bitcoin Blockchain-Daten zu parsen, einen Neo4j Transaktionsgraphen zu erstellen und diesen in die Neo4j Graphendatenbank zu importieren. Wegen eines Programmfehlers in CAPS konnte die in Cypher implementierte Multi-Input-Heuristik jedoch noch nicht in einem Spark Cluster angewandt werden. Ausserdem zeigt die vorliegende Untersuchung auf, dass die Anwendung der Heuristik direkt in Neo4j auf einem lokalen Rechner wegen zu langer Laufzeiten nicht praxistauglich ist. Zudem lieferte dieser Versuch den Nachweis, dass die Multi-Input-Heuristik viele Duplikate erzeugt, die wieder entfernt werden mussen. Dieser Umstand führte zu der Erkenntnis, dass, falls beim Entfernen von Duplikaten in einem verteilten System wie Apache Spark das Rechner Cluster nicht richtig genutzt werden kann, eine hochgradig optimierte lokale Lösung in Erwägung zu ziehen wäre. Gleichwohl ist der in dieser Arbeit prasentierte Ansatz, der Heuristiken in CAPS anwendet, vielversprechend, um Bitcoin Blockchain-Daten zu verarbeiten.
Zusammenfassung The analysis of Bitcoin blockchain data using heuristics, such as address clustering, is attractive for blockchain researchers and economics researchers because of the economical insights it can provide. Such analysis has become more challenging with increasing size of the Bitcoin blockchain because of its long processing times. In contrast to solutions mentioned in previous work, the approach presented in this thesis aims to reduce not only processing times but also (i) perform it on commodity hardware, and (ii) provide the possibility for users to implement new heuristics quickly. This approach includes the creation of a Transaction Graph in the graph database Neo4j from raw Bitcoin blocks, on which clustering heuristics written in the query language Cypher can be applied on a Spark cluster using Cypher for Apache Spark (CAPS). Employing Cypher for the implementation of the heuristics allows users to write their heuristics that exploit the graph nature of the blockchain data. Evaluations have shown, that it is practicable to parse the Bitcoin blockchain, create a Neo4j Transaction Graph, and import it into Neo4j. However, due to software errors encountered during the employment of CAPS, the implemented Multi-Input heuristic in Cypher could not yet be applied on a Spark Cluster. Moreover, the application of the heuristic on a local machine directly in Neo4j has been proven to be not feasible for the complete blockchain because of long processing time. It could also be shown that the Multi-Input heuristic produces a considerable amount of duplicates which need to be removed. Thus, this lead to the conclusion that, if removing duplicates in a distributed system, e.g., Apache Spark, cannot exploit the computing cluster, it might be worth considering a highly optimised local solution. Nevertheless, the approach presented in this thesis is promising to address the processing of this type of data, i.e., Bitcoin transactions, with the employment of heuristics in CAPS.
PDF File Download
Export BibTeX