پچھلے سال میں نے یہاں Bitcoin کے بارے میں پانچ خیالات لکھے تھے، اور ایسا لگتا ہے کہ یہ Bitcoin کے بارے میں میرا پہلا مضمون ہے، آج میں یہاں Bitcoin کے معاہدے کے بارے میں بات کروں گا۔
یہ مضمون مائیکل نیلسن کا ترجمہ ہے Bitcoin پروٹوکول کے بارے میں مضمون، یہ مضمون مائیکل نیلسن کے بارے میں سب سے زیادہ واضح مضمون ہے جو مترجم نے لکھا ہے۔ مائیکل نیلسن ایک سائنسدان ، مصنف اور پروگرامر ہیں جنہوں نے کوانٹم کمپیوٹنگ کی تحقیق کی ہے۔ تفصیلات کے لئے ، براہ کرم ان کا اپنا تعارف دیکھیں۔ اس مضمون کا ترجمہ اس لئے کیا گیا ہے کہ مترجم نے سوچا کہ بہت سارے ، بہت سے معاون اور بہت سے مخالف ہیں جو Bitcoin کے بارے میں مضمون اور بحث کرتے ہیں۔ لیکن زیادہ تر تصوراتی ، قیمت اور موضوعی سوچ پر قائم ہیں۔ میں Bitcoin کی موجودہ قیمت اور ظاہری شکل کو دور کرنا چاہتا ہوں ، اور اس مضمون کے ذریعہ ، Bitcoin پروٹوکول کے کام کرنے کے اصول کو تفصیل سے پیش کرنا چاہتا ہوں۔ مجھے یقین ہے کہ کسی چیز کے پیچھے کام کرنے والے اصول کو سمجھنا میرے لئے بہت ضروری ہے۔
صرف لوگوں کو یہ بتانا ہے کہ یہ کیا ہے ، جہاں یہ الیکٹرانک منی اسپیس میں فٹ بیٹھتا ہے ، نہ کہ ان کو اس بات پر قائل کرنے کی کوشش کرنا کہ یہ اچھا ہے۔ ان کا ایک اور قول یہ ہے کہ اگر آپ مجھے یقین نہیں کرتے یا اسے حاصل نہیں کرتے ہیں تو ، میرے پاس آپ کو قائل کرنے کی کوشش کرنے کا وقت نہیں ہے ، معذرت
ہزاروں مضامین بٹ کوائن ، ایک آن لائن ، ہم مرتبہ کرنسی کی وضاحت کرنے کی کوشش کر رہے ہیں۔ زیادہ تر مضامین اس کے بنیادی معاہدے کے بارے میں ایک چھوٹا سا ٹکڑا لے کر جاتے ہیں ، بہت ساری تفصیلات کو چھوڑ دیتے ہیں۔ یہاں تک کہ گہری مضامین بھی اہم مقامات پر رک جاتے ہیں۔ اس مضمون کا مقصد بٹ کوائن پروٹوکول کے پیچھے موجود نکات کو ہر ممکن حد تک واضح اور آسانی سے سمجھنے کے لئے بیان کرنا ہے۔ ہم پہلے اصول سے شروع کرتے ہیں ، بٹ کوائن پروٹوکول کے بارے میں ایک وسیع نظریاتی تفہیم تیار کرتے ہیں ، اور پھر تفصیلات میں گہرائی میں جاتے ہیں ، اور بٹ کوائن ٹرانزیکشن میں موجود اعداد و شمار کی جانچ کرتے ہیں۔
اس پروٹوکول کو گہرائی سے سمجھنا مشکل ہے ، کیوں کہ بٹ کوائن کو دیانت دار سمجھنا اور اس کے بارے میں سوچنا بہت آسان ہے کہ اس کے ذریعہ کیسے رقم کمائی جائے ، یہ سوچنا کہ کیا یہ ایک بلبلا ہے ، یہ سوچنا کہ کیا اس کا مطلب ٹیکسوں کا خاتمہ ہے ، وغیرہ۔ یہ سوچنا بہت دلچسپ ہے ، لیکن یہ خیالات آپ کی تفہیم کو شدید حد تک محدود کرتے ہیں۔ اور بٹ کوائن کے پروٹوکول کو سمجھنے سے آپ کے ذہن میں ایک اور نقطہ نظر کھل جائے گا جس تک رسائی حاصل نہیں کی جاسکتی ہے۔
میں بٹ کوائن اسکرپٹ اور اسمارٹ معاہدوں کی وضاحت بعد کے مضامین میں کروں گا۔ اس مضمون میں میں بٹ کوائن معاہدے کی مخصوص تفصیلات پر توجہ مرکوز کروں گا۔ اس مضمون کو سمجھنے کے ل you آپ کو عوامی کلیدی پاس ورڈ اور اس سے وابستہ ڈیجیٹل دستخطوں سے واقف ہونے کی ضرورت ہوگی ، (براہ کرم دو تصورات کو سمجھیں) ۔
بٹ کوائن کی بنیاد کریپٹولوجی پر ہے ، اور یہ آپ کو حیرت میں ڈال سکتا ہے ، کیا یہ ایک کرنسی ہے؟ کیا یہ خفیہ پیغامات بھیجنے کا ایک طریقہ ہے؟ دراصل ، بٹ کوائن جو مسئلہ حل کرنا چاہتا ہے اس میں زیادہ تر معاملات کی حفاظت کے بارے میں ہے ، اس بات کا یقین کرنے کے لئے کہ لوگ دوسروں کی چیزیں چوری نہیں کرسکتے ہیں یا دوسروں کا دعویٰ نہیں کرسکتے ہیں۔ ایٹم پر مشتمل ماد .ی دنیا میں ، ہم تالے ، دستخط ، بینک سیفٹ وغیرہ کے ذریعہ حفاظت کو یقینی بناتے ہیں۔ انفارمیشن کی دنیا میں ، ہم خفیہ کاری کے ذریعہ حفاظت کو یقینی بناتے ہیں۔ یہی وجہ ہے کہ بٹ کوائن کا بنیادی مقصد ایک خفیہ کاری کا معاہدہ ہے۔
اس مضمون کی حکمت عملی بٹ کوائن کی تعمیر کی ایک پرت ہے۔ ہم ایک بہت ہی سادہ ڈیجیٹل کرنسی سے شروع کریں گے ، جسے ہم انفو کوائن کوائن کہتے ہیں ، تاکہ اسے بٹ کوائن سے ممتاز کیا جاسکے۔ یقینا our ہمارے پہلے ورژن میں انفو کوائن کی بہت سی خامیاں ہوں گی ، لہذا ہم کئی ایڈیشنز سے گزریں گے ، اور ہر ایڈیشن میں ایک یا دو نئے تصورات متعارف کرائے جائیں گے۔ کئی بار کے بعد ، ہم ایک مکمل بٹ کوائن پروٹوکول حاصل کریں گے۔ ہم ایک ساتھ مل کر بٹ کوائن کو دوبارہ ایجاد کریں گے۔
یہ طریقہ Bitcoin کو براہ راست سمجھنے کے لئے شروع کرنے سے کہیں زیادہ سست ہے۔ لیکن یہاں تک کہ اگر آپ Bitcoin کے اصولوں کو سمجھ سکتے ہیں تو ، آپ کو یہ سمجھنا مشکل ہوگا کہ Bitcoin کو اس طرح کیوں ڈیزائن کیا گیا ہے۔ آہستہ آہستہ قدم بہ قدم کی تشریح کی خوبی یہ ہے کہ اس سے آپ کو Bitcoin کے ہر عنصر کی واضح تفہیم مل سکتی ہے۔
آخر میں ، میں یہ کہنا چاہتا ہوں کہ میں بٹ کوائن کی دنیا میں نسبتا new نیا ہوں۔ میں نے 2011 میں اس کی معمولی توجہ دی تھی ، لیکن اس کی تفصیلات کو سنجیدگی سے مطالعہ کرنے کے لئے 2013 کے اوائل میں۔ میں کسی کو بھی اس حصے میں ترمیم کرنے کا خیرمقدم کرتا ہوں جہاں میں غلط تھا۔
ایک ڈیجیٹل کرنسی کا تصور کرنا ناممکن لگتا ہے۔ فرض کریں کہ ایک شخص، جسے ہم ایلس کہتے ہیں، کے پاس ڈیجیٹل کرنسی ہے جسے وہ خرچ کرنا چاہتا ہے۔ اگر ایلس کو ایک ہی حروف کی ایک سٹرنگ سے پیسہ ملتا ہے، تو ہم اسے کیسے روک سکتے ہیں؟ اگر ہم اس مسئلے کو حل کر سکتے ہیں، تو ہم دوسروں کو اس سے کیسے روک سکتے ہیں کہ وہ ایک ہی حروف کی ایک سٹرنگ کو جعلی بنائیں اور اسے ایلس سے چوری کریں؟
یہ صرف ان بہت سے مسائل میں سے دو ہیں جن کا حل معلومات کو کرنسی کے طور پر استعمال کرنا ہے۔ پہلے انفو کوائن میں ، ہم نے سوچا کہ ایلس کو ایک اسٹرنگ بطور پیسہ دینا چاہئے ، اور اسے جعل سازی سے بچانے کا ایک طریقہ ہے۔ فرض کریں کہ ایلس ایک انفو کوائن کسی دوسرے شخص کو دینا چاہتی ہے۔ ایلس کو ایک پیغام لکھنے کی ضرورت ہے:
اس طریقہ کار میں کچھ خاص نہیں ہے ، لیکن اس کے کچھ فوائد بھی ہیں۔ دنیا میں کوئی بھی شخص ایلس کی عوامی کلید کا استعمال کرکے تصدیق کرسکتا ہے کہ ایلس واقعی وہ شخص ہے جس نے دستخط کیا ہے۔ کسی اور کو اس دستخط کا نتیجہ نہیں مل سکتا ہے۔ یہ دستخط صرف ایلس کی ملکیت والی نجی کلید سے ہی پیدا ہوسکتا ہے ، لہذا ایلس کو یہ کہنے میں کوئی افسوس نہیں ہے کہ میں نے انفوکوئن کو باب کو نہیں دیا ہے۔ اس طرح ، یہ معاہدہ ایلس کو یہ ثابت کرتا ہے کہ اس نے بوب کو انفوکوئن دینے کا ارادہ کیا تھا۔ اسی طرح ، کوئی اور شخص اس طرح کی دستخط شدہ معلومات پیدا نہیں کرسکتا ہے ، اس طرح ایلس کی معلومات کو جعل سازی سے روکتا ہے۔ یقینا ، جب ایلس نے اپنا پیغام شائع کیا ہے تو ، دوسرے لوگوں کو اس پیغام کی نقل تیار کرنے کا امکان ہے ، لیکن اس کی اشاعت سے پہلے اس کی جعل سازی ممکن نہیں ہے۔ لہذا ، اس معاہدے میں واقعی قابل توجہ خصوصیات یہ ہیں کہ اس کے شائع ہونے سے پہلے ارادے کی تصدیق اور پیغامات کو جعل سازی سے روکنا۔
میں نے ابھی تک یہ نہیں کہا کہ اس معاہدے میں پیسہ کیا ہے۔ واضح طور پر ، پیسہ خود ہی پیغام ہے۔ یعنی ، اس سلسلے میں جس نے اپنا نام لکھا ہے اس کی نمائندگی کرتا ہے کہ میں نے ایلس کو بوب کو ایک انفو کوائن دیا ہے۔ بعد میں معاہدہ اسی طرح ہوگا ، یعنی ، تمام ڈیجیٹل کرنسیاں صرف زیادہ سے زیادہ تفصیلی پیغامات ہیں۔
ہمارے پہلے ایڈیشن کے انفوکوئن کا مسئلہ یہ تھا کہ ایلس بار بار ایک ہی دستخط شدہ پیغام بوب کو بھیج سکتی ہے۔ فرض کریں کہ بوب کو 10 ایسے پیغامات موصول ہوئے۔ مجھے حیرت ہے ، ایلس ، بوب کو ایک انفوکوئن دینا۔ کیا یہ ہے کہ ایلس نے بوب کو 10 مختلف انفوکوئن دیئے؟ یا ایلس نے بوب کو ایک انفوکوئن دیا ، صرف اس لئے کہ پیغام بے دخل طور پر دہرا رہا تھا؟ یا وہ بوب کو یہ سمجھا کر دھوکہ دینا چاہتی تھی کہ اس نے اسے 10 انفوکوئن دی ہیں ، جبکہ باہر کی دنیا کو بھیجے گئے پیغامات نے اس بات کی تصدیق کی ہے کہ اس نے صرف ایک انفوکوئن دی ہے۔
ہم چاہتے ہیں کہ infocoin کی ایک منفرد شناخت ہو۔ اسے ایک ٹیگ یا سیریل نمبر کی ضرورت ہوتی ہے۔ ایلس کو پیغام پر دستخط کرنے دیں۔ ایلس بوب کو 8740348 کے سیریل نمبر والے infocoin پر دستخط کرے گی۔ پھر اگر ایلس کسی اور پیغام پر دستخط کرے تو ایلس بوب کو 8770431 کے سیریل نمبر والے infocoin پر دستخط کرے گی۔ اس طرح بوب اور دوسرے لوگ جان لیں گے کہ یہ دو الگ الگ infocoin ہیں۔
اس منصوبے کو عملی جامہ پہنانے کے لیے ہمیں ایک قابل اعتماد سیریل نمبر کا ذریعہ درکار ہوگا۔ سیریل نمبر بنانے کا ایک طریقہ یہ ہے کہ ایک ادارہ قائم کیا جائے جیسے کہ ایک بینک۔ یہ بینک انفوکوئن کے لیے سیریل نمبر تیار کرے گا، جس میں یہ ریکارڈ رکھا جائے گا کہ انفوکوئن کس کے پاس ہے اور اس سے یہ بھی تصدیق کی جائے گی کہ یہ ٹرانزیکشن درست ہے۔
مزید تفصیلات کے لئے ، ہم فرض کرتے ہیں کہ ایلس ایک بینک میں جاتی ہے اور کہتی ہے کہ میں اپنے اکاؤنٹ سے ایک انفوکوئن لینا چاہتا ہوں۔ بینک نے اس کے اکاؤنٹ سے ایک انفوکوئن کاٹ دیا ، اور پھر اسے ایک نیا سیریل نمبر دیا جو کبھی استعمال نہیں کیا گیا تھا ، فرض کریں کہ یہ 1234567 ہے ۔ پھر ، جب ایلس بوب کو ایک انفوکوئن بھیجنا چاہتی ہے تو ، وہ اس نئے پیغام پر دستخط کرتی ہے کہ میں ایلس کو بوب کو ایک سیریل نمبر 1234567 انفوکوئن دینا چاہتا ہوں۔ لیکن بوب نے نہ صرف انفوکوئن قبول کیا ، بلکہ اس نے بینک سے رابطہ کیا اور دو چیزوں کی تصدیق کی ، پہلا ، سیریل نمبر 1234567 انفوکوئن واقعی ایلس کی ملکیت ہے۔ دوسرا ، ایلس نے ابھی تک انفوکوئن کو ختم نہیں کیا تھا۔ اس کے بعد بینک نے اس کے ریکارڈ کو اپ ڈیٹ کیا تاکہ یہ ظاہر ہو سکے کہ انفوکوئن اب بوب کی ملکیت میں ہے ، ایلس کی نہیں۔
یہ حل بہت زیادہ ممکنہ لگتا ہے۔ لیکن ہم اس سے بھی زیادہ اہم کام کر سکتے ہیں۔ ہم اس معاہدے سے بینکوں کو ہٹا سکتے ہیں۔ اس سے اس کرنسی کی خصوصیات میں کافی حد تک تبدیلی آئی ہے۔ اس کا مطلب یہ ہے کہ اس کرنسی کے لئے کوئی علیحدہ تنظیم نہیں ہوگی۔ جب آپ سوچتے ہیں کہ مرکزی بینک کے پاس کتنے اختیارات ہیں (اور کرنسی کی اشاعت کو کنٹرول کرتے ہیں) تو اس کا مطلب یہ ہے کہ بہت بڑی تبدیلی ہے۔
اس کا طریقہ یہ ہے کہ ہر ایک کو ایک ساتھ مل کر ایک بینک بنایا جائے۔ خاص طور پر ، ہم فرض کرتے ہیں کہ ہر ایک جو infocoin استعمال کرتا ہے وہ ایک مکمل ریکارڈ رکھتا ہے ، جس میں یہ بھی شامل ہے کہ infocoin کس کا ہے۔ آپ اسے ایک مشترکہ عوامی کتاب کی طرح سوچ سکتے ہیں ، جس میں تمام infocoin ٹرانزیکشنز کی ریکارڈ ہے۔
اب فرض کریں کہ ایلس ایک انفو کوائن بوب کو دے رہی ہے۔۔۔ اس نے میسج میں لکھا ہے کہ ایلس مجھے بوب کو ایک انفو کوائن پر 1234567 کے سیریل نمبر کے ساتھ دستخط کرنے دے گی۔ اور اس کے بعد اس نے اس پر دستخط کئے۔ اس کے بعد اس نے میسج کو بوب کو بھیجا۔ اس کے بعد بوب نے اس کو اپنی بلاک چین سے چیک کیا اور کہا کہ ٹھیک ہے یہ انفو کوائن وہی ہے جو ایلس نے مجھے دیا تھا۔ اگر اس نے چیک کیا تو اس نے ایلس کا پیغام اور اس انفو کوائن کا اپنا پیغام پورے نیٹ ورک پر جاری کردیا۔ اور پھر سب نے اپنے بلاک چین کو اپ ڈیٹ کیا۔
ہم اب بھی اس بات کا مسئلہ ہے کہ یہ سیریل نمبر کہاں سے آیا ہے، لیکن یہ معاملہ بہت آسان ہے، لہذا میں اس کے بارے میں مزید وضاحت کروں گا۔ اس سے بھی زیادہ مشکل مسئلہ یہ ہے کہ یہ معاہدہ ایلس کو بار بار اس کے انفو کوئن خرچ کرنے کی اجازت دیتا ہے۔ وہ ایک دستخط شدہ پیغام جاری کر سکتی ہے کہ ایلس بوب کو ایک سیریل نمبر 1234567 کے انفو کوئن دے گی، اور وہ ایک دستخط شدہ پیغام بھی جاری کر سکتی ہے کہ ایلس چارلی کو ایک سیریل نمبر 1234567 کے انفو کوئن دے گی۔ باب اور چارلی دونوں نے انفو کوئن کی جانچ پڑتال کے لئے اپنے بلاکچین کا استعمال کیا ہے۔ فرض کریں کہ وہ ایک ہی وقت میں جانچ پڑتال کر رہے ہیں۔ اس سے پہلے کہ وہ دونوں ایک دوسرے کے بارے میں معلومات حاصل کریں ، وہ دونوں کو یہ پتہ چل جائے گا کہ یہ میرا بلاکچین ہے جو ایلس کا ہے۔ لہذا وہ دونوں اس سودے کو قبول کرتے ہیں اور اس کی معلومات کو پورے نیٹ ورک پر عام کرتے ہیں۔ اب اس مسئلے کا سامنا کرنا پڑتا ہے کہ دوسرے لوگوں کو اپنے بلاکچین کو کیسے اپ ڈیٹ کرنا چاہئے؟ اس طرح کے سادہ طریقے سے ، ہر ایک
ہم نے اس مسئلے کو ‘دوگنا خرچ کرنے کا مسئلہ’ کا نام دیا ہے۔ پہلی نظر میں ایسا لگتا ہے کہ اس طرح کا دوگنا خرچ کرنا بہت مشکل ہے۔ آخر کار ، اگر ایلس نے پہلے باب کو پیغام بھیجا اور پھر باب نے باقی سب کو (بشمول چارلی) کو پیغام بھیجا ، تو دوسرے لوگوں نے اپنے بلاکچین کو اپ ڈیٹ کیا۔ اس وقت ، چارلی کو ایلس کے ذریعہ دھوکہ نہیں دیا گیا تھا۔ لہذا ایسا لگتا ہے کہ دوگنا خرچ کرنا صرف ایک مختصر وقت کے لئے ممکن ہے۔ تاہم ، یہاں تک کہ اگر یہ وقت بہت کم ہے تو ، اس مسئلے کا بھی سامنا کرنا پڑتا ہے۔ اس سے بھی بدتر بات یہ ہے کہ ، ایلس کچھ چالوں سے اس وقت کو بڑھا سکتی ہے۔ مثال کے طور پر ، وہ نیٹ ورک تجزیہ سافٹ ویئر کا استعمال کر سکتی ہے جب وہ باب اور چارلی کے مابین بات چیت میں تاخیر کا وقت ڈھونڈ سکتی ہے۔
تو اس مسئلے کو کیسے حل کیا جائے؟ اس کا سب سے آسان حل یہ ہے کہ جب ایلس بوب کو انفو کوائن بھیجتی ہے تو ، بوب کو اس لین دین کی جانچ نہیں کرنی چاہئے۔ اس کے بجائے ، اس نے اس ٹرانزیکشن کو پورے انفو کوائن نیٹ ورک میں شائع کرنا چاہئے ، تاکہ دوسرے لوگوں کو یہ فیصلہ کرنے میں مدد مل سکے کہ آیا یہ ٹرانزیکشن معقول ہے۔ اگر وہ مل کر فیصلہ کرتے ہیں کہ یہ ٹرانزیکشن معقول ہے تو ، بوب اس انفو کوائن کو قبول کرسکتا ہے ، اور پھر سبھی اپنے بلاکچین کو اپ ڈیٹ کرتے ہیں۔ اس قسم کے معاہدے سے جڑواں پن کو روکا جاسکتا ہے ، کیونکہ اگر ایلس بیک وقت بوب اور چارلی کو ایک ہی انفو کوائن بھیجنا چاہتی ہے تو ، نیٹ ورک پر موجود دوسرے لوگوں کو اس کا احساس ہوجائے گا اور بوب اور چارلی کو اس ٹرانزیکشن کے بارے میں بتائے گا کہ اس میں کوئی مسئلہ ہے ، اور اس کے بعد اس ٹرانزیکشن کو منظور نہیں کیا جائے گا۔
مزید خاص طور پر ، فرض کریں کہ ایلس بوب کو ایک انفوکوئن دینا چاہتی ہے۔ جیسا کہ اس سے پہلے ، اس نے ایک پیغام پر دستخط کیے۔ مجھے بتائیں کہ ایلس بوب کو ایک انفوکوئن کٹ کا سیریل نمبر 1234567 دے گی اور بوب کو ایک مشہور پیغام پر دستخط کرے گی۔ جیسا کہ اس سے پہلے ، بوب نے اپنے بلاکچین کا استعمال کرتے ہوئے ایک چیک کیا ، یہ سکے واقعی ایلس کے ہیں۔ لیکن معاہدہ مختلف ہے ، بوب نے براہ راست اس کو قبول نہیں کیا ، بلکہ ایلس کے پیغام کو پورے نیٹ ورک پر شائع کیا۔ نیٹ ورک کے دوسرے ممبران نے چیک کیا کہ آیا ایلس کے پاس انفوکوئن ہے یا نہیں ، اور اگر ایسا ہے تو ، انہوں نے پیغام شائع کیا اور کہا کہ ٹھیک ہے ، ایلس کے پاس واقعی انفوکوئن 1234567 ہے ، اور اب اسے بوب کو منتقل کیا جاسکتا ہے۔
اس پروٹوکول کے بارے میں اب بھی بہت سے غیر یقینی عوامل ہیں۔ مثال کے طور پر ، اگر کافی لوگ اس خبر کو شائع کرتے ہیں تو اس کا کیا مطلب ہے ، اور کتنے افراد کافی ہیں؟ یہ پورے انفوکوئن نیٹ ورک نہیں ہوسکتا ہے ، کیونکہ ہمیں پہلے سے معلوم نہیں ہے کہ انفوکوئن نیٹ ورک پر کون ہے۔ اسی طرح ، یہ بھی نہیں ہوسکتا ہے کہ اس کا ایک مقررہ حصہ صارف ہو۔ ہم ابھی ان مسائل کو واضح کرنے میں جلدی نہیں کرتے ہیں۔ یہاں ، میں اس تجارتی نظام کے ایک سنگین مسئلے کی نشاندہی کروں گا ، جس سے اس مسئلے کو حل کرنے میں مدد ملے گی۔
فرض کریں کہ ایلس مذکورہ بالا معاہدے میں ڈبل فلو چاہتا ہے ، اسے انفوکوئن نیٹ ورک پر قابو پانے کی ضرورت ہے۔ فرض کریں کہ وہ انفوکوئن نیٹ ورک پر ایک خودکار نظام کا استعمال کرتے ہوئے بہت سے مختلف شناخت والے اکاؤنٹس بناتا ہے ، فرض کریں کہ ایک ارب ہیں۔ اور پہلے کی طرح ، اس نے ڈبل فلو کرنے کی کوشش کی ، اسی انفوکوئن کو باب اور چارلی کو دے دیا ، لیکن جب باب اور چارلی نے انفوکوئن نیٹ ورک سے اس سودے کی جانچ پڑتال کے لئے پوچھا تو ، ایلس کا گلاس پورے نیٹ ورک میں ڈوب گیا ، جس نے باب اور چارلی کو بتایا کہ وہ اس سودے کے ذریعے جاسکتے ہیں اور ممکنہ طور پر ان میں سے ایک یا دونوں کو اس سودے کو قبول کرنے کے لئے دھوکہ دے سکتے ہیں۔
اس کا ایک ذہین طریقہ ہے، جسے Proof-of-work کہا جاتا ہے۔ یہ طریقہ بہت زیادہ بدیہی نہیں ہے، اس کے لیے دو تصورات کو یکجا کرنے کی ضرورت ہے، 1) انسانوں کو چیک ٹرانزیکشن کے عمل کے لیے زیادہ لاگت آنے والی حساب کتاب کی لاگت؛ 2) ان کی مدد کرنے کے لیے ان کو انعام دینا۔ انعام کے طریقہ سے اس نیٹ ورک پر موجود لوگوں کو ٹرانزیکشن کی تصدیق کرنے کے لیے حوصلہ افزائی کی جائے۔ ٹرانزیکشن کی تصدیق کے اخراجات میں اضافہ کرنے کا فائدہ یہ ہے کہ تصدیق اب ان لوگوں کے کنٹرول میں نہیں رہے جن کے پاس بہت سے اکاؤنٹس ہیں، بلکہ صرف اس کی مجموعی کمپیوٹنگ طاقت کے کنٹرول میں رہے گی جو وہ فراہم کر سکتے ہیں۔ ہم دیکھیں گے کہ کچھ ذہین ڈیزائن کے ذریعے، ہم دھوکہ دہی کرنے والے کو دھوکہ دہی کے مقصد کو حاصل کرنے کے لیے بہت زیادہ کمپیوٹنگ وسائل خرچ کرنے پڑیں گے، اور اسے غیر حقیقی بنا دیں گے۔
یہ کام کے ثبوت کا بنیادی نقطہ نظر ہے۔ لیکن کام کے ثبوت کو صحیح طور پر سمجھنے کے لئے، ہمیں زیادہ مخصوص تفصیلات میں جانے کی ضرورت ہے۔
فرض کیجیے کہ ایلس نے پورے نیٹ ورک کو ایک پیغام جاری کیا ہے یا میں ایلس کو باب کو ایک انفوکوئن دینا چاہتا ہوں جس کا سیریل نمبر 1234567 ہے۔ جب نیٹ ورک کے باقی افراد نے یہ خبر سنی تو ہر ایک نے اسے ایک قطار میں شامل کردیا۔ ٹرانزیکشنز جو ابھی تک پورے نیٹ ورک کے ذریعہ منظور نہیں ہوئے ہیں۔ مثال کے طور پر ، نیٹ ورک پر ڈیوڈ نامی شخص کے پاس مندرجہ ذیل قطار میں زیر التواء ٹرانزیکشن ہوسکتے ہیں:

ڈیوڈ نے اپنے بلاکچین کو چیک کیا اور دیکھا کہ مذکورہ بالا ٹرانزیکشنز معقول ہیں۔ وہ اس تصدیق کے پیغام کو پورے نیٹ ورک میں شائع کرنے میں مدد کرنا چاہتا ہے۔ تاہم ، اس سے پہلے ، چیک ٹرانزیکشن کے معاہدے کے لئے ڈیوڈ کو ایک کمپیوٹیشنل پہیلی حل کرنے کی ضرورت ہے جو کام کا ثبوت ہے۔ اگر اس پہیلی کا حل نہیں ملتا ہے تو ، نیٹ ورک کے دوسرے ممبران اس کی تصدیق کو قبول نہیں کریں گے۔
تو ڈیوڈ کو کیا مسئلہ حل کرنا چاہئے؟ اس کی وضاحت کرنے کے لئے ، ہم ایک نیٹ ورک پر ہر ایک کو معلوم ہے کہ ایک مقررہ ہیش فنکشن کا استعمال کرتے ہوئے اس کو اپنے پروٹوکول میں شامل کریں۔ بٹ کوائن ایک معروف SHA-256 ہیش فنکشن کا استعمال کرتا ہے ، لیکن یہاں کوئی بھی کریپٹولوجیکل ہیش فنکشن استعمال کیا جاسکتا ہے۔ ہم ڈیوڈ کو اس سیٹ میں زیر التواء ٹرانزیکشن کا ایک نشان دیتے ہیں ، جو کہ L ہیش ہے ، جو بعد میں حوالہ دیا جاسکتا ہے۔ اس سیٹ میں زیر التواء ٹرانزیکشن بھی بلاکچین کے اندر موجود بلاک کے برابر ہے۔ یہ سمجھنا ضروری ہے کہ بلاک ایک ایسا مجموعہ ہے جو ٹرانزیکشن کی معلومات کا ایک مجموعہ ہے ، جس میں انفرادی ٹرانزیکشنز شامل ہیں۔ فرض کریں کہ ڈیوڈ نے اس بہت سے بلاکس کے بعد ایک نمبر شامل کیا ہے جسے L ہیش کہا جاتا ہے ، اور پھر ان کو ہاش کیا۔ مثال کے طور پر ، ہم L ہیلو ورلڈ کا استعمال کرتے ہیں ، اور کچھ نشانات کو بطور ٹرانزیکشن نشان لگاتے ہیں۔

