Was ist Blockchain?

In letzter Zeit ist die Blockchain-Technologie im Internet immer beliebter geworden. Leider verstehen nicht so viele Menschen, was sie ist.

Blockchain ist das Kind eines Genies, bekannt unter dem Pseudonym Satoshi Nakamoto. In der Veröffentlichung von 2008 definierte er seine Erfindung als ein „elektronisches Peer-to-Peer-Bargeldsystem“. Er wollte erreichen, dass Bitcoin wie Bargeld funktioniert, d. h. das System sollte in der Lage sein, digitale Münzen korrekt zu transferieren (sie nicht an die falsche Geldbörse zu senden) und Doppelausgaben zu verhindern. Um Nakamotos Traum vom zentralisierten Zahlungssystem zu verwirklichen, mussten diese Ziele ohne die Einmischung Dritter wie Banken erreicht werden.

Doch wofür wird sie verwendet? Ursprünglich handelt es sich bei einer Blockchain um eine verteilte Datenbank, in der eine ständig wachsende Liste von Datensätzen, den so genannten Blöcken, gespeichert wird. Jeder Block enthält einen Zeitstempel und einen Link zu einem früheren Block. Eine Blockchain wird in der Regel von einem Peer-to-Peer-Netzwerk verwaltet, das sich gemeinsam an ein Protokoll zur Validierung neuer Blöcke hält. Blockchains sind von Natur aus resistent gegen Datenänderungen. Einmal aufgezeichnete Daten in einem bestimmten Block können nicht rückwirkend geändert werden, ohne dass alle nachfolgenden Blöcke geändert werden und das gesamte Netzwerk mitspielt. Funktional kann eine Blockchain als „offenes, verteiltes Hauptbuch dienen, das Transaktionen zwischen zwei Parteien effizient, nachprüfbar und dauerhaft aufzeichnen kann. Das Hauptbuch selbst kann auch so programmiert werden, dass es automatisch Transaktionen auslöst“. – sagt Wikipedia.

Es kann auch eine verknüpfte Liste oder ein Puzzle genannt werden. Jedes Puzzle ist mit einem anderen verknüpft, indem der Hash des vorherigen Blocks validiert wird.

blockchain

Vereinfachter Bitcoin-Blockсhain

Eine Blockchain kann Daten über Bank- und Rechtsgeschäfte, Verträge, Abstimmungen usw. speichern. Der Hauptunterschied zu herkömmlichen Datenbanken besteht in der Dezentralisierung. Die Kette (Registry) wird auf Hunderttausenden von Computern gespeichert, zu denen jeder Nutzer Zugang hat. Ein solches System ist schwerer zu knacken, zu verderben oder die Daten darin zu verlieren, wenn ein Hardware- oder Softwarefehler bei dem Server auftritt, auf dem die Datenbank gespeichert ist. Diese Technologie ist grundlegend für das Bitcoin-Zahlungsnetzwerk. Sie garantiert die Sicherheit der Informationen über Finanztransaktionen zwischen den Netzwerkteilnehmern.

Was ist gut an der Blockchain?

Eine Blockchain kann als eine Art Supercomputer betrachtet werden, der eine Reihe von Knotenpunkten vereint, auf denen Ihre Daten sicher gespeichert sind. Das Wertvollste daran ist, dass es unmöglich ist, solche Daten zu verlieren, da sie für immer erhalten bleiben. Die Daten in einer Blockchain befinden sich nicht nur in ihrem endgültigen Zustand, sondern auch in allen vorherigen.

Für Hacker ist es fast unmöglich, diesen Speicher zu knacken, da jeder nachfolgende Block mit dem vorherigen verknüpft ist. Die Kette arbeitet auf zahlreichen Computern. Auf diese Weise ist das Hacken einer Blockchain fast ein Versuch, das globale Computernetz zu täuschen, was beim derzeitigen Stand der technologischen Entwicklung unwahrscheinlich ist.

