ETFFIN Finance >> Finanzbildung >  >> Kryptowährung >> Blockchain

Wie verhindert eine Blockchain die doppelte Ausgabe von Bitcoins?

Eines der Hauptanliegen eines jeden Kryptowährungsentwicklers ist das Problem der Doppelausgaben. Dies bezieht sich auf die Häufigkeit, mit der eine Person einen Saldo dieser Kryptowährung mehr als einmal ausgibt. effektiv eine Diskrepanz zwischen den Ausgabenaufzeichnungen und der Menge dieser verfügbaren Kryptowährung zu schaffen, sowie die Art und Weise, wie es verteilt wird.

Das Problem der Doppelausgaben ist ein Problem, das Bargeld nicht hat; Wenn Sie ein Sandwich mit einem 10-Dollar-Schein bezahlen, die Rechnung dem Sandwichmacher übergeben, Sie können sich nicht umdrehen und die gleichen $10 woanders ausgeben. Eine Transaktion mit einer digitalen Währung wie Bitcoin, jedoch, erfolgt komplett digital. Dies bedeutet, dass es möglich ist, die Transaktionsdetails zu kopieren und erneut zu übertragen, sodass dieselbe BTC mehrmals von einem einzigen Eigentümer ausgegeben werden könnte. Unter, Wir werden untersuchen, wie Kryptowährungsentwickler sichergestellt haben, dass keine doppelten Ausgaben auftreten können.

Die zentralen Thesen

  • Ein technisches Problem, das bei der Idee einer digitalen Währung auftritt, ist die Möglichkeit für jemanden, das digitale Geld zu duplizieren und gleichzeitig an zwei oder mehr Orten auszugeben.
  • Dieses „Double-Spend“-Problem wird in Blockchain-basierten Kryptowährungen wie Bitcoin durch einen Konsensmechanismus, der als Proof-of-Work (PoW) bekannt ist, verhindert.
  • Dieses PoW wird von einem dezentralisierten Netzwerk von „Minern“ durchgeführt, die nicht nur die Treue der vergangenen Transaktionen im Ledger der Blockchain sicherstellen, sondern auch Doppelausgaben erkennen und verhindern.

Die Blockchain verstehen

Die Blockchain, die einer digitalen Währung wie Bitcoin zugrunde liegt, ist allein nicht in der Lage, Doppelausgaben zu verhindern. Eher, alle verschiedenen Transaktionen, die die jeweilige Kryptowährung betreffen, werden in die Blockchain gepostet, wo sie separat verifiziert und durch ein Bestätigungsverfahren geschützt werden. Bei Bitcoin und vielen anderen Kryptowährungen Transaktionen, die auf diese Weise bestätigt wurden, werden unwiderruflich; sie werden öffentlich veröffentlicht und auf Dauer gepflegt.

Bitcoin war die erste große digitale Währung, die das Problem der doppelten Ausgaben löste. Dies geschah durch die Implementierung dieses Bestätigungsmechanismus und die Aufrechterhaltung eines gemeinsamen, universelles Ledger-System. Auf diese Weise, Die Bitcoin-Blockchain bewahrt Aufzeichnungen über zeitgestempelte Transaktionen auf, die bis zur Gründung der Kryptowährung im Jahr 2009 zurückreichen.

In Bitcoin-Begriffen, ein "Block" ist eine Datei mit permanent aufgezeichneten Daten. Alle letzten Transaktionen werden in Blöcke geschrieben, ähnlich wie ein Aktientransaktionsbuch an einer Börse. Alle paar Minuten werden dem Ledger Informationen aus Blöcken 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, Dies schützt das Hauptbuch auch vor Manipulationen durch externe Quellen. Wenn das Blockchain-Ledger aktualisiert wird, Das gilt auch für alle Bitcoin-Wallets.

Umgang mit Doppelausgaben

Stellen Sie sich vor, Sie haben 1 BTC und versuchen, es zweimal in zwei separaten Transaktionen auszugeben. Sie können dies versuchen, indem Sie dieselbe BTC an zwei separate Bitcoin-Wallet-Adressen senden. Beide Transaktionen gehen dann in den Pool der unbestätigten Transaktionen ein. Die erste Transaktion würde über den Bestätigungsmechanismus genehmigt und dann im nachfolgenden Block verifiziert. Jedoch, die zweite Transaktion würde vom Bestätigungsprozess als ungültig erkannt und nicht verifiziert. Wenn beide Transaktionen gleichzeitig aus dem Pool zur Bestätigung gezogen werden, die Transaktion mit der höchsten Anzahl von Bestätigungen wird in die Blockchain aufgenommen, während der andere verworfen wird.