ڈیوڈ کو اس مسئلے کو حل کرنے کی ضرورت ہوگی (کام کا ثبوت) ایک بے ترتیب نمبر x تلاش کرنا ہے ، جب ہم اس x کو L کے پیچھے شامل کرتے ہیں اور اس مجموعہ کو ہیش کرتے ہیں تو ، اس کا نتیجہ کئی 0s سے شروع ہوتا ہے۔ اس مسئلے کی دشواری کو شروعاتی صفر کی تعداد کو ایڈجسٹ کرکے ایڈجسٹ کیا جاسکتا ہے۔ ایک آسان کام کا ثبوت صرف 3 یا 4 صفر سے شروع ہونے والی ہیش کی ضرورت ہوتی ہے ، اور ایک مشکل کام کا ثبوت زیادہ سے زیادہ صفر کی ضرورت ہوسکتی ہے ، جیسے کہ 15 مسلسل صفر۔ مندرجہ بالا حالات میں ، x = 0 سے 0 تک کی ہیش ناکام ہوجاتی ہے ، کیونکہ نتیجہ 0 سے شروع نہیں ہوتا ہے۔
اور یہ بھی درست نہیں ہے جب x=1 ہو

اور پھر ہم یہ کرتے ہیں کہ x=2، اور پھر ہم یہ کرتے ہیں کہ x=3، 4، 5، اور پھر ہم یہ کرتے ہیں کہ x=4350، اور پھر ہم یہ کرتے ہیں کہ