Für die Mehrheit der Netznutzer ist der Begriff „Blockchain“ eindeutig mit Bitcoin verbunden. Diese beiden Konzepte sind bei weitem nicht dasselbe, obwohl sie eng miteinander verbunden sind – eine Blockchain-Technologie wurde entwickelt, um Bitcoin zu unterstützen. Niemand kann den Umsatz kontrollieren, und die Eröffnung einer Bitcoin-Wallet ist viel einfacher als bei einem Bankkonto. Heute kann man mit diesem geheimnisvollen Geld alles im Internet kaufen, was man will. Die Nutzer des Netzwerks schätzen die Anonymität und Transparenz dieser Kryptowährung sehr. Neben Bitcoin gibt es noch weitere Beispiele für blockbasierte Kryptowährungen, zum Beispiel Ethereum, das von den Besitzern kleiner privater Blockchains geschätzt wird.

Die Vorteile der Blockchain-Technologie machen sie in Lebensbereichen wie dem Bankwesen, der Medizin, der Logistik, dem Recht oder der Musik zu einem gefragten Instrument. Betrachten wir als Beispiel die Musiker. Leider geht bei dem traditionellen System der Musikveröffentlichung der Großteil der Einnahmen an die Labels, und die Komponisten erhalten nur ein paar Krümel. Der Einsatz von Blockchains im Musikgeschäft könnte es dem Urheber eines Liedes ermöglichen, es zum freien Anhören zu veröffentlichen und gleichzeitig Verträge mit Leuten abzuschließen, die es für private Zwecke nutzen, zum Beispiel in einer Fernsehserie.

Die Blockchain-Technologie ermöglicht es, in vielen Bereichen auf Zwischenhändler zu verzichten und verschiedene P2P-Operationen direkt zwischen den beiden Seiten durchzuführen. Dies ist zum Beispiel für diejenigen von Vorteil, die eine Fachkraft, z. B. ein Kindermädchen, einen Fahrer oder einen Anwalt, ohne die Hilfe von Vermittlungsagenturen einstellen wollen. In diesem Fall müssen Sie nicht zu viel bezahlen!

Aber es ist unwahrscheinlich, dass die rasante Entwicklung dieser Technologie die großen Unternehmen, die ihr Vermögen mit der Vermittlung gemacht haben, ansprechen kann. Wer sind sie, diese Vermittler? Es gibt Tausende von ihnen, einige der bekanntesten sind Uber und Airbnb.

Die Arten von Blockchain

Es gibt zwei Haupttypen der Blockchain-Organisation: privat und öffentlich.

Bei einer privaten Blockchain erfolgt die Erstellung von Blöcken zentral. Nur die vertrauenswürdigen Knotenpunkte können Blöcke hinzufügen. Jeder Außenstehende, der dies überprüfen möchte, kann den Verlauf der Kette überprüfen und sehen, wie sie sich verändert. Private Blockchains können die Funktionalität leicht aktualisieren, d. h. das System von der Unternehmensseite aus überwachen.

Bei einer öffentlichen Blockchain kann jeder Nutzer, der die Möglichkeit hat, Transaktionen durchzuführen, alles darüber lesen. In diesem Fall werden die Transaktionen durch einen Verifizierungsmechanismus geschützt. Alle Mitglieder des Netzwerks, wie normale Nutzer, Entwickler usw., können öffentliche Blockchains kontrollieren. Schädliche Änderungen werden durch die Aktualisierung der Protokolle verhindert. Folglich schafft das System dezentralisierte Anwendungen.

Arbeitserfahrung mit einer Blockchain

Für unser Team war es also interessant, diese innovative Technologie in der Praxis auszuprobieren. Die größte Herausforderung bestand darin, die Technologie so einfach und schnell wie möglich zu implementieren.

