مرکزی مواد پر جائیں
Change page

حصہ داری کا ثبوت (⁦PoS⁩) ایتھیریم میں کلیدیں

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

ایتھیریم کی کلیدیں بیضوی-منحنی علمِ تشفیر (elliptic-curve cryptography) (opens in a new tab) کا استعمال کرتے ہوئے تیار کی جاتی ہیں۔

تاہم، جب ایتھیریم ثبوتِ کار (PoW) سے حصہ داری کا ثبوت (PoS) پر منتقل ہوا تو ایتھیریم میں ایک نئی قسم کی کلید شامل کی گئی۔ اصل کلیدیں اب بھی بالکل پہلے کی طرح کام کرتی ہیں—اکاؤنٹس کو محفوظ بنانے والی بیضوی-منحنی پر مبنی کلیدوں میں کوئی تبدیلی نہیں کی گئی۔ تاہم، صارفین کو ETH اسٹیک کر کے اور توثیق کاروں کو چلا کر حصہ داری کا ثبوت (PoS) میں حصہ لینے کے لیے ایک نئی قسم کی کلید کی ضرورت تھی۔ یہ ضرورت بڑی تعداد میں توثیق کاروں کے درمیان گزرنے والے بہت سے پیغامات سے وابستہ اسکیل ایبلٹی چیلنجز سے پیدا ہوئی جس کے لیے ایک ایسے تشفیری طریقہ کار کی ضرورت تھی جسے آسانی سے جمع کیا جا سکے تاکہ نیٹ ورک کو اتفاق رائے پر پہنچنے کے لیے درکار مواصلات کی مقدار کو کم کیا جا سکے۔

یہ نئی قسم کی کلید Boneh-Lynn-Shacham (BLS) دستخطی اسکیم (opens in a new tab) کا استعمال کرتی ہے۔ BLS دستخطوں کو انتہائی موثر انداز میں جمع کرنے کے قابل بناتا ہے لیکن یہ جمع شدہ انفرادی توثیق کار کلیدوں کی ریورس انجینئرنگ کی بھی اجازت دیتا ہے اور توثیق کاروں کے درمیان کارروائیوں کو منظم کرنے کے لیے مثالی ہے۔

توثیق کار کلیدوں کی دو اقسام

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

توثیق کار کلید

توثیق کار کی دستخط کرنے والی کلید دو عناصر پر مشتمل ہوتی ہے:

  • توثیق کار کی نجی کلید
  • توثیق کار کی عوامی کلید

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

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

  • توثیق کار کی کٹوتی کروا سکتا ہے:
    • تجویز کنندہ بن کر اور ایک ہی سلاٹ کے لیے دو مختلف بیکن بلاکس پر دستخط کر کے
    • تصدیق کنندہ بن کر اور ایک ایسی تصدیق پر دستخط کر کے جو دوسری کو "گھیرتی" ہو
    • تصدیق کنندہ بن کر اور ایک ہی ہدف رکھنے والی دو مختلف تصدیقات پر دستخط کر کے
  • زبردستی رضاکارانہ خروج کروا سکتا ہے، جو توثیق کار کو اسٹیکنگ سے روکتا ہے، اور انخلا کی کلید کے مالک کو اس کے ETH بیلنس تک رسائی فراہم کرتا ہے

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

انخلا کی اسناد

ہر توثیق کار کی ایک خصوصیت ہوتی ہے جسے انخلا کی اسناد کہا جاتا ہے۔ اس 32-byte فیلڈ کا پہلا بائٹ اکاؤنٹ کی قسم کی شناخت کرتا ہے: 0x00 اصل BLS (شپیلا سے پہلے، ناقابل انخلا) اسناد کی نمائندگی کرتا ہے، 0x01 پرانی اسناد کی نمائندگی کرتا ہے جو عمل درآمد کے پتہ کی طرف اشارہ کرتی ہیں، اور 0x02 جدید کمپاؤنڈنگ اسناد کی قسم کی نمائندگی کرتا ہے۔

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

توثیق کار کی انخلا کی اسناد کے بارے میں مزید

انخلا کی کلید

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

توثیق کار کلیدوں کی طرح، انخلا کی کلیدیں بھی دو اجزاء پر مشتمل ہوتی ہیں:

  • انخلا کی نجی کلید
  • انخلا کی عوامی کلید

