ہارڈ فورکس اور سافٹ فورکس کی وضاحت
امواد کا جدول
تعارف
بلاک چین نیٹ ورک میں فیصلہ سازی کون کرتا ہے؟
فورک کیا ہے؟
ہارڈ فورکس بمقابلہ۔ سافٹ فورکس
ہارڈ فورکس بمقابلہ۔ سافٹ فورکس – کون سا بہتر ہے؟
اختتامی خیالات
ہارڈ فورکس اور سافٹ فورکس کی وضاحت
ہومآرٹیکلز
ہارڈ فورکس اور سافٹ فورکس کی وضاحت

ہارڈ فورکس اور سافٹ فورکس کی وضاحت

جدید
شائع کردہ Nov 29, 2018اپڈیٹ کردہ Apr 6, 2022
8m

تعارف

جب آپ کو اپنے اسمارٹ فون پراپنی ڈیجیٹل بینکنگ ایپ کو اپڈیٹ کرنے کی ہدایت دی جاتی ہے، تو آپ شاید دوسری بار سوچتے تک نہیں ہیں۔ ہو سکتا ہے کہ آپ کا فون آپ کے نوٹس کیے بغیر خود کار طور پر اپڈیٹ کرتا ہو۔ آخر کار، یہ ایک ضروری عمل ہے – اگر آپ سافٹ ویئر کا تازہ ترین ورژن انسٹال نہیں کرتے، تو آپ کو اس کی سروسز تک رسائی سے مسترد کر دیے جانے کا خطرہ ہوتا ہے۔

اوپن سورس کرپٹو کرنسیز میں، چیزیں بہت مختلف ہیں۔ آپ کو کوڈ کی ہر وہ لائن پڑھنے کی ضرورت نہیں جو Bitcoin کے استعمال کے لیے اسے تقویت دیتی ہے، لیکن ایسا کرنے کا انتخاب رکھنا اہم ہے۔ آپ دیکھیں، یہاں کوئی درجہ بندی نہیں ہے، اور کوئی بینک نہیں جو کہ اپڈیٹس کو بڑھا سکے اور چیزوں کو اپنی منشاء کے مطابق تبدیل کر سکے۔ نتیجتاََ، بلاک چین نیٹ ورکس میں نئی خصوصیات کا اطلاق چیلنج بن سکتا ہے۔
اس آرٹیکل میں، ہم جانیں گے کہ کسی مرکزی اتھارٹی کی کمی کے باوجود، کرپٹو کرنسی نیٹ ورکس کیسے اپ گریڈ کیے جا سکتے ہیں۔ ایسا کرنے کے لیے، وہ دو مختلف میکانزمز استعمال کرتے ہیں: ہارڈ فورکس اور سافٹ فورکس۔ 


بلاک چین نیٹ ورک میں فیصلہ سازی کون کرتا ہے؟

یہ سمجھنے کے لیے کہ فورکس کیسے کام کرتے ہیں، پہلے نیٹ ورک کی فیصلہ سازی (یا گورننس) کے عمل میں ملوث شرکاء کو سمجھنا ضروری ہے۔
Bitcoin میں، آپ کھل کر شرکاء کے تین ذیلی سیٹس کے درمیان امتیاز کر سکتے ہیں – ڈویلپرز، مائنرز، اور مکمل نوڈ صارفین۔ یہ وہ فریقین ہیں جو دراصل نیٹ ورک میں حصہ ڈالتے ہیں۔ لائٹ نوڈز (جیسا کہ، آپ کے فون پر والیٹس، لیپ ٹاپس، وغیرہ) بکثرت استعمال ہوتے ہیں، لیکن جہاں تک نیٹ ورک کا تعلق ہے تو وہ واقعی "شرکاء" نہیں ہیں۔


ڈویلپرز

ڈویلپرز کوڈ کو تخلیق اور اپڈیٹ کرنے کے ذمہ دار ہیں۔ آپ کے روایتی کوائن کے لیے، اس عمل میں کوئی بھی حصہ ڈال سکتا ہے۔ کوڈ عوامی طور پر دستیاب ہے، اس لیے وہ تبدیلیوں کو جمع کروا سکتے ہیں تاکہ دوسرے ڈویلپرز اس پر نظرثانی کر سکیں۔ 


