HackCert
Advanced 11 min read May 25, 2026

Contract Auditing: ব্লকচেইনের স্মার্ট কন্ট্রাক্টে থাকা নিরাপত্তা দুর্বলতা বিশ্লেষণ!

Smart contract auditing-এর কৌশল, common vulnerability, এবং Solidity contract-এ security flaw detect করার সম্পূর্ণ গাইড।

Imran Hossain Chowdhury
Blockchain Security Researcher
share
Contract Auditing: ব্লকচেইনের স্মার্ট কন্ট্রাক্টে থাকা নিরাপত্তা দুর্বলতা বিশ্লেষণ!
Overview

Blockchain-এর সবচেয়ে বিপ্লবী আবিষ্কার হলো Smart Contract—এমন কোড যা স্বয়ংক্রিয়ভাবে চুক্তি execute করে। কিন্তু এই কোডে একটি ছোট বাগও কোটি কোটি ডলার ক্ষতির কারণ হতে পারে। DAO Hack-এ $৬০ মিলিয়ন, Poly Network-এ $৬১১ মিলিয়ন, Ronin Bridge-এ $৬২৫ মিলিয়ন, Wormhole-এ $৩২৫ মিলিয়ন—গত কয়েক বছরে smart contract exploit-এর মাধ্যমে $১০ বিলিয়নের বেশি ক্ষতি হয়েছে। Smart contract-এর immutability মানে একবার deploy হলে সেটি সংশোধন করা প্রায় অসম্ভব। তাই deployment-এর আগে rigorous Contract Auditing অপরিহার্য। আজকের আলোচনায় আমরা smart contract auditing-এর কৌশল, common vulnerability, এবং industry-standard practice নিয়ে বিস্তারিত আলোচনা করব।

Smart Contract Auditing কী

Smart Contract Auditing হলো একটি systematic প্রক্রিয়া যেখানে blockchain contract-এর source code পরীক্ষা করে security vulnerability, logic bug, gas inefficiency, এবং best practice violation চিহ্নিত করা হয়। Traditional code review থেকে এর কিছু পার্থক্য আছে:

  • Immutability: Code একবার deploy হলে fix করা যায় না (proxy pattern ছাড়া)
  • Public Verifiability: সব কেউ বাইরে থেকে contract code দেখতে পারে
  • Financial Stake: Direct money handle করে—small bug-ও massive loss
  • Adversarial Environment: Attacker সবসময় active
  • No Rollback: Transaction reversible না

Smart contract audit সাধারণত pre-deployment-এ করা হয়, কিন্তু upgradeable contract-এর জন্য post-deployment audit-ও দরকার।

Smart Contract এর Common Vulnerability

Smart contract-এ কিছু classic vulnerability pattern বারবার দেখা যায়। OWASP Smart Contract Top 10 (2023) এবং SWC Registry (Smart Contract Weakness Classification) এই সব document করেছে।

1. Reentrancy (SWC-107): এই vulnerability-ই DAO Hack-এর কারণ ছিল। External call-এর পরে state update করলে attacker recursively call করে fund drain করতে পারে।

// Vulnerable
function withdraw() public {
    uint amount = balances[msg.sender];
    (bool sent, ) = msg.sender.call{value: amount}("");
    require(sent);
    balances[msg.sender] = 0;  // Too late
}

// Secure (Checks-Effects-Interactions)
function withdraw() public {
    uint amount = balances[msg.sender];
    balances[msg.sender] = 0;  // Update first
    (bool sent, ) = msg.sender.call{value: amount}("");
    require(sent);
}

2. Integer Overflow/Underflow (SWC-101): Solidity 0.8 এর আগে arithmetic overflow check ছিল না। এখন built-in, কিন্তু unchecked block-এ আবার risk।

3. Access Control (SWC-105, 106): Critical function-এ onlyOwner modifier মিস করা।

// Vulnerable
function setOwner(address newOwner) public {
    owner = newOwner;  // Anyone can call!
}

// Secure
function setOwner(address newOwner) public onlyOwner {
    owner = newOwner;
}

4. Front-running (SWC-114): Transaction mempool-এ visible থাকায় MEV bot-রা higher gas fee দিয়ে আগে execute করে।

5. Oracle Manipulation: DeFi protocol-গুলো price oracle (Chainlink, Uniswap TWAP) ব্যবহার করে। যদি oracle manipulable হয়, attacker price পরিবর্তন করে exploit করতে পারে।

6. Flash Loan Attack: Uncollateralized loan নিয়ে একটি transaction-এ price manipulation, governance attack, বা liquidity drain।

7. Signature Replay (SWC-117, 121): Same signature multiple time use করা।

8. tx.origin Authentication (SWC-115): tx.origin ব্যবহার করে authentication—phishing-prone।

