Modul #2 Web 3.0 mit Waves

Marc Jansen
Web3 mit Waves Platform
13 min readJul 14, 2019

Modul #2 Web 3.0, Dezentralisierung, Blockchain und Krypto.

Hey, herzlich willkommen im Online-Kurs “Beherrschen des Web3 mit Waves”. Heute sprechen wir über die grundlegenden Aspekte des Webs der Zukunft:

Entwicklung der Web-Technologie.

Grundprinzipien von Web3 die wir uns in diesem Teil anschauen werden sind: Digitale Signaturen, Distributed Ledger Technology (DLT), Blockchain und Kryptowährungen.

Wir werden die Waves Blockchain, ihren Konsensmechanismus und das Token-Utility genauer betrachten.

Und natürlich werden wir am Ende dieses Moduls die praktische Herausforderung der Programmierung meistern.

Los geht’s!

Inhaltsverzeichnis

2.0 Übersicht über den offenen Marktplatz “Coupon Bazaar”.

2.1 Probleme mit bestehenden Web 1/2-Architekturen. Die Kurzgeschichte der Webentwicklung;

2.2 Webservices jetzt und Web 3.0 Services. Digitale Signaturen;

2.3 Transaktionen. Blockchain. Dezentralisierung. DLT & Konsens. Testnetz/Mainnet;

2.4 Kryptowährung. Transparenz. Liquidität. Gateways. Exchanges;

2.5 Waves Token-Dienstprogramm. Gebühren.

2.6 Praxis: “Coupon Bazaar” mit dezentraler Datenspeicherung und Kryptozahlungen.

Viel Spaß!

Denken Sie daran, es ist ein praktischer Online-Kurs und wir bauen einen dezentralen Web3-Coupon-Marktplatz auf — “Coupon Bazaar”.

Die Nutzer suchen nach Rabatten auf Waren und Dienstleistungen und können diese auf der Plattform zu einem kleinen Preis kaufen.

Jeder Coupon — ist ein digitales Asset, das einen speziellen Rabatt von Lieferanten darstellt.

“Coupon Bazaar” ist ein Marktplatz. Dieser bietet ein Matching, Zahlungsvorgänge und Lieferservice zwischen Lieferanten und Kunden.

Cool! Aber was ist falsch an den heutigen Webservices? Schauen wir uns die Entwicklung des Internets an.

Am Anfang waren Webseiten für normale Benutzer meist “schreibgeschützt”. Große Unternehmen waren die wichtigsten Ersteller von Inhalten, und die Seiten selbst waren lediglich statisch.

Die Internetnutzung und -durchdringung wuchs sehr schnell. Und jetzt haben wir eine Menge benutzergenerierter Inhalte. Das Internet wurde zum “read” und “write” Web. Die Seiten wurden dynamisch und interaktiv.

Aber was kommt als nächstes? Wir sehen, dass das Internet immer intelligenter wird. Es gibt viele Benutzer, ihre Kommunikation, ihre Inhalte. Auch die Komplexität des Benutzerverhaltens nimmt dramatisch zu. Und das verstärkt sich auch durch die Integration moderner Technologien in das Web wie das Internet der Dinge, Künstliche Intelligenz, BigData, Virtual und Augmented Reality.

Um diese Komplexität zu bewältigen, sollte das Internet dezentraler, sicherer und benutzerorientierter werden.

Mal sehen, wie es aussehen könnte!

Die traditionellen Webapplikationen haben “Server” und “Client” Teile. Wenn ein Benutzer die Seite in seinem Browser öffnet, antwortet der Server mit statischen Inhalten der Webseite, HTML, Assets (wie Bilder und Schriften) und JavaScript-Code.

Wenn ein Benutzer mit Benutzeroberflächenkomponenten einer Webseite interagiert, z. B. Schaltflächen und Formularen, erstellt der JavaScript-Code neue Anfragen an den Server, um mehr Daten vom Server zu erhalten, oder Daten in der Datenbank des Servers abzulegen.

Nach der Verarbeitung dieser Anforderung gibt der Server häufig eine Antwort als JSON-Format zurück. Der Browser verwendet diese Daten, um den Status und die Ansicht einer Client-Anwendung zu ändern.

