মূল কন্টেন্টে যান

স্মার্ট কন্ট্রাক্ট সিকিউরিটি চেকলিস্ট

স্মার্ট কন্ট্রাক্ট
নিরাপত্তা
Solidity
ইন্টারমিডিয়েট
Trailofbits
7 সেপ্টেম্বর, 2020
3 মিনিট পড়া

স্মার্ট কন্ট্রাক্ট ডেভেলপমেন্ট চেকলিস্ট

আপনি যখন আপনার স্মার্ট কন্ট্রাক্টগুলো লিখবেন তখন আমরা এই হাই-লেভেল প্রক্রিয়াটি অনুসরণ করার পরামর্শ দিই।

পরিচিত নিরাপত্তা সমস্যাগুলো পরীক্ষা করুন:

  • Slither (opens in a new tab) দিয়ে আপনার কন্ট্রাক্টগুলো রিভিউ করুন। সাধারণ দুর্বলতাগুলোর জন্য এতে 40 টিরও বেশি বিল্ট-ইন ডিটেক্টর রয়েছে। নতুন কোডের সাথে প্রতিটি চেক-ইনে এটি রান করুন এবং নিশ্চিত করুন যে এটি একটি ক্লিন রিপোর্ট পায় (অথবা নির্দিষ্ট সমস্যাগুলো সাইলেন্স করতে ট্রায়াজ মোড ব্যবহার করুন)।
  • Crytic (opens in a new tab) দিয়ে আপনার কন্ট্রাক্টগুলো রিভিউ করুন। এটি এমন 50 টি সমস্যা পরীক্ষা করে যা Slither করে না। গিটহাবের (GitHub) পুল রিকোয়েস্টগুলোতে (Pull Requests) সহজেই নিরাপত্তা সমস্যাগুলো তুলে ধরার মাধ্যমে Crytic আপনার টিমকেও একে অপরের সাথে আপ-টু-ডেট থাকতে সাহায্য করতে পারে।

আপনার কন্ট্রাক্টের বিশেষ বৈশিষ্ট্যগুলো বিবেচনা করুন:

  • আপনার কন্ট্রাক্টগুলো কি আপগ্রেডযোগ্য? ত্রুটির জন্য আপনার আপগ্রেডযোগ্য কোডটি slither-check-upgradeability (opens in a new tab) বা Crytic (opens in a new tab) দিয়ে রিভিউ করুন। আপগ্রেডগুলো যে 17 টি উপায়ে ভুল পথে যেতে পারে তা আমরা ডকুমেন্ট করেছি।
  • আপনার কন্ট্রাক্টগুলো কি ERC-এর সাথে সামঞ্জস্যপূর্ণ বলে দাবি করে? সেগুলোকে slither-check-erc (opens in a new tab) দিয়ে পরীক্ষা করুন। এই টুলটি তাৎক্ষণিকভাবে 6 টি সাধারণ স্পেক (specs) থেকে বিচ্যুতি শনাক্ত করে।
  • আপনি কি থার্ড-পার্টি টোকেনের সাথে ইন্টিগ্রেট করেন? এক্সটার্নাল কন্ট্রাক্টের ওপর নির্ভর করার আগে আমাদের টোকেন ইন্টিগ্রেশন চেকলিস্ট রিভিউ করুন।

আপনার কোডের গুরুত্বপূর্ণ নিরাপত্তা বৈশিষ্ট্যগুলো দৃশ্যমানভাবে পরিদর্শন করুন:

  • Slither-এর inheritance-graph (opens in a new tab) প্রিন্টার রিভিউ করুন। অসাবধানতাবশত শ্যাডোইং (shadowing) এবং C3 লিনিয়ারাইজেশন (linearization) সমস্যাগুলো এড়িয়ে চলুন।
  • Slither-এর function-summary (opens in a new tab) প্রিন্টার রিভিউ করুন। এটি ফাংশন ভিজিবিলিটি এবং অ্যাক্সেস কন্ট্রোল রিপোর্ট করে।
  • Slither-এর vars-and-auth (opens in a new tab) প্রিন্টার রিভিউ করুন। এটি স্টেট ভেরিয়েবলগুলোর ওপর অ্যাক্সেস কন্ট্রোল রিপোর্ট করে।

