From Rocq to Metal: A Pipeline for Formally Verified Microcontroller Firmware
यह शोध पत्र Encore! प्रस्तुत करता है, जो एक बेयर-मेटल कंटिन्यूएशन पासिंग स्टाइल (Continuation Passing Style) वर्चुअल मशीन है, जो कोर को एक प्रुवेबल स्टेट-ट्रांजिशन फंक्शन के रूप में संरचित करके माइक्रोकंट्रोलर्स पर औपचारिक रूप से सत्यापित, रॉक (Rocq) द्वारा एक्सट्रैक्ट किए गए स्कीम (Scheme) फर्मवेयर के निष्पादन को सक्षम बनाता है, जिससे मशीन-चेक्ड गारंटी के साथ सुरक्षा-महत्वपूर्ण कोड के एआई-सहायता प्राप्त जनरेशन को सुगम बनाया जा सके।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक बैंक के लिए एक उच्च-सुरक्षा वाली तिजोरी बना रहे हैं। आपको उस तिजोरी को खोलने, बंद करने और पैसे गिनने के निर्देश (यानी "फर्मवेयर") लिखने होंगे। अतीत में, इन निर्देशों को लिखना कठिन था, और गलतियों की जाँच करना उससे भी अधिक कठिन था। अब, AI के साथ, हम इन निर्देशों को तुरंत उत्पन्न कर सकते हैं, लेकिन यह एक नई समस्या पैदा करता है: हम उस कोड पर भरोसा कैसे करें जिसे एक ऐसी मशीन ने लिखा है जिसे हम पूरी तरह से समझ नहीं सकते?
यह शोध पत्र, "From Rocq to Metal," एक समाधान प्रस्तुत करता है: एक ऐसा तरीका जिससे आप अपने महत्वपूर्ण निर्देशों को एक ऐसी भाषा में लिख सकें जो गणितीय रूप से पूर्ण होने के लिए सिद्ध (proven) हो, और फिर उस प्रमाण को सीधे उन छोटे, सस्ते कंप्यूटर चिप्स पर चला सकें जो हार्डवेयर वॉलेट जैसे उपकरणों में पाए जाते हैं।
यहाँ उनके दृष्टिकोण का सरल उपमाओं (analogies) का उपयोग करके विवरण दिया गया है:
1. समस्या: "भारी सूट" बनाम "छोटा रोबोट"
अधिकांश आधुनिक प्रोग्रामिंग भाषाएं जो "गणितीय प्रमाण" (जैसे Lean 4 या मानक OCaml) की अनुमति देती हैं, वे भारी, हाई-टेक स्पेससूट की तरह हैं। वे अंतरिक्ष यात्रियों (शक्तिशाली कंप्यूटरों) के लिए बेहतरीन हैं, लेकिन वे एक छोटे रोबोट (एक माइक्रोकंट्रोलर चिप) के लिए बहुत भारी और बोझिल हैं, जिसे क्रेडिट कार्ड के आकार के डिवाइस के अंदर फिट होना होता है।
- समस्या: यदि आप उस भारी स्पेससूट को छोटे रोबोट पर पहनाने की कोशिश करते हैं, तो रोबोट वजन के नीचे दब जाता है। उसके पास "प्रमाण" (proof) सॉफ्टवेयर चलाने के लिए पर्याप्त बैटरी (RAM) या स्टोरेज (Flash) नहीं होता है।
- पुराना तरीका: डेवलपर्स भारी सूट में कोड लिखते थे, और फिर उसे रोबोट के लिए एक सरल भाषा में मैन्युअल रूप से अनुवादित करते थे। लेकिन यह अनुवाद "टेलीफोन" खेल (Telephone game) की तरह है—गलतियाँ आ जाती हैं, और गणितीय प्रमाण खो जाता है।
2. समाधान: "Encore!" (हल्का अनुवादक)
लेखकों ने एक नया टूल बनाया है जिसे Encore! कहा जाता है। Encore! को एक विशेषज्ञ, अत्यंत हल्का अनुवादक समझें जो छोटे रोबोट की जेब में फिट हो सके।
- यह कैसे काम करता है: आप अपने निर्देश एक कठोर, गणितीय भाषा में लिखते हैं जिसे Rocq कहा जाता है (जो कि एक रेसिपी को सटीक, अपरिवर्तनीय तर्क में लिखने जैसा है)।
- जादू: रेसिपी को एक अव्यवस्थित, त्रुटिपूर्ण भाषा में अनुवाद करने के बजाय, Encore! इसे सीधे एक छोटे, कुशल "बाइटकोड" (bytecode) में बदल देता है जिसे रोबोट निष्पादित (execute) कर सकता है।
- परिणाम: रोबोट उसी सटीक तर्क को चलाता है जिसे गणितीय रूप से सिद्ध किया गया था। यहाँ कोई "टेलीफोन" खेल नहीं है; प्रमाण पूरे रास्ते "मेटल" (हार्डवेयर) तक पहुँचता है।
3. आर्किटेक्चर: "स्टेट मशीन" (State Machine)
इसे सफल बनाने के लिए, लेखकों ने इस तरह से सॉफ्टवेयर को पुनर्गठित किया कि इसे एक बोर्ड गेम की तरह माना जा सके।
- गेम बोर्ड (State): वर्तमान स्थिति (जैसे, "उपयोगकर्ता द्वारा बटन दबाने का इंतज़ार कर रहा है")।
- पासे का उछाल (Event): कुछ होता है (जैसे, "उपयोगकर्ता ने बटन दबाया")।
- नियम पुस्तिका (The Proven Core): एक शुद्ध, गणितीय फ़ंक्शन जो कहता है: "यदि बोर्ड स्थिति A में है और आप 6 रोल करते हैं, तो बोर्ड को स्थिति B में जाना ही होगा।"
- रेफरी (The Unverified Part): सिस्टम के वे हिस्से जो भौतिक दुनिया से बात करते हैं (बटन पढ़ना, स्क्रीन को रोशन करना)। ये ही एकमात्र हिस्से हैं जो गणितीय रूप से सिद्ध नहीं हैं, लेकिन इन्हें बहुत छोटा और सरल रखा गया है।
यह क्यों मायने रखता है: "नियम पुस्तिका" (बिजनेस लॉजिक) जितनी बड़ी और जटिल आप चाहें उतनी बड़ी हो सकती है, और वह 100% सिद्ध रहती है। "रेफरी" छोटा और स्थिर रहता है। इसका मतलब है कि आप जटिल सुविधाएँ जोड़ सकते हैं बिना सुरक्षा को सत्यापित (verify) करने को कठिन बनाए।
4. AI कनेक्शन: "प्रूफ के रूप में कोड समीक्षा"
यह शोध पत्र एक ऐसे भविष्य का सुझाव देता है जहाँ AI कोड लिखने में मदद करता है, लेकिन AI केवल अनुमान नहीं लगाता।
- पुराना तरीका: एक AI कोड लिखता है; एक इंसान बग्स की जांच करने के लिए उसे पढ़ता है। यह अच्छी तरह से स्केल नहीं कर पाता।
- नया तरीका: एक AI गणितीय प्रमाण (theorem) लिखता है। कंप्यूटर उस प्रमाण की जाँच करता है। यदि प्रमाण वैध है, तो कोड के सही होने की गारंटी है।
- उपमा: 100 पन्नों के उपन्यास में टाइपो खोजने के लिए किसी इंसान को पढ़ने के लिए कहने के बजाय, आप कंप्यूटर से 10 पन्नों के गणितीय समीकरण की जाँच करने के लिए कहते हैं। यदि समीकरण सही है, तो कहानी भी सही है।
5. परिणाम: यह वास्तव में काम करता है
टीम ने वास्तविक हार्डवेयर (एक Ledger Flex हार्डवेयर वॉलेट, जो एक बहुत छोटे, सुरक्षित चिप का उपयोग करता है) पर इसका परीक्षण किया।
- उन्होंने एक ट्रांजेक्शन साइनिंग ऐप (वह चीज़ जो पैसा स्थानांतरित करती है) लिया।
- उन्होंने मुख्य तर्क (core logic) को Rocq में लिखा और इसे सही होने के लिए सिद्ध किया।
- उन्होंने चिप पर इसे चलाने के लिए Encore! का उपयोग किया।
- परिणाम: चिप ने सफलतापूर्वक गणितीय रूप से सिद्ध कोड को चलाया, डेटा को पार्स (parse) किया और लेनदेन को साइन किया, और यह सब डिवाइस की बहुत कम मेमोरी सीमाओं के भीतर किया।
सारांश
यह शोध पत्र सिद्ध करता है कि आपको उच्च सुरक्षा (गणितीय प्रमाण) और छोटे हार्डवेयर (माइक्रोकंट्रोलर) के बीच चयन करने की आवश्यकता नहीं है। एक कस्टम, हल्के इंजन (Encore!) का निर्माण करके और सॉफ्टवेयर को एक साधारण बोर्ड गेम की तरह व्यवस्थित करके, उन्होंने दिखाया है कि "पूर्ण" कोड आज के "अपूर्ण" चिप्स पर चल सकता है। यह AI-जनरेटेड कोड के लिए द्वार खोलता है जो स्वचालित रूप से सत्यापित है, जिससे हार्डवेयर वॉलेट जैसे महत्वपूर्ण उपकरण अधिक सुरक्षित और विश्वसनीय बनते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।