Ethereum ist zu langsam und teuer? ETH Layer2 Skalierungslösung und Audit-Leitfaden

Fortgeschrittene9/24/2024, 1:06:47 PM
ETH Layer2 verwendet Rollups, um Hunderte von Transaktionen in einer Einreichung zum Ethereum-Hauptnetz zu bündeln. Dadurch werden die Transaktionsgebühren auf alle Rollup-Benutzer aufgeteilt und die Gebühren pro Benutzer reduziert. Die Transaktionsdaten in den Rollups werden an Layer1 übermittelt, aber die Ausführungen erfolgen unabhängig durch die Rollups. Durch die Übermittlung der Transaktionsdaten an Layer1 kann Rollups die Sicherheit von Ethereum erben, da das Zurücksetzen von Rollups-Transaktionen auf Layer1 erfordert, dass die Daten auf Layer1 zurückgesetzt werden.

Die drei Kernattribute der Blockchain sind Dezentralisierung, Sicherheit und Skalierbarkeit. Gemäß der Blockchain-Trilemma-Theorie kann eine Blockchain-Architektur nur zwei davon implementieren. Ethereum wurde mit Dezentralisierung und Sicherheit im Sinn entworfen und ist daher in Bezug auf Skalierbarkeit schlecht. Derzeit verarbeitet Ethereum mehr als 1 Million Transaktionen pro Tag, was zu hohen Transaktionsgebühren führen kann und die Notwendigkeit von Skalierungslösungen für Ethereum erhöht.

Es gibt mehrere verschiedene Arten von Ethereum-Skalierungslösungen, jede mit ihren eigenen Kompromissen und Sicherheitsmodellen, einschließlich Layer 1-Sharding, Layer 2-Statuskanälen, Plasma, Sidechains, Rollups und Validium. Da die Sharding-Technologie langsam zu entwickeln und komplex zu implementieren ist und Sidechains und Validium die Sicherheit und Datenverfügbarkeit von Ethereum nicht erben können. Zusammenfassend verwendet das Ethereum-Ökosystem jetzt hauptsächlich die Rollups-Skalierungslösung.

Beosin ist bisher ein Sicherheitspartner von ETH Layer2 wie Manta Netowork und StarkNet geworden. In der Vergangenheit haben eine Reihe von bekannten Blockchains die Sicherheitsprüfung von Beosin bestanden, darunter Ronin Network, Manta Network, Merlin Chain, Clover, Self Chain, Crust Network usw. Beosin veröffentlicht jetzt eine Prüflösung für ETH Layer2, um umfassende Sicherheitsprüfdienste für das ETH Layer2-Ökosystem bereitzustellen.

ETH Layer2 verwendet Rollups, um Hunderte von Transaktionen in einer Einreichung an das Ethereum-Mainnet zu bündeln, wodurch die Transaktionsgebühren auf alle Rollup-Benutzer aufgeteilt werden und die Gebühren pro Benutzer reduziert werden. Transaktionsdaten in den Rollups werden an Layer1 übermittelt, aber Ausführungen werden unabhängig von den Rollups durchgeführt. Durch die Übermittlung von Transaktionsdaten an Layer1 kann Rollups die Sicherheit von Ethereum erben, denn sobald die Daten auf Layer1 hochgeladen sind, erfordert das Rückgängigmachen von Rollups-Transaktionen, dass die Daten auch auf Layer1 rückgängig gemacht werden.

Derzeit können Rollups auf zwei Hauptarten implementiert werden:

Optimistic Rollups: Verwenden Sie wirtschaftliche Anreize und Spieltheorie, um Transaktionen zu überprüfen, wie z.B. Arbitrum, Base, OP, Blast, etc.

Zero-Knowledge Rollups: Verwenden Sie Zero-Knowledge-Beweise für Sicherheit und Privatsphäre, wie z.B. Scroll, Linea, zkSync, StarkNet, usw.

Optimistische Rollups

Einführung

Optimistic Rollups ist eine Möglichkeit, Ethereum zu skalieren, indem Berechnungen und Zustandsspeicherung off-chain verschoben werden. Es führt Transaktionen off-chain aus, veröffentlicht jedoch die Transaktionsdaten als calldata oder Blob im Mainnet.

Optimistic Rollups setzen einen Smart Contract namens Rollup-Vertrag auf Ethereum ein, der den Status des Rollups verwaltet, Benutzerbilanzen verfolgt und Einlagen, Abhebungen und Streitbeilegungen behandelt. Transaktionen werden von einem Sequencer außerhalb der Kette gesammelt und zusammengefasst und mehrere Transaktionen werden zu einem Rollup-Block gebündelt, der eine Zusammenfassung und einen kryptografischen Beweis des neuen Kontostands (Merkle-Root) enthält. Der Sequencer übermittelt dann den Rollup-Block an die Hauptkette, indem er Merkle-Roots und Calldata bereitstellt.

Optimistic Rollups werden als "optimistisch" bezeichnet, da sie davon ausgehen, dass Off-Chain-Transaktionen gültig sind und keinen Nachweis für die Gültigkeit der auf-Chain geschobenen Transaktionsbatches veröffentlichen. Im Gegensatz dazu setzen Optimistic Rollups auf Betrugsnachweisschemata, um Fälle zu erkennen, in denen Transaktionen falsch berechnet werden. Nachdem ein Rollup-Batch auf Ethereum eingereicht wurde, gibt es einen Zeitraum (Challenge-Periode), in dem jeder die Ergebnisse einer Rollup-Transaktion durch Berechnung eines Betrugsnachweises herausfordern kann. Der Betrugsnachweis enthält Details zu einer bestimmten Transaktion, von der der Verifizierer glaubt, dass sie betrügerisch ist.

Wie aus der untenstehenden Abbildung ersichtlich ist, beträgt die Herausforderungsfrist für die meisten Optimistic Rollups derzeit 7 Tage und die kürzeste beträgt 1 Tag.

Während der Herausforderungsperiode kann jeder die Transaktionsergebnisse durch Berechnung des Betrugsnachweises in Frage stellen. Wenn die Transaktion ungültig ist, wird der Rollup-Block widerrufen, der Herausforderer belohnt und der Sequenzer bestraft.

Wenn der Rollup-Batch nach Ablauf der Herausforderungsfrist nicht angefochten wird (d. h. alle Transaktionen korrekt ausgeführt wurden), wird er auf Ethereum als gültig und akzeptiert betrachtet. Andere können weiterhin unbestätigte Rollup-Blöcke erweitern, aber beachten Sie, dass die Transaktionsergebnisse rückgängig gemacht werden, wenn die Transaktion auf einem zuvor veröffentlichten Fehler basiert.

Schließlich muss der Benutzer eine Abhebungsanfrage an den Rollup-Vertrag stellen, um Gelder von Layer 2 auf Layer 1 abzuheben. Der Vertrag überprüft, ob der Benutzer über ausreichende Mittel auf dem Rollup verfügt, und aktualisiert entsprechend ihr Guthaben auf der Hauptkette.

Führende Layer2-Netzwerke

  1. Arbitrum

Mit ökologischem Aufbau und Luftabwürfen wurde Arbitrum schnell zum aktivsten Netzwerk in der ETH-Layer2, mit einem TVL von über 2,7 Milliarden Dollar. Nach dem großen Luftabwurf startete das Arbitrum-Team das Arbitrum-Orbit-Programm: Es ermutigt Entwickler, Layer3 unter Verwendung von Arbitrum-bezogenen Technologien zu erstellen. Beosin hat die Sicherheitsprüfung von ArbSwap und Arbipad abgeschlossen, um die Sicherheitsentwicklung des Arbitrum-Ökosystems zu unterstützen.

  1. Optimismus

Obwohl Optimismus weniger ökologisch aktiv ist als Arbitrum, hat sich OP Stack, das 2023 von Optimismus gestartet wurde, als vollständige und tragfähige Lösung für den Aufbau von modularen Layer2-Netzwerken weitgehend in der Branche etabliert. Mehr als 25 Layer2-Netzwerke wurden mit OP Stack erstellt, darunter Star-Projekte wie Base, Mantle, Manta, OP BNB und Celo. DIPX Finance und Starnet, die auf Optimismus aufgebaut sind, haben das Sicherheitsaudit von Beosin bestanden.

  1. Basis

Base ist ein Layer2-Netzwerk auf OP-Stack-Basis, das in Bezug auf ökologische Aktivität und TVL nur von Arbitrum übertroffen wird. Beosin hat zuvor die Architektur und Sicherheitsrisiken von Base im Detail analysiert und Surf Protocol und EDA geprüft, um Projektbesitzern und Benutzern zu helfen, Sicherheitsrisiken zu vermeiden.

  1. Explosion

Blast hat am Ende seines Entwicklerwettbewerbs „Big Bang“ gesehen, wie sein TVL auf über 2 Milliarden US-Dollar gestiegen ist und seinen Platz im Layer2-Kreis eingenommen hat. Beosin hat die Netzwerksicherheit von Blast vor dem Start seines Mainnets analysiert. Da Blast keinen Betrugsnachweis implementiert, werden die Vermögenswerte in einer multisignierten Brieftasche gehalten, nicht in einer Rollup-Brücke, was ein hohes Maß an Zentralisierungsrisiko birgt. Beosin hat mehrere ökologische Projekte von Blast wie Wand Protocol, Zest, Kalax geprüft.

Architekturanalyse

OP Stack, ein ausgereiftes Framework für Optimistic Rollups, zerlegt im Grunde den komplexen Prozess des Aufbaus von optimistischen Rollups-Ketten in einen vereinfachten Prozess, indem es einen vollständigen Satz von Softwarekomponenten, Tools und Frameworks bereitstellt. Hier nehmen wir das Op Stack-Framework als Beispiel, um die typische Architektur von Optimismus Rollups zu analysieren.

