@BabylonLabs_io
Ich habe immer wieder gedacht, Babylons Schlingmechanismus ginge es hauptsächlich darum, einen Validator dabei zu erwischen, dass er etwas Falsches tut.
Dann habe ich mir genauer angesehen, was tatsächlich passiert, wenn ein Finality Provider zwei widersprüchliche Blöcke signiert.
Dort wurde das Design für mich deutlich interessanter.
Babylon verwendet etwas namens Extractable One-Time Signature, kurz EOTS.
Die Grundidee klingt zunächst fast rückwärts.
Ein Finality Provider verpflichtet sich mit Zufallsdaten, bevor er signiert.
Wenn er später dieselben Zufallsdaten verwendet, um zwei verschiedene Blöcke in derselben Höhe zu signieren, kann das System seinen EOTS-Private-Key extrahieren.
Das doppelte Signieren ist also nicht nur ein Beleg dafür, dass etwas schiefgelaufen ist.
Der Fehler selbst kann den Schlüssel offenlegen, der die Konsequenz erst möglich macht.
Das hat mich darüber nachdenken lassen, was „Slashing“ hier eigentlich bedeutet.
Ich hatte mir das bisher so vorgestellt:
Jemand erkennt Fehlverhalten → jemand entscheidet, es zu bestrafen.
Aber je mehr ich mir EOTS ansah, desto mehr sah ich eine andere Beziehung.
Die Signierregeln sind so gestaltet, dass bestimmtes widersprüchliches Verhalten eine kryptografische Konsequenz auslöst.
Und genau das hatte ich vorher nicht so richtig gewürdigt.
Die spannende Frage ist nicht nur:
„Wie erkennt Babylon einen unehrlichen Finality Provider?“
Sondern:
„Was geschieht mit dem kryptografischen Schlüssel, wenn dieser Provider nachweist, dass er die Regeln verletzt hat?“
Das ist für mich ein deutlich interessanteres Design.
Denn Babylon versucht nicht nur, den Validatoren zu sagen „nicht doppelt signieren“.
Es baut ein System, in dem die Handlung des doppelten Signierens selbst Teil des Mechanismus werden kann, der Slashing möglich macht.
Und jetzt frage ich mich:
Ist der stärkste Slashing-Mechanismus derjenige, der schlechtes Verhalten bestraft – oder derjenige, bei dem das schlechte Verhalten selbst die Beweise erzeugt, die nötig sind, um es zu bestrafen?
@BabylonLabs_io
#baby $BABY
Ich habe immer wieder gedacht, Babylons Schlingmechanismus ginge es hauptsächlich darum, einen Validator dabei zu erwischen, dass er etwas Falsches tut.
Dann habe ich mir genauer angesehen, was tatsächlich passiert, wenn ein Finality Provider zwei widersprüchliche Blöcke signiert.
Dort wurde das Design für mich deutlich interessanter.
Babylon verwendet etwas namens Extractable One-Time Signature, kurz EOTS.
Die Grundidee klingt zunächst fast rückwärts.
Ein Finality Provider verpflichtet sich mit Zufallsdaten, bevor er signiert.
Wenn er später dieselben Zufallsdaten verwendet, um zwei verschiedene Blöcke in derselben Höhe zu signieren, kann das System seinen EOTS-Private-Key extrahieren.
Das doppelte Signieren ist also nicht nur ein Beleg dafür, dass etwas schiefgelaufen ist.
Der Fehler selbst kann den Schlüssel offenlegen, der die Konsequenz erst möglich macht.
Das hat mich darüber nachdenken lassen, was „Slashing“ hier eigentlich bedeutet.
Ich hatte mir das bisher so vorgestellt:
Jemand erkennt Fehlverhalten → jemand entscheidet, es zu bestrafen.
Aber je mehr ich mir EOTS ansah, desto mehr sah ich eine andere Beziehung.
Die Signierregeln sind so gestaltet, dass bestimmtes widersprüchliches Verhalten eine kryptografische Konsequenz auslöst.
Und genau das hatte ich vorher nicht so richtig gewürdigt.
Die spannende Frage ist nicht nur:
„Wie erkennt Babylon einen unehrlichen Finality Provider?“
Sondern:
„Was geschieht mit dem kryptografischen Schlüssel, wenn dieser Provider nachweist, dass er die Regeln verletzt hat?“
Das ist für mich ein deutlich interessanteres Design.
Denn Babylon versucht nicht nur, den Validatoren zu sagen „nicht doppelt signieren“.
Es baut ein System, in dem die Handlung des doppelten Signierens selbst Teil des Mechanismus werden kann, der Slashing möglich macht.
Und jetzt frage ich mich:
Ist der stärkste Slashing-Mechanismus derjenige, der schlechtes Verhalten bestraft – oder derjenige, bei dem das schlechte Verhalten selbst die Beweise erzeugt, die nötig sind, um es zu bestrafen?
@BabylonLabs_io
#baby $BABY