9. Uninitialized Storage Pointer: Storage pointer-এর uninitialized declaration overwrite করতে পারে important storage।

10. Delegatecall Misuse (SWC-112): delegatecall ব্যবহার করে untrusted contract call। Parity Wallet hack এর কারণ ছিল।

11. Random Number Vulnerability: block.timestamp, block.difficulty দিয়ে randomness—predictable।

12. Gas Limit Issue (SWC-128): Unbounded loop যা out-of-gas exception ঘটায়।

13. Denial of Service (SWC-113): External call fail করলে whole transaction revert।

14. Floating Pragma (SWC-103): pragma solidity ^0.8.0 মানে যেকোনো 0.8.x version-এ compile হবে—inconsistent behavior।

Audit Methodology

Professional smart contract audit একটি structured process অনুসরণ করে।

Phase 1 - Scope Definition:

  • কোন contract audit হবে
  • Time frame
  • Reporting format
  • Re-audit policy

Phase 2 - Documentation Review:

  • Whitepaper
  • Architecture diagram
  • Business logic
  • External dependency

Phase 3 - Automated Analysis:

Multiple SAST tool চালানো:

  • Slither (Trail of Bits): Most popular static analyzer। 80+ detector।
  • Mythril: Symbolic execution-based analyzer।
  • Securify (ChainSecurity): Pattern-based analysis।
  • Manticore (Trail of Bits): Symbolic execution।
  • Echidna: Property-based fuzzing।
slither contracts/MyContract.sol
mythril analyze contracts/MyContract.sol

Phase 4 - Manual Review: Automated tool-এর সীমাবদ্ধতা আছে—business logic bug, complex multi-contract interaction তারা miss করে। Manual review-এ:

  • প্রতিটি function-এর behavior verify
  • Access control check
  • State transition analysis
  • Economic incentive review
  • Integration with external contract

Phase 5 - Dynamic Testing:

  • Foundry/Hardhat-এ unit test
  • Property-based testing (Echidna)
  • Fuzz testing
  • Symbolic execution

Phase 6 - Formal Verification:

  • Certora Prover
  • K Framework
  • Mathematical proof of correctness

Phase 7 - Reporting:

  • Executive summary
  • Detailed finding (severity: critical/high/medium/low/info)
  • Recommendation
  • Code reference (file:line)

Phase 8 - Remediation Review: Developer fix-এর পর re-audit।

Popular Auditing Tools

Slither:

slither . --detect reentrancy-eth,uninitialized-state

Output-এ pattern-based finding-এর সাথে data flow analysis।

Mythril:

myth analyze contract.sol --execution-timeout 300

Symbolic execution-এর মাধ্যমে multiple execution path explore।

Foundry: Modern toolkit testing-এর জন্য।

function testReentrancy() public {
    vm.deal(attacker, 1 ether);
    vm.startPrank(attacker);
    attackerContract.attack{value: 1 ether}();
    assertEq(address(victim).balance, 0);
}

Echidna: Property-based fuzzing।

function echidna_balance_under_1000() public returns (bool) {
    return token.balanceOf(msg.sender) < 1000;
}

Certora: Formal verification specification language (CVL)।

বিখ্যাত Hack ও তাদের শিক্ষা

The DAO Hack (2016) - $60M: Reentrancy via call.value()। Solution: Checks-Effects-Interactions pattern, ReentrancyGuard।

Parity Multi-sig Wallet (2017) - $30M then $300M frozen: delegatecall থেকে initialization bug। শিক্ষা: Delegatecall-এ extra সতর্কতা।

bZx (2020) - $1M: Flash loan + oracle manipulation। শিক্ষা: TWAP oracle, multi-source oracle।

Poly Network (2021) - $611M: Cross-chain bridge bug। Attacker keeper function-এ ownership claim করে। (পরে hacker সব return করে)।

Ronin Bridge (2022) - $625M: Validator key compromise + insufficient validator decentralization।

Wormhole (2022) - $325M: Signature verification bug—uninitialized variable accepted as valid signature।

Nomad Bridge (2022) - $190M: Faulty initialization—anyone could replay any message।

Euler Finance (2023) - $197M: Donation attack via faulty liquidation logic। (পরে partial return)।

Curve Finance (2023) - $61M: Vyper compiler bug—reentrancy lock failure।

প্রতিটি incident পুরো DeFi ecosystem-কে শেখায়। Post-mortem report পড়া essential learning।

Audit Firm ও Process

Industry-তে কয়েকটি reputed audit firm আছে:

  • OpenZeppelin: Pioneer in smart contract security
  • ConsenSys Diligence: MythX, formal verification
  • Trail of Bits: Slither, Echidna, Manticore-এর makers
  • CertiK: Formal verification, Skynet monitoring
  • Quantstamp: Decentralized audit
  • Halborn, Hacken, PeckShield: Other major firms

