smart contract म्हणजे काय हा प्रश्न Ethereum, DeFi किंवा crypto wallet वापरणाऱ्यांना अनेकदा पडतो. सोप्या भाषेत, smart contract हा blockchain वर ठरलेल्या नियमांनुसार चालणारा program आहे. तो केवळ “डिजिटल करार” नसतो आणि प्रत्येक व्यवहार कायदेशीर करार ठरतोच असे नाही. Ethereum वर त्याचा code आणि data एका विशिष्ट address शी जोडलेला असतो; user transaction पाठवून त्यातील function चालवतो.

हा program network मध्ये deploy केल्यावर nodes त्याचे नियम तपासून execution करतात. त्याला bank, app कंपनी किंवा एखादा कर्मचारी प्रत्येक वेळी manual approval देत नाही. मात्र code लिहिणाऱ्या व्यक्तीने नियम बरोबर लिहिले आहेत का, contract upgrade होऊ शकतो का आणि user कोणती परवानगी देतो आहे हे स्वतंत्रपणे तपासावे लागते. Blockchain वर code असणे म्हणजे त्याचे audit झाले किंवा तो सुरक्षित आहे याची हमी नाही.

Vending machine चे उदाहरण

Smart contract समजण्यासाठी vending machine चे उदाहरण उपयोगी पडते. योग्य पैसे टाकून योग्य पर्याय निवडल्यावर मशीन वस्तू देते. त्याचप्रमाणे contract ला योग्य transaction मिळाली आणि त्यातील अटी पूर्ण झाल्या, तर code ने ठरवलेली कृती घडते. उदाहरणार्थ, ठरलेली token रक्कम दिल्यावर दुसरा token पाठवणे, किंवा अनेक स्वाक्षऱ्या मिळाल्यावर treasury मधून रक्कम पाठवणे.

या उदाहरणात मशीनचा नियम कोडमध्ये लिहिलेला असतो; contract सुद्धा code आणि stored data वापरतो. User wallet मधून transaction sign करून network कडे पाठवतो. Contract transaction तपासतो आणि परवानगी असलेली function चालवतो. अट पूर्ण नसेल तर कृती नाकारली जाऊ शकते, तरी transaction ला gas लागू होऊ शकतो. “काम झाले नाही, म्हणजे fee नाही” असे गृहीत धरू नका.

Smart contract काय करू शकतो?

Ethereum smart contract वापरून token तयार करणे, कर्जसेवा, विकेंद्रित exchange, NFT नियम किंवा DAO मधील मतदान यांसारखी कामे करता येतात. Token हा नेहमी स्वतंत्र blockchain नसतो; अनेक token Ethereum वरच्या contract द्वारे चालतात. म्हणून token चे नाव किंवा ticker पाहूनच त्याचा address अधिकृत आहे असे ठरवू नका. Project च्या अधिकृत माहितीशी contract address जुळवा.

Smart contract दुसऱ्या contract ला function call करू शकतो. त्यामुळे एका app मध्ये अनेक पायऱ्या एकत्र चालू शकतात; याला composability म्हणतात. वापरकर्त्यासाठी याचा अर्थ एका transaction मध्ये वेगवेगळे permissions किंवा asset हालचाली सामील असू शकतात. Wallet च्या confirm screen वर नेमके कोणते काम मंजूर होत आहे ते वाचा. सुरुवातीला दिसणारी रक्कमच संपूर्ण व्यवहार आहे असे गृहीत धरू नका.

Ethereum वर gas का आवश्यक आहे?

Ethereum वर code चालवण्यासाठी network चा संगणकीय वेळ आणि data वापरला जातो. या वापराची मोजणी gas मध्ये होते आणि transaction साठी fee भरावी लागते. साधा ETH transfer आणि अनेक functions चालवणारा contract समान खर्चाचा असेलच असे नाही. Network वर गर्दी वाढली की fee बदलू शकते. व्यवहार पाठवण्यापूर्वी wallet ने दाखवलेली रक्कम आणि योग्य network तपासा.

Contract मधील माहिती वाचणे आणि network वर नवा transaction पाठवणे या वेगळ्या क्रिया आहेत. Read call मध्ये फक्त आधीचा data दाखवला जाऊ शकतो; write transaction token हलवू शकतो किंवा contract ची स्थिती बदलू शकतो. Deploy म्हणजे नवीन code blockchain वर ठेवणे. Deploy साठीही gas लागतो. Wallet वर Confirm करण्याआधी तुम्ही read, write की deploy करत आहात हे ओळखा.

Smart contract च्या मर्यादा

Smart contract ला बाहेरच्या जगातील माहिती आपोआप मिळत नाही. पाऊस, क्रीडा निकाल किंवा शेअर बाजाराची किंमत वापरायची असेल तर oracle सारखी सेवा data contract पर्यंत पोहोचवते. त्यामुळे contract code नीट चालला तरी input data अचूक आहे याची खात्री स्वतंत्रपणे करावी लागते. App कोणता oracle किंवा data provider वापरतो, माहिती कधी अद्ययावत झाली हे पहा.

