Einige Leute sind besorgt über die Skalierbarkeit von Bitcoin. Die Blockchain hat bereits fast 1 GB zum Herunterladen und Speichern erreicht, was nicht gerade im Sinne eines modernen Thin Clients ist, insbesondere in Bezug auf mobile Geräte.
Wenn man nun das Satoshi Paper konsultiert , scheinen sie bereits eine Lösung gefunden zu haben:
7. Rückgewinnung von Speicherplatz
Sobald die letzte Transaktion in einer Münze unter genügend Blöcken begraben ist, können die zuvor ausgegebenen Transaktionen verworfen werden, um Speicherplatz zu sparen. Um dies zu erleichtern, ohne den Hash des Blocks zu brechen, werden Transaktionen in einem Merkle Tree gehasht [...], wobei nur die Wurzel im Hash des Blocks enthalten ist. Alte Blöcke können dann verdichtet werden, indem Äste des Baums abgestumpft werden. Die internen Hashes müssen nicht gespeichert werden.
Ein Block-Header ohne Transaktionen wäre etwa 80 Bytes groß. Wenn wir davon ausgehen, dass Blöcke alle 10 Minuten generiert werden, sind 80 Bytes * 6 * 24 * 365 = 4,2 MB pro Jahr. Da Computersysteme ab 2008 typischerweise mit 2 GB RAM verkauft werden und das Moore'sche Gesetz ein aktuelles Wachstum von 1,2 GB pro Jahr vorhersagt, sollte die Speicherung kein Problem darstellen, selbst wenn die Blockheader im Speicher gehalten werden müssen.
Ist dies bereits für die aktuelle Version implementiert? "4,2 MB pro Jahr" deutet darauf hin, dass nein. Steht es schon auf der Roadmap? Sind die Entwickler auf unvorhergesehene Hindernisse gestoßen? Wird die Lösung so effektiv sein wie versprochen?
Die Blockchain hat bereits fast 1 GB zum Herunterladen und Speichern erreicht,
Der Vorschlag in Satoshis Papier reduziert nicht die Download - Anforderungen , sondern nur die Speicheranforderungen (siehe diesen Beitrag zur bitcoin-dev-Mailingliste). Sofern Sie sich nicht auf einen vertrauenswürdigen Drittanbieter verlassen können, müssen Sie dennoch mindestens alle Block-Header herunterladen.
Wenn Sie nur die Header und nicht die vollständigen Blöcke herunterladen und „vergrabene X-Blöcke tief“ als Beweis dafür behandeln, dass eine Transaktion gültig ist , sind Sie offen für eine neue Klasse von Angriffen , die einen normalen Full-Chain-Client nicht betreffen würden. Der normale Client behandelt "vergrabene X-Blöcke tief" als Beweis dafür, dass eine Transaktion später nicht rückgängig gemacht wird - die Überprüfung, ob die Eingaben der Transaktion nicht ausgegeben werden , ist davon völlig getrennt. Ein Thin Client kann nicht überprüfen, ob die Eingaben einer Transaktion nicht ausgegeben wurden, da er nur die Blockheader hat – er hat keine Kopie der Transaktionen selbst.
Die besorgniserregendsten dieser neuen Angriffe müssen von Ihrem ISP kommen, aber in der heutigen Zeit der Wi-Fi-Cafés ist das kein so weit hergeholtes Szenario. Benutzung also auf eigene Gefahr.
Ich habe mich auf einer Wiki-Seite umgesehen, die sich mit all diesen Problemen befasst.
Derzeit gibt es keine offiziellen Lightweight-Clients wie diesen, und soweit ich weiß, sind sie auch nicht in der Entwicklung. Es gibt jedoch ein paar inoffizielle Kunden, wie StrongCoin oder Electrum, die noch weniger Daten enthalten. Diese arbeiten jedoch in einem Server-Client-Modus, nicht Peer-to-Peer wie der von Satoshi beschriebene Client.
Es ist durchaus möglich, dass ein solcher Client nie erstellt wird, da das Speichern nur der Blockheader an sich etwas sinnlos ist. Sie müssen sich ohnehin darauf verlassen, dass das Netzwerk Ihnen eine gültige Blockchain liefert, Sie haben nicht viel davon, die Header zu speichern, und wenn leichtgewichtige Bitcoin-Clients, die auf Server angewiesen sind, allgemein verfügbar und akzeptiert würden, könnten Sie mit noch weniger Daten auskommen.
Roland Köfler
Roland Köfler
Tyler