একটি comprehensive audit সাধারণত ২-৬ সপ্তাহ সময় নেয়, খরচ $২০,০০০ থেকে $৫,০০,০০০+ পর্যন্ত।

Bug Bounty Program

Audit-এর পরেও bug থেকে যায়। Bug bounty program continuous security ensure করে।

Platforms:

  • Immunefi: DeFi-focused, $২.৫ million পর্যন্ত bounty
  • HackerOne, Bugcrowd
  • Code4rena: Crowd-sourced audit contests
  • Sherlock: Audit + insurance

Notable bounty payouts:

  • Wormhole: $10M to a researcher
  • Aurora: $6M
  • Polygon: $2M

Upgradeable Contract Security

অনেক protocol upgradeable contract use করে (Proxy pattern: Transparent, UUPS, Beacon)। এটি bug fix-এর সুযোগ দেয় কিন্তু নতুন vulnerability পাঠায়।

Risks:

  • Storage collision
  • Initializer not protected
  • Upgrade authority centralization
  • Function selector clash

Best Practices:

  • OpenZeppelin Upgrades plugin use
  • Storage gap for future variable
  • Initializer modifier
  • Multi-sig for upgrade
  • Timelock for upgrade execution

DeFi-specific Security Concerns

DeFi protocol-এ unique challenges:

MEV (Maximal Extractable Value):

  • Front-running, sandwich attack
  • Mitigation: Commit-reveal scheme, private mempool (Flashbots Protect)

Composability Risks: DeFi protocol-গুলো একে অন্যের সাথে integrated। একটি protocol-এর bug অন্যকে প্রভাবিত করে।

Governance Attack: Token-based governance hijack করে protocol drain।

Economic Attack: Game-theoretic exploit, যেমন liquidity manipulation।

Cross-chain Bridge Security

Bridge সবচেয়ে exploited DeFi component।

Common Bug Patterns:

  • Insufficient signature verification
  • Centralized validator set
  • Replay attack
  • Locked fund visibility

Mitigation:

  • Decentralized validator
  • Zero-knowledge proof bridge
  • Multi-sig with timelock
  • Frequent monitoring

প্রতিরোধ ও সর্বোত্তম অনুশীলন

Smart contract security improvement-এর জন্য:

Development Phase:

  • Use latest Solidity (specific version)
  • OpenZeppelin library (audited, battle-tested)
  • Follow Solidity Style Guide
  • NatSpec documentation
  • Comprehensive test coverage (100% if possible)

Pre-deployment:

  • Multiple internal review
  • Automated tools (Slither, Mythril)
  • Property-based testing (Echidna, Foundry fuzz)
  • Professional audit (multiple firm preferable)
  • Testnet deployment + battle-test

Deployment:

  • Multi-sig deployer
  • Verified source on Etherscan
  • Initialization safety
  • Time-locked admin function

Post-deployment:

  • Bug bounty program
  • Real-time monitoring (Forta, OpenZeppelin Defender)
  • Incident response plan
  • Insurance (Nexus Mutual, InsurAce)
  • Regular re-audit for upgrade

Design Principles:

  • Simplicity over complexity
  • Fail-safe defaults
  • Defense in depth
  • Least privilege
  • Separation of concern
  • Pull-over-push payment pattern
  • Circuit breaker (pause function)
Key Takeaways

Smart Contract Auditing blockchain ecosystem-এর সবচেয়ে গুরুত্বপূর্ণ discipline-এর একটি। যেখানে traditional software-এ bug fix patch-এর মাধ্যমে সম্ভব, smart contract-এর immutability সেই সুযোগ কেড়ে নেয়। Single line-এর bug কোটি ডলারের ক্ষতির কারণ হতে পারে—এই reality web3 developer-দের প্রতিটি line code লেখার সময় মনে রাখতে হবে। Comprehensive audit—যা automated tool, manual review, formal verification, এবং continuous monitoring-এর সমন্বয়—deploying মূলত একটি baseline requirement। DeFi-র rapid evolution, cross-chain bridge-এর complexity, এবং MEV-এর মতো নতুন threat ক্ষেত্রটিকে ক্রমশ চ্যালেঞ্জিং করে তুলছে। Smart contract security researcher হিসেবে আপনাকে continuously learn করতে হবে—new vulnerability pattern, audit technique, এবং post-mortem analysis থেকে। মনে রাখবেন, blockchain-এ "code is law"—আপনার কোডই আইন, তাই সেটি যেন নিখুঁত হয় তা নিশ্চিত করুন। Audit এড়িয়ে যাওয়া মানে ব্যবসা-ই risk-এ ফেলা।

আপনার জ্ঞান যাচাই করতে প্রস্তুত? আজই HackCert-এ Contract Auditing MCQ Quiz-টি দিন!

Related articles

back to all articles