स्मार्ट कॉन्ट्रैक्ट ऑडिट
इन नामों से भी जाना जाता है सिक्योरिटी ऑडिट · DeFi ऑडिट
स्मार्ट कॉन्ट्रैक्ट ऑडिट किसी प्रोटोकॉल के कोड की स्वतंत्र सुरक्षा समीक्षा है, जो उसके लाइव होने से पहले या कुछ ही समय बाद कमज़ोरियाँ खोजती है। यह अपने बताए दायरे और तारीख के भीतर जोखिम घटाता है, लेकिन यह वादा नहीं है कि कोड में कोई बग नहीं है।
स्मार्ट कॉन्ट्रैक्ट असामान्य सॉफ़्टवेयर हैं। वे सीधे पैसा रखते हैं, सार्वजनिक रूप से चलते हैं जहाँ कोई भी उनका अध्ययन कर सकता है, और डिप्लॉय होने के बाद उन्हें बदलना मुश्किल या असंभव होता है। एक अनदेखी लाइन किसी हमलावर को एक ही ट्रांज़ैक्शन में पूरा प्रोटोकॉल खाली करने दे सकती है। लॉन्च से पहले ऑडिट मुख्य बचाव है: हमलावरों से पहले विशेषज्ञ कोड पढ़ लेते हैं।
ऑडिटर क्या खोजते हैं
- लॉजिक की गलतियाँ: ऐसा कोड जो वही करता है जो लिखा है, लेकिन वह नहीं जो इरादा था, जैसे दो बार भुगतान करने वाला रिवॉर्ड फ़ॉर्मूला।
- एक्सेस कंट्रोल: ऐसे फ़ंक्शन जिन्हें कोई भी कॉल कर सकता है, जबकि वे सिर्फ़ एडमिनिस्ट्रेटर तक सीमित होने चाहिए।
- रीएंट्रेंसी: एक बाहरी कॉल जो हमलावर को पहली कॉल पूरी होने से पहले फ़ंक्शन में दोबारा घुसने देती है। 2016 के DAO हैक के पीछे यही बग था।
- कीमत में हेरफेर: ऐसा लॉजिक जो एक ही ट्रांज़ैक्शन में बदली जा सकने वाली कीमत पर भरोसा करता है, अक्सर किसी कमज़ोर ओरेकल के ज़रिए।
- आर्थिक डिज़ाइन: ऐसे इंसेंटिव जिनका फ़ायदा भरपूर पूँजी वाला कोई खिलाड़ी उठा सकता है, भले ही हर लाइन लिखे अनुसार काम करे।
ऑडिटर मैनुअल समीक्षा को ऑटोमेटेड टूल्स के साथ जोड़ते हैं, और अब ज़्यादा से ज़्यादा फ़ॉर्मल वेरिफ़िकेशन भी, जो गणितीय रूप से साबित करता है कि कोड एक लिखित स्पेसिफ़िकेशन को पूरा करता है।
ऑडिट के दो मॉडल
पारंपरिक फ़र्म ऑडिट में सुरक्षा इंजीनियरों की एक छोटी टीम एक तय अवधि तक कोडबेस का अध्ययन करती है और रिपोर्ट देती है। कॉम्पिटिटिव ऑडिट में कई स्वतंत्र रिसर्चर एक साथ उसी कोड की समीक्षा करते हैं और उन्हें मिली समस्याओं के हिसाब से भुगतान मिलता है। दोनों मॉडल आम तौर पर अलग चीज़ें पकड़ते हैं, इसलिए प्रोटोकॉल अक्सर दोनों का इस्तेमाल करते हैं।
ऑडिट रिपोर्ट कैसे पढ़ें
दायरे से शुरुआत करें: कौन-से कॉन्ट्रैक्ट, कोड का कौन-सा वर्ज़न और कौन-सी तारीखें। वर्ज़न एक का ऑडिट वर्ज़न दो के बारे में बहुत कम बताता है। फिर गंभीरता के हिसाब से फ़ाइंडिंग पढ़ें। क्रिटिकल और हाई फ़ाइंडिंग से फ़ंड का नुकसान हो सकता है; मीडियम फ़ाइंडिंग को आम तौर पर खास परिस्थितियाँ चाहिए; लो और इन्फ़ॉर्मेशनल फ़ाइंडिंग साफ़-सफ़ाई से जुड़ी होती हैं। हर फ़ाइंडिंग के लिए देखें कि उसे फ़िक्स्ड, एक्नॉलेज्ड या डिस्प्यूटेड मार्क किया गया है, और क्या फ़िक्स की दोबारा समीक्षा हुई।
एक आसान उदाहरण
एक रिपोर्ट में एक हाई-सीवियरिटी फ़ाइंडिंग है: एक राउंडिंग गलती किसी यूज़र को डाली गई रकम से थोड़ा ज़्यादा निकालने देती है, और हज़ारों ट्रांज़ैक्शन में इसे दोहराने से वॉल्ट खाली हो सकता है। टीम लॉन्च से पहले इसे ठीक करती है और ऑडिटर फ़िक्स की पुष्टि करते हैं। बाहर किसी को इस बग के बारे में पता भी नहीं चलता। यही ऑडिट का अपना काम करना है, और इसीलिए फ़ाइंडिंग वाला हिस्सा कवर पर लगे लोगो से ज़्यादा मायने रखता है।
जोखिम और सीमाएँ
ऑडिट एक स्नैपशॉट है। समीक्षा के बाद कोड बदलता है, नए कॉन्ट्रैक्ट उससे इंटरैक्ट करते हैं और हमले की तकनीकें बेहतर होती हैं। DeFi के कुछ महँगे एक्सप्लॉइट ऑडिट हुए प्रोटोकॉल पर हुए हैं, अक्सर दायरे से बाहर के कोड के ज़रिए या कई प्रोटोकॉल के आपसी इंटरैक्शन के ज़रिए। ऑडिट किसी सिस्टम के ऑफ़चेन हिस्सों को भी नहीं परख सकते, जैसे की (key) कैसे मैनेज होती हैं या रिज़र्व किससे बने हैं। इसीलिए ऑडिट तब ज़्यादा उपयोगी होता है जब वह कई परतों में से एक हो: लॉन्च के बाद भी रिसर्चर्स को रिवॉर्ड देता रहने वाला बग बाउंटी, लाइव ट्रांज़ैक्शन पर नज़र रखने वाली रनटाइम मॉनिटरिंग, और खुद एसेट के लिए रिज़र्व प्रमाण।
Tori Finance इसका उपयोग कैसे करता है
Tori Finance के स्मार्ट कॉन्ट्रैक्ट का ऑडिट Sherlock और Nethermind ने किया है। ऑडिट इसकी सुरक्षा की एक परत हैं, जिनके साथ Hypernative की रनटाइम मॉनिटरिंग और Accountable का रिज़र्व प्रमाण भी है।
अक्सर पूछे जाने वाले सवाल
क्या ऑडिट हुआ प्रोटोकॉल भी हैक हो सकता है?
हाँ। ऑडिट किसी खास समय पर खास कोड को कवर करता है। बाद के बदलाव, दायरे से बाहर का कोड, दूसरे प्रोटोकॉल के साथ इंटरैक्शन और हमले की नई तकनीकें, ये सभी नुकसान करा सकते हैं।
ऑडिट में क्रिटिकल, हाई, मीडियम और लो का क्या मतलब है?
ये फ़ाइंडिंग को असर और संभावना के हिसाब से रैंक करते हैं। क्रिटिकल और हाई समस्याओं से फ़ंड का नुकसान हो सकता है या प्रोटोकॉल टूट सकता है, मीडियम समस्याओं को खास परिस्थितियाँ चाहिए, और लो व इन्फ़ॉर्मेशनल फ़ाइंडिंग छोटी होती हैं या कोड की गुणवत्ता से जुड़ी होती हैं।
स्मार्ट कॉन्ट्रैक्ट ऑडिट में कितना समय लगता है?
यह कोड के आकार और जटिलता पर निर्भर करता है। छोटे कॉन्ट्रैक्ट में कुछ दिन लग सकते हैं; बड़े प्रोटोकॉल में कई हफ़्ते लग सकते हैं, जिसके बाद आम तौर पर फ़िक्स की एक छोटी समीक्षा होती है।
संबंधित शब्द
बग बाउंटी
बग बाउंटी प्रोग्राम सुरक्षा रिसर्चर्स को कमज़ोरियों का फ़ायदा उठाने के बजाय उन्हें ज़िम्मेदारी से रिपोर्ट करने के लिए भुगतान करता है, और रिवॉर्ड समस्या की गंभीरता के हिसाब से तय होता है। यह ऑडिट खत्म होने के लंबे समय बाद तक प्रोटोकॉल के कोड को समीक्षा के दायरे में रखता है।
रनटाइम मॉनिटरिंग
रनटाइम मॉनिटरिंग किसी प्रोटोकॉल की लाइव ऑनचेन गतिविधि पर लगातार नज़र रखना है, ताकि संदिग्ध ट्रांज़ैक्शन को होते ही फ़्लैग किया जा सके, और कभी-कभी ब्लॉक भी। यह ऑडिट की पूरक है, जो एक समय पर कोड की समीक्षा करते हैं, क्योंकि यह देखती है कि कोड असल में क्या कर रहा है।
रिज़र्व प्रमाण (प्रूफ़ ऑफ़ रिज़र्व)
रिज़र्व प्रमाण एक स्वतंत्र जाँच है कि किसी टोकन या प्लेटफ़ॉर्म के पीछे के एसेट सच में मौजूद हैं, और बेहतर हो कि यह लगातार प्रकाशित हो ताकि कोई भी इसे सत्यापित कर सके। यह बैलेंस शीट का एसेट वाला पक्ष दिखाता है; अकेले यह देनदारियाँ साबित नहीं करता और हर जोखिम को कवर नहीं करता।
स्रोत
- ethereum.org: Smart contract securityethereum.org
- ethereum.org: Formal verification of smart contractsethereum.org
- BIS Quarterly Review: DeFi risks and the decentralisation illusionwww.bis.org
Tori Finance टीम द्वारा लिखा गया। यह निवेश सलाह नहीं है। यील्ड बदलती रहती है; पूँजी जोखिम में है।