Warum die gesamte History kennen bei Bitcoin und nicht nur Snapshots?

Hallo, brauchen wir wirklich die gesamte Transactions history? Könnte man nicht einfach einen Snapshot/hash machen, auf welchen sich das gesamte Netzwerk einigt? und selbst wenn etwas in der Vergangenheit passiert wäre würde man es doch nicht mehr ändern nach ein paar Jahren oder?

Meiner Meinung nach ist der wichtigste Grund dafür das Grundprinzip des Bitcoin. Bitcoin möchte ein vertrauensfreies Geldsystem sein. Bedeutet um Bitcoin zu verwenden, soll man niemanden vertrauen müssen. Damit dies möglich ist, muss die gesamte Historie bekannt sein. Ansonsten wäre man wieder auf das Vertrauen Anderer angewiesen. Nach dem Motto: Don‘t trust, verify!

Zusätzlich kann durch die bekannte Historie immer nachvollzogen werden, dass es keinen Inflationsbug gegeben hat, da der Ursprung jedes Bitcoins nachvollzogen werden kann. Andernfalls könnte die maximale Anzahl von 21 Millionen Bitcoins nicht garantiert werden.

Wer kein Problem damit hat auf das Vertrauen Anderer angewiesen zu sein, kann eine pruned Node verwenden. Diese kennt nur die neusten Blöcke, ältere werden verworfen. Dadurch wird der benötigte Speicherplatz minimiert. Vermutlich wird dadurch auch die Leistung der Node schneller.

3 „Gefällt mir“

Und der Snapshot kann dir nicht beweisen, dass deine Coins die älter sind als die Momentaufnahme wirklich dein Eigen sind.

1 „Gefällt mir“

Ich kann deinen ersten Punkt gut nachvollziehen aber Bitcoin hat doch mittlerweile so viele Nutzer, das man schon vielen Menschen nicht vertrauen müsste.

Selbst wenn es einen Inflationsbug 2017 oder so gegeben hätte, würde man es doch nicht ändern können/wollen.

Pruned Node sind nichts halbes und nichts ganzes, Bitcoin skaliert mit Absicht nicht damit jeder die gesamte Blockchain speichern kann und dann speichert man nicht die gesamte History…

Wie meinst du das?

Kleine Korrektur: Es werden nicht Blöcke nach Alter verworfen. Es werden vollständig ausgegebene Transaktionen verworfen, da diese für das Validieren neu eingehender Transaktionen nicht mehr benötigt werden. Schließlich kann von dort keine Transaktion stattgefunden haben.

Es steht dir frei, eine Node zu betreiben, dessen Zustand auf einem Snapshot beruht, also z.B. der Sicht einer pruned Node. Es steht dir frei, dir diese Kopie von einer Instanz deines Vertrauens zu besorgen.

Um die Blöcke korrekt zu hashen, benötigst du allerdings alle Transaktionen.

5 „Gefällt mir“

Ja, das ist mir klar, aber Bitcoin skaliert ja deswegen nicht auf dem Base-Layer und Lightning ist nochmal ne Sache für sich.

Warum will man etwas speichern, das man nicht mehr ändern kann um keinen Vertrauen zu müssen aber selbst wenn man dann ein Fehler (Inflationsbug) von vor ein paar Jahren findet, gibt es keine Alternative zu Bitcoin oder?

Hä? Weswegen skaliert Bitcoin in welchem Aspekt nicht?

Hey, wenn du das nicht speichern willst, dann musst du das nicht speichern. Worauf willst du hinaus?

1 „Gefällt mir“

Bitcoin skaliert doch in Block Größe/Transaktionen nicht damit die Blockchain nicht zu schnell, zu Groß wird und von vielen Menschen gespeichert und nachvollzogen werden kann oder?

Meine Ursprungs Frage war, warum man die gesamte Blockchain speichern muss/sollte wenn man die Vergangenheit von vor ein paar Jahren eh nicht ändern würde…

Welcher Aspekt der Frage ist denn noch unbeantwortet?

1 „Gefällt mir“

Die gesamte Frage ist noch nicht so richtig beantwortet.

Mal angenommen ich bin komplett neu bei Bitcoin und will Niemanden vertrauen, also brauche ich die gesamte history um alles selber zu bestätigen das es zb nie einen Inflationsbug gab, wenn ich jetzt doch einen finde, in 2017 oder so, würde man sowieso nie die Blockchain ändern und eine andere Alternative zu Bitcoin gibt es ja auch nicht, also was ist der Sinn dahinter die gesamte Blockchain zu speichern und damit zu verhindern das Bitcoin auf dem Base Layer skalieren kann? und Wir hätten dann doch schon länger mit dem Bug gelebt und darauf aufgebaut, also kann er doch auch nicht so extrem schlecht sein.

Das mag sein, aber jeder Inflationsbug - egal ob in der Vergangenheit oder Zukunft - erschüttert das Vertrauen in Bitcoin selbst. Im Prinzip würde Bitcoin damit nicht das einhalten, was es verspricht. Viele - einschließlich mir - wären enttäuscht und würden sich von Bitcoin abwenden.

Damit wären wir auch wieder bei meinem ersten Punkt. In der Zukunft ist es für neue Nutzer durchaus wichtig die Vergangenheit einsehen zu können, frei nach „Don‘t trust, verify“. So kann jegliche Skepsis gegenüber der Technik mithilfe der Historie widerlegt werden.

Pruned Nodes sind eine sehr nützliche Technik. Zum Beispiel können so kostengünstige Services - bspw. Web-Apps - angeboten werden. In solchen Bereichen würden Fullnodes die Server-Kosten drastisch steigern.

Danke, das war mir noch nicht klar :wink:

