ஸ்மார்ட் ஒப்பந்தங்கள் அறிமுகம்
பக்கத்தின் கடைசி புதுப்பிப்பு: 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)