ইউনিট
1. ব্লকচেইন এবং ওয়েব3-এ কৃত্রিম বুদ্ধিমত্তার ভূমিকা: ভূমিকা, সীমানা, প্রমাণীকরণ এবং নিরাপত্তা-সমালোচনা 2. স্মার্ট কন্ট্রাক্ট রাইটিং সাপোর্ট: সলিডিটি/ভাইপার ড্রাফট এবং সিকিউর কোড জেনারেশন 3. স্মার্ট চুক্তি নিরীক্ষা সমর্থন: নিরাপত্তা পর্যালোচনা এবং খসড়া ফলাফল 4. দুর্বলতা স্ক্যানিং: সাধারণ দুর্বলতা নিদর্শন এবং স্বয়ংক্রিয় বিশ্লেষণ 5. অন-চেইন ডেটা বিশ্লেষণ: ব্লক, লেনদেন এবং ওয়ালেট ডেটার ধারণা তৈরি করা 6. ডিফাই এবং প্রোটোকল বিশ্লেষণ: তারল্য, এমইভি এবং অর্থনৈতিক আক্রমণ 7. টোকেনমিক মডেলিং: সাপ্লাই, ডিস্ট্রিবিউশন, ইনসেনটিভ এবং সিমুলেশন 8. ডকুমেন্টেশন এবং টেকনিক্যাল রাইটিং: হোয়াইটপেপার, ন্যাটস্পেক এবং ইউজার গাইড 9. জালিয়াতি, রাগ-টান এবং ঝুঁকি সনাক্তকরণ: অন-চেইন লাল পতাকা 10. সেফটি-ক্রিটিকাল অডিট, বিশেষজ্ঞের অনুমোদন এবং দায়িত্বশীল ব্যবহার 11. এন্ড-টু-এন্ড ওয়ার্কফ্লো, শাসন, যাচাইকরণ এবং নীতিশাস্ত্র
ইউনিট 2 / 11

স্মার্ট কন্ট্রাক্ট রাইটিং সাপোর্ট: সলিডিটি/ভাইপার ড্রাফট এবং সিকিউর কোড জেনারেশন

লাভ:

  • প্রমাণিত লাইব্রেরির (যেমন ওপেনজেপেলিন) উপর ভিত্তি করে ফ্রেমওয়ার্ক, পরীক্ষা এবং পর্যালোচনা খসড়া তৈরি করতে কৃত্রিম বুদ্ধিমত্তা ব্যবহার করার ক্ষমতা এবং বুঝতে পারে যে মানুষ উত্পাদন নিরাপত্তার গ্যারান্টি দেয়
  • সংকলন, পরীক্ষা এবং টেস্টনেটের মাধ্যমে কৃত্রিম বুদ্ধিমত্তা দ্বারা উত্পাদিত কোড সংস্করণ, প্যাটার্ন এবং অ্যাক্সেস নিয়ন্ত্রণ যাচাই করার ক্ষমতা
  • এই সংকলনটিকে আলাদা করতে সক্ষম হওয়া মানে নিরাপদ হওয়া নয় এবং টেস্টনেট এবং অডিটিং অপরিহার্য।

একটি স্মার্ট চুক্তি লেখা সাধারণ সফ্টওয়্যার থেকে আলাদা: আপনি যে কোডটি লেখেন তা সর্বজনীন, অপরিবর্তনীয় এবং একটি প্রোগ্রাম যা সরাসরি অর্থ স্থানান্তর করে। এই ইউনিটে, আপনি শিখবেন কিভাবে একটি স্মার্ট চুক্তি উন্নয়ন সহকারী হিসাবে AI ব্যবহার করতে হয়; আমরা ড্রাফ্ট উত্পাদন থেকে পরীক্ষামূলক লেখা, প্যাটার্ন রিকল থেকে গ্যাস (লেনদেন ফি) অপ্টিমাইজেশান পর্যন্ত শিখব। তবে আসুন শুরু থেকেই পরিষ্কার করা যাক: AI ব্লুপ্রিন্ট তৈরি করে; মানুষ নিরাপদ কোড নিশ্চিত করে যা উৎপাদনে যায়।

প্রথম স্থল: ভাষা এবং পরিবেশ