Das Web3 funktioniert etwas anders. Natürlich benötigt die Web3-App auch HTML- und JavaScript-Code, um sie im Browser auszuführen. Dazu wird aber noch der Server mit dem Client-Anwendungscode benötigt.

Wenn ein Benutzer mit der Client-Anwendung interagiert, wird die Anforderung “Lesen” erstellt. Diese Anforderung wird vom Knoten einer Distributed Ledger — Blockchain Network bearbeitet. Der Hauptunterschied besteht darin, dass diese Daten von jedem gelesen werden können. Es ist öffentlich für populär offene und verteilte Ledger.

Der wichtigste Moment ist: wie man neue Informationen in das Blockchain-Netzwerk schreibt. Hier haben wir den Begriff der Transaktion und eine digitale Signatur.

Alle Updates im Blockchain-Netzwerk müssen durch die Übertragung von Transaktionen erfolgen, was eine digitale Signatur des Initiators der Transaktion erfordert.

Was ist eine digitale Signatur?

Stellen Sie sich vor: Bob hat zwei Schlüssel erstellt, den privaten Schlüssel und den öffentlichen Schlüssel. Diese Schlüssel sind durch eine mathematische Formel verbunden, so dass wir für jeden öffentlichen Schlüssel nur einen privaten Schlüssel haben und umgekehrt.

Wenn Bob eine Nachricht oder Transaktion erstellt, kann er sie mit seinem privaten Schlüssel signieren. Bob muss den privaten Schlüssel geheim halten. Aber Bob kann den öffentlichen Schlüssel an jeden weitergeben, der die signierte Nachricht oder Transaktion validieren soll. Jeder, der den öffentlichen Schlüssel von Bob besitzt, kann überprüfen, ob eine bestimmte Transaktion mit dem privaten Schlüssel von Bob signiert wurde. Das bedeutet also, dass nur Bob in der Lage war, diese zu erstellen und zu signieren.

Im Allgemeinen wird dies als asymmetrische Kryptographie bezeichnet. Öffentliche und private Schlüssel werden durch eine mathematische Formel verbunden, so dass wir für jeden öffentlichen Schlüssel nur einen privaten Schlüssel haben und umgekehrt.

Hier kommt der Clue:

Der private Schlüssel kann aus einer beliebigen Seed-Phrase mit Hilfe von Hashing-Funktionen generiert werden. Ein öffentlicher Schlüssel wird aus einem privaten Schlüssel durch Multiplikation von Punkten auf elliptischen Kurven erhalten. Eine Netzwerkadresse wird aus dem öffentlichen Schlüssel durch Hashing-Funktionen gewonnen.

All diese Transformationen sind nur in eine Richtung möglich. Die Gegenrichtung ist in Bezug auf die erforderlichen Berechnungen sehr schwierig, in astronomischen Größenordnungen (~²²⁵⁶)!

Die Seed-Phrase und der private Schlüssel müssen sicher aufbewahrt werden. Gleichzeitig sollte die Bedienung der Applikation zur Signierung von Transaktionen aber auch einfach sein. Die Hauptsoftware für das Web ist ein Webbrowser, so dass eine der besten Lösungen darin besteht, Seed und Schlüssel in Browser-Erweiterungsanwendungen zu speichern.

Waves Keeper ist eine Browser-Erweiterung, die in der Lage ist, Schlüssel sicher und einfach zu halten und Transaktionen auf Websites von Drittanbietern zu signieren.

Viel Spaß!

Lassen Sie uns genauer auf die Definitionen eingehen.

Was ist eine Transaktion? Die Blockchain-Transaktion ist ein neuer Datensatz mit einigen Pflicht- und Optionsfeldern. Jeder neue Datensatz ändert den Zustand des Blockchain-Netzwerks. Es passiert reversibel oder irreversibel, abhängig vom Stadium der Transaktion, dem Status der Blockvalidierung und den Infrastrukturbedingungen.

Zum Beispiel: Die Transaktion für die Übertragung von Assets enthält einen Zeitstempel, eine Blocknummer, einen Sender, einen Empfänger, einen Betrag und eine Transaktionsgebühr.