● Ausführungsknoten: Op-geth ist ein erweiterter Ausführungsclient für Ethereum, der Layer2-spezifische Funktionen wie den Empfang von Token-Einlagen von Layer1 handhabt. Diese Ebene definiert alle Funktionen, die für die Durchführung von Zustandsvariationen verantwortlich sind. Hier werden Zustandsübergänge basierend auf den Eingaben aus den Zusammenfassungsknoten (Sequenzen und Validatoren) über die Engine-API ausgelöst.

● Rollup-Knoten: umfasst Sequenzer und Validator. Der Kollator ist dafür verantwortlich, die verarbeiteten Transaktionen aus Ebene 2 zu bündeln und sie an Ebene 1 zu veröffentlichen. Der Sequenzer definiert, wie Transaktionen auf der Layer2-Kette gesammelt und veröffentlicht werden. Der Validator/Validierer überprüft die Gültigkeit der Stapeltransaktion und reicht Beweise ein, wenn ein Betrug festgestellt wird.

● Betrugsnachweis: Cannon ist eine verbesserte Version von Geth und ist für die Ausführung von EVM während der Phase der Betrugserkennung und des Betrugsnachweises verantwortlich. Es handelt sich im Wesentlichen um eine On-Chain-Streitmaschine, die über APIs mit Sequenzern und Validatoren zusammenarbeitet, um falsche Transaktionen nachzuweisen.

● Stapelübertragung: Sequenzen verarbeiten alle verarbeiteten Transaktionen auf einmal, die von den Überprüfern überprüft werden, und Sequenzen übermitteln die stapelverarbeiteten Transaktionen an Layer1.

● Brückenverträge: Auf Ethereum und Layer2 bereitgestellt, ermöglichen es Benutzern, Nachrichten zu übermitteln und Vermögenswerte zwischen Layer1 und Layer2 zu übertragen.

Unter der technischen Architektur von Optimistic Rollup ist es entscheidend, die Sicherheit der Benutzeranlagen zu gewährleisten, wenn sie zwischen L1 und L2 wechseln. Im Folgenden wird erläutert, wie Benutzer auf Anlagen zwischen den beiden Ebenen zugreifen können und wie das System die Integrität und Sicherheit dieser Transaktionen aufrechterhält.

● Vermögensbrücke in Rollup: Benutzer hinterlegen Mittel im Kettenbrückenvertrag der Rollup-Kette auf Layer1. Der Kettenbrückenvertrag leitet die Transaktion an Layer2 weiter, wo eine gleichwertige Menge an Vermögenswerten geprägt und an eine vom Benutzer im Optimistic Rollup ausgewählte Adresse gesendet wird.

Benutzererzeugte Transaktionen, wie z.B. Einzahlungen von Layer1 nach Layer2, werden in der Regel in die Warteschlange gestellt, bis der Sequester sie erneut an den Rollup-Vertrag übermittelt. Allerdings ermöglicht Optimistic Rollup den Benutzern, Transaktionen direkt an On-Chain Rollup-Verträge zu übermitteln, wenn die Transaktionsverzögerungen die maximal zulässige Zeit überschreiten, um die Zensurresistenz aufrechtzuerhalten.

● Abheben von Vermögenswerten aus Rollup: Aufgrund des Betrugsnachweismechanismus ist es komplizierter, Geld von Optimistic Rollup auf Ethereum abzuheben. Wenn ein Benutzer eine Layer2-zu-Layer1-Transaktion initiiert, um auf Layer1 verwaltete Mittel abzuheben, muss er auf das Ende der Herausforderungsfrist warten, die in der Regel etwa 7 Tage dauert.

Wenn der Benutzer eine Auszahlungsanfrage auf Rollup initiiert, wird die Transaktion in die nächste Charge aufgenommen und die Vermögenswerte des Benutzers auf Rollup werden zerstört. Sobald die Charge auf Ethereum veröffentlicht wird, können Benutzer einen Merkle-Beweis berechnen, um zu überprüfen, dass ihre Ausstiegstransaktion im Block enthalten ist. Der nächste Schritt besteht darin, auf das Ende der Verzögerungszeit zu warten, um die Transaktion auf Layer1 abzuschließen und die Mittel auf das Hauptnetz abzuheben.

Um zu vermeiden, dass sie eine Woche warten müssen, bevor sie Geld von Ethereum abheben, können die Benutzer von Optimistic Rollup einen Vorschuss von einem Liquiditätsanbieter (LP) anfordern, der das Eigentum an ausstehenden Abhebungen übernimmt und dem Benutzer gegen eine Gebühr Gelder auf Layer1 auszahlt. Liquiditätsanbieter können die Gültigkeit von Auszahlungsanträgen der Nutzer überprüfen, indem sie die On-Chain-Daten selbst überprüfen, bevor sie Gelder freigeben. Auf diese Weise können sie sicherstellen, dass die Transaktion schließlich bestätigt wird und die Gewissheit des Vertrauens erreicht wird.

Prüfpositionen

Layer2 ist ein vollständiges Blockchain-System, daher gilt auch für Optimistic Rollup die übliche Prüfung von öffentlichen Chains, wie im Anhang am Ende dieses Artikels detailliert beschrieben.

Darüber hinaus erfordert der Optimistic Rollup aufgrund seiner besonderen Natur eine Reihe zusätzlicher Prüfungen:

● Nachweis der Datenverfügbarkeit: Stellen Sie sicher, dass Layer2-Transaktionsdaten auf Layer1 verfügbar sind, um Datenverlust zu verhindern.

● Daten-Synchronisationsmechanismus: Überprüfen Sie, ob der Daten-Synchronisationsmechanismus zwischen Layer1 und Layer2 stabil ist und mit abnormen Situationen wie Netzwerkpartitionierung umgehen kann.

● Betrugsbeweisvertrag: Überprüfen Sie, ob der Betrugsbeweisvertrag korrekt implementiert ist.

● Herausforderungszeitraum-Mechanismus: Überprüfen Sie, ob die Länge des Herausforderungszeitraums angemessen ist und ob der Betrugsnachweis innerhalb der angegebenen Zeit abgeschlossen werden kann.

● Prozess zur Einreichung von Betrugsnachweisen: Überprüfen Sie, dass der Prozess zur Einreichung von Betrugsnachweisen sicher ist.

● Einzahlungs- und Auszahlungsprozess: Überprüfen Sie den Einzahlungs- und Auszahlungsprozess von Layer1 zu Layer2 und von Layer2 zu Layer1, um sicherzustellen, dass der Prozess sicher ist.

● Vermögenswerte prägen und verbrennen: Überprüfen Sie die Gieß- und Zerstörungslogik des Vermögenswerts auf Layer2, um die korrekte Entsprechung mit dem Vermögenswert auf Layer1 sicherzustellen.

● Liquiditätsanbietermechanismus: Wenn es einen Liquiditätsanbieter (LP)-Mechanismus gibt, ist es notwendig, den Betriebsprozess des LP und seine Sicherheit zu überprüfen.

Zero-Knowledge Rollups

Einführung

Zero-Knowledge (ZK) Rollup ist eine Layer2-Lösung, die auf dem Zero-Knowledge-Beweis basiert. Sie führt hauptsächlich komplexe Berechnungen und die Erzeugung des Beweises off-chain durch, überprüft den Beweis on-chain und speichert einen Teil der Daten, um die Verfügbarkeit der Daten zu gewährleisten.

ZK Rollup ist eine „hybride Skalierungslösung“, die ein Off-Chain-Protokoll darstellt, das unabhängig läuft, aber Sicherheit von Ethereum erhält. Konkret erzwingt das Ethereum-Netzwerk die Gültigkeit von Statusaktualisierungen auf den ZK Rollups und garantiert die Verfügbarkeit von Hintergrunddaten jedes Mal, wenn der Rollup-Status aktualisiert wird. Der Zustand des Rollups wird durch Smart Contracts auf dem Ethereum-Netzwerk aufrechterhalten. Um diesen Status zu aktualisieren, muss der ZK Rollups-Knoten einen Gültigkeitsnachweis zur Überprüfung einreichen. Ein Gültigkeitsnachweis ist eine kryptografische Garantie dafür, dass eine vorgeschlagene Änderung des Zustands tatsächlich das Ergebnis der Ausführung einer bestimmten Stapeltransaktion ist. Das bedeutet, dass ZK Rollups nur einen Gültigkeitsnachweis erbringen muss, um Transaktionen auf Ethereum abzuschließen, ohne alle Transaktionsdaten veröffentlichen zu müssen.

Es gibt keine Verzögerung beim Übertragen von Geldern von ZK Rollups auf Ethereum, da die Ausgangstransaktion ausgeführt wird, sobald der ZK Rollups-Vertrag den Beweis für die Gültigkeit überprüft hat. Im Gegensatz dazu führt das Abheben von Geldern aus Optimistic Rollups zu Verzögerungen, da jeder den Beweis für Betrug verwenden kann, um eine Ausgangstransaktion anzufechten.

Führende Layer2-Netzwerke

  1. zkSync

zkSync, eine L2-Lösung, die vor fünf Jahren vom Matter Labs-Team auf den Markt gebracht wurde, nutzt Zero-Knowledge-Proof-Technologie, um eine effiziente Transaktionsüberprüfung zu ermöglichen, und hat mehr als 200 Millionen US-Dollar aufgebracht. zkSync ist eines der ökologisch aktivsten Layer2-Netzwerke, die ZK Rollups verwenden, und auch zkSync ist umstritten. Beosin hat zuvor ein Audit seines führenden DeFi-Projekts SyncSwap durchgeführt, das Codequalität, Vertragslogik und -sicherheit, Betriebsmodell und mehr abdeckte.

  1. StarkNet

