---
title: "வில்லை ஒருங்கிணைப்பு சரிபார்ப்புப் பட்டியல்"
description: "வில்லைகளுடன் தொடர்பு கொள்ளும்போது கருத்தில் கொள்ள வேண்டியவைகளின் சரிபார்ப்புப் பட்டியல்"
author: "Trailofbits"
lang: ta
tags: ["Solidity", "திறன் ஒப்பந்தங்கள்", "பாதுகாப்பு", "வில்லைகள்"]
skill: intermediate
breadcrumb: "வில்லை ஒருங்கிணைப்பு"
published: 2020-08-13
source: Building secure contracts
sourceUrl: https://github.com/crytic/building-secure-contracts/blob/master/development-guidelines/token_integration.md
---

தன்னிச்சையான வில்லைகளுடன் (tokens) தொடர்பு கொள்ளும்போது இந்தச் சரிபார்ப்புப் பட்டியலைப் பின்பற்றவும். ஒவ்வொரு உருப்படியுடனும் தொடர்புடைய அபாயங்களை நீங்கள் புரிந்துகொள்கிறீர்கள் என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள், மேலும் இந்த விதிகளுக்கான ஏதேனும் விதிவிலக்குகளை நியாயப்படுத்துங்கள்.

வசதிக்காக, அனைத்து ஸ்லித்தர் (Slither) [பயன்பாடுகளையும்](https://github.com/crytic/slither#tools) நேரடியாக ஒரு வில்லை முகவரியில் இயக்கலாம், எடுத்துக்காட்டாக:

[ஸ்லித்தர் பயன்பாட்டுப் பயிற்சி](/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/)

```bash
slither-check-erc 0xdac17f958d2ee523a2206206994597c13d831ec7 TetherToken
```

இந்தச் சரிபார்ப்புப் பட்டியலைப் பின்பற்ற, வில்லைக்கான ஸ்லித்தரின் இந்த வெளியீடு உங்களுக்குத் தேவைப்படும்:

```bash
- slither-check-erc [target] [contractName] [optional: --erc ERC_NUMBER]
- slither [target] --print human-summary
- slither [target] --print contract-summary
- slither-prop . --contract ContractName # கட்டமைப்பு, மற்றும் எக்கிட்னா மற்றும் மேண்டிகோர் ஆகியவற்றின் பயன்பாடு தேவை
```

## பொதுவான பரிசீலனைகள் {#general-considerations}

- **ஒப்பந்தம் ஒரு பாதுகாப்பு மதிப்பாய்வைக் கொண்டுள்ளது.** பாதுகாப்பு மதிப்பாய்வு இல்லாத ஒப்பந்தங்களுடன் தொடர்பு கொள்வதைத் தவிர்க்கவும். மதிப்பீட்டின் கால அளவு ("முயற்சியின் நிலை" என்றும் அழைக்கப்படுகிறது), பாதுகாப்பு நிறுவனத்தின் நற்பெயர் மற்றும் கண்டறியப்பட்ட சிக்கல்களின் எண்ணிக்கை மற்றும் தீவிரத்தன்மை ஆகியவற்றைச் சரிபார்க்கவும்.
- **நீங்கள் உருவாக்குநர்களைத் தொடர்புகொண்டுள்ளீர்கள்.** ஒரு சம்பவம் குறித்து அவர்களின் குழுவை நீங்கள் எச்சரிக்க வேண்டியிருக்கலாம். [தொகுதிச்சங்கிலி-பாதுகாப்பு-தொடர்புகளில் (blockchain-security-contacts)](https://github.com/crytic/blockchain-security-contacts) பொருத்தமான தொடர்புகளைத் தேடுங்கள்.
- **முக்கியமான அறிவிப்புகளுக்கான பாதுகாப்பு அஞ்சல் பட்டியலை அவர்கள் கொண்டுள்ளனர்.** முக்கியமான சிக்கல்கள் கண்டறியப்படும்போது அல்லது மேம்படுத்தல்கள் நிகழும்போது அவர்களின் குழு பயனர்களுக்கு (உங்களைப் போன்றவர்களுக்கு!) அறிவுறுத்த வேண்டும்.

## ERC இணக்கம் {#erc-conformity}

ஸ்லித்தர், பல தொடர்புடைய ERC தரநிலைகளுடன் ஒரு வில்லை இணங்குவதை மதிப்பாய்வு செய்யும் [slither-check-erc](https://github.com/crytic/slither/wiki/ERC-Conformance) என்ற பயன்பாட்டைக் கொண்டுள்ளது. பின்வருவனவற்றை மதிப்பாய்வு செய்ய slither-check-erc ஐப் பயன்படுத்தவும்:

- **பரிமாற்றம் (transfer) மற்றும் transferFrom ஆகியவை பூலியனை (boolean) வழங்குகின்றன.** பல வில்லைகள் இந்தச் செயல்பாடுகளில் பூலியனை வழங்குவதில்லை. இதன் விளைவாக, ஒப்பந்தத்தில் அவற்றின் அழைப்புகள் தோல்வியடையக்கூடும்.
- **பயன்படுத்தப்பட்டால், name, decimals மற்றும் symbol செயல்பாடுகள் உள்ளன.** இந்தச் செயல்பாடுகள் ERC-20 தரநிலையில் விருப்பத்திற்குரியவை, எனவே அவை இல்லாமல் இருக்கலாம்.
- **Decimals ஒரு uint8 ஐ வழங்குகிறது.** பல வில்லைகள் தவறாக ஒரு uint256 ஐ வழங்குகின்றன. இதுபோன்று இருந்தால், வழங்கப்படும் மதிப்பு 255-க்குக் குறைவாக இருப்பதை உறுதிசெய்யவும்.
- **இந்த வில்லை அறியப்பட்ட [ERC-20 பந்தய நிலையை (race condition)](https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729) தணிக்கிறது.** தாக்குபவர்கள் வில்லைகளைத் திருடுவதைத் தடுக்க, ERC-20 தரநிலையில் உள்ள அறியப்பட்ட ERC-20 பந்தய நிலை தணிக்கப்பட வேண்டும்.
- **இந்த வில்லை ஒரு ERC-777 வில்லை அல்ல, மேலும் transfer மற்றும் transferFrom ஆகியவற்றில் வெளிப்புறச் செயல்பாட்டு அழைப்பு எதுவும் இல்லை.** பரிமாற்றச் செயல்பாடுகளில் உள்ள வெளிப்புற அழைப்புகள் மறுநுழைவுகளுக்கு (reentrancies) வழிவகுக்கும்.

ஸ்லித்தர், பல பொதுவான ERC குறைபாடுகளைக் கண்டறியக்கூடிய அலகு சோதனைகள் (unit tests) மற்றும் பாதுகாப்புப் பண்புகளை உருவாக்கும் [slither-prop](https://github.com/crytic/slither/wiki/Property-generation) என்ற பயன்பாட்டைக் கொண்டுள்ளது. பின்வருவனவற்றை மதிப்பாய்வு செய்ய slither-prop ஐப் பயன்படுத்தவும்:

- **ஒப்பந்தம் slither-prop இலிருந்து அனைத்து அலகு சோதனைகள் மற்றும் பாதுகாப்புப் பண்புகளிலும் தேர்ச்சி பெறுகிறது.** உருவாக்கப்பட்ட அலகு சோதனைகளை இயக்கவும், பின்னர் [எக்கிட்னா (Echidna)](https://github.com/crytic/echidna) மற்றும் [மேண்டிகோர் (Manticore)](https://manticore.readthedocs.io/en/latest/verifier.html) மூலம் பண்புகளைச் சரிபார்க்கவும்.

இறுதியாக, தானாகவே கண்டறியக் கடினமான சில பண்புகள் உள்ளன. இந்த நிபந்தனைகளை நீங்களே கைமுறையாக மதிப்பாய்வு செய்யவும்:

- **பரிமாற்றம் (transfer) மற்றும் transferFrom ஆகியவை கட்டணம் வசூலிக்கக் கூடாது.** பணவாட்ட வில்லைகள் (Deflationary tokens) எதிர்பாராத நடத்தைக்கு வழிவகுக்கும்.
- **வில்லையிலிருந்து ஈட்டப்படும் சாத்தியமான வட்டி கணக்கில் எடுத்துக்கொள்ளப்படுகிறது.** சில வில்லைகள் வில்லை வைத்திருப்பவர்களுக்கு வட்டியை விநியோகிக்கின்றன. இது கணக்கில் எடுத்துக்கொள்ளப்படாவிட்டால், இந்த வட்டி ஒப்பந்தத்தில் சிக்கிக்கொள்ளக்கூடும்.

## ஒப்பந்தக் கட்டமைப்பு {#contract-composition}

- **ஒப்பந்தம் தேவையற்ற சிக்கலைத் தவிர்க்கிறது.** வில்லை ஒரு எளிய ஒப்பந்தமாக இருக்க வேண்டும்; சிக்கலான குறியீட்டைக் கொண்ட வில்லைக்கு உயர் தரத்திலான மதிப்பாய்வு தேவை. சிக்கலான குறியீட்டைக் கண்டறிய ஸ்லித்தரின் [human-summary printer](https://github.com/crytic/slither/wiki/Printer-documentation#human-summary) ஐப் பயன்படுத்தவும்.
- **ஒப்பந்தம் SafeMath ஐப் பயன்படுத்துகிறது.** SafeMath ஐப் பயன்படுத்தாத ஒப்பந்தங்களுக்கு உயர் தரத்திலான மதிப்பாய்வு தேவை. SafeMath பயன்பாட்டிற்காக ஒப்பந்தத்தைக் கைமுறையாக ஆய்வு செய்யவும்.
- **ஒப்பந்தத்தில் வில்லை தொடர்பில்லாத சில செயல்பாடுகள் மட்டுமே உள்ளன.** வில்லை தொடர்பில்லாத செயல்பாடுகள் ஒப்பந்தத்தில் சிக்கல் ஏற்படுவதற்கான வாய்ப்பை அதிகரிக்கின்றன. ஒப்பந்தத்தில் பயன்படுத்தப்படும் குறியீட்டைப் பரவலாக மதிப்பாய்வு செய்ய ஸ்லித்தரின் [contract-summary printer](https://github.com/crytic/slither/wiki/Printer-documentation#contract-summary) ஐப் பயன்படுத்தவும்.
- **வில்லைக்கு ஒரே ஒரு முகவரி மட்டுமே உள்ளது.** இருப்புப் புதுப்பிப்புகளுக்குப் பல நுழைவுப் புள்ளிகளைக் கொண்ட வில்லைகள், முகவரியின் அடிப்படையிலான உள் கணக்குப்பதிவியலை உடைக்கக்கூடும் (எ.கா., `balances[token_address][msg.sender]` உண்மையான இருப்பைப் பிரதிபலிக்காமல் போகலாம்).

## உரிமையாளர் சலுகைகள் {#owner-privileges}

- **வில்லை மேம்படுத்தக்கூடியது அல்ல.** மேம்படுத்தக்கூடிய ஒப்பந்தங்கள் காலப்போக்கில் அவற்றின் விதிகளை மாற்றக்கூடும். ஒப்பந்தம் மேம்படுத்தக்கூடியதா என்பதைத் தீர்மானிக்க ஸ்லித்தரின் [human-summary printer](https://github.com/crytic/slither/wiki/Printer-documentation#contract-summary) ஐப் பயன்படுத்தவும்.
- **உரிமையாளர் வரையறுக்கப்பட்ட அச்சிடுதல் (minting) திறன்களைக் கொண்டுள்ளார்.** தீங்கிழைக்கும் அல்லது சமரசம் செய்யப்பட்ட உரிமையாளர்கள் அச்சிடுதல் திறன்களைத் தவறாகப் பயன்படுத்தலாம். அச்சிடுதல் திறன்களை மதிப்பாய்வு செய்ய ஸ்லித்தரின் [human-summary printer](https://github.com/crytic/slither/wiki/Printer-documentation#contract-summary) ஐப் பயன்படுத்தவும், மேலும் குறியீட்டைக் கைமுறையாக மதிப்பாய்வு செய்வதைக் கருத்தில் கொள்ளவும்.
- **வில்லை இடைநிறுத்தக்கூடியது அல்ல.** தீங்கிழைக்கும் அல்லது சமரசம் செய்யப்பட்ட உரிமையாளர்கள் இடைநிறுத்தக்கூடிய வில்லைகளை நம்பியிருக்கும் ஒப்பந்தங்களைச் சிக்கவைக்கலாம். இடைநிறுத்தக்கூடிய குறியீட்டைக் கைமுறையாகக் கண்டறியவும்.
- **உரிமையாளரால் ஒப்பந்தத்தைக் கருப்புப் பட்டியலில் சேர்க்க முடியாது.** தீங்கிழைக்கும் அல்லது சமரசம் செய்யப்பட்ட உரிமையாளர்கள் கருப்புப் பட்டியலைக் கொண்ட வில்லைகளை நம்பியிருக்கும் ஒப்பந்தங்களைச் சிக்கவைக்கலாம். கருப்புப் பட்டியலில் சேர்க்கும் அம்சங்களைக் கைமுறையாகக் கண்டறியவும்.
- **வில்லையின் பின்னணியில் உள்ள குழு அறியப்பட்டவர்கள் மற்றும் முறைகேடுகளுக்குப் பொறுப்பேற்கக்கூடியவர்கள்.** அநாமதேய மேம்பாட்டுக் குழுக்களைக் கொண்ட அல்லது சட்டப்பூர்வப் புகலிடங்களில் வசிக்கும் ஒப்பந்தங்களுக்கு உயர் தரத்திலான மதிப்பாய்வு தேவை.

## வில்லைப் பற்றாக்குறை {#token-scarcity}

வில்லைப் பற்றாக்குறைச் சிக்கல்களுக்கான மதிப்பாய்வுகளுக்குக் கைமுறை மதிப்பாய்வு தேவை. இந்த நிபந்தனைகளைச் சரிபார்க்கவும்:

- **எந்தவொரு பயனரும் பெரும்பாலான விநியோகத்தை வைத்திருக்கவில்லை.** சில பயனர்கள் பெரும்பாலான வில்லைகளை வைத்திருந்தால், அவர்கள் வில்லையின் பகிர்வின் அடிப்படையில் செயல்பாடுகளில் செல்வாக்குச் செலுத்த முடியும்.
- **மொத்த விநியோகம் போதுமானது.** குறைந்த மொத்த விநியோகத்தைக் கொண்ட வில்லைகளை எளிதாகக் கையாள முடியும்.
- **வில்லைகள் சில பரிமாற்றகங்களுக்கு (exchanges) மேல் அமைந்துள்ளன.** அனைத்து வில்லைகளும் ஒரே பரிமாற்றகத்தில் இருந்தால், பரிமாற்றகத்தின் சமரசம் வில்லையை நம்பியிருக்கும் ஒப்பந்தத்தையும் சமரசம் செய்யலாம்.
- **பெரிய நிதிகள் அல்லது ஃபிளாஷ் கடன்களுடன் (flash loans) தொடர்புடைய அபாயங்களைப் பயனர்கள் புரிந்துகொள்கிறார்கள்.** வில்லை இருப்பை நம்பியிருக்கும் ஒப்பந்தங்கள், பெரிய நிதிகளைக் கொண்ட தாக்குபவர்கள் அல்லது ஃபிளாஷ் கடன்கள் மூலமான தாக்குதல்களைக் கவனமாகக் கருத்தில் கொள்ள வேண்டும்.
- **வில்லை ஃபிளாஷ் அச்சிடுதலை (flash minting) அனுமதிக்காது**. ஃபிளாஷ் அச்சிடுதல் இருப்பு மற்றும் மொத்த விநியோகத்தில் கணிசமான ஏற்ற இறக்கங்களுக்கு வழிவகுக்கும், இதற்கு வில்லையின் செயல்பாட்டில் கடுமையான மற்றும் விரிவான அளவுமீறல் (overflow) சரிபார்ப்புகள் தேவைப்படுகின்றன.