نموذج سلسلة الكتل المعيارية

في الفيزياء، الاقتران هو الظاهرة التي تؤثر فيها شكلان من الحركة على بعضهما البعض من خلال التفاعل. الفصل، من ناحية أخرى، هو الفصل الرياضي لشكلي حركة للتعامل مع المشكلة.

في مجال البرمجة، فإن فكرة التقييس مشابهة جدًا: تقنية تصميم البرمجيات المسماة البرمجة المعيارية، التي تؤكد على فصل وظائف البرنامج إلى وحدات مستقلة وقابلة للتبادل، بحيث تحتوي كل وحدة على كل ما هو ضروري لتنفيذ جانب واحد فقط من الوظيفة المرغوبة.

الـ بلوكشينات أيضاً هي برامج حاسوبية. وبشكل جوهري، عند تطبيق فكرة النمطية (modularity) على بلوكشين عام، يمكننا تفكيكها إلى ثلاثة مكونات أساسية:

  1. التنفيذ — هذا هو الحساب المطلوب لتحديث السلسلة، ويتضمن الحصول على الحالة الحالية، وإضافة مجموعة من المعاملات الجديدة، والانتقال إلى الحالة الجديدة.

  2. الإجماع أو التسوية أو الأمان — يوفر هذا الأمان والاتفاق على المعاملات وترتيبها.

  3. توفّر البيانات (DA) — يضمن ذلك نشر بيانات المعاملة خلف ترويسة الكتلة وأن تكون متاحة، بحيث يمكن لأي شخص بسهولة حساب الحالة والتحقق من انتقالات الحالة.

بدلاً من جمع هذه المكونات الثلاثة معاً في سلسلة واحدة أحادية ضخمة (monolithic) كما تفعل حالياً أغلب سلاسل البلوكشين الرئيسية، يمكننا تقسيمها إلى سلاسل أو طبقات متخصصة، بحيث تقوم كل واحدة بدور وحدة (module)، لتنفيذ وظائف البلوكشين بكفاءة أكبر. وهذه هي منهجية بلوكشين وحدي (modular blockchain).

فوائد بلوكشينات وحدية

كما ذُكر سابقاً، بلوكشينات وحدية هي نتيجة فصل المكونات الأساسية لسلسلة بلوكشين واحدة وتشغيلها على طبقات منفصلة. لذا، ما المزايا التي تتمتع بها بلوكشينات وحدية مقارنة بتلك غير وحدية؟ فيما يلي المزايا المذكورة.

قابلية التوسع (Scalability)

ستسمح الطبقات المتخصصة في مجموعة من ميزتين أساسيتين بتوسّع أكبر بكثير دون قيود إبرام المقايضات التي تأتي مع بلوكشين أحادي ضخم. على سبيل المثال، يمكن لطبقة توفر بيانات وحدية مع أخذ عينات DA أن تتوسع بشكل خطي مع عدد المستخدمين.

قابلية التشغيل البيني (Interoperability)

يمكن لبلوكشينات أن تستخدم طبقة أمان مشتركة وحدية لتمكين جسور (bridging) شبه خالية من الحاجة إلى الثقة بين بلوكشينات ضمن نفس التجمع (cluster). وهذا يحسن كلّاً من مستوى الأمان ومستوى قدرة عدة بلوكشينات على التواصل مع بعضها.

التهيئة/الإقلاع (Bootstrapping)

يمكن إنشاء بلوكشينات جديدة بتكلفة ووقت minimal. ستعمل أدوات تطوير برامج الـ Rollup (Rollup Software Development Kits) على المساعدة في ذلك، لكنها لا تقتصر على ذلك، بل تقدم طريقة للانطلاق دون الحاجة إلى آلية إجماع أو عقد تحقق (validators) أو آليات توزيع الرموز.

التجريب (Experimentation)

يمكن إنشاء بلوكشينات بسهولة واستخدامها لاختبار تقنيات مبتكرة جديدة تجلب المزيد من قابلية التوسع والتحسينات إلى كامل منظومة السلاسل. يتيح ذلك للحوامل (سلاسل) الجديدة التركيز مباشرة على العناصر التي تريد الابتكار فيها، ثم نشر هذه الابتكارات إلى بقية السلاسل.

