شبكات الDAG كيف تعمل
Samii
2022-03-05
مقالات تعليمية
شبكات الـ DAG كيف تعمل ؟!
( شبكة Aleph Zero $Azero أنموذجاً )
سلسلة تغريدات ؛ على بركة الله ..
اتجهت العديد من الشبكات الى نموذج تدفق البيانات الاتجاهي ، ما يعرف بـ DAG Directed Acyclic Graph كأحد الحلول الجذرية في رفع كفاءة الشبكة على صعيد سرعة تنفيذ المعاملات وتخزينها وتسلسل عملية إثباتها ..
معظم الحلول جاءت إما بتوزيع المهام على العقد المشاركة في الشبكة أو بإضافة قنوات وعناصر على الشبكة ..
نحن هنا نتحدث عن نموذج يختلف جذريا عن معظم الشبكات في تتابع وتدفق البيانات في المقام الأول .. إثبات الكتلة ككل وليس المهام الفرعية داخل الكتلة ..
بالمثال يتضح المقال .. لنتخيل أن إنتاج الكتل مشابه لشبّاك إنجاز المعاملات الذي يقف أمامه صف طويل من المراجعين ..
الشبّاك هو العقدة الـ Node والمراجعون يمثلون الكُتَل .. هنا لا نتحدث عن تسريع عمليات الشباك ..
نتحدث عن توفير المزيد من الشبابيك التي تعمل في ذات الوقت لإنهاء العديد من الكتل في ذات الوقت .. تقريباً هذا الشبه كفيل بأن يوضح الاختلاف بين المناهج في توزيع المهام ..
فمالمقصود بـ DAG وما دلالات ومآلات هذه الآلية ؟!
على خلاف الصورة التقليدية لسلاسل الكتل والتي تتشكل في ربط كل كتلة بالكتلة السابقة واللاحقة ، يقوم مبدأ الـ DAG باعتبار توصيفات الكتل (ولنسميها عناصر بدلا من الكتل) ..
كما يلي (العنصر الأم) و (العنصر الابن) وأن الروابط بين العناصر ذات اتجاه واحد فقط (غير مغاير الاتجاه كما هو الحال في صورة سلاسل الكتل التقليدية) ينطلق الاتجاه من العنصر الأقدم إلى الأحدث ، فهو نموذج تسلسل يتم تسجيل البيانات فيه بشكل عامودي ، كل كتلة فوق الأخرى ..
ما مآل ذلك ؟! .. بهذا التدفق ، سيكون لكل عنصر (عنصر أم) إما واحدة أكثر .. ولنستعرض هذا المثال كما يلي:
العنصر A هي العنصر الأم للعناصر BDC ، والعنصر D هو العنصر الابن لـ BAC والترتيب المتتابع أمر غير لازم ، فلا يلزم من هذا النموذج أن B قبل C .. وكما تشاهدون فهذا التداخل والتشعب يفتح إفق من آفاق قابلية التوسع من خلال إمكانية إنهاء العديد من المعاملات في ذات الوقت ..!
الفرق هنا على صعيد ترتيب وتتابع الإثبات فإن الكتل في سلاسل الكتل (البلوكتشين) يتم إثبات الكتل فيها بشكل متسلسل ، بينما في DAG (نموذج تدفق البيانات الاتجاهي) فالعديد من الكتل يتم إثباتها في ذات الوقت بالتوازي ..
إلى هذا الحد .. هناك العديد من التساؤلات ، كيف أحمي النظام من ازدواجية العمل في إثبات العناصر ؟! .. وكيف أحمي النظام من غياب اللامركزية في الصورة التقليدية للـ DAG ؟!
هنا نصل لمفترق الطرق في توظيف الشبكات للـ DAG وإضفاء ما يلزم لتحقيق سمات البلوكتشين فيها .. ويلزمنا أن نستعرض نموذج لأحد الشبكات التي تعمل بهذه الآلية .. ورأيت استعراض شبكة Aleph Zero $Azero في دمج الـ DAG مع آلية الإجماع التي تؤمّن الشبكة ..
تدفق البيانات الإتجاهي DAG يلزم منه تتابع المعاملات على الشبكة وبصورته الافتراضية لا يحضر معه آلية إجماع على تكليف العقد المتصلة بالشبكة لإتمام المعاملات وإنهائها ..
وما تقوم به $Azero على هذا الصعيد تحديدا يتلخص في تمكين العقد المتصلة جميعاً للتوصل إلى اتفاق فيما بينها على ترتيب العناصر المتتابعة على الشبكة من خلال منح كل عقدة مسار خاص فيها ..
لتبسيط الأمر .. لنتخيل أن كل عقدة ماثلة في زاوية من زوايا الشبكة وتشاهد السلسلة من زاوية مختلفة وبرؤية مختلفة عن رؤية العقد الأخرى .. ويتم تكليفها من خلال AlephBFT وهي لوغاريتمية عشوائية لا يمكن التنبؤ بها مسبقاً بمسار تدفق العناصر ..
مربط الفرس هنا .. أن كل عنصر في DAG يتكون من قطعة مجتزئة من البيانات .. ودور هذي اللوقاريتيمية فوق أنها المسؤولة عن رسم مسارات العُقد + فهي أيضا المسؤولة عن تجزيء هذه البيانات وتشتيتها بين العقد .. وعلاوة على ذلك .. ضمان أن كل عقدة لديها نسخة محدثة من سجلات تدفق البيانات ..
لنلملم جميع ما سبق في أربعة جمل:
- هناك ما يعرف بـAlephBFT وهي لوقارتيمية عشوائية تمثل آلية الإجماع لإتمام التحقق من العنصر في DAG ودورها يتلخص في:
- رسم مسارات تدفق مدخلات البيانات للعُقد.
- تجزئ البيانات إلى أجزاء وتشتيتها بين العُقد.
- التأكد من حداثة سجلات البيانات في العُقد.
بذلك أصبح لدينا نموذج DAG مدمج مع آلية إجماع تؤمن الشبكة من ازدواجية التنفيذ وسلامة البيانات .. الموضوع بحر بصراحة والعناصر أكبر من أن يستوعبها تماماً من هم مثلي من الهواة أو أن تسرد في سلسلة تغريدات ، لكنه اجتهاد في محاولة الفهم من مهتم والتوفيق من رب العزة والجلال سبحانه ..
النهاية
المصدر هنا.