Aufgabe: Erstellen Sie eine Umfrage auf mobilen Geräten unter Verwendung der Blockchain-Technologie.

Für diese Aufgabe haben wir uns für die Verwendung einer privaten Blockchain entschieden. Das Kontrollzentrum wurde als Backend auf Node.js implementiert.
Der erste logische Schritt ist die Erstellung einer Blockstruktur.

Was wir brauchen: aktueller Hash, ein Hash des vorherigen Blocks, Blockindex (Nummer), Daten, die die Frage- und Antwortoptionen enthalten, Benutzerantwort, Zeit, Benutzerdaten.

blockchain

Blockstruktur

Der Hash soll die Integrität der Kette bewahren, daher sollte jeder Block gehasht werden.

Zur Verschlüsselung verwenden wir SHA256. Ein Server speichert die Kette, die jederzeit auf ihre Integrität überprüft werden muss. Dies ist notwendig, wenn ein Block hinzugefügt wird. Wir überprüfen die Integrität des vorherigen Hashes, wie im Schema dargestellt. Es muss immer die längste Kette gewählt werden, um Konflikte zu vermeiden. Wenn ein Block die Prüfung besteht, wird er der Kette hinzugefügt. Andernfalls tritt ein Fehler auf.

Der zweite wichtige Punkt ist die Organisation der Synchronisation und des Broadcasting zwischen allen Teilnehmern der Abstimmung.

  • Wenn sich ein Benutzer über einen Websocket mit dem Netzwerk verbindet, stützt er sich auf den letzten Block
  • Wenn Sie einen neuen Block erstellen, wird dieser an das Netzwerk übertragen
  • Wenn ein Knoten einen Block sieht, fügt er einen Block zu seiner Kette hinzu. Oder er unterstützt die Kette, um den Block zu füllen, vorausgesetzt, sein Index ist größer als der des aktuellen Blocks

blockchain

Einige typische Kommunikationsszenarien, die sich ergeben, wenn die Knoten das beschriebene Protokoll befolgen

Der Server kann die Kette einsehen, einen neuen Block mit einer benutzerdefinierten Antwort erstellen und den Rest der Benutzer einsehen.

blockchain

Die Hauptkomponenten von NativeChain

Auf diese einfache und schnelle Weise haben wir die Abstimmung innerhalb des Unternehmens implementiert, aber es stellte sich die Frage, ob jeder Benutzer unbegrenzt oft abstimmen konnte. Die Lösung für dieses Problem bestand darin, jedem Benutzer eine eindeutige ID zuzuweisen. Hilfe kam von Google Firebase, das eine einfache Autorisierung für Ihre Anwendung ermöglicht. Diese Plattform unterstützt die Autorisierung in sozialen Netzwerken. Im Ergebnis speichert die Kette die IDs der Nutzer, die abgestimmt haben, wodurch wiederholte Abstimmungen vermieden werden.

Zu Informationszwecken haben wir einen Prototyp erstellt. Einer der angeblichen Vorteile einer Blockchain ist die Dezentralisierung, aber es schien keine endgültige Lösung zu sein, also beschlossen wir, sie zu testen. Der Vorteil, dass jeder Teilnehmer eine Kette von Änderungen aufbewahrt (oder speichern kann), ist zwar unbestreitbar, kann aber dennoch überlistet werden, worauf wir später noch eingehen werden.

Dezentralisierung

Damit ein neuer Block in die Kette aufgenommen werden kann, muss er durch Überprüfung des vorherigen Hashes validiert werden. Die Validierung erfolgt anhand des Protokolls. Das Protokoll wird vom Verfasser des Vertrags (dem Anfang der Kette/dem ersten Block) erstellt.

