Ab November 2012 ist die Blockchain fast 3 GB groß mit einem nahezu linearen Wachstum von etwa 500 MB/Monat (vermutlich vom exponentiellen Wachstum durch die fest codierte Blockgrößenbegrenzung abgeschnitten).
Ich möchte Bitcoin auf meinem durchschnittlichen Notebook installieren: Das Herunterladen und Überprüfen der neuesten bootstrap.dat von Bitcoincharts dauerte einige Stunden (5–9, schätze ich), aber das waren nur 2,3 GB! Jetzt habe ich darauf gewartet, dass Bitcoin die letzten 2–3 Monate nachholt, in denen die Blöcke erheblich größer waren und jeder Block etwa 5 Sekunden für die Verarbeitung benötigt, mit meiner CPU bei ~25% und meiner Festplatte bei maximale Arbeitsbelastung.
Das ist, gelinde gesagt, nicht nachhaltig.
Wir brauchen ein System, in dem eine bereits verifizierte Blockchain heruntergeladen und direkt in den Bitcoin-Ordner kopiert werden kann, vielleicht in inkrementeller Form. Der Quelle muss vertraut werden, dafür braucht man ein Verifizierungssystem, in dem jeder die Korrektheit der Blockchain kontrollieren und dann signieren kann, ich würde vorschlagen, dafür gpg-Schlüssel zu verwenden.
Die Quelle kann dann beispielsweise über servergestützten Torrent verteilt werden.
Ist das technisch möglich und wie?
Bearbeiten: Da ich das mit einer falschen Denkweise angegangen bin, habe ich eine Art Folgefrage zu den Sicherheitsrisiken von Lightweight-Clients gestellt. Sollte ein Endbenutzer die gesamte Blockchain herunterladen? Oder reicht ein „Lightweight“-Client aus?
Es gibt bereits herunterladbare Versionen der Blockchain. Es ist grundsätzlich kein Problem, sie von mehreren Vertrauenspersonen GPG-signieren zu lassen. Jedoch:
Es schwächt etwas die Sicherheit. Mit der Software selbst können Sie den Signaturen vertrauen und den Code einsehen. Mit der Überprüfung von Blockchain-Daten ist dies nicht machbar.
Zukünftige Versionen werden ein anderes DB-Format verwenden, das eine viel schnellere Überprüfung ermöglicht, sodass es keinen großen Vorteil für ein System gibt, bei dem die Überprüfung umgangen wird, aber das Herunterladen der Daten immer noch erforderlich ist.
Langfristig werden Endbenutzer keinen vollständigen Client verwenden, sondern (bestenfalls) einen SPV-Client, der nicht die gesamte Blockchain herunterladen oder verifizieren muss.
Das ist technisch sicherlich möglich (mit ausführen -detachdb
und dann das Datenbankverzeichnis kopieren), aber die Frage ist, ob man das möchte.
Treten Sie zunächst einen Schritt zurück. Bitcoin ist so konzipiert, dass es mit angemessener Sicherheit auf leichtgewichtigen Knoten funktioniert (siehe „Vereinfachte Zahlungsüberprüfung“ in Satoshis Artikel ). Die einzige Voraussetzung für Trust Lightweight Nodes ist, dass die Kette mit der meisten Arbeit auch gültige Transaktionen enthält. Solche leichtgewichtigen Knoten erfordern einige Megabyte an Downloads zum Synchronisieren und verursachen fast keine CPU- oder Festplattenlast. Beispiele für solche Node-Implementierungen sind Multibit oder Bitcoin Wallet für Android .
Der Grund dafür ist, dass leichte Nodes davon ausgehen, dass es vollständige Nodes gibt, die alles verifizieren, und dass kein Miner das Risiko eingehen wird, Blöcke zu erstellen, die ungültige Transaktionen enthalten (eine sehr vernünftige Annahme, da in einem gesunden Netzwerk solche Blöcke ignoriert werden). von allen anderen). Diese Full Nodes bilden das Sicherheits-Backbone des Netzwerks, und da sie alles verifizieren, erfordern sie im Wesentlichen Zero Trust. Das ist so etwas wie eine Kerneigenschaft von Bitcoin, die es in kaum einem anderen Zahlungssystem gibt: das Privileg, niemandem vertrauen zu müssen.
Wenn Sie eine vorindizierte Blockchain herunterladen, geben Sie dieses Privileg auf. Sie werden im Wesentlichen einer Person vertrauen (vielleicht ein paar, wenn Sie sich tatsächlich die Mühe machen, Signaturen zu überprüfen), um Ihnen zu sagen, welche Transaktionen in der Geschichte von Bitcoin gültig waren. Dies ist eine viel stärkere Annahme als die, die Sie beim Ausführen eines Lightweight-Clients treffen. Wenn jemand in der Lage wäre, einen solchen Download (sogar unbeabsichtigt!) zu beschädigen, und er von vielen Personen verwendet wurde, könnte das Risiko ein gegabeltes Netzwerk sein. Das könnte eine Katastrophe werden.
Wenn Sie also der Meinung sind, dass Ihr System die aktuelle Last des Ausführens eines vollständigen Knotens nicht bewältigen kann, führen Sie bitte einfach einen leichten Knoten aus. Wenn leichte Software nicht die gewünschten Funktionen bietet, ermutigen Sie sie, sie zu implementieren – sie werden mit der Zeit benötigt.
Als Randnotiz sollte die nächste Version (0.8) von Bitcoind/Bitcoin-Qt viel schneller sein, insbesondere auf Hardware mit langsamer Ein-/Ausgabe.
Sie können wählen, wo Sie herunterladen möchten!
Weitere Informationen finden Sie unter Wie kann die Blockchain am schnellsten heruntergeladen werden?
Ich habe beschrieben, wie man dem Bitcoin-Client mitteilt, sich mit benutzerdefinierten Knoten zu verbinden. Auf diese Weise können Sie Bitcoin beispielsweise anweisen, sich mit den wichtigsten Hub-Knoten zu verbinden.
Das hat 2 Vorteile:
A) volle Kontrolle, wem man vertrauen kann
B) Flammender, fetter Bitcoin-Blockchain-Download.
Profpatsch
Meni Rosenfeld
Stefan Gornik
Pieter Wuille
Sydney