স্ট্যাকিং প্রোটোকল অডিট করার জন্য নির্দেশিকা

স্ট্যাকিং প্রোটোকল অডিট করার জন্য নির্দেশিকা

পড়ার সময়: 6 মিনিট

এই ব্লগে, আমরা লিকুইডিটি স্টেকিং প্রোটোকল এবং স্টেকিং প্রোটোকলের জন্য অডিটিং নির্দেশিকাগুলির ধারণার রূপরেখা দিয়েছি। নির্দেশিকাগুলি প্রত্যাহারের প্রক্রিয়া, রাউন্ডিং ত্রুটি, বাহ্যিক কল, ফি লজিক, লুপস, স্ট্রাকস, স্টেকিং সময়কাল ইত্যাদির মতো দুর্বল স্পটগুলির একটি পরিসীমা কভার করে৷ এই ব্লগ পোস্টটি স্টেকিং প্রোটোকল অডিট করার জন্য একটি দরকারী রেফারেন্স হবে এবং সম্ভাব্য বাগগুলি সনাক্ত করতে আপনাকে সাহায্য করতে পারে৷ .

লিকুইডিটি স্টেকিং কি?

লিকুইডিটি স্টেকিং ব্যবহারকারীদের তাদের ক্রিপ্টোকারেন্সি হোল্ডিংয়ে অংশ নিতে এবং তরলতা ত্যাগ না করে পুরস্কার অর্জন করতে দেয়। একটি নির্দিষ্ট সময়ের জন্য তাদের কয়েন লক করার পরিবর্তে, ব্যবহারকারীরা একটি তরল টোকেন পেতে পারেন যা তাদের স্টেক করা সম্পদের প্রতিনিধিত্ব করে। এই টোকেনটি অন্য যেকোন ক্রিপ্টোকারেন্সির মতো ট্রেড করা বা ব্যবহার করা যেতে পারে, যা ব্যবহারকারীদের তাদের সম্পদগুলিকে তাদের খুশিমতো ব্যবহার করার অনুমতি দেয় এবং এখনও স্টেকিং পুরস্কার অর্জন করে।

অডিটিং স্ট্যাকিং প্রোটোকল PlatoBlockchain ডেটা বুদ্ধিমত্তার জন্য নির্দেশিকা। উল্লম্ব অনুসন্ধান. আ.

উদাহরণস্বরূপ, আপনার কাছে 100 ETH আছে যা আপনি Ethereum নেটওয়ার্কে অংশ নিতে চান৷ একটি নির্দিষ্ট সময়ের জন্য আপনার ETH লক করার পরিবর্তে, আপনি Lido-এর মতো একটি লিকুইডিটি স্টকিং পরিষেবা ব্যবহার করতে পারেন যাতে আপনি আপনার ETH স্টক করতে পারেন এবং বিনিময়ে stETH নামে একটি লিকুইড টোকেন পেতে পারেন। স্টেকিং পুরষ্কার অর্জন করার সময় স্টেকিং এর সাথে, আপনি এখনও ট্রেড করতে বা আপনার স্টেক করা ETH ব্যবহার করতে পারেন।

অডিটিং স্টেকিং কন্ট্রাক্ট দিয়ে শুরু করা যাক:

চুক্তি কোড দিয়ে শুরু করার আগে উপলব্ধ সমস্ত অডিট স্পেসিফিকেশন পরীক্ষা করুন। এটি একটি সাদা কাগজ, README ফাইল বা অন্য কিছু আকারে হতে পারে। এগুলো আপনাকে কন্ট্রাক্ট কোডে কী থাকবে তার একটা ধারণা দেবে।

স্টেকিং চুক্তির জন্য অডিট স্পেসিফিকেশন ডকুমেন্ট দেখার সময়, এই পয়েন্টগুলি দেখুন:

  • ফি ভিত্তিক প্রকার এবং তাদের গণনা।
  • স্টক করা টোকেনগুলির জন্য পুরষ্কার প্রক্রিয়া
  • মালিকের ক্ষমতা
  • চুক্তি কি ETH ধরে রাখবে?
  • চুক্তি কি টোকেন রাখা হবে?
  • মূল চুক্তি যা থেকে এটি কাঁটাচামচ করা হয়

নির্দিষ্টকরণ কোডের সাথে মেলে কিনা তা পরীক্ষা করুন। ফি এবং টোকেনমিক্স দিয়ে শুরু করুন, তারপরে মালিকের কর্তৃপক্ষের বৈধতা। সমস্ত পুরস্কার এবং ফি মান ডকুমেন্টেশন অনুযায়ী আছে কিনা তা পরীক্ষা করুন।

