முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்
Change page

ERC-20 வில்லை தரநிலை

அறிமுகம்

வில்லை என்றால் என்ன?

எத்திரியத்தில் வில்லைகள் எதை வேண்டுமானாலும் குறிக்கலாம்:

  • இணையத் தளத்தில் உள்ள நற்பெயர் புள்ளிகள்
  • விளையாட்டில் உள்ள ஒரு கதாபாத்திரத்தின் திறன்கள்
  • ஒரு நிறுவனத்தின் பங்கு போன்ற நிதிச் சொத்துகள்
  • USD போன்ற ஃபியட் நாணயம்
  • ஒரு அவுன்ஸ் தங்கம்
  • மற்றும் பல...

எத்திரியத்தின் இத்தகைய சக்திவாய்ந்த அம்சம் ஒரு வலுவான தரநிலையால் கையாளப்பட வேண்டும், இல்லையா? அங்குதான் ERC-20 தனது பங்கை வகிக்கிறது! இந்தத் தரநிலை, பிற தயாரிப்புகள் மற்றும் சேவைகளுடன் இயங்குதன்மையுள்ள வில்லை பயன்பாடுகளை உருவாக்க உருவாக்குநர்களை அனுமதிக்கிறது. கூடுதல் செயல்பாட்டை வழங்கவும் ERC-20 தரநிலை பயன்படுத்தப்படுகிறது.

ERC-20 என்றால் என்ன?

ERC-20 பரிமாற்றத்தக்க வில்லைகளுக்கான (Fungible Tokens) ஒரு தரநிலையை அறிமுகப்படுத்துகிறது, வேறுவிதமாகக் கூறினால், ஒவ்வொரு வில்லையும் மற்றொரு வில்லைக்கு (வகை மற்றும் மதிப்பில்) சரியாக ஒரே மாதிரியாக இருக்கும் பண்பைக் கொண்டுள்ளன. எடுத்துக்காட்டாக, ஒரு ERC-20 வில்லை ETH போலவே செயல்படுகிறது, அதாவது 1 வில்லை எப்போதும் மற்ற அனைத்து வில்லைகளுக்கும் சமமாக இருக்கும்.

முன்நிபந்தனைகள்

உள்ளடக்கம்

நவம்பர் 2015 இல் ஃபேபியன் வோகல்ஸ்டெல்லரால் (Fabian Vogelsteller) முன்மொழியப்பட்ட ERC-20 (Ethereum Request for Comments 20) என்பது திறன் ஒப்பந்தங்களுக்குள் வில்லைகளுக்கான API-ஐச் செயல்படுத்தும் ஒரு வில்லை தரநிலையாகும்.

ERC-20 வழங்கும் எடுத்துக்காட்டு செயல்பாடுகள்:

  • ஒரு கணக்கிலிருந்து மற்றொரு கணக்கிற்கு வில்லைகளைப் பரிமாற்றம் செய்தல்
  • ஒரு கணக்கின் தற்போதைய வில்லை இருப்பைப் பெறுதல்
  • பிணையத்தில் கிடைக்கும் வில்லையின் மொத்த விநியோகத்தைப் பெறுதல்
  • ஒரு கணக்கிலிருந்து குறிப்பிட்ட அளவு வில்லையை மூன்றாம் தரப்பு கணக்கு செலவிடலாமா என்பதற்கு ஒப்புதல் அளித்தல்

ஒரு திறன் ஒப்பந்தம் பின்வரும் முறைகள் மற்றும் நிகழ்வுகளைச் செயல்படுத்தினால், அதை ERC-20 வில்லை ஒப்பந்தம் என்று அழைக்கலாம், மேலும் அது பயன்படுத்தப்பட்டவுடன், எத்திரியத்தில் உருவாக்கப்பட்ட வில்லைகளைக் கண்காணிக்கும் பொறுப்பை அது ஏற்கும்.

EIP-20 (opens in a new tab) இலிருந்து:

முறைகள்

நிகழ்வுகள்

event Transfer(address indexed _from, address indexed _to, uint256 _value)
event Approval(address indexed _owner, address indexed _spender, uint256 _value)

