Web3 স্মার্ট চুক্তি নিরাপত্তার জন্য পরীক্ষা এবং আনুষ্ঠানিক যাচাইকরণ

Web3 স্মার্ট চুক্তি নিরাপত্তার জন্য পরীক্ষা এবং আনুষ্ঠানিক যাচাইকরণ

Web3 স্মার্ট চুক্তি নিরাপত্তা PlatoBlockchain ডেটা বুদ্ধিমত্তার জন্য পরীক্ষা এবং আনুষ্ঠানিক যাচাইকরণ। উল্লম্ব অনুসন্ধান. আ.

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

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

1. নিরাপত্তা সবসময় প্রয়োজন.

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

Web3 এর জগত আলাদা নয়। নিজেকে বাঁচানোর জন্য কোনো নিরাপদ পদ্ধতি নেই, কিন্তু QuillAudits-এর অভিজ্ঞ অডিটর থাকা আপনার প্রোটোকলের সুরক্ষিত হওয়ার সম্ভাবনাকে বাড়িয়ে দিতে পারে এবং আপনার আপ-টু-ডেট নিরাপত্তা নিশ্চিত করবে। ওয়েব 3-তে, দুটি গুরুত্বপূর্ণ প্রক্রিয়া রয়েছে যা আপনাকে বুঝতে সাহায্য করে যে আপনার প্রোটোকলের কিছু পরীক্ষা করে আপনি কতটা নিরাপদ:-

  1. স্মার্ট চুক্তি পরীক্ষা
  2. স্মার্ট চুক্তির আনুষ্ঠানিক যাচাইকরণ

আসুন সেগুলিকে বিস্তারিতভাবে বুঝুন এবং শিখি কিভাবে তারা আমাদের চুক্তির দুর্বল দিক বা দুর্বলতাগুলি জানতে সাহায্য করে৷

2. স্মার্ট চুক্তি পরীক্ষা

একজন অভিজ্ঞ ডেভেলপার কোড সহ একটি মেশিনে কাজটি ব্যাখ্যা করতে পারেন। তবুও, কখনও কখনও কোডে ত্রুটি বা যৌক্তিক ত্রুটির কারণে ডেভেলপারের মনে থাকা সঠিক প্রক্রিয়াটি মেশিনটি চিত্রিত করে না। পরীক্ষা হল এমন একটি প্রক্রিয়া যা আমাদের কোড কোথায় ব্যর্থ হচ্ছে তা শনাক্ত করতে সাহায্য করে এবং এটি সম্পাদন করার জন্য আমাদের যে ক্রিয়াটি প্রয়োজন তার সাথে সামঞ্জস্যপূর্ণ করতে কী করা যেতে পারে৷

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

2.1 স্বয়ংক্রিয়

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

2.1.1. কার্যকরী পরীক্ষা

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

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

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

2.1.2। স্ট্যাটিক বিশ্লেষণ

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

2.1.3। গতিশীল বিশ্লেষণ

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

2.2 ম্যানুয়াল

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

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

2.2.1 কোড অডিট:- 

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

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

2.2.2 বাগ বাউন্টি:-

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

3. স্মার্ট চুক্তির আনুষ্ঠানিক যাচাইকরণ

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

3.1 আনুষ্ঠানিক স্পেসিফিকেশন কি?

স্মার্ট চুক্তির পরিপ্রেক্ষিতে, আনুষ্ঠানিক স্পেসিফিকেশনগুলি সেই বৈশিষ্ট্যগুলিকে নির্দেশ করে যা প্রতিটি সম্ভাব্য পরিস্থিতিতে একই থাকতে হবে। এগুলি হল "ইনভেরিয়েন্টস" বৈশিষ্ট্য কারণ এগুলি চুক্তির সম্পাদন সম্পর্কে যৌক্তিক দাবিগুলি পরিবর্তন করতে এবং উপস্থাপন করতে পারে না৷

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

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

3.1.1 স্পেসিফিকেশন

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

// Specification: Adds two numbers
// Inputs: a, b (uint)
// Outputs: the sum of a and b (uint) function add(uint a, uint b) public view returns (uint) {
// Implementation details are not relevant to the specification
// …
}

3.1.2 মডেল

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

// Model: Adds two numbers
// Inputs: a, b (uint)
// Outputs: the sum of a and b (uint) function add(uint a, uint b) public view returns (uint) {
return a + b;
}

3.1.3 যাচাইকরণ ইঞ্জিন

একটি যাচাইকরণ ইঞ্জিন হল একটি টুল যা একটি মডেল বিশ্লেষণ করতে পারে এবং প্রদত্ত স্পেসিফিকেশন সম্পর্কিত এর সঠিকতা যাচাই করতে পারে। স্মার্ট চুক্তির জন্য বেশ কয়েকটি যাচাইকরণ ইঞ্জিন উপলব্ধ রয়েছে, যার মধ্যে রয়েছে:

