Wie erkläre ich Bitcoin meinen unbedarften Freunden?

Ich wollte eigentlich auf dieses Thema hier antworten:

… aber dann ist es ein so langer Post geworden, dass ich mir gedacht hab: Jetzt hab ich mir meinen eigenen Thread verdient.

Wenn ich meinen Idiotenfreunden und -bekannten* Bitcoin erkläre, finde ich es sehr nützlich, so zu tun, als würden wir uns wirklich von 0 weg überlegen, was für Probleme wir lösen müssten, wenn wir aus der Bank ein dezentrales Netzwerk machen wollten.

Auf das „Warum Bitcoin“ will ich gar nicht eingehen, das mag jeder nach eigenem politischen Geschmack ergänzen – erfahrungsgemäß fällt das den meisten Leuten leichter als das „Wie Bitcoin“.

*Freunde und Bekannte eines Idioten



Problem 1: Bei der Bank hab ich ein Login, aber ohne Bank könnte sich ja jeder einfach als jemand anderer ausgeben und Transaktionen fälschen.

Lösung: Nur jemand, der ein Geheimnis kennt, kann eine Transaktion unterschreiben, aber jeder kann überprüfen, ob die Unterschrift echt ist.

→ kryptographische Signatur, basierend auf asymmetrischer Verschlüsselung


Problem 2: Die Reihenfolge von Transaktionen ist total wichtig, um beurteilen zu können, ob für eine bestimmte Transaktion genug Geld da ist oder nicht. Die Bank kann leicht Transaktionen danach ordnen, wann sie eingegangen sind, und so entscheiden, ob die Transaktion geht oder nicht. In einem global verteilten Netzwerk kann man aber praktisch nicht sicherstellen, dass jeder alles in der gleichen Reihenfolge erhält.

Lösung: Transaktionen werden in Blöcke zusammengefasst, und jeder Block beinhaltet einen Verweis auf den vorhergehenden.

→ Blockchain


Problem 3: Wenn jetzt jeder so eine Kopie aller bisherigen Blöcke hat, und es kommen neue Transaktionen rein, dann kann ja nicht einfach jeder beliebig einen neuen Block draus machen und den anderen Leuten aufzwingen, das wär ja totales Chaos. Irgendwie muss also entschieden werden, wer „offiziell“ den nächsten Block anhängen darf.

Lösung: Es gibt eine Lotterie, in der man im Wesentlichen eine seltene Zahl erraten muss. Ob irgendeine bestimmte Zahl so eine „seltene“ ist, kann jeder mittels ganz einfacher Rechnung überprüfen, aber das heißt nicht, dass man leicht eine finden kann.

→ Hashfunktion


Problem 4: Okay, jetzt haben wir wenigstens mal die Möglichkeit geschaffen, dass alle Teilnehmer auf dem gleichen Stand sind. Aber was ist, wenn irgendein Betrüger absichtlich nicht am gleichen Stand sein will und z.B. behauptet, eine bestimmte Transaktion hat gar nicht stattgefunden, damit er das gleiche Geld nochmal ausgeben kann? Woher wissen wir, wer jetzt die Wahrheit sagt?

Lösung: Wir machen einerseits die Lotterie aus dem letzten Schritt so extrem schwierig, dass das ganze Zahlenraten eine Menge Rechenleistung und Strom kostet, und wir legen andererseits einfach fest, dass die längste Version der Blockchain immer die Wahrheit definiert.

Warum funktioniert das? Wenn jetzt jemand über die Vergangenheit lügen will, muss er einen alten Block abändern. Dann muss er aber auch alle späteren Blöcke wegwerfen, weil der Verweis, den jeder Block auf den letzten hat, dort dann überall nicht mehr stimmt. Jetzt ist seine Version der Blockchain erst mal kürzer als die der anderen, also weiß jeder, dass er nicht die Wahrheit sagt. Damit ihm die anderen wieder glauben, müsste er jetzt so flott neue Blöcke anhängen, dass seine Blockchain wieder so lang wird wie die „echte“. Das ist wegen des Stromaufwands mit extremen Kosten verbunden und auch nur möglich, wenn der Betrüger mehr Rechenleistung hat als alle anderen zusammen, die währenddessen ja auch neue Blöcke machen.

→ Proof of Work


Problem 5: Wenn wir es also jetzt so extrem schwierig und teuer machen, einen neuen Block anzuhängen, nur damit wir Betrügern das Leben schwer machen, warum sollte dann überhaupt noch irgendein ehrlicher Teilnehmer diesen Aufwand betreiben?

Lösung: Wer ehrlich einen Block anhängt, wird finanziell belohnt, und zwar mit neu erschaffenen Bitcoin. Das löst mit einem Schlag auch gleich das Verteilungsproblem (wie verteile ich neu geschaffene Werte gerecht auf alle Interessenten?) und ist die einzige Art, wie neue Bitcoin erschaffen werden.

→ Block Subsidy


Problem 6: Wenn wir jetzt wirklich jeden Blockmacher mit frischen Bitcoin belohnen, würde das nicht zu einer hohen Inflation führen, vor allem, wenn es wegen steigender Rechenleistung immer leichter wird, einen Block zu machen?

Lösung: Wir halbieren die Belohnung alle soundsoviele Blöcke, damit die Gesamtmenge an Bitcoin für immer auf 21M beschränkt bleibt. Die steigende Rechenleistung kompensieren wir, indem wir für unsere Lotterie eine Zieldauer von 10 Minuten festlegen und regelmäßig überprüfen, ob wir das halbwegs einhalten. Wenn die seltenen Zahlen zu schnell erraten werden, machen wir es einfach schwieriger, und umgekehrt.

→ Halving, Difficulty Adjustment



YMMV, aber ich hab die Erfahrung gemacht, dass so ein Zugang gut funktioniert, vor allem, wenn man nicht gleich die Lösungen vorwegnimmt, sondern die Probleme wirklich stellt und darüber redet, warum die Lösungsvorschläge des Gesprächspartners möglicherweise nicht zielführend sind.

Wenn man erst mal bei PoW angekommen ist, passiert die Erkenntnis, dass das alles sehr clever gelöst ist, oft ziemlich automatisch.

12 „Gefällt mir“

Deine Erklärungen gefallen mir gut - besonders die Idee, die anderen selber nach Lösungsansätzen suchen zu lassen hilft letztendlich, dass die Lösung auch besser hängen bleibt.

Wenns ok ist, würde ich mich mal ganz frech deiner Ansätze bedienen, wenn ich den „Bitcoin - in a Nutshell“ One-Pager runterschreibe :slight_smile:

1 „Gefällt mir“

Klar, bedien dich!

1 „Gefällt mir“