مائنرز

مائنرز وہ ہوتے ہیں جو نیٹ ورک کو تحفظ فراہم کرتے ہیں۔ وہ کرپٹو کرنسی کا کوڈ چلاتے ہیں اور بلاک چین میں نئے بلاکس کو شامل کرنے کے لیے وسائل مختص کرتے ہیں۔ مثال کے طور پر، Bitcoin نیٹ ورک میں، وہ ایسا بذریعہ پروف آف ورک کرتے ہیں۔ انہیں ان کی کوششوں کا صلہ بلاک کے انعام کی شکل میں دیا جاتا ہے۔


مکمل نوڈ کے صارفین

مکمل نوڈز کرپٹو کرنسی نیٹ ورک کی ریڑھ کی ہڈی ہیں۔ وہ بلاکس اور ٹرانزیکشنز کی توثیق، ترسی؛، اور وصولی کا کام کرتے ہیں اور بلاک چین کی کاپی برقرار رکھتے ہیں۔


آپ ان زمرہ جات میں اکثر اوورلیپ پائیں گے۔ مثال کے طور پر، آپ کوئی ڈویلپر اور مکمل نوڈ صارف، یا کوئی مائنر اور مکمل نوڈ صارف بن سکتے ہیں۔ آپ تینوں ہو سکتے ہیں یا کچھ بھی نہیں۔ درحقیقت، بہت سے افراد جن کو ہم کرپٹو کرنسی صارفین سمجھتے ہیں، ان میں سے کوئی بھی کردار ادا نہیں کرتے۔ اس کے بجائے، وہ لائٹ نوڈز یا مرکزی سروسز استعمال کرنے کا انتخاب کرتے ہیں۔

درج بالا وضاحتوں کو دیکھتے ہوئے، آپ نیٹ ورک کے لیے فیصلہ ساز ڈویلپرز اور مائنرز کے لیے مضبوط توجیہات فراہم کر سکتے ہیں۔ ڈویلپرز کوڈ تخلیق کرتے ہیں – ان کے بغیر، آپ کے پاس چلانے کے لیے کوئی سافٹ ویئر نہیں ہو گا اور نہ ہی ٓبگز کو دور کرنے یا نئی خصوصیات شامل کرنے کے لیے کچھ موجود ہو گا۔ مائنرز نیٹ ورک کو محفوظ بناتے ہیں – ایک صحت مند مائننگ کے مقابلے کے بغیر، چین ہائی جیک ہو سکتی ہے، یا یہ رفتہ رفتہ رک سکتی ہے۔
اگر ان دو زمرہ جات نے باقی کے نیٹ ورک کو اپنی مرضی پر عمل کرنے کے لیے مجبور کرنے کی کوشش کی، تو اس کا انجام اچھا نہیں ہو گا۔ بہت سے لوگوں کے لیے، حقیقی طاقت مکمل نوڈز میں مرکوز ہے۔ یہ بڑی حد تک نیٹ ورک کے انتخاب کا فنکشن ہے، یعنی کہ صارفین انتخاب کر سکتے ہیں کہ وہ کون سا سافٹ ویئر چلا رہے ہیں۔ 

ڈویلپرز آپ کے گھر میں داخل نہیں ہو رہے اور نہ ہی آپ پر بندوق کی نوک پر Bitcoin Core ڈاؤن لوڈ کرنے کا دباؤ ڈال رہے ہیں۔ اگر مائنرز صارفین پر ایک ان چاہی تبدیلی مسلط کرنے کے لیے "میری رائے ورنہ بائے" کا رویہ اپناتے ہیں، تو، صارفین صرف بائے بائے کا ہی انتخاب کریں گے۔ 

