Bitcoin: Ein Peer-to-Peer-Elektronisches Geldsystem


Satoshi Nakamoto • 24. Oktober 2008


Zusammenfassung


Es wird ein rein peer-to-peer Version eines elektronischen Zahlungssystems vorgeschlagen, das es ermöglicht, Online-Zahlungen direkt von einer Partei an eine andere zu senden, ohne einen vertrauenswürdigen Dritten zu benötigen. Das traditionelle Problem der doppelten Ausgabe wird durch eine Peer-to-Peer-Netzwerk-Lösung gelöst. Das Netzwerk timestamped Transaktionen, indem es sie in eine fortlaufende Kette von Hash-basierten Proof-of-Work Blöcken einbettet, wodurch eine Aufzeichnung entsteht, die nicht geändert werden kann, ohne die Proof-of-Work neu zu berechnen. Das längste Kette dient nicht nur als Beweis für die Reihenfolge der Ereignisse, sondern auch als Beweis, dass sie von der größten Rechenleistung des Netzwerks stammt. Solange die Mehrheit der Rechenleistung vom ehrlichen Netzwerk kontrolliert wird, können Angreifer die Kette nicht manipulieren.

1. Einleitung


Der Handel im Internet hat sich fast ausschließlich auf Finanzinstitute als vertrauenswürdige Dritte verlassen, die elektronische Zahlungen verarbeiten. Obwohl das System für die meisten Transaktionen gut funktioniert, leidet es unter den inhärenten Schwächen des vertrauensbasierten Modells. Vollständig nicht umkehrbare Transaktionen sind nicht wirklich möglich, da Finanzinstitute Konflikte vermitteln müssen. Die Kosten für die Vermittlung steigen mit der Größe der Transaktionen, was die Möglichkeit kleiner Gelegenheitszahlungen einschränkt und teurere Transaktionen mit höheren Gebühren belastet. Es gibt auch eine größere Kostenbelastung durch die Notwendigkeit, reversibel zu sein. Mit der Möglichkeit von Rückbuchungen steigt das Betrugsrisiko. Händler müssen vorsichtig sein und unnötige Informationen von Kunden verlangen. Ein bestimmter Prozentsatz an Betrug wird als Kosten akzeptiert. Diese Kosten und Zahlungsunsicherheiten können durch die Verwendung von physischem Bargeld vermieden werden, aber es gibt keinen Mechanismus für Zahlungen über einen Kommunikationskanal ohne vertrauenswürdige Partei.

Was benötigt wird, ist ein elektronisches Zahlungssystem, das auf kryptografischen Beweisen statt auf Vertrauen basiert und es zwei Parteien ermöglicht, direkt miteinander zu handeln, ohne einen vertrauenswürdigen Dritten. Transaktionen, die rechnerisch praktisch nicht umkehrbar sind, schützen Verkäufer vor Betrug, und routinemäßige Escrow-Mechanismen können Käufer leicht schützen. In diesem Papier schlagen wir eine Lösung für das doppelte Ausgabe-Problem mit einem Peer-to-Peer-Netzwerk vor.

2. Transaktionen


Wir definieren eine elektronische Münze als eine Kette digitaler Signaturen. Jeder Eigentümer überträgt die Münze an den nächsten, indem er eine digitale Signatur des Hashs der vorherigen Transaktion und des öffentlichen Schlüssels des nächsten Eigentümers hinzufügt und diese der Münze anhängt. Der Zahlungsempfänger kann die Signaturen überprüfen, um die Eigentümerkette zu verifizieren.

Das Problem bei diesem Modell ist natürlich, dass der Empfänger nicht sicherstellen kann, dass einer der vorherigen Eigentümer die Münze nicht doppelt ausgegeben hat. Die übliche Lösung ist, eine vertrauenswürdige zentrale Instanz einzuführen, die jede Transaktion auf doppelte Ausgaben überprüft. Nach jeder Transaktion muss die Münze an die zentrale Instanz zurückgegeben werden, die sie neu ausgibt. Der Nachteil dieser Lösung ist, dass das Schicksal des gesamten Geldsystems von der zentralen Instanz abhängt, die jede Transaktion verwaltet.

3. Timestamp Server


