Aleo stellt die private Anwendungsentwicklung für Blockchain vor

Zero Knowledge (zk) Proofs gewinnen im Blockchain-Bereich als Lösung für eine Vielzahl unterschiedlicher Herausforderungen an Bedeutung. Das Konzept gibt es im Bereich der Kryptografie schon seit geraumer Zeit und hat seinen Ursprung in der Veröffentlichung von 1985, The Knowledge Complexity of Interactive Proof Systems. Bis vor kurzem waren praktische Anwendungsfälle aufgrund der Rechenkomplexität begrenzt.

Zcash hat ein digitales Währungs- und Transaktionsprotokoll entwickelt, das zk-Proofs nutzt, um Transaktionsdetails geheim zu halten, wenn zwei Parteien Handel treiben. Dies adressiert eine der Herausforderungen bei der Verwendung von Blockchain für Transaktionen, bei denen Sie möglicherweise nicht möchten, dass jeder auf der Welt etwas darüber weiß, wen Sie bezahlt haben und wie viel Sie ihnen gezahlt haben – genauso wie die Mehrheit der Menschen keine ähnlichen Informationen von ihrer Bank teilen würde Konto auch öffentlich.

Mit virtuellen Maschinen von Ethereum kompatible Layer-2-Blockchains wie Polygon implementieren zk-Rollups, bei denen es sich im Wesentlichen um eine große Menge von Transaktionen handelt, die von der Layer-2-Blockchain aggregiert und der Ethereum-Blockchain mit einem Zero-Knowledge-Beweis präsentiert werden, der ihre Authentizität bestätigt. Dies führt zu weniger Ethereum-Transaktionen, was wiederum zu einem höheren Durchsatz und niedrigeren Gasgebühren für die Interaktion mit der Ethereum-Blockchain führt.

Aleo, eine Layer-1-Blockchain, erweitert diese Konzepte, um ein Ökosystem für den Aufbau dezentraler Anwendungen für Anwendungsfälle zu schaffen, in denen Sie möglicherweise einige der Leistungsvorteile von zk-Rollups nutzen möchten, verbunden mit der Vorstellung, dass bestimmte Aspekte von Blockchain-Transaktionen davon profitieren ein gewisses Maß an Privatsphäre zu wahren.

Warum dApps Privatsphäre brauchen

Einer der häufig angepriesenen Aspekte der Blockchain-Technologie ist der öffentliche Charakter aller Transaktionen. Es gibt Anwendungsfälle, wie das zcash-Beispiel zur Wahrung eines gewissen Maßes an Bankdaten, bei denen vollständig öffentliche Transaktionsdaten nicht ideal sind. In einem Interview mit The New Stack sagte Howard Wu, Mitbegründer und CEO von Aleo: „Es gibt eine breite Palette von Branchen, in denen es Web3 an Datenschutz mangelt. Das liegt nicht daran, dass wir es anschrauben müssen, sondern daran, dass viele Anwendungen eine Art Informationsasymmetrie oder das Verbergen von Wissen erfordern, um überhaupt richtig zu funktionieren.“

Ein Beispiel, das Wu nannte, ist die Verwendung einer Blockchain für ein Pokerspiel. „Ein Dealer kann Karten an sieben oder acht andere Spieler verteilen und jeden Spieler um einen Check oder Einsatz bitten“, sagte er. „Jeder Spieler kann einen Zero-Knowledge-Beweis erstellen, der jedem vorherigen Spieler folgt, und ihn in eine einzige Transaktion einflechten, die dann in der Kette übertragen wird, eine Runde des Spiels spielt und dann zur nächsten Runde übergeht.“ Dies alles geschieht, ohne dass einzelne Spieler wissen, wer welche Karten hält.

Andere reale Anwendungen beruhen auf einer Kombination aus öffentlichem und privatem Zustand. Was Aleo bietet, ist eine Möglichkeit für Entwickler, Implementierungsentscheidungen über Informationen zu treffen, die öffentlich gemacht werden, und Informationen, die privat gehalten werden. Abstimmungen sind ein weiterer praktischer Anwendungsfall, der diese Flexibilität erfordert. Wu sagte: „Bei Wahlen wollen die Leute wählen, aber sie wollen anderen nicht zeigen, wie sie gewählt haben. Die Auszählung der Stimmen muss öffentlich sein, um das Ergebnis nachvollziehen zu können. Private Abstimmungen und öffentliche Abstimmungen sind hier eine leistungsfähige Funktionalität in Anwendungen.“

Klügere Leute als ich können wahrscheinlich unterscheiden, ob es andere Risiken gibt, einen Blockchain-fähigen Abstimmungsprozess zu ermöglichen, aber bei Entscheidungen mit geringem Einsatz, wie der DAO-Abstimmung, kann ich sicherlich sehen, wie dies nützlich sein könnte.

