Vier Ansätze zum Vergleich von vertrauenswürdigen Ausführungsumgebungen und Zero-Knowledge-Proofs

Marvin
Oasis Foundation German
8 min readApr 16, 2023

Dieser Artikel ist eine inoffizielle Übersetzung der ursprünglichen Veröffentlichung. Die Übersetzung erfolgte durch Marvin, Oasis Labs Botschafter.

Mit der Blockchain wird das Internet durch Dutzende von offenen und genehmigungsfreien Netzwerken, die Millionen von Nutzern auf der ganzen Welt dienen, radikal transparent. Obwohl Transparenz viele Vorteile bietet, muss sie mit robusten Tools zum Schutz der Privatsphäre einhergehen, die die Vertraulichkeit und Datensicherheit jedes Nutzers der Chain gewährleisten. Da Web3 den Datenschutz in den Mittelpunkt stellt, ist ein Einblick in die Trends und Technologien, die den On-Chain-Datenschutz vorantreiben, von wesentlicher Bedeutung. Dieser Blog-Beitrag bietet einen vereinfachten Vergleich von zwei verschiedenen Ansätzen zum Datenschutz im Web3: Zero-Knowledge Proofs und Trusted Execution Environments. Sowohl für Entwickler als auch für Benutzer ist es wichtig, die Unterschiede zwischen diesen Technologien zu kennen, um die zukünftige Entwicklung des Web3 zu verstehen.

Bevor wir diese Technologien vergleichen, ist es sinnvoll, einige Begriffe zu definieren.

  • Zero-Knowledge-Beweise: Ein Zero-Knowledge-Proof (ZKP) ist ein kryptografischer Mechanismus, der es jedem ermöglicht, die Wahrheit einer Aussage zu beweisen, ohne die darin enthaltenen Informationen weitergeben zu müssen und ohne offenzulegen, wie die Informationen erhalten wurden. Blockchain-Validatoren führen Berechnungen durch, die prüfen, ob ein Beweis korrekt ist, und, falls ja, Zustandsänderungen vornehmen, ohne die geprüften Daten zu erfahren. Zusätzliche Informationen über ZKP erhaltet ihr im ZK MOOC.
  • Vertrauenswürdige Ausführungsumgebungen: Eine vertrauenswürdige Ausführungsumgebung (Trusted Execution Environment, TEE) verwendet ein hardwarebasiertes Rechenmodell, bei dem ein Bereich des Prozessors vom Rest der CPU getrennt wird. Wenn diese Umgebungen verwendet werden, um vertrauliche Blockchains zu ermöglichen, empfangen sie verschlüsselte Daten und führen Berechnungen aus, die von niemandem direkt beobachtet oder manipuliert werden können, nicht einmal vom Hardware-Host. Näheres über TEEs findet ihr in diesem Blog-Beitrag.

Werfen wir nun einen detaillierten Blick auf diese beiden Technologien zur Wahrung der Privatsphäre!

Skalierbarkeit von Applikationen

Ein Hauptmerkmal von ZKP ist die Tatsache, dass in bestimmten Anwendungen häufig einzigartige Schaltkreise entwickelt werden müssen, um bestimmte Anwendungsfälle zu erfüllen, in denen ein Prüfer sein Wissen nachweisen muss, ohne Informationen preiszugeben. Dies geschieht in der Regel durch die Konstruktion einer Schaltung, die eine bestimmte Berechnung auf der Grundlage eines bestimmten Geheimnisses ausführt. Der Verifizierer erhält dann den Beweis, dass die Schaltung korrekt ausgeführt wurde.

In einigen Anwendungen kann ein und derselbe Schaltkreis nicht von mehreren Prüfern verwendet werden, während in anderen Anwendungen, die ein allgemeines ZKP-Schema verwenden, einzelne Schaltkreise von mehreren Prüfern verwendet werden können. Allerdings müssen Schaltungen, die mehrfach verwendet werden können, sorgfältig entworfen werden, um sicherzustellen, dass sie nicht dazu verwendet werden können, Informationen über das zu beweisende Geheimnis preiszugeben.