یہ فریقین مکمل طور پر طاقت ور سرداران نہیں ہیں – یہ صرف سروس کے فراہم کنندگان ہیں۔ اگر لوگ نیٹ ورک استعمال نہ کرنے کا فیصلہ کرتے ہیں، تو کوائن اپنی مالیت کھو دے گا۔ مالیت کا نقصان مائنرز پر براہ راست اثرانداز ہوتا ہے (ان کے انعمات ڈالرز میں نامزد ہونے پر بے مول ہو جاتے ہیں)۔ جہاں تک ڈویلپرز کی بات ہے، تو صارفین انہیں صرف نظر انداز ہی کر سکتے ہیں۔
آپ دیکھیں، ایسا نہیں کہ سافٹ ویئر ملکیتی حیثیت رکھتا ہے۔ آپ جو بھی ایڈٹ کرنا چاہیں کر سکتے ہیں، اور، اگر دیگر لوگ آپ کا ترمیم کردہ سافٹ ویئر چلاتے ہیں، تو آپ تمام بات چیت کر سکتے ہیں۔ اس صورت میں، آپ سافٹ ویئر کو فورک کرتے ہیں اور اس عمل میں نیا نیٹ ورک تخلیق کرتے ہیں۔


فورک کیا ہے؟

سافٹ ویئر فورک اس مقام پر واقع ہوتی ہے جہاں سافٹ ویئر کو کاپی یا اس میں ترمیم کی جاتی ہے۔ اصل پراجیکٹ جاری رہتا ہے، لیکن اب یہ نئے والے سے الگ کر دیا جاتا ہے، جو کہ مختلف سمت اپناتا ہے۔ فرض کریں کہ آپ کی پسندیدہ کرپٹو کرنسی مواد کی ویب سائٹ کا اس بات سے ایک بڑا اختلاف رہا تھا کہ آگے کیسے بڑھا جائے۔ ٹیم کا ایک حصہ ایک مختلف ڈومین پر سائٹ کی نقل تیار کر سکتا ہے۔ لیکن آگے بڑھتے ہوئے، وہ اصل سے مختلف قسم کا مواد پوسٹ کریں گے۔

پراجیکٹس عمومی بنیاد پر قائم ہوتے ہیں اور ان کی ہسٹری مشترکہ ہوتی ہے۔ بالکل ایک سیدھی سڑک کی طرح جو آگے جا کر دو میں تقسیم ہو جاتی ہے، اب ان کے راستوں میں مستقل تضاد ہوتا ہے۔

نوٹ کر لیں کہ اس قسم کی چیز اوپن سورس پراجیکٹس میں بہت زیادہ وقوع پذیر ہوتی ہے، اور Bitcoin یا Ethereum کے ظاہر ہونے سے پہلے ایک لمبے عرصے سے وقوع پذیر ہوتی رہی ہیں۔ تاہم، ہارڈ فورکس اور سافٹ فورکس کے درمیان امتیاز ایک بلاک چین اسپیس کے لیے تقریباََ مخصوص ہے۔ آئیں ان پر کچھ مزید بات چیت کرتے ہیں۔



ہارڈ فورکس بمقابلہ۔ سافٹ فورکس

ایک جیسے نام اور حتمی طور پر ایک ہی جیسے مقصد کے باجود، ہارڈ فورکس اور سافٹ فورکس نمایاں طور پر مختلف ہیں۔ آئیں ہر ایک کو ایک نظر دیکھتے ہیں۔


ہارڈ فورک کیا ہے؟

ہارڈ فورکس تاریخی اعتبار سے-غیر مطابقت پذیر سافٹ ویئر اپڈیٹس ہیں۔ عموماََ، یہ اس وقت وقوع پذیر ہوتی ہیں جب نوڈز نئے اصولوں کو ایسے طریقے سے شامل کرتے ہیں جو پرانے نوڈز کے اصولوں سے متصادم ہوتے ہیں۔ نئے نوڈز صرف نئے ورژن آپریٹ کرنے والے دیگر نوڈز سے بات چیت کر سکتے ہیں۔ نتیجتاََ، بلاک چین دو الگ نیٹ ورکس تخلیق کرتے ہوئے، تقسیم ہو جاتی ہے: ایک پرانے اصولوں کے ساتھ، اور ایک نئے اصولوں کے ساتھ۔۔

نوڈز اپڈیٹ ہونے کے بعد نیلے رنگ میں تبدیل ہو جاتے ہیں۔ پرانے پیلے نوڈز ان کو مسترد کر دیتے ہیں، جبکہ نیلے والے ایک دوسرے سے مربوط ہو جاتے ہیں۔


