Zum Inhalt springen
buybitcoinsmart

Glossar / Nodes und Software

Electrum-Server

Auch bekannt als Electrum Personal Server, Electrum Server.

Was ist ein Electrum-Server?
Ein Electrum-Server indexiert die Blockchain nach Scripts und beantwortet Adressabfragen für schlanke Wallets, sodass diese Wallets sofort Guthaben sehen, ohne die Chain selbst herunterzuladen.

Irgendjemand muss die Suche übernehmen. Ein vollständiger Node weiß, welche Coins nicht ausgegeben sind, führt aber keine Zuordnung von einer Adresse zu ihrer Historie, daher fragen Wallets, die diese Historie in einer Sekunde statt in einer Stunde wollen, einen Server, der eine solche Zuordnung aufgebaut hat. Übliche Praxis ist, einen eigenen Server zusammen mit dem eigenen Node zu betreiben, denn die Alternative übergibt einem Fremden die vollständige Liste der Adressen, die Sie besitzen.

So funktioniert es

Ein Electrum-Server sitzt zwischen Bitcoin Core und einer Wallet und übersetzt zwischen beiden.

Er liest jeden Block vom Node, sobald er eintrifft, extrahiert jedes Ausgabe-Script und speichert eine Zuordnung von diesem Script zu den Transaktionen, die es berühren. Die Wallets verbinden sich dann über ein einfaches zeilenbasiertes JSON-Protokoll, Klartext auf Port 50001 oder TLS auf Port 50002, und stellen entweder eine Frage oder abonnieren Benachrichtigungen für den Fall, dass sich die Antwort ändert. Das Abonnement macht eine Electrum-Wallet unmittelbar: Der Server schickt eine Benachrichtigung in dem Moment, in dem eine Zahlung eingeht, statt dass die Wallet regelmäßig abfragt.

Wallets senden über diese Verbindung keine Adressen. Sie senden einen Script-Hash, den SHA-256-Hash des Ausgabe-Scripts mit umgekehrten Bytes, was eine Protokollkonvention und keine Datenschutzmaßnahme ist. Der Server erfährt trotzdem genau, welche Coins Sie beobachten, denn er liefert die Historie für diesen Hash zurück und kann die entsprechende Adresse in seinem eigenen Index sofort nachschlagen. Script-Hashes für Anonymität zu halten, ist das häufigste Missverständnis über diese Software.

Was die Wallet für sich behält, ist die Überprüfung. Sie lädt die Kette der Block-Header herunter und prüft den Merkle-Beweis, den der Server für jede Transaktion liefert, sodass ein Server keine Zahlung erfinden kann, die nie stattgefunden hat, ohne zugleich eine gefälschte Header-Kette zu erzeugen, die durch echte Proof of Work gedeckt ist. Er kann jedoch durch Auslassen lügen und Ihnen eine Transaktion oder eine Ausgabe verheimlichen, was ein kleineres, aber echtes Risiko ist.

Drei Implementierungen decken fast alle Bereitstellungen ab: electrs in Rust, geschätzt für seinen kleinen Index; Fulcrum in C++, geschätzt für seine Abfragegeschwindigkeit; und ElectrumX in Python, das Original. Electrum Personal Server geht einen anderen Weg und beobachtet nur die Wallets, die Sie in einer Konfigurationsdatei auflisten, statt die ganze Chain zu indexieren, was fast keinen Speicherplatz kostet, aber nichts über die Adressen anderer beantwortet.

Wo Sie es sehen

Electrum-Server sind die unsichtbare Hälfte der meisten Desktop-Bitcoin-Wallets.

Electrum selbst, erstmals im November 2011 von Thomas Voegtlin veröffentlicht, verbindet sich mit öffentlichen Servern, die von Freiwilligen betrieben werden, sofern Sie nichts anderes angeben. Sparrow, Specter und BlueWallet sprechen alle dasselbe Protokoll. Jedes beliebte Node-Paket, darunter Umbrel, Start9, RaspiBlitz und myNode, liefert electrs oder Fulcrum genau deshalb mit, damit die Wallet auf Ihrem Laptop Ihre eigene Maschine abfragen kann und niemand sonst Ihre Adressen erfährt.

Der Grund, warum das zählt, ist nicht hypothetisch. Ab Ende Dezember 2018 betrieben Angreifer bösartige Server im öffentlichen Electrum-Netzwerk und nutzten eine Schwachstelle in Versionen vor 3.3.3 aus, bei der ein Server beliebigen Rich Text als Fehlermeldung zurückgeben konnte. Nutzern, die eine Zahlung senden wollten, wurde etwas angezeigt, das wie eine offizielle Aufforderung zur Installation eines Updates aussah, und der Download war Malware. Gemeldete Verluste beliefen sich auf Hunderte Bitcoin. Der Client wurde geändert, um Formatierungen aus Server-Nachrichten zu entfernen, doch die Lehre bleibt: Ein öffentlicher Server ist eine nicht vertrauenswürdige Partei, mit der Ihre Wallet ständig spricht.

Electrum-Server vs. Neutrino

Ein Electrum-Server übernimmt die Suche für Sie und erfährt, wonach Sie gesucht haben; Neutrino sendet Ihnen das Rohmaterial, sodass es fast nichts erfährt. Das Electrum-Modell ist günstig, einige Kilobyte pro Abfrage und eine sofortige Antwort, weshalb es Desktop-Wallets dominiert, die mit einem Hardware-Gerät gekoppelt werden. Das Neutrino-Modell lädt für jeden Block einen kompakten Filter herunter und prüft ihn lokal und verbraucht weit mehr Bandbreite, um nicht preiszugeben, welche Scripts übereinstimmten. Wählen Sie das Server-Modell, wenn der Server Ihnen gehört, und das Filter-Modell, wenn das nicht möglich ist.

Nicht zu verwechseln mit

Häufig gestellte Fragen

Sieht ein öffentlicher Electrum-Server meine Adressen?

Ja, alle. Ihre Wallet abonniert jedes Script, das sie besitzt, und obwohl sie Hashes statt Adressen sendet, hält der Server den Index, der sie wieder umkehrt. Einen eigenen Server zu betreiben, was jedes beliebte Node-Paket zu einer Installation mit einem Klick macht, ist der einzige Weg, dieses Leck zu schließen.

Kann ein Electrum-Server mir ein falsches Guthaben anzeigen?

Nicht ohne Weiteres. Ihre Wallet prüft jede Transaktion gegen Block-Header, die sie selbst heruntergeladen hat, sodass eine erfundene Zahlung eine gefälschte Kette mit echter Proof of Work dahinter bräuchte. Ein feindseliger Server kann Ihnen jedoch Transaktionen verheimlichen oder sich weigern, die von Ihnen gesendeten weiterzuleiten.

Weiterlesen

Verwandte Begriffe

Mehr zum Thema Nodes und Software

Diese Seite auf Englisch lesen