ماڈیول 8 از 10

بٹ کوائن کیسے کام کرتا ہے

8.0 تعارف

بٹ کوائن "بے ضابطہ" نہیں ہے؛ یہ حکومت کے افسران کے بجائے الگورتھم کے ذریعے منظم کیا جاتا ہے۔ غیر فاسد۔
آندریاس ایم. انتونوپولوس

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

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

بٹ کوائن نیٹ ورک لین دین کا ایک مشترکہ ریکارڈ ہے جو بہت سے کمپیوٹروں (نوڈز) پر محفوظ ہوتا ہے۔ اس ریکارڈ کو بٹ کوائن لیجر کہا جاتا ہے، جو فرضی ناموں پر مبنی ہے۔ اس میں ذاتی تفصیلات جیسے نام یا عمر شامل نہیں ہوتیں، صرف لین دین کا ڈیٹا اور بٹ کوائن ایڈریسز ہوتے ہیں۔ لیجر ہر لین دین کو ٹریک کرتا ہے جب سے بلاک چین شروع ہوئی۔

بٹ کوائن پروٹوکول کے طریقہ کار
  • پروف آف ورک
  • کرپٹوگرافک ٹائم اسٹیمپس
  • مشکل کی ایڈجسٹمنٹ
  • پیر ٹو پیر نیٹ ورک آرکیٹیکچر
  • ہیش فنکشنز اور مرکل ٹریز
  • پبلک کی کرپٹوگرافی
  • بلاک سبسڈی ہالوِنگ

8.1 کرپٹوگرافی کے ذریعے سیکیورٹی

Bitcoin ہمیں ایک مضبوط وعدہ دیتا ہے: پروگرام بالکل ویسا ہی چلے گا جیسا کہ بیان کیا گیا ہے۔
آندرے

پبلک/پرائیویٹ کی کرپٹوگرافی

کرپٹوگرافی وہ عمل ہے جس میں معلومات کو ایک راز میں تبدیل کیا جاتا ہے جسے صرف صحیح لوگ پڑھ سکتے ہیں۔

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

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

اس نظام کا مسئلہ یہ ہے کہ دونوں لوگوں کے پاس پہلے سے ہی خفیہ کلید ہونی چاہیے۔ اگر کوئی اور اس کلید تک رسائی حاصل کر لے تو وہ کسی بھی روکے گئے پیغام کو پڑھ سکتا ہے۔

Bitcoin اس مسئلے کو ایک مختلف طریقے سے حل کرتا ہے جسے پبلک-کی کرپٹوگرافی کہا جاتا ہے، جس میں صارفین کو پہلے سے خفیہ کلیدیں شیئر کرنے کی ضرورت نہیں ہوتی۔

پبلک/پرائیویٹ کی کرپٹوگرافی خفیہ معلومات شیئر کرنے کے مسئلے کو حل کرتی ہے۔ پاس ورڈ شیئر کرنے کے بجائے، ہر شخص کے پاس دو کلیدیں ہوتی ہیں: ایک پبلک کی اور ایک پرائیویٹ کی۔

  • پبلک کی کسی کے ساتھ بھی شیئر کی جا سکتی ہے۔
  • پرائیویٹ کی ہمیشہ خفیہ رکھی جانی چاہیے۔

اگر علی کچھ آریش کو بھیجنا چاہے تو وہ آریش کی پبلک کی استعمال کر سکتا ہے۔ صرف آریش اپنی پرائیویٹ کی سے اسے کھول سکتا ہے۔ چاہے کوئی پیغام کو روک بھی لے، وہ پرائیویٹ کی کے بغیر اسے نہ پڑھ سکتا ہے اور نہ استعمال کر سکتا ہے۔

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

Bitcoin کی ٹرانزیکشنز میں bitcoin کی ملکیت کو ایک ایڈریس سے دوسرے ایڈریس میں منتقل کرنا شامل ہے۔

انکرپشن اس لیے استعمال کی جاتی ہے کہ صرف اصلی bitcoin رکھنے والے کو ہی اپنی رقم کسی اور کو بھیجنے کا اختیار ہو۔ یہ ان کی ملکیت کو بدنیت افراد سے محفوظ رکھتی ہے۔

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

ہر صارف کے پاس دو کلیدیں ہوتی ہیں: ایک پرائیویٹ کی، جو خفیہ رکھی جاتی ہے، اور ایک پبلک کی جو دوسروں کے ساتھ شیئر کی جا سکتی ہے۔ پرائیویٹ کی شناخت اور ملکیت کا ثبوت ہے، جو یہ ثابت کرتی ہے: “یہ ایڈریس میرا ہے اور میں اس پر کنٹرول رکھتا ہوں۔”