1 „Gefällt mir“

Ich stimme dir in diesen Punkt 100% zu. Es gibt aber aus dieser Sichtweise keine Alternative zu Bitcoin oder? also muss man es so und auch so akzeptieren. Hätten den Snapshot oder so was in der Art keine Vorteile?

Ja, um alle Blöcke hashen zu können ist das nötig. Der Hash eines Blocks ist wiederum nötig, um alle folgenden Blöcke zu validieren. Induktiv gilt: Der vorletzte Block ist notwendig um den letzten Block zu validieren, usw. deshalb ist der Genesis Block notwendig.

Ja, kann jeder machen, verteilen und auf dem Stand Transaktionen validieren.

Nein. Warum sollte? Niemand trägt einen Nachteil davon, wenn ich alle Blöcke speichere!

Du musst nicht, wenn du nicht willst! Bitcoin gibt dir alle Freiheiten! Nur weil dir das zu viel ist, musst du doch nicht die Freiheit anderer einschränken wollen…

Wer die gesamte chain validieren will, braucht alle Blöcke (s.o.). Wer das nicht will braucht sie nicht.

Zu deiner Frage nach einem Inflationsbug:
Die derzeitige Geldmenge ist bekannt. Falls es in Bitcoin noch einen Inflationsbug gibt, dann wurde er noch nicht gefunden oder noch nicht exploited. Falls noch ein Inflationsbug auftritt, dann wäre das in der Tat ein Problem, und es gibt keinen globalen Plan, wie damit umzugehen sei. Falls irgendwohin zurückgerollt würde, dann bis unmittelbar vor auftreten des Exploits.

1 „Gefällt mir“

Es gibt aktuell keine relevante Alternative, weil es schlicht nicht nötig ist, solange Bitcoin fehlerfrei arbeitet. Die Welt braucht keine zwei Bitcoin.

Gäbe es jedoch einen Inflationsbug, würde der Schrei nach einer besseren Alternative groß werden. Diese Alternative könnte auch ein Hardfork von Bitcoin sein.

Als Beispiel kann man hier Ethereum und Ethereum Classic nennen. Als es bei Ethereum zu einen Bug kam, wurde entschieden einen Hardfork durchzuführen. Die originale Blockchain wird weiterhin in Ethereum Classic verwendet.

Klar hätte dies Vorteile, aber auch Nachteile und diese diskutieren wir ja gerade. Und per Definition von Bitcoin überwiegen diese Nachteile. Demzufolge ist ein System ausschließlich mit Snapshots, anstatt einer vollständigen Blockchain, mit der Philosophie von Bitcoin nicht vereinbar.

1 „Gefällt mir“

Naja in gewisser Art und Weise schon, da Bitcoin deswegen nicht skaliert. Was auch erstmal nicht das Problem ist imo, ich frage mich nur ob dieser trade off Sinnvoll ist und wie ich das verstehe speichert man die History nur damit man sich im schlimmsten Fall (Bug in der Vergangenheit) gegen Bitcoin entscheiden kann und das es aus meiner Sicht keine dezentrale Alternative gibt, muss man Bitcoin so und auch so verwenden, ob da nun was in der Vergangenheit war oder nicht. Also wenn man die History eh nicht ändern kann/will und sowieso nur Bitcoin eine Option ist, braucht man doch nicht 100% der History speichern…

Man kann doch aber niemals wieder ein Netzwerk so dezentral wie Bitcoin aufbauen, da PoW sehr angreifbar ist, wenn es klein ist und somit gibt es auch keine Mögliche Alternative. Alle Hardforks von Bitcoin sind zentralisiert oder haben sehr wenig hashrate. Wenn ich jetzt aber ein Inflationsbug von 2016 finden würde, wäre dieser auch in fast allen Hardforks (Außer in Bitcoin XP) und solch ein Bug hätte sich sowieso ausgewirkt oder wir haben mit ihm weiter gemacht und es nicht bemerkt, also brauchen wir doch auch nicht die gesamte history. klar es passt 100% zu Bitcoins Philosophie, aber keinen Nutzen, außer neue Leute möglicherweise zu überzeugen das es noch nie solch einen Bug gab und wer mach sich schon die Arbeit als newbie erstmal die gesamte History bis zum Genesis Block zu verifizieren…

Wie soll ich noch erklären, warum es notwendig ist??

Mehr fällt mir nicht mehr ein: https://bitcoin.org/bitcoin.pdf

Was verstehst du unter skalieren?

1 „Gefällt mir“

Ja man braucht den Hash vom letzten Block usw. aber es gibt auch Projekte, die mit Snapshots arbeiten oder so was in der Art und deswegen denke ich mal das, dass nicht das Problem wäre.

Ich meine skalieren in Tps, mehr/größere Blöcke etc.

Das hängt davon ab wie weit ein solches neues System von dem bereits Etablierten entfernt ist. Angenommen Bitcoin enthält einen Inflationsbug. Dann wäre es vermutlich relativ einfach einen Großteil das Bitcoin Netzwerke davon zu überzeugen Bitcoin 2.0 zu verwenden.

Dieses neue System müsste im Prinzip zwei Punkte berücksichtigen, um akzeptiert zu werden: Zum einen muss der Bug behoben sein. Zum anderen darf der Mining Algorithmus nicht verändert werden. So könnte relativ einfach die vorhandene Mining Hardware in das neue System überführt werden. Dann wäre quasi über Nacht das neue System das sicherste Netzwerk und das Alte so unsicher wie die bereits vorhandenen Alternativen (Bitcoin Cash, etc.).

Jeder, der eine Node neu aufsetzt, macht automatisch genau das.

1 „Gefällt mir“