Bei TEEs hängt die Skalierbarkeit über verschiedene Verwendungszwecke und Anwendungen hinweg von der Implementierung ab, die durch eine Reihe von Faktoren bestimmt wird, darunter die Hardware- und Softwarearchitektur und die spezifischen Anforderungen des TEE-Verwendungszwecks. Unter bestimmten Umständen, z. B. bei einem auf einem mobilen Gerät implementierten TEE, kann die Nutzung auf einfache Anwendungen beschränkt sein. Für Web3 dApps hingegen sind TEEs, die typischerweise von Blockchain-Validatoren verwendet werden, in der Lage, große Rechenlasten zu verarbeiten. Außerdem unterstützen diese Umgebungen die Ausführung von beliebigem Maschinencode und können daher von mehreren Entwicklern für zahlreiche Anwendungen genutzt werden.

Oasis übernimmt die grundlegenden, aber sicherheitskritischen Details der Einrichtung von TEEs, der (Re-)Attestierung aus der Ferne, der Organisation von Rechenausschüssen, der Bereitstellung vertrauenswürdiger, manipulationssicherer Speicher, der Datenverfügbarkeit und vieles mehr. Für Benutzer und Entwickler verpackt Oasis TEEs in Laufzeiten, die auf dem Oasis Netzwerk ausgeführt werden, mit sorgfältig entworfenen externen Schnittstellen, die TEE-basierte vertrauliche Berechnungen einfach und sicher nutzbar machen.

Insbesondere Solidity-Entwickler profitieren davon, insofern es bei der Verwendung von TEEs auf dem Oasis Netzwerk keine besonderen Einschränkungen oder Anforderungen gibt, die auf der Anzahl der Benutzer oder spezifischen Ökosystemen basieren. Entwickler können nicht nur mit wenigen Modifikationen verschlüsselte Informationen zu jeder Solidity dApp hinzufügen, sondern auch gezielt auswählen, welche Aspekte der Informationen verschlüsselt werden sollen und welche öffentlich bleiben sollen. Anstatt sich durch die Schwierigkeiten bei der Entwicklung von ZKP-Schaltkreisen für ihre Smart Contracts zu kämpfen, können Web3-Entwickler die Vorteile der bemerkenswerten Flexibilität und Skalierbarkeit von TEEs mit sicherer Ausführung für alle Anwendungen nutzen, die auf einem beliebigen Blockchain-Netzwerk aufgebaut sind.

‍Sicherheit und Leistung

ZKP können verhältnismäßig rechenintensiv sein, je nach Art des verwendeten Algorithmus und der Komplexität des zu beweisenden Problems. ZKPs erfordern in der Regel erhebliche Rechenressourcen für die Erstellung von Beweisen, da ihre Sicherheit ausschließlich von kryptografischen Operationen abgeleitet ist. Die Beweisüberprüfung selbst ist jedoch schnell. Die Komplexität der meisten ZKP-Algorithmen ist allerdings proportional zur Größe der Schaltung, und es gibt viele verschiedene Arten von ZKP-Algorithmen. Einige Algorithmen sind wesentlich rechenintensiver als andere. Entwickler, die ZKPs verwenden, sind oft der Meinung, dass die Vorteile für die Sicherheit und den Datenschutz die Rechenkosten überwiegen.

TEEs sind so konzipiert, dass sie eine sichere und isolierte Umgebung für die Ausführung von sensiblem Code bieten, ohne dass teure kryptografische Operationen erforderlich sind. Die Sicherheit von TEEs basiert auf Hardware kombiniert mit einigen Softwareelementen, anstatt sich ausschließlich auf Kryptografie zu stützen, was die Leistung komplexer Arbeitslasten verbessert. TEEs sind jedoch nicht immun gegen Angriffe, insbesondere gegen Seitenkanalangriffe (“side-channel attacks”), die versuchen, unbeabsichtigte Informationslecks in einem System auszunutzen. Auf der anderen Seite gibt es verschiedene Abwehrtechniken, die von allgemeineren und bekannten (z. B. Kryptographie mit konstanter Zeit) bis hin zu spezifischeren Methoden reichen, die für spezielle Anwendungsfälle erforderlich sind.