Damit wird zwar das Problem der doppelten Ausgaben effektiv gelöst, es ist nicht ohne Probleme. Zum Beispiel, der beabsichtigte Empfänger der zweiten (fehlgeschlagenen) Transaktion nicht an der Transaktion selbst beteiligt wäre, wenn sie fehlschlägt, und dennoch würde diese Person nicht die erwartete Bitcoin erhalten. Viele Händler warten auf mindestens 6 Bestätigungen einer Transaktion (was bedeutet, dass nach der betreffenden Transaktion sechs aufeinanderfolgende Transaktionsblöcke zur Blockchain hinzugefügt wurden). An diesem Punkt, der Händler kann sicher davon ausgehen, dass die Transaktion gültig ist.

Es verbleiben weitere Schwachstellen in diesem System, die Double-Spend-Angriffe ermöglichen könnten. Zum Beispiel, wenn ein Angreifer irgendwie in der Lage ist, mindestens 51% der Macht des Netzwerks zu kontrollieren, sie können doppelte Ausgaben begehen. Wenn ein Angreifer irgendwie in der Lage wäre, so viel Rechenleistung in den Griff zu bekommen, sie könnten Transaktionen rückgängig machen und eine separate, private Blockchain. Jedoch, Das schnelle Wachstum von Bitcoin hat praktisch sichergestellt, dass diese Art von Angriff unmöglich ist.

Arbeitsnachweis &'Mining' erklärt

Kommen wir nun etwas technischer. In der Praxis erkennen Benutzer Manipulationen wie den Versuch, doppelte Ausgaben zu tätigen, durch Hashes, lange Zahlenfolgen, die als Arbeitsnachweis (PoW) dienen. Setzen Sie einen bestimmten Datensatz durch eine Hash-Funktion (Bitcoin verwendet SHA-256), und es wird immer nur ein Hash generiert. Durch den "Lawineneffekt, " jedoch, selbst eine winzige Änderung an einem Teil der Originaldaten führt zu einem völlig unkenntlich gemachten Hash. Unabhängig von der Größe des ursprünglichen Datensatzes, der von einer gegebenen Funktion erzeugte Hash hat die gleiche Länge. Der Hash ist eine Einwegfunktion:Er kann nicht verwendet werden, um die Originaldaten zu erhalten, nur um zu überprüfen, ob die Daten, die den Hash generiert haben, mit den Originaldaten übereinstimmen.

Für einen modernen Computer wäre es trivial, einen beliebigen Hash für eine Reihe von Bitcoin-Transaktionen zu generieren. um den Prozess in "Arbeit, " Das Bitcoin-Netzwerk stellt einen bestimmten "Schwierigkeitsgrad" ein. Diese Einstellung wird so angepasst, dass ein neuer Block "gemined" wird - der Blockchain durch Generieren eines gültigen Hashs hinzugefügt wird - ungefähr alle 10 Minuten. Die Einstellung der Schwierigkeit wird erreicht, indem ein " target" für den Hash:je niedriger das Ziel, je kleiner die Menge gültiger Hashes ist, und desto schwieriger ist es, einen zu generieren. In der Praxis, dies bedeutet einen Hash, der mit einer langen Folge von Nullen beginnt:der Hash für Block #429818, zum Beispiel, ist 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d. 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 geändert hat, der resultierende Hash wäre nicht wiederzuerkennen, und das Netzwerk würde den Betrug ablehnen.

Da ein bestimmter Datensatz nur einen Hash generieren kann, Wie stellen Miner sicher, dass sie einen Hash unter dem Ziel generieren? Sie ändern die Eingabe, indem sie eine ganze Zahl hinzufügen, genannt eine Nonce ("Nummer wird einmal verwendet"). Sobald ein gültiger Hash gefunden wurde, es wird an das Netzwerk gesendet, und der Block wird der Blockchain hinzugefügt.

Bergbau ist ein kompetitiver Prozess, aber es ist eher eine Lotterie als ein Rennen. Im Durchschnitt, alle zehn Minuten erstellt jemand einen akzeptablen Arbeitsnachweis, aber wer es sein wird, ist eine Vermutung. Miner schließen sich zusammen, um ihre Chancen auf das Mining von Blöcken zu erhöhen. die Transaktionsgebühren generiert und für eine begrenzte Zeit, eine Belohnung von neu erstellten Bitcoins.

Der Arbeitsnachweis macht es extrem schwierig, jeden Aspekt der Blockchain zu ändern. da eine solche Änderung ein erneutes Mining aller nachfolgenden Blöcke erfordern würde. Es erschwert es einem Benutzer oder einem Pool von Benutzern auch, die Rechenleistung des Netzwerks zu monopolisieren, da die zum Vervollständigen der Hash-Funktionen erforderliche Maschinerie und Leistung teuer sind.