অরক্ষিত দাগ খুঁজতে?

1. পুরস্কার প্রত্যাহার প্রক্রিয়া:

স্টক করা টোকেন পুরষ্কার প্রক্রিয়া সঠিকভাবে প্রয়োগ করা হয়েছে এবং সমস্ত অংশীদারদের মধ্যে পুরষ্কারগুলি ন্যায্যভাবে এবং আনুপাতিকভাবে বিতরণ করা হয়েছে কিনা তা পরীক্ষা করুন৷ প্রকল্প দুটি উপায়ে পুরষ্কার বিতরণ করতে পারে: হয় স্বয়ংক্রিয়ভাবে, পর্যায়ক্রমিক ভিত্তিতে, অথবা ব্যবহারকারীদের দ্বারা অনুরোধের ভিত্তিতে। প্রটোকলের ব্যবসায়িক যুক্তি অনুসারে একটি প্রত্যাহার ফাংশন বাস্তবায়ন এবং কাস্টমাইজ করা যেতে পারে।
নীচে কয়েকটি চেকপয়েন্ট রয়েছে:

  • কোন ব্যবহারকারী তার পুরষ্কার + স্টেক করা পরিমাণের চেয়ে বেশি তুলতে সক্ষম কিনা তা পরীক্ষা করুন।
  • পরিমাণ গণনার মধ্যে ওভারফ্লো/আন্ডারফ্লো পরীক্ষা করুন
  • গণনার সময় কিছু প্যারামিটার পুরস্কারের উপর নেতিবাচক প্রভাব ফেলতে পারে কিনা তা পরীক্ষা করুন।
  • যদি এই ফাংশনে block.timestamp বা block.number ব্যবহার করা হয়। এটি কোন উপায়ে শোষণ করা যেতে পারে কিনা তা পরীক্ষা করুন।

2. ফি লজিক:

যদি আমানত এবং উত্তোলন কিছু ফি সাপেক্ষে হয়, তাহলে যাচাই করুন যে কোনো একক ব্যবহারকারী ফি বাইপাস করতে পারবে না। অতিরিক্তভাবে, যেকোনো সম্ভাব্য ওভারফ্লো বা আন্ডারফ্লো সমস্যার জন্য সতর্ক থাকুন। শুধুমাত্র প্রশাসক বা মালিককে ফি সেটিংস পরিবর্তন করার জন্য অনুমোদিত হতে হবে। এছাড়াও যাচাই করুন যে সর্বাধিক ফিগুলির জন্য একটি থ্রেশহোল্ড প্রতিষ্ঠিত হয়েছে, প্রশাসককে এটিকে অত্যধিক উচ্চ পরিমাণে সেট করতে বাধা দেয়।

3. এলপি টোকেনের মিন্টিং/বার্নিং মেকানিজম:

মিন্টিং এবং বার্নিং মেকানিজম সঠিকভাবে প্রয়োগ করা হয়েছে কিনা তা যাচাই করুন। একটি বার্ন ফাংশন একটি পুদিনা ফাংশন দ্বারা করা সমস্ত রাষ্ট্র পরিবর্তন বিপরীত করা উচিত। অতিরিক্তভাবে, এটি যাচাই করা অত্যন্ত গুরুত্বপূর্ণ যে ব্যবহারকারীরা প্রথম স্টেকের সময় উপযুক্ত পরিমাণ টোকেন পেয়েছেন, যখন পুল খালি থাকে।

মিন্টিং এবং বার্নিং ফাংশনের যুক্তি গাণিতিকভাবে যাচাই করা যেতে পারে কোনো লুকানো দুর্বলতা উন্মোচন করতে। এছাড়াও, মিন্ট করা LP টোকেনের মোট সরবরাহ স্টেক করা সম্পদের বেশি হওয়া উচিত নয়।

4. রাউন্ডিং ত্রুটি:

যদিও কিছু ছোট ছোট রাউন্ডিং ভুলগুলি সাধারণত অনিবার্য এবং উদ্বেগের বিষয় নয়, সেগুলিকে গুন করা সম্ভব হলে সেগুলি উল্লেখযোগ্যভাবে বৃদ্ধি পেতে পারে। এজ কেসগুলি সন্ধান করুন যেখানে কেউ বারবার স্টেকিং এবং আনস্ট্যাক করে রাউন্ডিং ত্রুটিগুলি থেকে লাভ করতে পারে।