Ethereum वरील contract deploy झाल्यावर सामान्यतः स्वतःहून delete करता येत नाही आणि केलेला व्यवहार परत करणे कठीण असते. काही project upgradeable proxy वापरतात; त्यात administrator नवीन implementation जोडू शकतो. त्यामुळे code बदलण्याचा अधिकार कोणाकडे आहे हे documentation मधून तपासा. “Blockchain वर आहे” म्हणून प्रत्येक contract कायम तसाच राहील असे समजू नका.

Wallet परवानगी आणि सामान्य फसवणूक

ERC-20 token वापरताना wallet approve transaction दाखवू शकते. या approval मुळे निवडलेल्या contract ला तुमच्या token मधील ठरावीक रक्कम वापरण्याचा अधिकार मिळतो. Unlimited allowance दिल्यास तो अधिकार नंतरही लागू राहू शकतो. App अधिकृत आहे का तपासा आणि समजेल इतकीच परवानगी द्या. विनंती स्पष्ट नसेल तर transaction मंजूर न करता आधी माहिती घ्या.

Contract address आणि token ticker या वेगळ्या गोष्टी आहेत. सारखा ticker असलेला बनावट token असू शकतो, म्हणून address project च्या अधिकृत site आणि विश्वसनीय blockchain explorer शी जुळवा. Explorer वर code verified दिसणे म्हणजे code वाचता येतो; audit झाला किंवा तो सुरक्षित आहे याची खात्री नाही. Link स्वतः उघडा आणि message मधील पत्ता थेट वापरू नका.

Transaction sign करण्याआधी wallet ने दाखवलेला network योग्य आहे का तपासा. Ethereum mainnet साठी असलेला token दुसऱ्या chain वर पाठवला तर प्राप्तकर्त्याला तो दिसेलच असे नाही. Bridge वापरल्यास कोणता contract token lock किंवा mint करतो, परत येण्याची प्रक्रिया काय आहे हे वाचा. Seed phrase किंवा private key मागणाऱ्या कोणत्याही व्यक्तीला ती देऊ नका; smart contract वापरण्यासाठी support ला recovery phrase लागत नाही.

Read, write आणि deploy यातला फरक

Read call contract मधील माहिती दाखवतो; तो सहसा network state बदलत नाही. Write transaction state बदलू शकतो, token हलवू शकतो किंवा दुसऱ्या function ला परवानगी देऊ शकतो. Deploy म्हणजे नवीन contract code Ethereum network वर ठेवणे; त्यासाठी ETH मध्ये gas लागतो. Wallet screen वरील “Confirm” दाबण्यापूर्वी ही तीन क्रिया वेगळी ओळखा, कारण त्यांचे परिणाम आणि खर्च सारखे नसतात.

Developer contract deploy करण्यापूर्वी test network वर code तपासू शकतो आणि नंतर mainnet वर ठेवू शकतो. पण test network वरील यश म्हणजे live code मध्ये त्रुटी नाही असा पुरावा नाही. Code review, audit, bug bounty आणि monitoring हे वेगवेगळे सुरक्षा उपाय आहेत. कोणताही audit भविष्यातील सर्व जोखीम संपवतो असे नाही. User म्हणून अनोळखी app मध्ये मोठी रक्कम जोडण्याआधी project आणि contract तपासा.

सुरक्षितपणे smart contract कसा तपासाल?

पहिले project चे अधिकृत domain आणि social account मधील link जुळतात का ते पाहा. नंतर token contract address अधिकृत documentation शी तुलना करा. Wallet कोणते permissions मागते, किती token allowance देते आणि network कोणता आहे हे वाचा. Transaction न समजल्यास ती approve न करता थांबणे चांगले. “मोफत reward claim” किंवा “account बंद होईल” अशा तातडीच्या संदेशांमधील link वरून wallet जोडू नका.

तुम्ही आधी दिलेली token approval काढायची असल्यास संबंधित blockchain आणि योग्य token contract साठी विश्वसनीय revoke tool वापरावे लागते. Revoke केल्यावर काही token खर्च करण्याची परवानगी बंद होते; आधी झालेला transfer मात्र मागे येत नाही. प्रत्येक network वर वेगळी allowance असू शकते. Wallet history आणि explorer मध्ये transaction तपासून कोणत्या app ला अधिकार दिला आहे ते शोधा.

Smart contract म्हणजे काय याचे सार असे: तो blockchain address वर ठेवलेला code आणि data असतो; user transaction ने त्याची function चालवतो, network नियम तपासते आणि gas वापरला जातो. हे automation उपयोगी असले तरी code, oracle, administrator, wallet permission आणि token address यांची जोखीम उरते. अधिक माहिती Ethereum.org Marathi smart contract docs आणि official overview मध्ये वाचा. CryptoSigy चे crypto guides आणि मराठी लेख देखील पाहा.