ஸ்மார்ட் ஒப்பந்தங்களை மேம்படுத்துதல்
பக்கத்தின் கடைசி புதுப்பிப்பு: 21 அக்டோபர், 2025
எத்தேரியத்தில் உள்ள ஸ்மார்ட் ஒப்பந்தங்கள் எத்தேரியம் மெய்நிகர் இயந்திரத்தில் (EVM) இயங்கும் சுய-செயல்படுத்தும் நிரல்களாகும். இந்த நிரல்கள் வடிவமைப்பால் மாற்ற முடியாதவை, இது ஒப்பந்தம் பயன்படுத்தப்பட்டவுடன் வணிக தர்க்கத்தில் எந்தப் புதுப்பிப்புகளையும் தடுக்கிறது.
நம்பகத்தன்மை, பரவலாக்கம் மற்றும் ஸ்மார்ட் ஒப்பந்தங்களின் பாதுகாப்பிற்கு மாற்றமுடியாத தன்மை அவசியமாக இருந்தாலும், சில சந்தர்ப்பங்களில் இது ஒரு குறைபாடாக இருக்கலாம். உதாரணமாக, மாற்ற முடியாத குறியீடு, பாதிக்கப்படக்கூடிய ஒப்பந்தங்களை டெவலப்பர்கள் சரிசெய்வதை சாத்தியமற்றதாக்கும்.
இருப்பினும், ஸ்மார்ட் ஒப்பந்தங்களை மேம்படுத்துவதில் அதிகரித்த ஆராய்ச்சி பல மேம்படுத்தல் வடிவங்களை அறிமுகப்படுத்த வழிவகுத்தது. இந்த மேம்படுத்தல் முறைகள், டெவலப்பர்கள் வணிக தர்க்கத்தை வெவ்வேறு ஒப்பந்தங்களில் வைப்பதன் மூலம் ஸ்மார்ட் ஒப்பந்தங்களை (மாற்றமுடியாத தன்மையைப் பாதுகாக்கும் போது) மேம்படுத்த உதவுகின்றன.
முன்னேற்றக் கட்டுரை
ஸ்மார்ட் ஒப்பந்தங்கள், ஸ்மார்ட் ஒப்பந்த உடற்கூறியல் மற்றும் எத்தேரியம் மெய்நிகர் இயந்திரம் (EVM) பற்றி உங்களுக்கு நல்ல புரிதல் இருக்க வேண்டும். இந்த வழிகாட்டி, வாசகர்களுக்கு ஸ்மார்ட் ஒப்பந்தங்களை நிரலாக்குவதில் பிடிப்பு உள்ளது என்று கருதுகிறது.
ஸ்மார்ட் ஒப்பந்த மேம்படுத்தல் என்றால் என்ன?
ஒரு ஸ்மார்ட் ஒப்பந்த மேம்படுத்தல் என்பது ஒப்பந்தத்தின் நிலையைப் பாதுகாக்கும் போது ஒரு ஸ்மார்ட் ஒப்பந்தத்தின் வணிக தர்க்கத்தை மாற்றுவதை உள்ளடக்குகிறது. மேம்படுத்தக்கூடிய தன்மை மற்றும் மாற்றக்கூடிய தன்மை இரண்டும் ஒன்றல்ல என்பதைத் தெளிவுபடுத்துவது முக்கியம், குறிப்பாக ஸ்மார்ட் ஒப்பந்தங்களின் சூழலில்.
எத்தேரியம் நெட்வொர்க்கில் ஒரு முகவரிக்கு பயன்படுத்தப்பட்ட ஒரு நிரலை உங்களால் இன்னும் மாற்ற முடியாது. ஆனால் பயனர்கள் ஒரு ஸ்மார்ட் ஒப்பந்தத்துடன் தொடர்பு கொள்ளும்போது செயல்படுத்தப்படும் குறியீட்டை நீங்கள் மாற்றலாம்.
பின்வரும் முறைகள் மூலம் இதைச் செய்யலாம்:
-
ஒரு ஸ்மார்ட் ஒப்பந்தத்தின் பல பதிப்புகளை உருவாக்குதல் மற்றும் பழைய ஒப்பந்தத்திலிருந்து ஒப்பந்தத்தின் புதிய நிகழ்விற்கு நிலையை (அதாவது, தரவு) மாற்றுதல்.
-
வணிக தர்க்கம் மற்றும் நிலையைச் சேமிக்க தனித்தனி ஒப்பந்தங்களை உருவாக்குதல்.
-
மாற்ற முடியாத ப்ராக்ஸி ஒப்பந்தத்திலிருந்து மாற்றியமைக்கக்கூடிய தர்க்க ஒப்பந்தத்திற்கு செயல்பாட்டு அழைப்புகளை ஒப்படைக்க ப்ராக்ஸி வடிவங்களைப் பயன்படுத்துதல்.
-
குறிப்பிட்ட செயல்பாடுகளைச் செயல்படுத்த, நெகிழ்வான துணை ஒப்பந்தங்களுடன் இடைமுகம் செய்து அவற்றைச் சார்ந்திருக்கும் ஒரு மாற்ற முடியாத முக்கிய ஒப்பந்தத்தை உருவாக்குதல்.
-
ஒரு ப்ராக்ஸி ஒப்பந்தத்திலிருந்து தர்க்க ஒப்பந்தங்களுக்குச் செயல்பாட்டு அழைப்புகளை ஒப்படைக்க டைமண்ட் வடிவத்தைப் பயன்படுத்துதல்.
மேம்படுத்தல் வழிமுறை #1: ஒப்பந்தப் பெயர்ச்சி
ஒப்பந்தப் பெயர்ச்சி என்பது பதிப்பாக்கத்தை அடிப்படையாகக் கொண்டது - ஒரே மென்பொருளின் தனித்துவமான நிலைகளை உருவாக்கி நிர்வகிக்கும் யோசனை. ஒப்பந்த பெயர்ச்சி என்பது ஏற்கனவே உள்ள ஸ்மார்ட் ஒப்பந்தத்தின் புதிய நிகழ்வைப் பயன்படுத்துதல் மற்றும் சேமிப்பகம் மற்றும் இருப்புகளைப் புதிய ஒப்பந்தத்திற்கு மாற்றுவதை உள்ளடக்குகிறது.
புதிதாகப் பயன்படுத்தப்பட்ட ஒப்பந்தத்தில் ஒரு வெற்று சேமிப்பகம் இருக்கும், இது பழைய ஒப்பந்தத்திலிருந்து தரவை மீட்டெடுக்கவும், புதிய செயலாக்கத்தில் அதை எழுதவும் உங்களை அனுமதிக்கிறது. அதன்பிறகு, புதிய முகவரியைப் பிரதிபலிக்கும் வகையில் பழைய ஒப்பந்தத்துடன் தொடர்பு கொண்ட அனைத்து ஒப்பந்தங்களையும் நீங்கள் புதுப்பிக்க வேண்டும்.
ஒப்பந்தப் பெயர்ச்சியின் கடைசிப் படி, புதிய ஒப்பந்தத்தைப் பயன்படுத்த பயனர்களை மாற்றுவதாகும். புதிய ஒப்பந்தப் பதிப்பு பயனர் இருப்புகள் மற்றும் முகவரிகளைத் தக்க வைத்துக் கொள்ளும், இது மாற்ற முடியாத தன்மையைப் பாதுகாக்கிறது. இது டோக்கன் அடிப்படையிலான ஒப்பந்தமாக இருந்தால், பழைய ஒப்பந்தத்தை நிராகரித்து புதிய ஒப்பந்தத்தைப் பயன்படுத்த, பரிமாற்றங்களைத் தொடர்பு கொள்ளவும் வேண்டும்.
ஒப்பந்தப் பெயர்ச்சி என்பது பயனர் தொடர்புகளை முறித்துக் கொள்ளாமல் ஸ்மார்ட் ஒப்பந்தங்களை மேம்படுத்துவதற்கான ஒப்பீட்டளவில் நேரடியான மற்றும் பாதுகாப்பான நடவடிக்கையாகும். இருப்பினும், பயனர் சேமிப்பகம் மற்றும் இருப்புகளைப் புதிய ஒப்பந்தத்திற்கு கைமுறையாக மாற்றுவது நேரத்தைச் செலவழிக்கும் மற்றும் அதிக எரிவாயு செலவுகளை ஏற்படுத்தலாம்.
ஒப்பந்தப் பெயர்ச்சி பற்றி மேலும் அறிக. (opens in a new tab)
மேம்படுத்தல் வழிமுறை #2: தரவுப் பிரிப்பு
ஸ்மார்ட் ஒப்பந்தங்களை மேம்படுத்துவதற்கான மற்றொரு முறை, வணிக தர்க்கம் மற்றும் தரவு சேமிப்பகத்தை தனித்தனி ஒப்பந்தங்களாகப் பிரிப்பதாகும். இதன் பொருள் பயனர்கள் தர்க்க ஒப்பந்தத்துடன் தொடர்பு கொள்கிறார்கள், அதே நேரத்தில் தரவு சேமிப்பக ஒப்பந்தத்தில் சேமிக்கப்படுகிறது.
பயனர்கள் செயலியுடன் தொடர்பு கொள்ளும்போது செயல்படுத்தப்படும் குறியீட்டை தர்க்க ஒப்பந்தம் கொண்டுள்ளது. இது சேமிப்பக ஒப்பந்தத்தின் முகவரியையும் வைத்திருக்கிறது மற்றும் தரவைப் பெறவும் அமைக்கவும் அதனுடன் தொடர்பு கொள்கிறது.
இதற்கிடையில், சேமிப்பக ஒப்பந்தம் பயனர் இருப்புகள் மற்றும் முகவரிகள் போன்ற ஸ்மார்ட் ஒப்பந்தத்துடன் தொடர்புடைய நிலையை வைத்திருக்கிறது. சேமிப்பக ஒப்பந்தம் தர்க்க ஒப்பந்தத்திற்குச் சொந்தமானது மற்றும் வரிசைப்படுத்தலில் பின்னதன் முகவரியுடன் கட்டமைக்கப்பட்டுள்ளது என்பதைக் கவனத்தில் கொள்க. இது அங்கீகரிக்கப்படாத ஒப்பந்தங்கள் சேமிப்பக ஒப்பந்தத்தை அழைப்பதையோ அல்லது அதன் தரவைப் புதுப்பிப்பதையோ தடுக்கிறது.
இயல்பாக, சேமிப்பக ஒப்பந்தம் மாற்ற முடியாதது - ஆனால் அது சுட்டிக்காட்டும் தர்க்க ஒப்பந்தத்தை ஒரு புதிய செயலாக்கத்துடன் மாற்றலாம். இது EVM-இல் இயங்கும் குறியீட்டை மாற்றும், அதே நேரத்தில் சேமிப்பகம் மற்றும் இருப்புகளை அப்படியே வைத்திருக்கும்.
இந்த மேம்படுத்தல் முறையைப் பயன்படுத்த, சேமிப்பக ஒப்பந்தத்தில் உள்ள தர்க்க ஒப்பந்தத்தின் முகவரியைப் புதுப்பிக்க வேண்டும். முன்னர் விளக்கப்பட்ட காரணங்களுக்காக, புதிய தர்க்க ஒப்பந்தத்தை சேமிப்பக ஒப்பந்தத்தின் முகவரியுடன் நீங்கள் கட்டமைக்க வேண்டும்.
ஒப்பந்தப் பெயர்ச்சியுடன் ஒப்பிடும்போது தரவுப் பிரிப்பு வடிவத்தைச் செயல்படுத்துவது விவாதத்திற்குரிய வகையில் எளிதானது. இருப்பினும், நீங்கள் பல ஒப்பந்தங்களை நிர்வகிக்க வேண்டும் மற்றும் தீங்கிழைக்கும் மேம்படுத்தல்களில் இருந்து ஸ்மார்ட் ஒப்பந்தங்களைப் பாதுகாக்க சிக்கலான அங்கீகாரத் திட்டங்களைச் செயல்படுத்த வேண்டும்.
மேம்படுத்தல் வழிமுறை #3: ப்ராக்ஸி வடிவங்கள்
ப்ராக்ஸி வடிவமும் வணிக தர்க்கத்தையும் தரவையும் தனித்தனி ஒப்பந்தங்களில் வைத்திருக்க தரவுப் பிரிப்பைப் பயன்படுத்துகிறது. இருப்பினும், ஒரு ப்ராக்ஸி வடிவத்தில், சேமிப்பக ஒப்பந்தம் (ப்ராக்ஸி என்று அழைக்கப்படுகிறது) குறியீடு செயல்படுத்தும் போது தர்க்க ஒப்பந்தத்தை அழைக்கிறது. இது தரவு பிரிப்பு முறையின் தலைகீழ் ஆகும், அங்கு தர்க்க ஒப்பந்தம் சேமிப்பக ஒப்பந்தத்தை அழைக்கிறது.
ஒரு ப்ராக்ஸி வடிவத்தில் இதுதான் நடக்கிறது:
-
பயனர்கள் ப்ராக்ஸி ஒப்பந்தத்துடன் தொடர்பு கொள்கிறார்கள், இது தரவைச் சேமிக்கிறது, ஆனால் வணிக தர்க்கத்தைக் கொண்டிருக்கவில்லை.
-
delegatecallசெயல்பாட்டைப் பயன்படுத்தி தர்க்க ஒப்பந்தத்தின் முகவரியை ப்ராக்ஸி ஒப்பந்தம் சேமித்து, அனைத்து செயல்பாட்டு அழைப்புகளையும் தர்க்க ஒப்பந்தத்திற்கு (வணிக தர்க்கத்தைக் கொண்டிருக்கும்) ஒப்படைக்கிறது. -
அழைப்பு தர்க்க ஒப்பந்தத்திற்கு அனுப்பப்பட்ட பிறகு, தர்க்க ஒப்பந்தத்திலிருந்து திரும்பிய தரவு மீட்டெடுக்கப்பட்டு பயனருக்குத் திருப்பி அனுப்பப்படுகிறது.
ப்ராக்ஸி வடிவங்களைப் பயன்படுத்த delegatecall செயல்பாட்டின் புரிதல் தேவை. அடிப்படையில், delegatecall என்பது ஒரு ஒப்பந்தம் மற்றொரு ஒப்பந்தத்தை அழைக்க அனுமதிக்கும் ஒரு ஆப்கோட் ஆகும், அதே நேரத்தில் உண்மையான குறியீடு செயல்படுத்தல் அழைக்கும் ஒப்பந்தத்தின் சூழலில் நிகழ்கிறது. ப்ராக்ஸி வடிவங்களில் delegatecall ஐப் பயன்படுத்துவதன் ஒரு தாக்கம் என்னவென்றால், ப்ராக்ஸி ஒப்பந்தம் அதன் சேமிப்பகத்தில் படித்து எழுதுகிறது மற்றும் தர்க்க ஒப்பந்தத்தில் சேமிக்கப்பட்ட தர்க்கத்தை ஒரு உள் செயல்பாட்டை அழைப்பதைப் போல செயல்படுத்துகிறது.
Solidity ஆவணத்திலிருந்து (opens in a new tab):
delegatecall எனப்படும் ஒரு செய்தி அழைப்பின் ஒரு சிறப்பு மாறுபாடு உள்ளது, இது இலக்கு முகவரியில் உள்ள குறியீடு அழைக்கும் ஒப்பந்தத்தின் சூழலில் (அதாவது, முகவரியில்) செயல்படுத்தப்படுகிறது மற்றும்
msg.senderமற்றும்msg.valueஅவற்றின் மதிப்புகளை மாற்றாது என்பதைத் தவிர, இது ஒரு செய்தி அழைப்பைப் போன்றது. இதன் பொருள் ஒரு ஒப்பந்தம் இயக்க நேரத்தில் வேறு முகவரியிலிருந்து குறியீட்டை மாறும் வகையில் ஏற்ற முடியும். சேமிப்பகம், தற்போதைய முகவரி மற்றும் இருப்பு ஆகியவை இன்னும் அழைக்கும் ஒப்பந்தத்தையே குறிப்பிடுகின்றன, குறியீடு மட்டுமே அழைக்கப்பட்ட முகவரியிலிருந்து எடுக்கப்படுகிறது.
ப்ராக்ஸி ஒப்பந்தத்தில் ஒரு fallback செயல்பாடு உள்ளதால், ஒரு பயனர் ஒரு செயல்பாட்டை அழைக்கும்போதெல்லாம் delegatecall ஐ அழைக்க வேண்டும் என்பதை அது அறியும். Solidity நிரலாக்கத்தில், ஒரு செயல்பாட்டு அழைப்பு ஒரு ஒப்பந்தத்தில் குறிப்பிடப்பட்ட செயல்பாடுகளுடன் பொருந்தாதபோது fallback செயல்பாடு (opens in a new tab) செயல்படுத்தப்படுகிறது.
ப்ராக்ஸி வடிவத்தை வேலை செய்ய வைக்க, ப்ராக்ஸி ஒப்பந்தம் ஆதரிக்காத செயல்பாட்டு அழைப்புகளை எவ்வாறு கையாள வேண்டும் என்பதைக் குறிப்பிடும் ஒரு தனிப்பயன் fallback செயல்பாட்டை எழுத வேண்டும். இந்த வழக்கில், ப்ராக்ஸியின் fallback செயல்பாடு ஒரு delegatecall-ஐத் தொடங்கவும், பயனரின் கோரிக்கையை தற்போதைய தர்க்க ஒப்பந்தச் செயலாக்கத்திற்குத் திருப்பிவிடவும் நிரல்படுத்தப்பட்டுள்ளது.
ப்ராக்ஸி ஒப்பந்தம் இயல்பாக மாற்ற முடியாதது, ஆனால் புதுப்பிக்கப்பட்ட வணிக தர்க்கத்துடன் புதிய தர்க்க ஒப்பந்தங்களை உருவாக்கலாம். மேம்படுத்தலைச் செய்வது என்பது ப்ராக்ஸி ஒப்பந்தத்தில் குறிப்பிடப்பட்டுள்ள தர்க்க ஒப்பந்தத்தின் முகவரியை மாற்றுவதாகும்.
ப்ராக்ஸி ஒப்பந்தத்தை ஒரு புதிய தர்க்க ஒப்பந்தத்திற்குச் சுட்டிக்காட்டுவதன் மூலம், பயனர்கள் ப்ராக்ஸி ஒப்பந்தச் செயல்பாட்டை அழைக்கும்போது செயல்படுத்தப்படும் குறியீடு மாறுகிறது. புதிய ஒப்பந்தத்துடன் தொடர்பு கொள்ளும்படி பயனர்களைக் கேட்காமல் ஒரு ஒப்பந்தத்தின் தர்க்கத்தை மேம்படுத்த இது நம்மை அனுமதிக்கிறது.
ஒப்பந்தப் பெயர்ச்சியுடன் தொடர்புடைய சிரமங்களை நீக்குவதால், ப்ராக்ஸி வடிவங்கள் ஸ்மார்ட் ஒப்பந்தங்களை மேம்படுத்துவதற்கான ஒரு பிரபலமான முறையாகும். இருப்பினும், ப்ராக்ஸி வடிவங்களைப் பயன்படுத்துவது மிகவும் சிக்கலானது மற்றும் தவறாகப் பயன்படுத்தப்பட்டால், செயல்பாட்டுத் தேர்வி மோதல்கள் (opens in a new tab) போன்ற முக்கியமான குறைபாடுகளை அறிமுகப்படுத்தலாம்.
ப்ராக்ஸி வடிவங்கள் பற்றி மேலும் அறிக (opens in a new tab).
மேம்படுத்தல் வழிமுறை #4: உத்தி வடிவம்
இந்த நுட்பம் உத்தி வடிவத்தால் (opens in a new tab) பாதிக்கப்பட்டுள்ளது, இது குறிப்பிட்ட அம்சங்களைச் செயல்படுத்த பிற நிரல்களுடன் இடைமுகம் செய்யும் மென்பொருள் நிரல்களை உருவாக்குவதை ஊக்குவிக்கிறது. எத்தேரியம் மேம்பாட்டிற்கு உத்தி வடிவத்தைப் பயன்படுத்துவது என்பது மற்ற ஒப்பந்தங்களிலிருந்து செயல்பாடுகளை அழைக்கும் ஒரு ஸ்மார்ட் ஒப்பந்தத்தை உருவாக்குவதாகும்.
இந்த வழக்கில் முக்கிய ஒப்பந்தம் முக்கிய வணிக தர்க்கத்தைக் கொண்டுள்ளது, ஆனால் சில செயல்பாடுகளைச் செயல்படுத்த மற்ற ஸ்மார்ட் ஒப்பந்தங்களுடன் ("துணை ஒப்பந்தங்கள்") இடைமுகம் செய்கிறது. இந்த முக்கிய ஒப்பந்தம் ஒவ்வொரு துணை ஒப்பந்தத்திற்கான முகவரியையும் சேமித்து, துணை ஒப்பந்தத்தின் வெவ்வேறு செயலாக்கங்களுக்கு இடையில் மாறலாம்.
நீங்கள் ஒரு புதிய துணை ஒப்பந்தத்தை உருவாக்கி, முக்கிய ஒப்பந்தத்தை புதிய முகவரியுடன் கட்டமைக்கலாம். இது ஒரு ஸ்மார்ட் ஒப்பந்தத்திற்கான உத்திகளை (அதாவது, புதிய தர்க்கத்தைச் செயல்படுத்துதல்) மாற்ற உங்களை அனுமதிக்கிறது.
முன்னர் விவாதிக்கப்பட்ட ப்ராக்ஸி வடிவத்தைப் போலவே இருந்தாலும், உத்தி வடிவம் வேறுபட்டது, ஏனெனில் பயனர்கள் தொடர்பு கொள்ளும் முக்கிய ஒப்பந்தம், வணிக தர்க்கத்தைக் கொண்டுள்ளது. இந்த வடிவத்தைப் பயன்படுத்துவது, முக்கிய உள்கட்டமைப்பைப் பாதிக்காமல் ஒரு ஸ்மார்ட் ஒப்பந்தத்தில் வரையறுக்கப்பட்ட மாற்றங்களை அறிமுகப்படுத்த உங்களுக்கு வாய்ப்பளிக்கிறது.
முக்கிய குறைபாடு என்னவென்றால், இந்த வடிவம் பெரும்பாலும் சிறிய மேம்படுத்தல்களை வெளியிடுவதற்கு மட்டுமே பயனுள்ளதாக இருக்கும். மேலும், முக்கிய ஒப்பந்தம் சமரசம் செய்யப்பட்டால் (எ.கா., ஒரு ஹேக் மூலம்), இந்த மேம்படுத்தல் முறையை நீங்கள் பயன்படுத்த முடியாது.
மேம்படுத்தல் வழிமுறை #5: டைமண்ட் வடிவம்
டைமண்ட் வடிவத்தை ப்ராக்ஸி வடிவத்தின் மேம்பாடாகக் கருதலாம். டைமண்ட் ப்ராக்ஸி ஒப்பந்தம் ஒன்றுக்கு மேற்பட்ட தர்க்க ஒப்பந்தங்களுக்கு செயல்பாட்டு அழைப்புகளை ஒப்படைக்க முடியும் என்பதால், டைமண்ட் வடிவங்கள் ப்ராக்ஸி வடிவங்களிலிருந்து வேறுபடுகின்றன.
டைமண்ட் வடிவத்தில் உள்ள தர்க்க ஒப்பந்தங்கள் ஃபேசெட்கள் என்று அழைக்கப்படுகின்றன. டைமண்ட் வடிவத்தை வேலை செய்ய வைக்க, ப்ராக்ஸி ஒப்பந்தத்தில் செயல்பாட்டுத் தேர்வாளர்களை (opens in a new tab) வெவ்வேறு ஃபேசெட் முகவரிகளுக்கு வரைபடமாக்கும் ஒரு வரைபடத்தை நீங்கள் உருவாக்க வேண்டும்.
ஒரு பயனர் ஒரு செயல்பாட்டு அழைப்பைச் செய்யும்போது, ப்ராக்ஸி ஒப்பந்தம் அந்தச் செயல்பாட்டைச் செயல்படுத்துவதற்குப் பொறுப்பான ஃபேசெட்டைக் கண்டறிய வரைபடத்தைச் சரிபார்க்கிறது. பின்னர் அது delegatecall ஐ (fallback செயல்பாட்டைப் பயன்படுத்தி) வரவழைத்து, அழைப்பை பொருத்தமான தர்க்க ஒப்பந்தத்திற்குத் திருப்பிவிடுகிறது.
பாரம்பரிய ப்ராக்ஸி மேம்படுத்தல் வடிவங்களைக் காட்டிலும் டைமண்ட் மேம்படுத்தல் வடிவத்தில் சில நன்மைகள் உள்ளன:
-
அனைத்துக் குறியீட்டையும் மாற்றாமல் ஒப்பந்தத்தின் ஒரு சிறிய பகுதியை மேம்படுத்த இது உங்களை அனுமதிக்கிறது. மேம்படுத்தல்களுக்கு ப்ராக்ஸி வடிவத்தைப் பயன்படுத்த, சிறிய மேம்படுத்தல்களுக்குக் கூட, முற்றிலும் புதிய தர்க்க ஒப்பந்தத்தை உருவாக்க வேண்டும்.
-
அனைத்து ஸ்மார்ட் ஒப்பந்தங்களும் (ப்ராக்ஸி வடிவங்களில் பயன்படுத்தப்படும் தர்க்க ஒப்பந்தங்கள் உட்பட) 24KB அளவு வரம்பைக் கொண்டுள்ளன, இது ஒரு வரம்பாக இருக்கலாம் - குறிப்பாக அதிக செயல்பாடுகள் தேவைப்படும் சிக்கலான ஒப்பந்தங்களுக்கு. டைமண்ட் வடிவம் பல தர்க்க ஒப்பந்தங்களில் செயல்பாடுகளைப் பிரிப்பதன் மூலம் இந்தச் சிக்கலைத் தீர்ப்பதை எளிதாக்குகிறது.
-
ப்ராக்ஸி வடிவங்கள் அணுகல் கட்டுப்பாடுகளுக்கு அனைத்தையும் உள்ளடக்கிய அணுகுமுறையை ஏற்றுக்கொள்கின்றன. செயல்பாடுகளை மேம்படுத்துவதற்கான அணுகல் உள்ள ஒரு நிறுவனம் முழு ஒப்பந்தத்தையும் மாற்ற முடியும். ஆனால் டைமண்ட் வடிவம் ஒரு மட்டு அனுமதிகள் அணுகுமுறையை செயல்படுத்துகிறது, அங்கு நீங்கள் ஒரு ஸ்மார்ட் ஒப்பந்தத்திற்குள் சில செயல்பாடுகளை மேம்படுத்துவதற்கு நிறுவனங்களைக் கட்டுப்படுத்தலாம்.
டைமண்ட் வடிவம் பற்றி மேலும் அறிக (opens in a new tab).
ஸ்மார்ட் ஒப்பந்தங்களை மேம்படுத்துவதன் நன்மை தீமைகள்
| நிறைகள் | குறைகள் |
|---|---|
| ஒரு ஸ்மார்ட் ஒப்பந்த மேம்படுத்தல், வரிசைப்படுத்தலுக்குப் பிந்தைய கட்டத்தில் கண்டறியப்பட்ட பாதிப்புகளை சரிசெய்வதை எளிதாக்கும். | ஸ்மார்ட் ஒப்பந்தங்களை மேம்படுத்துவது குறியீடு மாற்ற முடியாதது என்ற கருத்தை மறுக்கிறது, இது பரவலாக்கம் மற்றும் பாதுகாப்பிற்கான தாக்கங்களைக் கொண்டுள்ளது. |
| டெவலப்பர்கள் பரவலாக்கப்பட்ட பயன்பாடுகளில் புதிய அம்சங்களைச் சேர்க்க தர்க்க மேம்படுத்தல்களைப் பயன்படுத்தலாம். | பயனர்கள் டெவலப்பர்கள் ஸ்மார்ட் ஒப்பந்தங்களை தன்னிச்சையாக மாற்ற மாட்டார்கள் என்று நம்ப வேண்டும். |
| பிழைகளை விரைவாக சரிசெய்ய முடியும் என்பதால் ஸ்மார்ட் ஒப்பந்த மேம்படுத்தல்கள் இறுதிப் பயனர்களுக்கான பாதுகாப்பை மேம்படுத்தலாம். | ஸ்மார்ட் ஒப்பந்தங்களில் மேம்படுத்தல் செயல்பாட்டை நிரலாக்குவது மற்றொரு அடுக்கு சிக்கலைச் சேர்க்கிறது மற்றும் முக்கியமான குறைபாடுகளின் சாத்தியத்தை அதிகரிக்கிறது. |
| ஒப்பந்த மேம்படுத்தல்கள் டெவலப்பர்களுக்கு வெவ்வேறு அம்சங்களுடன் பரிசோதனை செய்வதற்கும் காலப்போக்கில் டாப்களை மேம்படுத்துவதற்கும் அதிக இடமளிக்கின்றன. | ஸ்மார்ட் ஒப்பந்தங்களை மேம்படுத்துவதற்கான வாய்ப்பு, மேம்பாட்டுக் கட்டத்தில் உரிய விடாமுயற்சியைச் செய்யாமல், திட்டங்களை விரைவாகத் தொடங்க டெவலப்பர்களை ஊக்குவிக்கலாம். |
| பாதுகாப்பற்ற அணுகல் கட்டுப்பாடு அல்லது ஸ்மார்ட் ஒப்பந்தங்களில் மையப்படுத்தல் ஆகியவை தீங்கிழைக்கும் நடிகர்கள் அங்கீகரிக்கப்படாத மேம்படுத்தல்களைச் செய்வதை எளிதாக்கும். |
ஸ்மார்ட் ஒப்பந்தங்களை மேம்படுத்துவதற்கான பரிசீலனைகள்
-
அங்கீகரிக்கப்படாத ஸ்மார்ட் ஒப்பந்த மேம்படுத்தல்களைத் தடுக்க, பாதுகாப்பான அணுகல் கட்டுப்பாடு/அங்கீகார வழிமுறைகளைப் பயன்படுத்தவும், குறிப்பாக ப்ராக்ஸி வடிவங்கள், உத்தி வடிவங்கள் அல்லது தரவுப் பிரிப்பைப் பயன்படுத்தினால். ஒரு உதாரணம் மேம்படுத்தல் செயல்பாட்டிற்கான அணுகலைக் கட்டுப்படுத்துவதாகும், அதாவது ஒப்பந்தத்தின் உரிமையாளர் மட்டுமே அதை அழைக்க முடியும்.
-
ஸ்மார்ட் ஒப்பந்தங்களை மேம்படுத்துவது ஒரு சிக்கலான செயலாகும், மேலும் பாதிப்புகள் அறிமுகப்படுத்தப்படுவதைத் தடுக்க அதிக அளவு விடாமுயற்சி தேவைப்படுகிறது.
-
மேம்படுத்தல்களைச் செயல்படுத்தும் செயல்முறையைப் பரவலாக்குவதன் மூலம் நம்பிக்கை அனுமானங்களைக் குறைக்கவும். சாத்தியமான உத்திகளில் மேம்படுத்தல்களைக் கட்டுப்படுத்த பல்-கையொப்ப பணப்பை ஒப்பந்தத்தைப் பயன்படுத்துவது அல்லது மேம்படுத்தலுக்கு ஒப்புதல் அளிக்க வாக்களிக்க ஒரு DAO இன் உறுப்பினர்களை கோருவது ஆகியவை அடங்கும்.
-
ஒப்பந்தங்களை மேம்படுத்துவதில் உள்ள செலவுகள் குறித்து எச்சரிக்கையாக இருங்கள். உதாரணமாக, ஒப்பந்தப் பெயர்ச்சியின் போது ஒரு பழைய ஒப்பந்தத்திலிருந்து ஒரு புதிய ஒப்பந்தத்திற்கு நிலையை (எ.கா., பயனர் இருப்புகள்) நகலெடுப்பதற்கு ஒன்றுக்கு மேற்பட்ட பரிவர்த்தனைகள் தேவைப்படலாம், அதாவது அதிக எரிவாயு கட்டணம்.
-
பயனர்களைப் பாதுகாக்க நேரப்பூட்டுகளை செயல்படுத்துவதைக் கவனியுங்கள். ஒரு நேரப்பூட்டு என்பது ஒரு அமைப்பில் ஏற்படும் மாற்றங்களுக்கு விதிக்கப்படும் தாமதத்தைக் குறிக்கிறது. மேம்படுத்தல்களைக் கட்டுப்படுத்த நேரப்பூட்டுகளை பல்-கையொப்ப ஆளுமை அமைப்புடன் இணைக்கலாம்: முன்மொழியப்பட்ட செயல் தேவையான ஒப்புதல் வரம்பை அடைந்தால், முன்னரே வரையறுக்கப்பட்ட தாமத காலம் முடியும் வரை அது செயல்படுத்தப்படாது.
முன்மொழியப்பட்ட மாற்றத்துடன் (எ.கா., தர்க்க மேம்படுத்தல் அல்லது புதிய கட்டணத் திட்டங்கள்) உடன்படவில்லை என்றால், அமைப்பிலிருந்து வெளியேற பயனர்களுக்கு நேரப்பூட்டுகள் சிறிது நேரம் கொடுக்கின்றன. நேரப்பூட்டுகள் இல்லாமல், முன்னறிவிப்பின்றி ஒரு ஸ்மார்ட் ஒப்பந்தத்தில் தன்னிச்சையான மாற்றங்களைச் செயல்படுத்த மாட்டார்கள் என்று பயனர்கள் டெவலப்பர்களை நம்ப வேண்டும். இங்குள்ள குறைபாடு என்னவென்றால், நேரப்பூட்டுகள் பாதிப்புகளை விரைவாக சரிசெய்யும் திறனைக் கட்டுப்படுத்துகின்றன.
ஆதாரங்கள்
OpenZeppelin மேம்படுத்தல்கள் செருகுநிரல்கள் - மேம்படுத்தக்கூடிய ஸ்மார்ட் ஒப்பந்தங்களைப் பயன்படுத்துவதற்கும் பாதுகாப்பதற்கும் ஆன கருவிகளின் தொகுப்பு.
பயிற்சிகள்
- உங்கள் ஸ்மார்ட் ஒப்பந்தங்களை மேம்படுத்துதல் | YouTube பயிற்சி (opens in a new tab) by Patrick Collins
- எத்தேரியம் ஸ்மார்ட் ஒப்பந்தப் பெயர்ச்சி பயிற்சி (opens in a new tab) by Austin Griffith
- ஸ்மார்ட் ஒப்பந்தங்களை மேம்படுத்த UUPS ப்ராக்ஸி வடிவத்தைப் பயன்படுத்துதல் (opens in a new tab) by Pranesh A.S
- Web3 பயிற்சி: OpenZeppelin-ஐப் பயன்படுத்தி மேம்படுத்தக்கூடிய ஸ்மார்ட் ஒப்பந்தம் (ப்ராக்ஸி) எழுதுங்கள் (opens in a new tab) by fangjun.eth
மேலும் வாசிக்க
- ஸ்மார்ட் ஒப்பந்த மேம்படுத்தல்களின் நிலை (opens in a new tab) by Santiago Palladino
- ஒரு Solidity ஸ்மார்ட் ஒப்பந்தத்தை மேம்படுத்த பல வழிகள் (opens in a new tab) - Crypto Market Pool வலைப்பதிவு
- அறிக: ஸ்மார்ட் ஒப்பந்தங்களை மேம்படுத்துதல் (opens in a new tab) - OpenZeppelin ஆவணங்கள்
- Solidity ஒப்பந்தங்களின் மேம்படுத்தலுக்கான ப்ராக்ஸி வடிவங்கள்: வெளிப்படையான மற்றும் UUPS ப்ராக்ஸிகள் (opens in a new tab) by Naveen Sahu
- டைமண்ட் மேம்படுத்தல்கள் எவ்வாறு செயல்படுகின்றன (opens in a new tab) by Nick Mudge