طبقة DA في الـ rollups

الـ rollups، وهي حل الطبقة 2 في Ethereum بهدف التوسع بشكل فعّال، هي أيضاً من حيث الأساس منهجية وحدية. تقوم الـ rollup بإزالة طبقة التنفيذ من Ethereum layer 1 وتشكّل طبقة ثانية مخصصة للتنفيذ، تركز على معالجة المعاملات بأسرع ما يمكن. من جهة أخرى، تظل Ethereum layer 1 مسؤولة عن الأعمال الصعبة المتعلقة بكل من الأمان وتوفر البيانات.

إذن، توجد سؤالان هنا. أولاً، لماذا تُعدّ قابلية توفر البيانات مهمة جداً؟ ثانياً، هل يمكننا استخدام فكرة النمطية (modularity) مرة أخرى لفصل DA عن الطبقة 1؟ من فضلك اسمح لي أن آخذ وقتاً لأشرح.

بالنسبة للسؤال الأول، أحتاج إلى مناقشة الوضع بشكل منفصل. في حالة Optimistic Rollup، عندما يقوم المُسلسِل بأعمال خبيثة ويُسلم حالة رصيد حساب غير صحيحة، يمكن لأي شخص استرجاع بيانات المعاملة الأصلية من layer 1 وإعادة بناء الحالة الصحيحة للحساب لتنفيذ تحدي (challenge). لذلك فإن دور DA يشبه مكتب الأرشفة الذي يوفر أدلة أصلية في حال وقوع تحدي، مما يضمن أن التحدي صحيح وصالح.

أما في حالة Rollup ببرهان المعرفة الصفرية (ZK Rollup)، فلا يمكن للمُسلسِل فعل الشر بسبب برهان المعرفة الصفرية التشفيري. لكن في الحالات القصوى التي يتعطل فيها المُسلسِل أو يصبح غير متاح لأي سبب، يحتاج المستخدمون إلى الهروب من سلسلة الطبقة 2 واستعادة أموالهم إلى layer 1، وعندها يصبح DA أمراً ضرورياً لضمان أنه يمكن لأي شخص إعادة بناء الحالة النهائية استناداً إلى البيانات. لذلك فإن دور DA يشبه باب الأمان لضمان خروج المستخدمين بسلاسة في حال حدوث وضع استثنائي.

بالنسبة للسؤال الثاني، فالجواب المختصر هو نعم. رغم أن DA بالغة الأهمية لدرجة أن أفضل مكان لتخزينها هو Ethereum layer 1، فإن السلسلة الأكثر أماناً هي أيضاً الأكثر تكلفة — إذ إن تكلفة غاز (gas) معاملات التسوية وتخزين البيانات أعلى بكثير من أي سلسلة أخرى. لهذا السبب توفر كل من Matter Labs و Starkware للمستخدمين نسخة أرخص من ZK Rollup، وهما ZK-Porter و Validium، مع التضحية بعدم تخزين DA على layer 1.

نتيجة لذلك، بدأت تظهر في الصورة طبقة DA متخصصة ووحدية.

مشاريع طبقة DA المتخصصة

Celestia

كانت تُسمى سابقاً LazyLedger، وCelestia هي شبكة إجماع وبيانات وحدية (modular) مُصممة لتمكين أي شخص من نشر بلوكشينه الخاص بسهولة وبتكلفة/هامش تشغيل minimal. من خلال فصل طبقات الإجماع وDA عن تنفيذ التطبيقات، تعمل Celestia على تحويل تقنية البلوكشين إلى وحدات وفك ارتباط مكدس التقنيات، مما يفتح إمكانيات جديدة لبنّائي التطبيقات اللامركزية.

تحت معمارية وحدات مدعومة بـ Celestia، يمكن للمطورين تعريف بيئات تنفيذ افتراضية خاصة بهم بسهولة. يحصل كل تطبيق على مساحة تنفيذ سيادية خاصة به، ويمكن تحديثها دون الحاجة إلى شوكّات صلبة على السلسلة الرئيسية.

