Inhaltsverzeichnis:

Wie die Blockchain eigentlich funktioniert
Wie die Blockchain eigentlich funktioniert

Video: Wie die Blockchain eigentlich funktioniert

Video: Wie die Blockchain eigentlich funktioniert
Video: Der unsichtbare Krieg | Doku HD | ARTE 2024, Kann
Anonim

Dieser Beitrag soll allen erzählen, warum die Blockchain erfunden wurde, wie Kryptowährungen funktionieren und warum sie aus logischer Sicht das schönste System der letzten Jahre ist.

Ich werde Sie sofort warnen, dass sich unter dem Schnitt ein RIESIGES Textblatt befindet und wenn Sie nicht bereit sind, die Frage zum Thema Kryptowährungen ein für alle Mal zu "schließen", fügen Sie jetzt einen Eintrag zu Ihren Favoriten hinzu und reservieren Sie Zeit)

Blockchain ist eine Technologie, neu, seltsam, unverständlich, aber sie scheint die Welt zu verändern, im Gegensatz zu Ihren Geschichten. Offenbar ist sie schon lange bei uns.

Dieser Beitrag ist so geschrieben, als würde er Leuten erzählt, die sehr weit von Computern entfernt sind und sie nur oberflächlich kennen, zum Beispiel stellen Sie sich vor, er würde sich auf Ihre Eltern vorbereiten. Ich kann es sogar an meine Mitmenschen abgeben und sicher sein, dass sie es verstehen.

Und Oleg wird uns allen in dieser schwierigen Angelegenheit helfen. Treffen!

Wenn du Oleg nicht magst, schmeiße ich ihn raus.

Die Grundlagen: Warum brauchen wir Blockchain?

Die Blockchain wurde in Satoshi Nakamotos Artikel „Bitcoin: A Peer-to-Peer Electronic Cash System“beschrieben. Dort beschrieb der Autor auf nur acht Seiten die Grundlagen der Kryptowährung Bitcoin, die auf dem Blockchain-Algorithmus basiert.

Liste, die nicht geändert werden kann

Blockchain - eine Kette von Blöcken oder mit anderen Worten eine verkettete Liste. In einer solchen Liste bezieht sich jeder nächste Datensatz auf einen vorherigen und so weiter in der Kette bis zum allerersten. Wie die Waggons eines Zuges schleppt jeder den nächsten mit. Zu den Listen gibt es einen guten Artikel von Nikita Likhachev auf TJ, in dem das Gleiche für absolute Neulinge erklärt wird. Die Analogien werden teilweise von dort übernommen.

Nehmen wir ein Beispiel

Olegs Freunde leihen sich ständig Geld von ihm. Oleg ist nett, aber extrem vergesslich. Eine Woche später erinnert er sich nicht mehr daran, wer ihm die Schulden nicht zurückgezahlt hat, aber es ist ihm peinlich, alle danach zu fragen. Deshalb beschloss er eines Tages, dem ein Ende zu setzen, indem er bei sich zu Hause an der Tafel eine Liste von Freunden anlegte, denen er Geld geliehen hatte.

Jetzt kann Oleg immer zum Vorstand gehen und sicherstellen, dass Max alles zurückgegeben hat, aber Vanya gibt noch keine 700 Rubel. Eines Tages lädt Oleg Vanya zu einem Drink zu sich nach Hause ein. Während Oleg auf die Toilette geht, löscht Wanja den Eintrag „Ich habe 200 Rubel für Wanja geliehen“und schreibt an seine Stelle „Wanja hat 500 Rubel gegeben“.

Oleg, der seiner Liste vertraut hat, vergisst die Schulden und verliert 700 Rubel. Er beschließt, irgendwie dagegen anzukämpfen. Letztes Jahr besuchte Oleg einen Programmierkurs, in dem er über Hashing informiert wurde. Er erinnert sich daran, dass jeder String in einen eindeutigen Zeichensatz umgewandelt werden kann - einen Hash, und das Ändern eines beliebigen Zeichens in dem String wird ihn vollständig ändern.

Das Hinzufügen eines Punkts am Ende hat den endgültigen Hash bis zur Unkenntlichkeit verändert - Sie können ihn verwenden.

Oleg nimmt den bekannten SHA-256-Hash und hasht jeden Datensatz damit und fügt das Ergebnis am Ende hinzu. Jetzt kann Oleg sicherstellen, dass niemand seine Aufzeichnungen geändert hat, indem er sie erneut hackt und mit der grünen vergleicht.

Aber EVIL IVAN kennt sich auch mit SHA-256 aus und kann den Eintrag samt Hash leicht ändern. Vor allem, wenn der Hash direkt daneben an der Tafel steht.

Aus Sicherheitsgründen beschließt Oleg daher, nicht nur den Datensatz selbst zu hashen, sondern ihn zusammen mit dem Hash aus dem vorherigen Datensatz hinzuzufügen. Nun hängen alle folgenden Einträge von den vorherigen ab. Wenn Sie mindestens eine Zeile ändern, müssen Sie die Hashes aller anderen darunter in der Liste neu berechnen.

