اس آرٹیکل میں، میں آپ کو ڈی اے جی (ڈائریکٹڈ ایسکلک گراف) اور تقسیم شدہ لیجرز میں اس کے اطلاق کے بارے میں بتاؤں گا، اور ہم اس کا موازنہ بلاک چین سے کریں گے۔
DAG cryptocurrencies کی دنیا میں کوئی نئی چیز نہیں ہے۔ آپ نے اسے بلاکچین اسکیل ایبلٹی مسائل کے حل کے طور پر سنا ہوگا۔ لیکن آج ہم اسکیل ایبلٹی کے بارے میں بات نہیں کریں گے، بلکہ اس کے بارے میں بات کریں گے کہ کرپٹو کرنسیوں کو ہر چیز سے مختلف کیا بناتا ہے: وکندریقرت، بیچوانوں کی کمی اور سنسرشپ مزاحمت۔
میں آپ کو یہ بھی دکھاؤں گا کہ ڈی اے جی درحقیقت زیادہ سنسرشپ مزاحم ہے اور لیجر تک رسائی کے لیے کوئی درمیانی نہیں ہے۔
بلاک چینز میں جن سے ہم واقف ہیں، صارفین کو لیجر تک براہ راست رسائی نہیں ہے۔ جب آپ لیجر میں کوئی لین دین شامل کرنا چاہتے ہیں، تو آپ کو اسے کرنے کے لیے بلاک پروڈیوسر (عرف "کان کن") سے "پوچھنا" ہوگا۔ یہ کان کن ہیں جو فیصلہ کرتے ہیں کہ اگلے بلاک میں کون سا لین دین شامل کرنا ہے اور کون سا نہیں۔ یہ کان کنوں کو بلاکس تک خصوصی رسائی حاصل ہے اور یہ فیصلہ کرنے کا حق ہے کہ لیجر میں شامل کرنے کے لیے کس کا لین دین قبول کیا جائے گا۔
کان کن آپ کے اور تقسیم شدہ لیجر کے درمیان کھڑے درمیانی ہیں۔
عملی طور پر، عام طور پر مائنر پولز کی ایک چھوٹی تعداد اجتماعی طور پر نیٹ ورک کی کمپیوٹنگ پاور کے نصف سے زیادہ کو کنٹرول کرتی ہے۔ Bitcoin کے لیے یہ چار پول ہیں، Ethereum کے لیے - دو۔ اگر وہ ملی بھگت کرتے ہیں، تو وہ کسی بھی لین دین کو روک سکتے ہیں جو وہ چاہتے ہیں۔
پچھلے کچھ سالوں میں، بلاک چینز کے بہت سے تغیرات تجویز کیے گئے ہیں، جو بلاک پروڈیوسر کے انتخاب کے اصولوں میں مختلف ہیں۔ لیکن بلاک پروڈیوسر خود کہیں نہیں جا رہے ہیں، وہ اب بھی "رکاوٹ پر کھڑے ہیں": ہر لین دین کو بلاک پروڈیوسر کے ذریعے ہونا چاہیے، اور اگر وہ اسے قبول نہیں کرتا ہے، تو لین دین، حقیقت میں، موجود نہیں ہے۔
یہ بلاکچین کے ساتھ ایک ناگزیر مسئلہ ہے۔ اور اگر ہم اسے حل کرنا چاہتے ہیں تو ہمیں ڈیزائن کو یکسر تبدیل کرنا ہوگا اور بلاکس اور بلاک پروڈیوسروں سے مکمل طور پر چھٹکارا حاصل کرنا ہوگا۔ اور بلاکس کی ایک زنجیر بنانے کے بجائے، ہم لین دین کو خود جوڑیں گے، بشمول ہر لین دین میں پچھلے کئی ہیشز۔ نتیجے کے طور پر، ہمیں ایک ڈھانچہ ملتا ہے جسے ریاضی میں ایک ڈائریکٹڈ ایسکلک گراف کے طور پر جانا جاتا ہے - DAG۔
اب ہر کسی کو بیچوان کے بغیر رجسٹری تک براہ راست رسائی حاصل ہے۔ جب آپ لیجر میں کوئی لین دین شامل کرنا چاہتے ہیں، تو آپ اسے آسانی سے شامل کرتے ہیں۔ آپ متعدد پیرنٹ ٹرانزیکشنز کو منتخب کرتے ہیں، اپنا ڈیٹا شامل کرتے ہیں، اپنے لین دین پر دستخط کرتے ہیں اور نیٹ ورک کے ساتھیوں کو بھیجتے ہیں۔ تیار. آپ کو ایسا کرنے سے روکنے والا کوئی نہیں ہے، اس لیے آپ کا لین دین پہلے ہی لیجر پر ہے۔
بیچوانوں کے بغیر لیجر میں لین دین کو شامل کرنے کا یہ سب سے زیادہ وکندریقرت، سب سے زیادہ سنسرشپ پروف طریقہ ہے۔ کیونکہ ہر کوئی کسی سے اجازت لیے بغیر اپنے لین دین کو رجسٹری میں شامل کرتا ہے۔
ڈی اے جی کو رجسٹریوں کے ارتقا کا تیسرا مرحلہ سمجھا جا سکتا ہے۔ پہلے مرکزی رجسٹریاں تھیں، جہاں ایک فریق ان تک رسائی کو کنٹرول کرتا تھا۔ اس کے بعد بلاک چینز آئے، جن کے پاس پہلے سے ہی کئی کنٹرولرز تھے جو لیجر میں لین دین کو ریکارڈ کرتے تھے۔ اور آخر میں، ڈی اے جی میں کوئی کنٹرولر نہیں ہیں؛ صارفین اپنے لین دین کو براہ راست شامل کرتے ہیں۔
اب جب کہ ہمارے پاس یہ آزادی ہے، اسے افراتفری کا باعث نہیں بننا چاہیے۔ ہمیں رجسٹری کی حالت پر اتفاق ہونا چاہیے۔ اور اس معاہدے، یا اتفاق کا مطلب عام طور پر دو چیزوں پر اتفاق ہوتا ہے:
- کیا ہوا؟
- یہ کس ترتیب سے ہوا؟
ہم پہلے سوال کا آسانی سے جواب دے سکتے ہیں: ایک بار صحیح طریقے سے تخلیق کردہ لین دین کو لیجر میں شامل کرنے کے بعد، یہ واقع ہو گیا ہے۔ اور مدت. اس کے بارے میں معلومات مختلف اوقات میں تمام شرکاء تک پہنچ سکتی ہے، لیکن آخر کار تمام نوڈس کو یہ لین دین موصول ہو جائے گا اور معلوم ہو جائے گا کہ ایسا ہوا ہے۔
اگر یہ بلاک چین ہوتا تو کان کن فیصلہ کرتے کہ کیا ہوتا ہے۔ جو کچھ بھی کان کن بلاک میں شامل کرنے کا فیصلہ کرتا ہے وہی ہوتا ہے۔ ہر وہ چیز جو اس نے بلاک میں شامل نہ کی ہو ایسا نہیں ہوتا۔
بلاک چینز میں، کان کن اتفاق کا دوسرا مسئلہ بھی حل کرتے ہیں: آرڈر۔ انہیں بلاک کے اندر اپنی مرضی کے مطابق لین دین کا آرڈر دینے کی اجازت ہے۔
ڈی اے جی میں لین دین کی ترتیب کا تعین کیسے کریں؟
صرف اس وجہ سے کہ ہمارا گراف ہدایت شدہ ہے، ہمارے پاس پہلے سے ہی کچھ ترتیب ہے۔ ہر لین دین سے مراد ایک یا زیادہ سابقہ، والدین ہیں۔ والدین، بدلے میں، اپنے والدین کا حوالہ دیتے ہیں، اور اسی طرح. والدین بچوں کے لین دین سے پہلے ظاہر ہوتے ہیں۔ اگر پیرنٹ چائلڈ لنک ٹرانزیشن کے ذریعے کسی بھی لین دین تک پہنچا جا سکتا ہے، تو ہم لین دین کے اس سلسلے میں لین دین کے درمیان ترتیب کو بخوبی جانتے ہیں۔
لیکن لین دین کے درمیان ترتیب کا تعین ہمیشہ صرف گراف کی شکل سے نہیں کیا جا سکتا۔ مثال کے طور پر، جب گراف کی متوازی شاخوں پر دو لین دین ہوتے ہیں۔
ایسے معاملات میں ابہام کو دور کرنے کے لیے، ہم نام نہاد آرڈر فراہم کرنے والوں پر انحصار کرتے ہیں۔ ہم انہیں "گواہ" بھی کہتے ہیں۔ یہ عام صارفین ہیں جن کا کام نیٹ ورک پر مسلسل لین دین کو منظم طریقے سے بھیجنا ہے، یعنی تاکہ ان کے ہر سابقہ لین دین کو والدین اور بچے کے روابط کے ساتھ منتقلی کے ذریعے پہنچایا جا سکے۔ آرڈر فراہم کرنے والے قابل اعتماد صارف ہیں، اور پورا نیٹ ورک ان پر انحصار کرتا ہے کہ وہ اس اصول کی خلاف ورزی نہ کریں۔ کرنے کے لیے عقلی طور پر ان پر بھروسہ کریں، ہمارا مطالبہ ہے کہ ہر آرڈر فراہم کرنے والا ایک معروف (غیر گمنام) شخص یا تنظیم ہو اور اگر وہ قواعد کو توڑتا ہے تو اس کے پاس کچھ کھونا ہو گا، جیسے کہ ساکھ یا اعتماد پر مبنی کاروبار۔
آرڈر فراہم کرنے والوں کا انتخاب صارفین کرتے ہیں، اور ہر صارف نیٹ ورک کو بھیجے جانے والے ہر لین دین میں اپنے قابل اعتماد فراہم کنندگان کی فہرست شامل کرتا ہے۔ یہ فہرست 12 فراہم کنندگان پر مشتمل ہے۔ یہ ایک شخص کے لیے ان میں سے ہر ایک کی شناخت اور ساکھ کی تصدیق کرنے کے لیے کافی تعداد ہے، اور یہ یقینی بنانے کے لیے کافی ہے کہ آرڈر فراہم کرنے والوں کی اقلیت کے ساتھ ناگزیر مسائل کی صورت میں نیٹ ورک کام کرتا رہے۔
فراہم کنندگان کی یہ فہرست صارف کے لحاظ سے مختلف ہوتی ہے، لیکن ہمسایہ لین دین کی فہرستیں ایک فراہم کنندہ تک مختلف ہو سکتی ہیں۔
اب جب کہ ہمارے پاس آرڈر فراہم کرنے والے ہیں، ہم ان کے لین دین کو ڈی اے جی میں الگ کر سکتے ہیں اور ان کے بنائے ہوئے آرڈر کے ارد گرد دیگر تمام لین دین کا آرڈر دے سکتے ہیں۔ ایسا الگورتھم بنانا ممکن ہے (دیکھیں۔
لیکن پورے نیٹ ورک کے آرڈر کا فوری طور پر تعین نہیں کیا جا سکتا؛ ہمیں آرڈر فراہم کرنے والوں کے لیے وقت کی ضرورت ہے کہ وہ اپنی ٹرانزیکشنز کی کافی تعداد بھیجیں تاکہ ماضی کے لین دین کے حتمی آرڈر کی تصدیق کی جا سکے۔
اور، چونکہ آرڈر کا تعین صرف ڈی اے جی میں فراہم کنندگان کے لین دین کی پوزیشنوں سے ہوتا ہے، اس لیے نیٹ ورک پر موجود تمام نوڈس جلد یا بدیر تمام لین دین حاصل کریں گے اور لین دین کے آرڈر کے حوالے سے ایک ہی نتیجے پر پہنچیں گے۔
لہذا، ہم اس پر متفق ہیں جسے ہم سمجھتے ہیں کہ ہوا: کوئی بھی لین دین جو ڈی اے جی میں ختم ہوتا ہے۔ ہمارے پاس واقعات کی ترتیب کے بارے میں بھی اتفاق ہے: یہ یا تو لین دین کے تعلقات سے ظاہر ہوتا ہے، یا آرڈر فراہم کرنے والوں کی طرف سے بھیجے گئے لین دین کی ترتیب سے اندازہ لگایا جاتا ہے۔ تو ہمارا اتفاق ہے۔
ہمارے پاس اوبائٹ میں اتفاق رائے کا یہ ورژن ہے۔ اگرچہ اوبائٹ لیجر تک رسائی مکمل طور پر وکندریقرت ہے، لین دین کے آرڈر کے حوالے سے اتفاق رائے اب بھی مرکزی ہے کیونکہ 10 میں سے 12 فراہم کنندگان خالق (انتون چوریوموف) کے زیر کنٹرول ہیں، اور ان میں سے صرف دو آزاد ہیں۔ ہم ایسے امیدواروں کی تلاش میں ہیں جو آزاد آرڈر فراہم کنندگان میں سے ایک بننے کے خواہاں ہیں تاکہ لیجر کی ترتیب کو غیر مرکزیت میں لانے میں ہماری مدد کریں۔
حال ہی میں، ایک تیسرا آزاد امیدوار ابھر کر سامنے آیا ہے جو آرڈر فراہم کرنے والے نوڈ کو انسٹال کرنے اور اسے برقرار رکھنے کے لیے تیار ہے - نیکوسیا یونیورسٹی۔
اب ہم دوہرے اخراجات کو کیسے کنٹرول کریں؟
قواعد کے مطابق، اگر دو لین دین ایک ہی سکے کو خرچ کرتے ہوئے پائے جاتے ہیں، تو وہ لین دین جو تمام لین دین کے حتمی ترتیب میں پہلے آتا ہے جیت جاتا ہے۔ دوسرا متفقہ الگورتھم کے ذریعہ باطل ہے۔
اگر ایک ہی سکے کو خرچ کرنے والے دو لین دین کے درمیان ترتیب قائم کرنا ممکن ہے (والدین اور بچے کے کنکشن کے ذریعے)، تو تمام نوڈس دوگنا خرچ کرنے کی اس طرح کی کوشش کو فوری طور پر مسترد کر دیتے ہیں۔
ایسے دو ٹرانزیکشنز کے درمیان والدین کے رشتوں سے آرڈر نظر نہ آنے کی صورت میں، وہ دونوں لیجر میں قبول کیے جاتے ہیں، اور ہمیں آرڈر فراہم کرنے والوں کا استعمال کرتے ہوئے ان کے درمیان اتفاق رائے اور آرڈر کے قیام کا انتظار کرنا ہوگا۔ پھر پہلے والا لین دین جیت جائے گا، اور دوسرا غلط ہو جائے گا۔
اگرچہ دوسرا لین دین غلط ہو جاتا ہے، لیکن یہ اب بھی رجسٹری میں رہتا ہے کیونکہ اس میں پہلے سے ہی اس کا حوالہ دینے والے بعد کے لین دین موجود ہیں، جس سے کسی چیز کی خلاف ورزی نہیں ہوئی اور یہ نہیں جانتا تھا کہ یہ لین دین مستقبل میں باطل ہو جائے گا۔ بصورت دیگر، ہمیں اچھے بعد کے لین دین کے والدین کو ہٹانا پڑے گا، جو نیٹ ورک کے بنیادی اصول کی خلاف ورزی کرے گا - کسی بھی درست لین دین کو لیجر میں قبول کیا جاتا ہے۔
یہ ایک بہت اہم اصول ہے جو پورے نظام کو سنسرشپ کی کوششوں کے خلاف مزاحم ہونے کی اجازت دیتا ہے۔
آئیے تصور کریں کہ تمام آرڈر فراہم کنندگان ایک مخصوص لین دین کو "سنسر" کرنے کی کوشش میں ملتے ہیں۔ وہ اسے نظر انداز کر سکتے ہیں اور اسے کبھی بھی اپنے لین دین کے لیے بطور "والدین" منتخب نہیں کر سکتے، لیکن یہ کافی نہیں ہے، لین دین کو پھر بھی نیٹ ورک پر کسی بھی صارف کی طرف سے جاری کردہ کسی دوسرے لین دین کے والدین کے طور پر شامل کیا جا سکتا ہے جو آپس میں تعاون نہیں کر رہا ہے۔ وقت گزرنے کے ساتھ، اس طرح کے لین دین سے عام صارفین سے زیادہ سے زیادہ بچے، پوتے اور پڑپوتے ملیں گے، جو برف کے گولے کی طرح بڑھیں گے، اور تمام متفقہ آرڈر فراہم کرنے والوں کو بھی ان لین دین کو نظر انداز کرنا پڑے گا۔ بالآخر، انہیں پورے نیٹ ورک کو سنسر کرنا پڑے گا، جو تخریب کاری کے مترادف ہے۔
اس طرح، ڈی اے جی سنسرشپ کے خلاف مزاحم رہتا ہے یہاں تک کہ اگر آرڈر فراہم کرنے والوں کے درمیان ملی بھگت ہو، اس طرح سنسرشپ کے خلاف مزاحم بلاک چین کو پیچھے چھوڑ دیتا ہے جس میں اگر کان کن کسی بھی لین دین کو شامل نہ کرنے کا فیصلہ کرتے ہیں تو ہم کچھ نہیں کر سکتے۔ اور یہ ڈی اے جی کی بنیادی جائیداد سے ہوتا ہے: رجسٹری میں شرکت مکمل طور پر آزاد اور بیچوان کے بغیر ہوتی ہے، اور لین دین ناقابل واپسی ہے۔
ماخذ: www.habr.com