Cryptographic Primitives

Cryptographic Primitives

The implementation of cryptographic primitives on o1js enhances the capabilities available to users for building complex circuits on Mina.

Challenges Overcome

Developing cryptographic functionalities posed several challenges which were effectively addressed during the development process:
BLS:
Initially, integrating the BLS12-381 elliptic curve proved challenging due to limitations in o1js’s elliptic curve API, which supported a maximum prime field size of 256 bits. After extensive research and valuable guidance from ZKHack mentors, the team successfully pivoted to the AltBN128 elliptic curve, compatible with o1js, ensuring seamless integration for the BLS signature scheme.

Additionally, extending the elliptic curve over field extensions, not initially supported by o1js, prompted the team to embark on custom implementations. Although time constraints prevented full implementation, the experience provided deep insights into abstract mathematics and its practical translation into code, contributing significantly to the team’s expertise in o1js.

Shamir Secret Sharing:
Implementing Shamir Secret Sharing presented challenges related to adhering to library constraints and determining the optimal storage of values on-chain versus off-chain. Generating valid proofs for each share generation process, while ensuring easy verification, required meticulous decision-making and implementation.

Overall, these challenges were pivotal learning opportunities, reinforcing proficiency in o1js and refining strategies for translating complex cryptographic concepts into functional code.

This project was awarded with a prize by the Mina Foundation at zkHack – Krakow

View the code on GitHub

Français

L’implémentation de primitives cryptographiques sur o1js améliore les capacités disponibles pour les utilisateurs pour construire des circuits complexes sur Mina.

Défis surmontés

Le développement de fonctionnalités cryptographiques a posé plusieurs défis qui ont été efficacement résolus au cours du processus de développement :
BLS :
Initialement, l’intégration de la courbe elliptique BLS12-381 s’est avérée difficile en raison des limitations de l’API de courbe elliptique d’o1js, qui prenait en charge une taille de champ principal maximale de 256 bits. Après des recherches approfondies et les conseils précieux des mentors de ZKHack, l’équipe a réussi à migrer vers la courbe elliptique AltBN128, compatible avec o1js, garantissant une intégration transparente pour le schéma de signature BLS.

De plus, l’extension de la courbe elliptique sur les extensions de champ, non initialement prises en charge par o1js, a incité l’équipe à se lancer dans des implémentations personnalisées. Même si les contraintes de temps ont empêché une mise en œuvre complète, l’expérience a fourni un aperçu approfondi des mathématiques abstraites et de leur traduction pratique en code, contribuant ainsi de manière significative à l’expertise de l’équipe en matière d’o1js.

Partage secret de Shamir :
La mise en œuvre de Shamir Secret Sharing a présenté des défis liés au respect des contraintes de la bibliothèque et à la détermination du stockage optimal des valeurs en chaîne par rapport à hors chaîne. Générer des preuves valides pour chaque processus de génération de partage, tout en garantissant une vérification facile, nécessitait une prise de décision et une mise en œuvre méticuleuses.

Dans l’ensemble, ces défis constituaient des opportunités d’apprentissage cruciales, renforçant la maîtrise d’o1js et affinant les stratégies permettant de traduire des concepts cryptographiques complexes en code fonctionnel.

Türkçe

o1js üzerinde kriptografik temellerin uygulanması, Mina’da karmaşık devreler oluşturmak için kullanıcıların kullanabileceği yetenekleri geliştirir.

Aşılan Zorluklar

Kriptografik işlevselliklerin geliştirilmesi, geliştirme süreci sırasında etkili bir şekilde ele alınan çeşitli zorluklara yol açtı:
:
Başlangıçta, BLS12-381 eliptik eğrisinin entegrasyonu, o1js’nin maksimum 256 bitlik asal alan boyutunu destekleyen eliptik eğri API’sindeki sınırlamalar nedeniyle zorlayıcı oldu. Kapsamlı araştırma ve ZKHack mentorlarının değerli rehberliğinden sonra ekip, o1js ile uyumlu AltBN128 eliptik eğrisine başarıyla geçiş yaparak BLS imza şeması için kusursuz entegrasyon sağladı.