মিথ্রিল: একটি ওপেন সোর্স সিম্বলিক এক্সিকিউশন টুল যা সলিডিটি স্মার্ট কন্ট্রাক্টে বিস্তৃত নিরাপত্তা দুর্বলতা সনাক্ত করতে পারে।

রিমিক্স আইডিই: একটি সমন্বিত উন্নয়ন পরিবেশ যাতে একটি আনুষ্ঠানিক যাচাইকরণ টুল রয়েছে যা স্মার্ট চুক্তির সঠিকতা যাচাই করতে পারে।

সার্টোরা প্রোভার: একটি বাণিজ্যিক টুল যা স্বয়ংক্রিয় গাণিতিক যুক্তি ব্যবহার করে স্মার্ট চুক্তির সঠিকতা যাচাই করতে পারে। Certora Prover ব্যবহার করে একটি স্মার্ট চুক্তির সঠিকতা যাচাই করতে কীভাবে আনুষ্ঠানিক যাচাইকরণ ব্যবহার করা যেতে পারে তার একটি উদাহরণ এখানে দেওয়া হল:

pragma solidity 0.7.6; // Model: Adds two numbers
// Inputs: a, b (uint)
// Outputs: the sum of a and b (uint)
function add(uint a, uint b) public pure returns (uint) {
return a + b;
} // Model: Adds two numbers
// Inputs: a, b (uint)
// Outputs: the sum of a and b (uint) function add(uint a, uint b) public pure returns (uint) {
return a + b;
} // Specification: Adds two numbers
// Inputs: a, b (uint)
// Outputs: the sum of a and b (uint) function test_add(uint a, uint b) public pure returns (bool) {
uint expected = a + b;
uint actual = add(a, b);
return expected == actual;
} // Verification: Verify the correctness of the add function contract TestAdd {
function test_add(uint a, uint b) public view returns (bool) {
return CertoraProver.verify(test_add, a, b);
}
}

উপরের উদাহরণে, আমরা একটি সলিডিটি স্মার্ট কন্ট্রাক্টকে সংজ্ঞায়িত করি যেটিতে অ্যাড ফাংশনের একটি মডেল, ফাংশনের জন্য একটি স্পেসিফিকেশন এবং একটি ভেরিফিকেশন ইঞ্জিন (Certora Prover) রয়েছে যা ফাংশনের সঠিকতা যাচাই করতে পারে। আমরা একটি পরীক্ষা ফাংশন (test_add) সংজ্ঞায়িত করি যা ফাংশনের সঠিকতা যাচাই করতে ব্যবহার করা যেতে পারে।

3.2 টেস্টিং VS আনুষ্ঠানিক যাচাইকরণ

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

3.3 আনুষ্ঠানিক যাচাইকরণের কৌশল

আনুষ্ঠানিক যাচাই বাড়ানোর জন্য কৌশলের বিস্তৃত সুযোগ রয়েছে স্মার্ট চুক্তি নিরাপত্তা. ব্লগের এই অংশে, আমরা স্বতন্ত্রভাবে কয়েকটি অন্বেষণ করব।

3.3.1 মডেল চেকিং

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

এই কৌশলটি প্রাথমিকভাবে অস্থায়ী বৈশিষ্ট্যগুলি মূল্যায়ন করতে ব্যবহৃত হয় যা সময়ের সাথে স্মার্ট চুক্তির আচরণকে চিত্রিত করে। অ্যাক্সেস নিয়ন্ত্রণ সম্পত্তি (প্রশাসক কলিং আত্মধ্বংস) আনুষ্ঠানিক যুক্তি হিসাবে লেখা যেতে পারে। তারপরে মডেল-চেকিং অ্যালগরিদম যাচাই করতে পারে চুক্তিটি এই আনুষ্ঠানিক যাচাইকে সন্তুষ্ট করে কিনা।

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

3.3.2 উপপাদ্য প্রমাণ

উপপাদ্য প্রমাণ হচ্ছে প্রোগ্রামের সঠিকতার উপর গাণিতিক যুক্তি। এটি চুক্তির সিস্টেম এবং স্পেসিফিকেশনের একটি যৌক্তিক ছাপ তৈরি করে এবং বিবৃতিগুলির মধ্যে "যৌক্তিক সমতা" যাচাই করে। যৌক্তিক সমতা হল একটি গাণিতিক সম্পর্ক যা বলে যে বিবৃতি A সত্য যদি বিবৃতি B সত্য হয়।

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

4. উপসংহার

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

আমরা QuillAudits এ আপনার প্রোটোকল রক্ষা করতে সাহায্য করার জন্য একটি মিশনে আছি। আমাদের দক্ষ এবং অভিজ্ঞ দলের সাথে, আমরা নিশ্চিত করি যে এমনকি একটি দুর্বলতাও নজরে পড়ে না। আমাদের ওয়েবসাইট পরিদর্শন করুন এবং আপনার Web3 প্রকল্প সুরক্ষিত পান!

28 মতামত

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

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