مصنف: witcher_senseاصل موضوع: Silent payments
تعارفاس موضوع میں، میں روبن سومسن کی ایک دلچسپ تجویز پر بات کرنا چاہوں گا جسے "خاموش ادائیگیاں" کہا جاتا ہے جو کہ رازداری کو بہتر بنانے والی تکنیک ہے جس کا مقصد بلاک چین پر دو فریقین کے درمیان ادائیگیوں کو کسی بیرونی مبصر کے لیے کم شفاف بنانا ہے۔ یہ "اسٹیلتھ ایڈریسز" اور "دوبارہ استعمال کے قابل ادائیگی کوڈز" جیسے تصورات پر مبنی ہے اور بنیادی طور پر اسی مسئلے کو حل کرنے کی کوشش کر رہا ہے لیکن زیادہ خوبصورت انداز میں۔
بنیادی خیالبنیادی خیال مندرجہ ذیل ہے:
صارف اے کچھ
شناخت کنندہ (عام طور پر ایک عوامی کلید) شائع کرتا ہے، اور
صارف بی خرچ کر سکتے ہیں۔
صارف سی بھی
صارف اے کو اپنی نجی کلید کو
[ کے پتے کے ساتھ جوڑ کر رقم بھیج سکتا ہے۔ اے اور ایک اور منفرد پتہ اخذ کرنا۔
صارف اے کو معلوم ہوگا کہ دونوں صارفین
بی اور
سی نے اسے پیسے بھیجے، لیکن
بی اور
سی ایک دوسرے کے بارے میں نہیں جانیں گے۔ لہذا، یہ
صارف اے کو صرف ایک عوامی پتہ کا استعمال کرتے ہوئے مکمل طور پر ڈی لنک کردہ پتوں پر ادائیگیاں وصول کرنے کی اجازت دیتا ہے۔
یہ کیسے کام کرتا ہےکہتے ہیں کہ باب ایلس کو خاموش ادائیگی بھیجنا چاہتا ہے۔
۱) ایلس معیاری بیضوی وکر ریاضی کا استعمال کرتے ہوئے ایک منفرد شناخت کنندہ (کہیں، ایک عوامی کلید) بناتی ہے:
اے = اے*جی, کہاں
اے - ایلس کی عوامی کلید (بیضوی وکر پر ایک نقطہ)،
اے - ایلس کی نجی کلید (ایک بے ترتیب نمبر جسے خفیہ رکھا جانا چاہیے)، اور
جی - جنریٹر پوائنٹ (بیضوی وکر پر کچھ پہلے سے طے شدہ نقطہ)۔
۲) ایلس اس شناخت کنندہ
اے کو عوامی بناتی ہے تاکہ باب (اور دیگر صارفین جیسے کیرول) کو معلوم ہو سکے کہ ادائیگی کہاں بھیجنی ہے۔
۳) باب ان پٹ میں سے ایک کا انتخاب کرتا ہے جسے وہ قابو کرتا ہے جس میں عوامی کلید ہوتی ہے۔
بی = بی*جی, کہاں
بی - باب کی عوامی کلید (بیضوی وکر پر ایک نقطہ)،
بی - باب کی نجی کلید (ایک بے ترتیب عدد جو صرف باب جانتا ہے)، اور
جی - جنریٹر پوائنٹ
۴) باب ایلس کی عوامی کلید
اے لیتا ہے اور درج ذیل فارمولے کا استعمال کرتے ہوئے ایک نئی عوامی کلید بناتا ہے:
اے' = ہیش(بی*اے)*جی + اے, کہاں
اے' - ایک عوامی کلید جس پر باب کی ادائیگی کی جاتی ہے۔
۵) باب ایلس کو ادائیگی کرتا ہے جو پہلے سے تعمیر شدہ عوامی کلید
اے' سے وابستہ آؤٹ پٹ بناتا ہے۔
۶) یہ دیکھتے ہوئے کہ
بی*اے = بی*اے*جی = اے*بی*جی = اے*بی، ایلس اسی عوامی کلید کو دوبارہ تشکیل دے سکتی ہے
اے ' درج ذیل فارمولے کے ساتھ اپنی نجی کلید
اے کا استعمال کرتے ہوئے:
اے' = (ہیش(اے*بی) + اے)*جی, کہاں
ہیش(اے*بی) + اے - ایلس کی نئی نجی کلید جو اسے عوامی کلید
اے' کے مطابق آؤٹ پٹ سے رقم خرچ کرنے کی اجازت دیتی ہے۔
تاہم، مسئلہ یہ ہے کہ ایلس کو اپنی ادائیگی کا پتہ لگانے کے لیے باب کی عوامی کلید
بی کو جاننے کی ضرورت ہے، یہی وجہ ہے کہ وہ مسلسل بلاک چین کو اسکین کرتی رہتی ہے تاکہ یہ معلوم کیا جا سکے کہ کون سی عوامی کلید موجودہ بٹ کوائن پتوں کو دوبارہ تشکیل دینے کے لیے اس کی نجی کلید
اے کے ساتھ جوڑ دیا جائے۔
:پرو پہلوؤں۱) بھیجنے والوں اور وصول کنندگان کے درمیان کسی تعامل کی ضرورت نہیں ہے۔ ادائیگی کرنے کے لیے بھیجنے والے کے لیے، اسے وصول کنندہ کی خاموش عوامی کلید سے صرف ایک پتہ بنانے کی ضرورت ہوتی ہے۔
۲) خاموش ادائیگیاں بلاک اسپیس کو زیادہ مؤثر طریقے سے استعمال کرتی ہیں کیونکہ بی آئی پی ۴۷ کی طرح کسی بھی "اعلان" لین دین کی ضرورت نہیں ہے۔ لہذا، ایک لین دین ایک ادائیگی کے برابر ہے، جو کہ ایک بار کے عطیات کے لیے بہترین ہے۔
۳) خاموش ٹرانزیکشنز کو باقاعدہ لین دین سے الگ نہیں کیا جا سکتا ہے (مثال کے طور پر "اسٹیلتھ ایڈریسز" کے معاملے میں ایک عارضی عوامی کلید کا اشتراک کرنے کے لیے کوئی او پی_ریٹرن آؤٹ پٹ نہیں ہے)، جس کا مطلب ہے کہ ان کے ساتھ، صارفین کے لیے بھیڑ میں چھپنا معمولی بات ہے - گمنامی سیٹ ہے مکمل بلاکچین.
۴) ابتدائی خاموش عوامی کلید سے اخذ کردہ پتے ہمیشہ متعین اور منفرد ہوتے ہیں کیونکہ ہر بھیجنے والا وصول کنندہ کی خاموش عوامی کلید کو درست کرنے کے لیے اپنی منفرد کلیدوں کا استعمال کرتا ہے۔
۵) خاموش ادائیگیاں فنڈز وصول کرنے والے کو اپنے بٹ کوائن مکمل نوڈ کو چلانے کے لیے ترغیب دیتی ہیں، جس کے نتیجے میں خود بخود زیادہ وکندریقرت نیٹ ورک بنتا ہے۔
۶) لین دین کے ارسال کنندہ اور اس کے وصول کنندہ کے علاوہ کوئی بھی نہیں جان سکے گا کہ ادائیگی اصل میں ہوئی ہے۔
۷) خاموش ادائیگیاں بٹ کوائن لین دین کی تبادلیت کو بہت بہتر بناتی ہیں۔
:کن پہلوؤں۱) اس تکنیک کا سب سے بڑا نقصان نسبتاً زیادہ توثیق کی لاگت ہے۔ یہ دیکھتے ہوئے کہ ادائیگیوں کے وصول کنندہ کو پہلے سے معلوم نہیں ہوتا ہے کہ بٹ کوائن کے کون سے پتوں کو اس کے زیر کنٹرول نجی کلید کے ساتھ خرچ کیا جا سکتا ہے، اسے ہر لین دین کے ہر ان پٹ کو چیک کرنا ہوگا، عوامی کلیدوں کا حساب لگانا اور اس کا موازنہ کرنا ہوگا۔
۲) ایڈریس کے دوبارہ استعمال کے لیے بھیجنے والے کی صلاحیت۔ جب ایک بھیجنے والے کے پاس ایک ہی عوامی کلید کا اشتراک کرنے والے متعدد ان پٹ ہوتے ہیں، تو ان میں سے ہر ایک کے نتیجے میں ایک ہی حساب شدہ پتہ ہوگا۔ ایڈریس کو دوبارہ استعمال کرنا پرائیویسی کا برا عمل سمجھا جاتا ہے اور اس سے ہر قیمت پر گریز کیا جانا چاہیے۔ اس کو کمپیوٹیشنل عمل میں اضافی معلومات شامل کرکے کم کیا جا سکتا ہے، لیکن یہ ایک اضافی بوجھ پیدا کرتا ہے، خاص طور پر ہلکے گاہکوں کے لیے۔ متبادل طور پر، ایک بھیجنے والا ایک ہی لین دین میں تمام معلومات خرچ کر سکتا ہے، لیکن اس سے مشترکہ ملکیت کا بھی پتہ چلتا ہے، جس سے رازداری کو نقصان پہنچتا ہے۔
:حوالہ جات۱]
https://gist.github.com/RubenSomsen/c43b79517e7cb701ebf77eec6dbb46b8۲]
https://github.com/genjix/bips/blob/master/bip-stealth.mediawiki۳]
https://github.com/bitcoin/bips/blob/master/bip-0047.mediawiki۴]
https://en.m.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman۵]
https://bitcoinops.org/en/newsletters/2022/04/06/۶]
https://bitcoinmagazine.com/technical/bitcoin-silent-payments-secret-keys۷]
https://bitcoinmagazine.com/technical/improving-bitcoin-privacy-with-silent-payments۸]
https://gist.github.com/w0xlt/72390ded95dd797594f80baba5d2e6ee