دوہرا خرچہ کیا ہوتا ہے؟
دوہرا خرچہ ڈیجیٹل کیش سسٹم میں ایک ممکنہ مسئلہ ہے جہاں ایک جیسے فنڈز بیک وقت دو وصول کنندگان کو بھیجے جاتے ہیں۔ مناسب حفاظتی اقدامات کے بغیر، مسئلے کو حل کرنے والا پروٹوکول بنیادی طور پر نقصان پہنچاتا ہے – صارفین کے پاس اس بات کی توثیق کرنے کا کوئی طریقہ کار نہیں کہ ان کے وصول کردہ فنڈز کو پہلے کہیں خرچ نہیں کیا گیا۔
ڈیجیٹل کیش کے معاملے میں، خصوصی یونٹس کی نقالی نہ کیے جانے کی یقین دہانی نہات اہم ہوتی ہے۔ اگر Alice 10 یونٹس کو وصول کرے، ان کو 10 مرتبہ کاپی اور پیسٹ کرے، اور اس کی ملکیت میں 100 یونٹس موجود ہوں، تو پورے سسٹم کو نقصان پہنچ سکتا ہے۔ اسی طرح، اگر وہ Bob اور Carol کو بیک وقت ایک جیسے 10 یونٹس بھیجتی ہے تو یہ اسکیم کام نہیں کر سکتی۔ لہٰذا، ڈیجیٹل رقم کو کام کرنے کے لیے، اس عمل کو روکنے کے لیے میکانزمز موجود ہونے چاہیئیں۔
دوہرے خرچے سے کیسے بچا جا سکتا ہے؟
مرکزی حکمت عملی
مرکزی روٹ کو غیر مرکزی متبادل کے مقابلے میں نافذ کرنا نسبتاً آسان ہے۔ اس میں روایتی طور پر سسٹم کا نظم کرنے اور یونٹس کا اجراء اور تقسیم کو کنٹرول کرنے والا ایک نگران شامل ہوتا ہے۔ دوہرے خرچے کا مسئلے کے مرکزی حل کی بہترین مثال David Chaum کا eCash ہے۔
صارفین کو ڈیجیٹل اثاثے کی طرز کے کیش (خفیہ اور پیئر ٹو پیئر ایکسچینج) کا اجراء کرنے کے لیے، بینک بلائنڈ دستخط استعمال کر سکتا ہے – جیسا کہ 1982 میں David Chaum نے اپنے پیپر ناقابل شناخت ادائیگیوں کے لیے بلائنڈ دستخط میں تفصیل بیان کی۔
اس سیاق و سباق میں، اگر کوئی صارف (فرض کریں وہ Dan ہے) $100 میں ڈیجیٹل کیش وصول کرنا چاہے، تو اسے پہلے بینک کو مطلع کرنا ہو گا۔ اپنے اکاؤنٹ میں بیلنس وصول کرنے کے بعد، وہ کوئی بھی ایک نمبر (یا چھوٹے پیمانوں کے لیے، زیادہ) تخلیق کرے گا۔ فرض کریں وہ پانچ نمبر تخلیق کرتا ہے، اور ہر ایک کو $20 کی مالیت کی تفویض کی جائے گی۔ بینک کو مخصوص یونٹس ٹریک کرنے سے روکنے کے لیے، Dan ہر ایک نمبر پر بلائنڈنگ عنصر شامل کر کے ان نمبرز کو غیر واضح کرتا ہے۔
پھر وہ یہ ڈیٹا بینک کو منتقل کرتا ہے، جو کہ اس کے اکاؤنٹ کو $100 کے لیے ڈیبیٹ کرتا ہے، اور اس بات کی تصدیق کرنے والے پیغامات پر دستخط کرتا ہے کہ معلومات کے پانچ حصوں میں سے ہر ایک حصہ $20 کے لیے قابل ریڈیم ہے۔ Dan اب بینک سے جاری کردہ فنڈز کو خرچ کر سکتا ہے۔ وہ Erin کے ریستوران میں جاتا ہے اور $40 کا کھانا خریدتا ہے۔
Dan ہر ڈیجیٹل کیش "بل" کے منسلک کردہ نمبر کو افشاء کرنے کے لیے بلائنڈنگ کے عنصر کو ختم کر سکتا ہے، جو ہر یونٹ (سیریل نمبر کی طرح) کے لیے منفرد شناخت کار کے طور پر کام کرتا ہے۔ وہ ان میں سے دو کے بارے میں Erin کو بتائے گا، جسے اب انہیں بینک کے ساتھ فوراً ریڈیم کرنا ہو گا تاکہ Dan کسی اور مرچنٹ کے ساتھ ان کو خرچ نہ کر سکے۔ بینک اس بات کی پڑتال کرے گا کہ دستخط درست ہیں، اور اگر ہر چیز ٹھیک ہوتی ہے، تو یہ Erin کے اکاؤںٹ کو $40 کے ساتھ کریڈٹ کرے گا۔
استعمال کیے جانے والے بلز اب حتمی طور پر ضائع ہو جائیں گے، اور اگر Erin اپنے نئے بیلنس کو اسی طرح خرچ کرنا چاہے تو مزید جاری کرنا ہوں گے۔
Chaumian eCash سیٹ اپ ذاتی ٹرانسفرز کے لیے اہم ہو سکتا ہے۔ لیکن، یہ حفاظت میں ناکام ہو جاتا ہے کیونکہ بینک ناکامی کا مرکزی پوائنٹ ہے۔ جاری کردہ بل کی بذات خود کوئی مالیت نہیں ہوتی، کیوںکہ اس کی مالیت صرف بینک کی رضامندی سے اخذ کی جاتی ہے تاکہ اس کو ڈالرز کے بدلے ایکسچینج کیا جائے۔ صارفین بینک کے رحم و کرم پر ہوتے ہیں، اور رقم کی عمل کاری کے لیے اس کی خیر خواہی پر انحصار کرنا ہو گا۔ یہ ممکنہ طور پر وہ مسئلہ ہو سکتا ہے کہ جسے حل کرنا کرپٹو کرنسی کا ہدف ہوتا ہے۔
غیر مرکزی حکمت عملی
اس بات کو یقینی بنانا مزید دشوار ہوتا ہے کہ نگران کے بغیر ایکو سسٹم میں فنڈز کا دوہرا خرچہ نہیں کیا جا سکتا۔ یکساں اختیار کے حامل شرکت کنندگان کو ایسے اصولوں کے حوالے سے تعاون کرنا ہو گا جو کہ دھوکہ دہی کو روکتے ہیں اور تمام صارفین کو ایمانداری سے کام کرنے کی ترغیب دیتے ہیں۔
Bitcoin وائٹ پیپر میں پیش کردہ شاندار اقدام دوہرے خرچے کے مسئلے کا حل ہے۔ اگرچہ اس طرح سے ریفرنس نہیں دیا جا سکا، Satoshi نے ایک ڈیٹا اسٹرکچر پیش کیا جسے اب عام طور پر بلاک چین کہا جاتا ہے۔
بلاک چین کچھ منفرد خصوصیات کی حامل ایک ڈیٹا بیس ہے۔ نیٹ ورک (نوڈز کے طور پر ریفر کیا جاتا ہے) پر موجود شرکت کنندگان خصوصی سافٹ ویئر چلاتے ہیں، جو کہ انہیں اپنے ساتھیوں کے ساتھ اپنی ڈیٹا بیس کی کاپی کو ہم وقت ساز بنانے کے قابل بناتا ہے۔ نتیجہ یہ ہوتا ہے کہ تمام تر نیٹ ورک جینیسز بلاک سے شروع ہونے والی ٹرانزیکشنز کی ہسٹری کو آڈٹ کر سکتا ہے۔ بلاک چین کا عوامی طور پر نظر آنے کی صورت میں، دھوکہ دہی کی سرگرمی کا پتہ لگانا اور اس کو روکنا آسان ہے، جیسا کہ دوہرے خرچے کی کوشش کرنے والی ٹرانزیکشنز۔
جب کوئی صارف ٹرانزیکشن کو براڈ کاسٹ کرتا ہے، تو اسے فوری طور پر بلاک چین میں شامل نہیں کیا جاتا – اسے مائننگکے ذریعے پہلے ایک بلاک میں شامل کرنا ہو گا۔ اس طرح، وصول کنندہ کو صرف اس ٹرانزیکشن کو زیر غور لانا چاہیئے جو کہ چین پر اپنا بلاک شامل ہونے کے بعد مؤثر ہے۔ بصورت دیگر، انہیں فنڈز ضائع ہونے کا خطرہ ہوتا ہے، کیوںکہ ارسال کنندہ ان ہی کوائنز کو کہیں اور خرچ کر سکتا ہے۔
ٹرانزیکشن کی تصدیق ہونے کے بعد، کوائنز کا دوہرا خرچہ نہیں کیا جا سکتا، کیوںکہ ملکیت کسی نئے صارف کے سپرد کی جاتی ہے – اور تمام نیٹ ورک اس کی توثیق کر سکتا ہے۔ یہی وجہ ہے کہ اکثر ادائیگی کو درست قبول کرنے سے پہلے متعدد تصدیق کا انتظار کرنے کی تجویز دیتے ہیں۔ آنے والا ہر بلاک اس کوشش میں کافی حد تک اضافہ کرتا ہے جو کہ چین (جو کہ 51% حملے کے دوران پیدا ہو سکتی ہے) میں ترمیم کرنے یا اس کو دوبارہ لکھنے کے لیے درکار ہوتی ہے۔
ریستوران کے منظر کو دوبارہ ملاحظہ کریں۔ Dan ریستوران پر واپس جاتا ہے، اور اس مرتبہ کھڑکی پر یہاں Bitcoin قبول کیا جاتا ہے کا اسٹیکر دیکھتا ہے۔ وہ پچھلی مرتبہ کھائے جانے والے کھانے سے لطف اندوز ہوا، اس لیے وہ دوبارہ اس کا آرڈر کرتا ہے۔ اس پر 0.005 BTC کا خرچہ آیا۔
Erin نے اس کو عوامی ایڈریس بھیجا جس پر اسے فنڈز بھیجنا ہوں گے۔ Dan ٹرانزیکشن کو براڈ کاسٹ کرتا ہے، جو کہ بنیادی طور پر ایک دستخط شدہ پیغام ہوتا ہے جو یہ بیان کرتا ہے کہ Dan کے پاس گزشتہ طور پر موجود 0.005 BTC اب Erin کی ملکیت میں ہیں۔ زیادہ تفصیل میں جائے بغیر، Dan کی دستخط کردہ ٹرانزیکشن کا وصول کنندہ کوئی بھی اس بات کی توثیق کر سکتا ہے کہ کوائنز درحقیقت اس کی ملکیت میں تھے اور اس لیے اس کے پاس انہیں بھیجنے کا اختیار ہے۔
اگرچہ، جیسا کہ بتایا گیا ہے، ٹرانزیکشن صرف اس صورت میں مؤثر ہوتی ہے اگر اسے تصدیق شدہ بلاک میں شامل کیا جائے۔ غیر تصدیق شدہ ٹرانزیکشنز کو قبول کرنا پِچھلی مثال سے eCash میں $40 کو بینک میں فوری طور پر کیش کیے بغیر قبول کرنا ہے – یہ ترسیل کنندہ کو اجازت دیتا ہے کہ وہ اسے کہیں اور خرچ کرے۔ لہٰذا، یہ تجویز دی جاتی ہے کہ Erin Dan کی ادائیگی کو قبول کرنے سے پہلے کم از کم 6 بلاک کی تصدیق (تقریباً ایک گھنٹہ) کا انتظار کرے۔
Bitcoin میں دوہرا خرچہ
Bitcoin کو دوہرے خرچے کے حملے روکنے کے لیے احتیاط کے ساتھ ڈیزائن کیا جاتا ہے، کم از کم اس وقت جب پروٹوکول کو متوقع طور پر استعمال کیا جائے۔ اس کا مطلب یہ ہے کہ، اگر ایک بلاک میں لوگ ٹرانزیکشنز کی تصدیق ہونے کا انتظار کرتے ہیں، تو ترسیل کنندہ کے پاس اس کو کالعدم کرنے کا کوئی طریقہ کار نہیں ہوتا۔ ایسا کرنے کے لیے، انہیں بلاک چین کو "ریورس" کرنا ہو گا، جس کے ہیشنگ پاور کی خاطر خواہ مقدار درکار ہے۔
تاہم، دوہرے خرچے کے کئی ایسے حملے ہیں جو غیر تصدیق شدہ ٹرانزیکشنز قبول کرنے والے فریقین کو ہدف بناتے ہیں۔ مثلاً، کم مالیت کی خریداریوں کے لیے، ہو سکتا ہے کہ مرچنٹ ٹرانزیکشن کو بلاک میں شامل کیے جانے کا انتظار نہ کرے۔ ایک مصروف ترین فاسٹ فوڈ ریستوران شاید مستحکم نہیں رہ سکتا کیوںکہ نیٹ ورک ہر خریداری کو پروسیس کرتا ہے۔ لہٰذا، اگر کوئی کاروبار "فوری" ادائیگیوں کو فعال کرتا ہے، تو وہ دوہرے خرچوں کو قبول کر رہا ہے۔ ہو سکتا ہے کسی نے برگر آرڈر کیا ہو، اس کی ادائیگی کی ہو، اور پھر فوری طور پر وہی فنڈز اپنے ہی ایڈریس پر بھیج دیے ہوں۔ زیادہ فیس کے ساتھ۔، ممکن ہے کہ اس نئی ٹرانزیکشن کی تصدیق پہلے کی جائے، اور اس لیے یہ گزشتہ ٹرانزیکشن کو غیر مؤثر کر دے گی۔
دوہرا خرچہ انجام دینے کے تین مقبول طریقہ کار ہیں:
51% حملے: جب ایک واحد ادارہ یا تنظیم 50% کے زائد کے پیش ریٹ کو کنٹرول کرنے میں کامیاب ہوتی ہے، جو کہ ان کو ٹرانزیکشنز کا آرڈر خارج کرنے یا اس میں ترمیم کرنے کی اجازت دیتا ہے۔ Bitcoin پر اس طرح کے حملے کا امکان بہت کم ہے، لیکن یہ دیگر نیٹ ورکس پر ہوتا ہے۔
ریس اٹیکس: ایک جیسے فنڈز کا استعمال کرتے ہوئے، دو متضاد ٹرانزیکشنز کو کامیابی سے براڈ کاسٹ کیا جاتا ہے – لیکن صرف ایک ہی ٹرانزیکشن کی تصدیق ہوتی ہے۔ حملہ آور کا ہدف اپنے ذاتی مفاد کی حامل ٹرانزیکشن کو مؤثر بناتے ہوئے ادائیگی کو غیر مؤثر کرنا ہے (مثلاً، اپنے زیر اختیار ایڈریس پر ایک جیسے فنڈز بھیجنا)۔ ریس اٹیکس وصول کنندہ سے غیر تصدیق شدہ ٹرانزیکشن کو ادائیگی کے طور پر قبول کرنے کا مطالبہ کرتے ہیں۔
فینے حملے: ایک حملہ آور ٹرانزیکشن کو نیٹ ورک پر فوری طور پر براڈ کاسٹ کیے بغیر بلاک میں پہلے سے مائن کرتا ہے۔ اس کے بجائے، یہ ایک جیسے کوائنز کو کسی اور ٹرانزیکشن میں خرچ کرتا ہے اور صرف تب ہی اپنے پچھلے مائن کردہ بلاک کو براڈ کاسٹ کرتا ہے، جو کہ ادائیگی کو غیر مؤثر کر سکتا ہے۔ فینے حملوں کے لیے ایک خاص ترتیب کے واقعات کا ہونا ضروری ہوتا ہے اور یہ وصول کنندہ کا غیر تصدیق شدہ ٹرانزیکشنز قبول کرنے پر بھی منحصر ہوتے ہیں۔
جیسا کہ ہم دیکھ سکتے ہیں، بلاک کی تصدیق کا انتظار کرنے والا مرچنٹ دوہرے خرچے کا شکار ہونے کے خطرے کو کافی حد تک کم کرے گا۔
اختتامی خیالات
دوہرا خرچہ صارف کو ایک جیسے فنڈز کو ایک سے زیادہ مرتبہ استعمال کرتے ہوئے، مالیاتی نفع کے لیے الیکٹرانک کیش سسٹم کا حملہ کرنے کی اجازت دیتا ہے۔ روایتی طور پر، مسئلے کے مناسب حل میں کمی اس پہلو کی ترقی میں حائل ہوتی ہے۔
تاہم، خوش قسمتی سے، بلائنڈ دستخط کے استعمال نے مرکزی مالیاتی اسکیمز کے لیے ایک دلچسپ حل کی تجویز دی ہے۔ بعد میں، پروف آف ورک میکانزم اور بلاک چین ٹیکنالوجی کی تخلیق نے Bitcoin کو غیر مرکزی رقم کی مستحکم شکل میں جنم دیا – جس نے، نتیجتاً، دیگر ہزاروں کرپٹو کرنسی پراجیکٹس کو متاثر کیا۔