গুরুত্বপূর্ণ নিরাপত্তা প্রপার্টিগুলো ডকুমেন্ট করুন এবং সেগুলো মূল্যায়ন করতে স্বয়ংক্রিয় টেস্ট জেনারেটর ব্যবহার করুন:

  • আপনার কোডের জন্য নিরাপত্তা প্রপার্টিগুলো ডকুমেন্ট করতে শিখুন। এটি প্রথমে কঠিন মনে হতে পারে, তবে একটি ভালো ফলাফল অর্জনের জন্য এটি সবচেয়ে গুরুত্বপূর্ণ কাজ। এই টিউটোরিয়ালের যেকোনো উন্নত কৌশল ব্যবহার করার জন্যও এটি একটি পূর্বশর্ত।
  • Echidna (opens in a new tab) এবং Manticore (opens in a new tab)-এর সাথে ব্যবহারের জন্য Solidity-তে নিরাপত্তা প্রপার্টিগুলো সংজ্ঞায়িত করুন। আপনার স্টেট মেশিন, অ্যাক্সেস কন্ট্রোল, গাণিতিক অপারেশন, এক্সটার্নাল ইন্টারেকশন এবং স্ট্যান্ডার্ড কনফরমেন্সের ওপর ফোকাস করুন।
  • Slither-এর Python API দিয়ে নিরাপত্তা প্রপার্টিগুলো সংজ্ঞায়িত করুন। ইনহেরিটেন্স, ভেরিয়েবল ডিপেন্ডেন্সি, অ্যাক্সেস কন্ট্রোল এবং অন্যান্য কাঠামোগত সমস্যার ওপর ফোকাস করুন।
  • Crytic (opens in a new tab)-এর সাথে প্রতিটি কমিটে আপনার প্রপার্টি টেস্টগুলো রান করুন। Crytic নিরাপত্তা প্রপার্টি টেস্টগুলো গ্রহণ এবং মূল্যায়ন করতে পারে যাতে আপনার টিমের সবাই সহজেই দেখতে পারে যে সেগুলো গিটহাবে (GitHub) পাস করেছে। ব্যর্থ টেস্টগুলো কমিট ব্লক করতে পারে।

পরিশেষে, এমন সমস্যাগুলোর বিষয়ে সচেতন থাকুন যা স্বয়ংক্রিয় টুলগুলো সহজেই খুঁজে পায় না:

  • গোপনীয়তার অভাব: পুলে অপেক্ষমাণ থাকার সময় অন্য সবাই আপনার লেনদেন দেখতে পারে
  • ফ্রন্ট রানিং লেনদেন
  • ক্রিপ্টোগ্রাফিক অপারেশন
  • এক্সটার্নাল DeFi কম্পোনেন্টগুলোর সাথে ঝুঁকিপূর্ণ ইন্টারেকশন

সাহায্য চান

Ethereum office hours (opens in a new tab) প্রতি মঙ্গলবার বিকেলে পরিচালিত হয়। এই 1-ঘণ্টার, 1-অন-1 সেশনগুলো হলো নিরাপত্তা সম্পর্কে আপনার যেকোনো প্রশ্ন জিজ্ঞাসা করার, আমাদের টুলগুলো ব্যবহার করে ট্রাবলশুট করার এবং আপনার বর্তমান পদ্ধতি সম্পর্কে বিশেষজ্ঞদের কাছ থেকে ফিডব্যাক পাওয়ার একটি সুযোগ। আমরা আপনাকে এই গাইডের মাধ্যমে কাজ করতে সাহায্য করব।

আমাদের স্ল্যাকে (Slack) যোগ দিন: Empire Hacking (opens in a new tab)। আপনার কোনো প্রশ্ন থাকলে আমরা সবসময় #crytic এবং #ethereum চ্যানেলে উপলব্ধ আছি।

পেজ সর্বশেষ আপডেট: 3 মার্চ, 2026

এই টিউটোরিয়ালটি কি সহায়ক ছিল?