Die Geschichte der Neo Blockchain. Laut eigener Website ist Neo ein "Non-Profit-Community" Blockchain-Projekt. Hier soll die Blockchain-Technologie und digitale Identitäten genutzt werden um Assets zu digitalisieren, die Verwaltung von Smart Contracts zu automatisieren und eine "intelligente Wirtschaft mit einem verteilten Netzwerk" zu realisieren.
Das Hauptziel von Neo ist es, ein verteiltes Netzwerk für die sogenannte "Smart Economy" zu werden.
Auf der Webiste von Neo ist folgendes zu lesen:
Digital Assets + Digital Identity + Smart Contract = Smart Economy.
Neo wurde von der in Shanghai ansässigen Blockchain R&D Firma "OnChain" entwickelt. OnChain wurde von dem CEO Da Hongfei und CTO Erik Zhang gegründet. Die Forschung zu Neo begann bereits im Jahr 2014. OnChain wurde 2016 von KPMG unter den Top 50 Fintech Firmen in China gelistet.
Das Projekt Neo wurde durch zwei Crowdsales finanziert. Der erste Crowdsale fand im Oktober 2015 statt und dauerte 20 Tage. In dieser Zeit wurden 17,5 Millionen NEO-Token für 550.000 US-Dollar verkauft. Im zweiten Crowdsale wurden die verbleibenden 22,5 Millionen NEO-Token für 4,5 Millionen US-Dollar verkauft!
Laut der Website von Neo, sind es diese drei Komponenten die eine Smart Economy ausmachen:
Ein digitales Asset ist alles was im Binärformat (Computerdatei) existiert und das Recht auf eine Nutzung hat. Es ist für ein "digitales Etwas" von entscheidender Bedeutung, dass es dieses Nutzungsrecht besitzt, um sich als digitales Asset zu qualifizieren. Obwohl es möglich ist digitale Assets in einer zentralisierten Umgebung zu haben, ist dies äußerst riskant.
Mit dem Aufkommen der Blockchain ist der Besitzt digitaler Assets um einiges sicherer geworden. Die Blockchain macht die Digitalisierung der Vermögenswerte denzentral, sicher, vertrauenswürdig und macht Dritte überflüssig.
Es gibt zwei verschiedene Formen digitaler Assets, welche in NEO verwendet werden können:
Globale Vermögenswerte werden vom gesamten System erkannt und können von allen Smart Contracts und Clients identifiziert werden.
Vertragsgegenstände sind Vermögenswerte welche nur in ihren spezifischen Verträgen erfasst werden und werden nicht in anderen Verträgen verwendet. Der GNT-Token (Golem) kann z.B. nur in Golem, jedoch nicht in Bancor verwendet werden.
Auf der englischen Wikipedia wird die digitale Identität (frei übersetzt) wie folgt beschrieben:
Eine digitale Identität sind Information über eine Entität, die von Computersystemen verwendet wird, um einen externen Agenten darzustellen. Dieser Agent kann eine Person, Organisation, Anwendung oder Gerät sein. ISO / IEC 24760-1 definiert Identität als "Menge von Attributen, die sich auf eine Entität beziehen".
Damit die Digitalisierung von Vermögenswerten funktioniert, ist es wichtig, vertrauenswürdige digitale Identitäten zu haben.
Die NEO Plattfromen verwenden den digitalen X.509 Identitätstandard. Dieser ist das am weitesten verbreitete Modell für die Ausgabe von digitalen Zertifikaten, welche auf Public-Key-Infrastruktur basiert. Zusammen mit dem X.509 Standard wird auch der Ausgabe-Modus für die point-to-point Zertifizierung des Web of Trust unterstütz.
Die Identitätsprüfung erfolgt bei NEO durch:
Smart Contracts sind automatisierte Verträge. Sie führen sich mit spezifischen Anweisungen von selbst aus, wenn bestimmte Bedingungen erfüllt sind.
Im folgenden Leitfaden kannst du noch mehr über Smart Contracts erfahren.
Was sind also die wünschenswerten Eigenschaften, die wir in unserem Smart Contract haben wollen?
Alles was auf einer Blockchain läuft muss unveränderbar sein, dabei muss es die Fähigkeit haben mehrere Nodes (Knotenpunkte im Netzwerk) zu durchlaufen, ohne die Integrität zu beeinträchtigen. Daher braucht die Funktionalität von Smart Contracs drei Dinge:
Ein Programm ist deterministisch, wenn es jedes Mal den selben Output bei einen gegebenen Input gibt. Wenn 3 + 1 = 4 dann ist 3 + 1 IMMER 4 (wenn die selben Grundlage vorhande ist). Wenn ein Programm also die selbe Ausgabe für die gleiche Menge an Eingaben, in verschiedenen Computern liefert, dann ist es deterministisch.
Es gibt jedoch variable Momente in denen ein Programm nicht deterministisch handeln kann:
In der mathematischen Logik haben wir einen Fehler namens "Halteproblem". Grundsätzlich besagt dies, dass man nicht wissen kann, ob ein bestimmtes Programm seine Funktion in einem bestimmten Zeitlimit ausführen kann. 1936 leitete Alan Turing mit dem Cantor Diagonal Problem ab, dass es keine Möglichkeit gibt zu wissen, ob ein bestimmtes Programm eine Aufgabe in einem Zeitlimit beenden kann.
Dies ist jedoch ein Problem für Smart Contracts. Verträge müssen definitionsgemäß in der Lage sein, innerhalb eines bestimmten Zeitraums zu enden. Es gibt einige Maßnahmen, um sicherzustellen, dass man von außen Verträge "löschen" kann, damit diese sich nicht in einer endlosen Schleife wiederholen, was die Ressourcen belasten würde.
In einer Blockchain kann jeder einen Smart Contract hochladen. Daher können Verträge wissentlich und unwissentlich Viren und Fehler enthalten. Wenn der Vertrag nicht isoliert ist, kann dies das gesamte System behindern. Daher ist es wichtig, dass ein Vertrag isoliert gehalten wird, um das gesamte Ökosystem vor negativen Auswirkungen zu schützen.
Da wir nun die verschiedenen Eigenschaften angesehen haben, ist es wichtig zu wissen wie diese ausgeführt werden. Normalerweise werden Smart Contracts mit einem der folgenden Systemen ausgeführt.
Vergleichen wir nun die beiden Systeme, und gucken welches für ein besseres Ökosystem sorgt.
Der Einfachheit halber vergleichen wir Ethereum (virtuelle Maschine) mit Fabric (Docker):
Wie man sieht, bieten virtuelle Maschinen eine bessere deterministische, terminierbare und isolierte Umgebung für die Smart Contracts. Docker hat jedoch einen entscheidenden Vorteil. Es bietet Flexibilität in der Programmiersprache.
In einer virtuellen Maschine (VM) wie Ethereum muss man eine völlig neue Sprache (Solidity) lernen, um Smart Contracts zu erstellen.
Die Neo-Entwickler wollten eine virtuelle Maschine erschaffen, die alle Vorteile einer VM bietet und außerdem die Code-Flexibilität eines Dockers bietet.
Die Lösung von Neo war das Smart Contract 2.0-System, welches Neo extrem attraktiv und gefragt macht. Dies wird später im Artikel erörtert.
Ähnlichkeiten mit Ethereum
In diesem Artikel werden wir öfter Neo mit Ethereum vergleichen. Sehen wir uns doch die Ähnlichkeiten zwischen beiden mal an.
Zweifellos gibt es zwischen Ethereum und Neo Ähnlichkeiten, aber was Neo so interessant macht, sind seine Eigenschaften die ihn von Ethereum unterscheiden. Diese Eigenschaften gaben NEO den Spitznamen "Ethereum Killer".
Das Ökosystem von Neo besitzt zwei Token
Ein NEO Token gibt dem Inhaber Verwaltungs- und Entscheidungsrechte innerhalb des NEO Netzwerks. Diese Rechte umfassen die Buchhaltung, NEO-Netzwerkparameteränderungen und vieles mehr.
Der NEO-Token kann nicht in Dezimalzahlen unterteilt werden, so ist die kleinste Einheit 1.
Die 100 Millionen NEO Token wurden in zwei Portionen aufgeteilt. Der erste Teil von 50 Millionen Token wurde während des ICOs verteilt.
Der zweite Teil (weitere 50 Millionen NEOs), wurde für ein Jahr gesperrt (bis 16. Oktober 2017). Diese sollen für langfristiges Wachstum und Unterstützung von NEO-Projekten, sowie für die langfristige Entwicklung, für den Betrieb und die Wartung des NEO-Ökosystems verwendet werden. Die Pläne für diese 50 Millionen Tokens sind wie folgt:
Wenn NEO der Token ist, welcher Stimm- und Entscheidungsrechte in der Gemeinschaft darstellt, dann ist GAS das, was die Smart Contracts laufen lässt und Aufgaben erledigt. GAS ist wie der Name vermuten lässt der Treibstoff des Netzwerks. GAS ist, die Währung welche innerhalb des Ökosystems ausgetauscht wird. GAS wird verschiedene Projekte innerhalb des NEO-Netzwerks wirtschaftlich anregen.
Ähnlich wie NEO gibt es ein Gesamtlimit von 100 Millionen GAS Tokens. GAS ist aber im Gegensatz zu NEO teilbar. Die kleinste Einheit von GAS beträgt 0,00000001.
Es gibt einen weiteren wichtigen Unterschied zwischen den beiden.
Die 100 Millionen NEOs wurden bereits im Genisisblock (Entstehungsblock), d. H. Im ersten Block der Blockchain, des NEO-Netzwerks erzeugt. Die 100 Millionen GAS wurden dabei noch nicht generiert. Sie werden entsprechend dem 100 Millionen NEO über einen Zerfallsalgorithmus in etwa 22 Jahren an die Adresse der NEO Token generiert und gesendet. Wenn der NEO an eine neue Adresse übertragen wird, wird das generierte GAS der neuen Adresse gutgeschrieben.
2 Millionen Blöcke werden jedes Jahr mit einer Ausfallzeit von etwa 15-20 Sekunden zwischen den aufeinanderfolgenden Blöcken generiert. Die anfängliche GAS Porduktion wird 8 GAS pro Block betragen und dies wird um 1 GAS pro Jahr (oder um 1 GAS pro 2 Millionen Blöcke) reduziert, bis nur noch 1 GAS pro Block produziert wird. Im 44-millionsten Block wird die gesamte erzeugte GAS Menge 100 Millionen erreichen, danach wird es keine GAS-Produktion mehr geben.
Laut dem Algorithmus:
Die GAS Token werden anteilig, entsprechend dem NEO-Holding-Verhältnis an die entsprechenden Adressen freigegeben. NEO-Inhaber können diese GAS-Token jederzeit anfordern. Hier findest du ein Tool, mit dem Du berechnen kannst wie viel GAS dir, entsprechend der gehaltenen NEO-Menge, zusteht.
Um eine bessere Benutzererfahrung zu schaffen, wird das NEO-Netzwerk eine Abstimmung abhalten und einen Schwellenwert festlegen, um GAS von bestimmten von Übertragungstransaktionen und Smart Contract Operationen freizustellen.
Wenn eine große Anzahl von Spam-Transaktionen auftritt, können Benutzer mit NeoID ihre Transaktionen und Smart-Verträge priorisiert gegenüber den der Anderen ausführen. Wenn Sie jedoch keine NeoID haben, können Transaktionen dadurch priorisiert werden, indem man mehr GAS zahlt.
Eine der größten Herausforderungen für die meisten verteilten Systeme besteht darin einen Konsens zu schaffen. Dieses Problem wird gewöhnlich als "Problem des byzantinischen Generals" bezeichnet (byzantinischer Fehler).
Was ist denn das Problem des byzantinischen Generals?
Stell dir vor es gibt eine Gruppe byzantinischer Generäle, die eine Stadt angreifen wollen. Sie stehen nun vor zwei sehr unterschiedlichen Problemen:
Um eine erfolgreiche Koordination zu gewährleisten, senden die Armeen links von der Burg einen Boten zu den Armeen auf der rechten Seite mit der Nachricht "ANGRIFF AM MITTWOCH".
Angenommen, die Armeen auf der rechten Seite sind noch nicht auf den Angriff vorbereitet und sagen: "NEIN. ANGRIFF AM FREITAG ". Nun senden sie den Boten durch die Stadt zurück zu den Armeen auf der linken Seite. Hier stehen wir vor einem Problem.
Dem Boten kann auf dem Weg zur linken Seite eine Menge passieren. Er konnte gefangen genommen werden, bestochen, getötet und durch einen anderen Boten der Stadt ersetzt werden. Dies würde dazu führen, dass die Armeen auf der linken Seite manipulierte Informationen erhält, was wiederum zu einem unkoordinierten Angriff und zu einer Niederlage führen könnte.
Dem selben Problem muss sich auch die Blockchain stellen. Die Block-Kette ist ein riesiges Netzwerk: Wie kannst du Ihr vertrauen? Wenn Sie jemand 4 Ether aus ihrem Wallet schicken, wie können Sie sich sicher sein, dass niemand im Netzwerk die Transaktion manipuliert und aus 4 Ether 40 Ether macht?
Satoshi Nakamoto, der Erfinder von Bitcoin, konnte das Problem des byzantinischen Generals umgehen, indem er das "Proof of Work" Protokoll erfand.
Und sofunktioniert es: Die Armee auf der linken Seite möchte der Armee auf der rechten Seite eine Nachricht mit dem Inhalt "ANGRIFF AM MONATG" senden, dabei müssen sie bestimmte Schritte befolgen.
Dies ist das Proof-of-Work-Protokoll, welches von Bitcoin und Ethereum (zum Zeitpunkt wo ich diesen Artikel schreibe) verwendet wird. Das Problem dabei ist, dass das Proof-of-Work Verfahren äußerst verschwenderisch und ineffizient ist. Es gibt natürlich mehr Konsensmechanismen. Ethereum plant durch die Implementierung von Casper zu Proof of Stake zu wechseln.
Neo hat sich entschieden ein interessantes System von Konsensmechanismen zu verwenden. Sie glauben, dass es ihnen helfen wird die Blockchain besser zu skalieren. Der Mechanismus heißt delegierte byzantinische Fehlertoleranz kurz dBFT. Schauen wir mal wie dieser funktioniert.
Stellen dir vor es gibt ein Land "Kryptofreaks", dieses Land hat viele Einwohner. Jeder dieser Einwohner wählt einen Delegierten um ihn zu vertreten. Die Aufgabe dieser Delegierten ist es Gesetze zu verabschieden und die die Einwohner glücklich machen. Wenn die Deligierten nicht gut in ihrem Job sind, können die Bürger das nächste Mal für einen anderen Delegierten stimmen.
Wie verabschieden die Delegierten Gesetze?
Einer der Delegierten wird mit dem Zufallsprinzip als Sprecher gewählt.
Der Sprecher betrachtet alle Forderungen der Bürger und schafft danach ein Gesetz. Dann wird der "Glücksfaktor" für diese Gesetze berechnet, um zu sehen, ob es ausreicht um die Bedürfnisse der Bürger zu befriedigen. Sie geben das Ergebnis dann an die Delegierten weiter.
Die Delegierten überprüfen individuell die Berechnungen des Sprechers. Wenn die Nummer des Sprechers mit der des Delegierten übereinstimmt, geben sie ihre Zustimmung, wenn nicht, kommt es zur Ablehnung.
66% der Delegierten müssen ihre Zustimmung geben, damit ein Gesetz verabschiedet werden kann. Wenn die Mehrheit dagegen ist, wird ein neuer Führer gewählt und der Prozess beginnt von neuem.
Wie funktioniert das in der Blockchain?
Die Bürger sind diejenigen, die NEO-Token bzw. normale Nodes besitzen.
Delegierte sind die Buchhaltungsnodes. Um ein Buchhaltungsnode zu sein, muss man eine bestimmte Anzahl von Qualifikationen erfüllen: Spezielle Equipment, dauerhafte Internetverbindungen und eine bestimmte Menge an GAS (1000 gemäß dem Artikel von basiccrypto).
Jetzt gibt es zwei Fälle, in denen einer der Teilnehmer böswillig handeln kann:
Fall Nr. 1: der Sprecher ist bösartig
In diesem Fall hat der Sprecher eine falsche Nachricht (B) an zwei Delegierte und eine richtige Nachricht an einen Deligierten gesendet. Dieses Szenario kann aufgrund der Mehrheitsregel leicht verhindert werden. Die zwei Delegierten werden erkennen, dass ihr Hash nicht mit dem des Sprechers übereinstimmt, während ein weiterer Delegierter erkennt, dass der Hash perfekt zusammenpasst. Zwei von Drei werden den Vorschlag jedoch ablehnen wodurch der Konsens nicht erreicht wird. Der Sprecher wird künftig entfernt.
Der Sprecher sendet die korrekte Nachricht an alle Delegierten. Einer der Delegierten beschließt jedoch böswillig zu handeln und erklärt, dass seine Zahlen nicht mit dem des Sprechers übereinstimmt. Da jedoch zwei der drei Delegierten nicht böswillig handeln, werden sie das "Gesetz" des Sprechers verabschieden, nachdem ein Konsens von 66% erreicht wurde.
Wie man sieht, bietet dBFT eine sehr interessante Form des Konsensmechanismus.
Wie bereits erwähnt, war es das Ziel von Neo, alle Vorteile einer virtuellen Maschine zusammen mit der Flexibilität von Programmiersprachen zu kombinieren. Mal sehen ob sie das geschafft haben.
Neos Smart Contract System besteht aus drei Teilen:
Dies ist eine bildliche Darstellung der Neo Virtual Machine:
(Quelle: NEO Whitepaper)
Laut dem Neo-Whitepaper handelt es sich bei der NeoVM oder Neo Virtual Machine um eine leichte VM für allgemeine Zwecke. Die Architektur ähnelt stark der JVM- und .NET-Laufzeit. Es ist mit einer virtuellen CPU vergleichbar, welche Anweisungen im Vertrag sequentiell ausliest und ausführt. Sie führt die Prozesssteuerung basierend auf der Funktionalität der Befehlsoperationen, logischen Operationen und so weiter durch. Sie ist vielseitig mit einer guten Start-up-Geschwindigkeit, was NEO zu einer großartigen Umgebung für Smart Contracts macht.
Der InteropService erhöht den Nutzen der Smart Contracts. Er ermöglicht den Verträgen, auf Daten außerhalb des NeoVM zuzugreifen, ohne die allgemeine Stabilität und Effizienz des Systems zu beeinträchtigen.
Derzeit bietet der interoperable Service einige APIs für den Zugriff auf Chain-Chain-Daten der Smart Contracts. Die Daten auf die zugegriffen werden kann sind unter anderen:
Darüber hinaus bietet es auch Speicherplatz für intelligente Verträge.
Aus Jeremylqes Artikel von "Neo Wiki".
NeoX: Ermöglicht die cross-chain Interoperabilität.
NeoFS: Es ist ein Dateispeicherprotokoll welches verteilte Hashtabellen-Technologie verwendet. Es registriert die Datei, indem es den Hash des Inhalts anstelle des Dateipfads verwendet. Große Dateien werden in Datenblöcke fester Größe unterteilt und in verschiedenen Nodes verteilt und gespeichert. (Vereinfacht gesagt ist ein Node ein Server, der die gesamte Blockchain einer Kryptowährung heruntergeladen hat und dauerhaft online ist, um diese vorzuzeigen).
NeoQS: NeoQS (Quantum Safe) ist ein gitterbasierter kryptographischer Mechanismus. Quantum Computing stellt eine echte Bedrohung für kryptographische Systeme dar, die auf RSA und ECC basieren. Dies bedeutet, dass Ethereum und Bitcoin, die beide ECC verwenden, potenziell von Quantencomputern gehackt werden können. Neo möchte dieses Problem über NeoQS angehen.
Neo kann mittlerweile auf so gut wie jeder Börse für kryptische Währung gehandelt werden. UpBit und Binance gehören aktuell zu den größten.
Neo Wallets und Lagerungsmöglichkeiten findest du hier:
Hardware wallet: Ledger Nano S.
Desktop wallet: NEON.
Web wallet: Neo tracker.
Paper Wallet: Ansy.
Wie sieht die Zukunft für den "Ethereum Killer" aus?
Es ist noch zu früh um zu sagen zu können ob NEO dem Namen "Ethereum Killer" gerecht werden kann. Der größte Vorteil gegenüber Ethereum sind die relativ geringen Eintrittsbarrieren, da die Entwickler keine neue Programmiersprache lernen müssen, um Smart Contracts zu erstellen. Inwiefern NEO in Zukunft Anwendnung findet bleibt ofen. Allerdings unterstützt Neo die chinesische Regierung und bekannte Größen wie WINGS und Alibaba.
Ich bin mir nicht sicher ob NEO Ethereum "töten" wird, aber was ich weiss ist, dass NEO eine erstaunliche Plattform für Entwickler bietet, um die sich ständig ausbreitende Kryptowelle zu erweitern.
Was denkst du?