స్మార్ట్ కాంట్రాక్టులకు పరిచయం
పేజీ చివరి అప్డేట్: 25 ఫిబ్రవరి, 2026
స్మార్ట్ కాంట్రాక్ట్ అంటే ఏమిటి?
"స్మార్ట్ కాంట్రాక్ట్" అనేది కేవలం ఎథేరియం బ్లాక్చైన్పై నడిచే ఒక ప్రోగ్రామ్. ఇది ఎథేరియం బ్లాక్చైన్లోని ఒక నిర్దిష్ట చిరునామాలో ఉండే కోడ్ (దాని ఫంక్షన్లు) మరియు డేటా (దాని స్టేట్) యొక్క సమాహారం.
స్మార్ట్ కాంట్రాక్ట్లు ఒక రకమైన ఎథేరియం అకౌంట్. అంటే వాటికి బ్యాలెన్స్ ఉంటుంది మరియు లావాదేవీలకు లక్ష్యంగా ఉండవచ్చు. అయితే అవి వినియోగదారుచే నియంత్రించబడవు, బదులుగా అవి నెట్వర్క్లో డిప్లాయ్ చేయబడి, ప్రోగ్రామ్ చేయబడిన విధంగా రన్ అవుతాయి. వినియోగదారు అకౌంట్లు స్మార్ట్ కాంట్రాక్ట్లో నిర్వచించబడిన ఫంక్షన్ను అమలు చేసే లావాదేవీలను సమర్పించడం ద్వారా స్మార్ట్ కాంట్రాక్ట్తో ఇంటరాక్ట్ కావచ్చు. స్మార్ట్ కాంట్రాక్ట్లు, ఒక సాధారణ కాంట్రాక్ట్ లాగా, నియమాలను నిర్వచించగలవు మరియు కోడ్ ద్వారా వాటిని స్వయంచాలకంగా అమలు చేయగలవు. స్మార్ట్ కాంట్రాక్ట్లు డిఫాల్ట్గా తొలగించబడవు, మరియు వాటితో ఇంటరాక్షన్లు తిరిగి మార్చలేనివి.
అవసరాలు
మీరు ఇప్పుడే ప్రారంభిస్తున్నట్లయితే లేదా తక్కువ సాంకేతిక పరిచయం కోసం చూస్తున్నట్లయితే, మేము మా స్మార్ట్ కాంట్రాక్ట్ల పరిచయాన్ని సిఫార్సు చేస్తున్నాము.
స్మార్ట్ కాంట్రాక్ట్ల ప్రపంచంలోకి ప్రవేశించే ముందు మీరు అకౌంట్లు, లావాదేవీలు మరియు ఎథేరియం వర్చువల్ మషీన్ గురించి చదివారని నిర్ధారించుకోండి.
ఒక డిజిటల్ వెండింగ్ మషీన్
నిక్ స్జాబో (opens in a new tab) వివరించినట్లుగా, స్మార్ట్ కాంట్రాక్ట్కు ఉత్తమ రూపకం బహుశా వెండింగ్ మషీన్. సరైన ఇన్పుట్లతో, ఒక నిర్దిష్ట అవుట్పుట్ హామీ ఇవ్వబడుతుంది.
వెండింగ్ మషీన్ నుండి స్నాక్ పొందడానికి:
1డబ్బు + స్నాక్ ఎంపిక = స్నాక్ ఇవ్వబడిందిఈ లాజిక్ వెండింగ్ మషీన్లో ప్రోగ్రామ్ చేయబడింది.
ఒక స్మార్ట్ కాంట్రాక్ట్, వెండింగ్ మషీన్ లాగా, దానిలో లాజిక్ ప్రోగ్రామ్ చేయబడి ఉంటుంది. ఈ వెండింగ్ మషీన్ సాలిడిటీలో వ్రాసిన స్మార్ట్ కాంట్రాక్ట్ అయితే ఎలా ఉంటుందో ఇక్కడ ఒక సాధారణ ఉదాహరణ ఉంది:
1pragma solidity 0.8.7;23contract VendingMachine {45 // కాంట్రాక్ట్ యొక్క స్టేట్ వేరియబుల్స్ను డిక్లేర్ చేయండి6 address public owner;7 mapping (address => uint) public cupcakeBalances;89 // 'VendingMachine' కాంట్రాక్ట్ డిప్లాయ్ చేయబడినప్పుడు:10 // 1. డిప్లాయ్ చేసే చిరునామాను కాంట్రాక్ట్ యజమానిగా సెట్ చేయండి11 // 2. డిప్లాయ్ చేయబడిన స్మార్ట్ కాంట్రాక్ట్ యొక్క కప్కేక్ బ్యాలెన్స్ను 100కి సెట్ చేయండి12 constructor() {13 owner = msg.sender;14 cupcakeBalances[address(this)] = 100;15 }1617 // స్మార్ట్ కాంట్రాక్ట్ యొక్క కప్కేక్ బ్యాలెన్స్ను పెంచడానికి యజమానిని అనుమతించండి18 function refill(uint amount) public {19 require(msg.sender == owner, "యజమాని మాత్రమే రీఫిల్ చేయగలరు.");20 cupcakeBalances[address(this)] += amount;21 }2223 // కప్కేక్లను కొనుగోలు చేయడానికి ఎవరినైనా అనుమతించండి24 function purchase(uint amount) public payable {25 require(msg.value >= amount * 1 ether, "మీరు కప్కేక్కు కనీసం 1 ETH చెల్లించాలి");26 require(cupcakeBalances[address(this)] >= amount, "ఈ కొనుగోలును పూర్తి చేయడానికి స్టాక్లో తగినన్ని కప్కేక్లు లేవు");27 cupcakeBalances[address(this)] -= amount;28 cupcakeBalances[msg.sender] += amount;29 }30}అన్నీ చూపించువెండింగ్ మషీన్ ఒక విక్రేత ఉద్యోగి అవసరాన్ని ఎలా తొలగిస్తుందో, అదే విధంగా స్మార్ట్ కాంట్రాక్ట్లు అనేక పరిశ్రమలలో మధ్యవర్తులను భర్తీ చేయగలవు.
అనుమతి రహితం
ఎవరైనా స్మార్ట్ కాంట్రాక్ట్ వ్రాసి దానిని నెట్వర్క్లో డిప్లాయ్ చేయవచ్చు. మీరు స్మార్ట్ కాంట్రాక్ట్ భాషలో కోడ్ చేయడం ఎలాగో నేర్చుకోవాలి మరియు మీ కాంట్రాక్ట్ను డిప్లాయ్ చేయడానికి తగినంత ETH కలిగి ఉండాలి. స్మార్ట్ కాంట్రాక్ట్ను డిప్లాయ్ చేయడం సాంకేతికంగా ఒక లావాదేవీ, కాబట్టి మీరు ఒక సాధారణ ETH బదిలీ కోసం గ్యాస్ చెల్లించిన విధంగానే గ్యాస్ చెల్లించాలి. అయితే, కాంట్రాక్ట్ డిప్లాయ్మెంట్ కోసం గ్యాస్ ఖర్చులు చాలా ఎక్కువగా ఉంటాయి.
ఎథేరియం స్మార్ట్ కాంట్రాక్ట్లను వ్రాయడానికి డెవలపర్-ఫ్రెండ్లీ భాషలను కలిగి ఉంది:
- Solidity
- Vyper
అయితే, ఎథేరియం వర్చువల్ మషీన్ కాంట్రాక్ట్ను ఇంటర్ప్రెట్ చేసి, స్టోర్ చేయగలిగేలా వాటిని డిప్లాయ్ చేయడానికి ముందు కంపైల్ చేయాలి. కంపైలేషన్ గురించి మరింత
కంపోజబిలిటీ
స్మార్ట్ కాంట్రాక్ట్లు ఎథేరియంపై పబ్లిక్గా ఉంటాయి మరియు వాటిని ఓపెన్ APIలుగా భావించవచ్చు. అంటే, సాధ్యమయ్యే వాటిని బాగా విస్తరించడానికి మీరు మీ స్వంత స్మార్ట్ కాంట్రాక్ట్లో ఇతర స్మార్ట్ కాంట్రాక్ట్లను కాల్ చేయవచ్చు. కాంట్రాక్ట్లు ఇతర కాంట్రాక్ట్లను కూడా డిప్లాయ్ చేయగలవు.
స్మార్ట్ కాంట్రాక్ట్ కంపోజబిలిటీ గురించి మరింత తెలుసుకోండి.
పరిమితులు
స్మార్ట్ కాంట్రాక్ట్లు ఒంటరిగా "వాస్తవ-ప్రపంచ" ఈవెంట్ల గురించి సమాచారాన్ని పొందలేవు ఎందుకంటే అవి ఆఫ్చైన్ సోర్స్ల నుండి డేటాను తిరిగి పొందలేవు. అంటే అవి వాస్తవ ప్రపంచంలోని ఈవెంట్లకు స్పందించలేవు. ఇది డిజైన్ ప్రకారమే. బాహ్య సమాచారంపై ఆధారపడటం ఏకాభిప్రాయాన్ని ప్రమాదంలో పడేయవచ్చు, ఇది భద్రత మరియు వికేంద్రీకరణకు ముఖ్యం.
అయితే, బ్లాక్చైన్ అప్లికేషన్లు ఆఫ్చైన్ డేటాను ఉపయోగించడం ముఖ్యం. దీనికి పరిష్కారం ఒరాకిల్స్, ఇవి ఆఫ్చైన్ డేటాను గ్రహించి స్మార్ట్ కాంట్రాక్ట్లకు అందుబాటులో ఉంచే టూల్స్.
స్మార్ట్ కాంట్రాక్ట్ల యొక్క మరో పరిమితి గరిష్ట కాంట్రాక్ట్ పరిమాణం. ఒక స్మార్ట్ కాంట్రాక్ట్ గరిష్టంగా 24KB ఉండగలదు లేదా దానికి గ్యాస్ అయిపోతుంది. ది డైమండ్ ప్యాటర్న్ (opens in a new tab) ఉపయోగించి దీనిని అధిగమించవచ్చు.
మల్టీసిగ్ కాంట్రాక్ట్లు
మల్టీసిగ్ (బహుళ-సంతకం) కాంట్రాక్ట్లు అనేవి ఒక లావాదేవీని అమలు చేయడానికి బహుళ చెల్లుబాటు అయ్యే సంతకాలు అవసరమయ్యే స్మార్ట్ కాంట్రాక్ట్ అకౌంట్లు. గణనీయమైన మొత్తంలో ఈథర్ లేదా ఇతర టోకెన్లను కలిగి ఉన్న కాంట్రాక్ట్ల కోసం వైఫల్యం యొక్క ఏకైక పాయింట్లను నివారించడానికి ఇది చాలా ఉపయోగకరంగా ఉంటుంది. మల్టీసిగ్లు కాంట్రాక్ట్ ఎగ్జిక్యూషన్ మరియు కీ నిర్వహణ బాధ్యతను బహుళ పార్టీల మధ్య విభజిస్తాయి మరియు ఒకే ప్రైవేట్ కీని కోల్పోవడం వల్ల నిధుల కోలుకోలేని నష్టాన్ని నివారిస్తాయి. ఈ కారణాల వల్ల, మల్టీసిగ్ కాంట్రాక్ట్లను సాధారణ DAO పాలన కోసం ఉపయోగించవచ్చు. మల్టీసిగ్లు అమలు చేయడానికి M సాధ్యమైన ఆమోదయోగ్యమైన సంతకాల నుండి N సంతకాలు అవసరం (ఇక్కడ N ≤ M, మరియు M > 1). N = 3, M = 5 మరియు N = 4, M = 7 సాధారణంగా ఉపయోగించబడతాయి. ఒక 4/7 మల్టీసిగ్కు ఏడు సాధ్యమైన చెల్లుబాటు అయ్యే సంతకాలలో నాలుగు అవసరం. మూడు సంతకాలు పోయినప్పటికీ నిధులను తిరిగి పొందవచ్చని దీని అర్థం. ఈ సందర్భంలో, కాంట్రాక్ట్ అమలు కావడానికి కీ-హోల్డర్లలో మెజారిటీ అంగీకరించి, సంతకం చేయాలని కూడా దీని అర్థం.
స్మార్ట్ కాంట్రాక్ట్ వనరులు
OpenZeppelin కాంట్రాక్ట్స్ - సురక్షితమైన స్మార్ట్ కాంట్రాక్ట్ డెవలప్మెంట్ కోసం లైబ్రరీ.
- openzeppelin.com/contracts/ (opens in a new tab)
- GitHub (opens in a new tab)
- కమ్యూనిటీ ఫోరమ్ (opens in a new tab)