تبرز Celestia بشكل أساسي من خلال معالجة أحد القيود الجوهرية لتوسّع البلوكشين — مشكلة توفر البيانات (data availability). تطرح هذه المشكلة السؤال التالي: كيف يمكن للعُقد التأكد من أنه عند إنتاج كتلة جديدة، تم نشر جميع البيانات داخل تلك الكتلة فعلاً إلى الشبكة؟ المعضلة هي أنه إذا لم يقم مُسلسِل (sequencer) أو مُنتِج البلوك بإطلاق كل البيانات داخل كتلة ما، فلن يتمكن أحد من اكتشاف ما إذا كانت هناك معاملة خبيثة مخفية داخل تلك الكتلة.

كيف تحل Celestia هذه المشكلة؟ تستخدم أكواد محو (erasure codes) لإنشاء إثباتات توفر بيانات تضمن، مع احتمال مرتفع، أن جميع تلك البيانات تم نشرها على السلسلة (on-chain).

بالتحديد، تستخدم Celestia مخطط ترميز ريد-سولومون ثنائي الأبعاد (2D) لترميز بيانات الكتلة عندما يقوم المُسلسِل بإنشاء كتلة جديدة. يضمن هذا المخطط أن أخذ عينة صغيرة فقط من البيانات يكفي للتحقق إحصائياً بثقة من أن الكتلة بأكملها قد تم نشرها. ولا يلزم سوى عملاء خفاف (light clients) لتنفيذ عملية تُسمى أخذ عينات توفر البيانات (Data Availability Sampling — DAS) — عبر تنزيل جزء صغير عشوائيًا من البيانات من الكتلة لاكتشاف ما إذا كان المُسلسِل يتصرف بسوء ويقوم بحجب البيانات. هذه الطريقة فعّالة جداً من منظور إحصاءات الاحتمالات. في الواقع، بحلول المرة السابعة التي يحاول فيها عميل خفيف التحقق عشوائياً من شُقّة من البيانات، يصبح احتمال فشله في اكتشاف سوء تصرف المُسلسِل أقل من 1%. وبمجرد اكتشاف أن أي جزء صغير من البيانات مُرمّز بشكل غير صحيح، يتم إخطار الشبكة عبر إثبات احتيال (fraud proof). وهذا يضمن ألا تصبح الإنتاجية (throughput) عُرضة لاختناق بسبب تنفيذ الحالة (state execution) كما في سلاسل البلوكشين التقليدية، مما يسمح لإنتاجية Celestia بالنمو مع عدد المستخدمين المشاركين.

بالبدء بالتركيز على EVM و Cosmos SDK، لا تستبعد Celestia التكامل داخل منظومات Ethereum و Cosmos. أطلقت Celestia خطة تُسمى Celestium، تتيح لأي سلسلة Ethereum L2 استخدام Celestia لتوفر البيانات و Ethereum لتسوية النزاعات وحلّها. ستوفّر Celestiums توفر بيانات عالي الإنتاجية لـ Ethereum L2s، بمستوى أعلى من الأمان مقارنةً بتقنيات أخرى لتوفر البيانات خارج السلسلة (off-chain).

علاوة على ذلك، تتعاون Celestia مع Evmos لبناء طبقة تسوية لعمليات Rollups الخاصة بـ EVM تُسمى Cevmos. سيتم تنفيذ سلسلة التسوية كـ Celestia rollup باستخدام Optimint، وتستفيد من Celestia كطبقة DA لتوفير مكدس مكافئ لـ EVM بالكامل ومُحسّن خصيصاً للـ rollups فقط، ما يؤدي إلى رسوم أقل وقابلية أفضل للتوسع في rollups.

Polygon Avail

Avail، أحد حلول التوسّع ضمن مجموعة أدوات Polygon، هو بلوكشين عام الغرض ومُصمم خصيصاً ليكون موجهاً لتوفر البيانات وقابلاً للتوسع، يستهدف السلاسل المستقلة و السلاسل الجانبية و حلول التوسّع خارج السلسلة (off-chain scaling).

توفّر Avail طبقة قوية لتوفر البيانات عبر استخدام بدائية رياضية شديدة الأمان — فحوصات توفر البيانات باستخدام أكواد محو (erasure codes) — مع ابتكار رئيسي. إذ يستخدمون التزامات كثيرة حدود Kate (Kate polynomial commitments) لإنشاء مخطط لتوفر بيانات ثنائي الأبعاد يتجنب إثباتات الاحتيال، ولا يتطلب افتراض أغلبية صادقة (honest majority)، كما أنه لا يعتمد على نظير (peer) عقد كاملة صادقة لاكتساب الثقة بأن البيانات متاحة.

