Ist „Reclaiming Disk Space“ bereits implementiert? Wie effektiv wird es sein?

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?

Satoshi glaubt, dass das Mooressche Gesetz ein lineares Wachstum vorhersagt?
Außerdem wächst die Blockchain exponentiell und nicht linear.
@Roo, Satoshi hat "aktuell" gesagt, was so interpretiert werden könnte, dass er sich ausdrücklich auf die linearisierte Annäherung bezog.

Antworten (2)

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.

Links in Ihrer Antwort sind defekt.

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.

danke, ich weiß, dass es Architekturen geben kann, die auf verteilten Servern beruhen, aber je mehr Bitcoin auf autarke Clients dezentralisiert werden kann, desto besser
@herzmeister Sie können immer einen virtuellen Server bekommen oder einen Computer mit statischer IP verwenden, volles Bitcoin darauf installieren und es über JSON-RPC von praktisch überall aus steuern. Es ist nicht zu schwer und Sie bekommen sozusagen das Beste aus beiden Welten. Obwohl ich nach meiner eigenen Erfahrung mit dem erneuten Herunterladen der gesamten Blockchain zu einem Online-Wallet gewechselt bin.
ja natürlich kannst du und wahrscheinlich auch ich das, aber ich spreche wirklich von der Masse
Massen werden Client-Server verwenden, ohne davon zu wissen ;).
@ThePiachu, du meinst "Massen werden ihre Münzen gestohlen, weil sie einem Server vertraut haben, den sie nicht haben sollten". Alle bestehenden "Light Client"-Vorschläge haben versteckte und gefährliche Vertrauensbeziehungen, die völlig undokumentiert sind. Bitte verwechseln Sie diese Sicherheitskatastrophen nicht mit dem Abschnitt „Vereinfachte Zahlungsüberprüfung“ in Satoshis Papier.
@eldentyrell Dasselbe könnte passieren, wenn Sie ein Betriebssystem verwenden, dem Sie nicht vertrauen, oder einen gehackten Client austauschen usw. Jemandem zu vertrauen, einen vereinfachten Client zu entwickeln, ist genauso, als würde man jemandem vertrauen, einen leichten Client zu entwickeln. Es geht darum, darauf zu vertrauen, dass die wallet.dat sicher aufbewahrt wird, was mit beiden Ansätzen erreicht werden kann. Der einzige Unterschied wäre, dass der Server Sie in letzterer Version dazu verleiten könnte, Ihnen falsche Daten über Ihren Transaktionsverlauf anzuzeigen, die Sie in einem Block-Explorer überprüfen können. Alles in allem ist alles über Bitcoin den Entwicklern vertraut, Kern oder anderweitig.
@ThePiachu, Sie schreiben "jemandem vertrauen, einen vereinfachten Client zu entwickeln", was darauf hinweist, dass Sie die Entwicklung der Client-Software eindeutig mit dem Betrieb der Serverkomponente verwechselt haben. Software kann digital auf Integrität signiert und von mehreren Parteien geprüft werden, wie es derzeit der Bitcoin-Client tut. Server, auf die Sie sich verlassen, um Abfragen zu verarbeiten ("die Cloud"), können auf diese Weise nicht einfach geprüft werden.
@eldentyrell - Ich glaube, Stratum Server ist Open Source und so konzipiert, dass ein böswilliger Server nicht viel Schaden anrichten kann. Es ist noch nicht einmal Alpha, aber es ist eine Richtung, die ich gerne entwickelt sehen würde.
@ ripper234, in Bezug auf "und ist so aufgebaut, dass ein böswilliger Server nicht viel Schaden anrichten kann", nein, Sie liegen falsch. Der Server kann Angriffe gegen den Client ausführen, gegen die ein Thick Client immun ist. Die Leute, die diese "Schicht" fördern, leisten einfach gute Arbeit, um die Sicherheitsprobleme zu verschleiern.
@eldentyrell – Ich fördere Startum und glaube nicht, dass es ein großes Sicherheitsrisiko darstellt. Es ist fast per Definition "weniger sicher" als ein vollständiger Client, aber ich glaube ehrlich gesagt nicht, dass es für "nicht riesige" Geldbeträge von Bedeutung ist.
@ripper234, vage "es ist sicher, vertrau uns!!!" Kommentare wie Ihre sind die Art von Verschleierung, auf die ich mich beziehe. Es tut mir leid zu hören, dass Sie sich der Sicherheitsprobleme und Vertrauensprobleme nicht bewusst sind. Leider bedeutet die Tatsache, dass Sie sich ihrer nicht bewusst sind, nicht, dass sie nicht existieren. Viele Leute glaubten, dass mybitcoin für "nicht riesige" Geldbeträge sicher sei und schauen Sie, was passiert ist ...
@eldentyrell Soweit ich weiß, können Sie den Electrum-Server kopieren, selbst ausführen und Ihren Light-Client nur damit verbinden, was der Verwendung von Standard-Client und json-rpc entspricht. Was „das Protokoll lieben“ betrifft, so kann man das gleiche über das Bitcoin-Protokoll sagen. Es dauert lange, bis jemand versteht, wie es funktioniert, und dann stellen sie fest, dass sie sich ein paar Mal geirrt haben, als sie es verstanden haben. Wenn Sie Ihren eigenen Client nicht von Grund auf neu geschrieben haben, verstehen Sie das Bitcoin-Protokoll nicht vollständig, es hat so viele Nuancen (es erstaunt mich immer noch ein halbes Jahr später).
@eldentyrell - du verbreitest FUD. Wenn Sie eine bestimmte Behauptung haben, warum es nicht sicher ist, teilen Sie dies mit (nicht hier - entweder im Forum oder vielleicht auf chat.stackexchange.com ). Wenn Sie möchten, dass ich erkläre, warum ich denke, dass es sicher ist, stellen Sie eine Frage und ich werde sie beantworten.
@ripper234, du verbreitest Fehlinformationen. Ich habe meine Bedenken mehrfach im „Stratum“-Thread dargelegt, beginnend hier: bitcointalk.org/index.php?topic=55842.msg665443#msg665443 Ich werde nicht versuchen, es innerhalb der 600-Zeichen-Grenze dieses Kommentars zu wiederholen Mechanismus.
@ThePiachu, niemand macht sich Sorgen um Personen, die ihre eigene Kopie des Servers betreiben. Wie herzmeister betonte, wird die überwiegende Mehrheit der Benutzer dies nicht tun.
@ripper234, übrigens, Sie haben bereits gezeigt, dass Sie keine Ahnung haben, wie Bitcoin funktioniert, als Sie dies gepostet haben (was ich und die Site-Administratoren bearbeiten mussten, um es zu beheben): bitcoin.stackexchange.com/questions/2598/ … … Ich denke nicht, dass Sie dadurch zu einer sehr glaubwürdigen Quelle für Ratschläge darüber werden, was sicher ist und was nicht!
@eldentyrell - danke für die Flamme. Ich habe Ihre Bearbeitung zu dieser Frage rückgängig gemacht. Wie ich oben geschrieben habe, werde ich gerne eine Antwort posten, warum ich Stratum für sicher halte, wenn Sie eine Frage dazu stellen. Es sollte keine Rolle spielen, wie gut ich die komplizierte niedrige Ebene des Bitcoin-Protokolls kenne – nur, ob die spezifischen Behauptungen, die ich aufstelle, richtig oder falsch sind. Wenn es einen Fehler gibt, zögern Sie nicht, meine Antwort auf die Frage zu kommentieren, die ich Ihnen stellen möchte. Lassen Sie uns diesen Thread beenden und zum Chat wechseln, wenn Sie möchten.
@eldentyrell, siehe meine Analyse von Stratum hier: bitcoin.stackexchange.com/a/2615/78
Zu Ihrer Information, ich habe eine neue Frage erstellt: bitcoin.stackexchange.com/questions/3199/… und mit dieser verknüpft