Hier meine Gedanken, erst zur theoretischen und praktischen Machbarkeit, dann zur Sinnhaftigkeit. Allerdings ohne dass ich mich bei Bitcoin, IOTA oder anderweitig ernsthaft damit beschäftigt hätte. Vielleicht übersehe ich also auch Entscheidendes.
Theoretisch denke ich schon, dass das auch bei Bitcoin möglich wäre. Wenn man zu einem Zeitpunkt das komplette UTXO Set, den aktuellen Block und eine Hand voll Parameter kennt, hat man alle relevanten Informationen für den weiteren Betrieb. Das heißt auf Basis eines derartigen Snapshots könnte man von da an weiterarbeiten.
Praktisch würde das bedeuten, dass man das Bitcoin Protokoll so anpassen müsste, dass man einen bestimmten Snapshot als Basis festlegt, der von da an durch alle Nodes anerkannt wird. Da die Konsens-Regeln signifikant betroffen wären, wäre das mit Sicherheit kein reibungsloser Hard Fork. Abgesehen davon würde man dafür zumindest heutzutage keine Mehrheit bekommen, da man nicht viel gewinnt (s.u.).
Bei der Festlegung des Snapshot Zeitpunktes muss man auf jeden Fall ein ganzes Stück in die Vergangenheit zurückgehen. Die Sicherheit von Bitcoin beruht entscheidend darauf, dass die Blockchain mit dem größten Proof of Work gültig ist.
Es könnte immer sein, dass gerade zwei Chains parallel gemined werden. Entweder bösartig, oder gutartig (zwei parallel gefundene Blöcke).
Der Snapshot Zeitpunkt sollte also mindestens ein paar Wochen oder Monate zurückliegen. Speichern müsste man also ab dem Zeitpunkt des Konsens-Wechsels nur noch den Snapshot, sowie die Blöcke die von da an gemined wurden. Man würde auf keine Fall den Snapshot heute durchführen und direkt darauf aufbauen.
Was würde man gewinnen?
Die Skalierung von Bitcoin würdest du denke ich dadurch verbessern wollen, dass man wegen der geringeren Anzahl zu speichernder Blöcke stattdessen die Blöcke vergrößert.
Erstens müsste man so einen Snapshot also nicht nur einmal, sondern regelmäßig durchführen. Das wäre jedes Mal ein riesen Akt, kaum vorstellbar.
Man könnte es auch fest ins Protokoll integrieren. Das wäre aber dann eine noch größere Änderung und würde evtl. auch neue Angriffsmöglichkeiten schaffen.
Zweitens muss der Snapshot wie gesagt immer einige Zeit zurückliegen. Man könnte den Speicherbedarf vielleicht bestenfalls um den Faktor 10…100 verringern. Wenn man stattdessen die Blöcke um denselben Faktor vergrößern würde, wegen mir sogar um den Faktor 1000, hätte man trotzdem keine ausreichende Skalierung für eine Weltwährung.
Wenn also trotzdem zusätzliche Second Layer notwendig sind, warum dann überhaupt stark im Mainlayer skalieren? Geringe, notwendige Skalierung ist auch durch zukünftige geringe Blockvergrößerungen möglich.
Drittens gibt es physikalische und informationstechnische Grenzen, die bzgl. Transaktionen pro Sekunde in einem sicheren, globalen, für jeden zugänglichen P2P Blockchain Netzwerk nicht überschritten werden können. Egal wie groß du die Blöcke machst, werden die TPS ohne Second Layer niemals reichen. Siehe z.B. meine grobe Abschätzung hier.
Viertens beruht Bitcoins Sicherheit darauf, dass die Miner heute (wenig Fees) und in Zukunft (wenig Subsidy) einen ausreichenden Anreiz haben zu minen. Eine Blockgrößenerhöhung müsste man also u.a. auch auf jeden Fall bzgl. Einfluss auf die Blockrewards untersuchen. Siehe Thread hier.