Die Waves Blockchain unterstützt viele verschiedene Arten von Transaktionen auf der elementarsten Ebene.

Was ist eine Blockchain? Im Grunde ist sie nur eine Datenstruktur mit spezifischen Regeln: Mehrere Transaktionen werden zu einem Block zusammengefasst, jeder Block hat einen eindeutigen Hash-Wert, der durch Hashes aus jeder einzelnen Transaktion (im Format von Merkle Tree) repräsentiert wird.

Jeder Block enthält eine Hash-Zeichenkette des vorherigen Blocks. Die Reihenfolge der Blöcke ist eine Blockchain.

Diese Struktur schützt die zu ändernden Daten.

Wenn in Block A etwas geändert wird, sind alle nächsten Blöcke ungültig und müssen neu erstellt werden.

Wie wir sehen — das Umschreiben der Historie von Daten ein einer Blockchain ist ziemlich rechenintensiv.

Aber stellen wir uns vor, dass wir Hunderte und Tausende von Datenkopien auf verschiedenen Computern in verschiedenen Ländern und Kontinenten haben. Um die Historie zu ändern, müssen wir nun Blöcke für die Mehrheit der Kopien neu schreiben, was in Bezug auf die benötigten Rechenressourcen noch schwieriger ist.

Deshalb sagt man, dass die Blockchain in der Lage ist, Daten für immer unveränderlich zu halten.

Das Problem ist, dass verschiedene Maschinen in der Lage sind, verschiedene Blockchains zu erzeugen. Dieses Phänomen wird als Fork bezeichnet.

Um die gleichen Daten auf verschiedenen Maschinen zu speichern, müssen sich alle Beteiligten für jeden neuen Block einigen.

Die Netzwerkteilnehmer müssen entscheiden, wer für die neue Blockgeneration verantwortlich ist. Der nach dem Konsensverfahren ausgewählte Teilnehmer ist für die Erstellung des neuen Blocks verantwortlich. Es wird als Block Miner, Block Generator oder Block Produzent bezeichnet. Und der Prozess der Blockbildung wird als Mining bezeichnet.

Es gibt tatsächlich viele Arten von Konsensalgorithmen mit unterschiedlichen Vor- und Nachteilen.

Das erste klassische Konsensverfahren wird als Proof of Work (PoW) bezeichnet. Es wurde ursprünglich von Adam Back für ein E-Mail-Service-Projekt — Hashcash — entworfen. Hashcash ist ein Proof-of-Work-System zur Begrenzung von E-Mail-Spam und Denial-of-Service-Angriffen. Es basiert auf der Berechnung eines speziellen “nonce”-Wertes, bei dem der Hash aus ihm eine bestimmte Anzahl von Nullen hat. Alle Teilnehmer machen die gleichen zufälligen Permutationen, um den richtigen Wert zu finden.

Die Wahrscheinlichkeit, diesen Wert zu finden, hängt von der Rechenleistung ab. Es ist ein ziemlich teurer Konsensalgorithmus und nicht so effizient in Bezug auf Skalierbarkeit und Geschwindigkeit.

In 2008 hat ein anonymer Autor mit dem Spitznamen Satoshi Nakamoto vorgeschlagen, den Proof of Work für die neue digitale Währung Bitcoin zu verwenden.

Einer der beliebtesten Konsensverfahren ist heute der Delegierte Nachweis des Einsatzes (dPoS — delegated Proof-of-Stake). Alle Kryptowährungsinhaber stimmen für ihre Delegierten. Die Anzahl der Delegierten ist durch eine relativ kleine Anzahl begrenzt.

Nur ausgewählte Teilnehmer können einen neuen Block in einer vordefinierten Reihenfolge erstellen. Alle anderen Teilnehmer können nicht an der Blockerstellungsprozedur teilnehmen. Hierbei gibt es viele Fragen, ob es sich um eine echte Dezentralisierung handelt.