Aber eines Tages schleicht sich Ivan nachts an, ändert den benötigten Eintrag und aktualisiert die Hashes für die gesamte Liste bis zum Ende. Er braucht mehrere Stunden, aber Oleg schläft noch fest und kann nicht hören. Am Morgen entdeckt Oleg eine absolut korrekte Liste – alle Hashes stimmen überein. Aber Ivan hat ihn trotzdem getäuscht, obwohl er eine schlaflose Nacht damit verbracht hat. Wie sonst kannst du dich vor Night Ivan schützen?

Oleg beschließt, sein Leben irgendwie zu komplizieren. Um der Liste nun einen neuen Eintrag hinzuzufügen, löst Oleg ein damit verbundenes komplexes Problem, beispielsweise eine mathematische Gleichung. Er fügt die Antwort zum endgültigen Hash hinzu.

Oleg ist gut in Mathematik, aber selbst das Hinzufügen eines Eintrags dauert zehn Minuten. Trotzdem lohnt sich der Zeitaufwand, denn wenn Ivan wieder etwas ändern möchte, muss er die Gleichungen für jede Reihe neu lösen, und es können Dutzende davon sein. Es wird viel Zeit in Anspruch nehmen, da die Gleichungen jedes Mal einzigartig sind und einem bestimmten Datensatz zugeordnet sind.

Aber die Überprüfung der Liste ist genauso einfach: Zuerst müssen Sie die Hashes wie zuvor vergleichen und dann die Lösungen der Gleichungen durch einfaches Einsetzen überprüfen. Wenn alles zusammenläuft, wird die Liste nicht geändert.

In Wirklichkeit sind die Dinge mit Gleichungen nicht so gut: Computer lösen sie zu gut und wo können so viele einzigartige Gleichungen gespeichert werden. Daher haben sich die Autoren der Blockchain ein schöneres Problem ausgedacht: Sie müssen eine solche Zahl (Nonce) finden, damit der endgültige Hash des gesamten Datensatzes mit 10 Nullen beginnt. Eine solche Nonce ist schwer zu finden, aber das Ergebnis kann immer mit bloßem Auge überprüft werden.

Nun überprüft Oleg alle Hashes und stellt zusätzlich sicher, dass jeder mit der angegebenen Anzahl von Nullen beginnt. Der schlaue Ivan, sogar mit einem leistungsstarken Laptop bewaffnet, wird keine Zeit haben, alle Hashes in einer Nacht neu zu berechnen, damit sie die Bedingung erfüllen - es wird nicht genug Zeit sein.

Eine solche Liste ist in der Tat die Home-Blockchain auf den Knien. Seine Sicherheit wird von Mathematikern garantiert, die bewiesen haben, dass diese Hashes nicht schneller berechnet werden können, außer mit roher Gewalt. Eine solche Aufzählung von Hashes für jeden Datensatz ist das Mining, über das es heute viel und im Detail geben wird.

Zentralisierung des Vertrauens

Unseren Freunden gefiel die Idee, eine gefälschte Liste zu führen, "wer wen ausgeliehen hat". Sie wollen sich auch nicht erinnern, wer in der Bar für wen bezahlt hat und wie viel sie noch schulden – alles steht an der Wand. Sie haben die Idee diskutiert und beschlossen, dass Sie jetzt eine einzige Liste für alle brauchen.

Aber wem sollte eine so wichtige Buchhaltung anvertraut werden? Denn wenn es um Geld geht, steht Vertrauen im Vordergrund. Wir werden dem Unbekannten nicht zutrauen, unser Geld zu behalten. Dafür haben unsere Vorfahren Banken erfunden, denen im Laufe der Zeit vertraut wurde, weil sie durch eine Lizenz, Gesetze und Versicherungen der Zentralbank abgesichert sind.

Im Freundeskreis vertrauen sich alle und man kann sich einfach den Verantwortungsvollsten für diese Rolle aussuchen. Aber was ist, wenn es um Fremde geht? Eine ganze Stadt, ein ganzes Land oder die ganze Welt, wie es bei Bitcoin der Fall ist? Generell kann man dort niemandem vertrauen.

Dezentralisierung: Niemand vertraut jemandem

Also entwickelten sie einen alternativen Ansatz: Bewahren Sie eine Kopie der Liste für alle auf. Somit müsste ein Angreifer nicht nur eine Liste umschreiben, sondern sich auch in jedes Haus einschleichen und dort die Listen umschreiben. Und dann stellt sich heraus, dass jemand zu Hause mehrere Listen führte, von denen keiner wusste. Das ist Dezentralisierung.

Die Kehrseite dieser Vorgehensweise ist, dass Sie für neue Einträge alle anderen Teilnehmer anrufen und über die letzten Änderungen informieren müssen. Aber wenn diese Teilnehmer seelenlose Maschinen sind, ist das überhaupt kein Problem mehr.