TEEs sind so konzipiert, dass sie ein Gleichgewicht zwischen Sicherheit und Leistung herstellen. Daher sind die meisten TEE-Konfigurationen auf Effizienz optimiert und verwenden häufig spezielle Hardware, um die Leistungsauswirkungen zusätzlicher Sicherheitsoperationen zu minimieren. Der größte Teil des Rechenaufwands für TEE-basierte Operationen entsteht durch den gelegentlichen Bedarf an zusätzlichen sicherheitsrelevanten Aufgaben, wie z. B. die Ver- und Entschlüsselung von Daten oder die Überprüfung der Integrität von Code, der in einem TEE läuft.

Wenn wir zum Beispiel Datenschutzfunktionen für eine Web3 DEX bereitstellen wollen, wäre die Verwendung von ZKPs allein nicht ausreichend und würde sich als äußerst schwierige Aufgabe erweisen. Im Gegensatz dazu erlaubt eine TEE-Implementierung viel mehr Flexibilität, da selbst komplexere Aufgaben zur Aggregation privater Daten, wie sie in einem DEX benötigt werden, einfacher und effizienter umgesetzt werden können.

Oder denken Sie an ein Szenario mit Stablecoin-Transaktionen zwischen einem Sender und einem Empfänger. Heute ist es üblich, dass der Sender, der Empfänger, der Emittent und jeder andere, der die Blockchain betrachtet, vollen Einblick in alle Transaktionsdaten hat. Mithilfe von TEEs können Entwickler jedoch komplexe und ausgefeilte Anwendungen erstellen, die die Sichtbarkeit von On-Chain-Daten anpassen. Ob nur der Absender und der Empfänger die Daten sehen, ob auch der Emittent eine Sichtbarkeitsberechtigung hat oder ob nur der Absender die Daten sehen kann — all diese Optionen stehen dApp-Entwicklern zur Verfügung, die robuste und flexible TEEs einsetzen.

F‍lexible Smart Contracts

TEEs sind für eine hohe Leistung bei hohen Rechenlasten ausgelegt, wie sie bei fortschrittlichen Smart Contracts und datenintensiven Web3-Anwendungen auftreten. Die Benutzerfreundlichkeit und Flexibilität der TEEs für Entwickler ist ein Hauptgrund dafür, dass diese Umgebungen für viele der komplexen Anwendungen, die in Web3 entwickelt werden, gut geeignet sind.

Insgesamt eignen sich TEEs gut für die Ausführung allgemeiner Smart Contracts und insbesondere für Smart Contracts, die große Mengen privater Daten zusammenführen müssen. Auch die Erfahrung der Entwickler ist viel einfacher. Zum Beispiel können vertrauliche Anwendungen, die auf Oasis Sapphire (vertraulicher EVM auf Basis von TEEs) aufgebaut sind, innerhalb von Tagen entwickelt werden, im Gegensatz zu Monaten oder Jahren, in denen alternative Datenschutztechnologien verwendet werden.

ZKP ist traditionell nicht für die Ausführung von Smart Contracts optimiert. In letzter Zeit gab es bemerkenswerte Fortschritte bei der Unterstützung von EVM-Kompatibilität, allerdings konzentrieren sich diese Kompatibilitätsverbesserungen auf Skalierbarkeit (und nicht auf Datenschutz) für Anwendungsfälle wie ZK-EVMs. ZKPs haben immer noch Einschränkungen bei der Gewährleistung des Datenschutzes in der allgemeinen Smart-Contract-Ausführung. Dies liegt daran, dass ZKPs erfordern, dass ein Prüfer Zugriff auf alle globalen Zustands- und Transaktionsdaten erhält, was nicht möglich ist, wenn einige Aspekte des globalen Zustands privat sind. Dies schränkt die Verwendung von ZKPs als Datenschutzlösung für Anwendungen, die in einem Mehrparteienkontext, in dem Wissen von mehreren Teilnehmern erforderlich ist, Datenschutz erreichen müssen, stark ein.

