Haftungsausschluss
Dieser Text ist nicht an bestehende Kryptoprojekte gebunden und stellt ein "kugelförmiges Pferd im luftleeren Raum" dar, das zum ersten Mal in das Thema eintaucht. Wahrscheinlich werden Fachleute solche gemeinsamen Wahrheiten nicht brauchen. Und ja, das ist Longrid. Obwohl viel hinter den Kulissen bleibt.
Einführungskurs
Zunächst einmal ist Blockchain in Mode. Und das ist der Hauptgrund, warum sie interessiert sind. Es scheint, dass dies eine solche "Joker" -Technologie ist, die überall angewendet werden kann und sollte. Das stimmt aber nicht. Und damit Sie sich nicht auf mein Wort verlassen müssen, werde ich Ihnen sagen, was die Blockchain eigentlich ist, wo sie anwendbar ist und wo sie gebraucht wird, wie ein Regenschirm zum Fischen.
Also ...
Blockchain
Der Begriff stammt aus dem Englischen "Block Chain", was übersetzt "Block Chain" bedeutet. Jeder neue Block enthält den Hash des vorherigen Blocks und bildet eine einfach verknüpfte Liste, in der der Hash jedes Blocks im nächsten Block aufgezeichnet wird.
Der Block-Hash hängt von allen vorherigen Blöcken ab. Somit spiegelt der Hash des letzten Blocks den Zustand der gesamten Datenbank wider. Und die Kette von Hashes vom letzten bis zum ersten Block ist ein Beweis für ihre Unveränderlichkeit. Wenn ein neuer Block hinzugefügt wird, wird er mit dem letzten Block „verknüpft“ und sein Hash wird zum neuen Status der Datenbank.
Wenn ein vorhandener Block geändert wird, wird die Hash-Kette verletzt und der Ort der Verletzung zeigt den geänderten Block an. Sie können alle Hashes neu berechnen und bis zum Ende der Kette ändern - dann bleibt die kryptografische Konnektivität erhalten, aber der Hash des letzten Blocks wird geändert. Wenn der Status der Datenbank - und dies ist der Hash des letzten Blocks - bekannt ist, ist eine Fälschung nicht möglich.
Das ist in der Tat alles.
Datenbank
Wir wissen bereits, dass Blockchain nur eine Möglichkeit ist, die Datenbank vor Interferenzen zu schützen. Was soll die Datenbank selbst sein? Tatsächlich kann es sich um ein beliebiges SQL-, BigTable-, Schlüsselwert- oder Dateisystem handeln. Aber die Verwendung von Blockchain bringt seine Grenzen mit sich.
Die blockchain-geschützte Datenbank der vier CRUD-Eigenschaften ("Erstellen, Lesen, Aktualisieren, Löschen") lässt nur die ersten beiden zu. Sie können keine Daten in einer solchen Datenbank ändern oder löschen, da die kryptografische Integrität sofort verloren geht. Mit Blockchain können Sie nur neue Blöcke lesen und erstellen.
Eine solche fehlerhafte Basis wird als Registry bezeichnet. Für Workflow, Patentaktivität und - natürlich! - Kryptowährungen ein solches Modell ist akzeptabel und organisch. Die Verwendung als allgemeine Datenbank ist jedoch nahezu unmöglich.
Das Schlüsselwort hier ist "fast". Es gibt eine Möglichkeit, eine vollwertige Blockchain-Datenbank abzustimmen, und diese Methode wird als "Transaktionsprotokoll" bezeichnet.
Nehmen wir zum Beispiel eine einfache Schlüsselwertdatenbank, in der beliebige Entitäten gespeichert sind, die einem eindeutigen Schlüssel zugeordnet sind. Sie können erstellt und gelöscht, gelesen und geändert werden.
Berechnen Sie für jede Entität den Hash und ordnen Sie die resultierende Liste dann buchstäblich (alphabetisch sortiert) an. Berechnen Sie für jedes Hash-Paar den Hash der Literal-Summe (Verkettung) dieser Hashes. Führen Sie dann in der resultierenden Liste dasselbe aus. Und so weiter, bis wir einen Hash-Baum bauen, auf dem sich ein einziger Wert befindet. Dieser Mechanismus wird als Merkle-Baum bezeichnet. Oben befindet sich ein Hash, der den Status der Datenbank widerspiegelt.
Als nächstes erstellen wir eine einfach verknüpfte Liste nach allen Regeln der Blockchain, die Datensätze über den Status der Datenbank, den Schlüssel und den neuen Wert der Entität enthält. Nun, und natürlich der Hash des vorherigen Eintrags. Dies ist bereits eine Blockchain - eine Blockchain von Transaktionen, von denen jede dem Status der Datenbank zugeordnet ist und das Wesentliche der durch diese Transaktion vorgenommenen Änderungen enthält.
Wenn der Schlüssel neu ist, wird die Entität erstellt. Wenn vorhanden, ändert es sich. Wenn der neue Wert Null ist, wird die Entität gelöscht. Jede Änderung führt zu einer Nachzählung der betroffenen Äste des Merkle-Baumes und einem neuen Stand der Basis.
Im Prinzip kann das gleiche Schema für eine relationale Datenbank und bei Bedarf für jede andere implementiert werden. Das Transaktionsprotokoll zeichnet die Änderungen auf, der Merkle-Baum beweist seine Zuverlässigkeit. Nicht schlecht, oder?
Datendezentralisierung
Warum sollten Sie sich mit all diesen Authentifizierungsmechanismen beschäftigen? Auf diese Weise können Sie eine verteilte Datenbank erstellen, der Sie vertrauen können. Selbst wenn genau die Knoten des Netzwerks, in denen diese Datenbank gespeichert ist, vertrauen wir nicht.
Dezentrale Datenbanken werden repliziert und verteilt. Von jedem Benutzer replizierte Datenbanken werden gleich und vollständig gespeichert, und verteilte Datenbanken werden unterschiedlich und teilweise gespeichert. Das Plus des ersten Ansatzes liegt in der vollen Kontrolle über die Datenbank und das Minus in den hohen Anforderungen an das Speichervolumen. Das Für und Wider des zweiten Ansatzes spiegelt sich wider - das Volumen der gesamten Datenbank kann um ein Vielfaches größer sein als die Fähigkeiten eines einzelnen Benutzers, jedoch auf Kosten unzureichender Kontrolle und folglich einer Verringerung des Vertrauens in deren Zuverlässigkeit.
Jeder Benutzer der Datenbank kann seinen eigenen Block hinzufügen. Die Basis ist jedoch nur dann zuverlässig, wenn alle Instanzen gleich sind. Durch die Synchronisation wird die Zuverlässigkeit einer Datenbank aufrechterhalten. Es können beliebige Operationen damit ausgeführt werden - Lesen oder Schreiben -, sofern dies relevant genug ist, damit die gleichen Aktionen mit ihm zu den gleichen Ergebnissen führen.
Im Allgemeinen besteht die Synchronisation darin, den letzten Status der Datenbank abzurufen und anschließend nacheinander die fehlenden Elemente abzurufen, bis die Integrität vollständig wiederhergestellt ist.
Verteiltes Netzwerk
Die Dezentralisierung garantiert die Stabilität des Systems gegen zerstörerische Einflüsse - sowohl von einzelnen Hackern als auch von Unternehmen und herrschenden Strukturen. Ein dezentrales System lebt, solange eine Verbindung zwischen seinen Elementen besteht.
Teilnehmer in einem verteilten Netzwerk bilden einen Graphen, dessen Knoten Computer sind, die mit dem Internet verbunden sind, und die Kanten zwischen ihnen sind durch Kanten verbunden. Jeder Knoten hat eine eindeutige Kennung - ein Konto, einen öffentlichen Schlüssel einer elektronischen Signatur oder etwas anderes. Diese Kennung wird zur Adressierung von Nachrichten verwendet. Die Weiterleitung dieser Nachrichten hängt von der Netzwerkarchitektur ab.
Die einfachste Architektur ist ein vollständig verbundener Graph, bei dem jeder Bezeichner einer realen Netzwerkadresse entspricht und die Möglichkeit der Kommunikation aller mit jedem besteht. In einer realen Netzwerkinfrastruktur besteht jedoch möglicherweise nicht die Möglichkeit, jeden mit jedem zu verbinden. Aufgrund der Notwendigkeit, alle Teilnehmer zu benachrichtigen, wird der Verkehr mit dem Anwachsen des Netzwerks proportional zur Anzahl der Teilnehmer zunehmen. Früher oder später wird es eine Effizienzgrenze geben, ab der der Abbau des Netzwerks bis zu seinem vollständigen Ende beginnt.
Ein komplexeres Modell ist ein gerichteter zyklischer Graph. Die Bezeichner sind in einer einzigen Liste angeordnet, die so geschleift ist, dass jeder Knoten links und rechts "Nachbarn" hat. Empfangen Sie eine Nachricht von den Nachbarn auf der linken Seite und senden Sie sie auf der rechten Seite. Die Knoten übermitteln sie per Relais. Dieses Schema hängt nicht von der Größe des Netzwerks ab, da die Knoten mit einer relativ kleinen festen Anzahl von Nachbarn interagieren. Dieses Schema kann verbessert und ergänzt werden, aber der Punkt ist, dass jeder Knoten nur mit seinem eigenen Subnetz interagiert, das, teilweise überlappend, einen zusammenhängenden Graphen von unbegrenzter Größe implementiert.
Dies bietet jedoch keine Lösung für Situationen, in denen sich Knoten einseitig mit anderen verbinden können. In privaten Netzwerken, die hinter NAT-Routern (Network Address Translation) versteckt sind, können sie Nachrichten senden, aber nicht empfangen. Für sie ist es notwendig, ein Modell zu implementieren, in dem sie eine Verbindung herstellen und Nachrichten als Antwort auf eine Anfrage empfangen. Das "NAT-Traversal-Problem" kann eine Lösung in Form von separaten "Beacon" -Routern oder anderen Knoten haben, die diese Funktionen implementieren. Das Muster mit Routern ähnelt dem Sternmuster der Netzwerkarchitektur.
Die Architekturen "Ring" und "Stern" können verbessert und kombiniert verwendet werden. Die Architektur "Maschennetz" ist jedoch die effizienteste. Sie verwandelt den ursprünglich vollständig verbundenen Graphen in einen nicht verbundenen Graphen, indem Verbindungen reduziert und direkte Verbindungen von mehreren Zwischenverbindungen in eine "Route" umgewandelt werden. Dazu muss jeder Knoten ggf. zum Router für Nachbarn werden können. Besonders unzugängliche Pfade und Herunterfahren von Knoten sind für eine solche Architektur bedrohlich - das Netzwerk baut beschädigte Routen neu auf und repariert sich selbst. Und es ist am effektivsten in Bezug auf die Leistung.
Aber du musst für alles bezahlen. Der mathematische Apparat der Maschennetzwerke (aus dem Englischen. Mesh - "cell") ist viel komplizierter und ich werde wahrscheinlich darauf verzichten, ihn hier zu beschreiben. Diejenigen, die interessiert sind, werde ich auf das "Problem des Handlungsreisenden" und dann - wenn dies sie nicht verschreckt - auf die Spieltheorie verweisen. Da gibt es alle Antworten - für diejenigen, die sie bekommen können.
Verzweigungsproblem
Die Blockchain hat einen schwerwiegenden Defekt - wo es einfach verbundene Listen gibt, können Bäume existieren. Dies widerspricht nichts, da mehrere aufeinanderfolgende auf denselben Block verweisen können. Jeder resultierende Zweig ist zuverlässig, behält die kryptografische Integrität bei und hat einen eigenen Status. Aber die Basis als Ganzes überlagert all diese Zustände und wird unsicher.
Dieses Problem ist besonders relevant in einem dezentralen System, in dem verschiedene Knoten unabhängig voneinander Änderungen an der Datenbank vornehmen können, die Gabeln verursachen (von der englischen Gabel - "Gabel"). Es gibt zwei Möglichkeiten, um damit umzugehen - die Situation der gleichzeitigen Aufnahme zu vermeiden und die Konsequenzen zu beseitigen.
Bergbau
Sie haben wahrscheinlich gehört, dass BitCoin-Benutzer die meiste Zeit Strom verbrauchen und Rechenressourcen verschwenden, um ein nutzloses mathematisches Problem zu lösen? Wenn nicht, wissen Sie jetzt, dass ...
Jedem neuen Block wird eine Zufallszahl hinzugefügt. Es ist zufällig, aber der Hash des resultierenden Blocks muss die Bedingungen erfüllen. Beginnen Sie beispielsweise mit 10 Nullen. Und jetzt sortieren die Knoten, die einen neuen Block schreiben möchten, diese Zahlen, bis der Hash die angegebenen Komplexitätsbedingungen erfüllt. Und "Farmen" von Computern, Grafikkarten oder speziell entwickelten Geräten absorbieren Kilowatt und produzieren Wärme. Nun, und die notwendigen Hashes natürlich.
Warum das alles? Aber sehr einfach. Von den vielen Teilnehmern an der Wahrscheinlichkeitstheorie wird der Hash alle 10 Minuten von einer Person gefunden. Er schreibt den Block. Dies ist der einfachste Weg, um sich vor Verzweigungen zu schützen.
Und am ineffizientesten, weil trotz der Komplexität der Aufgabe „Gabeln“ passieren. Dann entfernen diejenigen, die die Gabel finden, die Blöcke aus dem kürzeren Zweig und übertragen sie der Reihe nach an das Ende des längeren.
Und damit die Netzwerkteilnehmer daran interessiert sind, erhalten sie für die von ihnen aufgewendeten Ressourcen Kryptowährungsmünzen "aus dem Nichts". Dies ist Bergbau (aus dem Englischen. "Mining" - Arbeit in der Mine).
PoW, PoS, DPoS ...
Das Berechnen von Hashes ist nur eine Möglichkeit, eine von vielen zu wählen. Dies ist Proof-of-Work, was "Nachweis der geleisteten Arbeit" bedeutet. Durch die Berechnung des gewünschten Hash erledigen die Teilnehmer die Arbeit, und der gefundene Hash ist genau dieser Beweis. Nachweis der Verschwendung von Strom.
Wenn die Grünen darüber sprachen, kümmerten sich nur wenige Leute darum. Aber als neues Geld anfing, das alte zu bedrohen, erinnerten sich die Regierungen an die Ökologie. Die Nutzlosigkeit des Bergbaus zu dieser Zeit wurde jedoch nicht nur von denjenigen verstanden, die dafür Geld erhielten. Es ist Zeit, etwas zu ändern ...
Und es erschien Proof-of-Stake, "Eigentumsnachweis". Alles ist einfach, wer reicher ist - er hat recht. Tatsächlich ist alles etwas komplizierter, aber es spielt keine Rolle - das Erstellen von Blöcken (und das Erhalten von Belohnungen für sie!) Liegt in den Händen von Personen mit einem höheren Anteil an Eigentumsrechten.
Dann kamen DPoS (delegiertes PoS mit Demokratie und Abstimmung), PoI ("Beweis der Wichtigkeit" basierend auf einigen Metriken wie Aktivitätsaktivität und Betriebszeit) und mehr und mehr und mehr ...
Die Essenz bleibt gleich - es wird ein Mechanismus benötigt, der es nur einem erlaubt, in jedem Zeitfenster einen neuen Block in eine Kette zu schreiben. Warum sollte er irgendwie beweisen, dass er würdig und im Allgemeinen besser ist als jeder andere?
Und wenn nicht zu beweisen?
Und hier hören wir auf und erinnern uns, warum es für uns so wichtig ist, dass die Aufnahme von einer Person gemacht wurde. Ja, damit die Kette nicht in einen Baum zerfällt. Aber warum?
Wenn eine Kette zwei letzte Blöcke hat, befindet sich die Datenbank gleichzeitig in zwei Zuständen. Und wenn mehr - dann in einer Überlagerung aller möglichen Zustände. Die Basis wird unsicher. Die ganze Basis in ihrer Gesamtheit. Benötigen wir eine monolithische Integrität der Basis? Um die Echtheit eines Elements zu überprüfen, wird nicht die gesamte Basis benötigt, sondern nur die Teile, die damit verbunden sind.
Und wenn wir die Datenbank unabhängig voneinander an verschiedenen Stellen ändern und jede Änderung von der kryptografischen Integrität unterstützt wird, haben wir eine unbestimmte Datenbank, deren Teilmengen deterministisch sind. Und wenn wir uns neben der Verzweigung auch mit der Verzweigung befassen, wird das Maß der Unsicherheit gleichzeitig zunehmen und abnehmen. Und jeder Knoten kann jederzeit einen beliebigen Block zur Kette hinzufügen, wenn Sie zuerst alle Zustände der betroffenen Elemente in eine deterministische Teilmenge der Datenbank bringen.
Dies ist eine Blockchain ohne Blockchain. Genauer gesagt, ein Register in einem azyklisch gerichteten Graphen.
Kryptowährung
Wir sagen "Kryptowährung" - wir meinen "Blockchain", wir sagen "Blockchain" ... aber nein, das Gegenteil ist nicht der Fall. Was ist Kryptowährung?
Stellen Sie sich eine Datenbank vor, die Einträge mit den Feldern "Absenderkonto", "Empfängerkonto" und "Betrag" enthält. Nichts weiter, nur diese drei Spalten. Mit jedem Eintrag auf dem Konto des Absenders verringert sich der Geldbetrag um den angegebenen Betrag und auf dem Konto des Empfängers um mehr. Wenn Sie alle Datensätze, in denen Geld überwiesen wurde, auf ein einzelnes Konto sammeln und diese addieren und dann von dem erhaltenen Betrag alle Vorgänge abziehen, in denen Geld von dem Konto überwiesen wurde, erhalten Sie den Betrag, der sich jetzt auf diesem Konto befindet. Bei jedem neuen Eintrag wird Geld von Konto zu Konto übertragen und so weiter.
Sehen Sie, wie einfach es ist? Nur eine Tabelle mit drei Spalten - und wir haben bereits ein eigenes Finanzsystem. Und alles wäre einfach so, wenn nicht für ein Problem. Zu Beginn, wenn die Tabelle leer ist, haben alle Konten den gleichen Wert - Null. Dies bedeutet, dass keine Operation ausgeführt werden kann. Naja, sonst hätten einige Konten einen negativen Wert und das ... ist es falsch? Oder nicht?
Emission
Wenn wir Papiergeld als Quittung für Staatsschulden betrachten, dann ist der Gesamtbetrag der Banknoten die Gesamtschuld des Staates gegenüber seinen Bürgern. Und wenn auf ihren Konten unterschiedliche Nummern mit einem Pluszeichen stehen, dann auf dem bedingten "Staatskonto" - deren Summe mit einem Minuszeichen. Dann läuft alles zusammen.
Buchhalter nennen diesen Saldo "Saldo", sie haben auch aktive (streng negative) und passive (streng positive) Konten. Sie haben auch Aktiv-Passiv-Konten, aber wenn Ihnen Grund und Leben am Herzen liegen, halten Sie sich von den Torfmooren der Buchhaltung fern, denn sie haben sogar ein „Gleichgewicht auf außerbilanziellen Konten“, dessen Existenz nicht jeder Verstand ertragen kann.
Die Bedeutung ist wie folgt. Aufgrund der Tatsache, dass die Konten der Emittenten möglicherweise negativ sind, überweisen sie Geld, das sie nicht haben, und drucken sie dann aus. Theoretisch können sie dies in beliebiger Menge tun. In der Praxis ist der Emittent Teil eines Systems, das die Geldmenge regulieren soll. Wie das geht - jedes Projekt entscheidet für sich.
Inflation
Der Gesamtwert des Systems wird in der Gesamtverschuldung der Teilnehmer untereinander geschätzt. Die Währungseinheit ist das Quantum dieser Gesamtverschuldung. Je mehr Geldeinheiten in Umlauf gebracht werden, desto geringer sind deren Kosten. Und je niedriger der objektive Wert der Ersparnisse eines jeden Teilnehmers ist.
Inflation ist ein Nebeneffekt eines jeden Problems. Wenn möglich, sollte es vermieden werden.
Deflation
Wenn ein Betrag auf das Konto des Emittenten überwiesen wird, wird dieses Geld „verbrannt“. Die Geldmenge wird sinken, der Wert der Geldeinheit wird steigen und alle Teilnehmer des Systems werden ein wenig reicher. Außerdem natürlich der Philanthrop, der sein Geld aus dem Verkehr gezogen hat.
Diesem Mechanismus kann ein Anreizmechanismus zugeordnet werden. Zum Beispiel, um die Möglichkeit zu bieten, einige Aktionen für eine Provision auszuführen, die von den Teilnehmern am Geldwechsel abgebucht wird. Wenn ein Teilnehmer beispielsweise sein eigenes Geld verbrennt, erhält er eine Provision für die Verarbeitung von Zahlungen von Geldsendern.
Die Entfernung eines Teils der Geldmenge aus dem Verkehr erhöht den Wert des verbleibenden Teils. Und dieser Prozess ist es wert, stimuliert zu werden, aber nicht zu aktiv, da die Geldmenge groß genug sein muss, um alle erforderlichen Aktivitäten zu gewährleisten.
Die Hauptsache ist, wie bei allem, Gleichgewicht und Augenmaß.
Nicht nur Geld
Als wir über Blockchain sprachen, erwähnten wir beliebige Datenbanken und nicht nur die Account-Count-Summen-Datensätze. So können wir beliebige Informationen in einer verteilten Datenbank speichern. Das eröffnet große Chancen. Eine öffentliche Datenbank, die nicht vernichtet und gefälscht werden kann, findet überall Anwendung.
Sie müssen nur einen Anreiz für die Teilnehmer finden, sich selbst einen Sinn zu machen, wenn sie ihre Computer eingeschaltet lassen.
Intelligente Verträge
Technisch entspricht dies gespeicherten Prozeduren in Datenbanken. Das heißt, ausführbarer Code in einigen Programmiersprachen, der Änderungen an der Datenbank vornehmen kann. Und der Name ist, weil es sich so historisch entwickelt hat.
In Kryptowährungen ist ein intelligenter Vertrag eine Art Teilnehmer, der keine lebende Person ist, sondern ein Automat, dessen Verhalten durch einen Code definiert wird. Wenn eine Geldtransferoperation für dieses Mitglied ausgeführt wird, wird der Code ausgeführt. Er kann alles tun - den erhaltenen Betrag in Raten an andere Teilnehmer überweisen, das erhaltene Geld bis zu Stunde X speichern, dann jemanden allein auswählen und das gesamte Geld an ihn überweisen. Letzteres ist übrigens eine klassische Implementierung aller Arten von Roulettes, Lotterien und Gewinnspielen. Sie können einfach Informationen in der Datenbank speichern, die ein Teilnehmer für den Dienst bezahlt hat, und dann kann ein anderer verbundener Teilnehmer diese Informationen empfangen und den Dienst bereitstellen.
Es gibt eine gewisse Vielfalt solcher "Automaten", die "Orakel" genannt werden. ( , ) . "" , . , , .
, . - , , .
, — , .
So können wir eine verteilte virtuelle Maschine in einer verteilten Basis erstellen. Das gleiche zuverlässig (das heißt überprüfbar), wie alles andere.
Fazit
Das ist in der Tat alles.Eine Vielzahl von Innovationen ist nichts anderes als eine effektivere Umsetzung der hier beschriebenen Ideen in der einen oder anderen Form. Wenn Ihnen von etwas "Revolutionärem" erzählt wird, wissen Sie einfach, dass sie Sie täuschen wollen.
In der Krypta sind übrigens bereits Pyramiden vom Typ MMM aufgetaucht.
Vielen Dank für Ihre Aufmerksamkeit.