Ich sehe mehrere Quellen für binäre Downloads der Bitcoin-Blockchain. Können diese sicher verwendet werden?
Soweit ich weiß, gibt es kein denkbares Angriffsmodell, wenn Sie die Blockchain verwenden, um den regulären Bitcoin-Client zu impfen. Es akzeptiert keinen ungültigen Block. Und es versteht, dass die „längste“ Blockchain gewinnt. Eine kompromittierte Datei, die länger als die offizielle Blockchain ist, kann also nicht existieren, und eine kompromittierte Datei, die kürzer ist, würde einfach abgelehnt, sobald sich der Client mit dem Netzwerk verbindet.
Beim Start überprüft der Client, ob die Kette grundsätzlich gültig ist und den neuesten Prüfpunkt enthält.
Wenn es einen Angriff gibt, der auf diese Weise funktioniert, handelt es sich um einen Fehler im Client. Denn jemand könnte Ihnen die gleiche „kaputte“ Blockchain auch über das Netzwerk schicken.
[Aktualisierung: Mit dem Bitcoin-Client v0.7 ermöglicht -loadblock= dem Client, Blockchain-Daten sicher aus einem lokalen Blockchain-Archiv statt aus dem Netzwerk zu importieren. Hierfür kann der Blockchain-Download von BitcoinCharts.com verwendet werden. Kopieren Sie die blk*.dat aus diesem Download in ein temporäres Verzeichnis und starten Sie Bitcoin-qt -loadblock=temp/blk0001.dat und beobachten Sie, wie die Blöcke schnell geladen werden.]
Ich werde versuchen, die Frage selbst zu beantworten.
Aktuelle Kopien der Blockchain-Datendateien werden von einem der Kernentwickler des Bitcoin.org-Teams zur Verfügung gestellt (und digital signiert).
Die URL ist nicht SSL, aber es gibt eine digitale Signatur, die verwendet werden kann, um zu überprüfen, ob die heruntergeladene Binärdatei übereinstimmt.
Wenn ich diese verwende, vertraue ich darauf, dass der Entwickler ehrlich ist und die Blockchain nicht verändert hat. Wenn dieser Entwickler es versuchen würde, könnten ungültige Daten in die Blockchain-Datendatei eingeschleust werden, was dann meinen Client dazu bringen würde, Transaktionen zu verifizieren, die anderswo als ungültig zurückgewiesen würden.
Es gibt sogar ein etwas älteres Archiv der Blockchain von der Bitcoin Sourceforge-Distributionsseite:
Ich sehe jetzt auch andere, die binäre Blockchain-Daten bereitstellen.
Diese Seite verwendet weder SSL noch gibt es eine digitale Signatur, um sicherzustellen, dass der Download derselbe ist wie der, der vom Autor gehostet wird.
Obwohl diese Methoden im Allgemeinen nicht als sicher gelten, kann es Situationen geben, in denen die Sicherheit zugunsten der Bequemlichkeit eingetauscht werden kann. Wenn Sie beispielsweise nur zuvor erhaltene Coins ausgeben und nicht erhalten, besteht bei der Verwendung einer dieser Blockchain-Dateien nur ein geringes Risiko.
Kurze Antwort: Wenn der Client die Blöcke überprüft, ist es in Ordnung. Clients tun dies normalerweise nicht, und der Mangel an Gewissheit über die Datenbank ist riskant. Welche Angriffe möglich sind, hängt von den Besonderheiten des Clients ab, aber höchstwahrscheinlich gibt es Angriffe.
Sie müssten dieser Person entweder vertrauen und über eine Datenintegritätsmaßnahme verfügen oder die heruntergeladene Kette selbst erneut validieren. Denken Sie daran, dass der Standardclient bereits heruntergeladene Blöcke ziemlich anders behandelt als heruntergeladene Blöcke.
Eine „Low-Tech“-Lösung könnte darin bestehen, den Bitcoin-Client zweimal auszuführen, einmal mit und einmal ohne die heruntergeladene Kette. Richten Sie sie so ein, dass sie sich miteinander verbinden. Jetzt wird einer der beiden die Kette lokal herunterladen und verifizieren. Nicht der effizienteste Weg, aber so vertrauenswürdig wie das Herunterladen aus dem Internet.
Bearbeiten: Nach einer Diskussion mit Pieter Wuille bin ich mir sicher, dass ich mir nicht sicher bin, wie sicher heruntergeladene Ketten sind, und entfernte Sicherheitsansprüche.
Es gibt ein aktuelles Archiv mit Blockchain-Rohdaten und Anweisungen, wie Sie Ihren bitcoin-qt-Client schnell zum Laufen bringen unter:
Ich habe mich an die Anleitung gehalten und es hat einwandfrei funktioniert. Ich hatte meinen Client in weniger als 3 Stunden zum Laufen gebracht
Stefan Gornik
Pieter Wuille
Stefan Gornik
Pieter Wuille