Die Lösung beginnt mit einem Timestamp-Server. Ein Timestamp-Server funktioniert, indem er einen Hash eines Blocks von Items nimmt und diesen Hash in einer weit verbreiteten Zeitung oder Usenet-Posting veröffentlicht. Der Timestamp beweist, dass die Daten zu diesem Zeitpunkt existierten, da sie offensichtlich in den Hash aufgenommen werden mussten. Jeder Timestamp enthält den vorherigen Timestamp in seinem Hash, wodurch eine Kette entsteht, wobei jeder zusätzliche Timestamp die vorherigen verstärkt.

4. Proof-of-Work


Um ein dezentrales Timestamp-System zu implementieren, müssen wir ein Proof-of-Work-System ähnlich wie Adam Back's Hashcash verwenden. Der Proof-of-Work beinhaltet das Scannen nach einem Wert, dessen Hash mit einer bestimmten Anzahl von Nullen beginnt. Sobald die CPU-Aufwand ausgegeben wurde, um den Block zu erfüllen, kann er nicht mehr geändert werden, ohne die Arbeit neu zu erledigen. Solange die Mehrheit der CPU-Leistung von ehrlichen Knoten kontrolliert wird, wird die ehrliche Kette am schnellsten wachsen und alle Angreifer überholen.

5. Netzwerk


Die Schritte zum Ausführen des Netzwerks sind wie folgt:

  1. Neue Transaktionen werden an alle Knoten gesendet.
  2. Jeder Knoten sammelt neue Transaktionen zu einem Block.
  3. Jeder Knoten arbeitet an der Lösung eines schwierigen Proof-of-Work für seinen Block.
  4. Wenn ein Knoten eine Lösung findet, sendet er den Block an alle Knoten.
  5. Knoten akzeptieren den Block nur, wenn alle Transaktionen darin gültig und nicht bereits ausgegeben sind.
  6. Knoten drücken ihre Akzeptanz des Blocks aus, indem sie an dem nächsten Block arbeiten, dessen Hash den akzeptierten Block als vorherigen verwendet.

6. Anreiz


Durch Konvention ist die erste Transaktion in einem Block eine spezielle Transaktion, die eine neue Münze für den Ersteller des Blocks erstellt. Dies fügt einen Anreiz hinzu, Knoten zum Unterstützen des Netzwerks zu motivieren und bietet eine Möglichkeit, Münzen in Umlauf zu bringen, da es keine zentrale Autorität gibt, die sie ausgibt. Sobald eine bestimmte Anzahl von Münzen in Umlauf ist, kann der Anreiz vollständig durch Transaktionsgebühren ersetzt werden und ist vollständig inflationsfrei.

7. Das erneute Ausgeben von Speicherplatz


Einmal die letzte Transaktion in einer Kette ausreichend weit zurück liegt, können die Transaktionen gelöscht werden, um Speicherplatz zu sparen. Um dies zu ermöglichen, ohne die Block-Hashes zu brechen, wird der Merkle-Tree verwendet, wobei nur der Wurzel-Hash in den Block-Hash einbezogen wird.

8. Vereinfachte Zahlungsverifizierung


Es ist möglich, Zahlungen zu verifizieren, ohne einen vollständigen Netzwerkknoten auszuführen. Ein Benutzer muss nur die Block-Header der längsten Proof-of-Work-Kette erhalten und den Merkle-Branch, der die Transaktion mit dem Block verknüpft.

9. Schlussfolgerung


Wir haben ein System vorgeschlagen, das Peer-to-Peer-Elektronisches Geld ohne vertrauenswürdige Dritte ermöglicht. Die Konstruktion basiert auf der Verwendung eines Peer-to-Peer-Netzwerks, um doppelte Ausgaben zu verhindern. Das Netzwerk timestamped Transaktionen durch Hashing in eine fortlaufende Kette von Proof-of-Work, die nicht geändert werden kann, ohne die gesamte Arbeit neu zu erledigen. Das längste Kette dient nicht nur als Beweis für die Sequenz der Ereignisse, sondern auch als Beweis, dass sie von der größten Rechenleistung stammt.

Das vollständige Originaldokument finden Sie unter: bitcoin.org/bitcoin.pdf