Bei bestimmten Anwendungen mit einfacheren Anwendungsfällen kann ZKP die Privatsphäre des Benutzers problemlos gewährleisten. Doch je komplexer die Rechenlasten werden und je mehr Daten eingegeben werden, desto schwieriger, teurer und unflexibler wird dieser Schutz. Um diese Probleme abzumildern, sind manchmal benutzerdefinierte Schaltungen erforderlich, um dApps mit großen und komplexen Datenmengen zu schützen. Einige Teams, die mit ZKP arbeiten, entwickeln Frameworks, um den Prozess der Integration von ZKP in Smart Contracts zu vereinfachen, aber sie bieten nicht das gleiche Maß an Flexibilität für den Datenschutz, das TEEs bieten.

Vertrauen: Der Trade-off

Das Verständnis des Vertrauensmodells jeder Web3-Datenschutztechnologie ist für Entwickler und Nutzer wichtig. Einige ZKP-basierte Lösungen können sich zum Beispiel auf halb-vertrauenswürdige Sequenzer verlassen, um Informationen zu verifizieren. Auch wenn ZKPs ein effektives Skalierungswerkzeug sein können, sollte klar sein, warum ZKP als Datenschutzlösung für Web3 begrenzt ist. Einige ZKP-basierte Lösungen können sich zum Beispiel auf halb-vertrauenswürdige Sequenzer verlassen, um Informationen zu verifizieren. Wenn eine Anwendung mehrere Sequenzer zulässt, wird die Privatsphäre sogar noch mehr beeinträchtigt. In ausgewählten Anwendungsfällen kann ZKP jedoch nützlichen Datenschutz bieten — ein Hauptbeispiel ist die Währung Zcash. Ohne zu verraten, wie viele Münzen ein Benutzer hat oder ausgibt, muss jeder Benutzer nachweisen, dass er keine Münzen doppelt ausgibt. Die Verwendung eines ZKP zum Nachweis, dass ein Nutzer nicht betrogen hat, ist von entscheidender Bedeutung. Aber um es klar zu sagen: Diese Technik ist auf sehr spezifische Anwendungsfälle (z. B. Währung) beschränkt und nicht für verallgemeinerbare sichere Berechnungen ausgelegt.

Bei TEEs steckt der Begriff des Vertrauens bereits im Namen. Die Vertrauenswürdigkeit eines TEE ist jedoch weitgehend auf das hardwarebasierte Vertrauen beschränkt, bei dem das TEE so implementiert ist, dass es eine sichere Ausführungsumgebung bietet, die vom Rest des Systems isoliert ist. Dieses hardwarebasierte Vertrauen basiert in erster Linie auf den Hardwareentwicklern und -herstellern und deren Sicherheitspraktiken. Dieses Vertrauen kann durch sichere Boot-Prozesse, sichere Enklaven und andere Industriestandardtechniken weitgehend verifiziert werden. TEEs ermöglichen es den Entwicklern, fälschungssichere Bescheinigungen für Dateneingaben und Bescheinigungen für jede beliebige Anwendung, die sie erstellen oder verwenden, zu erstellen.

Schlussfolgerung

Zusammenfassend lässt sich sagen, dass Datenschutztechnologien für das Web3 in einem Spektrum mit vielen Stärken, Schwächen und Kompromissen existieren.

ZKP können einige auf den Schutz der Privatsphäre ausgerichtete Anwendungsfälle erfüllen, aber ihre Leistung, Skalierbarkeit und Unterstützung für allgemeine Berechnungen sind begrenzt. Andere Web3-Datenschutztechnologien wie TEEs sind für Entwickler attraktiver, die dApps mit einer großen Anzahl gleichzeitiger Benutzer und großen Datenmengen entwickeln. In diesen Situationen bieten TEEs ein flexibles, skalierbares und leistungsfähiges Werkzeug für die Integration von robuster Vertraulichkeit in jede Web3-Anwendung. Beide Werkzeuge können sich aber auch ergänzen, und einige Web3-Anwendungen könnten beispielsweise ZKP verwenden, um die Sicherheit und Robustheit eines TEE-basierten Systems zu verbessern. Unabhängig davon, welche Datenschutz-Tools ein Entwickler verwendet, die Zukunft von Web3 ist vielversprechend, denn es steht eine breite Palette von Datenschutztechnologien zur Auswahl.

--

--