In einem solchen System gibt es keinen einzigen Vertrauenspunkt und somit die Möglichkeit von Bestechung und Betrug. Alle Teilnehmer des Systems handeln nach einer einzigen Regel: Niemand traut jemandem. Jeder glaubt nur den Informationen, die er zur Verfügung hat. Dies ist das Hauptgesetz jedes dezentralisierten Netzwerks.

Transaktionen

Wenn Sie einen Topf in einem Geschäft kaufen, geben Sie den PIN-Code von Ihrer Karte ein, damit das Geschäft die Bank fragen kann, ob Sie 35 Rubel auf Ihrem Konto haben. Mit anderen Worten, Sie unterschreiben eine Transaktion für 35 Rubel mit Ihrem PIN-Code, die die Bank bestätigt oder ablehnt.

Unsere Aufzeichnungen vom Typ "Ich habe Vanya 500 Rubel geliehen" sind ebenfalls Transaktionen. Wir haben jedoch keine Bank, die den Autor der Transaktionen autorisiert. Wie können wir überprüfen, ob Ivan den Eintrag "Max schuldet Oleg 100.500 Rubel" nicht stillschweigend hinzugefügt hat?

Die Blockchain nutzt dafür den Mechanismus von öffentlichen und privaten Schlüsseln, IT-Spezialisten nutzen sie längst zur Autorisierung im selben SSH. Ich habe es im Beitrag "Sicherheit, Verschlüsselung, Cyberpunk" in der Rubrik "Einführung in die Verschlüsselung" an meinen Fingern erklärt.

Kurz zur Funktionsweise dieser komplexen, aber schönen Mathematik: Sie generieren auf Ihrem Computer ein Paar langer Primzahlen - einen öffentlichen und einen privaten Schlüssel. Der private Schlüssel gilt als Supergeheimnis, da er entschlüsseln kann, was in der Öffentlichkeit verschlüsselt ist.

Aber auch das Gegenteil funktioniert. Wenn Sie den öffentlichen Schlüssel mit all Ihren Freunden teilen, können diese jede Nachricht für sie verschlüsseln, sodass nur Sie sie lesen können, da Sie der private Schlüssel sind.

Aber auch sonst hat der öffentliche Schlüssel einen nützlichen Effekt – mit ihm können Sie überprüfen, ob die Daten mit Ihrem privaten Schlüssel verschlüsselt wurden, ohne die Daten selbst zu entschlüsseln. All diese Eigenschaften sind im "Buch der Chiffren" gut beschrieben.

Wir befinden uns in einem dezentralisierten Internet, in dem niemandem vertraut werden kann. Die Transaktion wird mit einem privaten Schlüssel signiert und zusammen mit dem öffentlichen Schlüssel an einen speziellen Speicher gesendet – einen Pool unbestätigter Transaktionen. So kann jedes Mitglied des Netzwerks überprüfen, ob Sie es selbst initiiert haben und nicht jemand anderes mit Ihrem Geld bezahlen möchte.

Dies gewährleistet die Offenheit und Sicherheit des Netzwerks. Waren früher Banken dafür zuständig, dann sind in der Blockchain dafür Mathematiker zuständig.

Für normale Benutzer, die nicht herausfinden möchten, wie private Schlüssel ausgegeben und gespeichert werden, helfen Online-Wallet-Dienste. Um lange öffentliche Schlüssel zu kopieren, werden dort praktische QR-Codes erstellt. Zum Beispiel Blockchain Wallet, weil es über eine praktische mobile Anwendung verfügt und die beiden wichtigsten Kryptowährungen - BTC und ETH - unterstützt.

Fehlen des Konzepts des "Gleichgewichts"

Wie unser Board besteht die Blockchain im Wesentlichen nur aus der Transaktionshistorie. Es speichert nicht das Guthaben jedes Wallets, sonst müssten wir zusätzliche Schutzmethoden erfinden.

Nur der private Schlüssel bestätigt den Besitz des Wallets. Aber wie können andere Mitglieder des Netzwerks sicherstellen, dass ich genug Geld zum Kaufen habe?

Da wir kein Guthaben haben, müssen Sie es beweisen. Daher beinhaltet eine Blockchain-Transaktion nicht nur Ihre Unterschrift und wie viel Sie ausgeben möchten, sondern auch Links zu früheren Transaktionen, bei denen Sie den erforderlichen Geldbetrag erhalten haben.

Das heißt, wenn Sie 400 Rubel ausgeben möchten, gehen Sie Ihre gesamte Einnahmen- und Ausgabenhistorie durch und fügen Sie Ihrer Transaktion die Einnahmen hinzu, bei denen Sie 100 + 250 + 50 Rubel erhalten haben, und beweisen damit, dass Sie diese 400 Rubel haben.

Jedes Mitglied des Netzwerks wird noch einmal sicher sein, dass Sie kein Einkommen doppelt angehängt haben. Die 300 Rubel, die Max letzte Woche gegeben hat, hast du wirklich noch nicht ausgegeben.

