Blockchain - Kurzanleitung
In den letzten Jahren ist Blockchain sehr beliebt. Viele haben dies als eine der störendsten Technologien des Jahrzehnts beschrieben. Insbesondere die Finanzmärkte könnten am stärksten betroffen sein.
Die Technologie wird in vielen Branchen wie Gesundheitswesen, Arzneimittel, Versicherungen, intelligente Immobilien, Automobile und sogar Regierungen angepasst.
Die bislang erfolgreichste Implementierung von Blockchain ist jedoch das Bitcoin - ein elektronisches Peer-to-Peer-Cash-System, das übrigens auch die erste Implementierung der Blockchain-Technologie ist. Um die Blockchain-Technologie zu verstehen, ist es daher am besten zu verstehen, wie das Bitcoin-System entworfen und implementiert wird.
In diesem Artikel erfahren Sie, was Blockchain ist, welche Architektur es hat, wie es implementiert ist und welche Funktionen es bietet. Ich werde die Bitcoin-Implementierung veröffentlichen und gleichzeitig die Feinheiten der Blockchain beschreiben.
Die Blockchain-Architektur ist nicht so trivial und viele haben gute Artikel geschrieben, Tutorials einschließlich mehrerer Videos. Diese reichen von Anfängern bis zu Profis. In diesem Tutorial werde ich mich auf das konzeptionelle Verständnis der Blockchain-Architektur konzentrieren und sowohl Anfänger als auch Profis im Auge behalten. Bevor Sie sich mit der Blockchain befassen, ist es wichtig zu wissen, warum diese neue Technologie benötigt wird. Die Antwort auf diese Frage liegt in dem, was als bekannt istDouble − Spending.
Betrachten Sie eine im Bild gezeigte Situation -
Wie hier deutlich zu sehen ist, bietet Bob Lisa im Austausch für ein Buch eine 10-Dollar-Rechnung an. Sobald die Lisa diese physische 10-Dollar-Rechnung erhalten hat, kann Bob dieses Geld nicht mehr für andere Transaktionen verwenden, da die physische Währung jetzt in Lisas Besitz ist.
Stellen Sie sich nun eine Situation vor, in der das Geld in digitaler Form bezahlt wird. Dies ist im Bild dargestellt -
Da das Format für den Geldwechsel im digitalen Format vorliegt, handelt es sich im Wesentlichen um eine physische Binärdatei, die irgendwo auf Bobs Gerät gespeichert ist. Nachdem Bob Lisa diese Datei (digitales Geld) gegeben hat, kann er Alice auch eine Kopie der Datei geben. Beide glauben nun, dass sie das Geld erhalten haben, ohne die digitale Münze authentifizieren zu können, und würden daher ihre jeweiligen Waren an Bob liefern. Das nennt mandouble-spending wenn der Absender dasselbe Geld an mehr als einem Ort ausgibt, um Dienstleistungen oder Waren von mehreren Anbietern zu erhalten.
Um dieses Problem der doppelten Ausgaben zu lösen, würde man eine zentrale Behörde einsetzen, um alle Transaktionen zu überwachen. Dies ist im Bild dargestellt -
Die zentrale Behörde, die im Allgemeinen Ihre Bank ist, führt ein Hauptbuch, in dem alle Transaktionen aufgezeichnet sind. Jetzt muss Bob sein digitales Geld an die Bank senden, die einen Eintrag in das Hauptbuch vornehmen würde, um Bobs Konto zu belasten. Nachdem sichergestellt wurde, dass Bob über ein ausreichendes Guthaben verfügt, um das digitale Geld zu bezahlen, das er senden möchte, sendet er das Geld an Lisa und schreibt ihr Konto in seinem Hauptbuch gut.
Jetzt ist garantiert, dass Bob das Geld nicht doppelt ausgeben kann. Wenn jede digitale Transaktion über eine solche zentralisierte Behörde geleitet wird, wäre das Problem der doppelten Ausgaben gelöst. Dies bietet auch einen weiteren Vorteil bei der Überprüfung der Echtheit jeder Münze (digitales Geld), die sie bei der Transaktion erhält. Das gefälschte Geld (doppeltes Geld, wie im Fall von Bob, der mit einer Kopie an Alice zahlt) würde also leicht erkannt und aus dem Verkehr gezogen.
Die Einführung einer zentralisierten Behörde, obwohl sie das Problem der doppelten Ausgaben löst, wirft ein weiteres wichtiges Problem auf - die Kosten für die Schaffung und Aufrechterhaltung der zentralisierten Behörde selbst.
Da die Banken Geld für ihre Geschäftstätigkeit benötigen, kürzen sie die Provisionen für jede Währungstransaktion, die sie für ihre Kunden durchführen. Dies kann manchmal sehr teuer werden, insbesondere bei Geldtransfers nach Übersee, bei denen mehrere Agenten (Banken) an dem gesamten Geschäft beteiligt sein können.
Alle oben genannten Probleme werden durch die Einführung der digitalen Währung Bitcoin gelöst. Ich werde Ihnen jetzt einen kurzen Hintergrund geben, was Bitcoin ist, bevor ich mich mit seinem Design und seiner Architektur befasse.
Das Bitcoin wurde von Satoshi Nakamoto in diesem White Paper im Forschungsstil mit dem Titel Bitcoin: Ein Peer-to-Peer-E-Cash-System im Jahr 2008 in dieser Welt eingeführt .
Das Bitcoin löste nicht nur das Problem der doppelten Ausgaben, sondern bot auch viele weitere Vorteile. Ein solcher erwähnenswerter Vorteil ist die Anonymität bei den Transaktionen. Satoshi, der das System erstellt und nur wenige Münzen auf diesem System getätigt hat, ist für die ganze Welt völlig anonym.
Stellen Sie sich vor, in dieser Welt der sozialen Medien kann die Welt, wenn es um die Privatsphäre jedes Einzelnen geht, bisher nicht herausfinden, wer Satoshi ist. Tatsächlich wissen wir nicht, ob Satoshi eine Einzelperson oder eine Gruppe von Menschen ist. Das Googeln zeigte auch, dass die Bitcoins, die Satoshi Nakamoto hält, einen Wert von etwa 19,4 Milliarden US-Dollar haben - dieses Geld bleibt im Bitcoin-System weiterhin nicht beansprucht. Was ist Bitcoin? Lassen Sie uns einen Blick darauf werfen!
Was ist Bitcoin?
Wie Sie bereits gesehen haben, führt die Bank ein Hauptbuch, in dem jede Transaktion aufgezeichnet wird. Dieses Hauptbuch wird von der Bank in Privatbesitz gehalten und geführt. Satoshi schlug vor, dieses Hauptbuch öffentlich zu machen und von der Gemeinde zu pflegen.
In dem Moment, in dem Sie ein solches Hauptbuch veröffentlichen, fallen Ihnen mehrere Überlegungen ein. Dieses Hauptbuch muss manipulationssicher sein, damit niemand seine Einträge ändern kann. Da jeder Eintrag im Hauptbuch öffentlich sichtbar ist, müssen wir herausfinden, wie die Anonymität gewahrt werden kann. Natürlich möchten Sie nicht, dass jeder auf der Welt weiß, dass ich Ihnen eine Million Dollar gezahlt habe.
Da es nur ein einziges Hauptbuch gibt, das jede Transaktion auf der Welt verfolgt, wäre die Größe des Hauptbuchs ein weiteres großes Problem. Es war nicht trivial, eine Lösung für diese Feinheiten bereitzustellen, und genau das versuche ich hier, um Ihnen die zugrunde liegende Architektur von Bitcoin in einfachen Worten verständlich zu machen.
Diese zugrunde liegende Architektur ist die Blockchainund darum geht es in diesem Tutorial. Um die Blockchain-Architektur zu verstehen, müssen Sie einige wichtige Funktionen verstehen, auf denen sie basiert. Beginnen wir also mit PKI - Public Key Cryptography.
Die Kryptographie mit öffentlichen Schlüsseln oder kurz PKI wird auch als asymmetrische Kryptographie bezeichnet. Es werden zwei Schlüsselpaare verwendet - öffentlich und privat. Ein Schlüssel ist eine lange Binärzahl. Der öffentliche Schlüssel wird weltweit verbreitet und ist, wie der Name schon sagt, wirklich öffentlich. Der private Schlüssel ist streng privat zu halten und sollte niemals verloren gehen.
Wenn Sie im Falle von Bitcoin jemals den privaten Schlüssel für Ihre Bitcoin-Brieftasche verlieren, ist der gesamte Inhalt Ihrer Brieftaschen sofort für Diebstahl anfällig, und bevor Sie es wissen, ist Ihr gesamtes Geld (der Inhalt Ihrer Brieftasche) mit Nein weg Mechanismus im System, um herauszufinden, wer es gestohlen hat - das ist die Anonymität im System, die ich zuvor erwähnt habe.
Die PKI erfüllt zwei Funktionen - die Authentifizierung und den Datenschutz der Nachrichten durch Verschlüsselungs- / Entschlüsselungsmechanismus. Ich werde jetzt diese beiden Funktionen erklären -
Authentifizierung
Wenn die beiden Parteien Nachrichten austauschen, ist es wichtig, ein Vertrauen zwischen dem Absender und dem Empfänger herzustellen. Insbesondere muss der Empfänger der Nachrichtenquelle vertrauen. In unserem früheren Szenario (in Abbildung 1 dargestellt), in dem Bob Lisa Geld für den Kauf einiger Waren von ihr schickte, wollen wir sehen, wie die PKI dieses Vertrauen zwischen Bob und Lisa aufbaut. Schauen Sie sich das Bild unten an -
Erstens muss Bob, wenn er etwas Geld an Lisa senden möchte, einen eigenen privaten / öffentlichen Schlüssel erstellen. Beachten Sie, dass beide Schlüssel immer miteinander gepaart sind und Sie die privaten und öffentlichen Schlüssel verschiedener Personen oder Instanzen nicht mischen können.
Jetzt sagt Bob, dass er Lisa 10 Dollar schickt. Also erstellt er eine Nachricht (eine Klartextnachricht), die den öffentlichen Schlüssel von Bob (Absender), den öffentlichen Schlüssel von Lisa (Empfänger) und den Betrag (10 US-Dollar) enthält.
Der Zweck dieser Überweisung wie „Ich möchte Kürbis bei Ihnen kaufen“ wird ebenfalls in die Nachricht aufgenommen. Die gesamte Nachricht wird jetzt mit Bobs privatem Schlüssel signiert. Wenn Lisa diese Nachricht empfängt, verwendet sie den Signaturüberprüfungsalgorithmus von PKI und Bobs öffentlichem Schlüssel, um sicherzustellen, dass die Nachricht tatsächlich von Bob stammt. Die Funktionsweise der PKI geht über den Rahmen dieses Lernprogramms hinaus. Der interessierte Leser wird auf diese Site verwiesen, um eine detailliertere Diskussion über PKI zu erhalten. Dies stellt die Authentizität des Nachrichtenursprungs her. Lassen Sie uns nun den Datenschutz der Nachricht betrachten.
Nachricht Datenschutz
Nachdem Lisa ihre Zahlung erhalten hat, möchte sie den Link zu ihrem E-Book senden, das Bob kaufen möchte. Also würde Lisa eine Nachricht erstellen und sie an Bob senden, wie im Bild gezeigt -
Die Lisa erstellt eine Nachricht wie "Hier ist der Link zu meinem E-Book, das Sie angefordert haben", signiert sie mit Bobs öffentlichem Schlüssel, den sie in Bobs Anforderungsnachricht erhalten hat, und verschlüsselt die Nachricht auch mit einem geheimen Schlüssel, der von beiden geteilt wird während des HTTPS-Handshakes.
Jetzt ist Lisa sicher, dass nur Bob die Nachricht mit dem privaten Schlüssel entschlüsseln kann, der nur von Bob gehalten wird. Außerdem kann jemand, der die Nachricht abfängt, ihren Inhalt nicht wiederherstellen, da der Inhalt durch einen geheimen Schlüssel verschlüsselt wird, der nur von Bob und Alice gehalten wird. Dies garantiert Lisa, dass der Zugriff auf ihr E-Book nur Bob gewährt wird.
Nachdem wir die beiden von PKI implizierten Funktionen Authentifizierung und Nachrichtendatenschutz gesehen haben, wollen wir uns ansehen, wie Bitcoin PKI verwendet, um das öffentliche Hauptbuch zu sichern, das ich im Kapitel „Was ist Bitcoin?“ Erwähnt habe.
Für Ihr Wissen - Die beliebtesten PKI-Algorithmen sind RSA und ECDSA , Bitcoin verwendet den letzteren.
Eine der wichtigsten Funktionen in PKI ist die Hashing-Funktion. Eine Hash-Funktion ordnet die Daten einer beliebigen Größe Daten einer festen Größe zu. Bitcoin verwendet die SHA-256-Hash-Funktion, die einen Hash (Ausgabe) mit einer Größe von 256 Bit (32 Byte) erzeugt. Dies ist im Bild dargestellt -
Während Bob eine Bestellung bei Lisa aufgibt, erstellt er eine Nachricht ähnlich der oben gezeigten. Diese Nachricht wird durch eine Hash-Funktion gehasht, die einen 32-Byte-Hash erzeugt. Das Schöne an diesem Hash ist, dass der Hash (die 256-Bit-Nummer) für den Inhalt der Nachricht als eindeutig angesehen wird. Wenn die Nachricht geändert wird, ändert sich der Hashwert. Nicht nur, dass bei einem Hash-Wert die ursprüngliche Nachricht nicht rekonstruiert werden kann.
Nachdem wir die Bedeutung von Hashing erkannt haben, gehen wir zu einem anderen Konzept in Bitcoin über, dem Bergbau.
Wenn Bob eine Kaufanfrage für Lisa erstellt, sendet er diese nicht allein an Lisa. Vielmehr wird die Anforderungsnachricht im gesamten Netzwerk gesendet, mit dem er verbunden ist. Bobs Netzwerk ist im Bild dargestellt.
Die Nachricht geht an alle verbundenen Knoten (Maschinen). Einige der Knoten im Diagramm sind als Bergleute markiert. Dies sind die Maschinen, auf denen eine Software zum Mining der Bitcoin-Nachricht ausgeführt wird. Ich werde Ihnen jetzt erklären, was dieser Bergbau bedeutet.
Bergbauprozess
Da das gesamte Netzwerk weit verbreitet ist, wird von jedem Miner im Netzwerk erwartet, dass er zu einem bestimmten Zeitpunkt mehrere Nachrichten von mehreren Anbietern empfängt. Der Bergmann kombiniert diese Nachrichten in einem einzigen Block. Dies ist im Bild dargestellt -
Nachdem ein Nachrichtenblock gebildet wurde, erstellt der Miner mithilfe der zuvor beschriebenen Hashing-Funktion einen Hash für den Block. Wie Sie wissen, wird der Hash dieses Blocks ungültig, wenn ein Dritter den Inhalt dieses Blocks ändert. Im Übrigen ist jede Nachricht mit einem Zeitstempel versehen, sodass niemand ihre chronologische Reihenfolge ändern kann, ohne den Hashwert des Blocks zu beeinflussen. Somit sind die Nachrichten im Block perfekt vor Manipulationen geschützt. Wie diese Tatsache zur Sicherung aller Transaktionen im Netzwerk verwendet wird, wird weiter erläutert.
Die von verschiedenen Bergleuten erstellten Blöcke werden zu einem wirklich verteilten öffentlichen Hauptbuch verkettet.
Jeder Block in der Kette enthält mehrere Nachrichten (Transaktionen), wie in Abbildung 8 dargestellt. Ein Block in der Kette kann von einem beliebigen Miner stammen. Beim Erstellen der Blockkette beachten wir die Regel, dass der Hash des vorherigen Blocks zum aktuellen Block hinzugefügt wird.
Ein Miner nimmt beim Erstellen des Blocks den Hash des letzten Blocks in der Kette auf, kombiniert ihn mit seinen eigenen Nachrichten und erstellt einen Hash für seinen neu erstellten Block. Dieser neu erstellte Block wird nun zum neuen Ende der Kette und somit wächst die Kette weiter, da die Bergleute immer mehr Blöcke hinzufügen.
Da alle Transaktionen mit einem Zeitstempel versehen sind, müssen wir einen verteilten Zeitstempelserver in einem Peer-to-Peer-Netzwerk implementieren. Dies erfordert eine zusätzliche Implementierung und das ist der Proof-of-Work, den ich jetzt beschreiben werde. Zu jedem Block fügen wir jetzt ein weiteres Element mit dem Namen hinzuNonce wie in der Abbildung unten gezeigt -
Nonce ist eine Zahl, bei der der Hash des Blocks ein bestimmtes Kriterium erfüllt. Dieses Kriterium könnte sein, dass der generierte Hash seine führenden vier Ziffern haben muss, um Null zu sein.
Somit würde der generierte Hash wie 000010101010xxx aussehen. Im Allgemeinen beginnt der Miner mit einem Nonce-Wert von 0 und erhöht ihn weiter, bis der generierte Hash das angegebene Kriterium erfüllt.
Beachten Sie, dass die Hash-Generierung zufällig funktioniert und außerhalb Ihrer Kontrolle liegt. Das heißt, Sie können die Hash-Funktion nicht zwingen, einen bestimmten Hash zu generieren. Daher kann es mehrere Iterationen dauern, bis der gewünschte Hash mit vier führenden Nullen generiert wird. Die erwartete Zeit zum Generieren eines Blocks im Bitcoin-System beträgt 10 Minuten. Sobald der Bergmann den Block erfolgreich abgebaut hat, gibt er ihn im System frei und ist damit der letzte Block in der Kette.
Beachten Sie, dass mehrere Bergleute miteinander konkurrieren, um den legitimen Block zu generieren. Das Bitcoin-System vergibt den ersten erfolgreichen Bergmann, indem es ihm bestimmte Bitcoins gibt. Im Allgemeinen kann der Bergmann mit mehr Rechenleistung ein früher Gewinner sein. Dies kann zu Angriffen auf das gesamte System durch Personen führen, die über eine enorme Verarbeitungsleistung verfügen. Ich werde die Angriffe beschreiben und wie diese gegen Ende dieses Tutorials abgeschwächt werden.
Ich werde nun die oben beschriebenen Schritte zusammenfassen. Das passiert im Netzwerk -
Jeder, der Dienste von einem Dritten erhalten möchte, der im Netzwerk Werbung gemacht hat, erstellt zuerst eine Transaktion (Nachricht an den gewünschten Empfänger).
In einem bestimmten Zeitraum können viele Absender (Käufer) und Empfänger (Verkäufer) solche Transaktionen erstellen.
Alle Transaktionen werden im Netzwerk an alle Knoten gesendet. Beachten Sie, dass eine bestimmte Transaktion nicht jeden anderen Knoten im Netzwerk erreichen muss.
Jeder Knoten fasst die neuen Transaktionen zu einem Block zusammen. Beachten Sie, dass die Menge der Transaktionen in jedem Block unabhängig von der Menge der von anderen erstellten Blöcke ist und sich natürlich von anderen unterscheidet. Das spielt keine Rolle; Das System stellt sicher, dass jede im Netzwerk gesendete Transaktion über einen angemessenen Zeitraum in einen Block aufgenommen wird. Im Allgemeinen wird der Absender den Knoten anregen, indem er dem Bergmann eine bestimmte Menge an Bitcoins für seine Bemühungen anbietet. Der Bergmann kann sich dafür entscheiden, denjenigen mit höheren Anreizen Vorrang für die Aufnahme in den Block einzuräumen.
Der Knoten arbeitet nun daran, den Arbeitsnachweis für seinen zusammengesetzten Block zu finden.
Wenn der Knoten einen Arbeitsnachweis findet, sendet er den zusammengesetzten Block im Netzwerk.
Die Knoten, die den neuen Block erhalten, akzeptieren ihn erst, nachdem sie überprüft haben, ob alle Transaktionen im Block gültig sind und noch nicht ausgegeben wurden.
Wenn der Block als gültig akzeptiert wird, muss der Knoten, der an seinem eigenen neuen Block arbeitet, die Transaktionen in seinem Block neu zusammenstellen, um sicherzustellen, dass die Transaktionen nicht dupliziert werden. Der Knoten arbeitet nun daran, den Arbeitsnachweis für seinen neu erstellten Block zu finden. Dabei wird der Hash des akzeptierten Blocks als vorheriger Hash verwendet.
Ebenso wächst die Blockchain für immer weiter.
Lassen Sie mich nun, da wir gesehen haben, wie das gesamte System funktioniert, einige der Nebenwirkungen beschreiben und wie sie behoben werden können.
Wie wir im Kapitel Bitcoin - Mining gesehen haben, kann ein Bergmann zu einem bestimmten Zeitpunkt mit vielen Transaktionen überflutet sein. Die maximale Größe für einen Block ist im System vordefiniert, sodass nur eine bestimmte Anzahl von Transaktionen im Block enthalten sein muss.
Die Anzahl der Transaktionen im Block wird durch die vordefinierte Blockgröße und die durchschnittliche Länge jedes Blocks bestimmt. Ein wichtiger Tipp hierbei ist, dass der Absender nicht zu viele Informationen in seine Nachricht aufnehmen sollte, um sie kurz zu machen und damit den Bergmann zu motivieren, sie vor den anderen langen Nachrichten zu akzeptieren.
Ein Absender fügt im Allgemeinen auch eine Transaktionsgebühr in Bezug auf eine bestimmte Anzahl von Bitcoins hinzu, um den Bergmann für eine frühzeitige Aufnahme in seinen Block zu motivieren.
Die andere Konsequenz beim Aufbau der Blockchain ist ihre bloße Größe. Im Laufe der Zeit kann die gesamte Blockchain zu groß werden, als dass ein Knoten sie auf seiner Festplatte speichern könnte. Dies wird durch die Verwendung des Merkle-Baums gelöst, der im Folgenden beschrieben wird.
Das Problem des Speicherplatzes in einem Knoten kann leicht überwunden werden, da alle Transaktionen in einem Block in einem Merkle-Baum gehasht werden (siehe Abbildung).
Der Blockheader enthält jetzt den Hash des vorherigen Blocks, ein Nonce und das Root Hashaller Transaktionen im aktuellen Block in einem Merkle-Baum. Wie dasRoot HashEnthält die Hashes aller Transaktionen innerhalb des Blocks. Diese Transaktionen können gelöscht werden, um Speicherplatz zu sparen. Jetzt sieht Ihre Blockchain wie im folgenden Bild aus -
Dies kann zu einer erheblichen Einsparung von Speicherplatz führen. Diese Strategie wird von einem normalen Kunden angewendet, der nur Zahlungen von anderen erhalten möchte. Die Bergleute müssen jedoch die vollständige Blockchain speichern. Nun stellt sich die Frage, wie ein Empfänger die Zahlung überprüft, ohne die Möglichkeit zu haben, eine empfangene Münze bis zu ihrem Ursprung zurückzuverfolgen. Dies wird als nächstes erklärt.
Stellen Sie sich einen Fall vor, in dem Sie als Anbieter möglicherweise eine bestimmte in der Vergangenheit geleistete Zahlung überprüfen möchten. Da die Blockchain, die Sie auf Ihrem Computer halten, nur die Blockheader enthält, wie in der vorherigen Abbildung gezeigt, fehlt die gesuchte Transaktion in der Kopie Ihrer Blockchain.
Sie können jetzt in Ihrer Kopie der Blockchain rückwärts suchen, bis Sie einen Block finden, in dem die gewünschte Transaktion mit einem Zeitstempel versehen ist. Fordern Sie nun den Merkle-Baum des ausgewählten Blocks an, und Sie erhalten die Transaktion, nach der Sie suchen. Dies ist in der folgenden Abbildung dargestellt -
Hier nehmen wir an, dass Sie nach Tx103 suchen. Obwohl Sie den Inhalt von Tx103 möglicherweise nicht sehen können, wissen Sie, dass dies von dem Block, zu dem es gehört, und allen nachfolgenden Blöcken in der Kette akzeptiert wurde. Auf diese Weise können Sie dieser Transaktion sicher vertrauen und mit Ihrem Geschäft fortfahren.
Wie wir gesehen haben, enthält das Bitcoin-Netzwerk mehrere Bergleute. Es ist möglich, dass die beiden verschiedenen Bergleute gleichzeitig den Proof-of-Work lösen und so ihre Blöcke zum letzten bekannten Block in der Kette hinzufügen. Dies ist im folgenden Bild dargestellt -
Jetzt haben wir zwei Zweige nach Block 3. Beide Zweige sind gültig. So kann der nächste abgebaute Block in einem der Zweige hinzugefügt werden. Angenommen, der Miner fügt den neu abgebauten Block zu Block 104-A hinzu. Der Zweig, der Block 104-A enthält, ist länger als der Zweig, der Block 104-B enthält. Dies ist im folgenden Bild dargestellt -
In der Bitcoin-Architektur gewinnt immer der längste Zweig und die kürzeren werden gelöscht. Der Block 104-B muss also gespült werden. Vor dem Löschen dieses Blocks werden alle Transaktionen in diesem Block an den Transaktionspool zurückgegeben, sodass sie abgebaut und einem zukünftigen Block hinzugefügt werden. Auf diese Weise werden die Konflikte gelöst und nur eine einzige Blockkette wird vom System verwaltet.
Da das Hauptbuch, in dem alle Bitcoin-Transaktionen aufgezeichnet werden, wirklich veröffentlicht wird, steht die Privatsphäre auf dem Spiel. Jeder auf der Welt könnte wissen, wer wen bezahlt hat? Das traditionelle Bankensystem ist in der Lage, diese Art von Datenschutz zu wahren, indem es seine Aufzeichnungen vertraulich behandelt.
Der Datenschutz im Bitcoin-System wird durch eine andere Strategie erreicht. Beachten Sie, dass wir gesagt haben, dass der Absender eines Bitcoin wissen muss, wen er bezahlen muss. Also fragt er nach dem öffentlichen Schlüssel des Anbieters, an den er die Zahlung leisten möchte. Dieser öffentliche Schlüssel kann anonym sein.
In dem Sinne, dass Sie als Anbieter einiger Dienste von jemandem, der Sie fragt, wohin die Zahlung gesendet werden soll, einfach Ihren öffentlichen Schlüssel senden. Die Zuordnung dieses öffentlichen Schlüssels zu Ihnen wird nirgendwo im Hauptbuch erfasst. Auf diese Weise würde jeder außerhalb dieser Transaktion nur wissen, wie viel Geld abgewickelt wird und an welchen öffentlichen Schlüssel das Geld ausgezahlt wird.
Um ein höheres Maß an Datenschutz zu erreichen, können Sie für jede Transaktion einen neuen privaten / öffentlichen Schlüssel für jede Transaktion generieren, sodass mehrere von Ihnen getätigte Transaktionen nicht von einem Dritten zusammengefasst werden können. Für einen Außenstehenden würde dies einfach bedeuten, dass mehrere Transaktionen mit kleineren Werten durchgeführt wurden und diese niemals mit einer gemeinsamen Quelle verknüpft werden.
Schließlich ist jedes internetbasierte Online-System anfällig für Missbrauch. Ich werde nun einige mögliche Arten von Angriffen auf das Bitcoin-System beschreiben und wie diese gemindert werden.
Ich werde drei verschiedene Arten wahrscheinlicher Angriffe im Bitcoin-System diskutieren -
Rennangriff
Als Angreifer können Sie dieselbe Münze schnell hintereinander an verschiedene Anbieter senden, wahrscheinlich mit zwei verschiedenen Maschinen. Wenn die Lieferanten nicht auf die Blockbestätigung warten, bevor sie die Waren liefern, werden sie sehr bald feststellen, dass die Transaktion während des Mining-Prozesses abgelehnt wurde. Die Lösung für diese Art von Angriff besteht darin, dass der Verkäufer auf mindestens eine Blockbestätigung warten muss, bevor er die Waren versendet.
Finney Attack
In diesem Fall ist der Angreifer der Bergmann. Der Bergmann baut mit seiner Transaktion einen Block ab und gibt ihn nicht im System frei. Er verwendet jetzt die gleichen Münzen in einer zweiten Transaktion und gibt dann den vorgefertigten Block frei. Natürlich würde die zweite Transaktion irgendwann von anderen Bergleuten abgelehnt, aber dies wird einige Zeit dauern. Um dieses Risiko zu minimieren, sollte der Verkäufer mindestens sechs Blockbestätigungen warten, bevor er die Ware freigibt.
Der 51% Angriff
Bei dieser Art von Angriff gehen wir von einer unpraktischen Annahme aus, dass jemand 51% der Rechenleistung des Netzwerks besitzt. Der Angreifer bei dieser Art von Angriff baut eine private Blockchain ab, in der er die Münzen doppelt ausgibt.
Da er den größten Teil der Rechenleistung besitzt, ist ihm garantiert, dass seine private Blockchain zu einem bestimmten Zeitpunkt länger sein würde als die Kette des „ehrlichen“ Netzwerks. Anschließend gibt er seine private Blockchain im System frei, sodass alle zuvor in der ehrlichen Blockchain aufgezeichneten Transaktionen ungültig werden.
Diese Art von Angriff ist fiktiv, da es sehr teuer ist, Rechenleistung zu erwerben, die 51% der Rechenleistung des gesamten Netzwerks entspricht oder diese übersteigt.
In diesem kurzen Tutorial wurden Sie anhand von Bitcoin als Fallstudie in verschiedene Konzepte von Blockchain eingeführt. Das Bitcoin ist die erste erfolgreiche Implementierung der Blockchain. Heute hat die Welt Anwendungen der Blockchain-Technologie in mehreren Branchen gefunden, in denen das Vertrauen ohne die Einbeziehung einer zentralen Behörde erwünscht ist. Willkommen in der Welt von Blockchain.
Weitere Lesungen -
Originalarbeit von Satoshi - Bitcoin: Ein Peer-to-Peer-E-Cash-System
Offizielle Seite - Bitcoin.org