*Den Originaltitel weiterleiten:Erkundung der kanonischen Ethereum-Bridge und des Beweissystems von Eclipse
Eclipse besteht aus drei Schichten:
Das folgende Diagramm veranschaulicht, wie diese Module interagieren:
Der Rest dieses Artikels konzentriert sich auf die Ethereum-Bridge von Eclipse, wie im Diagramm gezeigt. Blobstream wird Bescheinigungen weiterleiten, die von Celestias Validator signiert wurden, um Ethereum zu bescheinigen, dass die Daten für eine Charge von Eclipse-Slots korrekt veröffentlicht wurden. Auf diese Weise kann die Bridge von Eclipse die für Betrugsbeweise bereitgestellten Daten mit den signierten Datenstämmen von Celestia abgleichen. Im weiteren Verlauf dieses Abschnitts werden wir die Prozesse skizzieren, durch die:
Der Ablauf, wenn ein Benutzer über die native Ethereum-Bridge auf Eclipse einzahlt, wird wie folgt zusammengefasst:
Das folgende Diagramm zeigt die Interaktionen zwischen Ethereum, Celestia und dem SVM Executor während des oben beschriebenen Einzahlungsflusses:
Der Ablauf für die Veröffentlichung von Batches von Eclipse-Slots in Celestia als Daten-Blobs ist unten zusammengefasst:
Das folgende Diagramm von Celestia erklärt, wie die Zuschreibung der Daten innerhalb eines bestimmten Celestia-Blocks im Block-Header gespeichert wird:
Ähnlich wie bei anderen L2s, die Betrugsnachweise verwenden (Arbitrum, Fuel und viele andere), erfordern Auszahlungen von Eclipse eine Anfechtungsphase, in der Verifizierer Betrugsnachweise im Falle eines ungültigen Zustandsübergangs einreichen können:
In diesem letzten Abschnitt werden wir das Design des betrugssicheren Systems von Eclipse detailliert beschreiben, das von Anatoly Yakovenko und John Adler inspiriert wurde. Im Allgemeinen muss eine Prüfstelle für jeden Betrugsnachweis:
Im Fall von Eclipse (1) mergelt Celestia Blobs von Stapeln von Blöcken, die der SVM-Executor von Eclipse veröffentlicht, und ermöglicht so den Nachweis der Transaktionseinbindung über Merkle-Zeugen. Für (2) gilt: Im Gegensatz zu EVM-basierten L2s, die eine Merkle-Wurzel an den globalen Zustandsbaum senden, aktualisiert Eclipse aus Performance-Gründen einen globalen Zustandsbaum nicht auf Transaktionsbasis, aber wir werden im Folgenden genauer erklären, wie wir die Korrektheit der Eingaben sicherstellen. Schließlich generiert der Verifier von Eclipse im Fall von (3) einen zk-Beweis der Ausgabe(n) für eine bestimmte Transaktion, im Gegensatz zu dem interaktiven Verifikationsspielansatz , der bei EVM-basierten L2s üblich ist.
Alle Eclipse-Transaktionen können so dargestellt werden, dass sie eine Liste von Eingabekonten erstellen, eine Transaktion ausführen und eine Liste der resultierenden Ausgabekonten erstellen:
Die entscheidende Beobachtung für unser betrugssicheres Design ist, dass es für die Ausführung von Transaktionen immer der Fall ist, dass jeder S_InputAccount der S_OutputAccount einer früheren Transaktion gewesen sein muss. Auf diese Weise können wir auf die letzte Transaktion in der Kette verweisen, die ein bestimmtes Eingabekonto erzeugt hat, anstatt einen Merkle-Zeugen für einen globalen Zustandsbaum bereitzustellen. Als Ergebnis unseres Designs führen wir zusätzliche Arten von Betrugsvorwürfen ein, wie z. B. einen Verweis darauf, dass die vorherige Transaktion ungültig ist oder das Eingabekonto bereits durch eine spätere Transaktion "ausgegeben" wurde. Im Folgenden beschreiben wir diesen Prozess genauer:
Darüber hinaus werden die Verpflichtungen der an Celestia gesendeten Transaktionsdaten an den Ethereum-Vertrag weitergeleitet. Die Verpflichtungen bestehen aus:
Wie oben erläutert, gibt es mehrere Möglichkeiten, wie ein Stapel als falsch eingestuft werden kann:
Wenn sich herausstellt, dass ein Commitment-Batch falsch ist, setzt der Eclipse-Bridge-Vertrag die Bridge auf den des letzten nachweislich korrekten Batch-Commitments zurück. Beachten Sie, dass Transaktionen niemals aus der Kette entfernt werden, auch nicht im Falle von Betrug, sodass nur die Verpflichtung neu berechnet werden muss.
Dieser Artikel zielte darauf ab, einen allgemeinen Leitfaden für die vertrauensminimierte Bridge von Eclipse auf Ethereum zu geben und einige Details zu unserem betrugssicheren Design zu erläutern. Angesichts des modularen Charakters unseres L2 und der Entstehung unseres Technologie-Stacks werden wir in den kommenden Wochen weiterhin Artikel und Dokumentationen zu verschiedenen Aspekten von Eclipse veröffentlichen.
Um sich am Eclipse Testnet zu beteiligen, folgen Sie bitte unseren Anweisungen hier. Sie können uns auf Twitter oder Discord kontaktieren, wenn Sie spezifische Fragen zu unserem Testnet, Bridge oder technischen Fragen haben.
[1]: Der Knoten, der die Ergebnisse von SVM-Transaktionen berechnet und die letztendliche Ausgabe auf den neuen Zustand von Eclipse anwendet
[2]: Ein Operator, der On-Chain-Ereignisse zwischen Ethereum und Eclipse übergibt
[3]: Beachten Sie, dass der Executor, nicht der Sequenzer, dies postet. Wenn es in den vom Sequenzer gesendeten Daten enthalten wäre, würde es die Komplikation hinzufügen, dass der Sequenzer eine Zählung überspringen könnte, was es dem Executor unmöglich machen würde, seine Arbeit korrekt auszuführen. Dies könnte durch das betrugssichere Design kompensiert werden, würde aber die Komplexität erhöhen. Ein zweiter Vorteil, wenn nur der Testamentsvollstrecker die Zählung postet, besteht darin, dass es einfach ist, Transaktionsüberschreibungen an Celestia zu senden, falls gewünscht.
[4]: SVM-Konten können mit einem eindeutigen Hash dargestellt werden. Die einzige Möglichkeit, diesen Hash zu ändern, ist über eine Transaktion.
[5]: Um dies ohne übermäßiges Hashing zu tun, führen wir für jedes ausgeführte Programm einen Trace durch, um zu sehen, auf welche Teile jedes verwendeten Sysvars tatsächlich zugegriffen wird. Dies ist möglich, erfordert jedoch eine Modifikation des BPF-Interpreters von Solana.
[6]: Dazu gehören Daten für versuchte Transaktionen, die nicht ausgeführt werden konnten.
*Den Originaltitel weiterleiten:Erkundung der kanonischen Ethereum-Bridge und des Beweissystems von Eclipse
Eclipse besteht aus drei Schichten:
Das folgende Diagramm veranschaulicht, wie diese Module interagieren:
Der Rest dieses Artikels konzentriert sich auf die Ethereum-Bridge von Eclipse, wie im Diagramm gezeigt. Blobstream wird Bescheinigungen weiterleiten, die von Celestias Validator signiert wurden, um Ethereum zu bescheinigen, dass die Daten für eine Charge von Eclipse-Slots korrekt veröffentlicht wurden. Auf diese Weise kann die Bridge von Eclipse die für Betrugsbeweise bereitgestellten Daten mit den signierten Datenstämmen von Celestia abgleichen. Im weiteren Verlauf dieses Abschnitts werden wir die Prozesse skizzieren, durch die:
Der Ablauf, wenn ein Benutzer über die native Ethereum-Bridge auf Eclipse einzahlt, wird wie folgt zusammengefasst:
Das folgende Diagramm zeigt die Interaktionen zwischen Ethereum, Celestia und dem SVM Executor während des oben beschriebenen Einzahlungsflusses:
Der Ablauf für die Veröffentlichung von Batches von Eclipse-Slots in Celestia als Daten-Blobs ist unten zusammengefasst:
Das folgende Diagramm von Celestia erklärt, wie die Zuschreibung der Daten innerhalb eines bestimmten Celestia-Blocks im Block-Header gespeichert wird:
Ähnlich wie bei anderen L2s, die Betrugsnachweise verwenden (Arbitrum, Fuel und viele andere), erfordern Auszahlungen von Eclipse eine Anfechtungsphase, in der Verifizierer Betrugsnachweise im Falle eines ungültigen Zustandsübergangs einreichen können:
In diesem letzten Abschnitt werden wir das Design des betrugssicheren Systems von Eclipse detailliert beschreiben, das von Anatoly Yakovenko und John Adler inspiriert wurde. Im Allgemeinen muss eine Prüfstelle für jeden Betrugsnachweis:
Im Fall von Eclipse (1) mergelt Celestia Blobs von Stapeln von Blöcken, die der SVM-Executor von Eclipse veröffentlicht, und ermöglicht so den Nachweis der Transaktionseinbindung über Merkle-Zeugen. Für (2) gilt: Im Gegensatz zu EVM-basierten L2s, die eine Merkle-Wurzel an den globalen Zustandsbaum senden, aktualisiert Eclipse aus Performance-Gründen einen globalen Zustandsbaum nicht auf Transaktionsbasis, aber wir werden im Folgenden genauer erklären, wie wir die Korrektheit der Eingaben sicherstellen. Schließlich generiert der Verifier von Eclipse im Fall von (3) einen zk-Beweis der Ausgabe(n) für eine bestimmte Transaktion, im Gegensatz zu dem interaktiven Verifikationsspielansatz , der bei EVM-basierten L2s üblich ist.
Alle Eclipse-Transaktionen können so dargestellt werden, dass sie eine Liste von Eingabekonten erstellen, eine Transaktion ausführen und eine Liste der resultierenden Ausgabekonten erstellen:
Die entscheidende Beobachtung für unser betrugssicheres Design ist, dass es für die Ausführung von Transaktionen immer der Fall ist, dass jeder S_InputAccount der S_OutputAccount einer früheren Transaktion gewesen sein muss. Auf diese Weise können wir auf die letzte Transaktion in der Kette verweisen, die ein bestimmtes Eingabekonto erzeugt hat, anstatt einen Merkle-Zeugen für einen globalen Zustandsbaum bereitzustellen. Als Ergebnis unseres Designs führen wir zusätzliche Arten von Betrugsvorwürfen ein, wie z. B. einen Verweis darauf, dass die vorherige Transaktion ungültig ist oder das Eingabekonto bereits durch eine spätere Transaktion "ausgegeben" wurde. Im Folgenden beschreiben wir diesen Prozess genauer:
Darüber hinaus werden die Verpflichtungen der an Celestia gesendeten Transaktionsdaten an den Ethereum-Vertrag weitergeleitet. Die Verpflichtungen bestehen aus:
Wie oben erläutert, gibt es mehrere Möglichkeiten, wie ein Stapel als falsch eingestuft werden kann:
Wenn sich herausstellt, dass ein Commitment-Batch falsch ist, setzt der Eclipse-Bridge-Vertrag die Bridge auf den des letzten nachweislich korrekten Batch-Commitments zurück. Beachten Sie, dass Transaktionen niemals aus der Kette entfernt werden, auch nicht im Falle von Betrug, sodass nur die Verpflichtung neu berechnet werden muss.
Dieser Artikel zielte darauf ab, einen allgemeinen Leitfaden für die vertrauensminimierte Bridge von Eclipse auf Ethereum zu geben und einige Details zu unserem betrugssicheren Design zu erläutern. Angesichts des modularen Charakters unseres L2 und der Entstehung unseres Technologie-Stacks werden wir in den kommenden Wochen weiterhin Artikel und Dokumentationen zu verschiedenen Aspekten von Eclipse veröffentlichen.
Um sich am Eclipse Testnet zu beteiligen, folgen Sie bitte unseren Anweisungen hier. Sie können uns auf Twitter oder Discord kontaktieren, wenn Sie spezifische Fragen zu unserem Testnet, Bridge oder technischen Fragen haben.
[1]: Der Knoten, der die Ergebnisse von SVM-Transaktionen berechnet und die letztendliche Ausgabe auf den neuen Zustand von Eclipse anwendet
[2]: Ein Operator, der On-Chain-Ereignisse zwischen Ethereum und Eclipse übergibt
[3]: Beachten Sie, dass der Executor, nicht der Sequenzer, dies postet. Wenn es in den vom Sequenzer gesendeten Daten enthalten wäre, würde es die Komplikation hinzufügen, dass der Sequenzer eine Zählung überspringen könnte, was es dem Executor unmöglich machen würde, seine Arbeit korrekt auszuführen. Dies könnte durch das betrugssichere Design kompensiert werden, würde aber die Komplexität erhöhen. Ein zweiter Vorteil, wenn nur der Testamentsvollstrecker die Zählung postet, besteht darin, dass es einfach ist, Transaktionsüberschreibungen an Celestia zu senden, falls gewünscht.
[4]: SVM-Konten können mit einem eindeutigen Hash dargestellt werden. Die einzige Möglichkeit, diesen Hash zu ändern, ist über eine Transaktion.
[5]: Um dies ohne übermäßiges Hashing zu tun, führen wir für jedes ausgeführte Programm einen Trace durch, um zu sehen, auf welche Teile jedes verwendeten Sysvars tatsächlich zugegriffen wird. Dies ist möglich, erfordert jedoch eine Modifikation des BPF-Interpreters von Solana.
[6]: Dazu gehören Daten für versuchte Transaktionen, die nicht ausgeführt werden konnten.