StarkNet verwendet ZK-STARK, um Layer2 zu erstellen, um die Transaktionsgeschwindigkeit zu erhöhen und Transaktionsgebühren zu reduzieren. StarkNet verfügt über eine native virtuelle Maschine (Cairo VM) und eine Entwicklungssprache Cairo, um Entwicklern zu helfen, intelligente Verträge sicherer und einfacher zu schreiben. Beosin ist offizieller Sicherheitspartner von StarkNet geworden und hat Sicherheitsaudits für Option Dance und Reddio abgeschlossen. Am 13. August 2024 schloss Reddio eine Seed-Finanzierungsrunde unter der Leitung von Paradigm ab, um ein leistungsstarkes paralleles EVM-Layer2-Netzwerk aufzubauen.

  1. Scroll

Scroll wird durch die Zero-Knowledge-Proof-Technologie skaliert, und die Hardware beschleunigt die Generierung und Überprüfung von Zero-Knowledge-Proofs, um eine Bytecode-EVM-Kompatibilität zu erreichen. Dies bedeutet, dass Entwickler Solidity und Ethereum-bezogene Entwicklungstools verwenden können, um Smart Contracts zu erstellen.

Architekturanalyse

Gängige Rahmenbedingungen für ZK Rollups umfassen Rollup- und Bridge-Verträge, Sammler, Aggregatoren, Repeater und Roller-Netzwerke, die Nullwissenbeweise generieren. Die spezifische Architektur ist in der folgenden Abbildung dargestellt:

● Rollup-Vertrag und Brückenvertrag:

Der Rollup-Vertrag ist dafür verantwortlich, die Datenverfügbarkeit für Rollup-Transaktionen bereitzustellen, den zkEVM-Gültigkeitsnachweis zu überprüfen und Benutzern die Übertragung von Vermögenswerten zwischen Ethereum und Rollup zu ermöglichen. Er empfängt den Layer-2-State-Root und -Block vom Collator, der State-Root wird im Ethereum-State gespeichert, und die Layer-2-Blockdaten werden als Calldata von Ethereum gespeichert.

Brückenverträge werden auf Ethereum und Layer2 bereitgestellt, um Benutzern zu ermöglichen, Nachrichten zu übermitteln und Vermögenswerte zwischen Layer1 und Layer2 zu übertragen.

● Sequenzer: Der Sequenzer stellt die JSON-RPC-Schnittstelle bereit und akzeptiert Layer2-Transaktionen. Er ruft regelmäßig eine Stapel von Transaktionen aus dem Speicherpool ab, um sie auszuführen, und generiert neue Layer2-Blöcke und Zustandswurzeln. Seine Implementierung basiert in der Regel auf Go-Ethereum (Geth) und gewährleistet so die beste Kompatibilität und höchste Sicherheit.

● Koordinator: Der Koordinator wird benachrichtigt, wenn der Collator einen neuen Block generiert und von diesem Collator eine Ausführungsspur dieses Blocks empfängt. Die Ausführungsspur wird dann an einen zufällig ausgewählten Roller im Roller-Netzwerk weitergeleitet, der einen Nachweis der Gültigkeit generiert.

● Relayer: Der Repeater überwacht Rollup-Verträge und Brückenverträge, die auf Ethereum und Layer2 bereitgestellt sind. Die Hauptaufgaben sind: 1) Verfolgung der Datenverfügbarkeit und Validierung von Layer2-Blöcken durch Überwachung von Rollup-Verträgen; 2) Überwachung von Einzahlungs- und Auszahlungsereignissen von Ethereum und Layer2-Brückenengagements und Weiterleitung von Nachrichten an das andere Ende.

● Roller-Netzwerk: Roller im Roller-Netzwerk fungiert als der Beweiser und ist für die Generierung eines Gültigkeitsnachweises für ZK Rollup verantwortlich. Eine Blockausführungsspur wird zunächst vom Koordinator empfangen, in einen Schaltungszeugen umgewandelt, dann wird für jede zkevm unter Verwendung von Hardwarebeschleunigung ein Beweis generiert und schließlich wird eine Beweisaggregation verwendet, um mehrere Beweise in einen einzelnen Beweis zu aggregieren.

Unter der technischen Architektur von ZK Rollups ist es wichtig, die Sicherheit der Benutzerassets während des Transfers zwischen L1 und L2 zu gewährleisten. Im Folgenden wird erläutert, wie Benutzer auf Assets zwischen den beiden Ebenen zugreifen können und wie das System die Integrität und Sicherheit dieser Transaktionen aufrechterhält.

● Asset-Bridging in Rollup: Benutzer treten in den Rollup ein, indem sie Token in einen ZK-Rollups-Vertrag deponieren, der auf einer Ebene der Netzwerkkette bereitgestellt wird. Diese Transaktion muss von der Projektseite an den Rollupvertrag übermittelt werden.

Wenn die ausstehende Einzahlungswarteschlange zu füllen beginnt, akzeptiert der ZK Rollups Operator diese Einzahlungstransaktionen und übermittelt sie an den Rollup-Vertrag. Sobald die Mittel im Rollup eingezahlt sind, kann der Benutzer mit der Transaktionsverarbeitung beginnen.

Benutzer können den Saldo auf Rollup überprüfen, indem sie ihren Account hashen, den Hash-Wert an den Rollup-Vertrag senden und einen Merkle-Beweis bereitstellen, der gegen den aktuellen Zustandsbaum verifiziert.

● Abheben von Vermögenswerten aus Rollup: Der Benutzer initiiert eine Ausgangstransaktion und sendet die Vermögenswerte auf ihrem Rollup-Konto an das angegebene Konto zur Vernichtung. Wenn der Betreiber die Transaktion zur nächsten Charge hinzufügt, kann der Benutzer einen Abhebungsantrag an den On-Chain-Vertrag stellen. Abhebungsanträge beinhalten:

  1. Merkle-Proof, der beweist, dass die Transaktion des Benutzers zu dem zerstörten Konto im Transaktionspaket hinzugefügt wurde

  2. Transaktionsdaten

  3. Batches des Stamms

  4. Layer1-Netzwerkadresse zum Empfangen von Einzahlungen

Der Rollup-Vertrag hashiert die Transaktionsdaten, überprüft, ob der Batch-Root existiert, und verwendet den Merkle-Beweis, um zu überprüfen, ob der Transaktionshash Teil des Batch-Roots ist. Der Vertrag führt die Ausgangstransaktion aus und sendet die Gelder an eine Adresse im Layer1-Netzwerk, die vom Benutzer ausgewählt wurde.

Prüfungsgegenstände

Layer 2 ist ein vollständiges Blockchain-System, daher gelten auch für ZK Rollup gängige Prüfpunkte für Blockchains, wie im Anhang am Ende dieses Artikels detailliert beschrieben.

Darüber hinaus muss ZK Rollup aufgrund seiner Besonderheit einige zusätzliche Audits durchführen:

● Nachweis der Systemsicherheit: Prüfen Sie die Sicherheit und Korrektheit der verwendeten Zero-Knowledge-Proof-Verfahren (z.B. Groth16, Plonk, Halo2, zk-STARK, etc.).

● Schaltungssicherheit: Überprüfen Sie mögliche Schwachstellen im Schaltungsentwurf und in der Implementierung, hauptsächlich einschließlich der folgenden:

  1. Unterbestimmte Schaltkreise

  2. Überbeschränkte Schaltkreise

  3. Nichtdeterministische Schaltkreise

  4. Arithmetische Über-/Unterläufe Arithmetische Über-/Unterläufe

  5. Unpassende Bit-Längen

  6. Unbenutzte öffentliche Eingaben optimiert

  7. Frozen Heart: Schmieden von Zero-Knowledge-Beweisen

  8. Vertrauenswürdiges Setup-Leck

  9. Zugewiesen, aber nicht eingeschränkt

  10. Unsichere Komponentennutzung

  11. Variable Präzision

● Proof-Erzeugung und -Validierung: Überprüfen Sie den Prozess zur Proof-Erzeugung und -Validierung, um sicherzustellen, dass er effizient und sicher ist.

● Nachweis der Datenverfügbarkeit: Stellen Sie sicher, dass Layer2-Transaktionsdaten auf Layer1 verfügbar sind, um Datenverluste zu vermeiden.

● Daten-Synchronisationsmechanismus: Überprüfen Sie, ob der Daten-Synchronisationsmechanismus zwischen Layer1 und Layer2 stabil ist und mit abnormen Situationen wie Netzwerkpartitionierung umgehen kann.

● Einzahlungs- und Auszahlungsprozess: Überprüfen Sie den Einzahlungs- und Auszahlungsprozess von Layer1 zu Layer2 und von Layer2 zu Layer1, um sicherzustellen, dass der Prozess sicher ist.

● Asset Minting und Burning: Überprüfen Sie die Casting- und Destruction-Logik des Assets auf Layer2, um die korrekte Korrespondenz mit dem Layer1-Asset sicherzustellen.

● Scannen auf externe Abhängigkeiten und bekannte Schwachstellen: ZK Rollup verlässt sich oft stark auf kryptographische und mathematische Repositories oder Tools von Drittanbietern und sollte deren Abhängigkeitssicherheit gründlich überprüfen, um bekannte Schwachstellen zu scannen und zu validieren.

Anhang

Blockchain & Layer2 Allgemeine Prüfpunkte:

● Integer-Überlauf: Überprüfen Sie Integer-Überläufe und Integer-Unterläufe

● Schleife: Überprüfen Sie die Schleife des Programms, um zu sehen, ob die Bedingung vernünftig ist

● Unendlicher rekursiver Aufruf: Prüfen, ob die Exit-Bedingung des programmrekursiven Aufrufs sinnvoll ist

● Rennbedingung: Überprüft den Zugriff auf gemeinsam genutzte Ressourcen im gleichzeitigen Zustand

● Ausnahmecrash: Überprüfen Sie den Code, der Ausnahmen wirft und das Programm aktiv beendet

● Nullteilbarkeitslücke: Überprüfen Sie, ob es einen Fall von Division durch 0 gibt