எடுத்துக்காட்டுகள்

எத்திரியத்தில் உள்ள எந்தவொரு ERC-20 வில்லை ஒப்பந்தத்தையும் நாம் எளிதாக ஆய்வு செய்வதற்கு ஒரு தரநிலை எவ்வளவு முக்கியமானது என்பதைப் பார்ப்போம். எந்தவொரு ERC-20 வில்லைக்கும் ஒரு இடைமுகத்தை உருவாக்க நமக்கு ஒப்பந்தப் பயன்பாட்டு பைனரி இடைமுகம் (Contract Application Binary Interface - ABI) மட்டுமே தேவை. கீழே நீங்கள் காண்பது போல, இதைப் புரிந்துகொள்ள எளிதான எடுத்துக்காட்டாக மாற்ற, எளிமைப்படுத்தப்பட்ட ABI-ஐப் பயன்படுத்துவோம்.

Web3.py எடுத்துக்காட்டு

முதலில், நீங்கள் Web3.py (opens in a new tab) Python நிரலகத்தை நிறுவியுள்ளீர்கள் என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள்:

pip install web3

அறியப்பட்ட சிக்கல்கள்

ERC-20 வில்லை பெறுதல் சிக்கல்

06/20/2024 நிலவரப்படி, இந்தச் சிக்கலால் குறைந்தது $83,656,418 மதிப்பிலான ERC-20 வில்லைகள் இழக்கப்பட்டுள்ளன. கீழே பட்டியலிடப்பட்டுள்ளபடி தரநிலையின் மேல் கூடுதல் கட்டுப்பாடுகளை நீங்கள் செயல்படுத்தாவிட்டால், ஒரு தூய்மையான ERC-20 செயலாக்கம் இந்தச் சிக்கலுக்கு ஆளாக நேரிடும் என்பதை நினைவில் கொள்க.

ERC-20 வில்லைகளைக் கையாள வடிவமைக்கப்படாத ஒரு திறன் ஒப்பந்தத்திற்கு ERC-20 வில்லைகள் அனுப்பப்படும்போது, அந்த வில்லைகள் நிரந்தரமாக இழக்கப்படலாம். பெறும் ஒப்பந்தத்திற்கு உள்வரும் வில்லைகளை அடையாளம் காணவோ அல்லது பதிலளிக்கவோ செயல்பாடு இல்லாததாலும், உள்வரும் வில்லைகளைப் பற்றி பெறும் ஒப்பந்தத்திற்குத் தெரிவிக்க ERC-20 தரநிலையில் எந்த வழிமுறையும் இல்லாததாலும் இது நிகழ்கிறது. இந்தச் சிக்கல் உருவாகும் முக்கிய வழிகள்:

  1. வில்லை பரிமாற்ற வழிமுறை
  • ERC-20 வில்லைகள் transfer அல்லது transferFrom செயல்பாடுகளைப் பயன்படுத்திப் பரிமாற்றம் செய்யப்படுகின்றன
    • பயனர் இந்தச் செயல்பாடுகளைப் பயன்படுத்தி ஒரு ஒப்பந்த முகவரிக்கு வில்லைகளை அனுப்பும்போது, பெறும் ஒப்பந்தம் அவற்றைக் கையாள வடிவமைக்கப்பட்டுள்ளதா என்பதைப் பொருட்படுத்தாமல் வில்லைகள் பரிமாற்றம் செய்யப்படுகின்றன
  1. அறிவிப்பு இல்லாமை
    • பெறும் ஒப்பந்தத்திற்கு வில்லைகள் அனுப்பப்பட்டுள்ளன என்ற அறிவிப்போ அல்லது திரும்ப அழைப்போ (callback) கிடைப்பதில்லை
    • பெறும் ஒப்பந்தத்தில் வில்லைகளைக் கையாளும் வழிமுறை (எ.கா., ஒரு பின்னடைவுச் செயல்பாடு அல்லது வில்லை பெறுதலை நிர்வகிக்க ஒரு பிரத்யேகச் செயல்பாடு) இல்லையென்றால், வில்லைகள் ஒப்பந்தத்தின் முகவரியில் சிக்கிக்கொள்ளும்
  2. உள்ளமைக்கப்பட்ட கையாளுதல் இல்லாமை
    • ERC-20 தரநிலையானது பெறும் ஒப்பந்தங்கள் செயல்படுத்துவதற்கான கட்டாயச் செயல்பாட்டை உள்ளடக்கவில்லை, இதனால் பல ஒப்பந்தங்கள் உள்வரும் வில்லைகளைச் சரியாக நிர்வகிக்க முடியாத நிலை ஏற்படுகிறது

