MultiChain Blockchain Data Provenance for Deterministic Stream Processing with Kafka Streams: A Weather Data Case Study
यह शोध पत्र काफ्का स्ट्रीम्स (Kafka Streams) के लिए एक मल्टीचेन-समर्थित प्रोवेनेंस (provenance) आर्किटेक्चर का प्रस्ताव करता है जो विंडो किए गए डेटा के क्रिप्टोग्राफिक मर्केल रूट्स (Merkle roots) को ब्लॉकचेन पर एंकर करते हुए और पेलोड को ऑफ-चेन रखते हुए वास्तविक समय के मौसम डेटा प्रसंस्करण को नियत (deterministic), ऑडिट योग्य और पुनरुत्पादनीय (reproducible) सुनिश्चित करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप बर्लिन के मौसम के एक लाइव न्यूज़ ब्रॉडकास्ट देख रहे हैं। हर कुछ मिनटों में, न्यूज़ एंकर (कंप्यूटर सिस्टम) पिछले एक घंटे के औसत तापमान की घोषणा करता है।
समस्या: लाइव टीवी का "जादुई करतब"
आमतौर पर, लाइव डेटा प्रोसेसिंग एक जादूगर के करतब की तरह होती है। कंप्यूटर हजारों तापमान रीडिंग लेता है, उन्हें इधर-उधर व्यवस्थित करता है, और फिर एक औसत निकाल कर देता है। लेकिन क्योंकि कंप्यूटर बहुत तेज़ होता है और इंटरनेट कभी-कभी धीमा या अस्थिर हो सकता है, इसलिए डेटा आने का क्रम बदल सकता है।
यदि आप कंप्यूटर को ठीक वही गणना दोबारा करने के लिए कहें, तो वह आपको दो थोड़े अलग उत्तर दे सकता है।
- रन 1: कंप्यूटर तीन तापमान रीडिंग देखता है और कहता है, "औसत 21.0°C है।"
- रन 2: क्योंकि एक मामूली नेटवर्क देरी हुई, चौथी रीडिंग एक सेकंड के बहुत छोटे हिस्से बाद पहुँचती है। कंप्यूटर उसे एक अलग "बकेट" (टाइम विंडो) में डाल देता है और कहता है, "औसत 21.75°C है।"
यह एक ऑडिटर (लेखा परीक्षक) के लिए असंभव बना देता है कि वह कह सके, "मुझे पता है कि कंप्यूटर ने यह गणना बिल्कुल सही की है," क्योंकि जब भी आप टेप को दोबारा चलाते हैं, परिणाम बदल जाता है। यह एक ऐसी गणितीय समस्या को सत्यापित करने की कोशिश करने जैसा है जहाँ संख्याएँ खुद को बार-बार पुनर्गठित करती रहती हैं।
समाधान: "सीलबंद लिफाफा" प्रणाली
इस समस्या को हल करने के लिए इस पेपर के लेखकों ने दो मुख्य उपकरणों का उपयोग करके एक प्रणाली बनाई है: Kafka Streams (गणना करने वाला कंप्यूटर) और MultiChain (एक विशेष, अपरिवर्तनीय डिजिटल लेजर, जो ब्लॉकचेन की तरह है)।
यह प्रणाली कैसे काम करती है, इसे एक सरल उपमा (analogy) के माध्यम से चरण-दर-चरण समझें:
1. "निश्चित समय बकेट" (Deterministic Windowing)
कंप्यूटर को यह तय करने देने के बजाय कि वह कब गिनती रोक दे और नया औसत शुरू करे (यह इस आधार पर कि डेटा कब प्राप्त हुआ), यह प्रणाली निश्चित समय बकेट (fixed time buckets) का उपयोग करती है।
- उपमा: कल्पना कीजिए कि एक फैक्ट्री का कन्वेयर बेल्ट हर ठीक 2 घंटे में रुक जाता है, चाहे कुछ भी हो।
- यह कैसे काम करता है: चाहे डेटा दोपहर 1:59 बजे आए या 2:01 बजे, सिस्टम उसे "1:00 PM से 3:00 PM" वाले बकेट में ही डालेगा। यह सुनिश्चित करता है कि जब भी आप गणना चलाएं, ठीक वही डेटा सेट उसी सटीक बकेट में जाए।
2. "मानकीकृत रेसिपी" (Canonical JSON)
भले ही डेटा एक ही बकेट में हो, कंप्यूटर कभी-कभी चीजों को अलग तरह से लिख सकते हैं (जैसे, "10:00:00" बनाम "10:00")।
- उपमा: कल्पना कीजिए कि एक शेफ यह ज़ोर देकर कहता है कि बर्तन में डालने से पहले हर सामग्री को बिल्कुल एक ही लिखावट और क्रम में लिखा जाना चाहिए।
- यह कैसे काम करता है: सिस्टम प्रत्येक तापमान रिकॉर्ड को एक सख्त, मानक प्रारूप (standard format) में फिर से लिखता है। यह गारंटी देता है कि डेटा हर बार प्रोसेस होने पर बिल्कुल एक जैसा दिखे।
3. "डिजिटल सीलिंग वैक्स" (Merkle Trees)
अब जब डेटा एक निश्चित बकेट में है और एक मानक प्रारूप में लिखा गया है, तो सिस्टम को यह साबित करने की आवश्यकता है कि डेटा के साथ कोई छेड़छाड़ नहीं की गई है।
- उपमा: कल्पना कीजिए कि आपके पास रसीदों का एक ढेर है। पूरे ढेर को तिजोरी में बंद करने के बजाय, आप उन्हें 'हैश' करते हैं (यानी उन्हें एक अद्वितीय डिजिटल फिंगरप्रिंट में बदलते हैं) और उन्हें एक पिरामिड के रूप में व्यवस्थित करते हैं। फिर आप पिरामिड के सबसे ऊपरी नंबर—मर्कल रूट (Merkle Root)—को एक मोम की सील वाले लिफाफे में बंद कर देते हैं।
- यह कैसे काम करता है: सिस्टम उस 2-घंटे के बकेट के सभी तापमानों के लिए एक "मर्कल रूट" बनाता है। यह रूट एक छोटा सा कोड है जो पूरे डेटा समूह का प्रतिनिधित्व करता है। यदि एक भी तापमान बदलता है, तो यह कोड पूरी तरह से बदल जाता है।
4. "अपरिवर्तनीय लॉगबुक" (Blockchain Anchoring)
यहीं पर असली जादू होता है। सिस्टम भारी, अव्यवस्थित तापमान डेटा को ब्लॉकचेन पर नहीं डालता (क्योंकि ऐसा करना बहुत धीमा और महंगा होगा)।
- उपमा: आप भारी रसीदें एक दराज (ऑफ-चेन स्टोरेज) में रखते हैं, लेकिन आप सील नंबर (Merkle Root) और पेज नंबर को एक सार्वजनिक, अपरिवर्तनीय डायरी (ब्लॉकचेम) में लिखते हैं। ब्लॉकचेन एक स्थायी, अपरिवर्तनीय गवाह के रूप में कार्य करता है।
- यह कैसे काम करता है: सिस्टम मर्कल रूट और "पेज नंबर" (Kafka offsets) को MultiChain ब्लॉकचेन पर लिखता है। ब्लॉकचेन एक स्थायी, अपरिवर्तनीय गवाह के रूप में कार्य करता है।
5. "ऑडिटर की जाँच" (Verification)
अब, कल्पना कीजिए कि एक ऑडिटर यह जांचना चाहता है कि मौसम की रिपोर्ट सही थी या नहीं।
- वे डायरी (ब्लॉकचेन) को देखते हैं ताकि यह देख सकें कि उस समय स्लॉट के लिए "सील नंबर" क्या होना चाहिए था।
- वे दराज (ऑफ-चेन स्टोरेज) में जाते हैं और वास्तविक रसीदें (तापमान डेटा) निकालते हैं।
- वे "मानकीकृत रेसिपी" और "पिरामिड सील" की गणना को फिर से चलाते हैं।
- परिणाम: यदि नया सील नंबर डायरी में दिए गए नंबर से मेल खाता है, तो यह सिद्ध हो जाता है कि डेटा 100% प्रामाणिक और पूर्ण है। यदि वे मेल नहीं खाते, तो इसका मतलब है कि रसीदों के साथ छेड़छाड़ की गई है।
परिणाम
लेखकों ने इसका परीक्षण बर्लिन में वास्तविक मौसम केंद्रों के साथ किया। उन्होंने पाया कि:
- पुनरुत्पादकता (Reproducibility): वे इस गणना को दो अलग-अलग कंप्यूटरों पर चला सकते थे, और इसने हर बार बिल्कुल एक ही परिणाम दिया।
- गति (Speed): गणित की जाँच (वेरिफिकेशन) बहुत तेज़ थी, भले ही डेटा बहुत अधिक हो।
- दक्षता (Efficiency): ब्लॉकचेन जाम नहीं हुआ क्योंकि इसमें केवल छोटे "सील नंबर" रखे गए थे, भारी डेटा नहीं।
सारांश में
यह पेपर प्रस्तुत करता है कि लाइव डेटा स्ट्रीम को "विश्वसनीय" कैसे बनाया जाए। डेटा को निश्चित समय बकेट में लॉक करके, प्रारूप को मानकीकृत करके, और परिणामों को ब्लॉकचेन पर दर्ज एक डिजिटल लिफाफे में सील करके, वे यह अनुमति देते हैं कि कोई भी स्वतंत्र रूप से सत्यापित कर सके कि एक लाइव गणना (जैसे मौसम का औसत) गणितीय रूप से सही है और इसे फर्जी या बदला नहीं गया है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।