Blockchain

Bitcoin-Grundlagen: Blockchain, Hashing und Mining … oh mein Gott!

Mit diesem Stück von entstauben wir weiterhin die Archive Daz Bea, erstmals im Juli 2021 auf Medium veröffentlicht. Zur Verbesserung der Klarheit wurden einige kleinere Änderungen vorgenommen … viel Spaß.

Vielleicht sind Sie neu bei Bitcoin, oder vielleicht sind Sie schon eine Weile im Kaninchenbau, haben aber nie wirklich verstanden, was sich hinter den Kulissen, in der Blockchain, abspielt. Ich hoffe, das Geheimnis hinter Blockchain, Hashing, Bitcoin-Mining und Distributed Ledgers in einem einfachen Artikel zu lüften. Schnallen Sie sich an, wir haben viel zu bewältigen.

SHA256-Hashing

Das Bitcoin-Netzwerk verwendet den SHA256-Algorithmus zur Durchführung von Hashing-Funktionen. Schon verwirrt? Keine Sorge, das kann sehr komplex sein und weit über meiner Gehaltsstufe liegen, aber ich werde die Grundlagen so gut wie möglich erklären.

Stellen Sie sich Hashing als die Erstellung eines digitalen Fingerabdrucks eines Datensatzes vor. Daten gehen in den Algorithmus (die Eingabe), der Algorithmus entfaltet seine Wirkung und spuckt eine Reihe alphanumerischer Zeichen aus (die Ausgabe). Das wirklich Coole am Hashing ist, dass es egal ist, wie viele Daten Sie durch den Algorithmus laufen lassen, die Ausgabe hat immer die gleiche Länge, 64 Hexadezimalzeichen für den SHA256-Algorithmus.

Figure 1 zeigt die SHA256-Hash-Funktion (wir werden dies im Folgenden als Hashing bezeichnen) des Namens „Daz“. „Daz“ ist die Eingabe und 3445748836aa04e53fd5de81c41c4a370f0cf52004659abf87920abc0da1bbaf ist die Ausgabe…
Einfach, nicht wahr?

Abbildung 1
Abbildung 1. Hash des Namens „Daz“

Jetzt ändere ich das große „D“ in ein kleines „d“ (Abbildung 2), um zu zeigen, dass eine einfache, kleine Änderung an der Eingabe zu einer völlig neuen Ausgabe führt. Eingabe = daz, Ausgabe = ae5e9de1ed5510933a86705cb253b3cbd0b0891e70217c7a64603869aeaac093. Wie Sie unserer neuen Ausgabe entnehmen können, sind die Charaktere im Vergleich zum Original völlig anders. Es gibt kein erkennbares Muster zwischen den beiden.

Screenshot 2023 07 15 bei 10.22.51 am
Abbildung 2. Hash des Namens „daz“ mit einem Kleinbuchstaben „d“

Wie bereits erwähnt, ist der resultierende Hash 64 Zeichen lang. Dies ist immer der Fall, unabhängig von der Größe der Daten, die wir in den Algorithmus einfügen. In Abbildung 3 füge ich einen gesamten Wikipedia-Artikel über Fender Stratocasters in die Eingabe ein, die Ausgabe bleibt 64 Zeichen lang. Diese Funktion würde auch dann gelten, wenn Sie den gesamten Inhalt des Internets durch den Algorithmus laufen lassen würden, jedes Mal 64 Zeichen.