Bitcoin ٹرانزیکشن کیسے کام کرتی ہے
  1. ٹرانزیکشن بنانا: ایک صارف Bitcoin ٹرانزیکشن شروع کرتا ہے جس میں وصول کنندہ کا ایڈریس اور بھیجے جانے والے bitcoin کی مقدار جیسی تفصیلات شامل ہوتی ہیں۔
  2. ڈیجیٹل دستخط کی تخلیق: بھیجنے والا ایک منفرد ڈیجیٹل دستخط اپنی پرائیویٹ کی سے بناتا ہے۔ یہ دستخط ایک منفرد کوڈ ہے جو ٹرانزیکشن کی اصلیت کی تصدیق کرتا ہے۔
  3. ٹرانزیکشن کو نشر کرنا: دستخط شدہ ٹرانزیکشن کو Bitcoin نیٹ ورک پر نشر کیا جاتا ہے، جس سے ظاہر ہوتا ہے کہ bitcoin کی ملکیت بھیجنے والے سے وصول کنندہ کو منتقل کی جا رہی ہے۔
  4. نیٹ ورک پر تصدیق: Bitcoin نیٹ ورک کے نوڈز ٹرانزیکشن وصول کرتے ہیں اور وصول کنندہ کی پبلک کی دستخط کی اصلیت کی تصدیق کرنے کے لیے۔ لین دین کی۔ اسی وقت، وہ بھیجنے والے کی عوامی کلید کی تصدیق کرنے کے لیے ڈیجیٹل دستخط استعمال کرتے ہیں۔
  5. بٹ کوائن نیٹ ورک پر تصدیق: اگر تصدیق کامیاب ہو جائے تو، لین دین کو لیجر میں شامل کر دیا جائے گا، جو کہ تمام لین دین کا محفوظ اور شفاف ریکارڈ ہے۔ تصدیق ہونے کے بعد، بٹ کوائن کی ملکیت باضابطہ طور پر بھیجنے والے سے وصول کنندہ کو منتقل ہو جاتی ہے۔

My First Bitcoinڈیجیٹل دستخط, جو بھیجنے والے کی نجی کلید سے بنایا گیا ہے، یہ ثابت کرتا ہے کہ لین دین بٹ کوائن کے مالک کی طرف سے منظور کیا گیا تھا۔ بٹ کوائن نیٹ ورک اس ثبوت کی تصدیق کر سکتا ہے اور لین دین کو ریکارڈ کر سکتا ہے۔

ہیشنگ کی وضاحت

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

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

فنکشن کیا ہے؟

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

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

ون وے فنکشن کیا ہے؟

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

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

ہیش فنکشن کیا ہے؟

ایک ہیش فنکشن ایک خفیہ کوڈ مشین کی طرح ہے۔ یہ ایک پیغام لیتا ہے اور اسے کوڈ میں بدل دیتا ہے۔

بٹ کوائن کے لین دین میں ہیشنگ کیسے کام کرتی ہے

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

بٹ کوائن کی سیکیورٹی میں ہیشنگ کا کردار

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

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

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

اس آؤٹ پٹ, یا ہیش، کی لمبائی ہمیشہ ایک جیسی رہتی ہے، چاہے اصل معلومات کتنی بھی لمبی ہوں۔ بٹ کوائن کچھ مخصوص قسم کے ہیش فنکشن استعمال کرتا ہے جنہیں SHA-256 اور RIPEMD160 کہا جاتا ہے۔

کچھ مثالیں نیچے دی گئی ہیں:

  • اس سٹرنگ کا SHA256 ہیشہیلو ورلڈ
    • b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
  • اس سٹرنگ کا SHA256 ہیش ہیلو ورلڈ۔
    • 7ddb227315f423250fc67f3be69c544628dffe41752af91c50ae0a9c49faeb87
    • نوٹ کریں کہ ان پٹ میں معمولی سی تبدیلی سے آؤٹ پٹ مکمل طور پر بدل جاتا ہے جب آپ اسے پہلے والے سے موازنہ کرتے ہیں
  • ڈاؤن لوڈ ہونے والی iso فائل کا SHA256 ہیش اوبنٹو 18.10
    • 7b9f670c749f797a0f7481d619ce8807edac052c97e1a0df3b130c95efae4765
    • یہ ان پٹ ایک بہت بڑی فائل ہے لیکن آؤٹ پٹ پھر بھی ایک ہی مقررہ لمبائی کا ہے

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

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

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