Solche mit einer Transaktion verbundenen Einkommen werden in der Blockchain als Inputs bezeichnet, und alle Geldempfänger werden als Outputs bezeichnet. Die Summe aller Eingänge ist selten genau so, wie Sie sie gleichzeitig übertragen möchten - daher sind Sie meistens einer der Ausgänge. Mit anderen Worten, die Transaktion auf der Blockchain sieht so aus: "Mir wurden 3 und 2 BTC gegeben, ich möchte 4 BTC von ihnen überweisen und die restlichen 1 BTC zurückgeben."

Das Schöne an der Blockchain ist, dass die Eingaben nicht aus einer Brieftasche kommen müssen. Schließlich wird nur der Schlüssel geprüft. Wenn Sie den privaten Schlüssel aller Eingaben kennen, können Sie diese ganz einfach an Ihre Transaktion anhängen und mit diesem Geld bezahlen. Als ob Sie in einem Supermarkt mit mehreren Karten bezahlen, von denen Sie den PIN-Code kennen.

Wenn Sie jedoch Ihren privaten Schlüssel verlieren, Ihre Festplatte stirbt oder Ihr Laptop gestohlen wird, sind Ihre Bitcoins für immer verloren. Niemand kann sie als Input für neue Transaktionen verwenden.

Dieser Betrag wird der ganzen Welt für immer unzugänglich sein - als würde man ein Bündel Banknoten verbrennen. Es gibt keine einzige Bank, bei der Sie einen Antrag mit einer Kopie Ihres Reisepasses schreiben können, und er druckt ihn aus. Dies erfordert eine zusätzliche Veröffentlichung neuer Bitcoins „aus dem Nichts“.

Doppelausgabenproblem

Oben sagte ich, dass Transaktionen zu einem speziellen "Pool von unbestätigten Transaktionen" hinzugefügt werden. Warum brauchen wir eine Art Zwischeninstanz, wenn wir tatsächlich bereits fertige unterzeichnete Transaktionen haben? Warum nicht direkt in die Blockchain schreiben?

Denn die Signale von Punkt A nach Punkt B gehen immer mit Verzögerung. Zwei Transaktionen können völlig unterschiedliche Wege gehen. Und die zuerst initiierte Transaktion kann den Empfänger später erreichen, weil sie einen längeren Weg brauchte.

Dies führt zu doppelten Ausgaben, wenn dasselbe Geld gleichzeitig an zwei Adressaten gesendet wurde, was diese nicht einmal erraten würden. Hier geht es nicht darum, Rechnungen von Hand zu Hand zu übergeben.

Für ein dezentrales Netzwerk, in dem niemandem vertraut werden kann, ist dieses Problem besonders akut. So stellen Sie sicher, dass eine Transaktion definitiv vor der anderen stattfindet? Bitten Sie den Absender, die Versandzeit einzunähen, oder? Aber denken Sie daran - Sie können niemandem vertrauen, nicht einmal dem Absender.

Die Uhrzeiten auf allen Computern unterscheiden sich zwangsläufig und es gibt keine garantierte Möglichkeit, sie zu synchronisieren. Auf jedem Computer im Netzwerk wird eine Kopie der Blockchain gespeichert und jeder Teilnehmer vertraut nur ihr.

Wie können Sie sicherstellen, dass eine Transaktion früher war als eine andere?

Die Antwort ist einfach: Es ist unmöglich. Es gibt keine Möglichkeit, den Zeitpunkt einer Transaktion in einem dezentralisierten Netzwerk zu bestätigen. Und die Lösung für dieses Problem ist die dritte wichtige Blockchain-Idee, die Satoshi erfunden hat und die seltsamerweise direkt in seinem Namen geschrieben wird - Blöcke.

Blöcke sind das Rückgrat der Blockchain

Jeder funktionierende Computer im Netzwerk wählt beliebige Transaktionen aus dem allgemeinen Pool aus. Normalerweise nur für die höchste Provision, die er damit verdienen kann. Also sammelt er Transaktionen für sich selbst, bis ihre Gesamtgröße das ausgehandelte Limit erreicht. Bei Bitcoin beträgt diese Blockgrößenbeschränkung 1 MB (nach SegWit2x sind es 2 MB) und bei Bitcoin Cash - 8 MB.

Die gesamte Blockchain ist im Wesentlichen eine Liste solcher Blöcke, wobei sich jeder auf den vorherigen bezieht. Es kann verwendet werden, um jede Transaktion im gesamten Verlauf zu verfolgen und die Blockchain sogar bis zum allerersten Datensatz abzuwickeln.

Es ist diese Liste, die jetzt Hunderte von Gigabyte wiegt und vollständig auf alle Computer heruntergeladen werden muss, die am Netzwerk teilnehmen möchten (dies ist jedoch nicht erforderlich, um einfach Transaktionen zu erstellen und Geld zu überweisen). Es wird auf die gleiche Weise von allen nächstgelegenen Computern im Netzwerk heruntergeladen, als ob Sie eine Serie von Torrents herunterladen würden, nur alle 10 Minuten werden neue Episoden veröffentlicht.