சாத்தியமான தீர்வுகள்

ERC-20 மூலம் இந்தச் சிக்கலை முழுமையாகத் தடுக்க முடியாது என்றாலும், இறுதிப் பயனருக்கு வில்லைகள் இழக்கப்படுவதற்கான சாத்தியக்கூறுகளைக் கணிசமாகக் குறைக்க அனுமதிக்கும் முறைகள் உள்ளன:

  • பயனர் வில்லைகளை வில்லை ஒப்பந்த முகவரிக்கே அனுப்பும்போது (எ.கா., USDT வில்லை ஒப்பந்தத்தின் முகவரியில் USDT டெபாசிட் செய்யப்படுவது) மிகவும் பொதுவான சிக்கல் ஏற்படுகிறது. இத்தகைய பரிமாற்ற முயற்சிகளை மீளமை செய்ய transfer(..) செயல்பாட்டைக் கட்டுப்படுத்தப் பரிந்துரைக்கப்படுகிறது. transfer(..) செயல்பாட்டின் செயலாக்கத்திற்குள் require(_to != address(this)); சரிபார்ப்பைச் சேர்ப்பதைக் கருத்தில் கொள்க.
  • பொதுவாக transfer(..) செயல்பாடு ஒப்பந்தங்களில் வில்லைகளை டெபாசிட் செய்ய வடிவமைக்கப்படவில்லை. அதற்குப் பதிலாக ஒப்பந்தங்களில் ERC-20 வில்லைகளை டெபாசிட் செய்ய approve(..) & transferFrom(..) முறை பயன்படுத்தப்படுகிறது. எந்தவொரு ஒப்பந்தத்திலும் வில்லைகளை டெபாசிட் செய்வதை அனுமதிக்காதபடி பரிமாற்றச் செயல்பாட்டைக் கட்டுப்படுத்த முடியும், இருப்பினும் இது transfer(..) செயல்பாட்டைக் கொண்டு ஒப்பந்தங்களில் வில்லைகளை டெபாசிட் செய்யலாம் என்று கருதும் ஒப்பந்தங்களுடனான (எ.கா., யூனிஸ்வாப் நீர்மைத்தன்மை குளங்கள்) இணக்கத்தன்மையை உடைக்கக்கூடும்.
  • உங்கள் ஒப்பந்தம் எதையும் பெறக்கூடாது என்றாலும், ERC-20 வில்லைகள் உங்கள் ஒப்பந்தத்தில் வந்து சேரலாம் என்று எப்போதும் கருதுங்கள். பெறுநரின் முனையில் தற்செயலான டெபாசிட்டுகளைத் தடுக்கவோ அல்லது நிராகரிக்கவோ எந்த வழியும் இல்லை. தற்செயலாக டெபாசிட் செய்யப்பட்ட ERC-20 வில்லைகளைப் பிரித்தெடுக்க அனுமதிக்கும் ஒரு செயல்பாட்டைச் செயல்படுத்தப் பரிந்துரைக்கப்படுகிறது.
  • மாற்று வில்லை தரநிலைகளைப் பயன்படுத்துவதைக் கருத்தில் கொள்க.

இந்தச் சிக்கலிலிருந்து ERC-223 அல்லது ERC-1363 போன்ற சில மாற்றுத் தரநிலைகள் வெளிவந்துள்ளன.

மேலும் படிக்க

பிற பரிமாற்றத்தக்க வில்லை தரநிலைகள்

பயிற்சிகள்: எத்திரியத்தில் ERC-20 உடன் உருவாக்குதல்