সবচেয়ে সাধারণ স্মার্ট কন্ট্রাক্ট ল্যাঙ্গুয়েজ হল সলিডিটি (Ethereum এবং EVM-এর ভাষা — Ethereum Virtual Machine, ভার্চুয়াল মেশিন যার উপর কন্ট্রাক্ট চলে — সামঞ্জস্যপূর্ণ চেইন)। বিকল্পটি হ'ল ভাইপার (পাইথনের মতো একটি ভাষা যার লক্ষ্য আরও সীমাবদ্ধ এবং পাঠযোগ্য)। আপনার কোড গ্যাস ব্যবহার করে (ব্লকচেইনে প্রতিটি লেনদেনের খরচ); অদক্ষ কোড ব্যয়বহুল। আপনি যে প্রেক্ষাপটে AI-কে দেন সেই পরিপ্রেক্ষিতে এই শর্তগুলি পরিষ্কার রাখা সঠিক আউটপুট পাওয়ার চাবিকাঠি।

যেখানে AI সবচেয়ে মূল্যবান তা "শুরু থেকে লেখা" নয় বরং ফ্রেমওয়ার্ক + ভাল ছাঁচ তৈরিতে: একটি মান-সম্মত শুরু, একটি ব্লুপ্রিন্ট যাতে আপনার দক্ষতা যোগ করা যায়।

কোডিং এ AI ব্যবহার করার স্তর

1. কঙ্কাল তৈরি করা। AI দ্রুত একটি স্ট্যান্ডার্ড টোকেন (ERC-20) বা NFT (ERC-721 — একটি অনন্য ডিজিটাল সম্পদ মান) এর কঙ্কাল তৈরি করে। তবে AI কে একটি প্রমাণিত লাইব্রেরি ব্যবহার করতে ভুলবেন না: উদাহরণস্বরূপ, OpenZeppelin (সম্প্রদায়ের বিশ্বস্ত, নিরীক্ষিত স্ট্যান্ডার্ড চুক্তির লাইব্রেরি)। নিয়ম হল স্ক্র্যাচ থেকে নিরাপত্তা লেখার পরিবর্তে পরীক্ষিত ব্লক ব্যবহার করা।

2. ফাংশন বর্ণনা এবং পর্যালোচনা. AI-তে একটি বিদ্যমান ফাংশন ব্যাখ্যা করা আপনাকে লজিক ত্রুটিগুলি তাড়াতাড়ি চিহ্নিত করতে দেয়।

3. পরীক্ষা প্রজন্ম। এজ কেসগুলির জন্য AI টেস্ট কেস তৈরি করতে ভাল: শূন্য ইনপুট, খুব বড় সংখ্যা, অননুমোদিত কলার, বারবার কল। এটি একটি এড়িয়ে যাওয়া পরিস্থিতিগুলির একটিকে স্মরণ করিয়ে দেয়৷

4. গ্যাস এবং পঠনযোগ্যতা। AI অপ্রয়োজনীয় স্টোরেজ লিখতে এবং বিকল্প প্রস্তাব করার মতো ব্যয়বহুল প্যাটার্নগুলিকে পতাকা দেয়।

ইঙ্গিত: AI কে নির্দেশ দিন "ওপেনজেপেলিনের নিরীক্ষিত চুক্তিগুলি তৈরি করুন, স্ক্র্যাচ থেকে সুরক্ষা পুনরায় লিখুন।" একটি AI এর জন্য একটি পরীক্ষিত লাইব্রেরি ব্যবহার করার চেয়ে আসল সুরক্ষা কোড লেখা অনেক বেশি ঝুঁকিপূর্ণ।

দুর্বল প্রম্পট / শক্তিশালী প্রম্পট

দুর্বল প্রম্পট:

আমাকে একটি টোকেন চুক্তি লিখুন.

এই প্রম্পটটি বিপজ্জনক: কোন স্ট্যান্ডার্ড, কোন চেইন, কোন লাইব্রেরি, কোন নিরাপত্তা প্রয়োজন তা স্পষ্ট নয়। AI এলোমেলো, সম্ভবত পুরানো বা অনিরাপদ কোড তৈরি করে।

শক্তিশালী প্রম্পট:

