أشجار فيركل (وهي مزيج من كلمتي "Vector commitment" و"Merkle Trees") هي بنية بيانات يمكن استخدامها لترقية عقد إيثيريوم بحيث يمكنها التوقف عن تخزين كميات كبيرة من بيانات الحالة دون فقدان القدرة على التحقق من صحة الكتل.
انعدام الحالة
تعد أشجار فيركل خطوة حاسمة على طريق عملاء إيثيريوم عديمي الحالة. العملاء عديمو الحالة هم أولئك الذين لا يضطرون إلى تخزين قاعدة بيانات الحالة بأكملها من أجل التحقق من صحة الكتل الواردة. بدلاً من استخدام نسختهم المحلية الخاصة من حالة إيثيريوم للتحقق من الكتل، يستخدم العملاء عديمو الحالة "شاهدًا" لبيانات الحالة التي تصل مع الكتلة. الشاهد هو مجموعة من الأجزاء الفردية من بيانات الحالة المطلوبة لتنفيذ مجموعة معينة من المعاملات، وإثبات تشفيري على أن الشاهد هو حقًا جزء من البيانات الكاملة. يتم استخدام الشاهد بدلاً من قاعدة بيانات الحالة. لكي ينجح هذا، يجب أن تكون الشواهد صغيرة جدًا، بحيث يمكن بثها بأمان عبر الشبكة في الوقت المناسب للمُدَقِّقين لمعالجتها ضمن خانة مدتها 12 ثانية. بنية بيانات الحالة الحالية غير مناسبة لأن الشواهد كبيرة جدًا. تحل أشجار فيركل هذه المشكلة من خلال تمكين الشواهد الصغيرة، مما يزيل أحد العوائق الرئيسية أمام العملاء عديمي الحالة.
ما هو الشاهد ولماذا نحتاج إليه؟
يعني التحقق من صحة الكتلة إعادة تنفيذ المعاملات الواردة في الكتلة، وتطبيق التغييرات على شجرة حالة إيثيريوم، وحساب تجزئة الجذر الجديدة. الكتلة التي تم التحقق منها هي تلك التي تكون تجزئة جذر الحالة المحسوبة لها مطابقة لتلك المقدمة مع الكتلة (لأن هذا يعني أن مقترح الكتلة قد قام بالفعل بالحسابات التي يدعي القيام بها). في عملاء إيثيريوم اليوم، يتطلب تحديث الحالة الوصول إلى شجرة الحالة بأكملها، وهي بنية بيانات كبيرة يجب تخزينها محليًا. يحتوي الشاهد فقط على أجزاء من بيانات الحالة المطلوبة لتنفيذ المعاملات في الكتلة. يمكن للمُدَقِّق بعد ذلك استخدام هذه الأجزاء فقط للتحقق من أن مقترح الكتلة قد نفذ معاملات الكتلة وقام بتحديث الحالة بشكل صحيح. ومع ذلك، هذا يعني أن الشاهد يحتاج إلى النقل بين النظراء على شبكة إيثيريوم بسرعة كافية ليتم استلامه ومعالجته بواسطة كل عقدة بأمان ضمن خانة مدتها 12 ثانية. إذا كان الشاهد كبيرًا جدًا، فقد يستغرق الأمر وقتًا طويلاً لبعض العقد لتنزيله ومواكبة السلسلة. هذه قوة مركزية لأنها تعني أن العقد ذات اتصالات الإنترنت السريعة فقط هي التي يمكنها المشاركة في التحقق من صحة الكتل. مع أشجار فيركل، ليست هناك حاجة لتخزين الحالة على محرك الأقراص الثابتة لديك؛ كل شيء تحتاجه للتحقق من صحة الكتلة موجود داخل الكتلة نفسها. لسوء الحظ، فإن الشواهد التي يمكن إنتاجها من أشجار ميركل كبيرة جدًا بحيث لا يمكنها دعم العملاء عديمي الحالة.
لماذا تتيح أشجار فيركل شواهد أصغر؟
تجعل بنية شجرة ميركل أحجام الشواهد كبيرة جدًا - أكبر من أن يتم بثها بأمان بين النظراء ضمن خانة مدتها 12 ثانية. وذلك لأن الشاهد عبارة عن مسار يربط البيانات، المحفوظة في الأوراق، بتجزئة الجذر. للتحقق من البيانات، من الضروري ألا يكون لديك فقط جميع التجزئات الوسيطة التي تربط كل ورقة بالجذر، بل وأيضًا جميع العقد "الشقيقة". كل عقدة في الإثبات لها شقيق يتم تجزئته معها لإنشاء التجزئة التالية في الشجرة. هذا يمثل الكثير من البيانات. تقلل أشجار فيركل من حجم الشاهد عن طريق تقصير المسافة بين أوراق الشجرة وجذرها، وكذلك القضاء على الحاجة إلى توفير عقد شقيقة للتحقق من تجزئة الجذر. سيتم اكتساب المزيد من كفاءة المساحة باستخدام مخطط التزام متعدد الحدود قوي بدلاً من التزام المتجه بأسلوب التجزئة. يسمح الالتزام متعدد الحدود بأن يكون للشاهد حجم ثابت بغض النظر عن عدد الأوراق التي يثبتها.
في ظل مخطط الالتزام متعدد الحدود، تتمتع الشواهد بأحجام يمكن إدارتها ويمكن نقلها بسهولة على شبكة نظير إلى نظير. يتيح ذلك للعملاء التحقق من تغييرات الحالة في كل كتلة بأقل قدر من البيانات.
ما هي بنية شجرة فيركل؟
أشجار فيركل هي أزواج (key,value) حيث تكون المفاتيح عبارة عن عناصر بحجم 32-byte تتكون من جذع بحجم 31-byte و_لاحقة_ بحجم بايت واحد. يتم تنظيم هذه المفاتيح في عقد امتداد وعقد داخلية. تمثل عقد الامتداد جذعًا واحدًا لـ 256 طفلاً بلاحقات مختلفة. تحتوي العقد الداخلية أيضًا على 256 طفلاً، ولكن يمكن أن تكون عقد امتداد أخرى. يتمثل الاختلاف الرئيسي بين بنية شجرة فيركل وشجرة ميركل في أن شجرة فيركل أكثر تسطحًا بكثير، مما يعني وجود عدد أقل من العقد الوسيطة التي تربط الورقة بالجذر، وبالتالي تتطلب بيانات أقل لإنشاء إثبات.
اقرأ المزيد عن بنية أشجار فيركل (يفتح في علامة تبويب جديدة)
التقدم الحالي
شبكات اختبار أشجار فيركل قيد التشغيل بالفعل، ولكن لا تزال هناك تحديثات معلقة كبيرة للعملاء مطلوبة لدعم أشجار فيركل. يمكنك المساعدة في تسريع التقدم من خلال نشر العقود على شبكات الاختبار أو تشغيل عملاء شبكة الاختبار.
شاهد غيوم باليه (Guillaume Ballet) يشرح شبكة اختبار فيركل كوندريو (Condrieu) (يفتح في علامة تبويب جديدة) (لاحظ أن شبكة اختبار كوندريو كانت تعتمد على إثبات العمل (PoW) وقد تم استبدالها الآن بشبكة اختبار Verkle Gen Devnet 6).
قراءة إضافية
- أشجار فيركل لانعدام الحالة (يفتح في علامة تبويب جديدة)
- دانكراد فيست (Dankrad Feist) يشرح أشجار فيركل على PEEPanEIP (يفتح في علامة تبويب جديدة)
- أشجار فيركل لبقيتنا (يفتح في علامة تبويب جديدة)
- تشريح إثبات فيركل (يفتح في علامة تبويب جديدة)
- غيوم باليه يشرح أشجار فيركل في ETHGlobal (يفتح في علامة تبويب جديدة)
- "كيف تجعل أشجار فيركل إيثيريوم أكثر كفاءة وقوة" بقلم غيوم باليه في Devcon 6 (يفتح في علامة تبويب جديدة)
- بايبر ميريام (Piper Merriam) يتحدث عن العملاء عديمي الحالة من ETHDenver 2020 (يفتح في علامة تبويب جديدة)
- دانكراد فيست يشرح أشجار فيركل وانعدام الحالة في بودكاست المعرفة الصفرية (Zero Knowledge) (يفتح في علامة تبويب جديدة)
- فيتاليك بوتيرين يتحدث عن أشجار فيركل (يفتح في علامة تبويب جديدة)
- دانكراد فيست يتحدث عن أشجار فيركل (يفتح في علامة تبويب جديدة)
- وثائق EIP لشجرة فيركل (يفتح في علامة تبويب جديدة)
