ব্লকচেইন-ভিত্তিক প্রকল্পগুলি যে লক্ষ্যগুলি অর্জন করে তা হল ডেটা যাচাইকরণ। লাইভ উদাহরণের জন্য, আপনি ডিজিটাল পরিচয় এবং অনলাইন ডকুমেন্ট স্টোরেজ এবং চেক দেখতে পারেন। প্রকৃতপক্ষে, এই সমস্ত ক্ষেত্রে যেকোনও ব্যক্তি বা সত্তাকে নিশ্চিত করার জন্য অ্যাকশন/লেনদেনের সূচনাকারীর যাচাইকরণের প্রয়োজন হয়। উদাহরণস্বরূপ, যদি ব্যক্তির কাছে আইডি নথির ডিজিটাল ফর্ম থাকে তবে মালিকানা নিশ্চিত করা গুরুত্বপূর্ণ হয়ে ওঠে। সুতরাং এটি ডেটা যাচাইযোগ্যতার সমস্যার একটি চমৎকার উদাহরণ। আসুন সমাধানের সহজতম রূপটি পর্যালোচনা করি — একটি ডিজিটাল স্বাক্ষর, যার পরীক্ষা স্মার্ট-কন্ট্রাক্ট ডেভেলপমেন্টের সময় একটি গুরুত্বপূর্ণ পয়েন্ট।
পদ্ধতিটি সহজ:
1) সিস্টেম প্রত্যেকের জন্য পরিচিত নিয়ম দ্বারা একটি বার্তা তৈরি করে
2) স্বাক্ষরকারী বার্তাটি পান এবং প্রতীকগুলির একটি নির্দিষ্ট সেট যোগ করেন — ডিজিটাল স্বাক্ষর, একটি ব্যক্তিগত কী দ্বারা বার্তা থেকে নির্মিত কোড
3) উত্পন্ন স্বাক্ষর এখন চুক্তিতে পাঠানো হয়, যেখানে স্বাক্ষরকারীর ঠিকানা পুনরুদ্ধার করার জন্য এটি পচে যায়।
সলিডিটি আপনাকে স্বাক্ষর তৈরি এবং আরও পচনের জন্য ECDSA অ্যালগরিদম অফার করে। আমাদের অ্যালগরিদমে গভীরভাবে ডুব দেওয়ার দরকার নেই (আপনি প্রয়োজনীয় তথ্য পেতে পারেন উপযুক্ত সূত্রে) আমাদের যা জানা দরকার তা হল ECDSA হল অপ্রতিসম ক্রিপ্টোগ্রাফির একটি উদাহরণ, যেখানে প্রথম ব্যবহারকারী তাদের ব্যক্তিগত কী দিয়ে একটি স্বাক্ষর তৈরি করে এবং দ্বিতীয় ব্যবহারকারী স্বাক্ষরকারীর সর্বজনীন কী পুনরুদ্ধার করার জন্য একটি আদর্শ অ্যালগরিদম প্রয়োগ করে। সুতরাং, এটি স্বাক্ষরের উত্স যাচাই করতে পারে। পরিবর্তে, আসুন ব্যবহারিক অংশে ফোকাস করি — স্বাক্ষর ব্যবহার এবং পরীক্ষা।
প্রথমত, আমাদের একটি সমস্যা চিনতে হবে। উদাহরণ স্বরূপ, চুক্তির কিছু ক্রিয়া সম্পাদন করতে হবে, ধরা যাক, কলারের ঠিকানা সংরক্ষণ করুন। যদিও কলার যাচাই করা হলেই চুক্তির স্টোরেজ সঞ্চালন করা উচিত, আমাদের নিশ্চিত হতে হবে যে কেউ অনুমতি ছাড়া তাদের ঠিকানা ব্যবহার করতে পারবে না। প্রামাণিক কলার পুনরুদ্ধার করতে, আমাদের কিছু বার্তা তৈরি করতে হবে, এটিতে স্বাক্ষর করতে হবে এবং চুক্তির মধ্যে এটিকে পচতে হবে।
আপনি খুঁজে পেতে পারেন সলিডিটি ডকুমেন্টেশনে স্ট্যান্ডার্ড সমাধান (উদাহরণ স্বরূপ, 0.8.4 তে — নিবন্ধের মুহূর্তে সর্বশেষ স্থিতিশীল সংস্করণ)। দস্তাবেজগুলি আমাদের চুক্তির প্রস্তাব দেয়, যার জন্য নিম্নলিখিত অন্তর্নির্মিত কার্যকারিতা প্রয়োজন: বার্তা তৈরি, স্বাক্ষর বিভাজন, এবং স্বাক্ষরকারীকে পুনরুদ্ধার করার জন্য সমাবেশ কোড৷ উদাহরণটি সমস্ত প্রয়োজনীয় পদ্ধতি দেখায় এবং এটি বেশ সহজবোধ্য, যদিও এর দুটি অসুবিধা রয়েছে: এতে সর্বজনীনতার অভাব রয়েছে এবং সমাধান পরীক্ষার কোনও ভাল উদাহরণ নেই। এই কারণেই আমি কোডের আমার সংস্করণ এবং (প্রকৃত লক্ষ্য) — চুক্তির পরীক্ষার কৌশল প্রদান করি।
অবশ্যই, আপনি ব্যবহার করতে পারেন আদর্শ ওপেনজেপেলিন লাইব্রেরি ECDSA ক্রিয়াকলাপগুলির জন্য, কিন্তু আপনি আবার একই সমস্যার সম্মুখীন হবেন — নমনীয়তা এবং পরীক্ষার পদ্ধতির অভাব। সুতরাং, আসুন আমার স্বাক্ষর-ভিত্তিক যুক্তির উদাহরণে ডুব দেওয়া যাক। আপনি সম্পূর্ণ খুঁজে পেতে পারেন আমার গিটহাবে কাজের উদাহরণ, কিন্তু কিছু জায়গা আছে যা আমি সম্পূর্ণরূপে দেখাতে চাই৷
প্রথমত, আমরা বার্তা প্রস্তুত করব। আপনি দেখতে পাচ্ছেন, এটি দুটি প্যাক করা এবং হ্যাশ করা ওয়ালেট ঠিকানা থেকে গঠিত:
কোডের দ্বিতীয় গুরুত্বপূর্ণ অংশটি হল স্ট্যান্ডার্ড ইথেরিয়াম বার্তার সাথে বার্তাটিকে হ্যাশ করা:
এটি দেখায় যে বার্তাটি ইথেরিয়াম নেটওয়ার্কের মধ্যে পাঠানো হয়েছিল এবং এর দৈর্ঘ্য 32-বাইট, যা একটি র্যান্ডম সংখ্যা নয়। পূর্ববর্তী ক্রিয়াকলাপগুলির পরে, আমাদের কাছে হ্যাশ রয়েছে, যার দৈর্ঘ্য 32-বাইট রয়েছে। এই ধরনের আকারে অতিরিক্ত হ্যাশিং ফাংশন থাকা অপরিহার্য, এবং আমরা একটু পরে যুক্তি নিয়ে আলোচনা করব।
অন্যান্য কোড টুকরা বেশ মান. স্বাক্ষর বিভক্ত করার ফাংশনটি নিম্নরূপ:
এবং এখানে স্বাক্ষরকারী পুনরুদ্ধার করার ফাংশন:
বাহ্যিক ইন্টারফেসের জন্য, আমরা কাস্টম ফাংশন ব্যবহার করব, যা স্বাক্ষর এবং প্রয়োজনীয় আর্গুমেন্ট গ্রহণ করে, ব্যবহারকারী ইতিমধ্যে নিবন্ধিত কিনা তা পরীক্ষা করে, বার্তা গঠন করে এবং স্বাক্ষর যাচাই করে:
প্রথমত, আমরা সেই বার্তাটি অনুকরণ করব যা স্বাক্ষর করতে হবে। আমরা ব্যবহার করবো ethers.js লাইব্রেরি, যা (একসাথে web3) সবচেয়ে ব্যবহৃত এবং সুবিধাজনক লাইব্রেরি। যেহেতু এটি একটি ওপেন সোর্স লাইব্রেরি, তাই আপনি অন্বেষণ করতে পারবেন এর কোড এবং ডক্স. এছাড়াও, এই লাইব্রেরি আমাদের নিম্নলিখিত বার্তা নির্মাণের জন্য নিখুঁত ইন্টারফেস দেয়:
উভয়ের একটি কনস web3 এবং ethers লাইব্রেরি হল যে তাদের স্থানীয় Ganache পরিবেশের জন্য সমস্ত ফাংশন নেই যেহেতু উভয় লাইব্রেরি সম্পূর্ণ Ethererum নোডের সাথে কাজ করার লক্ষ্যে। তবুও, স্থানীয় পরীক্ষার জন্য একটি পদ্ধতি আছে web3-অ্যাকাউন্ট কার্যকারিতা. যদিও আপনাকে একটি অতিরিক্ত অ্যাকাউন্ট তৈরি করতে হবে, যা গায়ক কার্যকারিতা বাস্তবায়ন করবে এবং বর্তমান ওয়েব3 প্রদানকারীর সাথে একটি সংযোগ প্রদান করবে:
সুতরাং, এখন আমরা বার্তা তৈরি এবং স্বাক্ষর করেছি। কিন্তু, এটাই সব কিছু নয়; কিছু কথা বলার বাকি আছে। হুডের অধীনে উভয় লাইব্রেরি (ওয়েব3 এবং ইথার) স্বাক্ষর তৈরির আগে বার্তাটির অতিরিক্ত হ্যাশিং প্রদান করে। এছাড়াও, বার্তাটি কেবল হ্যাশ করা হয় না তবে আমরা আগে দেখেছি এমন স্ট্যান্ডার্ড ইথেরিয়াম বার্তার সাথে মিলিত হয়:
আর এজন্যই আমরা চুক্তিতে অতিরিক্ত পদ্ধতি যোগ করেছি। সুতরাং, আপনি যদি কাস্টম বার্তাগুলি ব্যবহার করতে চান, অতিরিক্ত হ্যাশিং এড়িয়ে যান, ইত্যাদি, আপনাকে সাইনিং কার্যকারিতার একটি কাস্টম সংস্করণ তৈরি করতে হবে৷ আমরা উপরে কারণ আলোচনা করেছি — উভয় স্ট্যান্ডার্ড লাইব্রেরি বার্তা স্বাক্ষর করার জন্য সাধারণ পদ্ধতি প্রয়োগ করে, যা শুধুমাত্র কার্যকারিতা ওভাররাইড করে পরিবর্তন করা যেতে পারে।
শেষ ধাপ হিসাবে, আসুন পরীক্ষাটি চালান এবং এটি সঠিকভাবে কাজ করে কিনা তা পরীক্ষা করে দেখুন:
আমরা স্বাক্ষর তৈরি, বার্তা তৈরি, স্বাক্ষর অনুমোদন এবং প্রত্যাখ্যান পরীক্ষা করেছি। সুতরাং এটি যাচাইকরণ কার্যকারিতার জন্য পরীক্ষার একটি সুন্দর সম্পূর্ণ সেট।
- হিসাব
- কর্ম
- অতিরিক্ত
- অ্যালগরিদম
- সব
- আর্গুমেন্ট
- প্রবন্ধ
- খাঁটি
- বিট
- মামলা
- চেক
- কোড
- চুক্তি
- ক্রিপ্টোগ্রাফি
- বর্তমান
- উপাত্ত
- উন্নয়ন
- ডিজিটাল
- ডিজিটাল পরিচয়
- কাগজপত্র
- পরিবেশ
- ethereum
- ইথেরিয়াম নেটওয়ার্ক
- মুখ
- প্রথম
- নমনীয়তা
- কেন্দ্রবিন্দু
- ফর্ম
- বিনামূল্যে
- সম্পূর্ণ
- ক্রিয়া
- ভাল
- কাটা
- হ্যাশ
- HTTPS দ্বারা
- ia
- পরিচয়
- তথ্য
- IP
- IT
- চাবি
- সর্বশেষ
- লাইব্রেরি
- স্থানীয়
- মধ্যম
- নেটওয়ার্ক
- নোড
- অর্পণ
- অফার
- অনলাইন
- খোলা
- ওপেন সোর্স
- অপারেশনস
- ব্যক্তিগত
- ব্যক্তিগত কী
- প্রকল্প
- প্রকাশ্য
- পাবলিক কী
- এখানে ক্লিক করুন
- চালান
- সেট
- সহজ
- So
- ঘনত্ব
- বিভক্ত করা
- স্টোরেজ
- দোকান
- কৌশল
- পদ্ধতি
- পরীক্ষা
- পরীক্ষামূলক
- পরীক্ষা
- উৎস
- us
- প্রতিপাদন
- মানিব্যাগ
- উইকিপিডিয়া
- মধ্যে
- হয়া যাই ?
- কাজ