
এটি একটিতে অন্য একটি নিবন্ধ সিরিজ বিভিন্ন চুক্তির প্রস্তাবগুলিতে, গভীর বিভাজনের জন্য পরিপক্কতার পর্যায়ে পৌঁছেছে গভীর ডাইভার্স।
চেকসিগফ্রোমস্ট্যাক (সিএসএফএস), বিআইপি 348 সহ ব্র্যান্ডন ব্ল্যাক এবং জেরেমি রুবিন কোনও চুক্তি নয়। যেমনটি আমি এই সিরিজের প্রারম্ভিক নিবন্ধে বলেছি, আমি যে প্রস্তাবগুলি কভার করছি তা চুক্তিগুলি নয়, তবে কোনওভাবে তাদের সাথে সমন্বয় বা মিথস্ক্রিয়া। সিএসএফএস এর প্রথম উদাহরণ।
সিএসএফএস একটি খুব সাধারণ ওপকোড, তবে এটি কীভাবে কাজ করে তা আমরা এটির মধ্য দিয়ে যাওয়ার আগে, বিটকয়েন স্ক্রিপ্টটি আসলে কীভাবে কাজ করে তার মূল বিষয়গুলি দেখুন।
স্ক্রিপ্টটি একটি স্ট্যাক ভিত্তিক ভাষা। এর অর্থ হ’ল ডেটা একই সাথে স্ট্যাকের একে অপরের উপর “স্ট্যাকড” করা হয় এবং স্ট্যাকের শীর্ষ থেকে একটি আইটেম সরানো হয়, যা অপটাল ভিত্তিতে পরিচালনা করা হয়, হয় ডেটা রিটার্ন বা ফলাফল স্ট্যাকের শীর্ষে।
স্ক্রিপ্টটি দুটি অংশ নিয়ে গঠিত যখন এটি শেষ পর্যন্ত কার্যকর করা হয় এবং যাচাই করা হয়, স্ক্রিপ্টটি আনলক করার জন্য “সাক্ষী” সরবরাহ করা হয় এবং আউটপুটটিতে জড়িত স্ক্রিপ্টটি ব্যয় করা হচ্ছে। সাক্ষী/আনলকিং স্ক্রিপ্টটি লকিং স্ক্রিপ্টের বামে “যুক্ত” করা হয় এবং তারপরে প্রতিটি উপাদান একে একে একে একে একে একে একে একে একে একে একে একে একে একে একে একে একে একে একে একে একে একে একে একে একে একে একে একেনিক করে যুক্ত করা হয়। এই উদাহরণটি দেখুন (“,“সাক্ষী এবং স্ক্রিপ্টের মধ্যে পরিসীমা চিহ্নিত করে):
1 2 , Op_add 3 op__equal
এই উদাহরণটি স্ক্রিপ্ট স্ট্যাকের “1” মান যুক্ত করে, তারপরে এর উপরে “2” মান। Op_add স্ট্যাকের শীর্ষ দুটি উপাদান নিয়ে যায় এবং তাদের একত্রিত করে ফলাফলটি স্ট্যাকের দিকে ফিরিয়ে দেয় (সুতরাং এখন এটি সমস্ত স্ট্যাক “3” এ রয়েছে)। তারপরে আরেকটি “3” স্ট্যাকটিতে যুক্ত করা হয়। চূড়ান্ত আইটেম, op_equal, স্ট্যাকের শীর্ষটি দুটি আইটেম নেয় এবং স্ট্যাকের উপর “1” রিটার্ন করে (1 এবং 0 সঠিক বা ভুল সহ সংখ্যার প্রতিনিধিত্ব করতে পারে)।
একটি স্ক্রিপ্ট অবশ্যই স্ট্যাকের শীর্ষে চূড়ান্ত আইটেমটি দিয়ে শেষ করতে হবে, অন্যথায় স্ক্রিপ্ট (এবং লেনদেনগুলি এটি সম্পাদন করে) ব্যর্থ হয় এবং এটি সর্বসম্মতভাবে অবৈধ হিসাবে বিবেচিত হয়।
এটি পে-টু-পুবকি স্ক্রিপ্টের একটি প্রাথমিক উদাহরণ, অর্থাৎ heritage তিহ্যের ঠিকানাগুলি যা “1” দিয়ে শুরু হয়:
<सिग्नेचर>
প্রথম স্বাক্ষর এবং পাবলিক কী স্ট্যাকটিতে যুক্ত করা হয়। তারপরে ডুপ নামে পরিচিত, যিনি শীর্ষ স্ট্যাক আইটেমটি নেন এবং এটি নকল করে, স্ট্যাকের শীর্ষে ফিরে আসে। HASH160 শীর্ষ স্ট্যাক আইটেমটি নেয় (পাবলিক কী ডুপ্লিকেট), এটি হ্যাশ করে, তারপরে এটি স্ট্যাকের শীর্ষে ফিরে আসে। স্ক্রিপ্ট থেকে পাবলিক কী হ্যাশটি স্ট্যাকের উপরে স্থাপন করা হয়েছে। সমানভাবে একই হিসাবে, এটির মতো, এটি দুটি শীর্ষ স্ট্যাক আইটেম ধরে এবং ফলাফলের উপর নির্ভর করে 1 বা 0 ফেরত দেয়। পার্থক্যটি হ’ল ইসওয়ালভিফও এর পরে যাচাই করাও চালায়, যা শীর্ষ স্ট্যাক আইটেম 1 নয়, এবং শীর্ষ স্ট্যাক আইটেমটিও সরিয়ে দেয়। অবশেষে চেকসিগটি চালানো হয়, যা শীর্ষ দুটি স্ট্যাক আইটেম ধারণ করে, যা তাদের একটি স্বাক্ষর এবং একটি পাবকেআই হিসাবে বিবেচনা করে এবং লেনদেনের হ্যাশের বিরুদ্ধে স্বাক্ষরটি স্পষ্টভাবে যাচাই করে। যদি এটি বৈধ হয় তবে এটি স্ট্যাকের উপরে 1 টি রাখে।
সিএসএফএস কীভাবে কাজ করে
চেকসিগ বিটকয়েনের মধ্যে সর্বাধিক ব্যবহৃত অপকোডগুলির মধ্যে একটি। প্রতিটি লেনদেন, প্রায় কোনও ব্যতিক্রম, এর কোনও স্ক্রিপ্টগুলির কোনও বিন্দুতে এই ওপকোড ব্যবহার করে। স্বাক্ষর যাচাইকরণ বিটকয়েন প্রোটোকলের একটি মৌলিক উপাদান। সমস্যাটি হ’ল এই প্রসঙ্গে প্রায় কোনও নমনীয়তা নেই যার বিরুদ্ধে আপনি স্বাক্ষরটি পরীক্ষা করছেন। চেকসিগ কেবল লেনদেনের যাচাইকরণের বিরুদ্ধে একটি স্বাক্ষর যাচাই করবে। কিছু নমনীয়তা রয়েছে, অর্থাৎ আপনি স্বাক্ষরের কোন অংশে কিছু স্বাধীনতার সাথে সিদ্ধান্ত নিতে পারেন, তবে এটিই কেস।
সিএসএফএসের উদ্দেশ্য হ’ল লেনদেনের বিরুদ্ধে স্বাক্ষরের যাচাইকরণের মধ্যে সীমাবদ্ধ থাকার পরিবর্তে কোনও স্বেচ্ছাসেবী বার্তার বিরুদ্ধে স্বাক্ষর যাচাই করার অনুমতি দিয়ে এটিকে প্রতিস্থাপন করা। ওপকোড একটি খুব বেসিক অপারেশনাল কাঠামো অনুসরণ করে:
<हस्ताक्षर> <संदेश> ,
স্বাক্ষর এবং বার্তাটি স্ট্যাকের উপরে ফেলে দেওয়া হয়, তারপরে তাদের উপর সর্বজনীন কী এবং অবশেষে সিএসএফএস স্ট্যাক থেকে শীর্ষ তিনটি আইটেম ধারণ করে, যা তাদের পাবলিক কী, বার্তা এবং শীর্ষ থেকে নীচে থেকে স্বাক্ষর হিসাবে বিবেচনা করে, বার্তার বিরুদ্ধে স্বাক্ষর যাচাই করে। যদি স্বাক্ষরটি বৈধ হয় তবে 1 টি স্ট্যাকের উপরে রাখা হয়।
এটাই। চেকসিগের একটি সাধারণ সংস্করণ ব্যবহারকারীদের কেবল লেনদেনের পরিবর্তে স্বেচ্ছাসেবী বার্তা নির্দিষ্ট করতে দেয়।
সিএসএফএসের জন্য কী দরকারী
তাহলে আসলে কি ভাল? ব্যয় লেনদেনের বিরুদ্ধে স্ট্যাকের উপর একটি স্বেচ্ছাসেবী বার্তার বিরুদ্ধে স্বাক্ষর পরীক্ষা করার ব্যবহার কী?
প্রথমত, সিটিভির সংমিশ্রণে এটি এমন একটি কার্যকারিতা সরবরাহ করতে পারে যা বৈদ্যুতিক বিকাশকারীরা প্রথম থেকেই চেয়েছিল, ভাসমান স্বাক্ষর যা বিভিন্ন লেনদেনে জড়িত থাকতে পারে। এটি মূলত স্বাক্ষরের জন্য একটি নতুন সিনাউন পতাকা হিসাবে প্রস্তাবিত হয়েছিল (এমন অঞ্চল যা কোনও লেনদেনের অংশগুলিতে কোন স্বাক্ষর প্রয়োগ করা হয় তা স্থির করে)। এটি প্রয়োজনীয় ছিল কারণ একটি লেনদেন স্বাক্ষর লেনদেনের লেনদেন আইডি কভার করে যা আউটপুটে ব্যয় করা হচ্ছে। এর অর্থ হ’ল একটি স্বাক্ষর কেবলমাত্র একটি লেনদেন ব্যয়ের জন্য বৈধ নিখুঁত আউটপুট
এটি বিদ্যুতের জন্য একটি কাঙ্ক্ষিত আচরণ কারণ এটি আমাদের শাস্তি সহ চ্যানেলটি সরিয়ে ফেলতে দেয়। আপনার চ্যানেল বিরোধীরা কখনই তাদের কোনও ব্যবহার করে না তা নিশ্চিত করার জন্য পূর্ববর্তী প্রতিটি আলোকিত অবস্থার জন্য জরিমানা এবং লেনদেনের প্রয়োজন হয়, যা তারা যে তহবিল দাবি করে তা দাবি করার চেষ্টা করে। যদি তারা চেষ্টা করে তবে আপনি তাদের সমস্ত অর্থ দাবি করতে পারেন। একটি আরও ভাল কার্যকারিতা এমন কিছু হবে যা আপনাকে পূর্ববর্তী কোনও রাষ্ট্রের লেনদেনকে “সংযুক্ত” করতে দেয়, যা পূর্ববর্তী যে কোনওটিকে দখল করতে এবং সেগুলি সঠিকভাবে দখল করার প্রতিবাদ করে।
এটি একটি বেসিক স্ক্রিপ্ট দিয়ে সম্পন্ন করা যেতে পারে যা একটি সিটিভি আইএসএইচ এবং এটিতে একটি স্বাক্ষর নেয় যা সিএসএফএস ব্যবহার করে পরীক্ষা করা হয়। এটি কোনও লেনদেনকে সিএসএফএস কী দ্বারা স্বাক্ষর করার অনুমতি দেবে যা এই স্ক্রিপ্টটি দিয়ে তৈরি কোনও আউটপুট ব্যয় করে।
আর একটি দরকারী বৈশিষ্ট্য হ’ল একটি ইউটিএক্সও নিয়ন্ত্রণের একটি প্রতিনিধি। সিএসএফএস কী দ্বারা স্বাক্ষরিত কোনও সিটিভি যেভাবে বৈধভাবে সেই স্ক্রিপ্টের সাথে একটি ইউটিএক্সও ব্যয় করতে পারে, অন্যান্য ভেরিয়েবলগুলি স্ক্রিপ্টে যেমন নতুন পাবলিক কী পাস করা যেতে পারে। একটি স্ক্রিপ্ট তৈরি করা যেতে পারে যা একটি সিএসএফএস কী সাইন অফ করতে দেয় যে কোনও পাবলিক কী, যা তখন সিএসএফএস ব্যবহার করে বৈধ করা যায় এবং একটি সাধারণ চেকক্যাগ যাচাইয়ের জন্য ব্যবহৃত হয়। এটি আপনাকে চেইন না চালিয়ে অন্য কারও কাছে ব্যয় করার ক্ষমতা হস্তান্তর করার অনুমতি দেবে।
অবশেষে, ক্যাট এর সাথে সংমিশ্রণে, সিএসএফ আরও জটিল অন্তঃসত্ত্বা কার্যকারিতা তৈরি করতে ব্যবহার করা যেতে পারে। যেমনটি আমরা পরে সিরিজে দেখতে পাব, তবে, সিএসএফএসকে এই আরও উন্নত আচরণের কোনওটির অনুকরণ করার দরকার নেই, কারণ ক্যাট একা এটি করতে সক্ষম।
সমাপ্তি ধারণা
সিএসএফএস একটি খুব বেসিক অপকোড যা নিজের মধ্যে সাধারণ দরকারী কার্যকারিতা সরবরাহের পাশাপাশি খুব দরকারী কার্যকারিতা তৈরি করতে সহজতম চুক্তি ওপকোডের সাথে এটি খুব ভাল করে তোলে। ভাসমান স্বাক্ষর সম্পর্কে উপরের উদাহরণটি বিশেষত আলোকিত নেটওয়ার্ককে বোঝায়, ভাসমান স্বাক্ষরগুলি একটি সাধারণভাবে দরকারী আদিম যা বিটকয়েনে উত্পাদিত যে কোনও প্রোটোকলগুলিতে প্রাক-সম্পাদিত লেনদেন ব্যবহার করে।
ভাসমান স্বাক্ষর ছাড়াও, স্ক্রিপ্ট প্রতিনিধি একটি খুব দরকারী আদিম আদিম যা একটি নতুন পাবলিক কী জন্য একটি ইউটিএক্সওর উপর নিয়ন্ত্রণকে স্বাভাবিক করে তোলে। “সাইডেলোড” ভেরিয়েবলের একই মূল ক্ষমতা কেবল পাবলিক কীতে নয়, যে কোনও কিছুর জন্য প্রযোজ্য। টাইমলক মানগুলি, হালোকের প্রিমিডিস ইত্যাদি Vary যে কোনও স্ক্রিপ্ট যা একটি পরিবর্তনশীল যাচাই করার জন্য একটি ভেরিয়েবলকে হার্ডকোড করে, এখন সেই মানগুলি সত্যের পরে গতিশীলভাবে যুক্ত করা যেতে পারে।
শীর্ষে, সিএসএফএস একটি খুব পরিপক্ক প্রস্তাব। এটি একটি বাস্তবায়ন রয়েছে যা তরল নেটওয়ার্ক এবং উপাদানগুলিতে লাইভ হয়েছে (কোডবেস তরল ব্যবহার করে) 2016 সাল থেকেএছাড়াও বিটকয়েন নগদ এক সংস্করণ 2018 সাল থেকে।
সিএসএফএস একটি খুব পরিপক্ক অফার যা আমি এই জায়গায় না আসা পর্যন্ত আদর্শিকভাবে ফিরে যায়, অনেকগুলি পরিপক্ক বাস্তবায়ন সহ, এবং খুব স্পষ্ট ব্যবহারের ক্ষেত্রে প্রয়োগ করা যেতে পারে।