Nachdem er für sich selbst Transaktionen aus dem Pool getippt hat, beginnt der Computer, daraus dieselbe fälschungssichere Liste zusammenzustellen, wie wir es am Anfang des Posts an der Tafel zu Hause getan haben.

Nur er schafft es in Form eines Baumes - hasht die Datensätze paarweise, dann ist das Ergebnis wieder paarweise und so weiter, bis nur noch ein Hash übrig ist - die Wurzel des Baumes, die dem Block hinzugefügt wird. Warum genau mit einem Baum - ich habe die Antwort nicht gefunden, aber ich vermute, dass es so einfach schneller geht. Lesen Sie mehr im Wiki: Merkle-Baum.

Da die aktuelle Blockchain bereits heruntergeladen wurde, weiß unser Computer genau, was der letzte Block darin ist. Er muss nur einen Link dazu im Blockheader hinzufügen, alles hashen und allen anderen Computern im Netzwerk sagen: „Schau, ich habe einen neuen Block erstellt, lass uns ihn zu unserer Blockchain hinzufügen“.

Der Rest sollte überprüfen, ob der Block nach allen Regeln erstellt wurde und wir dort keine unnötigen Transaktionen hinzugefügt haben, und sie dann zu unseren Ketten hinzufügen. Jetzt sind alle Transaktionen darin bestätigt, die Blockchain wird um einen Block erhöht und alles läuft gut, oder?

Aber nein. Tausende von Computern arbeiten gleichzeitig im Netzwerk, und sobald sie einen neuen Block zusammenstellen, beeilen sie sich fast gleichzeitig, allen mitzuteilen, dass ihr Block zuerst erstellt wurde. Und aus dem vorherigen Abschnitt wissen wir bereits, dass es in einem dezentralen Netzwerk unmöglich ist, nachzuweisen, wer wirklich der Erste war.

Wie in der Schule, als alle einen schwierigen Test lösten, kam es selten vor, dass selbst hervorragende Schüler die Antworten gleichzeitig nahmen.

Aber wenn es für eine Person eine schwierige Aufgabe ist, einen Urlaub so zu planen, dass er in die Maiferien kommt und Tickets für das Meer günstig sind, dann ist es für einen Computer, eine solche Nummer (einmal) am Ende des Block, so dass als Ergebnis der SHA-256-Hash für den gesamten Block beginnt, sagen wir 10 Nullen. Dies ist das Problem, das gelöst werden muss, um dem Bitcoin-Netzwerk einen Block hinzuzufügen. Bei anderen Netzwerken können sich die Aufgaben unterscheiden.

Damit kommen wir zum Konzept des Mining, von dem in den letzten Jahren alle so besessen waren.

Bergbau

Bitcoin-Mining ist kein heiliges Sakrament. Beim Mining geht es nicht darum, irgendwo in den Tiefen des Internets neue Bitcoins zu finden. Mining ist, wenn Tausende von Computern auf der ganzen Welt in Kellern summen, Millionen von Zahlen pro Sekunde durchgehen und versuchen, einen Hash zu finden, der mit 10 Nullen beginnt. Dazu müssen sie nicht einmal online sein.

Grafikkarten mit Hunderten von parallelen Kernen lösen dieses Problem schneller als jede CPU.

Warum genau 10 Nullen? Und einfach so macht es keinen Sinn. Also hat sich Satoshi ausgedacht. Denn dies ist eines der Probleme, für die es immer eine Lösung gibt, die aber sicherlich nicht schneller zu finden ist als eine lange monotone Aufzählung von Optionen.

Die Komplexität des Mining hängt direkt von der Größe des Netzwerks ab, dh seiner Gesamtleistung. Wenn Sie eine eigene Blockchain erstellen und zu Hause auf zwei Laptops selbst betreiben, dann sollte die Aufgabe einfacher sein. Zum Beispiel, damit der Hash mit nur einer Null beginnt oder damit die Summe der geraden Ziffern gleich der Summe der ungeraden ist.

Es wird mehrere Jahrzehnte dauern, bis ein Computer einen Hash findet, der mit 10 Nullen beginnt. Aber wenn man Tausende von Computern zu einem einzigen Netzwerk zusammenfasst und parallel sucht, dann ist dieses Problem nach der Wahrscheinlichkeitstheorie im Durchschnitt in 10 Minuten gelöst. Dies ist der Zeitpunkt, zu dem ein neuer Block in der Bitcoin-Blockchain auftaucht.

Alle 8-12 Minuten findet jemand auf der Erde einen solchen Hash und erhält das Privileg, seine Entdeckung jedem bekannt zu geben, wodurch das Problem vermieden wird, wer der Erste war.

Für das Finden einer Antwort erhält der Computer (Stand 2017) 12,5 BTC – das ist die Belohnungssumme, die das Bitcoin-System „aus dem Nichts“generiert und alle vier Jahre sinkt.