আপনার ভূমিকা: সিনিয়র সলিডিটি বিকাশকারী। একটি EVM সামঞ্জস্যপূর্ণ চেইনের জন্য একটি ERC-20 টোকেন ড্রাফ্ট তৈরি করুন৷ নিয়ম:- ওপেনজেপেলিনের নিরীক্ষিত ERC20 এবং মালিকানাযোগ্য চুক্তির উপর ভিত্তি করে।- সলিডিটি সংস্করণ এবং লাইসেন্স (SPDX) লাইনটি স্পষ্টভাবে লিখুন।- শুধুমাত্র মালিকেরই মিন্ট করার অনুমতি আছে; অসীম চাপের বিরুদ্ধে একটি ক্যাপ যোগ করুন। - প্রতিটি ফাংশনে NatSpec মন্তব্য যোগ করুন। - স্ক্র্যাচ থেকে নিরাপত্তা লিখুন; স্ট্যান্ডার্ড ব্লক ব্যবহার করুন। - শেষে একটি সতর্কতা যোগ করুন: "এটি একটি খসড়া; নিরীক্ষা এবং পরীক্ষা প্রয়োজন"। আপনি যে অঞ্চলগুলি সম্পর্কে নিশ্চিত নন সেগুলিকে চিহ্নিত করুন // TODO৷

পার্থক্য: শক্তিশালী প্রম্পট স্পষ্ট ভূমিকা, মান, লাইব্রেরি, নিরাপত্তা সীমানা, ডকুমেন্টেশন এবং বৈধতা প্রত্যাশা দেয়।

চারটি অনুলিপিযোগ্য টেমপ্লেট

1) মান ভিত্তিক কঙ্কাল:

আপনার ভূমিকা: সলিডিটি বিকাশকারী। OpenZeppelin নিরীক্ষিত লাইব্রেরির উপর ভিত্তি করে [ERC-20 / ERC-721 / staking] চুক্তি কাঠামো তৈরি করুন। এসপিডিএক্স লাইসেন্স এবং প্রাগমা সংস্করণ লিখুন। প্রতিটি বাহ্যিক ফাংশনে অ্যাক্সেস নিয়ন্ত্রণ (কে কল করতে পারে) যোগ করুন। নিরাপত্তা পুনরায় উদ্ভাবন; স্ট্যান্ডার্ড ব্লক ব্যবহার করুন। এটি একটি খসড়া।

2) ফাংশন পর্যালোচনা:

একজন সিনিয়র ডেভেলপারের মতো নিম্নলিখিত ফাংশনটি পরীক্ষা করুন: এটি কী করে, এটি কোন অবস্থার পরিবর্তন করে, কে এটিকে কল করতে পারে? সম্ভাব্য লজিক ত্রুটি এবং নিরাপত্তা ঝুঁকিগুলিকে হাইপোথিসিস হিসাবে চিহ্নিত করুন, প্রতিটি কোডের একটি লাইনের সাথে লিঙ্ক করুন৷ সরাসরি "নিরাপদ" বলবেন না; শুধু মনোযোগের পয়েন্ট তালিকা.

3) পরীক্ষার দৃশ্যের খসড়া:

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

4) গ্যাস এবং পঠনযোগ্যতা পর্যালোচনা:

এই চুক্তিতে, প্যাটার্নগুলি চিহ্নিত করুন যা গ্যাস খরচ কমাতে পারে: অপ্রয়োজনীয় স্টোরেজ লেখা, লুপে বহিরাগত কল, পুনরাবৃত্তিমূলক গণনা। প্রতিটি পরামর্শের আগে/পরে পার্থক্য ব্যাখ্যা করুন। নিরাপত্তা-ব্রেকিং অপ্টিমাইজেশান সুপারিশ; যদি এটি পরিষ্কার না হয়, তাহলে বলুন "অডিটরকে জিজ্ঞাসা করুন"।

তিনটি ছোট মামলা (সংখ্যায়)

কেস 1 - কঙ্কাল 4 ঘন্টা সংরক্ষিত। একটি দল 30 মিনিটের মধ্যে AI এর সাথে একটি নিরীক্ষিত লাইব্রেরি-ভিত্তিক ভেস্টিং চুক্তির কঙ্কাল খনন করে; এটি ম্যানুয়ালি ~4 ঘন্টা সময় নিয়েছে। দলটি নিরাপত্তা ও পরীক্ষার জন্য সময় দিয়েছে। লাভটি নিরাপত্তা স্থানান্তর থেকে নয়, বরং ক্লান্তিকর কাঠামোর গতি বাড়ানোর মাধ্যমে এসেছে।

কেস 2 - পুরানো সংস্করণ ফাঁদ। AI একটি প্যাটার্ন তৈরি করেছে যা স্থানান্তরের মাধ্যমে কাঁচা ইথার পাঠায়, যা আর সুপারিশ করা হয় না কারণ প্রশিক্ষণের ডেটা পুরানো। বিকাশকারী এটি লক্ষ্য করেছেন এবং এটিকে বর্তমান কল-ভিত্তিক এবং পুনঃপ্রবেশ-সুরক্ষিত প্যাটার্নে পরিবর্তন করেছেন। পাঠ: AI এর লাইব্রেরি/প্যাটার্ন সর্বদা আপ টু ডেট বলে নিশ্চিত করা হয়; এআই ট্রেনিং কাটঅফ তারিখের বাইরে জানে না।