یہ بے ترتیب نمبر x ہمیں چار صفر سے شروع ہونے والے ہیش کا نتیجہ دیتا ہے۔ یہ کافی ہے کہ ایک سادہ ہیلپ ٹاپ کام کرتا ہے جو ہیلپ ٹاپ کے مسئلے کو حل کرتا ہے۔
اس پہیلی کو حل کرنا آسان نہیں ہے کیونکہ اس کی پاس ورڈ ہیش فنکشن کے نتائج ہمیشہ بے ترتیب ہوتے ہیں۔ ان پٹ ویلیو میں کوئی بھی چھوٹی سی تبدیلی کرنے سے پورے ہیش فنکشن کے آؤٹ پٹ کے نتائج بالکل مختلف ہو جائیں گے، جس کی پیش گوئی کرنا بہت مشکل ہے۔ لہذا اگر ہمیں آؤٹ پٹ کے نتائج 10 0 سے شروع ہونے چاہئیں تو ڈیوڈ کو اس مناسب قدر کو تلاش کرنے کے لئے اوسطا 1610 ≈ 1012 مختلف x کی ضرورت ہوگی۔ یہ ایک بہت ہی چیلنجنگ کام ہے جس میں بہت زیادہ کمپیوٹنگ کی ضرورت ہے۔
واضح طور پر ، ہم کام کے ثبوت کی دشواری کو کنٹرول کرسکتے ہیں اس بات کا تعین کرتے ہوئے کہ کتنے صفر کی ضرورت ہے۔ در حقیقت ، بٹ کوائن پروٹوکول نے اس کام کے ثبوت میں تھوڑا سا ترمیم کرکے دشواری کی دشواری کو بہتر طور پر کنٹرول کیا ہے۔ اب اس بات کا تعین نہیں کیا گیا ہے کہ کتنے شروعاتی صفر کی ضرورت ہے ، بلکہ اس بات کا تعین کیا گیا ہے کہ بلاک کی ہیش آؤٹ پٹ ایک ہدف سے کم یا مساوی ہے ، جو خود بخود ایڈجسٹ ہے ، اس بات کا یقین کرنے کے لئے کہ بٹ کوائن کے ہر بلاک (بلاک) کو حل کرنے میں اوسطا 10 منٹ لگتے ہیں۔
ٹھیک ہے، ہم فرض کرتے ہیں کہ ڈیوڈ خوش قسمت ہے اور اسے ایک مناسب ایکس (nonce) مل گیا ہے، مبارک ہو! (اسے اس کا جواب ملنے کا انعام ملے گا) ۔ وہ اس بات کا اعلان کرے گا کہ اس نے اس بلاک میں ہونے والی ٹرانزیکشنز کو جائز قرار دیا ہے، اور اس کے ساتھ ساتھ وہ ایکس کی قیمت بھی شائع کرے گی، اور انفو کوائن کے دیگر شرکاء اس بات کا ثبوت دے سکتے ہیں کہ ایکس نے اس کام کو درست قرار دیا ہے۔ پھر وہ اپنے بلاکچین کو ڈیوڈ کے ذریعہ شائع کردہ ٹرانزیکشنز کو شامل کرنے کے لئے اپ ڈیٹ کریں گے۔
اس اسکیم کے کام کو ثابت کرنے کے لئے ، نیٹ ورک کے شرکاء کو لین دین کی توثیق میں مدد کے لئے ایک ترغیب کی ضرورت ہوگی۔ اگر کوئی ترغیب نہیں ہے تو ، کوئی بھی لین دین کی جانچ پڑتال میں مدد کے لئے اپنے کمپیوٹر کی طاقت خرچ کرنے کو تیار نہیں ہوگا۔ اگر نیٹ ورک کے شرکاء کو اس پر خرچ کرنے کی خواہش نہیں ہے تو ، پورا نظام کام نہیں کرے گا۔ لہذا ، ہم ان کو انفوکوئنس دے کر کسی بھی شخص کو انعام دے سکتے ہیں جس نے کامیابی کے ساتھ لین دین کی توثیق کی ہے۔ اگر ان کو انفوکوئنس کے انعامات کی پیش کش کی گئی ہے تو ، ان کو تصدیق میں حصہ لینے کے لئے حوصلہ افزائی کی جاسکتی ہے۔
بٹ کوائن کے پروٹوکول میں ، اس تصدیق کے عمل کو کان کنی کہا جاتا ہے۔ ہر ٹرانزیکشن بلاک کی تصدیق کرنے والے کو انعام کے طور پر بٹ کوائنز ملتے ہیں۔ ابتدائی طور پر ، یہ 50 بٹ کوائنز کا انعام تھا۔ لیکن ہر 210,000 تصدیق شدہ بلاکس (یعنی تقریبا every ہر 4 سال بعد) ، انعام آدھا ہوجائے گا۔ اب تک صرف ایک بار ہوا ہے ، یعنی اب ایک بلاک کی تصدیق کرنے والے کو 25 بٹ کوائنز کا انعام ملا ہے۔ آدھا ہونے کا عمل لگ بھگ 2140 تک جاری رہے گا۔ اس وقت ، کان کنی کا انعام 10-8 بٹ کوائنز تک کم ہوجائے گا۔ جبکہ 10-8 بٹ کوائنز بٹ کوائنز کی سب سے چھوٹی اکائی ہے جسے ساتوشی کہا جاتا ہے ، لہذا 2140 تک ، مجموعی طور پر بٹ کوائنز میں اضافہ بند ہوجائے گا۔ تاہم ، اس سے تصدیق کے لین دین کی ترغیب ختم نہیں ہوگی ، اور یہ تصدیق کے ٹرانزیکشن میں حصہ لینے والوں کو اجازت دیتا ہے کہ وہ 25 بٹ کوائنز کی تصدیق کے ٹرانزیکشن فیس کے علاوہ ، 25 بٹ کوائنز کی ادائیگی کریں ، لیکن یہ آہستہ آہستہ انعام
آپ کام کے ثبوت کو ایک مسابقتی توثیقی ٹرانزیکشن کے عمل کے طور پر دیکھ سکتے ہیں۔ ہر شرکاء کو کمپیوٹر کی طاقت کا ایک حصہ خرچ کرنا پڑتا ہے۔ ایک مائنر کے جیتنے کے امکانات تقریبا their ان کے کنٹرول میں آنے والی کمپیوٹنگ طاقت کے سائز اور پورے نیٹ ورک کی کمپیوٹنگ طاقت کے تناسب کے برابر ہیں۔ مثال کے طور پر ، اگر ایک مائنر پورے نیٹ ورک کی کمپیوٹنگ طاقت کا ایک فیصد کنٹرول کرتا ہے تو اس کی جیت کا امکان بھی تقریبا one ایک فیصد ہے۔ لہذا ، بڑی مقدار میں کمپیوٹنگ طاقت کی فراہمی مسابقت کو برقرار رکھنے کا ایک عنصر ہے ، اور ایک بے ایمان مائنر کے پاس توثیقی عمل کو خراب کرنے کا بہت کم موقع ہوتا ہے ، جب تک کہ وہ کمپیوٹر کے بہت بڑے وسائل خرچ نہ کریں۔
یقینا، اگر ایک غیر منصفانہ مائنر کے پاس پورے بلاکچین کو تباہ کرنے کا بہت کم موقع ہے، تو ہم اس کو کرنسی کے طور پر استعمال کرنے کے لئے کافی اعتماد نہیں رکھتے ہیں.
میں فوراً ہی دو پھولوں کے مسئلے کا تجزیہ کروں گا، لیکن اس سے پہلے، میں انفو کوائن کے تصور میں ایک اہم تفصیل شامل کرنا چاہتا ہوں۔ مثالی طور پر، ہم چاہتے ہیں کہ انفو کوائن نیٹ ورک میں ایک ہی ترتیب میں لین دین ہو۔ اگر ہمارے پاس کوئی یکساں ترتیب نہیں ہے تو، یہ واضح نہیں ہے کہ کون سا انفو کوائن کسی خاص وقت میں ہے۔ اس مسئلے کو حل کرنے میں مدد کرنے کے لئے۔ ہم نئے بلاکس (بلاک) کی ضرورت کرتے ہیں جس میں ایک اشارے شامل ہونا ضروری ہے جو ایک بلاک کی طرف اشارہ کرتا ہے، جو اصل میں ایک بلاک کا ہیش (ہاش) نتیجہ ہے۔ لہذا، بنیادی طور پر، بلاک چین (بلاک چین) خود بھی ایک لکیری سلسلہ ہے جس میں ٹرانزیکشن کی معلومات پر مشتمل بلاکس (بلاک) شامل ہیں، ایک کے بعد ایک، ہر بلاک میں ایک اشارے شامل ہیں۔

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

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

