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

آلية العنونة المعتمدة على المحتوى هي ميزة رئيسية في IPFS، لكن لكل عملة وجهان؛ فهي أيضاً تجلب عيباً. ففي IPFS، بمجرد تخزين ملفٍ ما، لا يمكن تعديلُه داخل النظام، لأن تعديل محتوى الملف يغيّر تجزئة الملف (الهاش)، ولا يستطيع المستخدم العثور على الملف المتغير باستخدام قيمة الهاش الأصلية. وهذه نقطة ألم مُنتقدة على نطاق واسع: لا يُعد IPFS مناسباً لتخزين الملفات التي تحتاج إلى تحديثات وتغييرات من وقت لآخر.
رغم أن IPFS يؤدي أداءً جيداً في تخزين الملفات الثابتة، إلا أنه يفتقر إلى القدرة على الحوسبة وإدارة الحالة لميزات أكثر تقدماً شبيهة بميزات قواعد البيانات، مثل القابلية للتعديل، والتحكم في الإصدارات، والتحكم في الوصول، والمنطق القابل للبرمجة، وهي متطلبات ضرورية لتمكين المطورين من بناء تطبيقات لامركزية كاملة الميزات. لذلك توجد حاجة مُلحة إلى حل فعّال ولا مركزي لتخزين البيانات الديناميكية — وتُعالج Ceramic هذه المشكلة عبر قاعدة بيانات شبيهة بـ NoSQL للمطورين لتخزين محتوى مُنظم وقابل للتغيير.
مصمم للمحتوى القابل للتعديل
يعتمد تصميم تخزين Ceramic على IPFS ويُضيف إليه طبقة تخزين ديناميكية لامركزية.
على Ceramic، يتم تمثيل كل جزء من المعلومات كسجل إضافة فقط من عمليات الالتزام (commits)، يُسمّى “Stream”، ويظهر في الشكل أدناه على هيئة مجموع من المربعات الرمادية. يشبه الـ Stream من حيث المفهوم أشجار Git: يتم تخزين الحالة الأولية (Genesis Commit) وكذلك كل تغيير لاحق (Commit) في IPLD (InterPlanetary Linked Data، وهي الطبقة المخصصة لبُنى البيانات داخل IPFS)، ثم تُجمّع هذه السجلات لتكوين Stream. وبما أن Streams تسجل “التغييرات” وليس “لقطات” الحالة الناتجة، فإنه يكفي معالجة جميع الأحداث الموجودة على الـ Stream للحصول على أحدث حالة للسجل.

