كيف يأمل ZeroSync في تقليل تكاليف التحقق من عقد Bitcoin
باستخدام براهين المعرفة الصفرية ، تسعى ZeroSync إلى تقليل التكاليف الحسابية بشكل جذري لإقلاع عميل Bitcoin الذي يتم التحقق منه بالكامل.
هذه مقالة افتتاحية بقلم Shinobi ، المعلم الذي علم نفسه بنفسه في مجال Bitcoin ومضيف بودكاست Bitcoin ذي التوجه التكنولوجي.
براهين المعرفة الصفرية (ZKPs) هي شيء تمت مناقشته في هذا الفضاء لأكثر من عقد من الزمان. حتى ساتوشي ناكاموتو نفسه كان على دراية بها باعتبارها بدائية يمكن استخدامها ، ونوقشت فكرة تطبيقها على البيتكوين في وقت مبكر من عام 2010 عندما كانت لا تزال نشطة.
في رأيي ، لقد كانت دائمًا واحدة من الميزات “طويلة المدى” المحتملة لعملة البيتكوين والتي لم يكن لها في الواقع تطبيق قوي وملموس ولكن يمكن أن ينتهي بها الأمر وتخلق قدرًا هائلاً من القيمة والمنفعة للعمل الذي تم وضعه في التنفيذ هم. من منا لا يعتقد أن إثبات صحة بعض العبارات المشفرة ، أو امتلاكك لبعض المعلومات دون الكشف عنها ، يعد أمرًا ذا قيمة كبيرة؟ خاصة عندما يمكنك القيام بذلك لأشياء معقدة للغاية بأدلة صغيرة نسبيًا؟
تتطلب العقود / النصوص الذكية المعقدة والكبيرة لقفل البيتكوين في النهاية وضع أجزاء كبيرة نسبيًا من بيانات الشهود على blockchain من أجل إنفاق تلك العملات. يمكن أن يكون ذلك إما كميات كبيرة من البيانات حرفيًا ، أو يمكن أن يكون أيضًا بيانات مكلفة للحساب والتحقق. هذه مقايضة تقليدية للبلوكشين: كلما كان الشرط الذي تريد أن تطلبه أكثر تعقيدًا لإنفاق العملات المعدنية ، زادت تكلفة التحقق أو يلزم توفير المزيد من البيانات لإنفاقها.
لطالما تم تعليق ZKPs كطريقة لتغيير ذلك ، مما يسمح بإثبات شروط البرنامج النصي شديدة التعقيد بكمية صغيرة أو ثابتة من البيانات التي ، عند التحقق منها ، تظهر بشكل قاطع أن هذه الشروط قد تم الوفاء بها. هذا بسبب عدم التناسق الأساسي بين الإثبات والتحقق باستخدام ZKPs.
لإعطاء مثال ملموس بسيط قدر الإمكان ، فإن توقيعات الحلقة هي شكل أساسي جدًا من ZKP. الفكرة هي تقديم توقيع يمكن إثباته بواسطة مفتاح واحد ضمن مجموعة كبيرة من المفاتيح دون الكشف عن أي واحد منها بالضبط. من خلال تحديد خوارزمية التوقيع بشكل صحيح ، يمكن إنتاج توقيع واحد يمكن التحقق منه مقابل المجموعة الكاملة من المفاتيح العامة ويظهر أنه تم إنتاجه بواسطة أحدهم ولكن مع إخفاء أي واحد.
هذا ، على مستوى عالٍ للغاية ، هو كيفية عمل ZKPs. أنت تنشئ بروتوكولًا لإثبات شيء ما ، يتضمن طريقة للشخص الذي يؤكد حقيقة ما لتقديم دليل والشخص الذي يؤكده عليه للتحقق منه. في حالة توقيعات الحلقة ، فهي عبارة عن خوارزمية توقيع تتحقق من صحة مجموعة من المفاتيح العامة دون تحديد أي منها. هذه هي النقطة الأساسية: أنت تثبت شيئًا ما دون الكشف فعليًا عن المعلومات التي من شأنها إثبات ذلك بشكل تقليدي (في هذه الحالة ، توقيع من مفتاح عام واحد).
تقديم ZeroSync
بعد سنوات من مناقشة الاحتمالات ، تم إحراز تقدم أخيرًا في جلب ZKPs إلى Bitcoin في شكل مشروع ZeroSync. على الرغم من أن الجزء المثير للاهتمام هو لا علاقة له بقفل العملات المعدنية أو إنفاقها. لا يوجد أي كود ZKP OP قادم ، أو أي نوع من الطرق لقفل العملات المعدنية على السلسلة باستخدامها. يتم تطبيقه لمساعدة العقد الكاملة على إنجاز مزامنة أولية أسرع بكثير.
ومع ذلك ، فهذه مهمة كبيرة وليست شيئًا سيحدث دفعة واحدة. كما قلت أعلاه في وصف توقيعات الحلقة ، يتطلب ZKP تصميم بروتوكول لكل شيء محدد تحاول إثباته. لا يوجد “دليل على المعرفة الصفرية” يمكنه إثبات أي شيء بشكل تعسفي ، لأن كل واحد يحتاج إلى بروتوكول إثبات فريد خاص به للتحقق بشكل كافٍ من نوع معين من الحسابات أو التأكيد حول نوع معين من البيانات.
تعمل ZeroSync على إنشاء ثلاثة أدلة بشكل متكرر والتي ستوفر ، عند الانتهاء ، تحققًا كاملاً من blockchain التاريخي دون مطالبة المستخدم بتنزيله ومعالجته بالفعل. الجزء الأكبر في هذا الأمر هو أنه لا يلزم تغيير إجماع على بروتوكول Bitcoin لتحقيق ذلك. كل شيء يحدث ببساطة على مستوى التطبيق ، أي في البرنامج الذي تقوم بتشغيله. لا تزال تتحقق من صحة قواعد الإجماع نفسها وتنفذها كعقدة Bitcoin تقليدية. عند الاكتمال ، يمكن لأي شخص ببساطة اختيار استخدام عقدة ZeroSync هذه والتأكد من أن مجموعة UTXO التي يقوم بتنزيلها صالحة. أو يمكنك الاستمرار في تشغيل Bitcoin Core والتحقق من صحة كل شيء بالطريقة التقليدية.
كتلة البراهين
يغطي الدليل الأول الذي يعمل عليه فريق ZeroSync ، والذي يجب إصداره بحلول هذا الوقت ، صلاحية رؤوس المجموعات. إنه يثبت أن كل كتلة في السلسلة قد استوفت متطلبات الصعوبة بشكل صحيح في ذلك الوقت ، وتتبع كل تغيير صعوبة لضمان أن كل كتلة تلبي الهدف المناسب. سيقدم هذا أيضًا فائدة كبيرة لهندسة محفظة التحقق من الدفع المبسط (SPV) في هذه العملية.
كل كتلة Bitcoin هي في الأساس شجرة Merkle لكل معاملة في الكتلة ، بالإضافة إلى الرأس الذي يحتوي على بعض البيانات الأخرى وجذر شجرة Merkle. سيطبق إثبات رأس كتلة ZeroSync ، أثناء عملية الإنشاء ، شجرة Merkle هذه أيضًا كل رأس كتلة فردي في السلسلة. لذلك ، بنفس الطريقة التي تلتزم بها كل معاملة باستخدام شجرة Merkle ، مما يؤدي إلى تجزئة واحدة ، فإن كل كتلة في blockchain ستلتزم بتجزئة واحدة باستخدام شجرة Merkle. سيسمح هذا ببراهين SPV أكثر إحكاما. حاليًا ، لتنفيذ SPV ، يجب على المستخدم الاحتفاظ بنسخة كاملة من كل رأس كتلة في blockchain ، وعند توفير معاملة ومسار شجرة Merkle من رأس الكتلة إلى رأس الكتلة ، يمكنه استخدام ذلك للتحقق من أنه ملتزم بالفعل بـ كتلة.
باستخدام إثباتات رأس الكتلة ، لن يحتاج المستخدمون حتى إلى الحصول على نسخة من رؤوس الكتلة للتحقق من أن المعاملة ملتزمة بداخل blockchain. يضيفون ببساطة على مسار Merkle من رأس الكتلة أن المعاملة موجودة في تجزئة الجذر لشجرة Merkle blockchain الحالية وتوفر نفس ضمانات الأمان جنبًا إلى جنب مع ZKP لصلاحية إثبات رأس الكتلة.
التحقق من محتويات الكتلة
يركز الدليل الثاني على الصلاحية الفعلية لمحتويات الكتلة ، ومع ذلك ، مثل وظيفة Assume Valid في Bitcoin Core ، فإنه لا يثبت صحة بيانات الشاهد. ستتحقق وتتحقق من حد حجم المعاملة وقواعد تضخم العملة وما إلى ذلك ، ولكنها لا تقدم دليلًا على صحة التوقيعات وأقفال التجزئة وبيانات الشهود الأخرى. ومع ذلك ، سوف يشتمل هذا الدليل على Utreexo من أجل دمج مجموعة UTXO عند كل ارتفاع كتلة في بروتوكول ZKP العام للسلسلة.
سيظهر لك الدليل الأول ببساطة أن رؤوس الكتلة صالحة ، لكن هذا لا يقول شيئًا عن المعروض من العملات أو مجموعة UTXO. سيسمح هذا الدليل الثاني بتسليم مجموعة UTXO إلى مستخدم باستخدام ZKP الذي يثبت أن جميع رؤوس الكتلة المؤدية إلى مجموعة UTXO هذه صالحة ، بالإضافة إلى الالتزام بكل مجموعة UTXO وجميع التغييرات التي تطرأ عليها تثبت أن كل منها الانتقال من واحد إلى التالي صالح أيضًا. سيسمح ذلك بمزامنة كاملة مع Bitcoin Core الافتراضي على افتراض ارتفاع صالح مع تعيين UTXO فقط على ارتفاع الكتلة وإثبات صغير ، كل ذلك مع نفس نموذج الثقة تمامًا مثل تنزيل كل ذلك والتحقق من الكتل الكاملة مباشرة.
التحقق من كل قطعة من بيانات الشهود
أخيرًا ، سيشمل الدليل النهائي كلاً من ZKP لرؤوس الكتلة والبناء على ZKP for Assume Valid لتضمين إثبات صحة كل جزء من بيانات الشهود في السلسلة التاريخية. بعد هذه المرحلة ، من الناحية الفنية ، ستكون العقدة التي تستخدم نظام إثبات ZeroSync النهائي قادرة بالفعل على التمهيد بإثبات واحد ومجموعة UTXO مع نموذج تحقق أقوى من Bitcoin Core افتراضيًا.
عادةً ما يستخدم Bitcoin Core الارتفاع الافتراضي للكتلة Assume Valid لتخطي التحقق من صحة الشاهد لأي كتلة قبلها (على الرغم من أنه يمكن للمستخدم تجاوز افتراض الصالح = 0 والتحقق من صحة الشهود لكل كتلة) ، ولكن سيكون لعقد ZeroSync إثبات صحة لكل كتلة بيانات الشهود.
المشكلة الوحيدة في هذا الدليل الأخير هي أن التعقيد الحسابي لتكوينه في الواقع أعلى بكثير من التعقيد السابق. يعد التحقق من صحة الإثبات أمرًا بسيطًا وسريعًا ، ولا يتطلب سوى ZKP والمحقق ، ولكن إنشائه يتطلب في الواقع أخذ البيانات الأولية الكاملة التي من شأنها أن تشكل دليلاً تقليديًا (في هذه الحالة ، blockchain التاريخي بأكمله) ومعالجته فعليًا لإنشاء ZKP لذلك. تعد إضافة بيانات الشهود إلى الإثبات حاليًا مكلفة للغاية. من أجل تحقيق هدف خارطة الطريق هذا ، ستكون هناك حاجة إلى الكثير من التحسين. لكن ، لنفترض أنه يثبت أنه من الصعب حله. سيظل هذا المشروع يوفر قدرًا هائلاً من القيمة في السماح للمستخدمين “بالمزامنة الصفرية” حتى الارتفاع الافتراضي للكتلة Assume Valid ثم التحقق بشكل تقليدي من بقية السلسلة من هناك إلى الطرف.
تقليل التكاليف الحسابية للبيتكوين
إذا نجحت خارطة الطريق الخاصة به ، فقد يكون لهذا المشروع تأثير هائل على تقليل التكاليف الحسابية لمستخدمي Bitcoin لتمهيد عميل Bitcoin للتحقق بالكامل. نظرًا لأن blockchain يبلغ حجمه حاليًا 500 غيغابايت تقريبًا ، فهناك تكلفة مقيدة للغاية تمنع عددًا كبيرًا من المستخدمين من تشغيل عميل التحقق من الصحة. يجب أن يتوفر لديك النطاق الترددي لتنزيله ، وفي أجزاء كثيرة من العالم ، لا يزال النطاق الترددي باهظ التكلفة. تحتاج أيضًا إلى جهاز قوي بما يكفي لمعالجة تلك البيانات ، وفي أجزاء كثيرة من العالم ، لا يملك الناس سوى هاتف ذكي فيما يتعلق بالأجهزة الرقمية التي يمكنها الاتصال بالإنترنت.
يمكن لـ ZeroSync خفض هذه التكلفة إلى بضعة غيغابايت لمجموعة UTXO وإثبات ZKP صغير جدًا بحيث يمكن أن يتسع لقرص مرن سعة 1.44 ميجابايت. ولا يتطلب أي إجماع تغييرات أو شوكات على الإطلاق للقيام بذلك.
الآن ، في الختام ، أريد أن أبين نوعًا من نقطة الخدعة: تم تصميم ZeroSync باستخدام لغة القاهرة التي طورتها Starkware ، وهي لغة تورينج كاملة يمكن استخدامها لبناء أنظمة معرفية صفرية للحسابات التعسفية. Starkware هي شركة تقوم بتطوير ZKPs للنظام البيئي Ethereum ، وعلى وجه التحديد تطوير مجموعات المعرفة الصفرية كحل الطبقة الثانية. قد ينتهي الأمر ببناء ZeroSync لعميل مزامنة تم التحقق منه من ZKP لـ Bitcoin باعتباره المرة الأولى التي ينتج فيها تطوير حقيقي للمادة من altcoin في الواقع تحسينًا قيمًا يعود إلى نظام Bitcoin البيئي.
يمكن أن تصبح ZKP أداة قوية جدًا للبيتكوين حتى بدون دمجها في طبقة الإجماع ، أو استخدامها كطريقة لقفل البيتكوين وإنفاقه بالفعل. نأمل أن تتمكن ZeroSync من تحقيق أهداف خارطة الطريق الخاصة بها وإنتاج عميل المزامنة السريعة الذي يعمل عليه فريقها. بعد ذلك ، هناك المزيد الذي يمكن القيام به لنشر ZKPs في نظام Bitcoin البيئي إلى جانب تمهيد العقدة.
هذا منشور ضيف بواسطة Shinobi. الآراء المعبر عنها خاصة بها تمامًا ولا تعكس بالضرورة آراء BTC Inc أو Bitcoin Magazine.