কেস 3 - টেস্ট ড্রাফ্ট লুকানো বাগ পপ করেছে। AI উত্পাদিত "অননুমোদিত কলার" পরীক্ষাটি প্রকাশ করেছে যে বিকাশকারী একটি ফাংশনে অ্যাক্সেস নিয়ন্ত্রণ ভুলে গেছেন। শুধুমাত্র মালিক 1 লাইন অনুপস্থিত, টেস্টনেটে 5 মিনিটের মধ্যে ধরা পড়েছে; মেইননেটে তহবিলের ক্ষতি হতে পারে। পাঠ: AI পরীক্ষায় মানুষের অন্ধ স্থান কভার করে।

AI এর সাথে নিরাপত্তা প্যাটার্ন মনে রাখা

চেকলিস্টের মতো পরিচিত দুর্বলতার নিদর্শনগুলি আপনাকে মনে করিয়ে দিতে AI ভাল। সবচেয়ে সাধারণ নিদর্শন:

  • রিএন্ট্রান্সি: স্ট্যাটাস আপডেট না করেই একটি বাহ্যিক কল করা। সমাধান: চেক-ইফেক্ট-ইন্টার্যাকশন অর্ডার, রিএন্ট্রান্সি গার্ড।
  • অ্যাক্সেস নিয়ন্ত্রণের অভাব: যে কেউ সমালোচনামূলক ফাংশনকে কল করতে পারে।
  • পূর্ণসংখ্যা ওভারফ্লো/আন্ডারফল: আধুনিক সলিডিটি তাদের বেশিরভাগকে ধরে রাখে, তবে নিম্ন-স্তরের কোডে এখনও ঝুঁকি রয়েছে।
  • অপর্যাপ্ত ইনপুট বৈধতা: শূন্য ঠিকানা, শূন্য পরিমাণ নিয়ন্ত্রণ।
  • ওরাকল নির্ভরতা: বাহ্যিক ডেটার উপর অন্ধ বিশ্বাস (যেমন দাম)।
মনোযোগ: AI এই তালিকাটি প্রত্যাহার করতে পারে, তবে তালিকার একটি আইটেম আপনার নির্দিষ্ট কোডে আছে কিনা তা নিশ্চিত করতে পারে না। চেকলিস্ট একটি শুরু; এটি ধারক নিয়ন্ত্রণের জন্য একটি প্রতিস্থাপন নয়।

প্রসঙ্গটি সঠিকভাবে পাওয়া: AI থেকে ভাল কোডের গোপনীয়তা

AI যে কোডটি তৈরি করে তার গুণমান সরাসরি নির্ভর করে আপনি যে প্রসঙ্গটি দিয়েছেন তার মানের উপর। Web3 তে এটি বিশেষভাবে গুরুত্বপূর্ণ কারণ একটি ছোট বিবরণ (কোন চেইন, কোন সলিডিটি সংস্করণ, কোন টোকেন স্ট্যান্ডার্ড) পুরো আউটপুট পরিবর্তন করে। একটি ভাল প্রসঙ্গ অন্তর্ভুক্ত:

  • টার্গেট চেইন এবং পরিবেশ: ইথেরিয়াম মেইননেট বা একটি লেয়ার 2 (সস্তা সাইডচেইন যা মেইনচেনের উপরে চলে)? গ্যাস খরচ এবং কিছু বৈশিষ্ট্য চেইন দ্বারা পরিবর্তিত হয়।
  • সংস্করণ এবং লাইব্রেরি: কোন সলিডিটি সংস্করণ, কোনটি ওপেনজেপেলিন সংস্করণ? যদি কোন সংস্করণ নির্দিষ্ট করা না থাকে, তাহলে AI পুরানো, অবচয়িত নিদর্শন তৈরি করতে পারে।
  • নিরাপত্তা প্রয়োজনীয়তা: একটি ক্যাপ আছে, এটি কি বিরতি দেওয়া যেতে পারে, এটি বাড়ানো যেতে পারে? এগুলো প্রথম থেকেই বলা উচিত।
  • সীমাবদ্ধতা: পরিষ্কার সীমা যেমন "এসেম্বলি ব্যবহার করবেন না", "বাহ্যিক কল এড়িয়ে চলুন", "গ্যাস অপ্টিমাইজ করুন কিন্তু পঠনযোগ্যতা বজায় রাখুন"।