على سبيل المثال، تكون نمط سجلات Ceramic كالتالي: في البداية، يمتلك كل من Alice وBob مبلغ $10؛ في اليوم الثاني، يقوم Alice بتحويل $5 إلى Bob؛ وفي اليوم الثالث، يقوم Bob بتحويل $3 إلى Alice. وهذا يشبه كثيراً دفتر الأستاذ في سلسلة الكتل (blockchain)، حيث لا يذكر دفتر الأستاذ رصيد كل مستخدم، وتحتاج جميع العمليات الوسيطة إلى أن تُحسب للوصول إلى الرصيد النهائي لكل مستخدم.
وبالمقارنة، فإن نمط سجلات IPFS التقليدي هو: في الملف a، لدى Alice وBob كلٌ منهما $10؛ في الملف b، لدى Alice $5 و لدى Bob $15؛ وفي الملف c، لدى Alice $8 و لدى Bob $12. هنا، كل سجل عبارة عن لقطة للحالة الناتجة، ويلزم إنشاء لقطة جديدة فور حدوث أي تغيير.
تضمن Ceramic من خلال هذا التصميم أن يكون لكل سجل معرّف Stream فريد، مع تسمية عالمية موحّدة، وبدون تغييرات في الاسم بسبب تغييرات المحتوى. وتستلزم كل عملية كتابة تفويضاً من المستخدم، وتكون العملية برمتها شبيهة بالدفاتر المحاسبية في blockchain، إلا أن ما يُكتب ليس بيانات معاملات، بل محتويات أخرى قابلة للتعديل، مثل معلومات حساب المستخدم.
قابلية التراكيب (التوافق) بين البيانات
تحقق Ceramic قابلية تركيب البيانات عبر تطبيقات متعددة بشكل أساسي من خلال استخدام تجريد جديد يُسمّى نماذج البيانات (data models).
عادةً ما تمثل نماذج البيانات ميزة تطبيق واحدة منطقياً، مثل ملف المستخدم الشخصي أو شبكة اجتماعية أو مدونة. على سبيل المثال، يمكنك تصور أن كل تطبيق Twitter لامركزي سيعمل على عدد قليل من نماذج البيانات المشتركة: نموذج لكل مجموعة تغريدات لكل مستخدم، نموذج لشبكتهم الاجتماعية، نموذج لرسائلهم المباشرة (DMs) وغيرها. ومن خلال اعتماد نماذج البيانات نفسها كأساس، تصبح التطبيقات قادرة على التفاعل أصلاً (natively) مع البيانات نفسها.
يمكنك تشبيه استخدام Ceramic لمعايير نماذج البيانات باستخدام معايير الرموز (token standards) لدُفاتر أصول التمويل. على Ethereum، على سبيل المثال، أدت إضافة معيارَي الرموز القابلة للاستبدال ERC20 والرموز غير القابلة للاستبدال ERC721 إلى ظهور نظم بيئية كاملة من الرموز والتطبيقات المالية التي تتفاعل أصلاً فيما بينها. تجلب Ceramic هذا المفهوم نفسه إلى البيانات.
تتبع Ceramic نهجاً يقوده المجتمع في إنشاء نماذج البيانات هذه، مما يسمح لأي مطور بتحديد نماذجهم بسهولة ومشاركتها وإعادة استخدامها مع مطورين آخرين داخل النظام البيئي. ومع إنشاء المزيد من نماذج البيانات من قبل المجتمع، ستلاحظ توسعاً مستمراً في كمية وتنوع التطبيقات المبنية على بيانات قابلة للتركيب.
إن القيام بذلك بهذه الطريقة يجعل تجربة المطور أفضل أيضاً. يبدو بناء تطبيق على Ceramic كالتصفح لسوق نماذج البيانات، وربطها بتطبيقك، والحصول تلقائياً على إمكانية الوصول إلى كل البيانات الموجودة على الشبكة والمخزنة ضمن هذه النماذج. باستخدام Ceramic، لن يحتاج المطورون إلى القلق بشأن تهيئة تطبيقهم بقاعدة مستخدمين وبيانات معزولة (siloed) لديهم. من المتوقع أن يتسارع معدل ابتكار متراكم عبر المطورين بشكل كبير جداً.
قابلية التوسع
تحقق Ceramic قابلية التوسع عبر بيئة تنفيذ مُجزأة (sharded execution). تحافظ جميع الـ Streams على حالتها بشكل مستقل، وتقوم عقد الشبكة بتنفيذ معاملات الـ stream بالتوازي. وبهذه الطريقة، على عكس معظم سلاسل الكتل، يمكن لـ Ceramic العمل مع قابلية التوسع المطلوبة للإصدارات اللامركزية لتطبيقات اجتماعية مثل Twitter أو Facebook.
على عكس أنظمة blockchain التقليدية التي تكون فيها قابلية التوسع محدودة ببيئة تنفيذ افتراضية عالمية واحدة، وأن الحالة في دفتر الأستاذ الواحد مشتركة بين جميع العقد، فإن كل عقدة في Ceramic تعمل كبيئة تنفيذ فردية لإجراء الحسابات والتحقق من المعاملات على الـ streams — دون وجود دفتر عالمي. يتيح تجزئة التنفيذ “المضمّنة” هذه في شبكة Ceramic التوسع أفقيًا من أجل موازاة معالجة العدد المتزايد من معاملات الـ stream المتزامنة مع زيادة عدد العقد على الشبكة. يلزم هذا التصميم للتعامل مع حجم بيانات العالم، الذي يفوق بكثير—بمقادير أوامر—معدل الإنتاجية المطلوب على blockchain مالي. ومن الفوائد الأخرى لهذا التصميم أن عقدة Ceramic يمكنها تنفيذ معاملات الـ stream في بيئة “offline-first” ثم مزامنة التحديثات لاحقاً مع بقية الشبكة عند عودتها إلى الاتصال.
حل DID
تقدم Ceramic أيضاً حلاً مرناً وقوياً للهوية يُسمّى IDX، وهو أول حل كامل الوظائف للهوية اللامركزية (DID).
إن IDX هو بروتوكول هوية عبر السلاسل (cross-chain) للتطبيقات المفتوحة مع هوية لامركزية وبيانات مستخدم قابلة للتشغيل البيني، يسمح للمستخدمين ببناء هوية رقمية موحدة تتكون من كل بياناتهم، مع تمكين المطورين من تفكيك العُزلات (silos) ومشاركة بيانات المستخدم بحرية بين التطبيقات. كما هو موضح في الشكل أدناه، يوفر IDX فهرساً لامركزياً يسمح بربط البيانات المُنظمة بمعرّف لامركزي (DID)، ويتم تعريف البيانات عبر تعريفات ويتم تخزينها في سجلات.