Technisch bedeutet dies, dass jeder Miner seinem Block immer eine weitere Transaktion hinzufügt – „12,5 BTC erstellen und an mein Wallet senden“. Wenn Sie hören "die Anzahl der Bitcoins auf der Welt ist auf 21 Millionen begrenzt, jetzt haben sie bereits 16 Millionen eingestellt" - das sind die Belohnungen, die das Netzwerk generiert.

Sehen Sie sich einen echten Live-Bitcoin-Block auf einer der dedizierten Websites an. Es gibt auch Transaktionen mit Ein- und Ausgängen und bis zu 18 Nullen am Anfang und alle oben beschriebenen Hashes.

Es sind die Miner, die die aufkommenden Transaktionen zur Blockchain hinzufügen. Wenn Ihnen also jemand sagt, dass er "eine Blockchain für *** machen wird", muss er zuerst die Frage beantworten, wer darauf minen wird und warum. Meistens lautet die richtige Antwort „jeder wird, denn für das Mining geben wir unsere Coins, die wachsen und für die Miner profitabel sind“. Dies gilt jedoch nicht für alle Projekte.

Zum Beispiel erstellt morgen ein Gesundheitsministerium eine eigene geschlossene Blockchain für Ärzte (und sie wollen sie), wer wird sie abbauen? Therapeuten am Wochenende?

Aber was wird den Minern später nützen, wenn die Belohnungen verschwinden oder knapp werden?

Nach der Idee des Schöpfers müssen die Menschen zu diesem Zeitpunkt an die Realität von Bitcoin glauben und das Mining wird sich durch die in jeder Transaktion enthaltenen Gebühren auszahlen. Hier geht alles hin: Im Jahr 2012 waren alle Provisionen null, Miner schürften nur Belohnungen aus Blöcken. Heute kann eine Transaktion ohne Provision mehrere Stunden im Pool hängen, weil es Konkurrenz gibt und die Leute bereit sind, für Geschwindigkeit zu bezahlen.

Das heißt, die Essenz des Bergbaus besteht darin, bedeutungslose Probleme zu lösen. Könnte diese ganze Kraft nicht für etwas Nützlicheres verwendet werden – zum Beispiel für die Suche nach einem Heilmittel gegen Krebs?

Das Wesen des Minings besteht darin, jedes Rechenproblem zu lösen. Diese Aufgabe sollte so einfach sein, dass die Netzwerkteilnehmer eine stabile Wahrscheinlichkeit haben, eine Antwort zu finden – sonst werden Transaktionen für immer bestätigt. Stellen Sie sich vor, Sie müssen an der Kasse in einem Geschäft jedes Mal eine halbe Stunde warten, bis die Bank Ihre Transaktion bestätigt. Niemand wird eine solche Bank benutzen.

Aber die Aufgabe muss gleichzeitig schwierig sein, damit nicht alle Netizens die Antwort auf einmal finden. Denn in diesem Fall werden sie viele Blöcke mit den gleichen Transaktionen im Netzwerk ankündigen und es besteht die Möglichkeit der "doppelten Verschwendung", die ich erwähnt habe. Oder noch schlimmer – eine einzelne Blockchain in mehrere Zweige aufzuteilen, in denen niemand herausfinden kann, welche Transaktion bestätigt wird und welche nicht.

Wenn nur alle 10 Minuten eine Belohnung von 12,5 BTC ausgehändigt wird und nur eine Person den Block gefunden hat, stellt sich heraus, dass ich mehrere Jahre Grafikkarten verschwenden muss in der Hoffnung, dass ich eines Tages 40.000 US-Dollar (bei der aktueller Wechselkurs)?

Genau das ist bei Bitcoin der Fall. Aber es war nicht immer so. Früher war das Netzwerk kleiner, die Komplexität geringer, wodurch die Wahrscheinlichkeit höher ist, im Alleingang einen Hash für einen neuen Block zu finden. Aber damals war Bitcoin nicht so teuer.

Jetzt schürft niemand Bitcoins allein. Jetzt sind die Teilnehmer in speziellen Gruppen vereint - Mining-Pools, in denen alle gemeinsam versuchen, den richtigen Hash zu finden.

Findet mindestens einer aus der Gruppe, dann wird die gesamte Belohnung unter den Teilnehmern aufgeteilt, abhängig von ihrem Beitrag zur gemeinsamen Arbeit. Es stellt sich heraus, dass Sie Bergbau betreiben und jede Woche einen Cent vom Gesamtanteil erhalten.

In anderen Netzwerken ist Solo-Mining jedoch durchaus möglich. Bis vor kurzem war es einfach, Ethereum zu minen, wo alle 10 Sekunden Blöcke gefunden werden. Die Blockbelohnung ist dort viel niedriger, aber die Wahrscheinlichkeit, einen hübschen Cent zu verdienen, ist höher.

Wir werden also vergeblich Tausende von Grafikkarten verbrennen und es gibt keinen Ausweg?