আরেকটি শক্তিশালী কৌশল হল প্রথমে প্ল্যানের জন্য AI কে জিজ্ঞাসা করা, তারপর কোড: "প্রথমে এই চুক্তির কাজগুলি তালিকাভুক্ত করুন এবং প্রতিটি কী করবে; আমি এটি অনুমোদন করার পরে কোডটি লিখুন।" এটি AI কে ভুল দিকে যাচ্ছে তা তাড়াতাড়ি ধরা দেয় এবং আপনাকে আর্কিটেকচারাল সিদ্ধান্ত ধরে রাখতে দেয়।

ইঙ্গিত: এআইকে জিজ্ঞাসা করুন "কেন আপনি এই কোডটি এভাবে লিখেছেন?" জিজ্ঞাসা যৌক্তিকতা ব্যাখ্যা করা উভয়ই আপনার শেখার গতি বাড়াবে এবং কোনো যৌক্তিক ত্রুটি (যেমন একটি মিথ্যা নিরাপত্তা অনুমান) পৃষ্ঠে আনবে। একটি AI এর আউটপুটকে বিশ্বাস করবেন না যা তার নিজস্ব কোড রক্ষা করতে পারে না।

সাধারণ ভুল

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

সংক্ষেপে

  • স্মার্ট কন্ট্রাক্ট রাইটিং এ, এআই ফ্রেমওয়ার্ক, টেস্ট এবং রিভিউ ড্রাফ্ট তৈরি করে; মানুষ উৎপাদন নিরাপত্তা নিশ্চিত করে।
  • স্ক্র্যাচ থেকে নয় বরং প্রমাণিত লাইব্রেরির উপর ভিত্তি করে নিরাপত্তা তৈরি করুন (যেমন OpenZeppelin)।
  • YZ দ্বারা উত্পাদিত সংস্করণ এবং নিদর্শনগুলির আপ-টু-ডেটনেস সর্বদা নিশ্চিত করা হয়।
  • টেস্ট স্টাবগুলি মানুষের অন্ধ দাগগুলি ক্যাপচার করার জন্য মূল্যবান (সীমিত ক্ষেত্রে, অ্যাক্সেস নিয়ন্ত্রণ)।
  • সংকলিত হওয়া মানে নিরাপদ হওয়া নয়; testnet এবং অডিটিং একটি আবশ্যক.

আবেদন টাস্ক

একটি সাধারণ ERC-20 টোকেনের জন্য, উপরে "স্ট্যান্ডার্ড-ভিত্তিক কঙ্কাল" প্রম্পট ব্যবহার করে একটি খসড়া তৈরি করুন। তারপর: (1) এটি একটি চেক করা লাইব্রেরি ব্যবহার করে কিনা তা পরীক্ষা করুন, (2) অ্যাক্সেস নিয়ন্ত্রণগুলি পরীক্ষা করুন, (3) "টেস্ট কেস ড্রাফ্ট" প্রম্পট সহ পরীক্ষাগুলি তৈরি করুন এবং প্রকৃতপক্ষে কমপক্ষে একটি দুর্বৃত্ত-কলার পরীক্ষা চালান৷ AI মিস করা অন্তত একটি নিরাপত্তা পয়েন্ট খুঁজুন এবং নোট করুন।

চেকলিস্ট

  • [ ] আমি স্পষ্টভাবে প্রম্পটে স্ট্যান্ডার্ড এবং চেইন উল্লেখ করেছি।
  • আমি প্রমাণিত লাইব্রেরি-ভিত্তিক উত্পাদন চেয়েছিলাম।
  • [ ] SPDX লাইসেন্স এবং প্রাগমা সংস্করণ উপলব্ধ।
  • প্রতিটি গুরুত্বপূর্ণ ফাংশনে অ্যাক্সেস নিয়ন্ত্রণ রয়েছে।
  • [ ] আমি সীমার ক্ষেত্রে পরীক্ষা তৈরি করেছি এবং চালিয়েছি।
  • [ ] আমি নিশ্চিত করেছি যে লাইব্রেরি/প্যাটার্ন আপ টু ডেট।
  • [ ] আমি অডিট এবং পরীক্ষার জন্য কোড চিহ্নিত করেছি; আমি মেইননেটে এটিকে তত্ত্বাবধানে পাইনি।