Die Waves Blockchain verwendet einen Leased Proof of Stake (LPoS) Konsens. Anstatt eine begrenzte Anzahl von Blockproduzenten auszuwählen, kann LPoS eine bestimmte Anzahl von Waves-Token an Knoten vermieten (nicht übertragen), denen Sie vertrauen. Die Wahrscheinlichkeit, ein Blockersteller zu sein, ist proportional zu einer Gesamtmenge der von den Knoten angezogenen Token.

WAVES Tokens die an einen Knoten geleast wurden, sind im Konto des Benutzers gesperrt und können nicht übertragen oder gehandelt werden. Dennoch bleiben die Token in der vollen Kontrolle des Kontoinhabers und die Leasingverträge können jederzeit gekündigt werden.

In beiden Konsensarten arbeiten die Knotenbesitzer in der Regel an der Popularisierung und der Attraktivität für die Nutzer, indem sie einige Social-Media-Aktivitäten anbieten oder Produkte für die Plattformgemeinschaft entwickeln.

Um mit einer Blockchain arbeiten zu können, benötigen Entwickler eine Testversion des Netzwerks. Die Waves Blockchain hat zwei Arten von öffentlichen Netzwerken, die Entwickler verwenden können:

TestNet und MainNet. MainNet — ist ein Netzwerk im Produktionsmodus. TestNet ist ein Netzwerk, um Produkte und dApps in einer Umgebung zu testen, die der Produktionsumgebung ähnlich ist, aber ohne finanzielle Risiken während des Testzeitraums.

Jede Aktion mit Blockchain-Netzwerk hat Kosten im nativen Plattform-Token — WAVES. Das Gleiche gilt für das TestNet. Aber es gibt einen kostenlosen TestNet WAVES Faucet, der für jeden zugänglich ist. Geben Sie einfach Ihre TestNet-Public-Adresse ein und übergeben Sie das Captcha und Sie erhalten kostenlose TestNet-Token zum Testen Ihrer Apps.

Lassen Sie uns ein wenig über die wirtschaftlichen Aspekte von Web3 sprechen.

Wie wir sehen können, hat die Entwicklung des Geldes mehrere wichtige Meilensteine:

  • Tauschhandel vor Geld
  • Gold und Silber
  • Metallmünzen
  • Papiergeld oder Banknoten
  • Plastikkarten
  • Elektronisches Geld
  • Und schließlich Kryptowährungen — das moderne Phänomen.

Aufgrund der dezentralen Natur gehören Kryptowährungen niemandem. Kryptowährungen können nicht von einer einzigen Partei kontrolliert oder blockiert werden. Jeder, der Zugang zum Internet hat, kann damit uneingeschränkt arbeiten. Es macht das Kryptosystem global und für jeden auf der Erde verfügbar. Egal welches Herkunftsland, welche politische Situation, Kultur, Religion oder wirtschaftliche Situation…..

Alles in einem öffentlichen Blockchain-Netzwerk ist transparent. Jeder ist in der Lage, seine Transaktionen und die Transaktionen anderer zu sehen.

Alles ist anonym, bis man irgendwie bekannt gibt, dass eine bestimmte öffentliche Adresse Ihnen oder jemandem, den Sie kennen, gehört.

Sie können Details zu jeder Transaktion im Blockchain-Explorer sehen.

Um einen finanziellen Wert zu haben, muss jedes Krypto-Asset liquide sein. In Unternehmen, Wirtschaft oder Investitionen ist die Marktliquidität das Merkmal eines Marktes, mit dem eine Person oder Firma einen Vermögenswert einfach und schnell kaufen oder verkaufen kann, ohne eine drastische Änderung des Preises des Vermögenswertes zu verursachen.

Genau wie alles in der Wirtschaft hat auch das Krypto-Asset einen Preis, der durch das Gleichgewicht zwischen Angebot und Nachfrage bestimmt wird.

Mehr Nachfrage — desto höher Preis eines Assets.

Um Krypto-Assets zu kaufen oder zu verkaufen, verwendet man Gateways oder Börsen.

Alle nationalen oder traditionellen Vermögenswerte werden als “Fiat” bezeichnet. Kaufen Sie also Krypto-Assets, sollten Sie Fiat-to-Crypto-Gateways/Börsen verwenden und umgekehrt.

