হার্ড ফর্কস এবং সফট ফর্কস এর ব্যাখ্যা
সুচিপত্র
ভূমিকা
ব্লকচেইন নেটওয়ার্কে সিদ্ধান্ত কে গ্রহণ করে?
সফট ফর্ক কী?
হার্ড ফর্কস বনাম সফট ফর্কস
হার্ড ফর্কস বনাম সফট ফর্কস – কোনটি ভালো?
শেষ কথা
হোম
নিবন্ধ
হার্ড ফর্কস এবং সফট ফর্কস এর ব্যাখ্যা

হার্ড ফর্কস এবং সফট ফর্কস এর ব্যাখ্যা

প্রকাশিত হয়েছে Nov 29, 2018আপডেট হয়েছে Feb 9, 2023
8m

ভূমিকা

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

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

কেন্দ্রীয় কর্তৃপক্ষ না থাকা সত্ত্বেও কিভাবে ক্রিপ্টোকারেন্সি নেটওয়ার্কগুলোকে আপগ্রেড করা যায় তা এই নিবন্ধে আমরা দেখবো। এটি করার জন্য দুটি ভিন্ন ভিন্ন প্রক্রিয়া ব্যবহার করা হয়: হার্ড ফর্কস এবং সফট ফর্কস। 


ব্লকচেইন নেটওয়ার্কে সিদ্ধান্ত কে গ্রহণ করে?

ফর্কগুলো কিভাবে কাজ করে তা বোঝার জন্য প্রথমে নেটওয়ার্কের সিদ্ধান্ত গ্রহণের প্রক্রিয়ার (বা গভর্নেন্সের) সাথে জড়িত অংশগ্রহণকারীদের বিষয়টি বোঝা গুরুত্বপূর্ণ।

বিটকয়েনে, আপনি অংশগ্রহণকারীদের তিনটি সাবসেটের মধ্যে সামগ্রিকভাবে পার্থক্য করতে পারবেন – ডেভলপার, মাইনার এবং ফুল নোড ব্যবহারকারী। এই টিমগুলোই মূলত নেটওয়ার্কে অংশগ্রহণ করে। লাইট নোড (অর্থাৎ, আপনার ফোন, ল্যাপটপ, ইত্যাদির ওয়ালেটগুলো) ব্যাপকভাবে ব্যবহৃত হলেও নেটওয়ার্কের কথা বিবেচনা করলে এগুলো সত্যিকার "অংশগ্রহণকারী" নয়।


ডেভলপার

ডেভলপাররা কোড তৈরি এবং আপডেট করেন। আপনার প্রচলিত কয়েনের ক্ষেত্রে যেকেউ এই প্রক্রিয়ায় অবদান রাখতে পারে। কোডটি পাবলিকলি উপলভ্য ফলে অন্যান্য ডেভলপারদের দ্বারা পর্যালোচনার জন্য তারা পরিবর্তনগুলো জমা দিতে পারে। 


মাইনার

মাইনাররা নেটওয়ার্ককে সুরক্ষিত রাখে। তারা ক্রিপ্টোকারেন্সির কোড চালায় এবং ব্লকচেইনে নতুন ব্লক যোগ করার জন্য রিসোর্স প্রদান করে। যেমন বিটকয়েন নেটওয়ার্কে এটি তারা প্রুফ-অব-ওয়ার্ক এর মাধ্যমে করে। তাদেরকে ব্লক পুরস্কার আকারে তাদের প্রচেষ্টার জন্য পুরস্কৃত করা হয়।


ফুল নোড ব্যবহারকারী

ক্রিপ্টোকারেন্সি নেটওয়ার্কের মেরুদণ্ড হলো ফুল নোড। এগুলো ব্লক এবং লেনদেন যাচাই করে, পাঠায় ও গ্রহণ করে এবং ব্লকচেইনের একটি কপি রাখে।


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

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

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

ডেভেলপাররা আপনার বাড়িতে ঢুকে আপনাকে বন্দুকের মুখে বিটকয়েন কোর বাইনারি ডাউনলোড করতে বাধ্য করছে না। মাইনাররা ব্যবহারকারীদের উপর অবাঞ্ছিত পরিবর্তন জোরদার করার লক্ষ্যে "আমার মত চলুন নয়ত রাস্তা মাপুন" মনোভাব গ্রহণ করলে ব্যবহারকারীরা আসলে তখন রাস্তাই মাপবে। 

এই টিমগুলো সর্বশক্তিমান কোনো অধিপতি নয় – তারা পরিষেবা প্রদানকারী। মানুষজন নেটওয়ার্ক ব্যবহার করতে না চাইলে কয়েনটি তার মূল্য হারাবে। ভ্যালু হ্রাস হলে তা সরাসরি মাইনারদের প্রভাবিত করে (ডলারে তাদের পুরস্কারের মূল্য কম হয়)। আর ডেভলপারদেরকে ব্যবহারকারীদের একেবারে উপেক্ষাই করতে পারে।

আসলে সফটওয়্যারটি ব্যক্তিগত মালিকানাধীন নয়। আপনি যা করতে চান তা করতে পারেন এবং যদি অন্যরা আপনার পরিবর্তন করা সফ্টওয়্যার চালায় তাহলে আপনারা সকলেই যোগাযোগ করতে পারবেন। সেই ক্ষেত্রে, আপনি সফ্টওয়্যারটি ফর্ক করার মাধ্যমে একটি নতুন নেটওয়ার্ক তৈরি করবেন।


সফট ফর্ক কী?

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

