ব্লকের ভেতরে কী থাকে: হেডার, উচ্চতা, সাইজ ও সাবসিডি
একটি ব্লক হলো একটি ছোট, নির্দিষ্ট আকারের হেডার আর ট্রানজ্যাকশনে ভরা একটি বডি। হেডারের ছয়টি ফিল্ড, মাইনিং আসলে কী হ্যাশ করে, আর উচ্চতা ও আকার মানে কী, তা জানুন।
একটি ব্লক কী দিয়ে তৈরি?
একটি ব্লকের দুটি অংশ: একটি হেডার আর একটি বডি। মাইনিং শুধু হেডারটিই হ্যাশ করে।
- বডিতে থাকে ট্রানজ্যাকশনগুলো। চেইন কতটা ব্যস্ত তার ওপর নির্ভর করে এটি কয়েকশো বাইট থেকে কয়েক মেগাবাইট পর্যন্ত হতে পারে।
- হেডার হলো ব্লকের একটি নির্দিষ্ট আকারের সারাংশ। বেশিরভাগ চেইনে এটি ঠিক 80 বাইট।
- মাইনিং শুধু হেডার হ্যাশ করে, আর কিছু নয়।
এই শেষ কথাটিই এই লেখার সবচেয়ে কাজের তথ্য। একজন মাইনার প্রতি সেকেন্ডে শত শত কোটি রূপ চেষ্টা করে। প্রতিটি চেষ্টায় ট্রানজ্যাকশনে ভরা পুরো ব্লক আবার হ্যাশ করতে হলে এটি সম্ভব হতো না। সে শুধু 80 বাইট আবার হ্যাশ করে।
হেডারের ছয়টি ফিল্ড কী কী?
হেডারে ছয়টি ফিল্ড থাকে। প্রতিটিরই একটি কারণ আছে, আর এদের দুটিই বেশিরভাগ কাজ করে।
- ভার্সন।
- আগের ব্লকের হ্যাশ।
- মার্কল রুট, একটি হ্যাশ যা সব ট্রানজ্যাকশনের সারসংক্ষেপ।
- একটি টাইমস্ট্যাম্প।
- ডিফিকাল্টি বিট।
- নন্স, একটি কাউন্টার যা মাইনার বদলাতে পারে।
আগের ব্লকের হ্যাশই একে চেইন বানায়। প্রতিটি হেডার তার আগের ব্লকের নাম বলে। পুরোনো একটি ব্লক নতুন করে লিখলে তার হ্যাশ বদলে যাবে। তাতে পরের হেডার ভেঙে যাবে, তারপর তার পরেরটি, এভাবে একেবারে শেষ ব্লক পর্যন্ত। প্রুফ অফ ওয়ার্কের পুরো নিরাপত্তার যুক্তি এই একটি ফিল্ডেই।
মার্কল রুট বডির সব ট্রানজ্যাকশনের সারসংক্ষেপ। একটি ট্রানজ্যাকশনে মাত্র একটি বাইট বদলালেও মার্কল রুট বদলে যায়। তখন হেডার বদলে যায়, আর এ পর্যন্ত চেষ্টা করা সব হ্যাশ মূল্যহীন হয়ে যায়। এভাবেই 80 বাইট সৎভাবে যেকোনো আকারের ব্লকের প্রতিনিধিত্ব করতে পারে।
ডিফিকাল্টি বিট হলো সেই টার্গেট, সংক্ষিপ্ত আকারে, যার নিচে হ্যাশকে আসতে হবে। টাইমস্ট্যাম্প মোটামুটি বলে ব্লকটি কখন তৈরি হয়েছে, আর এটি আনুমানিক হতে পারে। নন্স হলো সেই ফিল্ড যা মাইনার ইচ্ছামতো বদলাতে পারে। এই স্বাধীনতার জন্যই খোঁজার কাজটি আদৌ সম্ভব হয়।
নন্স ফুরিয়ে গেলে কী হয়?
নন্স একটি ছোট কাউন্টার। একটি আধুনিক মাইনার এর সম্ভাব্য সব মান প্রায় সঙ্গে সঙ্গে শেষ করে ফেলে। এটি কোনো শেষ পথ নয়। নন্স শুধু সবচেয়ে সহজে বদলানো যায় এমন জিনিস, একমাত্র জিনিস কখনোই নয়।
এটি ফুরিয়ে গেলে মাইনার হেডারে যায় এমন অন্য কিছু বদলায়।
- টাইমস্ট্যাম্প সরানো যায়।
- কয়েনবেস ট্রানজ্যাকশন (ব্লকের প্রথম ট্রানজ্যাকশন, নিচে ব্যাখ্যা করা হয়েছে) সামান্য বদলানো যায়। তাতে মার্কল রুট বদলে যায়, আর খোঁজার জন্য একেবারে নতুন একটি হেডার পাওয়া যায়।
পুলে এক্সট্রা নন্স এই কাজেই লাগে। পুল প্রত্যেক মাইনারকে আলাদা একটি শুরুর বিন্দু দেয়। তাই কোনো দুজন মাইনার একই সংখ্যা নিয়ে খাটে না।
ব্লকের উচ্চতা কী?
ব্লকের উচ্চতা হলো একটি ব্লকের আগে কতগুলো ব্লক এসেছে তার সংখ্যা। জেনেসিস ব্লক, অর্থাৎ একেবারে প্রথম ব্লকটির উচ্চতা শূন্য। পরেরটি এক, এভাবে চলতে থাকে। পুলের ব্লক পেজে এবং যেকোনো এক্সপ্লোরারে প্রতিটি এন্ট্রির পাশে এই সংখ্যাটিই থাকে।
উচ্চতা আসলে হেডারে রাখা থাকে না। চেইনে ব্লকটি কোথায় বসে আছে, সেখান থেকেই এটি আসে।
বেশিরভাগ আধুনিক চেইনে উচ্চতা কয়েনবেস ট্রানজ্যাকশনেও লেখা থাকে। এই নিয়ম পরে যোগ করা হয়েছিল, যাতে আলাদা উচ্চতার দুটি ব্লক কখনো বাইটে বাইটে এক না হয়। তবুও একটি ব্লকের উচ্চতার চূড়ান্ত উত্তর হলো চেইনে তার অবস্থান।
কনফার্মেশন গোনার স্বাভাবিক উপায়ও উচ্চতা। ছয় ব্লক গভীরে চাপা পড়া একটি ট্রানজ্যাকশন শেষ ব্লক থেকে ছয় ধাপ নিচের একটি ব্লকে থাকে। প্রতিটি নতুন ব্লক একে নতুন করে লেখা আরও ব্যয়বহুল করে তোলে।
ব্লকের আকার কী মাপে?
ব্লকের আকার মূলত বডির আকার। এর পাশে হেডার নগণ্য। ব্লকের আকারের সীমা মানে কতগুলো ট্রানজ্যাকশন ধরে, হেডারের ব্যাপার নয়।
একটি ভরা ব্লক আর একটি খালি ব্লকে ঠিক একই মাইনিং কাজ লাগে। ডিফিকাল্টি ঠিক করে একটি ব্লক খুঁজে পাওয়া কতটা কঠিন। আকার ঠিক করে ব্লকটি কতটা বহন করে। দুটির মধ্যে কোনো সম্পর্ক নেই, আর দুটিকে গুলিয়ে ফেললে ফি নিয়ে অনেক ভুল ধারণা তৈরি হয়।
তবে আকার ফির বাজারকে প্রভাবিত করে। যত জায়গা আছে তার চেয়ে বেশি ট্রানজ্যাকশন ঢুকতে চাইলে বেশি ফি দেওয়াগুলো আগে ঢোকে। ব্লকের মোট ফি বাড়ে, আর তা সরাসরি ব্লকটি যা দেয় তাতে যোগ হয়।
কয়েনবেস ট্রানজ্যাকশন কী?
প্রতিটি ব্লকের প্রথম ট্রানজ্যাকশনটি বিশেষ। এর কোনো প্রেরক নেই। এটি শূন্য থেকে কয়েন তৈরি করে এবং যে ব্লকটি বানিয়েছে তাকে দেয়।
একে কয়েনবেস ট্রানজ্যাকশন বলে। একই নামের এক্সচেঞ্জের সাথে এর কোনো সম্পর্ক নেই।
এটি ব্লক রিওয়ার্ড দেয়, যার দুটি অংশ।
- সাবসিডি, অর্থাৎ নতুন ইস্যু করা কয়েন। চেইনের ইমিশন সূচি এটি ঠিক করে, আর বেশিরভাগ কয়েনে এটি সময়ের সাথে কমে।
- ব্লকের অন্য সব ট্রানজ্যাকশনের ফি। ব্যবহারকারীরা নিজেদের ট্রানজ্যাকশন ঢোকাতে এগুলো জুড়ে দেন।
পুলে কয়েনবেস পুলকে দেয়। তারপর পুল সেই রাউন্ডে যারা শেয়ার পাঠিয়েছে তাদের মধ্যে রিওয়ার্ড ভাগ করে দেয়। এটি কোনো ঘুরপথ নয়। একটিমাত্র অবিভাজ্য পেমেন্ট হিসেবে আসা রিওয়ার্ড থেকে পুল এভাবেই অনেক মানুষকে পেমেন্ট দেয়।
মাইন করার সময় এটি কেন গুরুত্বপূর্ণ?
ব্লকের গঠন পরিষ্কার হলে তিনটি জিনিস স্পষ্ট হয়ে যায়। তিনটিই বারবার সামনে আসে।
- একটি নতুন ব্লক আপনার কাজকে মুহূর্তেই মূল্যহীন করে দেয়। আগের ব্লকের হ্যাশ বদলে গেছে, তাই যে হেডার আপনি খুঁজছিলেন তার আর অস্তিত্ব নেই। এরপর এর জন্য যা পাঠাবেন তা স্টেল শেয়ার, আর কোনো গতিই এটি ঠিক করতে পারে না।
- পুল আপনাকে প্রায়ই নতুন কাজ পাঠায়। পুল যে প্রতিটি নতুন ট্রানজ্যাকশন ঢোকাতে চায় তা মার্কল রুট বদলে দেয়। নতুন কাজে বেশি ফি থাকে, যার মানে একই পরিশ্রমে বেশি রিওয়ার্ড।
- আয়ের হিসাবে ব্লকের আকার কখনো আসে না। আপনার আয় নির্ভর করে ডিফিকাল্টি, সাবসিডি আর ফির ওপর। বডির বাইটের ওপর নয়।
পুলের ব্লক পেজ প্রতিটি ব্লকের উচ্চতা, তার রিওয়ার্ড এবং কখন পাওয়া গেছে তা দেখায়। ওপরের সব কিছুর কাজের অংশ ওই সারিটিই। বাকিটা এক্সপ্লোরার দেখায়, যার মধ্যে আছে ব্লকটির পেমেন্ট দেওয়া কয়েনবেস ট্রানজ্যাকশন।