Projekt zur Modellierung von Bitcoin-Blockchain-Daten

Ich mache ein Diplomarbeitsprojekt über die Modellierung von Bitcoin-Blockchain-Daten, aber ich habe Probleme, Daten aus der Bitcoin-Blockchain in ein Format zu bringen, das einfach in zB Python zu handhaben ist.

Ich habe alle Daten von Bitcoin Core. Kennen Sie eine Möglichkeit, die Daten in einem Format zusammenzufassen, das eine Vorstellung vom Kontostand der Benutzer oder so ähnlich gibt?

Wenn Sie schon einmal ein ähnliches Projekt gemacht haben, interessiert mich sehr, was Sie in den Vorphasen gemacht haben! Danke.

Adressguthaben ist möglich, Benutzerguthaben jedoch nicht.
Ich habe Arbeit gesehen, bei der die Benutzer-IDs auf Wahrscheinlichkeiten basieren, dass es sich bei den Adressen um denselben Benutzer handelt. Auf diese Weise ist es möglich (mit einiger Wahrscheinlichkeit), die Anzahl der Benutzer und damit die Salden bestimmter Benutzer abzuschätzen. An so etwas dachte ich.

Antworten (1)

Wie man anonyme Transaktionen in „Benutzer“ umwandelt (höchstens ein statistischer Versuch, da Bitcoin im Prinzip anonym ist ), was zu den von Ihnen angeforderten „Benutzerbilanz“-Informationen führen könnte , es gibt Papiere, die den Prozess beschreiben. Diese könnten zum Beispiel als Ausgangspunkt dienen (mit guten Beschreibungen und Bildern):

Grundsätzlich unter Berufung auf Letzteres:

… ein „ Benutzer “ ist eine Gruppierung öffentlicher Schlüssel, die als Eingaben für eine einzelne Transaktion verwendet wurden (der Benutzer besitzt den privaten Schlüssel zu jeder Adresse) …

Geben Sie hier die Bildbeschreibung ein

Was die Probleme bei der direkten Verwendung von Python zur Verarbeitung von Rohdaten betrifft, können Sie, vielleicht als Vorlage oder um Ideen zu bekommen, diesen Beitrag verwenden, der Python verwendet, um binäre Block-Header-Daten in eine CSV-Datei umzuwandeln:

#!/usr/bin/env python
# convert binary file http://headers.electrum.org/blockchain_headers 
# to CSV ASCII

import binascii

STRUCT_OF_BLOCK = [ 4, 32, 32, 4, 4, 4 ] # blockchain_headers does not contain always "0x00" txn_count
BLOCK_SIZE = sum(STRUCT_OF_BLOCK)

FILE_OUT= open('blockchain_headers.csv','w')

FILE_OUT.write( "version,prev_block,merkle_root,timestamp,bits,nonce,txn_count\n" )

with open('blockchain_headers','rb') as FILE:
    block = FILE.read(BLOCK_SIZE)
    while block != b'':
        position = 0
        for i in STRUCT_OF_BLOCK:
            FILE_OUT.write( bytearray(binascii.hexlify( block[position:(position+i)][::-1] )).decode('ascii') + ',')
            position += i
            if position >= BLOCK_SIZE:
                FILE_OUT.write("00\n") # blockchain_headers does not contain always "0x00" txn_count
        block = FILE.read(BLOCK_SIZE)