● Typumwandlung: Überprüfen Sie, ob die Typumwandlung korrekt ist und ob wichtige Informationen während der Umwandlung verloren gehen

● Array out of bounds: Überprüft den Zugriff auf Elemente außerhalb der Array-Grenzen

● Deserialisierbarkeitslücke: Überprüfen Sie auf Probleme während der Deserialisierung

● Funktionssicherheit bei Implementierung: Überprüfung, ob die Implementierung von RPC-Schnittstellen sicherheitsrelevante Risiken aufweist und mit dem funktionalen Design der RPC-Schnittstellen übereinstimmt

● Ob die Berechtigungseinstellungen für die sensiblen RPC-Schnittstellen vernünftig sind: Überprüfen Sie die Zugriffsberechtigungseinstellungen der sensiblen RPC-Schnittstellen

● Verschlüsselungsübertragungsmechanismus: Überprüfen Sie, ob ein verschlüsseltes Übertragungsprotokoll wie TLS verwendet wird

● Anforderungsdatenformatparsen: Überprüft den Formatparsenprozess für Anforderungsdaten

● Wallet-Entsperrangriff: Wenn ein Knoten seine Brieftasche entsperrt, wird er von RPC aufgefordert, Gelder zu stehlen

● Traditionelle Web-Sicherheit: Überprüfen Sie auf folgende Schwachstellen: Cross-Site Scripting (XSS)/Template-Injektion/Schwachstelle von Drittanbieterkomponenten/HTTP-Parameterkontamination/SQL-Injektion/XXE-Entitätsinjektion/Deserialisierungsschwachstelle/SSRF-Schwachstelle/Code-Injektion/lokale Dateieinschließung/Remote-Dateieinschließung/Befehlsausführungsinjektion und andere traditionelle Schwachstellen

● Netzwerk-Knoten Identitätsauthentifizierung und Identifikationsmechanismus: Prüfen, ob ein Mechanismus zur Identitätsauthentifizierung von Knoten vorhanden ist. Der Mechanismus zur Identitätsauthentifizierung von Knoten kann umgangen werden.

● Routing-Tabelle Verunreinigung: Überprüfen Sie, ob die Routing-Tabelle beliebig eingefügt oder überschrieben werden kann

● Knotenerkennungsalgorithmus: Prüfen Sie, ob der Knotenerkennungsalgorithmus ausgewogen und unvorhersehbar ist, z. B. ob der Abstandsalgorithmus unsymmetrisch ist

● Audit der Verbindungsnutzung: Prüfen Sie, ob das Limit und die Verwaltung der Anzahl der mit dem P2P-Netzwerk verbundenen Knoten angemessen sind

● Sonnenfinsternis-Angriffe: Kosten und Gefahren von Sonnenfinsternis-Angriffen bewerten, gegebenenfalls quantitative Analyse bereitstellen

● Sybil-Angriff: Bewertung von Abstimmungskonsensmechanismen und Analyse von Strategien zur Überprüfung der Wahlberechtigung

● Abhörangriff: Überprüfen Sie, ob das Kommunikationsprotokoll die Privatsphäre offenlegt

● Alien-Angriff: Bewertet, ob der Knoten denselben Typ von Kettenknoten erkennen kann

● Zeit-Hijacking: Überprüfen Sie den Netzwerk-Zeitberechnungsmechanismus eines Knotens

● Memory-Erschöpfungsangriff: Überprüfen Sie den großen Speicherverbrauch

● Angriff auf Erschöpfung der Festplatte: Überprüfen Sie, wo große Dateien gespeichert sind

● Socket-Druckangriff: Überprüfen Sie die Begrenzungspolitik für die Anzahl der Verbindungen

● Kernel-Handle-Erschöpfungsangriff: Prüfen Sie, ob es Einschränkungen bei der Erstellung von Kernel-Handles gibt, z. B. Datei-Handles

● Persistente Speicherlecks: Überprüfen Sie auf Speicherlecks

● Sicherheit des Hash-Algorithmus: Überprüfen Sie die Kollisionsresistenz des Hash-Algorithmus

● Sicherheit des digitalen Signaturalgorithmus: Überprüfen Sie die Sicherheit des Signaturalgorithmus und der Algorithmusimplementierung

● Sicherheit des Verschlüsselungsalgorithmus: Überprüfen Sie die Sicherheit des Verschlüsselungsalgorithmus und der Algorithmusimplementierung

● Sicherheit des Zufallszahlengenerators: Prüfen Sie, ob der Schlüsselalgorithmus zur Generierung von Zufallszahlen sinnvoll ist

● BFT Implementierungssicherheit: Bewertung der Implementierungssicherheit von BFT-Algorithmen

● Regeln zur Auswahl der Forks: Überprüfen Sie die Regeln zur Auswahl der Forks, um die Sicherheit zu gewährleisten

● Zentralisierungsgradtest: Bestimmen Sie, ob es eine übermäßig zentralisierte Gestaltung in der Systemgestaltung gibt

● Incentive-Audit: Bewerten Sie die Auswirkungen von Anreizen auf die Sicherheit

● Double-Spending-Angriffe: Überprüfen Sie, ob der Konsens gegen Double-Spending-Angriffe verteidigen kann

● MEV-Angriffsaudit: Untersuchen Sie die Auswirkungen des MEV des Blockpaketknotens auf die Fairness der Kette

● Synchronisierungsprozess-Audit blockieren: Prüfung auf Sicherheitsprobleme während der Synchronisierung

● Blockformat-Analyseprozessprüfung: Überprüfung auf Sicherheitsprobleme während des Formatparsings, wie z.B. Parsingfehler, die zu Abstürzen führen.

● Audit des Blockgenerierungsprozesses: Überprüfen Sie Sicherheitsaspekte im Blockgenerierungsprozess, einschließlich der Frage, ob die Merkle-Baumwurzel auf vernünftige Weise aufgebaut ist

● Überprüfung des Blockverifizierungsprozesses: Überprüfen Sie, ob die Blocksignaturdaten und Verifizierungslogik ausreichend sind

● Überprüfung der Blockvalidierungslogik: Überprüfen Sie, ob der Blockvalidierungsalgorithmus und die Implementierung vernünftig sind

● Block-Hash-Kollision: Überprüfen Sie, wie die Block-Hash-Kollision konstruiert ist und ob die Kollision vernünftig behandelt wird

● Blockverarbeitungsressourcenbegrenzungen: Überprüfen Sie, ob die Begrenzungen für verwaiste Blockpools, Verifizierungsberechnungen, Festplattenadressierung und andere Ressourcen angemessen sind

● Überprüfung des Transaktions-Synchronisierungsprozesses: Überprüft auf Sicherheitsprobleme im Synchronisierungsprozess

● Transaktionshash-Kollisionen: Untersuchen Sie, wie Transaktionshash-Kollisionen konstruiert und wie sie behandelt werden.

● Transaktionsformatparsen: Überprüfen Sie Sicherheitsprobleme während des Formatparsens, wie z.B. Parsefehler, die Abstürze verursachen

● Überprüfung der Transaktionsgültigkeit: Überprüfen Sie, ob die Signaturelemente jeder Art von Transaktion und die Überprüfungslogik ausreichend sind

● Ressourcenlimits für die Transaktionsverarbeitung: Prüfen Sie, ob Ressourcenlimits wie Transaktionspools, Verifizierungsrechen und Festplattenadressierung angemessen sind

● Transaktionsverformungsangriff: Ob eine Transaktion interne Felder (wie ScriptSig) ändern kann, um den Transaktionshash zu ändern, ohne die Gültigkeit der Transaktion zu beeinträchtigen

● Überprüfung von Transaktionswiederholungsangriffen: Überprüft die Erkennung von Transaktionswiederholungen im System

● Vertragsbytecode-Prüfung: Überprüfen Sie die Sicherheit des Vertragsprüfungsprozesses der virtuellen Maschine, z. B. Integer-Überlauf und tote Schleifen

● Vertrags-Bytecode-Ausführung: Überprüfen Sie die Sicherheit des Bytecode-Ausführungsprozesses der virtuellen Maschine, z. B. Integer-Überlauf, tote Schleifen usw.

● Gasmodell: Überprüfen Sie, ob die Gebühren für jede atomare Operation der Transaktionsverarbeitung/Vertragsausführung proportional zum Ressourcenverbrauch sind

● Protokollintegrität: Überprüfen Sie, ob wichtige Informationen protokolliert werden

● Protokollsicherheit: Überprüfen Sie, ob unsachgemäße Behandlung von Protokollen Sicherheitsprobleme verursacht, wie z.B. Ganzzahlenüberlauf

● Protokolle enthalten Datenschutzinformationen: Prüfen Sie, ob Protokolle Datenschutzinformationen wie Schlüssel enthalten

● Protokollspeicherung: Überprüfen Sie, ob zu viel Inhalt in den Protokollen aufgezeichnet wird, was Ressourcen des Knotens verbraucht.

● Knotencode Lieferketten-Sicherheit: Überprüfen Sie alle Bibliotheken von Drittanbietern, Komponenten und Versionen von öffentlichen Kettenrahmenwerken auf bekannte Probleme

Haftungsausschluss:

  1. Dieser Artikel wurde von [ausgedruckt.Beosin]. Alle Urheberrechte gehören dem Originalautor [ Beosin]. Wenn Einwände gegen diese Nachdruck gibt es, kontaktieren Sie bitte den Tor lernenTeam, und sie werden es umgehend bearbeiten.
  2. Haftungsausschluss: Die Ansichten und Meinungen, die in diesem Artikel zum Ausdruck gebracht werden, sind ausschließlich die des Autors und stellen keine Anlageberatung dar.
  3. Übersetzungen des Artikels in andere Sprachen werden vom Gate Learn-Team durchgeführt. Sofern nicht anders angegeben, ist das Kopieren, Verteilen oder Plagiieren der übersetzten Artikel untersagt.