রাউন্ডিং ত্রুটিগুলি একটি বর্ধিত সময়ের মধ্যে যথেষ্ট পরিমাণে জমা হতে পারে কিনা তা নির্ধারণ করতে, আমরা গাণিতিকভাবে সম্ভাব্য রাউন্ডিং ত্রুটিগুলির পরিসর গণনা করতে পারি।

5. স্টেকিং সময়কাল:

নিশ্চিত করুন যে চুক্তিতে স্টেকিং সময়কাল গণনা নির্দিষ্ট ব্যবসায়িক যুক্তির সাথে সারিবদ্ধ। যাচাই করুন যে ব্যবহারকারীরা সময়কাল চেক বাইপাস করে স্টেকিং মেয়াদ শেষ হওয়ার আগে পুরষ্কার রিডিম করতে পারবেন না। এছাড়াও, আরও পুরষ্কার পেতে আক্রমণকারী দ্বারা স্টক করার সময়কালকে কাজে লাগানো যায় কিনা তা পরীক্ষা করুন।

6. বাহ্যিক কল এবং টোকেন হ্যান্ডলিং:

বেশিরভাগ বাহ্যিক কল টোকেন চুক্তিতে হবে। সুতরাং, আমাদের অবশ্যই নির্ধারণ করতে হবে যে কোন ধরণের টোকেন স্টেকিং চুক্তি পরিচালনা করবে। কোনো ত্রুটি এবং পুনরায় প্রবেশের আক্রমণের জন্য বহিরাগত কল পরীক্ষা করা অপরিহার্য। Deflationary টোকেন বা স্থানান্তর ফি সহ টোকেন, যেমন Safemoon, যদি তাদের যুক্তি সঠিকভাবে বাস্তবায়িত না হয় তবে সমস্যা তৈরি করতে পারে।

7. মূল্য ম্যানিপুলেশন চেক:

একটি ফ্ল্যাশ লোনের মাধ্যমে মূল্য ম্যানিপুলেশন হল DeFi প্রকল্পগুলিতে সবচেয়ে ঘন ঘন হ্যাকগুলির মধ্যে একটি৷ এমন পরিস্থিতি হতে পারে যেখানে দূষিত অভিনেতারা ফ্ল্যাশ লোন ব্যবহার করে দামের হেরফের করতে পারে বা বড় পরিমাণ টোকেন স্থির করার সময়। এজ-কেস পরিস্থিতি এড়াতে স্টেকিং এবং আনস্ট্যাকিং ফাংশনগুলি সাবধানতার সাথে পর্যালোচনা করুন যার ফলে ফ্ল্যাশ লোন-ভিত্তিক মূল্য ম্যানিপুলেশন আক্রমণ এবং অন্যান্য ব্যবহারকারীর তহবিল ক্ষতি হতে পারে।

