Ursprüngliche Forschungsanalyse von Web3.com Ventures
0xFishylosopher

Einführung
„zk-Rollups“ war wahrscheinlich das heißeste Web 3-Schlagwort des Jahres. Mit dem Start des v2.0 „Baby Alpha“-Mainnets von zk-Sync in den letzten Tagen hat die Aufregung ihren Höhepunkt erreicht [1]. Aber was bedeuten „zk-Rollups“ hinter all diesen Schlagwörtern wirklich? Und wo kommt zk-Sync ins Spiel? In diesem Artikel werde ich versuchen, tief in die Prinzipien und die Praxis von zk-Rollups einzutauchen, die wichtigsten technischen Merkmale von zk-Sync v2.0 als Projekt zu erläutern und die möglichen zukünftigen Auswirkungen auf diese lange erwartete Technologie zu untersuchen.
Grundsätze von zk-Rollups
Warum brauchen wir überhaupt zk-Rollups? Sicher, Ethereum ist großartig. Aber in seinem aktuellen Zustand ist das Netzwerk grundsätzlich eine Disökonomie der Skaleneffekte. Mit zunehmender Netzwerkaktivität werden die Gaspreise unerschwinglich, insbesondere wenn es auf einmal zu einem Anstieg der Netzwerkaktivität kommt. Während Ethereum in den letzten Jahren immer beliebter und beliebter wurde, ist seine derzeit begrenzte Skalierbarkeit zur Achillesferse des Netzwerks geworden.
Hier kommen „Rollups“ ins Spiel – Ethereum-Rollups sind im Wesentlichen ein „Plugin“, das Ethereum um ein Vielfaches skalierbarer macht und so die inhärente Unökonomie der Skalen behebt. Die Intuition hinter dieser Idee ist einfach. Stellen Sie sich vor, Sie haben fünf Gegenstände, die Sie von Punkt A nach Punkt B tragen müssen. Die „normale“ Vorgehensweise wäre, Gegenstand 1, Gegenstand 2 usw. nacheinander zu tragen. Aber das ist offensichtlich langsam und umständlich. Bei einem „Rollup“ werden im Wesentlichen alle 5 Gegenstände in eine einzige Tasche „gerollt“, sodass Sie nur einen Weg statt 5 machen müssen.
Es gibt jedoch zwei Einschränkungen:
Wie stellen wir sicher, dass in das Rollup alles „passt“?
Wie stellen wir sicher, dass das Rollup nicht gefälscht wird?
zk-Rollups sind eine der führenden Arten von Rollup-Technologien (die andere sind Optimistic Rollups), die „Zero-Knowledge-Proofs“ nutzen, um diese beiden Probleme zu lösen. Um diese Probleme zu lösen, bündelt ein zk-Rollup eine bestimmte Anzahl von Transaktionen, führt die Berechnung auf L2 durch und übermittelt sowohl Statusänderungen als auch einen „Gültigkeitsnachweis“ an einen Prüfer auf L1, der zeigt, dass die Berechnungen mit Integrität durchgeführt wurden. Dieser „Gültigkeitsnachweis“ erfolgt in Form eines „Zero-Knowledge-Proofs“, einer mathematischen Methode, jemandem mitzuteilen, dass Sie etwas wissen, ohne ihm zu sagen, was Sie wissen.

Ein einfaches Beispiel für einen Zero-Knowledge-Proof ist ein Code-Autograder (für Informatik-Hausaufgaben). Der Autograder ist ein „Verifizierer“, der Ihnen eine Reihe zufällig generierter Testfälle liefert, und Sie sind ein „Beweiser“, der alle Testfälle bestehen muss, um zu beweisen, dass Sie den richtigen Code haben. Dabei teilen Sie Ihren Code nicht direkt mit dem Autograder. Und voilà, Sie haben gerade einen „Zero-Knowledge-Proof“ durchgeführt und damit bewiesen, dass Sie etwas wissen, ohne zu sagen, was Sie wissen. [2]