پس اب دو نیٹ ورکس متوازی چل رہے ہیں۔ وہ دونوں بلاکس کو پھیلانے اور ٹرانزیکشنز کے عمل کو جاری رکھیں گے، لیکن اب مزید وہ ایک ہی بلاک چین پر کام نہیں کر رہے۔ تمام نوڈز فورک کے مقام تک ایک جیسی بلاک چین کے حامل تھے (اور یہ ہسٹری یوں ہی رہے گی)، لیکن بعد ازاں ان کے بلاکس اور ٹرانزیکشنز مختلف ہوں گی۔


کیونکہ وہ شیئر کردہ ہسٹری ہے، تو اس صورت میں دونوں نیٹ ورکس پر آپ کا اختتام کوائنز کے ساتھ ہو گا اگر یہ فورک سے پہلےہی آپ کے ہولڈ میں موجود تھے۔ فرض کریں کہ اس وقت آپ کے پاس 5 BTC تھے جب بلاک 600,000 پر ایک فورک وقوع پذیر ہوا۔ آپ ان 5 BTC کو پرانی چین پر بلاک 600,001 میں خرچ کر سکتے ہیں، لیکن وہ نئی بلاک چین کے بلاک 600,001 میں خرچ نہیں کیے گئے۔ فرض کریں کہ کرپٹو کرنسی تبدیل نہیں ہوئی، آپ کی نجی کلیدوں کے پاس فورک شدہ نیٹ ورک پر ابھی بھی پانچ کوائنز ہیں۔ 
ہارڈ فورک کی مثال 2017 کا وہ فورک تھا جس نے Bitcoin کو دو الگ چینز میں بٹا دیکھا – اصل والی، Bitcoin (BTC)، اور نئی والی، Bitcoin کیش (BCH)۔ فورک اسکیلنگ کی بہترین روش پر ایک طویل بحث کے بعد وقوع پذیر ہوا۔ Bitcoin کیش کے حامی بلاک سائز میں اضافہ چاہتے تھے، جبکہ Bitcoin کے حامیوں نے اس تبدیلی کی مخالفت کی۔

بلاک سائز میں اضافے کے لیے اصولوں میں ترمیم درکار ہوتی ہے۔ یہ SegWit سافٹ فورک سے پہلے کی بات ہے (اس پر مزید تفصیل جلد پیش کی جائے گی)، اس لیے نوڈز صرف 1MB سے چھوٹے سائز کے بلاکس کو قبول کریں گے۔ اگر آپ نے 2MB کا کوئی بلاک تخیلق کیا تھا جو کہ بصورت دیگر جائز تھا، تو دیگر نوڈز پھر بھی اس کو مسترد کریں گے۔

صرف وہ نوڈز جو 1MB سے زائد سائز کے بلاکس کو قبول کرنے کے لیے اپنا سافٹ ویئر تبدیل کر چکے ہیں، ان بلاکس کو قبول کر سکتے ہیں۔ یقیناََ، وہ ان کو پرانے ورژن کے ساتھ غیر مطابقتی بنا دے گا، لہذا صرف ایک جیسی پروٹوکول ترامیم والے نوڈز ہی بات چیت کر سکتے ہیں۔


سافٹ فورک کیا ہے

سافٹ فورک تاریخی اعتبار سے-مطابقت پذیر اپ گریڈ ہے، جس کا مطلب ہے کہ اپ گریڈ شدہ نوڈز اب بھی غیر اپ گریڈ شدہ نوڈز سے بات چیت کر سکتے ہیں۔ سافٹ فورک میں عموماََ آپ ایسے نئے اصولوں کا اضافہ دیکھتے ہیں جو کہ پرانے اصولوں کے ساتھ متصادم نہیں ہوتے۔
مثلاََ، بلاک سائز میں کمی کا نفاذ سافٹ فورک کے ذریعے کیا جا سکتا ہے۔ آئیں اس پوائنٹ کی عکاسی کے لیے ایک بار پھر Bitcoin کی طرف چلیں: اگرچہ اس کی ایک حد ہے کہ بلاک کتنا بڑا ہو سکتا ہے، تاہم یہ کتنا چھوٹا ہو سکتا ہے، اس کی کوئی حد نہیں۔ اگر آپ صرف ایک خاص سائز سے نیچے بلاکس کو قبول کرنا چاہتے ہیں، تو آپ کو صرف بڑے بلاکس کو مسترد کرنا ہو گا۔