جب انہیں یہ پیغام موصول ہوتا ہے تو ، شاخ A میں لوگ نوٹ کریں گے کہ اب شاخ B سب سے لمبی ہے ، لہذا وہ B کی شاخ میں منتقل ہوجائیں گے۔ شاخ A پر کام فوری طور پر رک جاتا ہے ، لہذا ہر ایک ایک ہی ترتیب والے بلاکچین پر کام کر رہا ہے۔ پھر بلاک A کو نظرانداز کردیا جائے گا۔ یقینا ، بلاک A میں تمام زیر التوا ٹرانزیکشنز زیر التوا رہیں گے ، اور پھر انہیں شاخ B پر نئے بلاک میں ڈال دیا جائے گا ، تاکہ تمام ٹرانزیکشنز کی تصدیق ہوجائے۔
اسی طرح، اگر شاخ A پر کان کن اگلے بلاک تک پہنچ جاتا ہے، تو شاخ B پر کام کرنے والا شخص رک جاتا ہے اور شاخ A پر جاتا ہے.
بہر حال ، اس عمل سے یہ یقینی بنتا ہے کہ بلاکچین میں یکساں ترتیب ہے۔ بٹ کوائن میں ، ایک ٹرانزیکشن کو اس وقت تک تصدیق کے طور پر نہیں سمجھا جاتا ہے جب تک کہ 1) یہ سب سے طویل شاخ میں موجود بلاک میں موجود ہے ، اور 2) کم از کم 5 تصدیق شدہ بلاکس اس کے پیچھے تصدیق شدہ ہیں۔ اس صورت میں ، ہم کہتے ہیں کہ اس ٹرانزیکشن میں 6 تصدیق شدہ کالم ہیں۔ اس سے پورے نیٹ ورک کو بلاک کی ترتیب کو متحد کرنے کا وقت ملتا ہے۔
اب جب کہ ہم اس وقت کی ترتیب کو سمجھ چکے ہیں ، آئیے ہم سوچیں کہ اگر کوئی بے ایمان شخص دوگنا خرچ کرنا چاہتا ہے۔ فرض کریں کہ ایلس ایک ہی وقت میں بوب اور چارلی کو ایک ہی ٹرانزیکشن دینا چاہتی ہے۔ ایک امکان یہ ہے کہ وہ ایک ہی وقت میں دو ٹرانزیکشنوں کے ساتھ ایک بلاک کی تصدیق کرے۔ فرض کریں کہ اس کے پاس ایک فیصد کمپیوٹنگ کی طاقت ہے ، تو اس کا امکان ہے کہ وہ اس بلاک کی تصدیق کرنے میں خوش قسمت ہے۔ بدقسمتی سے ، اس دوگنی لاگت کو دوسرے لوگوں نے فورا discover ہی دریافت کیا اور مسترد کردیا جائے گا ، حالانکہ اس نے اس کام کو ثابت کرنے کی دشواری کو حل کیا ہے۔ لہذا اس امکان کے بارے میں ہمیں فکر کرنے کی ضرورت نہیں ہے۔
لیکن ایک اور امکان یہ بھی ہے کہ وہ دو ٹرانزیکشنز کو الگ الگ شائع کرنے کی کوشش کر رہی ہے۔ وہ ایک ٹرانزیکشن کو ایک مائنر کو شائع کر سکتی ہے اور دوسری کو ایک اور مائنر کو شائع کر سکتی ہے اور وہ دونوں ٹرانزیکشنز کی تصدیق کرنا چاہتی ہے۔ خوش قسمتی سے ، اس معاملے میں ، جیسا کہ ہم نے ابھی کہا ، نیٹ ورک صرف ایک ہی ٹرانزیکشن کی تصدیق کرے گا۔ لہذا ، یہ کوئی مسئلہ نہیں ہے۔
ایک اور امکان یہ ہے کہ ایلس = بوب، یعنی ایلس ایک سکے کو چارلی کو دینے کی کوشش کر رہی ہے اور وہ ایک سکے کو خود بھی دے رہی ہے کیونکہ اس کے پاس خود ایک سے زیادہ اکاؤنٹس ہوسکتے ہیں۔ اس صورت میں، ایلس کی حکمت عملی یہ ہے کہ وہ اس وقت تک انتظار کرے جب تک کہ چارلی انفوکوئن کو قبول نہ کرے، یعنی اس وقت تک جب تک کہ اس ٹرانزیکشن کو سب سے طویل بلاکچین میں 6 بار تصدیق نہ کی جائے۔ اس کے بعد وہ اس بلاک کی دوسری شاخ کو حل کرنے کی کوشش کرتی ہے جس کے پاس وہ ٹرانزیکشن ہے جو اس نے اپنے لئے بھیجا تھا۔

