Inhaltsverzeichnis
- Die Blockchain verstehen
- Umgang mit doppelten Ausgaben
- Arbeitsnachweis & 'Bergbau'
Eines der Hauptanliegen eines jeden Entwicklers von Kryptowährungen ist das Problem der doppelten Ausgaben. Dies bezieht sich auf die Häufigkeit, mit der eine Person einen Saldo dieser Kryptowährung mehr als einmal ausgibt, wodurch eine Diskrepanz zwischen dem Ausgabendatensatz und dem Betrag dieser verfügbaren Kryptowährung sowie der Art und Weise, wie sie verteilt wird, entsteht.
Das Problem der doppelten Ausgaben ist ein Problem, das Bargeld nicht hat; Wenn Sie für ein Sandwich mit einer 10-Dollar-Rechnung bezahlen und diese dem Hersteller des Sandwichs übergeben, können Sie diese 10-Dollar-Rechnung nicht umdrehen und woanders ausgeben. Eine Transaktion mit einer digitalen Währung wie Bitcoin erfolgt jedoch vollständig digital. Dies bedeutet, dass es möglich ist, die Transaktionsdetails zu kopieren und erneut zu senden, sodass ein und derselbe BTC von einem einzelnen Eigentümer mehrmals ausgegeben werden kann. Im Folgenden untersuchen wir, wie Entwickler von Kryptowährungen sichergestellt haben, dass doppelte Ausgaben nicht möglich sind.
Die zentralen Thesen
- Ein technisches Problem, das bei der Vorstellung einer digitalen Währung auftritt, ist die Möglichkeit, das digitale Geld zu duplizieren und gleichzeitig an zwei oder mehr Orten auszugeben. Dieses Problem der doppelten Ausgabe wird bei blockchain-basierten Kryptowährungen wie Bitcoin durch verhindert Verwendung eines Konsensmechanismus, der als Proof-of-Work (PoW) bezeichnet wird. Dieser PoW wird von einem dezentralen Netzwerk von „Bergarbeitern“ durchgeführt, die nicht nur die Treue der vergangenen Transaktionen im Hauptbuch der Blockchain sicherstellen, sondern auch Doppelausgaben erkennen und verhindern.
Die Blockchain verstehen
Die Blockchain, die eine digitale Währung wie Bitcoin untermauert, kann Doppelausgaben allein nicht verhindern. Vielmehr werden alle verschiedenen Transaktionen, die die relevante Kryptowährung betreffen, in die Blockchain geschrieben, wo sie separat verifiziert und durch einen Bestätigungsprozess geschützt werden. Bei Bitcoin und vielen anderen Kryptowährungen werden Transaktionen, die auf diese Weise bestätigt wurden, irreversibel. Sie werden öffentlich veröffentlicht und auf Dauer gepflegt.
Bitcoin war die erste große digitale Währung, die das Problem der doppelten Ausgaben gelöst hat. Dies geschah durch die Implementierung dieses Bestätigungsmechanismus und die Aufrechterhaltung eines gemeinsamen, universellen Hauptbuchsystems. Auf diese Weise werden in der Bitcoin-Blockchain Aufzeichnungen über Transaktionen mit Zeitstempel gespeichert, die bis zur Gründung der Kryptowährung im Jahr 2009 zurückreichen.
In Bitcoin-Begriffen ist ein "Block" eine Datei mit permanent aufgezeichneten Daten. Alle kürzlich getätigten Transaktionen werden wie bei einem Börsenbuch in Blöcke geschrieben. Informationen aus Blöcken werden alle paar Minuten zum Hauptbuch hinzugefügt. Alle Knoten im Netzwerk führen eine Kopie des Blockchain-Ledgers. Benutzer können in der Blockchain für Bitcoin navigieren und Transaktionen nur in Bezug auf die Menge überprüfen. Details über die Identität des Käufers und Verkäufers bei jeder Transaktion werden durch eine hochgradige Verschlüsselung geschützt, die auch das Hauptbuch vor Manipulationen durch externe Quellen schützt. Wenn das Blockchain-Hauptbuch aktualisiert wird, werden auch alle Bitcoin-Brieftaschen aktualisiert.
Umgang mit doppelten Ausgaben
Stellen Sie sich vor, Sie haben 1 BTC und versuchen, diesen zweimal in zwei getrennten Transaktionen auszugeben. Sie können dies versuchen, indem Sie denselben BTC an zwei separate Bitcoin-Wallet-Adressen senden. Beide Transaktionen werden dann in den Pool nicht bestätigter Transaktionen aufgenommen. Die erste Transaktion würde über den Bestätigungsmechanismus genehmigt und dann in dem nachfolgenden Block verifiziert. Die zweite Transaktion würde jedoch vom Bestätigungsprozess als ungültig erkannt und nicht verifiziert. Wenn beide Transaktionen gleichzeitig zur Bestätigung aus dem Pool abgerufen werden, wird die Transaktion mit der höchsten Anzahl an Bestätigungen in die Blockchain aufgenommen, während die andere Transaktion verworfen wird.
Hier geht es zwar effektiv um das Problem der doppelten Ausgaben, aber nicht ohne Probleme. Zum Beispiel würde der beabsichtigte Empfänger der zweiten (fehlgeschlagenen) Transaktion nicht daran beteiligt sein, dass die Transaktion selbst fehlschlägt, und dennoch würde diese Person nicht die von ihr erwartete Bitcoin erhalten. Viele Händler warten auf mindestens 6 Bestätigungen einer Transaktion (was bedeutet, dass der Blockchain nach der betreffenden Transaktion 6 nachfolgende Transaktionsblöcke hinzugefügt wurden). Zu diesem Zeitpunkt kann der Händler mit Sicherheit davon ausgehen, dass die Transaktion gültig ist.
In diesem System sind noch weitere Sicherheitslücken vorhanden, die Double-Spend-Angriffe ermöglichen könnten. Wenn ein Angreifer beispielsweise in der Lage ist, mindestens 51% der Macht des Netzwerks zu kontrollieren, kann er doppelte Ausgaben tätigen. Wenn ein Angreifer in der Lage wäre, die Kontrolle über diese Rechenleistung zu erlangen, könnte er Transaktionen rückgängig machen und eine separate, private Blockchain erstellen. Das rasche Wachstum von Bitcoin hat jedoch praktisch sichergestellt, dass diese Art von Angriff unmöglich ist. (Weitere Informationen finden Sie unter Vorsicht vor diesen fünf Bitcoin-Betrügereien.)
Arbeitsnachweis & "Bergbau" erklärt
Jetzt wollen wir ein bisschen technischer werden. Die Art und Weise, wie Benutzer Manipulationen erkennen, wie beispielsweise den Versuch, in der Praxis doppelt auszugeben, erfolgt durch Hashes, lange Zahlenfolgen, die als Beweis für die Arbeit (PoW) dienen. Durchlaufen Sie einen bestimmten Datensatz mit einer Hash-Funktion (Bitcoin verwendet SHA-256), und es wird immer nur ein Hash generiert. Aufgrund des "Lawineneffekts" führt jedoch auch eine geringfügige Änderung eines Teils der Originaldaten zu einem völlig unerkennbaren Hash. Unabhängig von der Größe des ursprünglichen Datensatzes hat der von einer bestimmten Funktion generierte Hash dieselbe Länge. Der Hash ist eine Einwegfunktion: Er kann nicht zum Abrufen der Originaldaten verwendet werden, sondern nur zum Überprüfen, ob die Daten, die den Hash generiert haben, mit den Originaldaten übereinstimmen.
Für einen modernen Computer wäre es trivial, nur einen beliebigen Hash für eine Reihe von Bitcoin-Transaktionen zu generieren. Um den Prozess in "Arbeit" zu verwandeln, setzt das Bitcoin-Netzwerk ein gewisses Maß an "Schwierigkeit". Diese Einstellung wird so angepasst, dass ein neuer Block "abgebaut" wird - etwa alle 10 Minuten - der Blockkette hinzugefügt, indem ein gültiger Hash generiert wird. Das Festlegen von Schwierigkeiten wird durch das Festlegen eines "Ziels" für den Hash erreicht: Je niedriger das Ziel, desto kleiner der Satz gültiger Hashes und desto schwerer ist es, eines zu generieren. In der Praxis bedeutet dies, dass ein Hash mit einer langen Folge von Nullen beginnt: Der Hash für Block # 429818 lautet beispielsweise 00000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d. Dieser Block enthält 2.012 Transaktionen mit etwas mehr als 1.000 Bitcoin sowie den Header des vorherigen Blocks. Wenn ein Benutzer einen Transaktionsbetrag um 0, 0001 Bitcoin ändert, ist der resultierende Hash nicht wiederzuerkennen, und das Netzwerk weist den Betrug zurück.
Wie stellen Bergleute sicher, dass sie einen Hash unterhalb des Ziels generieren, da ein bestimmter Datensatz nur einen Hash generieren kann? Sie ändern die Eingabe durch Hinzufügen einer Ganzzahl, die Nonce genannt wird ("einmal verwendete Zahl"). Sobald ein gültiger Hash gefunden wurde, wird er an das Netzwerk gesendet und der Block zur Blockchain hinzugefügt.
Bergbau ist ein wettbewerbsorientierter Prozess, aber es ist mehr eine Lotterie als ein Rennen. Im Durchschnitt wird alle zehn Minuten jemand einen akzeptablen Arbeitsnachweis erbringen, aber wer es ist, kann niemand erraten. Bergleute schließen sich zusammen, um ihre Chancen auf Minenblöcke zu erhöhen, wodurch Transaktionsgebühren und für eine begrenzte Zeit eine Belohnung für neu erstellte Bitcoins entstehen.
Ein Arbeitsnachweis macht es äußerst schwierig, einen Aspekt der Blockchain zu ändern, da eine solche Änderung ein erneutes Mining aller nachfolgenden Blöcke erfordern würde. Es macht es einem Benutzer oder einer Gruppe von Benutzern auch schwierig, die Rechenleistung des Netzwerks zu monopolisieren, da die zum Ausführen der Hash-Funktionen erforderliche Maschinerie und Leistung teuer sind.