کو انکوڈ کرنے کا عمل پبلک کی ہیشنگ کے ذریعے معلومات کی حفاظت کو بہتر بنانے کے لیے استعمال ہوتا ہے، جس میں معلومات کو ایک مقررہ لمبائی کی، ناقابلِ فہم شکل میں تبدیل کیا جاتا ہے۔ Bitcoin پبلک ایڈریس بنانے کے لیے SHA-256 اور RIPEMD160 الگورتھم استعمال کرتا ہے۔ اس کا نتیجہ ایک منفرد شناختی نمبر کی صورت میں نکلتا ہے جو پبلک کی کے لیے مخصوص ہوتا ہے اور لیجر میں محفوظ ٹرانزیکشنز کی سالمیت اور حفاظت کو یقینی بنانے میں مدد دیتا ہے۔ اس طرح معلومات کو انکرپٹ کرنے سے غیر مجاز افراد کے لیے ڈیٹا تک رسائی اور اس میں تبدیلی کرنا مشکل ہو جاتا ہے۔

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

سرگرمی: SHA 256 ہیش بنائیں

کیا آپ جاننا چاہتے ہیں کہ ہیشنگ کیسے کام کرتی ہے؟ QR کوڈ اسکین کریں اور کسی بھی لفظ، جملے یا ان پٹ سے فوراً SHA256 ہیش بنائیں۔ ہیش فنکشنز ڈیجیٹل فنگر پرنٹس کی طرح ہیں: یہ یک طرفہ ہیں، یعنی ایک بار ہیش ہو جائے تو اسے واپس اصل میں نہیں بدلا جا سکتا۔ خود آزما کر دیکھیں!

8.2 یو ٹی ایکس او ماڈل

UTXO کیا ہیں؟

عجیب نام سے خوفزدہ نہ ہوں۔ آپ UTXOs کو بٹ کوائن کے ٹکڑوں کے طور پر سمجھ سکتے ہیں، جیسے آپ کے بٹوے میں نوٹ اور سکے ہوتے ہیں۔ مثال کے طور پر، اگر آپ 1,500 روپے کی چیز کے لیے 2,500 روپے کا نوٹ دیتے ہیں، تو آپ کو 1,000 روپے بقایا ملتے ہیں۔ بٹ کوائن بھی اسی طرح کام کرتا ہے۔

آپ کے پاس جتنے بھی بٹ کوائن ہیں، وہ مختلف UTXOs پر مشتمل ہوتے ہیں۔ جب آپ بٹ کوائن بھیجتے ہیں، تو آپ کا بٹوہ ادائیگی کے لیے ان میں سے ایک یا زیادہ ٹکڑوں کو استعمال کرتا ہے۔

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

آپ کے بٹوے کا بیلنس صرف ان تمام UTXOs کی مجموعی مالیت ہے جن پر آپ کا کنٹرول ہے۔

آپ کو اپنے UTXOs دوسروں کو ظاہر نہیں کرنے چاہئیں کیونکہ اگر کوئی انہیں جان لے تو وہ آپ کی لین دین کو ٹریک کر سکتا ہے اور آخرکار یہ جان سکتا ہے کہ آپ کے پاس کتنے پیسے ہیں۔

مثال
  1. علیہ بوب کو 5 BTC بھیجنا چاہتی ہے۔
  2. اس کے بٹوے میں موجود دو UTXOs استعمال ہوتے ہیں جن کی مجموعی مالیت 6 BTC ہے۔
  3. یہ لین دین 5 BTC بوب کو بھیجتا ہے، جس سے بوب کے بٹوے میں ایک نیا UTXO بنتا ہے۔
  4. باقی 0.99 BTC علیہ کو بقایا کے طور پر واپس ملتا ہے، فیس کی ادائیگی کے بعد 0.01 BTC ٹرانزیکشن فیس۔
  5. جیسے ہی لین دین کی تصدیق ہو جاتی ہے، یہ بٹ کوائن کے لیجر میں شامل ہو جاتا ہے اور علیہ کے استعمال شدہ UTXOs کو خرچ شدہ کے طور پر نشان زد کر دیا جاتا ہے، تاکہ انہیں دوبارہ استعمال نہ کیا جا سکے۔
وسائل
How Bitcoin Works Under the Hood
“How Bitcoin Works under the Hood” دیکھیں

↑ فہرست پر واپس