প্রজেক্টগুলোর একটি সাধারণ ভিত্তি এবং ইতিহাস থাকে। ঠিক কোনো একটি রাস্তার মত যা পরে দুই ভাগে বিভক্ত হয়। এরপর থেকে তাদের পথে একটি স্থায়ী ডাইভারজেন্স হয়ে যায়।

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


➟ ক্রিপ্টোকারেন্সি দিয়ে শুরু করতে চাইছেন? Binance-এ বিটকয়েন ক্রয় করুন!


হার্ড ফর্কস বনাম সফট ফর্কস

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


হার্ড ফর্ক কী?

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

আপডেট করার সময় নোডগুলো নীল হয়ে যায়। পুরানো হলুদ নোডগুলো প্রত্যাখ্যান করে আর নীলগুলো একে অপরের সাথে সংযোগ করে।

আপডেট করার সময় নোডগুলো নীল হয়ে যায়। পুরানো হলুদ নোডগুলো প্রত্যাখ্যান করে আর নীলগুলো একে অপরের সাথে সংযোগ করে।


সুতরাং দুটি নেটওয়ার্ক সমান্তরালভাবে চলে। এই দুটোই ব্লক ও লেনদেন প্রোপাগেট করা চালিয়ে যাবে তবে তারা আর একই ব্লকচেইনে কাজ করছে না। সকল নোডেরই ফর্কের আগ পর্যন্ত একটি অভিন্ন ব্লকচেইন ছিল (এবং সেই ইতিহাস রয়ে যায়), কিন্তু ফর্কের পরে ব্লক ও লেনদেন ভিন্ন হবে।

ব্লক 600,000-তে ব্লকচেইন ফর্ক করা।


একই ইতিহাস থাকায় ফর্কের আগে আপনি কোন কয়েন হোল্ড করে থাকলে উভয় নেটওয়ার্কেই আপনার কয়েন থাকবে। ধরুন যে 600,000 ব্লকে একটি ফর্ক হওয়ার সময় আপনার 5 BTC ছিল। আপনি পুরানো চেইনে ব্লক 600,001-এ সেই 5 BTC ব্যয় করতে পারলেও সেগুলো নতুন ব্লকচেইনের ব্লক 600,001-এ ব্যয় করা হয়নি। ক্রিপ্টোগ্রাফি পরিবর্তিত হয়নি এমনটি ধরে নিলে, আপনার প্রাইভেট কী এখনও ফর্ক হওয়া নেটওয়ার্কে পাঁচটি কয়েন হোল্ড করে রেখেছে। 

হার্ড ফর্কের একটি উদাহরণ হলো 2017 সালের ফর্ক যা বিটকয়েনকে দুটি পৃথক চেইনে বিভক্ত করেছে – আসলটি বিটকয়েন (BTC) এবং নতুনটি বিটকয়েন ক্যাশ (BCH)। স্কেলিং করার সর্বোত্তম পদ্ধতির নিয়ে অনেক তর্ক বিতর্কের পরে ফর্ক হয়েছে। বিটকয়েন ক্যাশ প্রবক্তারা ব্লকের আকার বাড়াতে চেয়েছিল আর বিটকয়েন প্রবক্তারা পরিবর্তনের বিরোধিতা করেছিল।

ব্লকের আকার বৃদ্ধির জন্য নিয়মের পরিবর্তন প্রয়োজন হয়। এটি হয়েছিল SegWit সফ্ট ফর্কের আগে (শীঘ্রই এই বিষয়ে বিস্তারিত আলোচনা করা হবে), তাই নোডগুলো শুধুমাত্র 1MB-এর চেয়ে ছোট ব্লকগুলো গ্রহণ করবে। আপনি যদি 2MB-এর কোনো ব্লক তৈরি করেন যা অন্যান্য সকল দিক থেকে বৈধ তবুও অন্যান্য নোডগুলো এটিকে প্রত্যাখ্যান করবে।

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


সফট ফর্ক কী

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

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

তবে, এটি করা মানেই স্বয়ংক্রিয়ভাবে নেটওয়ার্ক থেকে আপনার সংযোগ বিচ্ছিন্ন তা নয়। এই নিয়মগুলো বাস্তবায়ন করছে না এমন নোডগুলোর সাথে আপনি তারপরেও যোগাযোগ করেন তবে আপনি কিছু তথ্য ফিল্টার আউট করেন যা আপনাকে পাস দেয়।

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

এমনকি SegWit অ্যাক্টিভেশনের দুই বছর পরেও সবগুলো নোড আপগ্রেড হয়নি। এটি করার সুবিধা থাকলেও নেটওয়ার্ক-ব্রেকিং পরিবর্তন না হওয়ায় বাস্তবে খুব জরুরি নয়।


এমনকি SegWit অ্যাক্টিভেশনের দুই বছর পরেও সবগুলো নোড আপগ্রেড হয়নি। এটি করার সুবিধা থাকলেও নেটওয়ার্ক-ব্রেকিং পরিবর্তন না হওয়ায় বাস্তবে খুব জরুরি নয়।


হার্ড ফর্কস বনাম সফট ফর্কস – কোনটি ভালো?

মৌলিকভাবে, দুটি ফর্কই ভিন্ন ভিন্ন উদ্দেশ্যে কাজ করে। বিতর্কিত হার্ড ফর্কস কোনো কমিউনিটিকে বিভক্ত করতে পারে কিন্তু পরিকল্পিতগুলো সকলের ঐকমত্যে সফ্টওয়্যার পরিবর্তন করার স্বাধীনতাকে সুযোগ দেয়।

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


শেষ কথা

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

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