Understanding Zero-Knowledge Proof through a Top-Down Approach

الجزء 1: مقدمة لإثبات المعرفة الصفرية

مقدمة

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

أولاً ، كتعريف بسيط ، فإن إثبات عدم المعرفة هو طريقة يمكن من خلالها لأحد الأطراف (المُثبِت) أن يثبت لطرف آخر (المُحقق) أن بيانًا معينًا صحيحًا ، بينما يتجنب المُثقف نقل أي معلومات إضافية بصرف النظر عن حقيقة أن البيان صحيح بالفعل.

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

مثال 1: استعادة هاتفك المفقود

أفضل مثال على إثبات عدم المعرفة المطلوب هو الموقف الذي يجب أن تثبت فيه لشخص وجد هاتفك أن هذا الهاتف هو هاتفك تمامًا. في هذا المثال:

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

مثال 2: شراء الكحول عندما يكون عمرك 18 عامًا على الأقل

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

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

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

مثال 3: إنشاء أحجية سودوكو قابلة للحل

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

يمكنك استخدام مفهوم إثبات المعرفة الصفرية لحل هذا التحدي:

أولاً ، ستكتب الأرقام الموجودة في أحجية سودوكو على بطاقات ، ثم ترتبها في شبكة 9 × 9 وفقًا لسودوكو الذي تم حله. ثم تقلبهم جميعًا بحيث تكون الأرقام متجهة لأسفل (لا تسمح للمنافس برؤية البطاقات أثناء ترتيبها).
بعد ذلك ، ستسمح للمنافس باختيار أي بطاقة في أي صف أو عمود. ستقوم بعد ذلك بجمع كل البطاقات المتبقية في هذا الصف أو العمود ، وخلطها ، ومنحها للمنافس.
سيقوم المتحدي الآن بمراجعة البطاقات والتحقق من أن أرقام هذه البطاقات تقع جميعها في نطاق من 1 إلى 9 ، دون تكرار.
بعد أن تكرر هذه العملية لكل عمود وكل صف ، ستكون قد أثبت للمُشكك أن لغز سودوكو له حل. وأنت لم تتنازل عن إجابة اللغز في عملية إثباته.

مثال 4: لعبة “بقعة الاختلافات”

في مثال أخير لإثبات بسيط بدون معرفة ، دعنا نفكر في سيناريو واحد آخر من الحياة الواقعية. هذا السيناريو يسمى لعبة “بقعة الاختلافات”. في هذه اللعبة ، يجب عليك تحديد نقطة مربعة واحدة تقع بشكل عشوائي على لوحة رسم بين 9999 نقطة أخرى ، وكلها مستديرة. العدد الإجمالي للنقاط هو 10000 نقطة. كشرط إضافي ، ستحتاج إلى إثبات وجود هذه النقطة المربعة من خلال إظهارها للاعبين الآخرين دون الكشف عن موقعها الدقيق لهم.

باستخدام مفهوم إثبات المعرفة الصفرية ، ستخفي جميع المعلومات المتعلقة بالنقطة المربعة – وخاصة موقعها – باستثناء شكل هذه النقطة. لنفعل ذلك:

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

البلوكتشين وإثبات المعرفة الصفرية

الآن ، مع بعض الفهم الأساسي لما يمثله إثبات عدم المعرفة الصفرية ، دعنا نفكر في كيفية تفعيل هذه الوظيفة في عالم تقنية البلوكتشين .

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

هناك تحدٍ رئيسي لهذا الموقف: نظرًا لعدم وجود حماية للخصوصية على السلسلة ، لا يمكن تحقيق العديد من سيناريوهات التطبيقات التي يجب أن تحمي خصوصية المستخدم على البلوكتشين .

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

تشكل الطبيعة الشفافة لـ البلوكتشين تحديًا آخر: عندما يقوم المستخدم بإجراء عمليات متعددة على السلسلة من خلال حساب واحد ، قد يتمكن المتسللون من استنتاج هوية المستخدم في الحياة الواقعية من خلال سجل عمليات المستخدم.

تم الشروع في البحث بشأن حماية الخصوصية على السلسلة لحل مشاكل مثل هذه التي تنبع من نقص الخصوصية في المعاملات على السلسلة. هذا البحث هو مرحلة مبكرة جدًا وجاري العمل عليه اليوم.

يتخذ الباحثون العديد من الأساليب الفنية المختلفة لتلبية الحاجة إلى حماية الخصوصية في مجال البلوكتشين :

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

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

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