Noch eine App;) Bitcoin lineage tracker by dackelmann

Hallo zusammen,

ich wollte eigentlich noch warten, aber da das Thema hier den ein oder anderen wohl auch umtreibt möchte ich schon mal mein aktuelles Projekt vorstellen. War eigentlich nicht gedacht das zu veröffentlichen, aber wenn ich Interesse besteht werde ich das gerne tun. Auf jeden Fall freue mich über Feedback, ggf. hat der ein oder andere ja noch eine Idee was ein must have wäre für so eine App.

Mein Ziel war/ist es nicht ein Cointracking 2.0 oder eine andere App zu entwickeln die mir einen Steuerreport baut, das ist nicht der Scope meiner App.

So wie mir geht es vermutlich vielen hier. Man hat irgendwann angefangen Bitcoin zu kaufen bzw. sats zu stacken. Erst auf einer Börse wie z. B. Bison. Man beschäftigt sich mit dem Thema und stellt fest, man braucht eine eigene Wallet und ggf. einen Bitcoin nativen Broker wie coinfinity. Eventuell findet hier schon die erste transaction statt. Dann besorgt man sich eine Hardware Wallet, die sats werden wieder bewegt. Man passt sein Setup an, verteilt ggf. auf eine weitere Wallet. Geht auf Multisig, optional passphrase, was auch immer. UTXO mgmt macht das ganze auch nicht einfacher nachvollziehbar.

Und ich denke in Zukunft wird sowas immer mal wieder vorkommen, weil man sein Setup den Gegebenheiten anpassen muss.

Die Frage die ich mir hierbei gestellt habe, wie verhält sich das jetzt mit dem Herkunftsnachweis. Auf meinen Kaufbelegen steht ich habe an Datum xy diese sats gekauft und die wurden auf diese Wallet bzw. auf diese Adresse gesendet. Liegen diese Sats da auch noch nach ein paar Jahren? Also in meinem Fall nicht alle. Aus Unwissenheit am Anfang und weil ich mein Setup mehrfach angepasst habe um mehr Sicherheit reinzubekommen.

Wie mache ich jetzt dem Finanzamt klar, dass das die selben sats sind die jetzt 5 Jahre später auf einer ganz anderen Adresse liegen und ggf. auch über mehrere Wallets verschoben wurden? Am Ende schadet diese ganze Steuerthematik am meisten denen, die Eigenverwahrung betreiben und die Sats nicht auf einem Broker liegen lassen. Wenn man die Herkunft nicht nachweisen kann, kann es doch recht teuer werden.

Das ist der Scope meiner App. Rein on-chain, startet mit einer Aquisition und endet mit einem unspent UTXO oder einem Exit (transfer zu einem broker für den Verkauf).

Was ich gerade noch am testen bin, es kann natürlich sein, dass man sats auf der wallet hat die nicht von einer Aquisition stammen. Die müssen auch gelistet werden mit einem extra flag. Genauso Aquisitions die ggf. „verloren gegangen sind“ und auf keiner der hinterlegten wallets/adressen liegen.

  • Datenbasis sind einmal meine Aquisitions - import per CSV von coinfinity als Beispiel
  • Abgeleitete Adressen meiner xpubs
  • ggf. manuell hinterlegte adressen
  • falls man den xpub/die adressen nicht mehr hat kann man diese im trace auch manuell auf „owned“ setzen.

Die App läuft lokal in einem docker container auf einer ubuntu VM. Connect per RPC auf die eigene umbrel Node im LAN. Bewusst so gebaut, schränkt den Anwenderkreis natürlich ein. Kann komplett offline betrieben werden, die Daten werden ausschließlich von der eigenen Node abgefragt. Ob diese per Tor oder anderweitig nach außen connected ist spielt keine Rolle. Alle Daten bleiben lokal.

Am Ende kann man sich dann die „exits“ z. B. aus dem letzten Jahr als csv exportieren und hat da drin den genauen Pfad, über welche Adressen die sats so gewandert sind.

Um irgendwelche Adressen und Transaktionen manuell zu tracen(forward/reverse) kann man die App natürlich auch nehmen, dauert halt bisschen bis der graph sich aufbaut.

Im Anhang paar Bilder. Freue mich wie gesagt über Feedback. Paar Kleinigkeiten möchte ich noch fixen, dann könnte ich die App auch auf Github packen falls sie jemand bei sich betreiben oder testen möchte.

Der Monster Graph auf dem letzten Bild ist natürlich nicht von mir, habe eine random Adresse aus dem Netz getraced :)

6 „Gefällt mir“

Coole Sache =)

Besonders der Name Dackelmann App finde ich passend super. :star_struck:

Hat doch noch etwas länger gedauert als gedacht, aber die beta version meiner App ist gepublished.
Wer möchte darf sie sehr gerne testen, würde mich freuen. Deployment ist in der install.md beschrieben und straight forward.

Ubuntu VM aufsetzen, IP vergeben, copy past des install-blocks. Wer nicht direkt von github installieren möchte kann die binaries manuell runterladen, ist ebenfalls in der install.md beschrieben.

Wie schon geschrieben war die Idee für WAMS (wherearemysats) der unabhängige und eindeutige Nachweis, über welche Adressen und Transaktionen sats verschoben wurden. Startet mit einer Acquisition (auf eine eigene Adresse) und endet mit einem Exit (Versand zu einer Börse). Für entsprechende exits z. B. aus dem Jahr 2025 kann man sich dann einen Blockchain History Export erstellen als PDF in welchem genau diese Provenance ersichtlich ist. Falls man doch mal ein paar Sats verkauft hat und nachweisen möchte/muss, dass das auch tatsächlich die sind die man vor x Jahren gekauft hat und jetzt ggf. auf einer anderen Adresse liegen.

Mir war es wichtig einerseits die Angriffsfläche so klein wie möglich zu halten und anderseits keine Abhängigkeit zu irgendwelchen Börsen APIs oder sonst was zu schaffen. Daher ist eine eigene Node im LAN das Hauptkriterium die App zu betreiben.

Würde mich über feedback freuen, falls es Probleme beim setup gibt helfe ich gerne. Ich habe die App selber viel getestet und konnte alle meine aktuellen UTXOs auf eindeutige Käufe zurückführen. Es gibt aber sicher Szenarien die noch nicht funktionieren/integriert sind. Lasst es mich gerne wissen. Würde die App gerne weiterentwickeln.

dackelmann21/wherearemysats: Self-hosted Bitcoin provenance: trace your sats from acquisition to exchange exit. Your node, your data.