Der oben genannte Code-Autograder verwendet einen „interaktiven Zero-Knowledge-Proof“, bei dem der Autograder und der Code-Provider direkt miteinander „interagieren“. Im Gegensatz dazu verwenden die meisten zk-Rollups einen mathematisch komplizierteren nicht-interaktiven Beweis (wie zk-SNARK oder Zero Knowledge Succinct Noninteractive ARgument of Knowledge), der im Vergleich zu einem interaktiven Beweis sowohl Zeit als auch Platz spart. Während die technischen Details von zk-SNARKs über den Rahmen dieses Artikels hinausgehen, ist das zugrunde liegende Prinzip des Bestehens von Testfällen dasselbe.
Der heilige Gral der zk-Rollups ist eine Zero-Knowledge Ethereum Virtual Machine (zk-EVM), die es Entwicklern ermöglicht, jeden Ethereum-Smart Contract ohne Änderungen auf eine zk-Rollup-Kette zu portieren. Aber das ist schwierig. Da jedes „Problem“ unterschiedliche Sätze von „Testfällen“ erfordert, ist die Entwicklung eines „Beweisalgorithmus“, der jeden erdenklichen Testfall lösen kann, ein technischer Engpass bei Zero-Knowledge Proofs und zk-Rollups.
Wie Vitalik Buterin selbst sagt:
Generell bin ich der Ansicht, dass sich optimistische Rollups kurzfristig wahrscheinlich bei der allgemeinen EVM-Berechnung durchsetzen werden und ZK-Rollups sich wahrscheinlich bei einfachen Zahlungen, beim Austausch und in anderen anwendungsspezifischen Anwendungsfällen durchsetzen werden. Mittel- bis langfristig werden sich ZK-Rollups jedoch in allen Anwendungsfällen durchsetzen, da sich die ZK-SNARK-Technologie verbessert. [3]
Daher waren zk-Rollups in der Vergangenheit nur etablierte Technologien für anwendungsspezifische Anwendungsfälle, bei denen die „Testfälle“ klar definiert und in ihrem Umfang begrenzt waren. Mehrere Projekte schreiten jedoch schnell in Richtung des „Schlosses auf dem Hügel“ voran – eines generischen EVM-kompatiblen zk-Rollup-Algorithmus. [4]
zk-Sync v2.0
zk-Sync v2.0 ist nur eines der vielen Projekte, die derzeit an der Entwicklung eines zk-EVM arbeiten (andere sind StarkNet, Polygon Hermez und Scroll). Anders als bei zk-Sync v1.0, bei dem Benutzer große Teile ihrer Codebasis neu erstellen mussten, um sie von der EVM auf zk-Sync zu portieren, können Programmierer bei zk-Sync v2.0 ihre Anwendungen mit wenig bis gar keinen Änderungen bereitstellen – oder wie zk-Sync es gerne behauptet.
In der Praxis sind nicht alle zk-EVMs gleich. Es gibt einen deutlichen Kompromiss zwischen Zusammensetzbarkeit (wie nah es an den ursprünglichen EVM-Verträgen ist) und Leistung (wie schnell die zk-Rollups laufen) [6]. Im Rahmen dieses Kompromisses hat sich zk-Sync dafür entschieden, vollständig auf Leistung zu optimieren und damit die Zusammensetzbarkeit zu opfern.
Aus Vitalik Buterins Sicht gibt es vier verschiedene Arten von zk-EVMs, die in der folgenden Tabelle zusammengefasst sind:

Wie Vitalik angibt, ist zk-Sync v2.0 in seinem aktuellen Zustand ein zk-EVM Typ 4, das in der Lage ist, in Solidity und höheren Programmiersprachen geschriebene Verträge mit seinem eigenen Compiler zu kompilieren, der sich vom EVM unterscheidet. Da zk-Sync die volle Kontrolle über das Design seines Compilers hat, kann es Geschwindigkeit und Durchsatz aggressiv optimieren. Der Preis dafür ist, dass einige DApps und EVM-Debugging-Toolchains möglicherweise nicht mit zk-Sync v2.0 kompatibel sind. Im Wesentlichen ist zk-Sync die gleiche Karosserie wie Ethereum, allerdings mit einem ausgetauschten Motor [5].
Tatsächlich behauptet Matter Labs in seiner Entwicklerdokumentation, dass „Lese“-Operationen von Smart Contracts ohne Änderungen im Code integriert werden können, „Schreib“-Operationen von Smart Contracts jedoch „zusätzlichen Code“ benötigen, da es „grundlegende Unterschiede zwischen L1 und L2“ gebe [6]. Dies ist jedoch etwas irreführend. Es liegt nicht so sehr an einem „grundlegenden Unterschied“ zwischen L1 und L2, sondern vielmehr an der Art von zk-Rollup, für die sich Matter Labs entschieden hat – dem Rollup Typ 4. Da zk-Sync grundsätzlich ein Rollup Typ 4 ist, das einen anderen Compiler und Bytecode verwendet, haben Smart Contracts unterschiedliche Adressen und die Debugger-Infrastruktur, die auf der Analyse von Bytecode basiert, funktioniert möglicherweise nicht mit zk-Sync v2.0 [7].
In Zukunft könnte zk-Sync mehr native Unterstützung für EVM-Bytecode hinzufügen, sodass das System langsam auf ein Rollup vom Typ 3 umsteigen kann, das eine größere Bandbreite dieser „Randfälle“ unterstützt. Damit das zk-Rollup vom Typ 4 oder 3 von zk-Sync im Vergleich zum Rollup vom Typ 2 von Polygon Hermez und Scroll Labs, das im Wesentlichen Geschwindigkeit gegen eine größere Kompatibilität eintauscht, erfolgreich sein kann, müssen zwei wichtige Voraussetzungen erfüllt sein. Erstens gibt es nur einen winzigen Bruchteil unwichtiger Projekte, die mit dem benutzerdefinierten Compiler von zk-Sync nicht kompatibel sind. Zweitens gibt es einen qualitativen Unterschied in der Ausführungsgeschwindigkeit von zk-Sync im Vergleich zu einem zk-EVM vom Typ 2.
Leider glaube ich persönlich nicht, dass dies der Fall sein wird. Jedes fortschrittliche Entwicklungsökosystem basiert auf einer ausgereiften „Gerüst“-Infrastruktur, einschließlich praktischer, modularisierter Debugging- und Testtools. Wenn, wie Vitalik postuliert, ein großer Teil der EVM-nativen Debuggingtools aufgrund von Unterschieden im Bytecode nicht auf zk-Sync portiert werden kann, muss zk-Sync seine eigene Suite von Test- und Debuggingtools entwickeln. Dies ist zusätzlicher Aufwand, der letztendlich die Akzeptanzgeschwindigkeit von zk-Sync als L2-Lösung im Vergleich zu seinen besser zusammensetzbaren zk-EVM-Konkurrenten vom Typ 2 wie Polygon Hermez und Scroll beeinträchtigen kann.
Die Zukunft für zk-Rollups
Da viele Mitbewerber im Kampf um zk-EVMs sind, ist es wohl nur eine Frage der Zeit, bis wir ein voll funktionsfähiges zk-EVM sehen. Aber was kommt als Nächstes? Eine Straße ist nur so lange nützlich, wie sich Gebäude auf ihr befinden; die langfristige Stärke eines zk-Rollups ergibt sich aus den Projekten, die diese Lösung verwenden.
Derzeit profitieren vor allem DeFi, GameFi und mobile Anwendungen von der zk-Rollup-Infrastruktur. Sowohl DeFi als auch GameFi profitieren grundsätzlich von Skaleneffekten, da sie in einem Umfeld florieren, in dem sie von vielen Menschen genutzt werden. Mobile Anwendungen wie mobile Wallets öffnen auch die Schleusen für den Massenkonsumenten, der zu faul ist (oder sich einen Desktop-PC nicht leisten kann). Die Verwendung von zk-Rollups in diesen Situationen ist daher sehr sinnvoll.
Aber das ist noch lange nicht die Grenze der Nützlichkeit von zk-Rollups. Wenn überhaupt, ist das erst der Anfang. zk-Rollups sind für Ethereum, was 5G für das Internet ist. So wie 5G eine neue Welt von IoT-Anwendungen und -Systemen ermöglichen kann, können zk-Rollups auch die Schleusen für eine „Blockchain der Dinge“ öffnen, die es ermöglicht, die digitalen Geräte unserer physischen Welt – Kühlschränke, Uhren, Ampeln und alles andere – mit Smart Contracts zu integrieren, die auf Ethereum gesichert sind.
Eines der größten Argumente gegen das IoT ist, dass es Big Tech ermöglicht, in unseren Alltag einzudringen. Aber mit einer „Blockchain der Dinge“ können wir die Annehmlichkeiten des IoT genießen, ohne uns Sorgen machen zu müssen, dass unsere Smart-Geräte in einer zentralisierten Datenbank kompromittiert werden. Statt Komfort ODER Privatsphäre können wir Komfort UND Privatsphäre haben. Das ist die Welt, die uns zk-Rollups versprechen können.
🐦 @0xfishylosopher
📅 31. Oktober 2022
Diese Informationen dienen ausschließlich zu Bildungszwecken und sollten nicht als Finanzberatung verstanden werden. Alle geäußerten Ansichten sind die des Autors und werden nicht unbedingt von Web3.com Ventures unterstützt.
Verweise
[1] https://blog.matter-labs.io/baby-alpha-has-arrived-5b10798bc623
[2] Adaptiert von https://pages.cs.wisc.edu/~mkowalcz/628.pdf
[3] https://vitalik.ca/general/2021/01/05/rollup.html
[4] https://www.coindesk.com/tech/2022/07/20/the-sudden-rise-of-evm-kompatible-zk-rollups/
[5] https://cryptobriefing.com/the-race-scale-ethereum-zkevm-rollups/
[6] https://docs.zksync.io/dev/contracts/#porting-smart-contracts
[7] https://vitalik.ca/general/2022/08/04/zkevm.html