Ethereum ist zu langsam und teuer? ETH Layer2 Skalierungslösung und Audit-Leitfaden

Fortgeschrittene9/24/2024, 1:06:47 PM
ETH Layer2 verwendet Rollups, um Hunderte von Transaktionen in einer Einreichung zum Ethereum-Hauptnetz zu bündeln. Dadurch werden die Transaktionsgebühren auf alle Rollup-Benutzer aufgeteilt und die Gebühren pro Benutzer reduziert. Die Transaktionsdaten in den Rollups werden an Layer1 übermittelt, aber die Ausführungen erfolgen unabhängig durch die Rollups. Durch die Übermittlung der Transaktionsdaten an Layer1 kann Rollups die Sicherheit von Ethereum erben, da das Zurücksetzen von Rollups-Transaktionen auf Layer1 erfordert, dass die Daten auf Layer1 zurückgesetzt werden.

Die drei Kernattribute der Blockchain sind Dezentralisierung, Sicherheit und Skalierbarkeit. Gemäß der Blockchain-Trilemma-Theorie kann eine Blockchain-Architektur nur zwei davon implementieren. Ethereum wurde mit Dezentralisierung und Sicherheit im Sinn entworfen und ist daher in Bezug auf Skalierbarkeit schlecht. Derzeit verarbeitet Ethereum mehr als 1 Million Transaktionen pro Tag, was zu hohen Transaktionsgebühren führen kann und die Notwendigkeit von Skalierungslösungen für Ethereum erhöht.

Es gibt mehrere verschiedene Arten von Ethereum-Skalierungslösungen, jede mit ihren eigenen Kompromissen und Sicherheitsmodellen, einschließlich Layer 1-Sharding, Layer 2-Statuskanälen, Plasma, Sidechains, Rollups und Validium. Da die Sharding-Technologie langsam zu entwickeln und komplex zu implementieren ist und Sidechains und Validium die Sicherheit und Datenverfügbarkeit von Ethereum nicht erben können. Zusammenfassend verwendet das Ethereum-Ökosystem jetzt hauptsächlich die Rollups-Skalierungslösung.

Beosin ist bisher ein Sicherheitspartner von ETH Layer2 wie Manta Netowork und StarkNet geworden. In der Vergangenheit haben eine Reihe von bekannten Blockchains die Sicherheitsprüfung von Beosin bestanden, darunter Ronin Network, Manta Network, Merlin Chain, Clover, Self Chain, Crust Network usw. Beosin veröffentlicht jetzt eine Prüflösung für ETH Layer2, um umfassende Sicherheitsprüfdienste für das ETH Layer2-Ökosystem bereitzustellen.

ETH Layer2 verwendet Rollups, um Hunderte von Transaktionen in einer Einreichung an das Ethereum-Mainnet zu bündeln, wodurch die Transaktionsgebühren auf alle Rollup-Benutzer aufgeteilt werden und die Gebühren pro Benutzer reduziert werden. Transaktionsdaten in den Rollups werden an Layer1 übermittelt, aber Ausführungen werden unabhängig von den Rollups durchgeführt. Durch die Übermittlung von Transaktionsdaten an Layer1 kann Rollups die Sicherheit von Ethereum erben, denn sobald die Daten auf Layer1 hochgeladen sind, erfordert das Rückgängigmachen von Rollups-Transaktionen, dass die Daten auch auf Layer1 rückgängig gemacht werden.

Derzeit können Rollups auf zwei Hauptarten implementiert werden:

Optimistic Rollups: Verwenden Sie wirtschaftliche Anreize und Spieltheorie, um Transaktionen zu überprüfen, wie z.B. Arbitrum, Base, OP, Blast, etc.

Zero-Knowledge Rollups: Verwenden Sie Zero-Knowledge-Beweise für Sicherheit und Privatsphäre, wie z.B. Scroll, Linea, zkSync, StarkNet, usw.

Optimistische Rollups

Einführung

Optimistic Rollups ist eine Möglichkeit, Ethereum zu skalieren, indem Berechnungen und Zustandsspeicherung off-chain verschoben werden. Es führt Transaktionen off-chain aus, veröffentlicht jedoch die Transaktionsdaten als calldata oder Blob im Mainnet.

Optimistic Rollups setzen einen Smart Contract namens Rollup-Vertrag auf Ethereum ein, der den Status des Rollups verwaltet, Benutzerbilanzen verfolgt und Einlagen, Abhebungen und Streitbeilegungen behandelt. Transaktionen werden von einem Sequencer außerhalb der Kette gesammelt und zusammengefasst und mehrere Transaktionen werden zu einem Rollup-Block gebündelt, der eine Zusammenfassung und einen kryptografischen Beweis des neuen Kontostands (Merkle-Root) enthält. Der Sequencer übermittelt dann den Rollup-Block an die Hauptkette, indem er Merkle-Roots und Calldata bereitstellt.

Optimistic Rollups werden als "optimistisch" bezeichnet, da sie davon ausgehen, dass Off-Chain-Transaktionen gültig sind und keinen Nachweis für die Gültigkeit der auf-Chain geschobenen Transaktionsbatches veröffentlichen. Im Gegensatz dazu setzen Optimistic Rollups auf Betrugsnachweisschemata, um Fälle zu erkennen, in denen Transaktionen falsch berechnet werden. Nachdem ein Rollup-Batch auf Ethereum eingereicht wurde, gibt es einen Zeitraum (Challenge-Periode), in dem jeder die Ergebnisse einer Rollup-Transaktion durch Berechnung eines Betrugsnachweises herausfordern kann. Der Betrugsnachweis enthält Details zu einer bestimmten Transaktion, von der der Verifizierer glaubt, dass sie betrügerisch ist.

Wie aus der untenstehenden Abbildung ersichtlich ist, beträgt die Herausforderungsfrist für die meisten Optimistic Rollups derzeit 7 Tage und die kürzeste beträgt 1 Tag.

Während der Herausforderungsperiode kann jeder die Transaktionsergebnisse durch Berechnung des Betrugsnachweises in Frage stellen. Wenn die Transaktion ungültig ist, wird der Rollup-Block widerrufen, der Herausforderer belohnt und der Sequenzer bestraft.

Wenn der Rollup-Batch nach Ablauf der Herausforderungsfrist nicht angefochten wird (d. h. alle Transaktionen korrekt ausgeführt wurden), wird er auf Ethereum als gültig und akzeptiert betrachtet. Andere können weiterhin unbestätigte Rollup-Blöcke erweitern, aber beachten Sie, dass die Transaktionsergebnisse rückgängig gemacht werden, wenn die Transaktion auf einem zuvor veröffentlichten Fehler basiert.

Schließlich muss der Benutzer eine Abhebungsanfrage an den Rollup-Vertrag stellen, um Gelder von Layer 2 auf Layer 1 abzuheben. Der Vertrag überprüft, ob der Benutzer über ausreichende Mittel auf dem Rollup verfügt, und aktualisiert entsprechend ihr Guthaben auf der Hauptkette.

Führende Layer2-Netzwerke

  1. Arbitrum

Mit ökologischem Aufbau und Luftabwürfen wurde Arbitrum schnell zum aktivsten Netzwerk in der ETH-Layer2, mit einem TVL von über 2,7 Milliarden Dollar. Nach dem großen Luftabwurf startete das Arbitrum-Team das Arbitrum-Orbit-Programm: Es ermutigt Entwickler, Layer3 unter Verwendung von Arbitrum-bezogenen Technologien zu erstellen. Beosin hat die Sicherheitsprüfung von ArbSwap und Arbipad abgeschlossen, um die Sicherheitsentwicklung des Arbitrum-Ökosystems zu unterstützen.

  1. Optimismus

Obwohl Optimismus weniger ökologisch aktiv ist als Arbitrum, hat sich OP Stack, das 2023 von Optimismus gestartet wurde, als vollständige und tragfähige Lösung für den Aufbau von modularen Layer2-Netzwerken weitgehend in der Branche etabliert. Mehr als 25 Layer2-Netzwerke wurden mit OP Stack erstellt, darunter Star-Projekte wie Base, Mantle, Manta, OP BNB und Celo. DIPX Finance und Starnet, die auf Optimismus aufgebaut sind, haben das Sicherheitsaudit von Beosin bestanden.

  1. Basis

Base ist ein Layer2-Netzwerk auf OP-Stack-Basis, das in Bezug auf ökologische Aktivität und TVL nur von Arbitrum übertroffen wird. Beosin hat zuvor die Architektur und Sicherheitsrisiken von Base im Detail analysiert und Surf Protocol und EDA geprüft, um Projektbesitzern und Benutzern zu helfen, Sicherheitsrisiken zu vermeiden.

  1. Explosion

Blast hat am Ende seines Entwicklerwettbewerbs „Big Bang“ gesehen, wie sein TVL auf über 2 Milliarden US-Dollar gestiegen ist und seinen Platz im Layer2-Kreis eingenommen hat. Beosin hat die Netzwerksicherheit von Blast vor dem Start seines Mainnets analysiert. Da Blast keinen Betrugsnachweis implementiert, werden die Vermögenswerte in einer multisignierten Brieftasche gehalten, nicht in einer Rollup-Brücke, was ein hohes Maß an Zentralisierungsrisiko birgt. Beosin hat mehrere ökologische Projekte von Blast wie Wand Protocol, Zest, Kalax geprüft.

Architekturanalyse

OP Stack, ein ausgereiftes Framework für Optimistic Rollups, zerlegt im Grunde den komplexen Prozess des Aufbaus von optimistischen Rollups-Ketten in einen vereinfachten Prozess, indem es einen vollständigen Satz von Softwarekomponenten, Tools und Frameworks bereitstellt. Hier nehmen wir das Op Stack-Framework als Beispiel, um die typische Architektur von Optimismus Rollups zu analysieren.