بالإضافة إلى ذلك، يمكن استخدام IDX مع أي نوع من مخازن البيانات (datastore) مثل Ceramic أو Textile أو OrbitDB أو IPFS أو Sia أو Arweave أو سجلات البلوك تشين، وحتى قواعد البيانات المركزية، ويدعم المصادقة من أي نوع من محافظ Web3.
يعد IDX ممتازاً لربط ملفات المستخدم الشخصية، وشبكات اجتماعية قابلة للنقل، ودرجات السمعة، والادعاءات القابلة للتحقق، والمحتوى الذي ينشئه المستخدم، وبيانات التطبيقات، والإعدادات، وأسماء النطاقات، وعناوين blockchain، وحسابات شبكات Web2 الاجتماعية بالمستخدم بطريقة لامركزية.
الخلاصة
باختصار، لقد أدى ظهور Ceramic إلى تمكين بناء Web3 بشكل كبير وإطلاق ميزات جديدة لمطوري Web3. بغض النظر عن أي بلوك تشين عام (Ethereum وBSC وPolygon وAvalanche وغيرها) يقوم المطورون بالبناء عليه، يمكنهم الاستفادة من Ceramic في الوقت نفسه لوظائف تتمحور حول البيانات لتحسين تطبيقاتهم. علاوة على ذلك، ومن خلال نظام الحسابات المرن المستند إلى DID لدى Ceramic، تتكامل Ceramic بشكل طبيعي مع أنظمة الحسابات والمفاتيح الخاصة بأهم سلاسل الكتل الحالية، مما يوفر للمستخدمين راحة كبيرة.
من المثير للاهتمام أن نرى أنه تم بالفعل تطوير العديد من مشاريع DID ومنصات اجتماعية Web3 على Ceramic. ومن بينها، بعض المشاريع الجديرة بالذكر: CyberConnect، وهي منصة وسيطة لبنية الشبكة الاجتماعية؛ Orbis، وهي منصة Twitter على Web3؛ وThe Convo Space، وهي منصة مراسلة فورية، وغيرها. نتطلع إلى الإمكانات الجديدة التي يمكن أن يتيحها البُنى التحتية لشبكة البيانات لدى Ceramic على طبقة تطبيقات Web3.
إخلاء المسؤولية: هذا البحث لأغراض المعلومات فقط. لا يشكّل نصيحة استثمارية أو توصية بشراء أو بيع أي استثمار، ولا ينبغي استخدامه في تقييم مزايا اتخاذ أي قرار استثماري.
🐦 @chestersigned
📅 8 مايو 2022
الروابط:
https://developers.ceramic.network/learn/welcome/
https://blog.ceramic.network/what-is-ceramic/
https://multicoin.capital/2022/02/16/the-composable-web3-data-network/
https://blog.ipfs.io/2021-07-13-ceramic-mainnet-launch/