});
Nous sommes heureux de vous annoncer le premier protocole Zerocoin à implémenter Bulletproofs qui vient d’être rendu public sur notre Github PIVX. Il a été développé par l’équipe de développement principale (principalement Random Zebra & Furszy) avec le travail cryptographique effectué par Mary Maller & Jonathan Bootle où la signature de l’algorithme de connaissance a été changée drastiquement pour permettre des tailles de preuve bien plus petites. Ce changement permet des réductions significatives de la taille de transaction Zerocoin, du rythme de croissance de la blockchain et un temps de vérification amélioré. Nous invitons tous les auditeurs à revoir notre code et nous allons également nous assurés que des audits tierces soient effectués. Lorsque la version 3.2 du portefeuille principal est lancée, ce build pourra également être testé sur le testnet.
Pourquoi est-ce important ?

Le goal principal de ce projet était d’améliorer l’efficacité et la scalabilité du protocole Zerocoin.

En particulier, nous voulions réduire “les coûts de communication” (le montant de données échangé dans chaque session, ce qui finalement constitue les données qui sont enregistrées pour toujours dans la blockchain).

Plus spécifiquement, chaque Zerocoin dépensé nécessite plus de 20kB d’espace. Cette transaction contient, entre autres, 2 preuves sans connaissance (la preuve de l’accumulateur, qui prend environ 5kB et la signature du numéro de série, qui prend quasiment 14 kB).

Nous avons travaillé sur cette dernière.

Nous avons remodelé le problème en quelque chose connu sous le nom de “circuit arithmétique”. Les circuits arithmétiques sont une méthode pour décrire des problèmes de la théorie de la complexité. Il y a bon nombres d’algorithmes sans connaissance conçu pour prouver la connaissance de la solution d’un circuit arithmétique dans la littérature cryptographique.

Les Bulletproofs ont été inventées par Bootle, Cerulli, Chaidos, Groth et Petit et améliorées par Bunz, Bootle, Boneh, Poelstra et Maxwell. Comme le site de Stanford les décrit:

Les Bulletproofs sont des preuves courtes, non-interactives et sans connaissance qui ne nécessitent pas de configuration de confiance.  Une bulletproof peut être utilisée pour convaincre un vérificateur qu’un texte chiffré est bien formé/ Par exemple, prouver qu’un nombre chiffré fait partie d’un intervalle, sans révéler rien d’autre sur le nombre. En comparaison avec SNARKs, les Bulletproofs ne nécessitent pas de configuration de confiance. Cependant, vérifier une bulletproof est plus lent que de vérifier une preuve SNARK.

Les Bulletproofs sont conçues pour permettre des transactions confidentielles dans le Bitcoin et d’autres cryptomonnaies.

Les Bulletproofs ont bien d’autres applications dans les protocoles cryptographiques, comme raccourcir les preuves de solvabilité, des redistributions courtes et vérifiables, des contrats intelligents confidentiels, et un remplacement général pour les protocoles Sigma.

A notre connaissance, c’est la première (et unique) application de Bulletproofs pour la signature de connaissance du protocole Zerocoin.

Avec cette technique, nous avons pu réduire la taille de la signature de connaissance de 14kB jusqu’à approximativement 4kB ( une réduction de 71% dans les coûts de communication) ce qui réduit la transaction complète de moitié (approximativement 10kB).**

 

Cela a été accompli tout en maintenant les performances (les temps nécessaires à produire/vérifier une dépense) comparables, et même meilleures, que l’ancien protocole (malgré la complexité supérieure et les coûts de calcul).

La prochaine itération du protocole, en cours de développement, impliquera la preuve de connaissance de l’accumulateur et des développements supplémentaires de la signature de connaissance du numéro de série.

Voir le GitHUB public pour le développement Bulletproofs+Zerocoin.

**Les chiffres vont probablement changer avec la prochaine itération.

Other Firsts in Crypto for PIVX

%d blogueurs aiment cette page :