En explorant l'éco de @boundless_xyz, j'ai découvert un cas d'utilisation intéressant dans les applications de @RiscZero R0VM : ZK Proof of Exploit - zkPoEx. Parmi tous les bugs, les plus critiques sont ceux qui existent dans des produits en direct. Dans le domaine de la crypto, puisque les vulnérabilités critiques entraînent immédiatement l'exploitation des fonds, la valeur monétaire des bugs en direct est très élevée. Typiquement, lorsque de tels bugs sont découverts, des plateformes de récompense pour bugs comme @immunefi ou @HackenProof agissent comme intermédiaires pour vérifier l'authenticité et la gravité du bug et négocier la récompense. Cette structure présente un problème : les détails du bug doivent être divulgués avant que le whitehat ne reçoive la récompense. Du point de vue du projet, après avoir reçu le rapport de bug et l'avoir examiné, ils pourraient le corriger puis prétendre qu'il est "hors du périmètre" ou en déclasser la gravité. Dans des cas très extrêmes, les intermédiaires pourraient voir la vulnérabilité et l'exploiter en premier. zkPoEx, à travers RiscZero's R0VM, permet de prouver l'existence d'une vulnérabilité avec une preuve ZK sans révéler les détails du bug. Puisqu'il peut prouver qu'un bug satisfaisant certaines conditions existe, les découvreurs de bugs peuvent s'attendre à des réponses plus coopératives de la part des projets, comme demander un paiement partiel à l'avance. Pour expliquer plus en détail, le rapporteur utilise le calldata/le contrat d'exploitation comme entrée privée et l'état au moment de l'attaque comme entrée publique pour changer les valeurs d'état du contrat cible au sein de R0VM. Après exécution, le reçu de tx et la preuve générée par le R0VM Prover peuvent vérifier si l'attaque a satisfait des conditions spécifiques, telles que des changements de solde. Je pense personnellement que cette méthode est assez utile pour signaler des vulnérabilités en direct, mais je n'ai pas encore vu de cas où des bugs ont été signalés en utilisant cette approche. Il semble que ce soit parce que les projets doivent fournir les conditions à l'avance... Si un tel système est effectivement difficile à mettre en œuvre dans la pratique, j'aimerais savoir quels seraient les défis.
909