Kotflügel-Hash
Abbildung 3. Hash eines Wikipedia-Artikels über Fender Stratocaster (Quelle: https://en.wikipedia.org/wiki/Fender_Stratocaster)

Ein Merkmal der SHA256-Hash-Funktion besteht darin, dass wir jedes Mal denselben Hash dieser Daten erhalten würden, wenn wir genau denselben Datensatz erneut hashen würden. Dies wird weltweit häufig verwendet, um eine Reihe großer Datensätze zu vergleichen und deren Genauigkeit sicherzustellen. Der Vergleich von Hash-Ausgaben ist einfacher als der zeichenweise Vergleich des gesamten Inhalts. Diese Funktion bildet die Grundlage der Bitcoin-Blockchain. Lassen Sie uns in das nächste Teil dieses Puzzles eintauchen … Blöcke.

Blöcke und Bergbau

Wir können die SHA256-Hash-Funktion verwenden, um mit dem Aufbau von Datenblöcken zu beginnen. Für jeden Block haben wir die Eingabe (den Datensatz) und fügen diesen Daten einige Unterscheidungsmerkmale hinzu, wie zum Beispiel eine Blocknummer. Und wir lassen es durch die Hash-Funktion laufen.

In Abbildung 4 können wir sehen, dass wir einige Datenfelder haben, wie z. B. Blocknummer, eine Nonce (wir werden bald darüber sprechen), und im Moment ist unser Datenfeld leer. Der Hash dieser inklusiven Datenfelder lautet: 0000f727854b50bb95c054b39c1fe5c92e5ebcfa4bcb5dc279f56aa96a365e5a

Block 1 Hash
Abbildung 4. Blockbeispiel 1

Sie werden ein Unterscheidungsmerkmal dieses Hashs bemerken: Beachten Sie, dass die vier führenden Zeichen alle Nullen sind. Das ist kein Zufall. Sie sehen, der Ausgabe-Hash des SHA4-Algorithmus ist tatsächlich eine sehr große Zahl. Im Alltag sind wir es gewohnt, ein Zahlensystem namens Basis 0 zu verwenden. Das bedeutet, dass unser Zahlensystem auf den Zahlen von 256 bis 10 basiert.

Insbesondere in der Informatik gibt es verschiedene Zahlensysteme. Base2 ist ein weiteres gebräuchliches Nummerierungssystem. Möglicherweise kennen Sie den Begriff „Binär“. Basis 2 oder Binär ist ein Zahlensystem, das üblicherweise für die Grundstruktur von Computersystemen verwendet wird und aus den Zahlen 0 und 1 besteht.

Die Ausgabe des Bitcoin SHA256-Algorithmus erfolgt in Base16, auch bekannt als Hexadezimal. Basis 16 verwendet einfach das Zahlensystem zur Basis 10 von 0 bis 9 und erweitert dieses Zahlensystem um die Buchstaben a durch zu f in Kleinbuchstaben, um ein äquivalentes Zahlensystem mit den in Tabelle 0 dargestellten Werten von 15 bis 1 zu erstellen.

figure2.26
Tabelle 1: Nummerierungssystem zur Basis 16 (hexadezimal).

Warum base16 verwenden? Der Kürze halber verwenden wir einfach die Basis 16. Eine Möglichkeit, extrem große Zahlen darzustellen und gleichzeitig die Gesamtzahl der Zeichen zu reduzieren.

Lassen Sie uns nun zwei neue Begriffe im Zusammenhang mit dem Bitcoin-Mining einführen. Schwierigkeit und Ziel. Difficulty und Target sind Möglichkeiten, mit denen das Bitcoin-Protokoll steuert, wie schwierig es ist, Blöcke zu finden. Ich gehe in einem meiner vorherigen Artikel zum Thema teilweise darauf ein Schwierigkeitseinstellung, das kann man lesen hier.

Bitte verstehen Sie vorerst einfach, dass das Programm, das wir für diese Demonstration verwenden, einen Fehler behoben hat "Ziel" um den Ausgabe-Hash unterhalb einer bestimmten Zielzahl funktionieren zu lassen, was das Auffinden der Nonce erschwert. Für das Bitcoin-Protokoll ist das Ziel wird alle 2 Wochen angepasst, um eine durchschnittliche Blockfreigaberate von 1 x Block alle 10 Minuten zu regulieren, da mehr Rechenleistung auf das Bitcoin-Netzwerk geworfen wird, die Blöcke schneller gelöst werden, das Protokoll auf die vorherigen Blöcke von 2016 zurückblickt und sich anpasst die Schwierigkeit, Blöcke abzubauen, indem der Zielwert gesenkt wird, was das Auffinden der Nonce erschwert.

Wir wollen uns in diesem Artikel nicht zu sehr darauf einlassen, sondern heben es uns für ein anderes Mal auf. Heute konzentrieren wir uns mehr auf die Nonce und den Aufbau einer Blockchain.

Zurück zu unserem Beispiel in Figure 4. Nun fügen wir diesem Block einige Daten hinzu. Ich werde den Satz hinzufügen "Hallo Welt". Sobald ich diese Daten hinzufüge, werden Sie feststellen, dass der Hintergrund rot geworden ist (Abbildung 5). Das Programm ist mit unserem Block jetzt nicht zufrieden. Aus Abbildung 4 geht hervor, dass der Hash dieses Datensatzes mit vier führenden Nullen begann. Dieses spezielle Programm, das ich ausführe, erfordert, dass der Hash immer unter einem Zielwert liegen muss, wobei der Ausgabe-Hash mit vier führenden Nullen beginnt, wobei diese Zahl in ihrer vollständigen Base4-Form lautet: 0ffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Hallo Welt, Block 1
Abbildung 5. Eine Änderung der Daten hat den Block ungültig gemacht.

Als ich die Daten durch Hinzufügen von „Hello World“ geändert habe, hat der SHA256-Algorithmus einen neuen Hash bereitgestellt, und wie wir sehen können, beginnt mein neuer Hash nicht mit vier führenden Nullen, der Ausgabe-Hash liegt über unserem Zielwert und ist daher ungültig.

Darin liegt eine grundlegende Wahrheit über SHA256-Algorithmen existiert eine Reihe von Daten, die, sobald sie in Kombination mit meinen anderen Daten innerhalb des Blocks enthalten sind, zu einem Ausgabe-Hash unterhalb meiner Zielzahl führen würden. Möglicherweise gibt es tatsächlich mehr als eine Antwort, wahrscheinlich sogar mehrere. Die Schwierigkeit (Wortspiel beabsichtigt) besteht jedoch darin, welche Daten es sein könnten, um das Problem zu lösen?

Dies ist, wo die Nonce kommt ins Spiel. Wenn wir meinen Datensatz innerhalb des Blocks aufschlüsseln, haben wir die Blocknummer (1) und die Daten (Hello World) sowie ein zusätzliches Feld namens Nonce (derzeit mit einem Wert von: 72608). Was wäre, wenn es einen Datensatz gäbe, den ich als Nonce-Wert einbeziehen könnte, der, sobald er zum Rest der Daten addiert wird, zu einem Hash führen würde, der die Anforderung meines Programms erfüllt, dass der Ausgabe-Hash eine Zahl kleiner als 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ergibt

Das Schöne an der Kryptographie ist, dass dies nicht manuell berechnet werden kann. Meine einzige Möglichkeit besteht darin, willkürlich zu erraten, um welche Daten es sich handelt. Kann ich den Nonce-Wert auf 1 ändern? Oder auf 2 ändern? oder ich kann es mit 2456395697 oder 45628496902074 versuchen?…….. Ich werde vielleicht eine Weile hier sein.

Oder wir können die Leistung meines Computers nutzen. Wir können die Fähigkeit des Computers nutzen, Informationen schnell zu verarbeiten, um zu erraten, welche Daten wir in das „Nonce“-Feld aufnehmen könnten, die nach Durchlaufen der Hash-Funktion zu einem Ausgabe-Hash unter 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff führen würden.

Wenn ich in meinem Programm auf „Mein“ klicke, beginnt mein PC, Werte für die Nonce zu erraten. Es gibt keine andere Möglichkeit, diesen Wert zu berechnen, als zu raten und zu prüfen, zu raten und zu überprüfen, bis wir einen Nonce-Wert finden, der die folgende Ausgabe erzielt unser Zielwert.

Sobald eine Lösung gefunden wurde, prüft das Programm das Ergebnis und der Block wird wieder grün. Es ist glücklich. Dieser Vorgang kann je nach Art und Weise einige Zeit dauern schwer Es geht darum, einen passenden Datensatz zu finden. In einfachen Worten wird dies als bezeichnet Bergbau. Wir „graben“ uns durch Datenkombinationen, um eine Lösung für ein mathematisches Problem zu finden. Wir versuchen, einen Wert der Nonce zu finden, der in Verbindung mit unseren Daten eine vorgegebene Anforderung erzeugt (in unserem Fall einen Ausgabe-Hash unter dem numerischen Basis16-Wert von 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff). Figure 6 zeigt, wie das für unser Beispiel aussieht. Auf meinem Desktop-Computer dauerte es etwa 3 Sekunden. Die Nonce war die Nummer 24894.

Hallo Welt, abgebaut
Abbildung 6. Mining einer neuen Nonce, um eine Hash-Funktion mit 4 x führenden Nullen zu erfüllen.

Herzlichen Glückwunsch! Wir haben unseren ersten Block abgebaut.

Blockchain

Eine Blockchain ist…….warten Sie…….eine Kette von Blöcken. Es ist eine Kette von Blöcken, genau wie der erste Block, den wir oben abgebaut haben, aber mit einigen Unterschieden.

Ein Datensatz wird in Block 1 eingegeben. Wir durchsuchen diesen Block, um die Nonce zu ermitteln, die die Schwierigkeitsanforderung erfüllt (ein Ausgabe-Hash unter dem Zielwert). Dies erzeugt einen Hash und unser Block ist vollständig. Anschließend erstellen wir einen neuen Block. Wir werden in diesen neuen Block ein neues Datenfeld einfügen. Ein Datenfeld, in das wir das einbeziehen Ausgabe-Hash des Verfahrensblocks als Eingabedaten in den neuen Block.

Wir können hineinsehen Figure 7, dass wir eine Kette von 2 Blöcken haben. Der erste Block ist eine Kopie unserer obigen Beispiele, aber wir haben ein neues Feld mit der Bezeichnung „Zurück“ enthält neue Daten. Block 1 ist unser Genesis-Block, er enthält beliebige Informationen im Feld prev. Der Block wird abgebaut und unser Hash dieser Daten wird abgerufen.

In Block 2 fügen wir den Ausgabe-Hash von Block 1 als Eingabedaten in unseren neuen Block ein. Wir platzieren diese Daten im Feld „Vorherige“. Wir fügen die neuen Daten hinzu, die in diesen zweiten Block aufgenommen werden sollen, und analysieren diesen Block. Unsere beiden Blöcke sind zufrieden.

Blockchain x2 Blöcke
Abbildung 7. Aufbau einer Blockchain. Der Ausgabe-Hash von Block 1 wird zum Feld „Prev“ von Block 2 hinzugefügt.

Gehen wir nun zurück und ändern etwas in Block 1. Ich werde einen Punkt „.“ hinzufügen. zu den Daten. In Abbildung 8 können wir nun sehen, dass die gesamte Blockchain nicht zufrieden ist. Beide Blöcke sind rot. Ich habe die Daten geändert und die Kette unterbrochen. Der Hash von Block 1 liegt nicht mehr unter dem Zielwert. Hinzufügen des Punktes „.“ zu den Daten hat zu einem neuen Hash mit einem Wert über unserem Zielwert von 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff geführt und ist daher nicht mit den Anforderungen des Programms kompatibel. Aber die Ausgabe von Block 1 ist auch eine Eingabe für Block 2, wodurch auch der Hash von Block 2 ungültig wird. Wir haben die Kette unterbrochen.

Blockchain Punkt hinzufügen
Abbildung 8. Eine Änderung in Block 1 hat die Kette unterbrochen.

Das erneute Mining von Block 1 hat das Programm für Block 1 aufgelöst, aber auch hier wurden die Daten in Block 2 aufgrund der Änderung des neuen Ausgabe-Hashs von Block 1 geändert, was immer noch nicht zufrieden ist (Abbildung 9).

Füge Punkt Mine 1 hinzu
Abbildung 9. Wir haben Block 1 erneut abgebaut, aber Block 2 ist immer noch nicht zufrieden.

Wir müssen jetzt auch Block 2 erneut verminen, um sicherzustellen, dass er der Schwierigkeitsanforderung entspricht. Abbildung 10 zeigt, dass wir wieder 2 x glückliche Blöcke haben, nachdem wir die neu erstellt haben Arbeit für die 2 Blöcke. "Arbeit" ist ein Begriff, der die Rechenleistung beschreibt, die wir durch den Mining-Prozess aufgewendet haben. Vielleicht haben Sie den Begriff schon einmal gehört Der Nachweis der Arbeits Was sich zuvor auf das Konzept der Sicherung der Bitcoin-Blockchain durch den Prozess des Energieaufwands bezieht … die Arbeit.

Füge Punkt Mine 2 hinzu
Abbildung 10. Erneutes Mining der Blöcke 1 und dann 2. Das Programm ist wieder zufrieden.

Beachten Sie, dass die Blöcke der Reihe nach abgebaut werden müssen. Würden wir Block 2 erneut abbauen, bevor wir den Arbeitsaufwand für Block 1 erfüllt hätten, müssten wir Block 2 erneut abbauen.

Wir haben jetzt die Grundlage für unsere Blockchain, ein dritter und dann ein vierter Block können hinzugefügt werden, wobei jeder Block mit den neuen Eingabedaten abgebaut wird, wobei der Ausgabe-Hash von Block 3 zur Eingabe von Block 4 und die Ausgabe von Block 2 zu führt die Eingabe von Block 3 und so weiter und so weiter.

Wenn unsere Blockchain jetzt 4 Blöcke lang ist und wir erneut versuchen, Daten in Block 1 zu ändern, wird die gesamte Kette ungültig. Dann müssten wir Block 1, dann Block 2 und dann Block 3 erneut verminen. Sehen Sie, wohin ich damit will?

Wir haben jetzt ein gutes Verständnis einer Blockchain und der Teile, die zusammenpassen müssen, um die Kette zu bilden. Lassen Sie uns nun diesen Gedanken vertiefen und einen Blick auf eine verteilte Blockchain werfen.

Verteilte Blockchain und Konsens

Eines der schönen Dinge an der Bitcoin-Blockchain ist das Distributed Ledger. Wir kommen gleich zur „Ledger“-Seite der Dinge, schauen wir uns zunächst einfach eine verteilte Blockchain an, um das Konzept zu verstehen.

Nehmen wir an, ich hätte eine Blockchain, die eine Reihe von Blöcken enthielt, wobei jeder Block einige Daten enthielt. Diese Daten wurden gehasht und miteinander verkettet, wie wir oben gesehen haben, um eine Blockchain zu bilden. Ich behalte eine Kopie dieser Blockchain auf meinem Computer. Was wäre, wenn die Notwendigkeit bestünde, Notizen mit jemand anderem zu vergleichen? Was wäre, wenn mir die Integrität dieser Daten wirklich wichtig wäre und ich sicherstellen wollte, dass sie nicht manipuliert wurden? Was wäre, wenn ich sicher sein wollte, dass die Daten, die ich hatte, eine wahre und korrekte Version dieser Datenreihe waren? Es wäre praktisch, wenn es eine exakte Kopie dieser Blockchain gäbe, mit der ich meine Version vergleichen könnte. Rechts?

Hier kommt die Schönheit der verteilten Blockchain ins Spiel. Was wäre, wenn ich jemand anderem eine Kopie meiner Blockchain geben würde, damit ich jederzeit hingehen und Notizen vergleichen kann? Was wäre, wenn ich ein Programm schreiben würde, das das automatisch für mich erledigt? Es konnte meine Daten kontinuierlich mit denen meiner Freunde vergleichen und etwaige Unstimmigkeiten erkennen.

Um ein verkleinertes Beispiel zu geben. Angenommen, ich hätte eine Blockchain, die nur drei Blöcke lang ist und einige wirklich wichtige Daten enthält, an denen ich gearbeitet habe. Ich könnte diese Daten in einer verteilten Blockchain sichern, indem ich eine Kopie zu Hause behalte (Abbildung 3 – Peer A) und jemand anderem eine Kopie davon gebe oder einfach eine Kopie auf meinem Computer im Büro behalte (Abbildung 11 – Peer B).

verteilt 1.
Abbildung 11. Beispiel für eine verteilte Blockchain – Peer A ist zu Hause und Peer B ist das Büro.

Wenn ich meinen Computer eingeschaltet und entsperrt lasse und irgendein ruchloser Akteur (sie sind überall) vorbeikommt und die Daten in Block 2 ändert (können Sie die Unterschiede erkennen?). Sie könnten jeden Block von 2 bis 4 neu abbauen, sodass meine Kopie der Blockchain hinsichtlich der Kette und der Hashing-Funktionen für jeden Block in Ordnung aussieht. Wenn ich jedoch zu meinem verteilten Blockchain-Programm zurückkomme, wird mir angezeigt, dass sich meine Version der Wahrheit von der auf meinem Bürocomputer unterscheidet? Ein kurzer Vergleich zeigt, dass sich das Hashing tatsächlich von Block 2 bis Block 4 geändert hat (Abbildung 12). Beide Ketten sehen für sich genommen in Ordnung aus, sie sind beide grün, aber mein Computerprogramm, das jede verteilte Version vergleicht, hat die Diskrepanz zwischen den Hashes festgestellt und mich darauf hingewiesen, dass sie nicht übereinstimmen.

verteilt 2
Abbildung 12. In Block 2 der Blockchain von Peer A wurden Daten geändert, die Blöcke wurden neu geschürft. Die Hashes aus Block 2 sind jetzt unterschiedlich.

Aber welche Version ist richtig? Es ist unmöglich zu sagen, es sei denn, ich wüsste, welche konkrete Version der Angreifer geändert hat.

Es liegt also auf der Hand, dass es praktisch wäre, wenn ich noch eine andere Version zum Vergleich hätte. Ich behalte eine Kopie zu Hause (Abbildung 13a – Peer A), eine Kopie im Büro (Abbildung 13b – Peer B) und eine weitere Kopie im Haus meiner Schwiegermutter (Abbildung 13c – Peer C).

Konsens Peer a
Abbildung 13a – Peer A-Version der Blockchain

Konsens Peer b
Abbildung 13b – Peer Bs Version der Blockchain

Konsens Peer c
Abbildung 13c – Peer C-Version der Blockchain

Jetzt schlägt der schändliche Akteur erneut zu, sie ändern die Daten auf meiner Heim-PC-Version erneut und verminen alle Blöcke zu Hause erneut. Aber jetzt habe ich einen Konsensmechanismus, mit dem ich Versionen vergleichen kann. Ich habe ein Abstimmungssystem. Ich habe 3 Kopien der Wahrheit. Peer A (Abbildung 14a) sagt mir eine Sache und die anderen beiden (Abbildung 2b) sind sich über eine andere Version der Wahrheit einig.

kein Konsens Peer a
Abbildung 14a – Version von Peer A (Änderung an Block 2)

Kein Konsens, Peer B&C
Abbildung 14b – Peer B und Peer C sind sich einig.

Ich kann diesem Konsens ein gewisses Maß an Vertrauen entgegenbringen, wenn ich davon ausgehe, dass der schändliche Akteur nicht in der Lage gewesen wäre:

  1. Kennen Sie den physischen Standort meiner Blockchains
  2. In der Lage sein, einzubrechen, die Daten zu ändern und zwei der drei Sätze dieser Blockchain erneut zu schürfen.

Das obige Szenario ist zwar möglich, aber nicht sehr wahrscheinlich.

Ich kann daher meine Heimversion ignorieren, diese Version mit den Versionen aus meinem Büro und der Version meiner Schwiegermutter sichern und sicher sein, dass ich DIE RICHTIGE Version der Wahrheit wiederhergestellt habe. Gott sei Dank gibt es Schwiegermütter und die Blockchain-Technologie.

Stellen Sie sich nun vor, ich hätte Zehntausende Computer (Knoten), die zufällig über die ganze Welt verteilt sind und diese Blockchain betreiben (diese Daten sind schließlich etwas ganz Besonderes für mich). Dieser Bösewicht müsste mehr als 10 % dieser Knoten aufspüren und jede Version davon ändern, um Zweifel daran zu wecken, welche Version der Kette die Wahrheit ist. Dies ist höchst unwahrscheinlich, wenn nicht sogar unmöglich. Genau so funktioniert die Bitcoin-Blockchain. Ein Netzwerk aus zufällig verteilten Knoten, die von gewöhnlichen Menschen auf Software auf ihren Computern oder kleinen, billigen dedizierten Hardwaregeräten betrieben werden, eine Version der Wahrheit speichern und sich gegenseitig ehrlich halten. Dies macht Bitcoin dezentral und vertrauenswürdig. Es gibt keine Partei, die die Blockchain kontrolliert, sie wird von der Gemeinschaft der Teilnehmer betrieben.

Aber Daz, was ist mit Bitcoin selbst? Was ist mit den Münzen? Was ist mit dem Hauptbuch?

Bitcoins und das Ledger

Aufgrund des Wissens, das wir bisher über Blockchain aufgebaut haben, ist das Verständnis des Ledgers so einfach wie die Formatierung des Datensatzes, mit dem wir gespielt haben. Bisher haben wir mit einem Textfeld gespielt. Und so wichtig die Information auch ist, dass „Daz ziemlich cool ist“, es stellt sich heraus, dass es niemanden sonst interessiert.

Was jedoch nützlich wäre, wäre, wenn wir das „Datenfeld“ nutzen würden, um mit der Aufzeichnung nützlicher Dinge wie Transaktionen zu beginnen. Stellen wir uns vor, wir haben jetzt eine Blockchain, die auf viele Knoten verteilt ist, schauen uns aber nur die Peers A und B an, um eine Vorstellung davon zu bekommen, aber in Wirklichkeit gibt es Tausende von Knoten, die dieselbe Blockchain ausführen. In unserem Beispiel haben wir das Datenfreitextfeld durch eine Reihe von Transaktionsfeldern ersetzt. Abbildung 15 zeigt die Blöcke 4 und 5 von Peer A und Peer B und wir können sehen, dass sich jetzt in jedem Block eine Reihe von Transaktionsdaten befinden.

Hauptbuch 1
Abbildung 15 – Peer A und Peer B mit Transaktionsdaten innerhalb einer Blockchain.

In Block 4 können wir sehen, dass ein Betrag von 62.19 $ von jemandem namens Rick an jemanden namens Isla gesendet wurde. Dies war eine Transaktion von insgesamt 5 Transaktionen in diesem Block. Der Datenblock wird genau so gehasht und abgebaut, wie wir es zuvor gesehen haben.

Unser schändlicher Schauspieler schlägt erneut zu, sein Name ist Sam und er hat 97.13 $ von Rick erhalten. Sam kennt sich ein wenig mit Programmieren aus und beschließt, dass er Rick etwas Geld stehlen will. Er beschließt, seine Version der Wahrheit zu ändern und ändert den Transaktionsbetrag auf 97,000.13 Dollar. Er reminiert seine Version (Abbildung 16), aber sie ist nutzlos. Die große Anzahl von Knoten im Netzwerk erkennt, dass es sich hierbei um eine Version der Wahrheit handelt, die nicht mit der Mehrheit übereinstimmend ist. Diese Version wird vom Netzwerk abgelehnt. Netter Versuch, Sam.

Sam gegen Rick
Abbildung 16. Sam versucht, Rick abzuzocken, indem er den Transaktionsbetrag ändert. Dies wird vom Konsensnetzwerk abgelehnt.

Wir können eine ganze Menge Transaktionen zwischen Parteien sehen, aber woher wissen wir, dass Rick überhaupt 97.13 $ ausgeben musste?

Coinbase – Der Genesis-Block

Wenn Sie schon länger in der Bitcoin-Community sind, haben Sie zweifellos vom berüchtigten Genesis-Block gehört. Satoshi Nakamoto (der berüchtigte, pseudonyme Schöpfer von Bitcoin) schürfte den ersten Block, der eine Blockbelohnung von 50 Bitcoin enthielt. Block Rewards bilden die Coinbase für Bitcoin, das heißt, um Coins ausgeben zu können, müssen diese zunächst in Umlauf gebracht werden. Der Bitcoin Genesis-Block wurde eigentlich als Block „0“ gezählt und die ersten 50 Bitcoin waren eigentlich nicht ausgabefähig, aber ab Block 1 bildeten sie die Coinbase.

Münzen werden mit jedem einzelnen Block nach einem streng kontrollierten Freigabeplan eingeführt. Dieser Veröffentlichungsplan sieht etwa alle 1 Minuten einen Block vor. Alle 10 Blöcke wird die Blockbelohnung halbiert. Zum Zeitpunkt dieses Schreibens im Juli 210,000 beträgt die Blockbelohnung alle etwa 2021 Minuten 6.25 BTC. Derzeit sind Bitcoins im Wert von 10 Millionen US-Dollar im Umlauf, wobei der letzte 18.7-millionste Bitcoin schätzungsweise im Jahr 21 geschürft wird.

Der Block 1 bildete die anfängliche Münzbasis, das anschließende Mining weiterer Blöcke erweitert die Münzbasis durch die Blockbelohnungen. In unserem Beispiel beginne ich mit Block Nummer 1, dieser bildet meine Coinbase.

Wenn wir uns unser Blockchain-Beispiel (Abbildung 17) ansehen, können wir sehen, dass ich mir in unserem ersten Block 100 $ belohnt habe. Teilweise, weil ich ein guter Kerl bin, und teilweise, weil ich zufällig derjenige war, der den ersten Block abgebaut hat. Als wir zu Block 2 ziehen, fange ich an, meine Münzen auszugeben.

Das Programm prüft immer, ob meine Transaktionsausgaben (die von mir ausgegebenen Münzen) mein Guthaben in der Münzbasis nicht überschreiten. Ich füge die Transaktionsdaten in Block 2 ein und schürfe auch diesen Block. Ich werde mit mehr Münzen als Blockbelohnung für Block 2 belohnt.

Von hier aus baut sich die Blockchain weiter auf und behält eine verteilte Kopie des Hauptbuchs unter den Knoten bei. Diese Knoten setzen die vom Programm festgelegten Regeln durch. Block 3 ist in weiteren Transaktionen enthalten, wenn andere Benutzer mit der Transaktion beginnen. Lucas schürft ebenfalls, löst das Schwierigkeitsrätsel für Block 3 und erhält die Blockbelohnung für diesen Block. Und die Kette wächst immer weiter.

Münzkassette 1
Abbildung 17. Der Blockchain wird nun eine Coinbase hinzugefügt

Wie üblich gilt: Wenn Daten geändert werden, selbst wenn es sich um ein einfaches Zeichen handelt, sei es in den Hash-Ausgaben selbst oder in den Transaktionsdaten, wird die Kette von jemandem einfach abgelehnt, wenn sie nicht mit der Mehrheit übereinstimmt.

Wenn ich versuche, mehr als mein Guthaben auszugeben, lehnt das Netzwerk die Transaktion ab. In unserem früheren Beispiel, in dem Sam versucht, zu ändern, wie viel Rick ihm geschickt hat, ist eine weitere Sicherheitsebene namens Public- und Private-Key-Kryptografie eingebaut, die Gegenstand des nächsten Artikels sein wird. Eigentlich ist es für Sam unmöglich, diesen Eintrag zu bearbeiten, wenn er nicht auch im Besitz von Ricks privatem Schlüssel ist.

Wenn ich versuche, den Verlauf zu ändern, lehnt das Netzwerk den Verlauf ab, indem es die Hashes jedes Blocks vergleicht. Die Knoten sind die Quelle der Wahrheit und sorgen dafür, dass jeder ehrlich bleibt.

Die Miner investieren Rechenleistung in die Lösung der kryptografischen Rätsel für jeden Block und werden für ihre Bemühungen mit der Blockbelohnung belohnt. Mining ist eine notwendige Funktion der Bitcoin-Blockchain. Ohne Mining gibt es keinen Wert und keine Sicherheit.

Miner müssen Energie aufwenden, um die Blöcke zu lösen. Dies ist ein wirklich unterschätztes Merkmal der Sicherheit von Bitcoin. In diesem Artikel haben wir ausführlich über das Mining und das Remining von Blöcken gesprochen, in denen Änderungen vorgenommen werden. Was wirklich wichtig ist, ist die enorme Rechenleistung, die das Bitcoin-Protokoll jede Minute und jeden Tag beansprucht. Wenn dieses enorm große Netzwerk 10 Minuten braucht, um den letzten Block zu finden, wie lange würde es dann dauern, wenn ein bösartiger Akteur allein handelt, um einen alternativen Nonce zu finden, der selbst einen Block schürft, um die darin enthaltenen Daten zu ändern? Wie viel Energie müsste ein Nationalstaat aufbringen, um die Geschichte der Bitcoin-Blockchain zu verändern? Und in Verbindung mit dem vorherigen Punkt über öffentliche und private Schlüssel, die das Hauptbuch schützen, wäre das Einzige, was der Bösewicht erreichen könnte, eine doppelte Ausgabe der Münzen, die er bereits besitzt und haben müsste mehr Rechenleistung mit der verfügbaren Energie, um den gesamten Rest des Netzwerks zu übertreffen. Das ist praktisch unmöglich.

Dies erklärt auch, warum Bitcoin der einzige digitale Vermögenswert ist, für den es sich lohnt, Zeit zu investieren, da er allein aufgrund der Netzwerkeffekte gewinnt. Vergleichen Sie die Hash-Rate von Bitcoin mit der eines anderen Protokolls, und sie verblassen im Vergleich.

Für weitere Beispiele all dieser Funktionen empfehlen wir dringend die Lektüre unseres Buches B steht für Bitcoin, erhältlich über Amazon. Wir führen Sie durch all dies und noch viel mehr, um Ihnen eine ausführliche und dennoch leicht verständliche Einführung in alles zu bieten, was Sie über Bitcoin wissen müssen.

Zusammenfassung

Was wir hier behandelt haben, ist eine vereinfachte Version der genauen Funktionsweise des Bitcoin-Netzwerks. Verteilte Ledger, Hashing, Blockchains, Knoten und Miner arbeiten harmonisch zusammen, um ein völlig vertrauensloses, zensurresistentes Open-Source-, Open-Ledger- und Open-Monetary-Netzwerk bereitzustellen. Niemand kann das Hauptbuch ändern, niemand kann Transaktionen stoppen, niemand kann Transaktionen rückgängig machen und niemand kann seine Münzen doppelt ausgeben. Es ist geradezu brillant und revolutioniert das globale Finanzwesen völlig.

Der vollständige Transaktionsverlauf steht jedem zur Abfrage und Überprüfung zur Verfügung. Offensichtlich zeigt die Bitcoin-Blockchain im Gegensatz zu unseren heutigen Beispielen nicht die Identitäten der Personen an, die Transaktionen durchführen, sondern nur deren Adressen. Adressen werden das Thema des nächsten Artikels sein, es ist ein zu umfangreiches Thema, um es heute zu behandeln.

In diesem Artikel habe ich die erstaunlich interaktive Plattform verwendet, die von Anders Brownworth entwickelt wurde, der Blockchain am MIT lehrte. Besuchen hierGehen Sie und spielen Sie ein Stück und erhalten Sie ein tieferes Verständnis für die Konzepte, die wir in diesem Artikel behandelt haben. Sie werden ein viel tieferes Verständnis erlangen, wenn Sie mit allem herumspielen. Anders hat auch ein sehr gutes Video-Tutorial mit diesem Inhalt, um das Lernen zu festigen.

Was die Einführung von Bitcoin angeht: Wenn Sie dies lesen, sind Sie in Bezug auf die Einführung von Bitcoin bereits die Nase vorn. Die institutionelle Akzeptanz kommt und kommt schnell, wir haben noch Zeit, die großen Jungs an die Spitze zu bringen. Mit meinen Artikeln versuche ich, dem Durchschnittsmenschen dabei zu helfen, sich über diese Technologie zu informieren, damit wir davon profitieren können. Wir werden am meisten davon profitieren, die Jungs in den Schützengräben, die um Löhne kämpfen. Beginnen Sie mit dem Dollar-Cost-Averaging bei Bitcoin und kaufen Sie jeden Tag/jede Woche ein bisschen. Behandeln Sie Bitcoin als Ihr Sparkonto und reiten Sie auf der Welle des Aufwärtstrends mit. Es ist das härteste Geld, das es je gab, und es wächst jeden Tag exponentiell. (Nicht nur zu Finanzberatungs-, Bildungs- und Unterhaltungszwecken)

Viel Spaß beim Stapeln, danke fürs Lesen

Daz Bea
Twitter @dazbea

Empfohlene Lektüre:
B steht für Bitcoin
„Bitcoin beherrschen“- Andreas M. Antonopoulos
Blockchain-Demo – Anders Brownworth

Hinterlassen Sie uns eine Nachricht

E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind MIT * gekennzeichnet. *

Bildbearbeitung 3 4203740775
Mitbegründer, Chief Operations Officer