8. কিছু অতিরিক্ত চেক:

  • loops: যদি চুক্তির যুক্তিতে অ্যারেগুলির উপর লুপ করা জড়িত থাকে, তবে ব্লক গ্যাসের সীমা অতিক্রম না করা নিশ্চিত করা গুরুত্বপূর্ণ। এটি ঘটতে পারে যখন অ্যারের আকার খুব বড় হয়, তাই আপনাকে অনুসন্ধান করা উচিত যে কোন ফাংশনগুলি অ্যারের আকার বাড়াতে পারে এবং কোন ব্যবহারকারী এটিকে DoS আক্রমণের জন্য ব্যবহার করতে পারে কিনা। এটা পরীক্ষা করো রিপোর্ট.
  • কাঠামো: স্টেকিং কন্ট্রাক্ট ব্যবহারকারী বা পুল ডেটা সঞ্চয় করতে স্ট্রাকট টাইপ ব্যবহার করে। একটি ফাংশনের মধ্যে একটি কাঠামো ঘোষণা বা অ্যাক্সেস করার সময়, "মেমরি" বা "স্টোরেজ" ব্যবহার করবেন কিনা তা নির্দিষ্ট করা গুরুত্বপূর্ণ। এটি আমাদের কিছু গ্যাস বাঁচাতে সাহায্য করতে পারে। আরও তথ্যের জন্য, অনুগ্রহ করে পড়ুন এই নিবন্ধটি.
  • সামনে-দৌড়: এমন কোনো পরিস্থিতির জন্য দেখুন যেখানে দূষিত অভিনেতারা তাদের সুবিধার জন্য যেকোনো লেনদেন সামনের দিকে চালাতে পারে।
  • ফাংশন দৃশ্যমানতা/অ্যাক্সেস কন্ট্রোল চেক: বাহ্যিক বা সর্বজনীন হিসাবে ঘোষণা করা যে কোনও ফাংশন যে কেউ অ্যাক্সেস করতে পারে। অতএব, এটা নিশ্চিত করা গুরুত্বপূর্ণ যে কোনো পাবলিক ফাংশন কোনো সংবেদনশীল কর্ম সম্পাদন করতে না পারে। স্টেকিং প্রোটোকল স্ট্যাক করা কয়েন এবং সিস্টেমের অবকাঠামো উভয়ের অননুমোদিত অ্যাক্সেস রোধ করতে যথাযথ নিয়ন্ত্রণ প্রয়োগ করেছে তা যাচাই করা অত্যন্ত গুরুত্বপূর্ণ।
  • কেন্দ্রীকরণ ঝুঁকি: মালিককে অত্যধিক ক্ষমতা না দেওয়া গুরুত্বপূর্ণ। প্রশাসক ঠিকানা আপস করা হলে, এটি প্রোটোকলের উল্লেখযোগ্য ক্ষতি হতে পারে। মালিক বা প্রশাসকের বিশেষাধিকারগুলি উপযুক্ত কিনা তা যাচাই করুন এবং নিশ্চিত করুন যে প্রটোকলের একটি প্রশাসকের ব্যক্তিগত কীগুলি ফাঁস হওয়া পরিস্থিতিগুলি পরিচালনা করার জন্য একটি পরিকল্পনা রয়েছে৷
  • ETH/WETH হ্যান্ডলিং: চুক্তিতে প্রায়ই ETH পরিচালনার জন্য নির্দিষ্ট যুক্তি অন্তর্ভুক্ত থাকে। উদাহরণস্বরূপ, যখন msg.value > 0, তখন একটি চুক্তি ETH-কে WETH-এ রূপান্তর করতে পারে যখন এখনও WETH-কে সরাসরি গ্রহণ করার অনুমতি দেয়। যখন একজন ব্যবহারকারী মুদ্রা হিসাবে WETH-কে নির্দিষ্ট করে কিন্তু কলের সাথে ETH পাঠায়, তখন এটি নির্দিষ্ট পরিবর্তনগুলি ভেঙে দিতে পারে এবং ভুল আচরণের দিকে নিয়ে যেতে পারে।

এ পর্যন্ত, আমরা তরলতা স্টেকিং প্রোটোকল এবং এই জাতীয় প্রোটোকলগুলির জন্য অডিটিং নির্দেশিকা নিয়ে আলোচনা করেছি। সংক্ষেপে, লিকুইডিটি স্টেকিং ব্যবহারকারীদের তারল্য ত্যাগ না করেই স্টেকিং পুরস্কার অর্জন করতে দেয়। আমরা চুক্তির স্টেকিং এর দুর্বল স্পটগুলির রূপরেখা দিয়েছি যা অডিটরদের অবশ্যই মনোযোগ দিতে হবে, যেমন প্রত্যাহার প্রক্রিয়া, ফি লজিক, LP টোকেন মিন্টিং/বার্নিং মেকানিজম, রাউন্ডিং ত্রুটি, স্টেকিং সময়কাল, বাহ্যিক কল এবং মূল্য ম্যানিপুলেশন চেক। 

আমরা নিরীক্ষকদের অডিট স্পেসিফিকেশন ডকুমেন্ট পরীক্ষা করার, কোডের সাথে স্পেসিফিকেশন মেলানোর এবং ফি এবং টোকেনমিক্সের বৈধতা পরীক্ষা করার পরামর্শ দিই। আমরা অতিরিক্ত চেক করার সুপারিশ করি যেমন অ্যারেগুলির উপর লুপ করা, স্ট্রাকট টাইপ ডেটার জন্য মেমরি বা স্টোরেজ নির্দিষ্ট করা এবং সামনের-চলমান পরিস্থিতি। এই নির্দেশিকাগুলি স্টেকিং প্রোটোকলের অডিট করার জন্য উপযোগী হবে এবং সম্ভাব্য বাগ শনাক্ত করতে সাহায্য করবে।


11 মতামত

সময় স্ট্যাম্প:

থেকে আরো কুইল্যাশ