ماذا لو فقدت ذاكرتك كل ساعة؟ وتحتاج إلى أن تطلب باستمرار من شخص ما أن يخبرك بما قمت به؟ هذا هو الوضع الحالي للعقود الذكية. على سلاسل البلوكشين مثل إيثريوم، لا يمكن للعقود الذكية الوصول مباشرة إلى الدول التي تتجاوز ٢٥٦ كتلة. تتفاقم هذه المشكلة بشكل أكبر في النظام البيئي متعدد السلاسل، حيث يكون استرداد البيانات والتحقق منها عبر طبقات التنفيذ المختلفة أكثر صعوبة.
في عام 2020، اقترح فيتاليك بوترين وتوماس ستانزاك طريقة للوصول إلى البيانات عبر الزمن. في حين أن EIP أصبح راكدًا، إلا أن حاجته عادت إلى الظهور في عالم السلاسل المتعددة المتمحور حول اللف. اليوم، ظهرت براهين التخزين كحدود لإعطاء الوعي والذاكرة للعقود الذكية.
هناك عدد من الطرق التي يمكن من خلالها لـ dapps الوصول إلى البيانات والحالة. تتطلب جميع الأساليب من التطبيق وضع الثقة في البشر/الكيانات أو الأمن الاقتصادي للعملات المشفرة أو التعليمات البرمجية والحصول على بعض المقايضات:
نظرًا للتحديات والقيود المفروضة على هذه الحلول، هناك حاجة واضحة لتخزين وتوفير تجزئات الكتل على السلسلة. هذا هو المكان الذي تأتي فيه براهين التخزين. من أجل فهم أدلة التخزين بشكل أفضل، دعونا نلقي نظرة سريعة على تخزين البيانات في البلوكشين.
البلوكشين هي قاعدة بيانات عامة يتم تحديثها ومشاركتها عبر العديد من أجهزة الكمبيوتر في الشبكة. يتم تخزين البيانات والحالة في مجموعات متتالية تسمى الكتل وتشير كل كتلة بشكل مشفر إلى أصلها عن طريق تخزين تجزئة رأس الكتلة السابق.
لنأخذ كتلة إيثريوم كمثال. تستفيد إيثريوم من نوع معين من شجرة ميركل المعروفة باسم «شجرة ميركل باتريشيا» (MPT). تحتوي رؤوس كتل Ethereum على جذور أربع محاولات مختلفة من Merkle-Patricia، أي تجربة الدولة، تجربة التخزين، تجربة الإيصالات، تجربة المعاملة. تقوم هذه المحاولات الأربع بترميز التعيينات التي تشتمل على جميع بيانات إيثريوم. يتم استخدام أشجار Merkle نظرًا لكفاءتها في تخزين البيانات. باستخدام تجزئات متكررة، يجب تخزين التجزئة الجذرية فقط في النهاية، مما يوفر الكثير من المساحة. إنها تسمح لأي شخص بإثبات وجود عنصر في الشجرة من خلال إثبات أن تجزئة العقد بشكل متكرر تؤدي إلى نفس تجزئة الجذر. تسمح براهين Merkle للعملاء الخفيفين على Ethereum بالحصول على إجابات لأسئلة مثل:
بدلاً من تنزيل كل معاملة وكل كتلة، يمكن لـ «العميل الخفيف» فقط تنزيل سلسلة رؤوس الكتل والتحقق من المعلومات باستخدام Merkle Proofs. هذا يجعل العملية الشاملة عالية الكفاءة. ارجع إلى هذه المدونة التي كتبها مقال بحثي من Vitalik و Maven11 لفهم التنفيذ والمزايا والتحديات المرتبطة بـ Merkle Trees بشكل أفضل.
تسمح لنا أدلة التخزين بإثبات أن شيئًا ما ملتزم في قاعدة البيانات وأنه صالح أيضًا باستخدام التزامات التشفير. إذا تمكنا من تقديم مثل هذا الدليل، فمن الممكن التحقق منه أن شيئًا ما حدث على بلوكتشين.
تسمح براهين التخزين بوظائفين رئيسيين:
تقوم أدلة التخزين على مستوى عالٍ جدًا بالتحقق مما إذا كانت الكتلة المحددة جزءًا من التاريخ الكنسي لـ blockchain ثم التحقق مما إذا كانت البيانات المحددة المطلوبة جزءًا من الكتلة. يمكن تحقيق ذلك من خلال:
بعض المشاريع التي تتبنى هذا النهج هي هيرودوت ولاغرانج وأكسيوم وهايبر أوراكل وشبكة بريفيس ومؤسسة نيل. وفي حين تُبذل جهود كبيرة لجعل التطبيقات على دراية بالحالة عبر سلاسل بلوكتشين المتعددة، تبرز IBC (الاتصالات عبر بلوكتشين) كمعيار للتشغيل البيني يمكّن تطبيقات مثل ICQ (استعلامات Interchain) و ICA (حسابات Interchain). يمكّن ICQ التطبيقات على السلسلة A من الاستعلام عن حالة السلسلة B من خلال تضمين الاستعلام في حزمة IBC بسيطة ويسمح ICA لبلوكشين واحد بالتحكم الآمن في حساب على بلوكشين آخر. يمكن أن يؤدي الجمع بينهما إلى تمكين حالات استخدام مثيرة للاهتمام عبر السلاسل. يقدم موفرو RaaS مثل Saga هذه الوظائف لجميع سلاسل التطبيقات الخاصة بهم افتراضيًا باستخدام IBC.
هناك العديد من الطرق التي يمكن من خلالها تحسين براهين التخزين للعثور على التوازن الصحيح لاستهلاك الذاكرة ووقت الإثبات ووقت التحقق وكفاءة الحوسبة وتجربة المطور. يمكن تقسيم العملية الشاملة على نطاق واسع إلى 3 عمليات فرعية رئيسية.
الوصول إلى البيانات: في هذه العملية الفرعية، يصل مزود الخدمة إلى رؤوس كتل سلسلة المصدر محليًا على طبقة التنفيذ أو عن طريق الاحتفاظ بذاكرة تخزين مؤقت على السلسلة. للوصول إلى البيانات عبر السلاسل، يلزم التحقق من إجماع سلسلة المصدر على سلسلة الوجهة. تتضمن بعض الأساليب والتحسينات التي يتم اعتمادها ما يلي:
إلى جانب الوصول إلى البيانات، يجب أن تكون العقود الذكية أيضًا قادرة على إجراء حسابات عشوائية فوق البيانات. في حين أن بعض حالات الاستخدام قد لا تتطلب الحساب، إلا أنها خدمة مهمة ذات قيمة مضافة للعديد من حالات الاستخدام الأخرى. يقوم العديد من مزودي الخدمة بتمكين الحسابات على البيانات حيث يمكن إنشاء دليل zk للحساب وتقديمه على السلسلة من أجل الصلاحية. ونظرًا لإمكانية استخدام حلول AMP الحالية مثل Axelar وLayerZero وPolyhedra Network للوصول إلى البيانات، فقد تصبح معالجة البيانات أداة تمييز لمقدمي خدمات إثبات التخزين.
يسمح Hyper Oracle، على سبيل المثال، للمطورين بتحديد الحسابات المخصصة خارج السلسلة باستخدام JavaScript. صممت Brevis سوقًا مفتوحًا لمحركات ZK Query التي تقبل استعلامات البيانات من dApps وتعالجها باستخدام رؤوس الكتل المعتمدة. يرسل العقد الذكي استعلامًا عن البيانات، يتم التقاطه بواسطة مُثبت من السوق. يقوم Prover بإنشاء إثبات استنادًا إلى إدخال الاستعلام ورؤوس الكتل ذات الصلة (من طبقة تجميع Brevis) والنتائج. قدمت لاغرانج ZK Big Data Stack لإثبات نماذج البرمجة الموزعة مثل SQL و MapReduce و Spark/RDD. تُعد البراهين معيارية ويمكن إنشاؤها من أي رأس كتلة ينشأ من الجسور عبر السلاسل الحالية وبروتوكولات AMP. ZK MapReduce، المنتج الأول في مكدس Lagrange ZK BigData، هو محرك حساب موزع (يعتمد على نموذج برمجة MapReduce المعروف) لإثبات نتائج الحساب التي تتضمن مجموعات كبيرة من البيانات متعددة السلاسل. على سبيل المثال، يمكن استخدام دليل ZKMR واحد لإثبات التغييرات في سيولة DEX المنشورة على 4-5 سلاسل خلال نافذة زمنية محددة. بالنسبة للاستعلامات البسيطة نسبيًا، يمكن أيضًا إجراء الحساب مباشرة على السلسلة كما يقوم به هيرودوت في الوقت الحالي.
يمكن لبراهين الحالة والتخزين فتح العديد من حالات الاستخدام الجديدة للعقود الذكية في طبقة التطبيقات والبرامج الوسيطة والبنية التحتية. بعض هذه هي:
الحوكمة:
يمكن استخدام جميع البراهين المذكورة أعلاه لتوفير تجربة مخصصة للمستخدمين. يمكن أن تقدم Dapps خصومات أو امتيازات للاحتفاظ بالمتداولين أو المستخدمين ذوي الخبرة وتقديم تجربة مستخدم مبسطة للمستخدمين المبتدئين.
ستتطلب حالتا الاستخدام الأخيرتان تحديث الدليل في كل مرة تتم فيها إضافة كتلة جديدة إلى سلسلة المصدر.
تعمل التوعية على تمكين شركات التكنولوجيا من خدمة عملائها بشكل أفضل. من هوية المستخدم إلى سلوك الشراء إلى الرسوم البيانية الاجتماعية، تستفيد شركات التكنولوجيا من الوعي لإطلاق العنان لإمكانيات مثل الاستهداف الدقيق وتقسيم العملاء والتسويق الفيروسي. تحتاج شركات التكنولوجيا التقليدية إلى إذن صريح من مستخدميها ويجب توخي الحذر أثناء إدارة بيانات المستخدم. ومع ذلك، فإن جميع بيانات المستخدم على البلوكشين غير المصرح بها متاحة للجمهور دون الكشف بالضرورة عن هوية المستخدم. يجب أن تكون العقود الذكية قادرة على الاستفادة من البيانات المتاحة للجمهور لخدمة المستخدمين بشكل أفضل. سيؤدي تطوير واعتماد أنظمة بيئية أكثر تخصصًا إلى جعل وعي الدولة عبر الزمن وبلوكتشين مشكلة متزايدة الأهمية يجب حلها. يمكن لبراهين التخزين تمكين إيثريوم من الظهور كطبقة هوية وملكية أصول إلى جانب كونها طبقة تسوية. يمكن للمستخدمين الحفاظ على هويتهم وأصولهم الرئيسية على إيثريوم والتي يمكن استخدامها عبر سلاسل بلوكتشين متعددة دون ربط الأصول طوال الوقت. ما زلنا متحمسين للإمكانيات الجديدة وحالات الاستخدام التي سيتم فتحها في المستقبل.
ماذا لو فقدت ذاكرتك كل ساعة؟ وتحتاج إلى أن تطلب باستمرار من شخص ما أن يخبرك بما قمت به؟ هذا هو الوضع الحالي للعقود الذكية. على سلاسل البلوكشين مثل إيثريوم، لا يمكن للعقود الذكية الوصول مباشرة إلى الدول التي تتجاوز ٢٥٦ كتلة. تتفاقم هذه المشكلة بشكل أكبر في النظام البيئي متعدد السلاسل، حيث يكون استرداد البيانات والتحقق منها عبر طبقات التنفيذ المختلفة أكثر صعوبة.
في عام 2020، اقترح فيتاليك بوترين وتوماس ستانزاك طريقة للوصول إلى البيانات عبر الزمن. في حين أن EIP أصبح راكدًا، إلا أن حاجته عادت إلى الظهور في عالم السلاسل المتعددة المتمحور حول اللف. اليوم، ظهرت براهين التخزين كحدود لإعطاء الوعي والذاكرة للعقود الذكية.
هناك عدد من الطرق التي يمكن من خلالها لـ dapps الوصول إلى البيانات والحالة. تتطلب جميع الأساليب من التطبيق وضع الثقة في البشر/الكيانات أو الأمن الاقتصادي للعملات المشفرة أو التعليمات البرمجية والحصول على بعض المقايضات:
نظرًا للتحديات والقيود المفروضة على هذه الحلول، هناك حاجة واضحة لتخزين وتوفير تجزئات الكتل على السلسلة. هذا هو المكان الذي تأتي فيه براهين التخزين. من أجل فهم أدلة التخزين بشكل أفضل، دعونا نلقي نظرة سريعة على تخزين البيانات في البلوكشين.
البلوكشين هي قاعدة بيانات عامة يتم تحديثها ومشاركتها عبر العديد من أجهزة الكمبيوتر في الشبكة. يتم تخزين البيانات والحالة في مجموعات متتالية تسمى الكتل وتشير كل كتلة بشكل مشفر إلى أصلها عن طريق تخزين تجزئة رأس الكتلة السابق.
لنأخذ كتلة إيثريوم كمثال. تستفيد إيثريوم من نوع معين من شجرة ميركل المعروفة باسم «شجرة ميركل باتريشيا» (MPT). تحتوي رؤوس كتل Ethereum على جذور أربع محاولات مختلفة من Merkle-Patricia، أي تجربة الدولة، تجربة التخزين، تجربة الإيصالات، تجربة المعاملة. تقوم هذه المحاولات الأربع بترميز التعيينات التي تشتمل على جميع بيانات إيثريوم. يتم استخدام أشجار Merkle نظرًا لكفاءتها في تخزين البيانات. باستخدام تجزئات متكررة، يجب تخزين التجزئة الجذرية فقط في النهاية، مما يوفر الكثير من المساحة. إنها تسمح لأي شخص بإثبات وجود عنصر في الشجرة من خلال إثبات أن تجزئة العقد بشكل متكرر تؤدي إلى نفس تجزئة الجذر. تسمح براهين Merkle للعملاء الخفيفين على Ethereum بالحصول على إجابات لأسئلة مثل:
بدلاً من تنزيل كل معاملة وكل كتلة، يمكن لـ «العميل الخفيف» فقط تنزيل سلسلة رؤوس الكتل والتحقق من المعلومات باستخدام Merkle Proofs. هذا يجعل العملية الشاملة عالية الكفاءة. ارجع إلى هذه المدونة التي كتبها مقال بحثي من Vitalik و Maven11 لفهم التنفيذ والمزايا والتحديات المرتبطة بـ Merkle Trees بشكل أفضل.
تسمح لنا أدلة التخزين بإثبات أن شيئًا ما ملتزم في قاعدة البيانات وأنه صالح أيضًا باستخدام التزامات التشفير. إذا تمكنا من تقديم مثل هذا الدليل، فمن الممكن التحقق منه أن شيئًا ما حدث على بلوكتشين.
تسمح براهين التخزين بوظائفين رئيسيين:
تقوم أدلة التخزين على مستوى عالٍ جدًا بالتحقق مما إذا كانت الكتلة المحددة جزءًا من التاريخ الكنسي لـ blockchain ثم التحقق مما إذا كانت البيانات المحددة المطلوبة جزءًا من الكتلة. يمكن تحقيق ذلك من خلال:
بعض المشاريع التي تتبنى هذا النهج هي هيرودوت ولاغرانج وأكسيوم وهايبر أوراكل وشبكة بريفيس ومؤسسة نيل. وفي حين تُبذل جهود كبيرة لجعل التطبيقات على دراية بالحالة عبر سلاسل بلوكتشين المتعددة، تبرز IBC (الاتصالات عبر بلوكتشين) كمعيار للتشغيل البيني يمكّن تطبيقات مثل ICQ (استعلامات Interchain) و ICA (حسابات Interchain). يمكّن ICQ التطبيقات على السلسلة A من الاستعلام عن حالة السلسلة B من خلال تضمين الاستعلام في حزمة IBC بسيطة ويسمح ICA لبلوكشين واحد بالتحكم الآمن في حساب على بلوكشين آخر. يمكن أن يؤدي الجمع بينهما إلى تمكين حالات استخدام مثيرة للاهتمام عبر السلاسل. يقدم موفرو RaaS مثل Saga هذه الوظائف لجميع سلاسل التطبيقات الخاصة بهم افتراضيًا باستخدام IBC.
هناك العديد من الطرق التي يمكن من خلالها تحسين براهين التخزين للعثور على التوازن الصحيح لاستهلاك الذاكرة ووقت الإثبات ووقت التحقق وكفاءة الحوسبة وتجربة المطور. يمكن تقسيم العملية الشاملة على نطاق واسع إلى 3 عمليات فرعية رئيسية.
الوصول إلى البيانات: في هذه العملية الفرعية، يصل مزود الخدمة إلى رؤوس كتل سلسلة المصدر محليًا على طبقة التنفيذ أو عن طريق الاحتفاظ بذاكرة تخزين مؤقت على السلسلة. للوصول إلى البيانات عبر السلاسل، يلزم التحقق من إجماع سلسلة المصدر على سلسلة الوجهة. تتضمن بعض الأساليب والتحسينات التي يتم اعتمادها ما يلي:
إلى جانب الوصول إلى البيانات، يجب أن تكون العقود الذكية أيضًا قادرة على إجراء حسابات عشوائية فوق البيانات. في حين أن بعض حالات الاستخدام قد لا تتطلب الحساب، إلا أنها خدمة مهمة ذات قيمة مضافة للعديد من حالات الاستخدام الأخرى. يقوم العديد من مزودي الخدمة بتمكين الحسابات على البيانات حيث يمكن إنشاء دليل zk للحساب وتقديمه على السلسلة من أجل الصلاحية. ونظرًا لإمكانية استخدام حلول AMP الحالية مثل Axelar وLayerZero وPolyhedra Network للوصول إلى البيانات، فقد تصبح معالجة البيانات أداة تمييز لمقدمي خدمات إثبات التخزين.
يسمح Hyper Oracle، على سبيل المثال، للمطورين بتحديد الحسابات المخصصة خارج السلسلة باستخدام JavaScript. صممت Brevis سوقًا مفتوحًا لمحركات ZK Query التي تقبل استعلامات البيانات من dApps وتعالجها باستخدام رؤوس الكتل المعتمدة. يرسل العقد الذكي استعلامًا عن البيانات، يتم التقاطه بواسطة مُثبت من السوق. يقوم Prover بإنشاء إثبات استنادًا إلى إدخال الاستعلام ورؤوس الكتل ذات الصلة (من طبقة تجميع Brevis) والنتائج. قدمت لاغرانج ZK Big Data Stack لإثبات نماذج البرمجة الموزعة مثل SQL و MapReduce و Spark/RDD. تُعد البراهين معيارية ويمكن إنشاؤها من أي رأس كتلة ينشأ من الجسور عبر السلاسل الحالية وبروتوكولات AMP. ZK MapReduce، المنتج الأول في مكدس Lagrange ZK BigData، هو محرك حساب موزع (يعتمد على نموذج برمجة MapReduce المعروف) لإثبات نتائج الحساب التي تتضمن مجموعات كبيرة من البيانات متعددة السلاسل. على سبيل المثال، يمكن استخدام دليل ZKMR واحد لإثبات التغييرات في سيولة DEX المنشورة على 4-5 سلاسل خلال نافذة زمنية محددة. بالنسبة للاستعلامات البسيطة نسبيًا، يمكن أيضًا إجراء الحساب مباشرة على السلسلة كما يقوم به هيرودوت في الوقت الحالي.
يمكن لبراهين الحالة والتخزين فتح العديد من حالات الاستخدام الجديدة للعقود الذكية في طبقة التطبيقات والبرامج الوسيطة والبنية التحتية. بعض هذه هي:
الحوكمة:
يمكن استخدام جميع البراهين المذكورة أعلاه لتوفير تجربة مخصصة للمستخدمين. يمكن أن تقدم Dapps خصومات أو امتيازات للاحتفاظ بالمتداولين أو المستخدمين ذوي الخبرة وتقديم تجربة مستخدم مبسطة للمستخدمين المبتدئين.
ستتطلب حالتا الاستخدام الأخيرتان تحديث الدليل في كل مرة تتم فيها إضافة كتلة جديدة إلى سلسلة المصدر.
تعمل التوعية على تمكين شركات التكنولوجيا من خدمة عملائها بشكل أفضل. من هوية المستخدم إلى سلوك الشراء إلى الرسوم البيانية الاجتماعية، تستفيد شركات التكنولوجيا من الوعي لإطلاق العنان لإمكانيات مثل الاستهداف الدقيق وتقسيم العملاء والتسويق الفيروسي. تحتاج شركات التكنولوجيا التقليدية إلى إذن صريح من مستخدميها ويجب توخي الحذر أثناء إدارة بيانات المستخدم. ومع ذلك، فإن جميع بيانات المستخدم على البلوكشين غير المصرح بها متاحة للجمهور دون الكشف بالضرورة عن هوية المستخدم. يجب أن تكون العقود الذكية قادرة على الاستفادة من البيانات المتاحة للجمهور لخدمة المستخدمين بشكل أفضل. سيؤدي تطوير واعتماد أنظمة بيئية أكثر تخصصًا إلى جعل وعي الدولة عبر الزمن وبلوكتشين مشكلة متزايدة الأهمية يجب حلها. يمكن لبراهين التخزين تمكين إيثريوم من الظهور كطبقة هوية وملكية أصول إلى جانب كونها طبقة تسوية. يمكن للمستخدمين الحفاظ على هويتهم وأصولهم الرئيسية على إيثريوم والتي يمكن استخدامها عبر سلاسل بلوكتشين متعددة دون ربط الأصول طوال الوقت. ما زلنا متحمسين للإمكانيات الجديدة وحالات الاستخدام التي سيتم فتحها في المستقبل.