স্মার্ট কনট্রাক্টের নিরাপত্তা সাধারণ সফটওয়্যারের নিরাপত্তা থেকে আলাদা কেন?
স্মার্ট কনট্র্যাক্টের নিরাপত্তা আলাদা, কারণ এর কোড সবার জন্য উন্মুক্ত, এতে প্রায়ই সরাসরি অর্থ রাখা হয় এবং একবার চালু হলে সাধারণত তা বদলানো যায় না। ওয়েব অ্যাপের ত্রুটি রাতারাতি ঠিক করা যায়; কিন্তু কনট্র্যাক্টের ত্রুটি কোড পড়ে যে কেউ খুঁজে পেতে পারে এবং দল জেগে ওঠার আগেই তার সুযোগ নিতে পারে। Ethereum.org-এর হিসাবে, স্মার্ট কনট্র্যাক্টের ত্রুটির কারণে ক্ষতির পরিমাণ একশ কোটি ডলারের বেশি। তারা শুরুর দিকের একটি উদাহরণ হিসেবে 2016 সালের DAO হ্যাকের উল্লেখ করেছে।
ধরা যাক, লার্কস্পার ল্যাবস নামে একটি কাল্পনিক চারজনের স্টুডিও একটি সহজ যৌথ সঞ্চয় তহবিল তৈরি করছে, যেখানে সদস্যরা টাকা জমা দিতে এবং নিজেদের অংশ তুলতে পারবেন। চালু করার আগে ডেভেলপার কোফি পর্যালোচনার নোটে লেখেন: 'withdraw আগে টাকা পাঠায়, তারপর ব্যালান্স 0 করে। setFee সবার জন্য উন্মুক্ত, পরে সীমিত করব। টিউটোরিয়ালের পুরোনো কম্পাইলার সংস্করণ ব্যবহার করছি। পুরস্কারের টোকেনের দাম একটি ছোট এক্সচেঞ্জ পুল থেকে নেওয়া হচ্ছে। পরীক্ষা: হাতে একবার deposit + withdraw করে দেখেছি, কাজ করে'। প্রতিটি লাইন একটি পরিচিত ধরনের নিরাপত্তা দুর্বলতা তুলে ধরে।
স্মার্ট কন্ট্র্যাক্টে সবচেয়ে বেশি দেখা যায় এমন নিরাপত্তা দুর্বলতাগুলো কী?
স্মার্ট কন্ট্রাক্টের সবচেয়ে সাধারণ দুর্বলতাগুলো হলো প্রবেশাধিকার নিয়ন্ত্রণের ত্রুটি, মূল্য ওরাকলে কারসাজি, যুক্তিগত ভুল, ইনপুট যাচাই না থাকা এবং আগের কাজ শেষ হওয়ার আগেই আবার একই ফাংশনে প্রবেশ বা রিএনট্র্যান্সি। এগুলো 2025 সালের OWASP-এর স্মার্ট কন্ট্রাক্টের শীর্ষ 10 দুর্বলতার তালিকার প্রথম দিকে রয়েছে। Ethereum.org-এও একই প্রধান শ্রেণিগুলো আলোচনা করা হয়েছে।
পুনঃপ্রবেশ
কোনো চুক্তি নিজের রেকর্ড হালনাগাদ করার আগে অর্থ পাঠায় বা অন্য কোনো চুক্তিকে কল করে। ক্ষতিকর উদ্দেশ্য থাকা প্রাপক পুরোনো ব্যালান্স দেখানোর সময়ই আবার কল করে এবং আবার অর্থ তুলে নেয়। কোফির অর্থ উত্তোলনের ফাংশনটি, যা ব্যালান্স শূন্য করার আগে অর্থ দেয়, এর চিরাচরিত উদাহরণ। প্রচলিত সমাধান হলো আগে অবস্থা হালনাগাদ করা এবং সবশেষে অন্য চুক্তিগুলোর সঙ্গে যোগাযোগ করা। একে প্রায়ই যাচাই, পরিবর্তন, যোগাযোগের ক্রম বলা হয়।
প্রবেশাধিকার নিয়ন্ত্রণ
সংবেদনশীল ফাংশন, যা যে কেউ চালু করতে পারে। কোফির সবার জন্য উন্মুক্ত setFee ফাংশনের মাধ্যমে যেকোনো অপরিচিত ব্যক্তি ফি বদলে দিতে পারে। Ethereum.org-এ মালিকের ভূমিকা, ভূমিকাভিত্তিক প্রবেশাধিকার এবং একাধিক স্বাক্ষরের মাধ্যমে অনুমোদনের মতো পদ্ধতি বর্ণনা করা হয়েছে।
পূর্ণসংখ্যার ওভারফ্লো ও আন্ডারফ্লো
সীমা পেরিয়ে গেলে গাণিতিক মান ঘুরে অন্য প্রান্তে চলে যাওয়া, যার ফলে শূন্যের নিচে থাকা ব্যালান্স বিশাল সংখ্যায় পরিণত হয়। Ethereum.org জানায়, Solidity 0.8.0 ও পরের সংস্করণগুলোতে ডিফল্টভাবেই এটি প্রত্যাখ্যান করা হয়, কিন্তু পুরোনো কোডে আলাদা করে যাচাইয়ের ব্যবস্থা রাখতে হয়। তাই কোফির পুরোনো কম্পাইলারটি গুরুত্বপূর্ণ।
ওরাকলকে প্রভাবিত করা
এমন একটি একক বাজার থেকে দাম নেওয়া যেখানে লেনদেন কম এবং আক্রমণকারী দাম বদলে দিতে পারে। এ জন্য প্রায়ই ফ্ল্যাশ ঋণ ব্যবহার করা হয়—একই লেনদেনের মধ্যে নেওয়া ও শোধ করা ঋণ। নির্ভরযোগ্য নকশায় বিকেন্দ্রীভূত ওরাকল বা নির্দিষ্ট সময়ের গড় দাম ব্যবহার করা হয়।
যুক্তি ও যাচাইয়ের ত্রুটি
নির্ধারিত নকশার সঙ্গে মেলে না এমন নিয়ম, অথবা কখনোই যাচাই করা হয় না এমন ইনপুট, যেমন শূন্য পরিমাণ বা অপ্রত্যাশিত ঠিকানা।
দলগুলো কীভাবে স্মার্ট চুক্তি পরীক্ষা ও নিরীক্ষা করে?
দলগুলো স্মার্ট চুক্তি কয়েকটি স্তরে পরীক্ষা ও নিরীক্ষা করে, কারণ কোনো একটি পদ্ধতিতে সবকিছু ধরা পড়ে না: স্বয়ংক্রিয় পরীক্ষা, বিশ্লেষণ টুল, পরীক্ষামূলক নেটওয়ার্কে চালু করা, স্বাধীন পর্যালোচনা এবং উল্লেখযোগ্য মূল্যের সম্পদ থাকা চুক্তির জন্য বাইরের নিরীক্ষা ও ত্রুটি ধরিয়ে দেওয়ার পুরস্কার কর্মসূচি।
1. ইউনিট ও বৈশিষ্ট্যভিত্তিক পরীক্ষা
প্রতিটি ফাংশনের জন্য পরীক্ষা লিখুন। ক্ষতিকর পরিস্থিতিও রাখুন, যেমন কোনো গ্রহণকারী আবার কল করে মূল ফাংশনে ঢুকে পড়ে। ফাজিং স্বয়ংক্রিয়ভাবে হাজার হাজার এলোমেলো ইনপুট পরীক্ষা করে।
2. কোড না চালিয়ে বিশ্লেষণ
Ethereum.org-এ Slither, Mythril ও Aderyn-এর মতো টুলের উল্লেখ আছে, যেগুলো পরিচিত ঝুঁকিপূর্ণ ধরন খুঁজতে কোড পরীক্ষা করে।
3. নেটওয়ার্ক পরীক্ষা করুন
মূল নেটওয়ার্কে চালু করার আগে একটি সর্বসাধারণের জন্য উন্মুক্ত পরীক্ষামূলক নেটওয়ার্কে চালু করুন। অ্যাপ্লিকেশন ও কন্ট্র্যাক্ট তৈরির জন্য Ethereum.org সেপোলিয়া ব্যবহারের পরামর্শ দেয়; পরীক্ষামূলক নেটওয়ার্কের ইথারের কোনো বাস্তব মূল্য থাকার কথা নয়, তাই ভুল হলেও অর্থ খরচ হয় না।
4. সহকর্মীদের পর্যালোচনা ও নিরীক্ষিত লাইব্রেরি
সংস্করণ নিয়ন্ত্রণ, প্রতিটি পরিবর্তনের জন্য স্বাধীন পর্যালোচক এবং একেবারে গোড়া থেকে প্রবেশাধিকার নিয়ন্ত্রণ লেখার বদলে OpenZeppelin Contracts-এর মতো ভালোভাবে পর্যালোচিত লাইব্রেরি ব্যবহার করুন।
5. নিরীক্ষা, ত্রুটি শনাক্তের পুরস্কার ও পর্যবেক্ষণ
স্বাধীন নিরীক্ষা বাড়তি যাচাইয়ের সুযোগ দেয়, তবে ethereum.org যেমন বলেছে, সব ত্রুটি ধরা পড়ে না। বাকি ঝুঁকি মোকাবিলায় ত্রুটি খুঁজে দেওয়ার পুরস্কার, জরুরি অবস্থায় কার্যক্রম থামানোর ব্যবস্থা এবং ইভেন্ট পর্যবেক্ষণ কাজে আসে।
দুর্বল ও উন্নত নিরাপত্তা পর্যালোচনা কেমন হয়?
দুর্বল পর্যালোচনা: 'জমা ও উত্তোলন হাতে পরীক্ষা করা হয়েছে, ঠিকমতো কাজ করছে, চালু করার জন্য প্রস্তুত।' সবকিছু প্রত্যাশামতো চলার পরীক্ষা দেখায় যে সৎ ব্যবহারকারীদের জন্য চুক্তিটি কাজ করে। কিন্তু আক্রমণকারীরা সৎ ব্যবহারকারী নয়।
উন্নত পর্যালোচনা: পুনঃপ্রবেশ: withdraw এখন অর্থ পাঠানোর আগেই ব্যালান্স শূন্য করে দেয়, আর একটি পরীক্ষায় ক্ষতিকর রিসিভার কন্ট্রাক্ট দিয়ে আবার কল করার চেষ্টা করা হয়। প্রবেশাধিকার নিয়ন্ত্রণ: নিরীক্ষিত লাইব্রেরির মালিকের ভূমিকায় setFee সীমাবদ্ধ করা হয়েছে এবং অপরিচিত কারও কল ব্যর্থ হয় কি না তা পরীক্ষা করা হয়েছে। কম্পাইলার: বর্তমান 0.8 সংস্করণে উন্নীত করা হয়েছে, তাই ওভারফ্লো যাচাই চালু আছে। ওরাকল: একক পুলের দামের বদলে বিকেন্দ্রীভূত মূল্য ফিড ব্যবহার করা হয়েছে, সঙ্গে আকস্মিক ওঠানামার জন্য যৌক্তিকতার সীমা রয়েছে। পরীক্ষা: ইউনিট টেস্ট, এক দফা ফাজিং এবং স্ট্যাটিক অ্যানালিসিস করা হয়েছে, প্রতিটি ফলাফলের ব্যাখ্যাসহ; তারপর Sepolia-তে দুই সপ্তাহ একজন সহকর্মী এটিতে ত্রুটি খোঁজার চেষ্টা করেছেন। কোনো প্রকৃত অর্থ গ্রহণের আগেই বাহ্যিক নিরীক্ষার সময় নির্ধারণ করা হয়েছে।
স্মার্ট কন্ট্র্যাক্টের নিরাপত্তায় সাধারণ ভুলগুলো কী?
সবচেয়ে সাধারণ ভুল হলো শুধু সবকিছু ঠিকঠাক চলার পথটি পরীক্ষা করা, যেন প্রতিটি কলকারীই সৎ। অন্য ভুলগুলো হলো: পরে সীমিত করা হবে ভেবে প্রশাসনিক কাজের সুযোগ খোলা রাখা, পুরোনো কম্পাইলার দিয়ে টিউটোরিয়ালের কোড নকল করা, দামের একটি উৎসের ওপর ভরসা করা, নিরীক্ষাকে নিশ্চয়তা মনে করা, পরীক্ষামূলক নেটওয়ার্কের ধাপ বাদ দেওয়া এবং বন্ধ রাখা বা হালনাগাদের পরিকল্পনা ছাড়াই চালু করা।
Tosheo.ai-এ এই পাঠটি কোথায় রয়েছে?
এটি ব্লকচেইন বিভাগের এবং ব্লকচেইন কোর্সের একটি কোডিং পাঠ। এই বিনামূল্যের পৃষ্ঠায় প্রতিটি ধাপ লিখে বোঝানো হয়েছে; পূর্ণ হাতে-কলমে সংস্করণে আপনি আসল চুক্তির কোড পর্যালোচনা ও সংশোধন করবেন এবং পরীক্ষামূলক নেটওয়ার্কে পরীক্ষা চালাবেন। সেটি নিবন্ধনের পর ঐচ্ছিক কোডিং ধারায় পাওয়া যায়। মৌলিক বিষয়গুলো নতুন হলে স্মার্ট চুক্তির ব্যাখ্যা দিয়ে শুরু করুন। Tosheo.ai কোনো পূর্ণকালীন নিবিড় প্রশিক্ষণ বা পেশাদার নিরীক্ষকের যোগ্যতা অর্জনের কোর্স নয়, আর এখানকার কোনো কিছুই বিনিয়োগের পরামর্শ নয়; প্রকৃত আর্থিক মূল্য ধারণকারী চুক্তির জন্য বিশেষজ্ঞের নিরীক্ষা প্রয়োজন।
উৎস ও পরিধি
ethereum.org, স্মার্ট কন্ট্রাক্টের নিরাপত্তা (যাচাই করা হয়েছে 19 October 2026) ↗
OWASP স্মার্ট কনট্র্যাক্টের শীর্ষ 10, 2025 (যাচাই করা হয়েছে 19 অক্টোবর 2026) ↗
ethereum.org, নেটওয়ার্ক ও পরীক্ষামূলক নেটওয়ার্ক (যাচাই করা হয়েছে 19 October 2026) ↗