Ja, aber es gibt Ideen. Das von mir beschriebene Mining ist klassisch und heißt Proof-of-Work (Proof of Work). Das heißt, jede Maschine beweist, dass sie zum Nutzen des Netzwerks gearbeitet hat, indem sie bedeutungslose Probleme mit einer bestimmten Wahrscheinlichkeit löst.

Aber einige Leute beginnen, Blockchains mit anderen Arten von Mining zu erstellen. Das zweitbeliebteste Konzept ist mittlerweile der Proof-of-Stake (Proof of Stake). Bei dieser Art des Minings ist es umso wahrscheinlicher, dass er seinen Block in die Blockchain einfügt, je mehr „Coins“ein Netzwerkteilnehmer auf seinem Konto hat. Wie der lauteste Typ im Dorf.

Sie können an andere Arten von Mining denken. Wie bereits angedeutet, können alle Computer im Netzwerk nach einem Heilmittel für Krebs suchen, Sie müssen nur herausfinden, wie Sie in diesem Fall ihren Beitrag zum System aufzeichnen. Immerhin kann ich erklären, dass ich auch mitmache, aber schalte meine Grafikkarte aus und zähle nichts.

Wie quantifizieren Sie den Beitrag jedes Teilnehmers zur Heilung von Krebs? Wenn Sie darauf kommen – wagen Sie es, Ihren CancerCoin zu schneiden, ist Ihnen ein Hype in den Medien garantiert.

Blockchain

Stellen Sie sich eine Situation vor, in der es trotz aller Wahrscheinlichkeitstheorie zwei Miner gleichzeitig geschafft hat, die richtige Antwort zu finden. Sie beginnen, zwei absolut korrekte Blöcke über das Netzwerk zu senden.

Diese Blöcke sind garantiert unterschiedlich, denn selbst wenn sie auf wundersame Weise die gleichen Transaktionen aus dem Pool ausgewählt, absolut identische Bäume erstellt und die gleiche Zufallszahl (Nonce) erraten haben, werden ihre Hashes immer noch unterschiedlich sein, da jeder seine Wallet-Nummer einschreibt der Block für die Belohnung.

Jetzt haben wir zwei gültige Blöcke und wieder stellt sich das Problem, wer zuerst berücksichtigt werden soll. Wie verhält sich das Netzwerk in diesem Fall?

Der Blockchain-Algorithmus besagt, dass Netzwerkteilnehmer einfach die erste richtige Antwort akzeptieren, die sie erreicht. Dann leben sie auf der Grundlage ihres eigenen Weltbildes.

Beide Miner erhalten ihre Belohnung, und der Rest beginnt mit dem Mining, wobei er sich auf den letzten Block verlässt, den sie persönlich erhalten haben, und den Rest verwerfen. Im Netzwerk erscheinen zwei Versionen der richtigen Blockchain. Das ist das Paradox.

Dies ist eine Routinesituation, in der die Wahrscheinlichkeitstheorie wieder hilft. Das Netzwerk funktioniert in einem solchen gegabelten Zustand, bis einer der Miner den nächsten Block zu einer dieser Ketten findet.

Sobald ein solcher Block gefunden und in die Kette eingefügt wird, wird er länger und eine der Vereinbarungen des Blockchain-Netzwerks wird aufgenommen: Unter allen Bedingungen wird die längste Blockchain als einzig wahre für das gesamte Netzwerk akzeptiert.

Die kurze Kette wird trotz aller Korrektheit von allen Teilnehmern des Netzwerks abgelehnt. Transaktionen daraus werden an den Pool zurückgegeben (sofern sie nicht in einem anderen bestätigt wurden) und ihre Verarbeitung beginnt von neuem. Der Miner verliert seine Belohnung, weil sein Block nicht mehr existiert.

Mit dem Wachstum des Netzwerks fallen solche Zufälle von "sehr unwahrscheinlich" in die Kategorie "Nun, manchmal passiert es". Oldtimer sagen, dass es Fälle gab, in denen eine Kette von vier Blöcken auf einmal fallen gelassen wurde.

Aus diesem Grund wurden drei Sicherheitsregeln am Ende der Kette erfunden:

1. Belohnungen für das Mining können erst nach weiteren 20 bestätigten Blöcken nach Erhalt verwendet werden. Bei Bitcoin sind dies etwa drei Stunden.

2. Wenn Bitcoins an Sie gesendet wurden, können Sie diese erst nach 1-5 Blöcken als Input für neue Transaktionen verwenden.

3. Regeln 1 und 2 sind nur in den Einstellungen jedes Clients angegeben. Niemand überwacht ihre Einhaltung. Aber das Gesetz der längsten Kette wird immer noch alle Ihre Transaktionen auslöschen, wenn Sie versuchen, das System dazu zu bringen, sie nicht durchzusetzen.

Versuch, die Blockchain zu betrügen

Nachdem Sie nun alles über Mining, das Gerät der Blockchain und die Regel der längsten Kette wissen, haben Sie vielleicht eine Frage: Ist es möglich, die Blockchain irgendwie gezielt zu überholen, indem Sie die längste Kette selbst erstellen und so Ihre gefälschten Transaktionen bestätigen.