● Ausführungsknoten: Op-geth ist ein erweiterter Ausführungsclient für Ethereum, der Layer2-spezifische Funktionen wie den Empfang von Token-Einlagen von Layer1 handhabt. Diese Ebene definiert alle Funktionen, die für die Durchführung von Zustandsvariationen verantwortlich sind. Hier werden Zustandsübergänge basierend auf den Eingaben aus den Zusammenfassungsknoten (Sequenzen und Validatoren) über die Engine-API ausgelöst.

● Rollup-Knoten: umfasst Sequenzer und Validator. Der Kollator ist dafür verantwortlich, die verarbeiteten Transaktionen aus Ebene 2 zu bündeln und sie an Ebene 1 zu veröffentlichen. Der Sequenzer definiert, wie Transaktionen auf der Layer2-Kette gesammelt und veröffentlicht werden. Der Validator/Validierer überprüft die Gültigkeit der Stapeltransaktion und reicht Beweise ein, wenn ein Betrug festgestellt wird.

● Betrugsnachweis: Cannon ist eine verbesserte Version von Geth und ist für die Ausführung von EVM während der Phase der Betrugserkennung und des Betrugsnachweises verantwortlich. Es handelt sich im Wesentlichen um eine On-Chain-Streitmaschine, die über APIs mit Sequenzern und Validatoren zusammenarbeitet, um falsche Transaktionen nachzuweisen.

● Stapelübertragung: Sequenzen verarbeiten alle verarbeiteten Transaktionen auf einmal, die von den Überprüfern überprüft werden, und Sequenzen übermitteln die stapelverarbeiteten Transaktionen an Layer1.

● Brückenverträge: Auf Ethereum und Layer2 bereitgestellt, ermöglichen es Benutzern, Nachrichten zu übermitteln und Vermögenswerte zwischen Layer1 und Layer2 zu übertragen.

Unter der technischen Architektur von Optimistic Rollup ist es entscheidend, die Sicherheit der Benutzeranlagen zu gewährleisten, wenn sie zwischen L1 und L2 wechseln. Im Folgenden wird erläutert, wie Benutzer auf Anlagen zwischen den beiden Ebenen zugreifen können und wie das System die Integrität und Sicherheit dieser Transaktionen aufrechterhält.

● Vermögensbrücke in Rollup: Benutzer hinterlegen Mittel im Kettenbrückenvertrag der Rollup-Kette auf Layer1. Der Kettenbrückenvertrag leitet die Transaktion an Layer2 weiter, wo eine gleichwertige Menge an Vermögenswerten geprägt und an eine vom Benutzer im Optimistic Rollup ausgewählte Adresse gesendet wird.

Benutzererzeugte Transaktionen, wie z.B. Einzahlungen von Layer1 nach Layer2, werden in der Regel in die Warteschlange gestellt, bis der Sequester sie erneut an den Rollup-Vertrag übermittelt. Allerdings ermöglicht Optimistic Rollup den Benutzern, Transaktionen direkt an On-Chain Rollup-Verträge zu übermitteln, wenn die Transaktionsverzögerungen die maximal zulässige Zeit überschreiten, um die Zensurresistenz aufrechtzuerhalten.

● Abheben von Vermögenswerten aus Rollup: Aufgrund des Betrugsnachweismechanismus ist es komplizierter, Geld von Optimistic Rollup auf Ethereum abzuheben. Wenn ein Benutzer eine Layer2-zu-Layer1-Transaktion initiiert, um auf Layer1 verwaltete Mittel abzuheben, muss er auf das Ende der Herausforderungsfrist warten, die in der Regel etwa 7 Tage dauert.

Wenn der Benutzer eine Auszahlungsanfrage auf Rollup initiiert, wird die Transaktion in die nächste Charge aufgenommen und die Vermögenswerte des Benutzers auf Rollup werden zerstört. Sobald die Charge auf Ethereum veröffentlicht wird, können Benutzer einen Merkle-Beweis berechnen, um zu überprüfen, dass ihre Ausstiegstransaktion im Block enthalten ist. Der nächste Schritt besteht darin, auf das Ende der Verzögerungszeit zu warten, um die Transaktion auf Layer1 abzuschließen und die Mittel auf das Hauptnetz abzuheben.

Um zu vermeiden, dass sie eine Woche warten müssen, bevor sie Geld von Ethereum abheben, können die Benutzer von Optimistic Rollup einen Vorschuss von einem Liquiditätsanbieter (LP) anfordern, der das Eigentum an ausstehenden Abhebungen übernimmt und dem Benutzer gegen eine Gebühr Gelder auf Layer1 auszahlt. Liquiditätsanbieter können die Gültigkeit von Auszahlungsanträgen der Nutzer überprüfen, indem sie die On-Chain-Daten selbst überprüfen, bevor sie Gelder freigeben. Auf diese Weise können sie sicherstellen, dass die Transaktion schließlich bestätigt wird und die Gewissheit des Vertrauens erreicht wird.

Prüfpositionen

Layer2 ist ein vollständiges Blockchain-System, daher gilt auch für Optimistic Rollup die übliche Prüfung von öffentlichen Chains, wie im Anhang am Ende dieses Artikels detailliert beschrieben.

Darüber hinaus erfordert der Optimistic Rollup aufgrund seiner besonderen Natur eine Reihe zusätzlicher Prüfungen:

● Nachweis der Datenverfügbarkeit: Stellen Sie sicher, dass Layer2-Transaktionsdaten auf Layer1 verfügbar sind, um Datenverlust zu verhindern.

● Daten-Synchronisationsmechanismus: Überprüfen Sie, ob der Daten-Synchronisationsmechanismus zwischen Layer1 und Layer2 stabil ist und mit abnormen Situationen wie Netzwerkpartitionierung umgehen kann.

● Betrugsbeweisvertrag: Überprüfen Sie, ob der Betrugsbeweisvertrag korrekt implementiert ist.

● Herausforderungszeitraum-Mechanismus: Überprüfen Sie, ob die Länge des Herausforderungszeitraums angemessen ist und ob der Betrugsnachweis innerhalb der angegebenen Zeit abgeschlossen werden kann.

● Prozess zur Einreichung von Betrugsnachweisen: Überprüfen Sie, dass der Prozess zur Einreichung von Betrugsnachweisen sicher ist.

● Einzahlungs- und Auszahlungsprozess: Überprüfen Sie den Einzahlungs- und Auszahlungsprozess von Layer1 zu Layer2 und von Layer2 zu Layer1, um sicherzustellen, dass der Prozess sicher ist.

● Vermögenswerte prägen und verbrennen: Überprüfen Sie die Gieß- und Zerstörungslogik des Vermögenswerts auf Layer2, um die korrekte Entsprechung mit dem Vermögenswert auf Layer1 sicherzustellen.

● Liquiditätsanbietermechanismus: Wenn es einen Liquiditätsanbieter (LP)-Mechanismus gibt, ist es notwendig, den Betriebsprozess des LP und seine Sicherheit zu überprüfen.

Zero-Knowledge Rollups

Einführung

Zero-Knowledge (ZK) Rollup ist eine Layer2-Lösung, die auf dem Zero-Knowledge-Beweis basiert. Sie führt hauptsächlich komplexe Berechnungen und die Erzeugung des Beweises off-chain durch, überprüft den Beweis on-chain und speichert einen Teil der Daten, um die Verfügbarkeit der Daten zu gewährleisten.

ZK Rollup ist eine „hybride Skalierungslösung“, die ein Off-Chain-Protokoll darstellt, das unabhängig läuft, aber Sicherheit von Ethereum erhält. Konkret erzwingt das Ethereum-Netzwerk die Gültigkeit von Statusaktualisierungen auf den ZK Rollups und garantiert die Verfügbarkeit von Hintergrunddaten jedes Mal, wenn der Rollup-Status aktualisiert wird. Der Zustand des Rollups wird durch Smart Contracts auf dem Ethereum-Netzwerk aufrechterhalten. Um diesen Status zu aktualisieren, muss der ZK Rollups-Knoten einen Gültigkeitsnachweis zur Überprüfung einreichen. Ein Gültigkeitsnachweis ist eine kryptografische Garantie dafür, dass eine vorgeschlagene Änderung des Zustands tatsächlich das Ergebnis der Ausführung einer bestimmten Stapeltransaktion ist. Das bedeutet, dass ZK Rollups nur einen Gültigkeitsnachweis erbringen muss, um Transaktionen auf Ethereum abzuschließen, ohne alle Transaktionsdaten veröffentlichen zu müssen.

Es gibt keine Verzögerung beim Übertragen von Geldern von ZK Rollups auf Ethereum, da die Ausgangstransaktion ausgeführt wird, sobald der ZK Rollups-Vertrag den Beweis für die Gültigkeit überprüft hat. Im Gegensatz dazu führt das Abheben von Geldern aus Optimistic Rollups zu Verzögerungen, da jeder den Beweis für Betrug verwenden kann, um eine Ausgangstransaktion anzufechten.

Führende Layer2-Netzwerke

  1. zkSync

zkSync, eine L2-Lösung, die vor fünf Jahren vom Matter Labs-Team auf den Markt gebracht wurde, nutzt Zero-Knowledge-Proof-Technologie, um eine effiziente Transaktionsüberprüfung zu ermöglichen, und hat mehr als 200 Millionen US-Dollar aufgebracht. zkSync ist eines der ökologisch aktivsten Layer2-Netzwerke, die ZK Rollups verwenden, und auch zkSync ist umstritten. Beosin hat zuvor ein Audit seines führenden DeFi-Projekts SyncSwap durchgeführt, das Codequalität, Vertragslogik und -sicherheit, Betriebsmodell und mehr abdeckte.

  1. StarkNet