انخلا کی اسناد کو 0x01 قسم میں اپ ڈیٹ کرنے سے پہلے اس کلید کو کھونے کا مطلب توثیق کار کے بیلنس تک رسائی کھونا ہے۔ توثیق کار اب بھی تصدیقات اور بلاکس پر دستخط کر سکتا ہے کیونکہ ان کارروائیوں کے لیے توثیق کار کی نجی کلید کی ضرورت ہوتی ہے، تاہم اگر انخلا کی کلیدیں کھو جائیں تو اس کی ترغیب نہ ہونے کے برابر ہے۔

توثیق کار کلیدوں کو ایتھیریم اکاؤنٹ کی کلیدوں سے الگ کرنے سے ایک ہی صارف کو متعدد توثیق کار چلانے کی سہولت ملتی ہے۔

validator key schematic

نوٹ: اسٹیکنگ کے فرائض سے خروج اور توثیق کار کا بیلنس نکالنے کے لیے فی الحال توثیق کار کلید کے ساتھ رضاکارانہ خروج کے پیغام (VEM) (opens in a new tab) پر دستخط کرنے کی ضرورت ہے۔ تاہم، EIP-7002 (opens in a new tab) ایک تجویز ہے جو مستقبل میں صارف کو انخلا کی کلید کے ساتھ خروج کے پیغامات پر دستخط کر کے توثیق کار کے خروج کو متحرک کرنے اور اس کا بیلنس نکالنے کی اجازت دے گی۔ یہ ان اسٹیکرز کو جو ETH کو اسٹیکنگ-بطور-سروس فراہم کنندگان کو تفویض کرتے ہیں، اپنے فنڈز کے کنٹرول میں رہنے کے قابل بنا کر اعتماد کے مفروضے کو کم کرے گا۔

سیڈ فریز سے کلیدیں اخذ کرنا

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

نیمونکس (Mnemonics) (opens in a new tab) اور راستے نمایاں خصوصیات ہیں جن کا صارفین اکثر سامنا کرتے ہیں جب وہ اپنے والیٹس تک رسائی حاصل کرتے ہیں (opens in a new tab)۔ نیمونک الفاظ کی ایک ترتیب ہے جو نجی کلید کے لیے ابتدائی سیڈ کے طور پر کام کرتی ہے۔ جب اضافی ڈیٹا کے ساتھ ملایا جاتا ہے، تو نیمونک ایک ہیش تیار کرتا ہے جسے 'ماسٹر کلید' کہا جاتا ہے۔ اسے ایک درخت کی جڑ کے طور پر سوچا جا سکتا ہے۔ اس جڑ سے شاخیں پھر ایک درجہ بندی کے راستے کا استعمال کرتے ہوئے اخذ کی جا سکتی ہیں تاکہ چائلڈ نوڈز اپنے پیرنٹ نوڈ کے ہیش اور درخت میں ان کے اشاریہ کے مجموعے کے طور پر موجود ہو سکیں۔ نیمونک پر مبنی کلید کی تیاری کے لیے BIP-32 (opens in a new tab) اور BIP-19 (opens in a new tab) معیارات کے بارے میں پڑھیں۔

ان راستوں کی ساخت درج ذیل ہے، جو ان صارفین کے لیے جانی پہچانی ہوگی جنہوں نے ہارڈویئر والیٹس کے ساتھ تعامل کیا ہے:

m/44'/60'/0'/0`

اس راستے میں سلیش نجی کلید کے اجزاء کو اس طرح الگ کرتے ہیں:

master_key / purpose / coin_type / account / change / address_index

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

[m / 0]
     /
    /
[m] - [m / 1]
    \
     \
      [m / 2]

ہر شاخ کو / سے الگ کیا جاتا ہے لہذا m/2 کا مطلب ہے ماسٹر کلید سے شروع کریں اور شاخ 2 کی پیروی کریں۔ ذیل کی خاکہ کشی میں ایک ہی نیمونک فریز کا استعمال تین انخلا کی کلیدوں کو ذخیرہ کرنے کے لیے کیا گیا ہے، جن میں سے ہر ایک کے ساتھ دو توثیق کار وابستہ ہیں۔

validator key logic

مزید مطالعہ