Nehmen wir an, Sie haben den leistungsstärksten Computer der Welt. Google und Amazon stellen Ihnen Rechenzentren zusammen und Sie versuchen, eine solche Kette zu berechnen, die die längste Blockchain im Netzwerk wird.

Sie können nicht mehrere Blöcke der Kette nehmen und sofort berechnen, da jeder nächste Block vom vorherigen abhängt. Dann entscheidest du dich so schnell wie möglich, jeden Block auf deinen riesigen Rechenzentren parallel zu zählen, wie alle anderen Teilnehmer die Hauptblockkette weiter vergrößern. Ist es möglich, sie zu überholen? Wahrscheinlich ja.

Wenn Ihre Rechenleistung mehr als 50 % der Leistung aller Netzwerkteilnehmer beträgt, können Sie mit einer Wahrscheinlichkeit von 50 % schneller eine längere Kette aufbauen als alle anderen zusammen. Dies ist eine theoretisch mögliche Möglichkeit, die Blockchain auszutricksen, indem eine längere Transaktionskette berechnet wird. Dann werden alle Transaktionen des realen Netzwerks als ungültig betrachtet, und Sie sammeln alle Belohnungen und starten einen neuen Meilenstein in der Geschichte der Kryptowährung, der als "Blockchain-Division" bezeichnet wird. Einmal war dies aufgrund eines Fehlers im Code bei Ethereum der Fall.

Aber in Wirklichkeit kann kein Rechenzentrum in Bezug auf die Leistung mit allen Computern der Welt verglichen werden. Eineinhalb Milliarden Chinesen mit Eispickel, weitere eineinhalb Milliarden hungernde Inder mit Mining-Farmen und billigem Strom – das ist eine riesige Rechenleistung. Mit ihnen allein kann noch niemand auf der Welt konkurrieren, nicht einmal Google.

Es ist, als würde man auf die Straße gehen und versuchen, jeden Menschen auf der Welt davon zu überzeugen, dass der Dollar jetzt 1 Rubel wert ist, und rechtzeitig zu sein, bevor die Medien Sie entlarven. Und wenn Sie es schaffen, alle zu überzeugen, können Sie die Weltwirtschaft zum Einsturz bringen. Theoretisch ist das nicht möglich? Aber in der Praxis gelang es aus irgendeinem Grund niemandem.

Auf dieser Wahrscheinlichkeit beruht auch die Blockchain. Je mehr Teilnehmer-Miner, desto mehr Sicherheit und Vertrauen in das Netzwerk. Daher bricht die Rate zusammen, wenn eine weitere große Mining-Farm in China abgedeckt wird. Jeder hat Angst, dass es irgendwo auf der Welt ein böses Genie gab, das bereits einen Pool von Bergleuten mit einer Kapazität von ~ 49% gesammelt hatte.

Fazit

Blockchain ist kein streng definierter Satz von Algorithmen. Es ist eine Struktur zum Aufbau eines gefälschten Netzwerks zwischen Teilnehmern, in dem niemand jemandem vertrauen kann. Beim Lesen ist Ihnen wahrscheinlich mehr als einmal der Gedanke gekommen, dass „das kann man so machen und es wird noch nützlicher“. Das bedeutet, dass Sie die Blockchain verstehen, herzlichen Glückwunsch.

Einige Leute auf der Welt haben es auch verstanden und wollten sich für bestimmte Aufgaben verbessern oder anpassen. Kryptowährungen sind nicht gleich Kryptowährungen, obwohl es auch viele davon gibt. Hier ist eine kurze Liste einiger Ideen und Projekte, die dank des Überdenkens der Blockchain-Idee an Popularität gewonnen haben.

Äther

„Ethers“ist nach Bitcoin das zweitbeliebteste Wort, das Sie in Krypto-Hype-Nachrichten hören. Für normale Leute ist dies eine weitere Kryptowährung und eine Möglichkeit, die angesagteste Sache namens ICO zu tun. Die Entwickler auf der Seite beschreiben Ethereum als „einen Blockchain-Builder für Ihre Bedürfnisse“. Das ist auch möglich, ja.

Aber wenn Sie noch tiefer graben, ist Ether nicht nur ein Netzwerk von Münzen. Dies ist eine riesige globale Computermaschine, auf der Benutzer den Code von Programmen anderer Leute (intelligente Verträge) ausführen und für jede ausgeführte Zeile eine Belohnung erhalten. Und das alles dezentral, unverwüstlich und mit allen Garantien der Blockchain.

Wir können so lange über Ethereum und Smart Contracts sprechen, dass es für einen weiteren solchen Beitrag reicht. Daher werden wir uns im Stil von Top-Bloggern verhalten: Wenn dieser Beitrag aktiv repostet und retweetet wird und bis Freitag mindestens 1.500 Unique Views bekommt, werde ich eine Fortsetzung über Ethereum und Smart Contracts schreiben.

Empfohlen: