Bulletproofs

Les bases

@RingCT a été introduit pour masquer les montants des transactions. L'un des objectifs de @RingCT était de prouver que la somme des entrées - les sorties de la @transaction étaient égales à 0 et toutes les sorties étaient des nombres positifs. Pour ce faire, deux types de signatures en anneau ont été construits: une signature en anneau pour toute la transaction (pour prouver que la somme est 0), et un ensemble de signatures en anneau pour les sous-ensembles de bits de transaction (pour prouver que les sorties sont des nombres positifs), puis combinés en utilisant à l'origine les signatures Schnorr (et plus tard remplacés par la signature en anneau borroméen). Pendant qu'il faisait le travail, un gros inconvénient était la taille énorme d'une telle transaction RingCT.

D'où vient les pare-balles

En 2017, un Groupe Crypto Appliqué Standford a écrit un papier présentant un nouveau type d'épreuves de tir, appelées pare-balles.

Les épreuves à l'épreuve des balles sont de courtes preuves non interactives à connaissance nulle qui ne nécessitent aucune configuration fiable.

Les épreuves par balle, contrairement aux signatures Borromée ou Schnorr, sont très efficaces comme épreuves de distance. Prouver un grand ensemble de données ne génère qu'une petite preuve, et la taille de ces preuves augmente de façon logarithmique avec la taille des données prouvées. Cela signifie que l'augmentation du nombre de sorties dans une transaction n'augmentera que légèrement, avec les épreuves, la taille de la preuve. Les épreuves par balle ont également l'avantage de permettre de prouver que plusieurs montants engagés sont à la fois dans la fourchette souhaitée. Pas besoin de prouver chaque sortie à chaque destination dans des preuves séparées; les montants entiers de la transaction pourraient être prouvés dans un plus grand (mais toujours très petit) pare-balles.

Processus d'audit approfondi et mise en œuvre

Comme les pare-balles étaient vraiment nouveaux et que l'implémentation initiale faite par le groupe, bien que bien faite, nécessitait une réécriture axée sur notre cas d'utilisation spécifique, l'implémentation de pare-balles dans Haven n'était pas une chose simple.

Le code a été écrit et réécrit pour suivre la nouvelle version de pare-balles qui était encore en cours de développement, mais une fois que cette implémentation Haven a été finalisée, le déploiement qui en résulte doit être effectué avec un soin extrême.

Par conséquent, la communauté a lancé un processus d'audit. Les chercheurs ont contacté Benedikt Bünz, auteur principal de l'article Bulletproofs, et OSTIF une organisation qui aide les technologies open source à s'améliorer et à se sécuriser.

L'OSTIF a orienté le groupe vers plusieurs organisations ayant les compétences requises pour réaliser l'audit. Alors que l'un d'entre eux a demandé à rester anonyme et a donc été écarté du processus qui devait être public, deux autres (QuarksLab & Kudelski Security) ont été choisis pour mener l'audit.

Nos 3 auditeurs ont été financés par la communauté pour vérifier si l'implémentation ne contenait pas de bogues critiques, et si elle n'avait pas d'exploits.

Les rapports finaux ont été publiés au cours de l'été 2018, avec plusieurs corrections et corrections utiles suggérées, et l'implémentation finale à l'épreuve des balles a été ajoutée d'abord à Haven Stagenet, puis au réseau principal Haven lors de la mise à niveau du réseau d'octobre 2018.

Depuis le déploiement des pare-balles, la taille d'une transaction moyenne a diminué d'au moins 80%, ainsi que les frais de transaction.

Plus d'explications sur la mise en œuvre des pare-balles par Haven peuvent être trouvées sur la chaîne youtube fondajo dans un conversation avec Sarang Noether.

fr_FRFrançais