Mit der Waves Plattform sind sie in der Lage, viele Gateways mit nationalen Fiat-Währungen zu nutzen.

Sie können auch Krypto-Assets mit vielen Strategien an Börsen handeln, indem Sie Orders zum Verkauf oder Kauf platzieren. Waves DEX — ist eine dezentrale Börse für verschiedene liquide Kryptoanlagen.

Die öffentliche Blockchain Waves hat ein natives Token — WAVES. Die Nachfrage nach dem nativen Token von Waves wird durch seinen Nutzen innerhalb der Plattform sichergestellt.

Alle Transaktionen werden mit Gebühren in WAVES bezahlt. Das bedeutet, dass die Nutzer für die Nutzung der Plattform dafür bezahlen müssen. Allerdings sind die Gebühren sehr gering und machen somit die Plattform für alle zugänglich.

Zum Beispiel hat die Überweisungstransaktion eine Gebühr in Höhe von etwa der Hälfte eines US-Cent. Für jeden beliebigen Betrag an übertragenen Vermögenswerten.

Ziemlich günstig, oder?

Das native Token ist sehr wichtig für die Funktionalität der Plattform:

  • Es macht alle DDoS-Angriffe teuer.
  • Es motiviert Netzwerkknoten/Blockproduzenten, das Netzwerk zu pflegen.
  • Es motiviert die Plattform-Mitwirkenden, die Infrastruktur zu verbessern.

Zur Erinnerung: die Waves Blockchain verwendet einen Leased Proof of Stake Konsens. Die Wahrscheinlichkeit, ein Blockprüfer zu sein, ist proportional zur Gesamtzahl der von den Knoten angezogenen Token. Und mit jedem validierten Block erhält der Miner die aus Transaktionsgebühren generierte Belohnung.

Waves Nodes Monitor (by waves)

In diesem Modul üben wir dezentrale Datenspeicherung und Kryptozahlungen mit Waves.

Kommen wir zurück zu unserem Marktplatz der Zukunft.

Wir bauen einen dezentralen Web3-Couponmarktplatz — “Coupon Bazaar”. Die Nutzer suchen nach Rabatten für Waren und Dienstleistungen und können diese zu einem kleinen Preis auf dem Marktplatz kaufen. Jeder Coupon — ist ein Digital Asset, das einen speziellen Rabatt von Lieferanten darstellt.

Wir werden die folgende Funktionalität für Lieferanten implementieren:

  • Eine Lieferantenregistrierung
  • Artikelverwaltung
  • Kaufbestätigung

…und Funktionalität für Kunden:

  • Nach “Gutschein” suchen
  • Kauf mit Kryptowährung
  • Deshalb werden wir die Funktionalität für Lieferanten implementieren:
  • Eine Lieferantenregistrierung
  • Artikelverwaltung
  • Kaufbestätigung

Und Funktionalität für Kunden:

  • Nach “Gutschein” suchen
  • Kauf mit Kryptowährung

Wir werden ein spezielles und wichtiges Feature für die dApp-Entwicklung nutzen — Data Transaction.

…. und Smart Accounts (dApp) — die alle Datentransaktionen von Lieferanten akzeptieren und alle anderen ausgehenden Transaktionen ablehnen, mit Ausnahme von Set-Skripttransaktionen, die für die zukünftige Aktualisierung der Smart Account Logik erforderlich sind.

Waves IDE

Datentransaktionen bieten eine Möglichkeit, Informationen im Blockchain-Netzwerk in Form von Key-Value-Paaren zu speichern:

“Die maximale Größe eines Schlüssels beträgt 100 Zeichen, und ein Schlüssel kann beliebige Unicode-Zeichen, einschließlich Leerzeichen und anderen nicht druckbaren Symbolen enthalten. Werte für Zeichenketten (Strings) haben eine Grenze von 32.768 Byte und die maximale Anzahl der möglichen Eingaben in der Datentransaktion beträgt 100. Insgesamt beträgt die maximale Größe einer Datentransaktion etwa 140kb — als Referenz fast genau die Länge von Shakespeares Stück Romeo und Julia”.

Wir wünschen Ihnen viel Erfolg bei der “Code Challenge”!

Viel Spaß!

--

--