تاہم، ایسا کرنا آپ کو نیٹ ورک سے خود کار طور پر منقطع نہیں کرتا۔ آپ اب بھی ان نوڈز سے بات چیت کرتے ہیں جو کہ ان اصولوں کو نافذ نہیں کر رہے، لیکن آپ ان کی پاس کردہ معلومات میں سے کچھ کو فلٹر کر دیتے ہیں۔

حقیقی زندگی سے سافٹ فورک کی ایک اچھی مثال مذکورہ بالا علیحدہ گواہ (SegWit) فورک تھا، جو کہ Bitcoin/Bitcoin کیش کی تقسیم کے فوراََ بعد وقوع پذیر ہوا۔ SegWit ایک ایسی اپڈیٹ تھی جس نے بلاکس کا فارمیٹ اور ٹرانزیکشنز کو تبدیل کر دیا، لیکن یہ ہوشیاری سے تشکیل دی گئی تھی۔ پرانے نوڈز ابھی بھی بلاکس اور ٹرانزیکشنز کی توثیق کر سکتے ہیں (فارمیٹنگ نے اصولوں کو نہیں توڑا)، لیکن وہ ان کو سمجھ نہیں پائیں گے۔ کچھ فیلڈز صرف تب پڑھنے کے قابل ہوتی ہیں جب نوڈز نئے سافٹ ویئر پر سوئچ کرتے ہیں، جو ان کو اضافی ڈیٹا کا تجزیہ کرنے کی اجازت دیتا ہے۔


SegWit فعالی کے دو سال بعد تک بھی، تمام نوڈز اپ گریڈ نہیں ہوئے ہیں۔ ایسا کرنے کے فوائد ہیں، لیکن کوئی حقیقی فوری ضرورت نہیں ہے کیونکہ نیٹ ورک کو توڑنے والی کوئی تبدیلی نہیں ہے۔


ہارڈ فورکس بمقابلہ۔ سافٹ فورکس – کون سا بہتر ہے؟

بنیادی طور پر، فورکس کی درج بالا دونوں اقسام مختلف مقاصد انجام دیتی ہیں۔ متنازعہ ہارڈ فورکس کمیونٹی کو تقسیم کر سکتے ہیں، لیکن منصوبہ بند فورکس ہر ایک کے اتفاق کے ساتھ سافٹ ویئر میں ترمیم کی آزادی کی اجازت دیتے ہیں۔

سافٹ فورکس ایک نرم آپشن ہیں۔ عمومی طور پر، آپ اس حوالے سے مزید محدود ہو جاتے ہیں کہ آپ کیا کچھ کر سکتے ہیں کیونکہ آپ کی نئی تبدیلیاں پرانے اصولوں سے متصادم نہیں ہو سکتیں۔ یعنی کہ، اگر آپ کی اپڈیٹ کواس انداز میں تشکیل دیا سکتا ہو کہ یہ مطابقت برقرار رکھے، تو آپ کو نیٹ ورک کو حصوں میں تقسیم کے بارے میں پریشان ہونے کی ضرورت نہیں۔


اختتامی خیالات

ہارڈ فورکس اور سافٹ فورکس بلاک چین نیٹ ورکس کی طویل مدتی کامیابی کے لیے ناگزیر ہیں۔ وہ ہمیں مرکزی اتھارٹی کی کمی کے باوجود، غیر مرکزی سسٹمز میں تبدیلیاں اور اپ گریڈز کرنے کی اجازت دیتے ہیں۔

فورکس بلاک چینز اور کرپٹو کرنسیز میں ان کی تخلیق کے دوران ہی نئی خصوصیات کے انضمام کو ممکن بناتے ہیں۔ ان میکانزمز کے بغیر، ہمیں ٹاپ-ڈاؤن کنٹرول کے ساتھ مرکزی سسٹم کی ضرورت ہو گی۔ بصورت دیگر، ہم پروٹوکولز کے لیے ساری زندگی انہیں اصولوں کو لے کر پھنسیں رہیں گے۔