StarkNet verwendet ZK-STARK, um Layer2 zu erstellen, um die Transaktionsgeschwindigkeit zu erhöhen und Transaktionsgebühren zu reduzieren. StarkNet verfügt über eine native virtuelle Maschine (Cairo VM) und eine Entwicklungssprache Cairo, um Entwicklern zu helfen, intelligente Verträge sicherer und einfacher zu schreiben. Beosin ist offizieller Sicherheitspartner von StarkNet geworden und hat Sicherheitsaudits für Option Dance und Reddio abgeschlossen. Am 13. August 2024 schloss Reddio eine Seed-Finanzierungsrunde unter der Leitung von Paradigm ab, um ein leistungsstarkes paralleles EVM-Layer2-Netzwerk aufzubauen.

  1. Scroll

Scroll wird durch die Zero-Knowledge-Proof-Technologie skaliert, und die Hardware beschleunigt die Generierung und Überprüfung von Zero-Knowledge-Proofs, um eine Bytecode-EVM-Kompatibilität zu erreichen. Dies bedeutet, dass Entwickler Solidity und Ethereum-bezogene Entwicklungstools verwenden können, um Smart Contracts zu erstellen.

Architekturanalyse

Gängige Rahmenbedingungen für ZK Rollups umfassen Rollup- und Bridge-Verträge, Sammler, Aggregatoren, Repeater und Roller-Netzwerke, die Nullwissenbeweise generieren. Die spezifische Architektur ist in der folgenden Abbildung dargestellt:

● Rollup-Vertrag und Brückenvertrag:

Der Rollup-Vertrag ist dafür verantwortlich, die Datenverfügbarkeit für Rollup-Transaktionen bereitzustellen, den zkEVM-Gültigkeitsnachweis zu überprüfen und Benutzern die Übertragung von Vermögenswerten zwischen Ethereum und Rollup zu ermöglichen. Er empfängt den Layer-2-State-Root und -Block vom Collator, der State-Root wird im Ethereum-State gespeichert, und die Layer-2-Blockdaten werden als Calldata von Ethereum gespeichert.

Brückenverträge werden auf Ethereum und Layer2 bereitgestellt, um Benutzern zu ermöglichen, Nachrichten zu übermitteln und Vermögenswerte zwischen Layer1 und Layer2 zu übertragen.

● Sequenzer: Der Sequenzer stellt die JSON-RPC-Schnittstelle bereit und akzeptiert Layer2-Transaktionen. Er ruft regelmäßig eine Stapel von Transaktionen aus dem Speicherpool ab, um sie auszuführen, und generiert neue Layer2-Blöcke und Zustandswurzeln. Seine Implementierung basiert in der Regel auf Go-Ethereum (Geth) und gewährleistet so die beste Kompatibilität und höchste Sicherheit.

● Koordinator: Der Koordinator wird benachrichtigt, wenn der Collator einen neuen Block generiert und von diesem Collator eine Ausführungsspur dieses Blocks empfängt. Die Ausführungsspur wird dann an einen zufällig ausgewählten Roller im Roller-Netzwerk weitergeleitet, der einen Nachweis der Gültigkeit generiert.

● Relayer: Der Repeater überwacht Rollup-Verträge und Brückenverträge, die auf Ethereum und Layer2 bereitgestellt sind. Die Hauptaufgaben sind: 1) Verfolgung der Datenverfügbarkeit und Validierung von Layer2-Blöcken durch Überwachung von Rollup-Verträgen; 2) Überwachung von Einzahlungs- und Auszahlungsereignissen von Ethereum und Layer2-Brückenengagements und Weiterleitung von Nachrichten an das andere Ende.

● Roller-Netzwerk: Roller im Roller-Netzwerk fungiert als der Beweiser und ist für die Generierung eines Gültigkeitsnachweises für ZK Rollup verantwortlich. Eine Blockausführungsspur wird zunächst vom Koordinator empfangen, in einen Schaltungszeugen umgewandelt, dann wird für jede zkevm unter Verwendung von Hardwarebeschleunigung ein Beweis generiert und schließlich wird eine Beweisaggregation verwendet, um mehrere Beweise in einen einzelnen Beweis zu aggregieren.

Unter der technischen Architektur von ZK Rollups ist es wichtig, die Sicherheit der Benutzerassets während des Transfers zwischen L1 und L2 zu gewährleisten. Im Folgenden wird erläutert, wie Benutzer auf Assets zwischen den beiden Ebenen zugreifen können und wie das System die Integrität und Sicherheit dieser Transaktionen aufrechterhält.

● Asset-Bridging in Rollup: Benutzer treten in den Rollup ein, indem sie Token in einen ZK-Rollups-Vertrag deponieren, der auf einer Ebene der Netzwerkkette bereitgestellt wird. Diese Transaktion muss von der Projektseite an den Rollupvertrag übermittelt werden.

Wenn die ausstehende Einzahlungswarteschlange zu füllen beginnt, akzeptiert der ZK Rollups Operator diese Einzahlungstransaktionen und übermittelt sie an den Rollup-Vertrag. Sobald die Mittel im Rollup eingezahlt sind, kann der Benutzer mit der Transaktionsverarbeitung beginnen.

Benutzer können den Saldo auf Rollup überprüfen, indem sie ihren Account hashen, den Hash-Wert an den Rollup-Vertrag senden und einen Merkle-Beweis bereitstellen, der gegen den aktuellen Zustandsbaum verifiziert.

● Abheben von Vermögenswerten aus Rollup: Der Benutzer initiiert eine Ausgangstransaktion und sendet die Vermögenswerte auf ihrem Rollup-Konto an das angegebene Konto zur Vernichtung. Wenn der Betreiber die Transaktion zur nächsten Charge hinzufügt, kann der Benutzer einen Abhebungsantrag an den On-Chain-Vertrag stellen. Abhebungsanträge beinhalten:

  1. Merkle-Proof, der beweist, dass die Transaktion des Benutzers zu dem zerstörten Konto im Transaktionspaket hinzugefügt wurde

  2. Transaktionsdaten

  3. Batches des Stamms

  4. Layer1-Netzwerkadresse zum Empfangen von Einzahlungen

Der Rollup-Vertrag hashiert die Transaktionsdaten, überprüft, ob der Batch-Root existiert, und verwendet den Merkle-Beweis, um zu überprüfen, ob der Transaktionshash Teil des Batch-Roots ist. Der Vertrag führt die Ausgangstransaktion aus und sendet die Gelder an eine Adresse im Layer1-Netzwerk, die vom Benutzer ausgewählt wurde.

Prüfungsgegenstände

Layer 2 ist ein vollständiges Blockchain-System, daher gelten auch für ZK Rollup gängige Prüfpunkte für Blockchains, wie im Anhang am Ende dieses Artikels detailliert beschrieben.

Darüber hinaus muss ZK Rollup aufgrund seiner Besonderheit einige zusätzliche Audits durchführen:

● Nachweis der Systemsicherheit: Prüfen Sie die Sicherheit und Korrektheit der verwendeten Zero-Knowledge-Proof-Verfahren (z.B. Groth16, Plonk, Halo2, zk-STARK, etc.).

● Schaltungssicherheit: Überprüfen Sie mögliche Schwachstellen im Schaltungsentwurf und in der Implementierung, hauptsächlich einschließlich der folgenden:

  1. Unterbestimmte Schaltkreise

  2. Überbeschränkte Schaltkreise

  3. Nichtdeterministische Schaltkreise

  4. Arithmetische Über-/Unterläufe Arithmetische Über-/Unterläufe

  5. Unpassende Bit-Längen

  6. Unbenutzte öffentliche Eingaben optimiert

  7. Frozen Heart: Schmieden von Zero-Knowledge-Beweisen

  8. Vertrauenswürdiges Setup-Leck

  9. Zugewiesen, aber nicht eingeschränkt

  10. Unsichere Komponentennutzung

  11. Variable Präzision

● Proof-Erzeugung und -Validierung: Überprüfen Sie den Prozess zur Proof-Erzeugung und -Validierung, um sicherzustellen, dass er effizient und sicher ist.

● Nachweis der Datenverfügbarkeit: Stellen Sie sicher, dass Layer2-Transaktionsdaten auf Layer1 verfügbar sind, um Datenverluste zu vermeiden.

● Daten-Synchronisationsmechanismus: Überprüfen Sie, ob der Daten-Synchronisationsmechanismus zwischen Layer1 und Layer2 stabil ist und mit abnormen Situationen wie Netzwerkpartitionierung umgehen kann.

● Einzahlungs- und Auszahlungsprozess: Überprüfen Sie den Einzahlungs- und Auszahlungsprozess von Layer1 zu Layer2 und von Layer2 zu Layer1, um sicherzustellen, dass der Prozess sicher ist.

● Asset Minting und Burning: Überprüfen Sie die Casting- und Destruction-Logik des Assets auf Layer2, um die korrekte Korrespondenz mit dem Layer1-Asset sicherzustellen.

● Scannen auf externe Abhängigkeiten und bekannte Schwachstellen: ZK Rollup verlässt sich oft stark auf kryptographische und mathematische Repositories oder Tools von Drittanbietern und sollte deren Abhängigkeitssicherheit gründlich überprüfen, um bekannte Schwachstellen zu scannen und zu validieren.

Anhang

Blockchain & Layer2 Allgemeine Prüfpunkte:

● Integer-Überlauf: Überprüfen Sie Integer-Überläufe und Integer-Unterläufe

● Schleife: Überprüfen Sie die Schleife des Programms, um zu sehen, ob die Bedingung vernünftig ist

● Unendlicher rekursiver Aufruf: Prüfen, ob die Exit-Bedingung des programmrekursiven Aufrufs sinnvoll ist

● Rennbedingung: Überprüft den Zugriff auf gemeinsam genutzte Ressourcen im gleichzeitigen Zustand

● Ausnahmecrash: Überprüfen Sie den Code, der Ausnahmen wirft und das Programm aktiv beendet

● Nullteilbarkeitslücke: Überprüfen Sie, ob es einen Fall von Division durch 0 gibt

● Typumwandlung: Überprüfen Sie, ob die Typumwandlung korrekt ist und ob wichtige Informationen während der Umwandlung verloren gehen