Stellen Sie sich vor, es gibt 21 Schüler in der Klasse (10 Mädchen und 11 Jungen), und am 1. September beschließen sie, den Schulsprecher mithilfe einer Blockchain zu wählen. Ein Klassenlehrer erstellt einen Vertrag, in unserem Fall, startet eine Abstimmung für die Kandidaten, und gemäß dem Protokoll wird der neue Block als gültig betrachtet, wenn 51 % der Wähler eine positive Antwort geben. Die Schüler beginnen mit der Abstimmung, und irgendwann beschließen die Jungen, die Ergebnisse der Abstimmung zugunsten ihres Kandidaten zu fälschen. Zum Zeitpunkt dieser Entscheidung haben 8 Jungen, 6 Mädchen und der Klassenlehrer gewählt. Die Jungen sind sich darüber im Klaren, dass sie entweder bei der Abstimmung verlieren oder mit fairen Mitteln höchstens 50 % erreichen. Sie beschließen, die Kette ab dem zweiten Block so zu verändern, dass 15 Blöcke durch völlig andere Werte ersetzt werden (zu ihren Gunsten). Das siebte Mädchen wird, wenn es seine Stimme abgibt, die Validierung der Kette bestehen, und im Gegenzug werden 8 Jungen ihren Block nicht validieren. Und sie wird eine neue Kette verwenden müssen, und die Eigenschaft der Blockchain ist, dass in einer Konfliktsituation eine gültige Kette die längste ist. Somit werden die Jungen mit ihrem Kandidaten gewinnen.

blockchain

Beispiel für die Auswahl einer Kette mit der höchsten Anzahl von Blöcke

Der Vorteil der Blockchain ist jedoch, dass man, um die Kette zu verändern, die Mehrheit der Nutzer dazu bringen muss, ihre Meinung zu ändern (oder die im Protokoll festgelegte Quote).

Ein Beispiel: Joe möchte Schulpräsident werden, und die Wahl findet auf die übliche Weise statt, wobei die gesamte Datenbank auf einem separaten Server gespeichert ist. Joe bittet seinen Bruder, den Programmierer, ihm dabei zu helfen. Also hackt sein Bruder den Server und ändert das Ergebnis. Joe wird zum Schulpräsidenten.

Wenn eine Blockchain verwendet würde, müsste Joe die anderen Jungen bitten, ihm dabei zu helfen. Und wenn sie sich weigerten, würde Joe niemals Schulpräsident werden.

Fazit

Nach dem Einsatz dieser Technologie sind wir zu dem Schluss gekommen, dass die Blockchain eine Menge Tücken hat. Wie bei jedem System sollten die Regeln für alle Teilnehmer festgelegt werden. Die Einführung der Technologie erfordert eine groß angelegte Umstrukturierung eines großen Systems mit vielen Teilnehmern, und jeder von ihnen sollte bereit sein, Risiken einzugehen und Kosten zu tragen.

Das Fehlen eines Rechtsrahmens führt zu Unsicherheiten in einer Reihe von Fragen. Damit die Technologie Vertrauen gewinnen kann, muss sie den (z. B. öffentlichen) Normen entsprechen. Keine Normen – keine Korrespondenz. Trotz der Dezentralisierung und der Abwesenheit von „Dritten“, die der Blockchain zugeschrieben werden, erfordert das Funktionieren des Systems in vielen Fragen den Konsens der Teilnehmer. Jedes Blockchain-Projekt sollte von Anfang an ein System zur Entscheidungsfindung entwickeln, das die Zustimmung der Mehrheit erfordert.

Über Redwerk

Redwerk ist ein Team von zertifizierten Experten, die hochwertige IT-Outsourcing-Dienstleistungen für Unternehmen bereitstellen, die ein robustes, stabiles und beeindruckendes Produkt anstreben. Redwerk ist ein Unternehmen für kundenspezifische Softwareentwicklung, das Meister ihres Fachs mit einem proaktiven Ansatz engagiert, um genau das zu liefern, was der Kunde benötigt. Wir wissen diejenigen zu schätzen, die uns vertrauen, also seien Sie derjenige!

Referenzen