Während ich das @boundless_xyz-Ökosystem erkundete, entdeckte ich einen interessanten Anwendungsfall in den Anwendungen von @RiscZero R0VM: ZK Proof of Exploit - zkPoEx. Unter all den Bugs sind die kritischsten diejenigen, die in Live-Produkten existieren. In der Krypto-Welt führen kritische Schwachstellen sofort zu einem Ausnutzen von Geldern, der monetäre Wert von Live-Bugs ist daher sehr hoch. Typischerweise, wenn solche Bugs gefunden werden, fungieren Bug-Bounty-Plattformen wie @immunefi oder @HackenProof als Vermittler, um die Authentizität und Schwere des Bugs zu überprüfen und die Bounty-Verhandlungen zu vermitteln. Diese Struktur hat ein Problem: Die Bug-Details müssen offengelegt werden, bevor der Whitehat die Bounty erhält. Aus der Perspektive des Projekts könnten sie nach Erhalt des Bug-Berichts und dessen Überprüfung diesen beheben und dann behaupten, er sei "außerhalb des Geltungsbereichs" oder die Schwere herabstufen. In sehr extremen Fällen könnten Vermittler die Schwachstelle sehen und sie zuerst ausnutzen. zkPoEx ermöglicht es, durch RiscZeros R0VM die Existenz einer Schwachstelle mit ZK-Proof nachzuweisen, ohne die Bug-Details offenzulegen. Da es beweisen kann, dass ein Bug, der bestimmten Bedingungen entspricht, existiert, können Bug-Finder mit kooperativeren Antworten von Projekten rechnen, wie z.B. der Bitte um eine Teilzahlung im Voraus. Um es genauer zu erklären, verwendet der Reporter calldata/exploit-Vertrag als private Eingabe und den Zustand zum Zeitpunkt des Angriffs als öffentliche Eingabe, um die Zustandswerte des Zielvertrags innerhalb von R0VM zu ändern. Nach der Ausführung kann der tx-Beleg und der vom R0VM Prover generierte Beweis überprüfen, ob der Angriff bestimmte Bedingungen erfüllt hat, wie z.B. Änderungen des Kontostands. Ich persönlich denke, dass diese Methode für die Meldung von Live-Schwachstellen ziemlich nützlich ist, aber ich habe noch keine Fälle gesehen, in denen Bugs mit diesem Ansatz gemeldet wurden. Es scheint, dass Projekte die Bedingungen im Voraus bereitstellen müssen... Wenn ein solches System in der Praxis tatsächlich schwierig umzusetzen ist, würde ich gerne wissen, welche Herausforderungen es geben könnte.
873