بدقسمتی سے ، اس وقت ایلس سب سے طویل بلاکچین سے 6 قدم پیچھے ہے۔ اس کے لئے سب سے طویل شاخ کو پکڑنا مشکل ہے۔ دوسرے کان کنوں نے اس کی مدد نہیں کی ، کیونکہ ان سب کو انعام حاصل کرنے کے لئے سب سے طویل شاخ پر کام کرنے کی ضرورت ہے۔ جب تک کہ ایلس کام کے ثبوت کو حل کرنے کے لئے نیٹ ورک پر کسی اور سے زیادہ تیزی سے جوڑنے میں کامیاب نہ ہو (یعنی اس کے پاس پورے نیٹ ورک کی کمپیوٹنگ طاقت کا 50٪ سے زیادہ ہونا چاہئے) ۔
یقینا یہ بہت سخت نہیں ہے کہ ایلس کو یقینی طور پر دوپہر نہیں مل سکتی ہے۔ یہ صرف ایک معقول نتیجہ ہے۔ بٹ کوائن کی وائٹ پیپر کا اصل ایک سخت سیکیورٹی تجزیہ نہیں کیا گیا تھا ، صرف میرے جیسے غیر رسمی نتیجہ۔ سیکیورٹی گروپ بٹ کوائن کی حفاظت اور ممکنہ خامیوں کا تجزیہ کر رہے ہیں۔
یہ پہلا حصہ ہے، دوسرا حصہ مصنف مائیکل نے انفو کوائن کے تصور کو چھوڑ دیا ہے، اور بٹ کوائن کے معاہدے کو بٹ کوائن ٹریڈنگ کے نقطہ نظر کے ذریعے مزید تفصیل سے بیان کیا ہے۔ اگر آپ اسے یہاں دیکھتے ہیں تو ، آپ میری ویبو اور بلاگ کو دیکھ سکتے ہیں۔
اگر آپ کو اس مضمون میں مدد ملتی ہے تو ، میں تجویز کرتا ہوں کہ آپ اس مضمون کے مصنف مائیکل نیلسن کو ٹپ دیں ، جس کا پتہ 17ukkKt1bNLAqdJ1QQv8v9Askr6vy3MzTZ ہے ، اور آپ اس کے ٹویٹر پر بھی اس کی پیروی کرسکتے ہیں۔ یا نیورل نیٹ ورکس اور گہری سیکھنے کے بارے میں اس کی کتاب کے پہلے باب پر توجہ دیں۔
ٹائمز آف انڈیا کے مطابق