திறன் ஒப்பந்தப் பாதுகாப்பு வழக்கமான மென்பொருள் பாதுகாப்பிலிருந்து ஏன் வேறுபடுகிறது?
தானியங்கி ஒப்பந்தங்களின் பாதுகாப்பு வேறுபட்டது. ஏனெனில் அவற்றின் நிரல் பொதுவில் உள்ளது, பெரும்பாலும் நேரடியாகப் பணத்தைக் கையாள்கிறது, மேலும் செயல்பாட்டுக்குக் கொண்டுவந்த பிறகு பொதுவாக அதை மாற்ற முடியாது. இணையச் செயலியில் உள்ள பிழையை ஒரே இரவில் திருத்திவிடலாம்; ஆனால் ஒப்பந்தத்தில் உள்ள பிழையை நிரலைப் படிக்கும் எவரும் கண்டறிந்து, குழு விழிப்பதற்குள் அதைப் பயன்படுத்தித் தாக்கலாம். தானியங்கி ஒப்பந்தக் குறைபாடுகளால் ஏற்பட்ட இழப்புகள் ஒரு பில்லியன் டாலருக்கும் அதிகம் என Ethereum.org மதிப்பிடுகிறது. ஆரம்பகால எடுத்துக்காட்டாக 2016 DAO ஊடுருவல் தாக்குதலையும் அது குறிப்பிடுகிறது.
நான்கு பேர் கொண்ட லார்க்ஸ்பர் லேப்ஸ் என்ற கற்பனை உருவாக்க நிறுவனத்தை எடுத்துக்கொள்ளுங்கள். உறுப்பினர்கள் பணம் செலுத்தித் தங்கள் பங்கைத் திரும்பப் பெறக்கூடிய எளிய கூட்டுச் சேமிப்பு அமைப்பை அது உருவாக்குகிறது. பயன்பாட்டுக்கு வெளியிடுவதற்கு முன், மென்பொருள் உருவாக்குநர் கோஃபி பின்வரும் ஆய்வுக் குறிப்புகளை எழுதுகிறார்: 'withdraw முதலில் பணத்தை அனுப்புகிறது; பிறகுதான் இருப்பை 0 ஆக அமைக்கிறது. setFee பொதுவாக அணுகக்கூடியதாக உள்ளது; பிறகு கட்டுப்படுத்துவோம். பயிற்சியில் இருந்த பழைய தொகுப்பி பதிப்பைப் பயன்படுத்துகிறோம். வெகுமதி டோக்கனின் விலை ஒரே ஒரு சிறிய பரிமாற்ற நிதித்தொகுப்பிலிருந்து பெறப்படுகிறது. சோதனைகள்: deposit + withdraw-ஐ ஒருமுறை கைமுறையாக முயன்றேன்; வேலை செய்கிறது'. ஒவ்வொரு வரியும் ஏற்கெனவே அறியப்பட்ட ஒரு வகைப் பாதுகாப்புப் பலவீனத்தைக் குறிக்கிறது.
தானியங்கி ஒப்பந்தங்களில் மிகவும் பொதுவாகக் காணப்படும் பாதுகாப்புக் குறைபாடுகள் என்ன?
தானியங்கு ஒப்பந்தங்களில் மிகவும் பொதுவான பாதிப்புகள்: அணுகல் கட்டுப்பாட்டுக் குறைபாடுகள், விலைத் தரவு வழங்கியைத் திரித்தல், தருக்கப் பிழைகள், உள்ளீட்டுச் சரிபார்ப்பு இல்லாமை, மீள்நுழைவு. இவை 2025-க்கான OWASP Smart Contract Top 10 பட்டியலில் முன்னிலையில் உள்ளன. Ethereum.org இதே அடிப்படை வகைகளை விளக்குகிறது.
மறுநுழைவு
ஒரு ஒப்பந்தம் தனது பதிவுகளைப் புதுப்பிப்பதற்கு முன் நிதியை அனுப்புகிறது அல்லது மற்றொரு ஒப்பந்தத்தை அழைக்கிறது. பழைய இருப்புத் தொகையே இன்னும் காட்டப்படும் நிலையில், தீங்கிழைக்கும் பெறுநர் மீண்டும் அந்த ஒப்பந்தத்தை அழைத்து மறுபடியும் பணத்தை எடுக்கிறார். இருப்பைச் சுழியமாக மாற்றுவதற்கு முன் பணத்தை வழங்கும் கோஃபியின் பணமெடுக்கும் செயல்கூறு இதற்கான வழக்கமான எடுத்துக்காட்டு. முதலில் நிலையைப் புதுப்பித்து, பிற ஒப்பந்தங்களுடன் கடைசியில் தொடர்புகொள்வதே வழக்கமான தீர்வு. இது பெரும்பாலும் சரிபார்ப்புகள், விளைவுகள், தொடர்புகள் என்று அழைக்கப்படுகிறது.
அணுகல் கட்டுப்பாடு
யார் வேண்டுமானாலும் இயக்கக்கூடிய முக்கியச் செயல்பாடுகள். கோஃபியின் பொதுவில் அணுகக்கூடிய setFee செயல்பாடு, தொடர்பில்லாத எவரும் கட்டணத்தை மாற்ற அனுமதிக்கிறது. உரிமையாளர் பொறுப்பு, பொறுப்பின் அடிப்படையிலான அணுகல், பல கையொப்ப ஒப்புதல் போன்ற முறைகளை Ethereum.org விவரிக்கிறது.
முழு எண் மேல் வரம்பு மீறலும் கீழ் வரம்பு மீறலும்
வரம்பைத் தாண்டும்போது சுற்றிவரும் எண்கணிதம்; இதனால் பூஜ்ஜியத்திற்குக் கீழே உள்ள இருப்பு மிகப்பெரிய எண்ணாக மாறிவிடும். Solidity 0.8.0 மற்றும் அதற்குப் பிந்தைய பதிப்புகள் இயல்பாகவே இதை நிராகரிக்கின்றன என்றும், பழைய நிரல்களில் இதற்கென வெளிப்படையான சோதனைகள் தேவை என்றும் Ethereum.org குறிப்பிடுகிறது. அதனால்தான் கோஃபியின் பழைய தொகுப்பி முக்கியமாகிறது.
ஆரக்கிளைக் கையாளுவதன் மூலம் முடிவை மாற்றுதல்
தாக்குதல் நடத்துபவர் விலையை மாற்றக்கூடிய, வர்த்தகம் குறைவாக நடக்கும் ஒரே சந்தையிலிருந்து விலையைப் பெறுதல். இதற்கு அவர் பெரும்பாலும் ஒரே பரிவர்த்தனைக்குள் வாங்கித் திருப்பிச் செலுத்தப்படும் உடனடிக் கடனைப் பயன்படுத்தலாம். உறுதியான வடிவமைப்புகள் பரவலாக்கப்பட்ட வெளித்தரவுச் சேவைகளையோ, குறிப்பிட்ட காலத்தின் சராசரி விலைகளையோ பயன்படுத்துகின்றன.
தர்க்க மற்றும் சரிபார்ப்புப் பிழைகள்
திட்டமிட்ட வடிவமைப்புடன் பொருந்தாத விதிகள், அல்லது பூஜ்ஜியத் தொகை அல்லது எதிர்பாராத முகவரி போன்ற, சரிபார்க்கப்படவே செய்யாத உள்ளீடுகள்.
குழுக்கள் தானியங்கி ஒப்பந்தங்களை எப்படிச் சோதித்துத் தணிக்கை செய்கின்றன?
எந்தவொரு தனி முறையாலும் எல்லாவற்றையும் கண்டுபிடிக்க முடியாது என்பதால், குழுக்கள் தானியக்க ஒப்பந்தங்களைப் பல அடுக்குகளில் சோதித்துத் தணிக்கை செய்கின்றன: தானியங்குச் சோதனைகள், பகுப்பாய்வுக் கருவிகள், சோதனை வலையமைப்பில் நிறுவுதல், சுயாதீன ஆய்வு, மேலும் குறிப்பிடத்தக்க மதிப்புள்ள சொத்துகளை வைத்திருக்கும் ஒப்பந்தங்களுக்கு வெளிப்புறத் தணிக்கையும் பிழைகளைக் கண்டறிவோருக்கான வெகுமதித் திட்டமும் பயன்படுத்தப்படுகின்றன.
1. அலகுச் சோதனைகளும் பண்புச் சோதனைகளும்
மீண்டும் அழைப்பை மேற்கொள்ளும் பெறுநர் போன்ற தீங்கு விளைவிக்கும் நிகழ்வுகள் உட்பட, ஒவ்வொரு செயல்கூறுக்கும் சோதனைகளை எழுதுங்கள். சீரற்ற உள்ளீட்டுச் சோதனை ஆயிரக்கணக்கான சீரற்ற உள்ளீடுகளைத் தானாகவே முயன்று பார்க்கிறது.
2. நிரலை இயக்காமல் பகுப்பாய்வு செய்தல்
அறியப்பட்ட அபாயகரமான நிரல் வடிவமைப்புகள் உள்ளனவா என நிரலை ஆராயும் Slither, Mythril, Aderyn போன்ற கருவிகளை Ethereum.org குறிப்பிடுகிறது.
3. வலையமைப்புகளைச் சோதியுங்கள்
முதன்மை வலையமைப்பில் வெளியிடுவதற்கு முன், பொதுச் சோதனை வலையமைப்பில் வெளியிடுங்கள். செயலி மற்றும் ஒப்பந்த உருவாக்கத்திற்கு Ethereum.org, Sepoliaவைப் பரிந்துரைக்கிறது; சோதனை வலையமைப்பின் ether உண்மையான மதிப்பற்றதாக இருக்க வேண்டும் என்பதே நோக்கம். எனவே தவறுகளால் செலவு ஏற்படாது.
4. சக நிபுணர் மதிப்பாய்வும் தணிக்கை செய்யப்பட்ட நிரலகங்களும்
பதிப்புக் கட்டுப்பாட்டைப் பயன்படுத்துங்கள்; ஒவ்வொரு மாற்றத்தையும் சுயாதீன ஆய்வாளர்கள் ஆய்வு செய்யட்டும். அணுகல் கட்டுப்பாட்டை ஆரம்பத்திலிருந்து எழுதுவதற்குப் பதிலாக, நன்கு ஆய்வு செய்யப்பட்ட OpenZeppelin Contracts போன்ற நூலகங்களைப் பயன்படுத்துங்கள்.
5. தணிக்கை, குறை கண்டறிவோருக்கான வெகுமதி மற்றும் கண்காணிப்பு
சுயாதீனத் தணிக்கைகள் கூடுதல் ஆய்வை வழங்குகின்றன. ஆனால் ethereum.org குறிப்பிடுவதுபோல், அவை எல்லாப் பிழைகளையும் கண்டறிவதில்லை. பிழைகளைக் கண்டறிவோருக்கான வெகுமதித் திட்டங்கள், அவசர நிறுத்தச் செயல்பாடுகள் மற்றும் நிகழ்வுக் கண்காணிப்பு ஆகியவை மீதமுள்ளவற்றைக் கையாள உதவுகின்றன.
பலவீனமான பாதுகாப்பு மதிப்பாய்வும் மேம்படுத்தப்பட்ட மதிப்பாய்வும் எப்படி இருக்கும்?
பலவீனமான சரிபார்ப்பு: 'பணம் செலுத்துவதும் எடுப்பதும் கைமுறையாகச் சோதிக்கப்பட்டது, சரியாக வேலை செய்கிறது, பயன்பாட்டுக்கு விடத் தயார்.' எதிர்பார்த்தபடி எல்லாம் நடக்கும் சூழலை மட்டும் சோதிப்பது, நேர்மையான பயனர்களுக்கு ஒப்பந்தம் செயல்படுகிறது என்பதைக் காட்டுகிறது. தாக்குதல் நடத்துவோர் அப்படிப்பட்டவர்கள் அல்ல.
மேம்படுத்தப்பட்ட ஆய்வு: மறுநுழைவு: withdraw இப்போது பணத்தை அனுப்பும் முன்பே இருப்பை பூஜ்ஜியமாக்குகிறது. மீண்டும் உள்ளே அழைக்க முயலும் தீங்கிழைக்கும் பெறுநர் ஒப்பந்தத்தை ஒரு சோதனை பயன்படுத்துகிறது. அணுகல் கட்டுப்பாடு: தணிக்கை செய்யப்பட்ட நிரலகத்திலுள்ள உரிமையாளர் பொறுப்புக்கு மட்டும் setFee அனுமதிக்கப்படுகிறது; அனுமதியற்ற ஒருவரின் அழைப்பு தோல்வியடைவதைச் சரிபார்க்கும் சோதனையும் உள்ளது. நிரல் தொகுப்பி: வழிதல் சோதனைகள் செயல்படும்படி தற்போதைய 0.8 பதிப்புக்கு மேம்படுத்தப்பட்டுள்ளது. ஆரக்கிள்: ஒற்றைத் தொகுப்பின் விலைக்குப் பதிலாகப் பரவலாக்கப்பட்ட விலைத் தரவு வழங்கல் பயன்படுத்தப்படுகிறது; திடீர் மாற்றங்களுக்கு நியாயமான வரம்பும் உள்ளது. சோதனை: அலகுச் சோதனைகள், சீரற்ற உள்ளீடுகளைக் கொண்ட சோதனை ஓட்டம், ஒவ்வொரு கண்டறிதலுக்கும் விளக்கத்துடன் நிலையான நிரல் பகுப்பாய்வு ஆகியவை மேற்கொள்ளப்பட்டன. பின்னர் Sepolia-வில் இரண்டு வாரங்கள் ஒரு சக ஊழியர் அதைச் செயலிழக்கச் செய்ய முயன்றார். உண்மையான நிதி எதையும் ஏற்கும் முன் வெளித் தணிக்கைக்கு ஏற்பாடு செய்யப்பட்டுள்ளது.
தானியங்கி ஒப்பந்தப் பாதுகாப்பில் ஏற்படும் பொதுவான தவறுகள் என்ன?
அழைப்புகளை அனுப்பும் அனைவரும் நேர்மையானவர்கள் போலக் கருதி, எதிர்பார்த்தபடி இயங்கும் வழியை மட்டும் சோதிப்பதே மிகவும் பொதுவான தவறு. பிற தவறுகள்: பிறகு கட்டுப்படுத்தலாம் என்று நிர்வாகச் செயல்பாடுகளைத் திறந்துவைப்பது, காலாவதியான நிரல் தொகுப்பியைப் பயன்படுத்தும் பயிற்சி நிரலை நகலெடுப்பது, ஒரே விலை ஆதாரத்தை நம்புவது, தணிக்கையை உத்தரவாதமாகக் கருதுவது, சோதனை வலையமைப்புக் கட்டத்தைத் தவிர்ப்பது, இடைநிறுத்துவதற்கோ மேம்படுத்துவதற்கோ திட்டமில்லாமல் பயன்பாட்டில் அமர்த்துவது.
Tosheo.ai தளத்தில் இந்தப் பாடம் எந்தப் பகுதியில் இடம்பெறுகிறது?
இது தொகுதிச் சங்கிலி வகைப்பாட்டிலும் தொகுதிச் சங்கிலிப் படிப்பிலும் உள்ள நிரலாக்கப் பாடம். இந்த இலவசப் பக்கம் ஒவ்வொரு படியையும் உரை வடிவில் விளக்குகிறது. உண்மையான ஒப்பந்த நிரலை மதிப்பாய்வு செய்து திருத்தி, சோதனை வலையமைப்பில் சோதனைகளை இயக்கும் முழுச் செய்முறைப் பதிப்பு, பதிவுசெய்த பிறகு விருப்பத் தேர்வான நிரலாக்கப் பிரிவில் கிடைக்கும். அடிப்படைகள் புதிதாக இருந்தால், திறன் ஒப்பந்தங்கள் பற்றிய விளக்கத்திலிருந்து தொடங்குங்கள். Tosheo.ai ஒரு முழுநேரத் தீவிரப் பயிற்சி முகாமோ, தொழில்முறைத் தணிக்கையாளர் தகுதியோ அல்ல. இங்குள்ள எதுவும் முதலீட்டு ஆலோசனை அல்ல; உண்மையான மதிப்பைக் கொண்டுள்ள ஒப்பந்தங்களுக்கு நிபுணர் தணிக்கை தேவை.
மூலங்களும் வரம்பும்
ethereum.org, திறன்மிகு ஒப்பந்தப் பாதுகாப்பு (சரிபார்த்த தேதி: 19 அக்டோபர் 2026) ↗
OWASP நுண்ணறிவு ஒப்பந்தங்களின் முதன்மையான 10 அபாயங்கள், 2025 (சரிபார்த்த நாள்: 19 October 2026) ↗
ethereum.org, வலையமைப்புகள் மற்றும் சோதனை வலையமைப்புகள் (சரிபார்த்த தேதி: 19 அக்டோபர் 2026) ↗