نهج Avail لحل مشكلة توفر البيانات مشابه لـ DAS في Celestia، لكنه يختلف فقط في نقاط صغيرة. تستخدم Avail التزامات كثيرة الحدود من نوع KZG بدلاً من إثباتات الاحتيال لتجنب سوء تصرف المُسلسِلين. تم تقديم التزامات KZG، المعروفة أيضاً باسم التزامات Kate، بواسطة Aniket Kate و Gregory M. Zaverucha و Ian Goldberg في عام 2010، لتوفير طريقة للالتزام (commit) بالعديد من كثيرات الحدود بطريقة موجزة.

بعبارات بسيطة، يتم ترتيب كامل البيانات في الكتلة كمصفوفة ثنائية الأبعاد. يتم جلب التكرار/الزيادات في البيانات عبر ترميز محو لكل عمود من المصفوفة لزيادة حجمها إلى الضعف مقارنةً بالحجم الأصلي. تُستخدم التزامات Kate للالتزام بكل صف من المصفوفة، ويتم تضمين الالتزام في ترويسة الكتلة (block header). يجعل هذا المخطط من السهل اكتشاف محاولة إخفاء بيانات، إذ يمكن لأي عميل خفيف لديه وصول إلى ترويسات الكتل فقط استعلام خلايا عشوائية من المصفوفة والحصول على إثباتات قصيرة يمكن التحقق منها مقابل ترويسات الكتل. يُجبر التكرار في البيانات المُسلسِل على إخفاء جزء كبير من الكتلة حتى لو أراد إخفاء معاملة واحدة فقط، ما يجعله عرضة للوقوع في الفخ عند أخذ عينات عشوائية. لذلك يتم تجنب الحاجة إلى إثباتات الاحتيال، لأن خاصية الارتباط/التقييد (binding) في التزامات Kate تجعل من غير العملي حسابياً جداً على المُسلسِلين إنشاء التزامات خاطئة دون أن يتم اكتشافهم.

الملخص

تهدف طبقة توفر بيانات متخصصة، كنسخة أولية من بلوكشينات وحدية، إلى تسهيل تغيير كامل في طريقة تفكيرنا في تصميم أنظمة البلوكشين، عبر تمكين نموذج بلوكشين وحدي تستطيع فيه بيئات تنفيذ مختلفة استخدام هذه الطبقة المتخصصة لترتيب البيانات وتوفرها. ورغم احتمال وجود قلق صغير بأن rollups التي تستخدم طبقة DA متخصصة قد لا تكون بنفس أمان تلك الموجودة على شبكة Ethereum mainnet، فإن هذا يعتبر تنازلاً ضرورياً، لأن بلوكشينات وحدية يمكنها جلب شبكة أكثر مرونة وقابلة للتوسع وقابلة للتخصيص وقابلة للتشغيل البيني. على المدى الطويل، ستصبح طبقة DA المتخصصة حجر الأساس لنموذج بلوكشين وحدي، ممهدة الطريق نحو نهاية/ذروة توسّع البلوكشين.

إخلاء المسؤولية: هذا البحث لأغراض المعلومات فقط. لا يشكل نصيحة استثمارية أو توصية بشراء أو بيع أي استثمار، ولا ينبغي استخدامه في تقييم مزايا اتخاذ أي قرار استثماري.

🐦 @chestersigned

📅 18 أبريل 2022

الرابط:

https://medium.com/blockchain-capital-blog/wtf-is-data-availability-80c2c95ded0f

https://polynya.medium.com/the-lay-of-the-modular-blockchain-land-d937f7df4884

https://rileygmi.substack.com/p/celestia?s=r&utm_campaign=post&utm_medium=web

https://coinyuppie.com/focus-on-the-data-availability-layer-to-understand-the-new-public-chain-celestia/

https://polygon.technology/blog/introducing-avail-by-polygon-a-robust-general-purpose-scalable-data-availability-layer-98bc9814c048

https://polygon.technology/solutions/polygon-avail/