Grundlagen von Blockchain Analytics

Mit der zunehmenden Verwendung der Blockchain Technologie öffnet sich auch ein neues Feld für die Daten-Analyse: Insbesondere Anwendungen im Bereich Computer-Forensik, Identifizierung von betrügerischem Handeln und Finanz-Analysen sind Beispiele für Blockchain Analytics. In diesem Beitrag möchte ich Grundlagen für Blockchain-Analytics darstellen.

Anwendungsfälle für Blockchain Analytics

Bevor ich auf die Datenanalyse von Blockchain-Daten eingehe, möchte ich zunächst einige Anwendungsfälle für Analytics vorstellen, bei denen die Blockchain Technologie eine gewisse Rolle spielt.

Computer-Forensik und Verbrechensbekämpfung

Da die Blockchain noch eine eher neue Technologie ist, werden Regulierungen und gesetzliche Vorgeben erst langsam entwickelt. Insbesondere Cryptowährungen werden gerne für kriminelle Aktivitäten eingesetzt da hier die Blockchain-Technologie verschiedene Vorteile bietet: Durch die Anonymität werden Cryptowährungen für illegale Geschäfte verwendet und auch zur Geldwäsche. Die Analyse von Blockchain Daten kann dabei helfen, Zahlungsströme nachzuvollziehen und verbrechen zu bekämpfen.

Handel von Cryptowährungenund Preis-Vorhersage

Mit den Cryptowährungen ist ein komplett neuer Finanzmarkt entstanden. Zugegebenermaßen deutlich kleiner als beispielsweise Devisen- oder Rohstoffmärkte jedoch ist die große Volatilität von Cryptowährungen insbesondere bei Tradern beliebt. Für die Datenanalyse können die Blockchain-Daten selbst mit zusätzlichen Informationen verbunden werden um Modelle zu entwickeln, die es erlauben, Preise von Cryptowährungen vorherzusagen. Hierbei können insbesondere auch statistische Modelle und künstliche Intelligenz eingesetzt werden.

Daten-Quellen für Blockchain Analytics

Je nach Anwendung werden Daten für die Analyse benötigt. Hierbei können verschiedenene Datenquellen eingesetzt werden: Beispielsweise können Transaktionen direkt von der Blockchain mit Hilfe geeigneter Software geladen werden. Zunehmend gibt es auch Software-Lösungen die relevanten Daten in Dashboards anzeigen oder als Service zum Download anbieten.

Download von Blockchain Daten

Es gibt verschiedene Anbieter und Webseiten wo Blockchain Daten heruntergeladen werden können. Ein Beispiel ist dieser Beitrag im bitcointalk Forum wo Sie Bitcoin Transaktionen herunterladen können. Das Datenformat unterscheidet sich je nach Quelle.

APIs für Blockchain Daten

Insbesondere für Live-Anwendungen können APIs verwendet werden. Ein Beispiel für Ethereum ist etherscan API wo Details der Ethereum Blockchain abgefragt werden können: Beispielsweise können Account Stände, Transaktionen und weitere Events abgefragt werden. Die API verwendet REST via HTTP Protokoll. Auch eine API für websockets ist verfügbar um Informationen in Realtime auszutauschen. Eine weitere Datenquelle für Ethereum ist Ethplorer.

Interaktion mit der Blockchain

In manchen Situationen möchten Sie vermutlich nicht von Drittanbietern als Datenquelle abhängig sein. In diesem Fall können Sie eventuell auch direkt mit den Knoten des Blockchain-Netzwerkes kommunizieren.

Für Ethereum gibt es eine  JavaScript API namens web3. Diese erlaubt es Transaktionen von der Ethereum Blockchain abzufragen und kann in einer entsprechenden Analyse-Software verwendet werden.

Modellierung von Blockchain Daten

Die geeignete Datenmodellierung richtet sich wiederum sehr stark nach Ihrer Anwendung und auch danach, mit welchen Technologien und Prinzipien der Datenmodellierung Sie bereits vertraut sind. Grundsätzlich gibt es zwei Ansätze, die hauptsächlich verwendet werden:

Der erste Ansatz ist es, eine relationale Datenstruktur zu wählen, bei denen verschiedene Typen gegeben sind wie z.B. Knoten, Blöcke der Blockchain, Adressen und Transaktionen. Als erster einfacher Einstieg könnte z.B. eine SQL Datenbank verwendet werden, die einfach zu handhaben ist.

Der alternative Ansatz wäre eine Graph-Struktur zu wählen bei der z.B. die Adressen durch Knoten dargestellt und die Transaktionen durch Verknüpfungen der Knoten modelliert werden können. Eine Technik die hier eingesetzt werden könnte, wäre z.B. Neo4j, eine open source Graph-Datenbank.

Daten-Pipeline für Blockchain Analyse Projekt

Bestenfalls setzen Sie eine automatisierte Pipeline auf, welche die gewünschte Analyse der Blockchain Daten für Sie ausführt. Die Pipeline sollte alle notwendige Schritte umfassen, vom Einlesen der Daten von der Quelle über Transformationen und die Analyse bis zur Darstellung der Ergebnisse in einem Dashboard bzw. in einem Bericht.

Spezielle Software und Programme für Blockchain Analytics

Aufgrund der Tatsache, dass die Blockchain noch eine relativ neue Technologie ist, befindet sich auch speziell dafür ausgerichtete Analyse-Software noch ganz am Anfang. Dennoch kann Standard-Software wie z.B. Excel oder Python verwendet werden, um gewisse Analysen für Blockchain Projekte durchzuführen.