Comment les nouveaux jets pour Simplicity seraient-ils intégrés en douceur  ? Qu'est-ce qui empêche un mineur d'exploiter un nouveau jet ?


Cela a été discuté par Russell O’Connor, l’auteur de Simplicity on IRC. Ce qui suit a été paraphrasé, toutes les erreurs sont les miennes.

Les jets seraient écrits en Simplicity afin que tout le monde soit d’accord sur la fonctionnalité du jet. Alors que la fonctionnalité jet peut être spécifiée dans n’importe quel langage, Simplicity est un langage de spécification candidat évident.

Dans la v0 Simplicity, il ne sera plus possible d’installer de nouveaux jets en douceur. Vous auriez besoin d’un nouveau schéma de codage pour prendre en charge les nouveaux jets à fourche souple.

Comment les nouveaux jets pour Simplicity seraient-ils intégrés en douceur  ? Qu'est-ce qui empêche un mineur d'exploiter un nouveau jet ?

Pour les versions ultérieures de Simplicity. Il y aurait un certain type de malléabilité où n’importe qui peut dépenser un UTXO en fournissant une preuve (une branche) qu’il y a un engagement envers un jet à prix réduit inconnu. Les anciens nœuds seraient présentés avec une telle preuve et les nouveaux nœuds nécessiteraient un programme approprié. On ne sait pas ce qui entrerait dans la racine du témoin Merkle à ce stade.

Les pairs négocieraient la version de l’ensemble de jets qu’ils connaissent et les fragments de simplicité qu’ils connaissent. Par conséquent, vous n’auriez pas nécessairement besoin de (re)transmettre les fonctions Simplicity courantes que vos pairs connaissent déjà.

Qu’est-ce qui empêche les mineurs d’exploiter de manière malveillante un jet à prix réduit inconnu pour DoS sur le réseau, car les pairs auraient désormais besoin de l’intégralité du programme ?

Il n’y a pas d’encodage pour les nouveaux jets. Les jets à prix réduits sont explicitement codés. Les encodages illégaux ne peuvent pas être légaux car il n’y a aucun moyen de valider qu’un programme que vous ne pouvez pas décoder correspond à l’engagement racine Merkle.

Dans ce schéma, les mineurs ne peuvent pas exploiter un jet inconnu. Pour ce faire, ils doivent soit prouver qu’il y a une sortie qui est dédiée à un tel jet inconnu, et si personne n’a d’engagements alors ils ne peuvent pas être utilisés, ou ils doivent fournir un codage d’un programme qui utilise un nouveau jet à prix réduit, mais mon schéma de codage n’a pas de tels codages.

que faites-vous ? Par conséquent, le plan actuel est d’exiger une nouvelle version Tapleaf ou une version Simplicity pour changer les jets.