TL;DR
- ایتھریم ڈویلپرز نے ایک گلامسٹرڈ فکس کو مربوط کر دیا، جب انہوں نے ایسی فورک-ٹرانزیشن منطق تلاش کر لی جو ویلیڈیٹر ڈپازٹس کو ایک ہی پبلک کی کے ساتھ شیئر کرنے والے بِلڈرز کو رُٹ کر سکتی تھی۔
- خرابی نے Gloas کے آن بورڈنگ کو متاثر کیا، جہاں بیلڈر اور ویلیڈیٹر رجسٹریز کے تشکیل کے دوران منتظر ڈپازٹس کو غلط طور پر درج کیا جا سکتا تھا، لیکن یہ ایک لائیو مین نیٹ ایکسپلوٹ نہیں تھا۔
- پول ریکسٹ #5736 اب ڈپازٹ راؤٹنگ کو ویلیڈیٹر کریڈنٹیلز کے مطابق الگ کرتا ہے، اس کی قطار میں ویلیڈیٹر ڈپازٹس کو برقرار رکھتا ہے، اور ڈیپلویمنٹ سے پہلے ریگریشن ٹیسٹس شامل کرتا ہے۔
ایتھریم ڈویلپرز نے گلامسٹرڈ کے لیے ایک مطابقت کی تعریف کا فکس مربوط کر دیا، جب انہوں نے ایک گلواس فورک-آن بورڈنگ بگ کی شناخت کی جو ویلیدیٹر ڈپازٹس کو ایک ہی عوامی کلید شیئر کرنے والے بلاک بیلڈرز کو رُٹ کر سکتا تھا۔ Pull request #5736 کو 26 اکتوبر کو ماسٹر میں مربوط کر دیا گیا اور اس نے فورک کے دوران منتظر ڈپازٹس کو درج کرنے کا طریقہ تبدیل کر دیا۔ یہ خامی ایتھریم کے مستقبل کے اپگریڈ کے لیے ٹرانزیشن منطق کو متاثر کرتی تھی، نہ کہ موجودہ مین نیٹ پروٹوکول کو، جس سے مسئلہ Ethereum کے لیے ترقی اور ٹیسٹنگ کے راستے تک محدود رہا۔
Gloas Fix ویلیڈیٹر اور بیلڈر ڈپازٹ راستوں کو الگ کرتا ہے
بنیادی مسئلہ اس لمحے سے متعلق تھا جب Gloas اپنا الگ builder registry شروع کرتا ہے۔ پچھلے روتنگ قاعدے کے تحت، جب ایک منتظر ڈپازٹ ایک بیلڈر رجسٹر کرتا، تو اسی عوامی کلید کا استعمال کرنے والی بعد کی ڈپازٹس اس بیلڈر کا باقیہ بیلنس بڑھا سکتی تھیں، چاہے ان کے نکالنے کے اہلیت کے مطابق ہوں یا نہ ہوں۔ اس طرح، ایک ویلیدیٹر ڈپازٹ ویلیدیٹر کی قطار سے باہر نکل سکتا تھا اور ایک بیلڈر کو کریڈٹ کر دیا جا سکتا تھا۔ یہ خرابی ایک شرطی راستہ پیدا کرتی تھی جہاں اسٹیکنگ کے لیے فراہم کردہ فنڈز کسی دوسرے طرف کے کنٹرول والے اکاؤنٹ تک پہنچ سکتے تھے۔

مسئلہ کی تفصیل ایک سٹیکنگ پروٹوکول کے ذریعہ دوسرے طرف کے آپریٹر کے ذریعہ چلائے جانے والے ویلیڈیٹر کو فنڈ کرنے کے خطرے کو ظاہر کرتی ہے۔ اگر آپریٹر نے پہلے ایک درست بِلڈر ڈپازٹ اسی کلید کا استعمال کرتے ہوئے قیوم میں ڈال دیا اور دونوں ڈپازٹس فورک پر معلق رہ گئے، تو پروٹوکول فنڈڈ ویلیڈیٹر ڈپازٹ بھی بِلڈر کو جا سکتا تھا۔ اس ڈپازٹ سے کوئی ویلیڈیٹر نہیں بنے گا، جس سے ثبوت مبنی اکاؤنٹنگ یا ریکوری پروسیجرز میں خلل پڑ سکتا ہے۔ دستاویز شدہ منظر ایک پروٹوکول لیول ایج کیس تھا، ایتھریم مین نیٹ ڈپازٹس کو منتقل نہیں کیا گیا تھا۔
ملی شدہ فکس، گلواس آن بورڈنگ کے دوران ڈپازٹس کو منسوخ کرنے کے ایجنت کے مطابق الگ الگ کرتی ہے۔ ویلیڈیٹر ڈپازٹس اب بھی ویلیڈیٹر کی قطار میں رہتے ہیں، حتیٰ کہ جب کوئی بِلڈر ایک ہی کلید استعمال کرتا ہے، جبکہ درست بِلڈر ڈپازٹس آزادانہ طور پر بِلڈرز کو رجسٹر یا ٹاپ اپ کر سکتے ہیں۔ موجودہ بِلڈر ڈپازٹس بھی ترمیم شدہ قواعد کے تحت ٹاپ اپ حاصل کر سکتے ہیں۔ یہ تبدیلی آن بورڈنگ کو EIP-8282 د्वارا بیان کردہ آزاد ویلیڈیٹر اور بِلڈر رجسٹریز کے ساتھ ملا دیتی ہے اور ڈپازٹ آرڈرنگ اور راؤٹنگ کے رویے کو کور کرنے والے ریگریشن ٹیسٹس شامل کرتی ہے۔
وقت کا اہمیت ہے کیونکہ گل امستردام امستردام ایکزیکیشن لیور تبدیلیوں اور گلواس کنسینسس لیور تبدیلیوں کو ملا کر رکھتا ہے، جس میں مضمون پراپوزر-بیلڈر الگائی شامل ہے۔ وسیع تر اپ گریڈ پہلے ہی عوامی ٹیسٹنگ سے گزر چکا ہے، جبکہ اس کا ہودی ڈپلومنٹ مزید جائزہ کے لیے ملتوی کر دیا گیا اور مین نیٹ ایکٹی ویشن اب تک تصدیق شدہ نہیں ہے۔ اس لیے ڈپازٹ راؤٹنگ فکس مستقبل کے فورک کے لیے مخصوصات کو مضبوط کرتا ہے، نہ کہ زندہ ethereum ایکسپلوٹ کو درست کرتا ہے۔ یہ بھی واضح کرتا ہے کہ اسٹیکنگ اور بلاک بِلڈنگ انفراسٹرکچر کے ارد گرد کا منتقلی منطق کیوں پروٹوکول تبدیلیوں کو پیداوار تک پہنچانے سے پہلے ٹیسٹنگ کی ضرورت ہوتی ہے۔