● Array out of bounds: Überprüft den Zugriff auf Elemente außerhalb der Array-Grenzen

● Deserialisierbarkeitslücke: Überprüfen Sie auf Probleme während der Deserialisierung

● Funktionssicherheit bei Implementierung: Überprüfung, ob die Implementierung von RPC-Schnittstellen sicherheitsrelevante Risiken aufweist und mit dem funktionalen Design der RPC-Schnittstellen übereinstimmt

● Ob die Berechtigungseinstellungen für die sensiblen RPC-Schnittstellen vernünftig sind: Überprüfen Sie die Zugriffsberechtigungseinstellungen der sensiblen RPC-Schnittstellen

● Verschlüsselungsübertragungsmechanismus: Überprüfen Sie, ob ein verschlüsseltes Übertragungsprotokoll wie TLS verwendet wird

● Anforderungsdatenformatparsen: Überprüft den Formatparsenprozess für Anforderungsdaten

● Wallet-Entsperrangriff: Wenn ein Knoten seine Brieftasche entsperrt, wird er von RPC aufgefordert, Gelder zu stehlen

● Traditionelle Web-Sicherheit: Überprüfen Sie auf folgende Schwachstellen: Cross-Site Scripting (XSS)/Template-Injektion/Schwachstelle von Drittanbieterkomponenten/HTTP-Parameterkontamination/SQL-Injektion/XXE-Entitätsinjektion/Deserialisierungsschwachstelle/SSRF-Schwachstelle/Code-Injektion/lokale Dateieinschließung/Remote-Dateieinschließung/Befehlsausführungsinjektion und andere traditionelle Schwachstellen

● Netzwerk-Knoten Identitätsauthentifizierung und Identifikationsmechanismus: Prüfen, ob ein Mechanismus zur Identitätsauthentifizierung von Knoten vorhanden ist. Der Mechanismus zur Identitätsauthentifizierung von Knoten kann umgangen werden.

● Routing-Tabelle Verunreinigung: Überprüfen Sie, ob die Routing-Tabelle beliebig eingefügt oder überschrieben werden kann

● Knotenerkennungsalgorithmus: Prüfen Sie, ob der Knotenerkennungsalgorithmus ausgewogen und unvorhersehbar ist, z. B. ob der Abstandsalgorithmus unsymmetrisch ist

● Audit der Verbindungsnutzung: Prüfen Sie, ob das Limit und die Verwaltung der Anzahl der mit dem P2P-Netzwerk verbundenen Knoten angemessen sind

● Sonnenfinsternis-Angriffe: Kosten und Gefahren von Sonnenfinsternis-Angriffen bewerten, gegebenenfalls quantitative Analyse bereitstellen

● Sybil-Angriff: Bewertung von Abstimmungskonsensmechanismen und Analyse von Strategien zur Überprüfung der Wahlberechtigung

● Abhörangriff: Überprüfen Sie, ob das Kommunikationsprotokoll die Privatsphäre offenlegt

● Alien-Angriff: Bewertet, ob der Knoten denselben Typ von Kettenknoten erkennen kann

● Zeit-Hijacking: Überprüfen Sie den Netzwerk-Zeitberechnungsmechanismus eines Knotens

● Memory-Erschöpfungsangriff: Überprüfen Sie den großen Speicherverbrauch

● Angriff auf Erschöpfung der Festplatte: Überprüfen Sie, wo große Dateien gespeichert sind

● Socket-Druckangriff: Überprüfen Sie die Begrenzungspolitik für die Anzahl der Verbindungen

● Kernel-Handle-Erschöpfungsangriff: Prüfen Sie, ob es Einschränkungen bei der Erstellung von Kernel-Handles gibt, z. B. Datei-Handles

● Persistente Speicherlecks: Überprüfen Sie auf Speicherlecks

● Sicherheit des Hash-Algorithmus: Überprüfen Sie die Kollisionsresistenz des Hash-Algorithmus

● Sicherheit des digitalen Signaturalgorithmus: Überprüfen Sie die Sicherheit des Signaturalgorithmus und der Algorithmusimplementierung

● Sicherheit des Verschlüsselungsalgorithmus: Überprüfen Sie die Sicherheit des Verschlüsselungsalgorithmus und der Algorithmusimplementierung

● Sicherheit des Zufallszahlengenerators: Prüfen Sie, ob der Schlüsselalgorithmus zur Generierung von Zufallszahlen sinnvoll ist

● BFT Implementierungssicherheit: Bewertung der Implementierungssicherheit von BFT-Algorithmen

● Regeln zur Auswahl der Forks: Überprüfen Sie die Regeln zur Auswahl der Forks, um die Sicherheit zu gewährleisten

● Zentralisierungsgradtest: Bestimmen Sie, ob es eine übermäßig zentralisierte Gestaltung in der Systemgestaltung gibt

● Incentive-Audit: Bewerten Sie die Auswirkungen von Anreizen auf die Sicherheit

● Double-Spending-Angriffe: Überprüfen Sie, ob der Konsens gegen Double-Spending-Angriffe verteidigen kann

● MEV-Angriffsaudit: Untersuchen Sie die Auswirkungen des MEV des Blockpaketknotens auf die Fairness der Kette

● Synchronisierungsprozess-Audit blockieren: Prüfung auf Sicherheitsprobleme während der Synchronisierung

● Blockformat-Analyseprozessprüfung: Überprüfung auf Sicherheitsprobleme während des Formatparsings, wie z.B. Parsingfehler, die zu Abstürzen führen.

● Audit des Blockgenerierungsprozesses: Überprüfen Sie Sicherheitsaspekte im Blockgenerierungsprozess, einschließlich der Frage, ob die Merkle-Baumwurzel auf vernünftige Weise aufgebaut ist

● Überprüfung des Blockverifizierungsprozesses: Überprüfen Sie, ob die Blocksignaturdaten und Verifizierungslogik ausreichend sind

● Überprüfung der Blockvalidierungslogik: Überprüfen Sie, ob der Blockvalidierungsalgorithmus und die Implementierung vernünftig sind

● Block-Hash-Kollision: Überprüfen Sie, wie die Block-Hash-Kollision konstruiert ist und ob die Kollision vernünftig behandelt wird

● Blockverarbeitungsressourcenbegrenzungen: Überprüfen Sie, ob die Begrenzungen für verwaiste Blockpools, Verifizierungsberechnungen, Festplattenadressierung und andere Ressourcen angemessen sind

● Überprüfung des Transaktions-Synchronisierungsprozesses: Überprüft auf Sicherheitsprobleme im Synchronisierungsprozess

● Transaktionshash-Kollisionen: Untersuchen Sie, wie Transaktionshash-Kollisionen konstruiert und wie sie behandelt werden.

● Transaktionsformatparsen: Überprüfen Sie Sicherheitsprobleme während des Formatparsens, wie z.B. Parsefehler, die Abstürze verursachen

● Überprüfung der Transaktionsgültigkeit: Überprüfen Sie, ob die Signaturelemente jeder Art von Transaktion und die Überprüfungslogik ausreichend sind

● Ressourcenlimits für die Transaktionsverarbeitung: Prüfen Sie, ob Ressourcenlimits wie Transaktionspools, Verifizierungsrechen und Festplattenadressierung angemessen sind

● Transaktionsverformungsangriff: Ob eine Transaktion interne Felder (wie ScriptSig) ändern kann, um den Transaktionshash zu ändern, ohne die Gültigkeit der Transaktion zu beeinträchtigen

● Überprüfung von Transaktionswiederholungsangriffen: Überprüft die Erkennung von Transaktionswiederholungen im System

● Vertragsbytecode-Prüfung: Überprüfen Sie die Sicherheit des Vertragsprüfungsprozesses der virtuellen Maschine, z. B. Integer-Überlauf und tote Schleifen

● Vertrags-Bytecode-Ausführung: Überprüfen Sie die Sicherheit des Bytecode-Ausführungsprozesses der virtuellen Maschine, z. B. Integer-Überlauf, tote Schleifen usw.

● Gasmodell: Überprüfen Sie, ob die Gebühren für jede atomare Operation der Transaktionsverarbeitung/Vertragsausführung proportional zum Ressourcenverbrauch sind

● Protokollintegrität: Überprüfen Sie, ob wichtige Informationen protokolliert werden

● Protokollsicherheit: Überprüfen Sie, ob unsachgemäße Behandlung von Protokollen Sicherheitsprobleme verursacht, wie z.B. Ganzzahlenüberlauf

● Protokolle enthalten Datenschutzinformationen: Prüfen Sie, ob Protokolle Datenschutzinformationen wie Schlüssel enthalten

● Protokollspeicherung: Überprüfen Sie, ob zu viel Inhalt in den Protokollen aufgezeichnet wird, was Ressourcen des Knotens verbraucht.

● Knotencode Lieferketten-Sicherheit: Überprüfen Sie alle Bibliotheken von Drittanbietern, Komponenten und Versionen von öffentlichen Kettenrahmenwerken auf bekannte Probleme

Haftungsausschluss:

  1. Dieser Artikel wurde von [ausgedruckt.Beosin]. Alle Urheberrechte gehören dem Originalautor [ Beosin]. Wenn Einwände gegen diese Nachdruck gibt es, kontaktieren Sie bitte den Tor lernenTeam, und sie werden es umgehend bearbeiten.
  2. Haftungsausschluss: Die Ansichten und Meinungen, die in diesem Artikel zum Ausdruck gebracht werden, sind ausschließlich die des Autors und stellen keine Anlageberatung dar.
  3. Übersetzungen des Artikels in andere Sprachen werden vom Gate Learn-Team durchgeführt. Sofern nicht anders angegeben, ist das Kopieren, Verteilen oder Plagiieren der übersetzten Artikel untersagt.
Comece agora
Registe-se e ganhe um cupão de
100 USD
!