Aus Sicht der Entwicklerimplementierung werden alle Elemente, die als privat gekennzeichnet sind, verschlüsselt. Der Zero-Knowledge-Proof wird verwendet, um zu beweisen, dass ein Benutzer die Daten mit seiner öffentlichen Adresse verschlüsselt, was bedeutet, dass es überprüfbar ist, dass die Person, die die Aktion ausführt, die Person ist, für die sie sich ausgibt, aber die öffentliche Adresse ist verschlüsselt, sodass sie nicht sichtbar ist an Kette. Der Zero-Knowledge-Beweis bestätigt letztendlich den Verschlüsselungsalgorithmus, den Entschlüsselungsalgorithmus und die Logik, die unter der Haube ausgeführt wird.

Aleo dApps mit Leo schreiben

Einer der einzigartigen Aspekte von Aleos Ansatz zur dApp-Entwicklung ist die begleitende Leo-Programmiersprache. In meinem Interview mit Wu schlug ich vor, dass das Hinzufügen einer weiteren Programmiersprache zum Blockchain-Raum der Einführung abträglich sein könnte. „Als wir anfingen“, antwortete er, „wollten wir das an Rust oder Typescript anhängen, damit wir das Rad nicht neu erfinden mussten. Es stellt sich heraus, dass dies wirklich schwierig ist, da die Dinge, die Sie in einem Programmiermodell für billig halten, in diesem Modell sehr teuer sind. Am Ende haben wir eine neue Sprache entwickelt, weil sich das, was der Compiler unter der Haube macht, sehr von der traditionellen Architektur unterscheidet.“

Was genau unterscheidet Leo von Rust oder Typescript? „Was wir haben, ist eine Hochsprache, die in Polynome kompiliert wird, die innerhalb eines Beweissystems ausgeführt werden“, sagte er. „Das Beweissystem arbeitet mit Polynomen, um Ihnen die endgültige Ausgabe zu liefern. Die endgültige Ausgabe sieht genauso aus wie die Ausgabe einer normalen CPU, enthält jedoch einen Zero-Knowledge-Beweis, der bestätigen kann, dass die Berechnung von einem bestimmten Programm auf einigen versteckten Eingaben ausgeführt wurde, die nach Ermessen des Benutzers auch öffentlich sein könnten. Das ist der grundlegende Unterschied in der Architektur.“

„Wenn Sie LLVM für Rust oder C++ verwenden“, fuhr er fort, „müssen Sie sich grundsätzlich von der LLVM-Architektur lösen und eine neue Architektur erfinden. Die Herausforderung ist [that] die Syntax, die Sie normalerweise in der Hochsprache für billig halten, wird am Ende sehr teuer.“

Sie können die Beispielsyntax zur Bestimmung, welche Werte in Leo öffentlich oder privat sind, unten sehen.

Einer der Wege, wie Aleo versucht, die mit der Implementierung einer neuen Programmiersprache verbundenen Reibungen zu überwinden, besteht darin, die Paketverwaltung zu einem zentralen Bestandteil des Aleo-Ökosystemdesigns zu machen. Wenn Entwickler für Ethereum bauen, wird jedes Mal, wenn ein ERC-20-Token bereitgestellt wird, auch der SafeMath-Vertrag bereitgestellt. Aleo ermöglicht es Ihnen, Pakete zu referenzieren, anstatt sie jedes Mal in Ihrem Code wiederzuverwenden. Wie Wu es ausdrückt: „Das Ziel ist es, ein Ökosystem von Paketen aufzubauen, in dem Sie mit dem Schreiben von Glue-Code beginnen können, anstatt zuvor geschriebene Funktionen neu zu erfinden.“

Aleo ermöglicht es auch, mit bestehenden Tools weiter zu bauen. Wu sagte: „Die meisten Benutzer, die auf Blockchains interagieren, rufen von bestehenden SDKs aus ihren jeweiligen dApps an. Aus unserer Sicht beziehen wir Stellung zum Hinzufügen von JavaScript-, Wasm- und Rust-Unterstützung für die Interaktion mit Leo- und Aleo-Programmen vom ersten Tag an, um es so einfach wie möglich zu machen, Apps aufzurufen, die bereits mit herkömmlichen Software-Stacks bereitgestellt wurden bereits vertraut.“

Aleo befindet sich derzeit in seinem dritten Testnetz, eine Hauptnetz-Veröffentlichung wird folgen, nachdem die letzte Phase des Testnetzes im Oktober abgeschlossen ist. Howard Wu hat kürzlich auch eine Liste mit weiteren Aleo-Ressourcen auf GitHub veröffentlicht. Ob zk-Proofs die Blockchain-Technologie grundlegend verändern, sie finden auch ihren Weg in Nicht-Blockchain-Anwendungen. Bereits im Mai 2021 hat Cloudflare zk-Proofs in seinen Privacy Pass implementiert, um die Anzahl der Male zu reduzieren, die eine Person möglicherweise ein Captcha ausfüllen muss.

Gruppe Erstellt mit Sketch.

source site

Leave a Reply