Ek olarak, başlangıçta o1js tarafından desteklenmeyen eliptik eğrinin alan uzantıları üzerine genişletilmesi, ekibin özel uygulamalara başlamasına neden oldu. Her ne kadar zaman kısıtlamaları tam uygulamayı engellese de, deneyim soyut matematiğe ve bunun koda pratik çevirisine ilişkin derin bilgiler sağladı ve ekibin O1Js konusundaki uzmanlığına önemli ölçüde katkıda bulundu.

Shamir’in Gizli Paylaşımı:
Shamir Gizli Paylaşımı’nın uygulanması, kütüphane kısıtlamalarına uyma ve değerlerin zincir içi ve zincir dışı olarak en uygun şekilde saklanmasının belirlenmesiyle ilgili zorluklar ortaya çıkardı. Her paylaşım oluşturma süreci için geçerli kanıtların üretilmesi ve doğrulamanın kolaylaştırılması, titiz karar alma ve uygulama gerektiriyordu.

Genel olarak bu zorluklar, o1js uzmanlığını güçlendiren ve karmaşık kriptografik kavramları işlevsel koda dönüştürme stratejilerini geliştiren önemli öğrenme fırsatlarıydı.

Hindi

o1js पर क्रिप्टोग्राफ़िक प्राइमेटिव्स का कार्यान्वयन मीना पर जटिल सर्किट बनाने के लिए उपयोगकर्ताओं के लिए उपलब्ध क्षमताओं को बढ़ाता है।

चुनौतियाँ दूर हुईं

क्रिप्टोग्राफ़िक कार्यक्षमताओं को विकसित करने में कई चुनौतियाँ आईं, जिन्हें विकास प्रक्रिया के दौरान प्रभावी ढंग से संबोधित किया गया:
BLS:
शुरू में, o1js के एलिप्टिक कर्व API में सीमाओं के कारण BLS12-381 एलिप्टिक कर्व को एकीकृत करना चुनौतीपूर्ण साबित हुआ, जो 256 बिट्स के अधिकतम प्राइम फ़ील्ड आकार का समर्थन करता था। व्यापक शोध और ZKHack मेंटरों से मूल्यवान मार्गदर्शन के बाद, टीम ने सफलतापूर्वक AltBN128 एलिप्टिक कर्व को अपनाया, जो o1js के साथ संगत था, जिससे BLS सिग्नेचर स्कीम के लिए निर्बाध एकीकरण सुनिश्चित हुआ।

इसके अतिरिक्त, फ़ील्ड एक्सटेंशन पर एलिप्टिक कर्व का विस्तार करना, जो शुरू में o1js द्वारा समर्थित नहीं था, ने टीम को कस्टम कार्यान्वयन शुरू करने के लिए प्रेरित किया। हालाँकि समय की कमी ने पूर्ण कार्यान्वयन को रोक दिया, लेकिन अनुभव ने अमूर्त गणित और कोड में इसके व्यावहारिक अनुवाद में गहरी अंतर्दृष्टि प्रदान की, जिसने o1js में टीम की विशेषज्ञता में महत्वपूर्ण योगदान दिया।

शमीर सीक्रेट शेयरिंग:
शमीर सीक्रेट शेयरिंग को लागू करने से लाइब्रेरी की बाध्यताओं का पालन करने और ऑन-चेन बनाम ऑफ-चेन मूल्यों के इष्टतम भंडारण का निर्धारण करने से संबंधित चुनौतियाँ सामने आईं। प्रत्येक शेयर जनरेशन प्रक्रिया के लिए वैध प्रमाण तैयार करना, आसान सत्यापन सुनिश्चित करते हुए, सावधानीपूर्वक निर्णय लेने और कार्यान्वयन की आवश्यकता थी।

कुल मिलाकर, ये चुनौतियाँ सीखने के महत्वपूर्ण अवसर थे, o1js में दक्षता को सुदृढ़ करना और जटिल क्रिप्टोग्राफ़िक अवधारणाओं को कार्यात्मक कोड में अनुवाद करने की रणनीतियों को परिष्कृत करना।

Featured zkApps
MAC!
Katz
Anomix
Social Cap
zkLocus
Protokit
Pado
Wordle
zkFusion
zKeeper
Scroll to Top