تُعتبر تقنية إثبات المعرفة الصفرية (ZKP) واحدة من أهم الابتكارات في مجال البلوكتشين. تقدم هذه المقالة مراجعة شاملة للأدبيات التاريخية والبحوث الحديثة المتعلقة بتقنية ZKP على مدى الأربعين عامًا الماضية.
أولاً، تم تقديم المفهوم الأساسي والتاريخي لـ ZKP. ثم تم تحليل تكنولوجيا ZKP المعتمدة على الدوائر، بما في ذلك تصميم وتطبيق وطرق تحسين نماذج zkSNARK وBen-Sasson وPinocchio وBulletproofs وLigero. في مجال بيئة الحوسبة، يقدم هذا المقال ZKVM وZKEVM، ويناقش كيف يمكنهما تعزيز قدرة معالجة المعاملات وحماية الخصوصية وزيادة كفاءة التحقق. كما يقدم المقال ZK Rollup كآلية عمل وحلول تحسين كخيار للتوسع Layer 2، بالإضافة إلى التقدم الأخير في تسريع الأجهزة، والحلول المختلطة وZK EVM المخصصة.
أخيرًا، يستعرض هذا المقال مفاهيم ناشئة مثل ZKCoprocessor و ZKML و ZKThreads و ZK Sharding و ZK StateChannels، ويناقش إمكانياتها في مجال قابلية توسيع البلوكتشين، والتشغيل البيني، وحماية الخصوصية.
من خلال تحليل هذه التقنيات الحديثة واتجاهات التطوير، يوفر هذا المقال وجهة نظر شاملة لفهم وتطبيق تقنيات zk-SNARKs، ويظهر إمكانياتها الكبيرة في تعزيز كفاءة وأمان أنظمة البلوكتشين، مما يوفر مرجعًا هامًا لقرارات الاستثمار المستقبلية.
الفهرس
مقدمة
أولاً، أساسيات zk-SNARKs
نظرة عامة
مثال على zk-SNARKs
ثانياً، إثبات المعرفة الصفرية غير التفاعلي
الخلفية
تقديم zk-SNARKs
تحويل فيات-شامير
ينس غروث وأبحاثه
أبحاث أخرى
ثالثاً، zk-SNARKs المستندة إلى الدوائر
الخلفية
المفاهيم الأساسية وخصائص نموذج الدائرة
تصميم الدوائر والتطبيقات في zk-SNARKs
العيوب والتحديات المحتملة
أربعة، zk-SNARKs نموذج
الخلفية
نماذج الخوارزميات الشائعة
3.方案 قائمة على PCP الخطي ومشكلة اللوغاريتمات المنفصلة
خطة قائمة على إثبات الأشخاص العاديين
المعرفة الصفرية القائمة على إثبات قابل للتحقق بالاحتمالية (PCP)
تصنيف مرحلة الإعداد المعتمد على CPC
خمسة، نظرة عامة على آلة المعرفة الصفرية وتطورها
الخلفية
تصنيف ZKVM الحالي
نمط الواجهة الأمامية والواجهة الخلفية
مزايا وعيوب نموذج ZKVM
ستة، نظرة عامة على تطوير zk-SNARKs آلة الإيثريوم الافتراضية
الخلفية
كيفية عمل زك-إي في إم
عملية تنفيذ ZKEVM
ميزات ZKEVM
سبعة، نظرة عامة على حلول الشبكات من الطبقة الثانية المعتمدة على zk-SNARKs وتطورها
الخلفية
آلية عمل ZK Rollup
عيوب ZK Rollup والتحسينات
ثامناً، اتجاهات التطوير المستقبلية لل zk-SNARKs
تسريع تطوير بيئة الحساب
تقديم وتطور zk-SNARKs
تطوير تقنيات توسيع zk-SNARKs
تطوير التفاعل بين zk-SNARKs
تاسعًا، الاستنتاج
المراجع
المقدمة
إن الإنترنت يدخل عصر Web3، ويتطور تطبيق البلوكتشين بسرعة. في السنوات الأخيرة، كانت منصات البلوكتشين تستضيف أنشطة ملايين المستخدمين يوميًا، وتعالج عشرات المليارات من المعاملات. وغالبًا ما تتضمن كميات كبيرة من البيانات الناتجة عن هذه المعاملات معلومات شخصية حساسة مثل هويات المستخدمين، ومبالغ المعاملات، وعناوين الحسابات، ورصيد الحساب. ونظرًا لطبيعة البلوكتشين المفتوحة والشفافة، فإن البيانات المخزنة متاحة للجميع، مما أثار مجموعة متنوعة من مشكلات الأمان والخصوصية.
حالياً، هناك عدة تقنيات تشفير يمكن أن تتعامل مع هذه التحديات، بما في ذلك التشفير المتجانس، والتوقيع الحلقي، والحساب الآمن متعدد الأطراف وzk-SNARKs. يسمح التشفير المتجانس بتنفيذ العمليات دون فك تشفير النص المشفر، مما يساعد في حماية أمان رصيد الحساب ومبلغ المعاملات، ولكنه لا يستطيع حماية أمان عنوان الحساب. يوفر التوقيع الحلقي نوعًا خاصًا من التوقيع الرقمي، قادرًا على إخفاء هوية الموقّع، وبالتالي حماية أمان عنوان الحساب، لكنه عاجز عن حماية رصيد الحساب ومبلغ المعاملات. يسمح الحساب الآمن متعدد الأطراف بتوزيع مهام الحساب بين عدة مشاركين، دون أن يعرف أي مشارك بيانات المشاركين الآخرين، مما يحمي بشكل فعال أمان رصيد الحساب ومبلغ المعاملات، ولكنه لا يستطيع أيضًا حماية أمان عنوان الحساب. بالإضافة إلى ذلك، فإن التشفير المتجانس، والتوقيع الحلقي، والحساب الآمن متعدد الأطراف لا يمكن استخدامها للتحقق مما إذا كان المبرهن يمتلك مبلغ معاملات كافٍ دون كشف مبلغ المعاملات، وعنوان الحساب، ورصيد الحساب.
الـzk-SNARKs هي حل شامل أكثر، حيث تسمح هذه البروتوكولات بالتحقق من صحة بعض العبارات دون الكشف عن أي بيانات وسيطة. لا تتطلب البروتوكولات بنية تحتية معقدة للمفاتيح العامة، ولا توفر عمليات التنفيذ المتكررة لمستخدمين خبيثين فرصة للوصول إلى معلومات إضافية مفيدة. من خلال الـzk-SNARKs، يمكن للمحقق التحقق مما إذا كان المدعي يمتلك مبلغًا كافيًا من المعاملات دون كشف أي بيانات خاصة بالمعاملات. تتضمن عملية التحقق إنشاء دليل يحتوي على المبلغ الذي يدعيه المدعي، ثم يتم تمرير هذا الدليل إلى المحقق، حيث يقوم المحقق بإجراء حسابات محددة مسبقًا على الدليل، وينتج نتيجة الحساب النهائية، ليصل إلى استنتاج بشأن قبول ادعاء المدعي من عدمه. إذا تم قبول ادعاء المدعي، فهذا يعني أنهم يمتلكون مبلغًا كافيًا من المعاملات. يمكن تسجيل عملية التحقق المذكورة على الـبلوكتشين، دون أي تزييف.
تُمكّن هذه الميزة ZKP من لعب دور رئيسي في معاملات البلوكتشين وتطبيقات العملات المشفرة، خاصة في مجالات حماية الخصوصية وتوسيع الشبكة، مما يجعلها ليست فقط محور اهتمام البحث الأكاديمي، بل تُعتبر على نطاق واسع واحدة من أهم الابتكارات التكنولوجية منذ تنفيذ تكنولوجيا دفاتر الحسابات الموزعة بنجاح. كما أنها أيضًا مسار رئيسي لتطبيقات الصناعة ورأس المال الاستثماري.
من هنا، ظهرت العديد من المشاريع الشبكية القائمة على zk-SNARKs، مثل ZkSync وStarkNet وMina وFilecoin وAleo وغيرها. مع تطور هذه المشاريع، تتوالى الابتكارات في خوارزميات zk-SNARKs، ووفقًا للتقارير، يتم إطلاق خوارزميات جديدة تقريبًا كل أسبوع. بالإضافة إلى ذلك، تتقدم تطوير الأجهزة المتعلقة بتقنية zk-SNARKs بسرعة، بما في ذلك الشرائح المصممة خصيصًا لتحسين zk-SNARKs. على سبيل المثال، أكملت مشاريع مثل Ingonyama وIrreducible وCysic جمع الأموال على نطاق واسع، وهذه التطورات لا تعرض فقط التقدم السريع لتقنية zk-SNARKs، بل تعكس أيضًا الانتقال من الأجهزة العامة إلى الأجهزة المخصصة مثل GPU وFPGA وASIC.
تشير هذه التطورات إلى أن تقنية zk-SNARKs ليست فقط اختراقًا مهمًا في مجال التشفير، ولكنها أيضًا القوة الدافعة الرئيسية لتحقيق تطبيقات أوسع لتقنية البلوكتشين.
لذلك، قررنا تنظيم المعرفة المتعلقة بال zk-SNARKs بشكل منهجي، لمساعدتنا بشكل أفضل في اتخاذ قرارات الاستثمار المستقبلية. لهذا الغرض، قمنا بمراجعة شاملة للأوراق الأكاديمية الأساسية المتعلقة بال ZKP؛ في الوقت نفسه، قمنا أيضًا بتحليل مفصل لمعلومات ومشاريع رائدة في هذا المجال. لقد وفرت هذه المجموعة الشاملة من البيانات والتحليل أساسًا قويًا لكتابة هذه المقالة.
واحد، zk-SNARKs أساسيات المعرفة
1.نظرة عامة
في عام 1985، قدم الباحثون Goldwasser وMicali وRackoff في ورقتهم البحثية "تعقيد المعرفة لنظم الإثبات التفاعلي" مفهوم الإثباتات ذات المعرفة الصفرية والإثباتات التفاعلية لأول مرة. تعتبر هذه الورقة أساساً لأساليب الإثباتات ذات المعرفة الصفرية، حيث تعرف العديد من المفاهيم التي أثرت على الأبحاث الأكاديمية اللاحقة. على سبيل المثال، يتم تعريف المعرفة على أنها "ناتج غير قابل للحساب"، مما يعني أن المعرفة يجب أن تكون ناتجاً، ويجب أن تكون غير قابلة للحساب، مما يعني أنه لا يمكن أن تكون دالة بسيطة، بل يجب أن تكون دالة معقدة. عادةً ما يمكن فهم الحسابات غير القابلة للتنفيذ على أنها مشكلة NP، أي مشكلة يمكن التحقق من صحة حلها في وقت متعدد الحدود، حيث يشير وقت متعدد الحدود إلى أن وقت تشغيل الخوارزمية يمكن التعبير عنه كدالة كثيرة الحدود من حجم المدخلات. هذا هو معيار مهم في علوم الكمبيوتر لقياس كفاءة الخوارزمية وقابليتها للتنفيذ. نظراً لتعقيد عملية حل مشاكل NP، فهي تعتبر حسابات غير قابلة للتنفيذ؛ لكن عملية التحقق منها بسيطة نسبياً، لذا فهي مناسبة جداً لاستخدامها في التحقق من الإثباتات ذات المعرفة الصفرية.
مثال كلاسيكي لمشكلة NP هو مشكلة البائع المتجول، حيث يتعين العثور على أقصر مسار لزيارة مجموعة من المدن والعودة إلى النقطة الأصلية. على الرغم من أن العثور على أقصر مسار قد يكون صعبًا، إلا أن التحقق من ما إذا كان مسار معين هو الأقصر نسبيًا سهل نسبيًا. لأن التحقق من المسافة الإجمالية لمسار محدد يمكن أن يتم في وقت متعدد الحدود.
قدم غولدواسر وآخرون في ورقتهم مفهوم "تعقيد المعرفة" لقياس كمية المعرفة التي يكشفها المُثبت للمدقق في أنظمة الإثبات التفاعلية. كما اقترحوا نظام إثبات تفاعلي حيث يتفاعل المُثبت والمدقق عبر جولات متعددة لإثبات صحة عبارة معينة.
بناءً على ما سبق، فإن تعريف zk-SNARKs الذي قدمه Goldwasser وآخرون هو نوع خاص من الإثباتات التفاعلية، حيث لا يحصل المصدق خلال عملية التحقق على أي معلومات إضافية بخلاف قيمة صحة البيان؛ وقد اقترحوا ثلاثة خصائص أساسية تشمل:
1.اكتمال: إذا كانت الحجة صحيحة، يمكن للمدعي الصادق إقناع المراجع الصادق بهذه الحقيقة؛
2.الموثوقية: إذا كان المدعي لا يعرف محتوى البيان، فإنه يمكنه فقط خداع المصدق باحتمال ضئيل جداً؛
3.الخصائص غير المعروفة: بعد الانتهاء من عملية الإثبات، يحصل المُتحقق فقط على "معلومات أن المُثبت يمتلك هذه المعرفة"، ولا يمكنه الحصول على أي محتوى إضافي.
2.مثال على zk-SNARKs
لفهم zk-SNARKs وخصائصها بشكل أفضل، إليك مثالًا على كيفية التحقق مما إذا كان لدى المُثبت معلومات خاصة معينة، حيث ينقسم هذا المثال إلى ثلاث مراحل: الإعداد، والتحدي، والاستجابة.
الخطوة الأولى: الإعداد
في هذه الخطوة، هدف المُثبت هو إنشاء دليل يُثبت أنه يعرف رقمًا سريًا s، ولكنه لا يُظهر s مباشرةً. لنفترض أن الرقم السري؛
اختر عددين أوليين كبيرين p و q، واحسب حاصل ضربهما. ثم احسب مجموع الأعداد الأولية التي تم الحصول عليها؛
الحساب، هنا، v كجزء من الإثبات يتم إرساله إلى المدقق، لكنه غير كافٍ لتمكين المدقق أو أي متابع من استنتاج s.
اختر عدد صحيح عشوائي r، ثم احسبه وأرسله إلى المدقق. هذه القيمة x تستخدم في عملية التحقق اللاحقة، ولكنها لا تكشف عن s أيضًا. دع العدد الصحيح العشوائي، احسب الناتج.
الخطوة الثانية: التحدي
يختار المدقق بشكل عشوائي موضع a( يمكن أن يكون 0 أو 1)، ثم يرسله إلى المُثبِت. هذه "التحدي" تحدد الخطوات التي يحتاج المُثبِت إلى اتخاذها بعد ذلك.
الخطوة الثالثة: الاستجابة
استجابةً للقيمة a التي أرسلها المُصدق، يقوم المُثبت بالرد:
إذا، أرسل الم证明者 ( هنا r هو العدد الذي اختاره عشوائيًا سابقًا ).
إذا، يقوم المُثبت بالحساب والإرسال. لنفترض أن المُحقق يرسل بتات عشوائية، بناءً على قيمة a، يقوم المُثبت بالحساب؛
أخيرًا، يقوم المدقق بالتحقق مما إذا كان ما تم استلامه g يساوي. إذا كانت المعادلة صحيحة، يقبل المدقق هذه الشهادة. في ذلك الوقت، قام المدقق بحساب المدقق، والتحقق من الجانب الأيمن؛ في ذلك الوقت، قام المدقق بحساب المدقق، والتحقق من الجانب الأيمن.
هنا، نرى أن المُحقق قد حسب وأثبت أن المُثبت قد نجح في عملية التحقق، دون الكشف عن رقمه السري s. هنا، نظرًا لأن a يمكن أن تأخذ فقط 0 أو 1، هناك حالتان فقط، يعتمد المُثبت على الحظ للتغلب على عملية التحقق عندما تكون a تساوي 0. ولكن المُحقق يتحدى المُثبت مرة أخرى، ويستمر المُثبت في تغيير الأرقام ذات الصلة، ويقدمها للمحقق، وينجح دائمًا في اجتياز عملية التحقق، مما يجعل احتمال اعتماد المُثبت على الحظ للتغلب على عملية التحقق يقترب بلا حدود من 0(، ويثبت أن المُثبت بالفعل يعرف الرقم السري s. هذه الحالة تثبت تكامل وموثوقية وخصائص نظام إثبات المعرفة الصفرية.
٢. إثبات المعرفة الصفرية غير التفاعلي
) 1.خلفية
عادةً ما تكون zk-SNARKs في المفهوم التقليدي شكلًا من أشكال البروتوكولات التفاعلية وعبر الإنترنت؛ على سبيل المثال، تتطلب بروتوكولات Sigma عادةً من ثلاث إلى خمس جولات من التفاعل لإكمال التحقق. ومع ذلك، في سيناريوهات مثل التداول الفوري أو التصويت، غالبًا ما لا توجد فرصة لإجراء جولات تفاعلية متعددة، وخاصة في تطبيقات تقنية البلوكتشين، حيث تبرز أهمية وظيفة التحقق خارج الخط.
( 2.تم تقديم zk-SNARKs
في عام 1988، قدم بلوم وفيلدمان وميكالي مفهوم إثبات المعرفة الصفرية غير التفاعلية لأول مرة، وأثبتوا إمكانية إتمام عملية المصادقة بين المُثبت والمُتحقق دون الحاجة إلى تفاعلات متعددة. جعل هذا الاختراق تنفيذ المعاملات الفورية والتصويت وتطبيقات البلوكتشين ممكنًا.
لقد اقترحوا أن إثبات المعرفة الصفرية غير التفاعلي يمكن تقسيمه إلى ثلاثة مراحل:
إعداد
حساب
التحقق
تستخدم مرحلة الإعداد دالة حسابية لتحويل المعلمات الأمنية إلى معرفة عامة، وعادة ما يتم تشفيرها في سلسلة مرجعية مشتركة. هذه هي الطريقة التي يتم بها حساب الإثبات والتحقق باستخدام المعلمات والخوارزميات الصحيحة.
تستخدم مرحلة الحساب دالة حسابية، ومفاتيح الإدخال والإثبات، وتخرج نتيجة الحساب والإثبات.
في مرحلة التحقق، يتم التحقق من صحة الإثبات من خلال مفتاح التحقق.
نموذج سلسلة المرجع العامة الذي اقترحوه، وهو قائم على مشاركة جميع المشاركين لنص واحد
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تقنية zk-SNARKs تُحدث ثورة في البلوكتشين: تقدم شامل من الخوارزمية إلى الأجهزة
تطبيق وتطوير تقنية zk-SNARKs في مجال البلوكتشين
ملخص
تُعتبر تقنية إثبات المعرفة الصفرية (ZKP) واحدة من أهم الابتكارات في مجال البلوكتشين. تقدم هذه المقالة مراجعة شاملة للأدبيات التاريخية والبحوث الحديثة المتعلقة بتقنية ZKP على مدى الأربعين عامًا الماضية.
أولاً، تم تقديم المفهوم الأساسي والتاريخي لـ ZKP. ثم تم تحليل تكنولوجيا ZKP المعتمدة على الدوائر، بما في ذلك تصميم وتطبيق وطرق تحسين نماذج zkSNARK وBen-Sasson وPinocchio وBulletproofs وLigero. في مجال بيئة الحوسبة، يقدم هذا المقال ZKVM وZKEVM، ويناقش كيف يمكنهما تعزيز قدرة معالجة المعاملات وحماية الخصوصية وزيادة كفاءة التحقق. كما يقدم المقال ZK Rollup كآلية عمل وحلول تحسين كخيار للتوسع Layer 2، بالإضافة إلى التقدم الأخير في تسريع الأجهزة، والحلول المختلطة وZK EVM المخصصة.
أخيرًا، يستعرض هذا المقال مفاهيم ناشئة مثل ZKCoprocessor و ZKML و ZKThreads و ZK Sharding و ZK StateChannels، ويناقش إمكانياتها في مجال قابلية توسيع البلوكتشين، والتشغيل البيني، وحماية الخصوصية.
من خلال تحليل هذه التقنيات الحديثة واتجاهات التطوير، يوفر هذا المقال وجهة نظر شاملة لفهم وتطبيق تقنيات zk-SNARKs، ويظهر إمكانياتها الكبيرة في تعزيز كفاءة وأمان أنظمة البلوكتشين، مما يوفر مرجعًا هامًا لقرارات الاستثمار المستقبلية.
الفهرس
مقدمة
أولاً، أساسيات zk-SNARKs
ثانياً، إثبات المعرفة الصفرية غير التفاعلي
ثالثاً، zk-SNARKs المستندة إلى الدوائر
أربعة، zk-SNARKs نموذج
خمسة، نظرة عامة على آلة المعرفة الصفرية وتطورها
ستة، نظرة عامة على تطوير zk-SNARKs آلة الإيثريوم الافتراضية
سبعة، نظرة عامة على حلول الشبكات من الطبقة الثانية المعتمدة على zk-SNARKs وتطورها
ثامناً، اتجاهات التطوير المستقبلية لل zk-SNARKs
تاسعًا، الاستنتاج
المراجع
المقدمة
إن الإنترنت يدخل عصر Web3، ويتطور تطبيق البلوكتشين بسرعة. في السنوات الأخيرة، كانت منصات البلوكتشين تستضيف أنشطة ملايين المستخدمين يوميًا، وتعالج عشرات المليارات من المعاملات. وغالبًا ما تتضمن كميات كبيرة من البيانات الناتجة عن هذه المعاملات معلومات شخصية حساسة مثل هويات المستخدمين، ومبالغ المعاملات، وعناوين الحسابات، ورصيد الحساب. ونظرًا لطبيعة البلوكتشين المفتوحة والشفافة، فإن البيانات المخزنة متاحة للجميع، مما أثار مجموعة متنوعة من مشكلات الأمان والخصوصية.
حالياً، هناك عدة تقنيات تشفير يمكن أن تتعامل مع هذه التحديات، بما في ذلك التشفير المتجانس، والتوقيع الحلقي، والحساب الآمن متعدد الأطراف وzk-SNARKs. يسمح التشفير المتجانس بتنفيذ العمليات دون فك تشفير النص المشفر، مما يساعد في حماية أمان رصيد الحساب ومبلغ المعاملات، ولكنه لا يستطيع حماية أمان عنوان الحساب. يوفر التوقيع الحلقي نوعًا خاصًا من التوقيع الرقمي، قادرًا على إخفاء هوية الموقّع، وبالتالي حماية أمان عنوان الحساب، لكنه عاجز عن حماية رصيد الحساب ومبلغ المعاملات. يسمح الحساب الآمن متعدد الأطراف بتوزيع مهام الحساب بين عدة مشاركين، دون أن يعرف أي مشارك بيانات المشاركين الآخرين، مما يحمي بشكل فعال أمان رصيد الحساب ومبلغ المعاملات، ولكنه لا يستطيع أيضًا حماية أمان عنوان الحساب. بالإضافة إلى ذلك، فإن التشفير المتجانس، والتوقيع الحلقي، والحساب الآمن متعدد الأطراف لا يمكن استخدامها للتحقق مما إذا كان المبرهن يمتلك مبلغ معاملات كافٍ دون كشف مبلغ المعاملات، وعنوان الحساب، ورصيد الحساب.
الـzk-SNARKs هي حل شامل أكثر، حيث تسمح هذه البروتوكولات بالتحقق من صحة بعض العبارات دون الكشف عن أي بيانات وسيطة. لا تتطلب البروتوكولات بنية تحتية معقدة للمفاتيح العامة، ولا توفر عمليات التنفيذ المتكررة لمستخدمين خبيثين فرصة للوصول إلى معلومات إضافية مفيدة. من خلال الـzk-SNARKs، يمكن للمحقق التحقق مما إذا كان المدعي يمتلك مبلغًا كافيًا من المعاملات دون كشف أي بيانات خاصة بالمعاملات. تتضمن عملية التحقق إنشاء دليل يحتوي على المبلغ الذي يدعيه المدعي، ثم يتم تمرير هذا الدليل إلى المحقق، حيث يقوم المحقق بإجراء حسابات محددة مسبقًا على الدليل، وينتج نتيجة الحساب النهائية، ليصل إلى استنتاج بشأن قبول ادعاء المدعي من عدمه. إذا تم قبول ادعاء المدعي، فهذا يعني أنهم يمتلكون مبلغًا كافيًا من المعاملات. يمكن تسجيل عملية التحقق المذكورة على الـبلوكتشين، دون أي تزييف.
تُمكّن هذه الميزة ZKP من لعب دور رئيسي في معاملات البلوكتشين وتطبيقات العملات المشفرة، خاصة في مجالات حماية الخصوصية وتوسيع الشبكة، مما يجعلها ليست فقط محور اهتمام البحث الأكاديمي، بل تُعتبر على نطاق واسع واحدة من أهم الابتكارات التكنولوجية منذ تنفيذ تكنولوجيا دفاتر الحسابات الموزعة بنجاح. كما أنها أيضًا مسار رئيسي لتطبيقات الصناعة ورأس المال الاستثماري.
من هنا، ظهرت العديد من المشاريع الشبكية القائمة على zk-SNARKs، مثل ZkSync وStarkNet وMina وFilecoin وAleo وغيرها. مع تطور هذه المشاريع، تتوالى الابتكارات في خوارزميات zk-SNARKs، ووفقًا للتقارير، يتم إطلاق خوارزميات جديدة تقريبًا كل أسبوع. بالإضافة إلى ذلك، تتقدم تطوير الأجهزة المتعلقة بتقنية zk-SNARKs بسرعة، بما في ذلك الشرائح المصممة خصيصًا لتحسين zk-SNARKs. على سبيل المثال، أكملت مشاريع مثل Ingonyama وIrreducible وCysic جمع الأموال على نطاق واسع، وهذه التطورات لا تعرض فقط التقدم السريع لتقنية zk-SNARKs، بل تعكس أيضًا الانتقال من الأجهزة العامة إلى الأجهزة المخصصة مثل GPU وFPGA وASIC.
تشير هذه التطورات إلى أن تقنية zk-SNARKs ليست فقط اختراقًا مهمًا في مجال التشفير، ولكنها أيضًا القوة الدافعة الرئيسية لتحقيق تطبيقات أوسع لتقنية البلوكتشين.
لذلك، قررنا تنظيم المعرفة المتعلقة بال zk-SNARKs بشكل منهجي، لمساعدتنا بشكل أفضل في اتخاذ قرارات الاستثمار المستقبلية. لهذا الغرض، قمنا بمراجعة شاملة للأوراق الأكاديمية الأساسية المتعلقة بال ZKP؛ في الوقت نفسه، قمنا أيضًا بتحليل مفصل لمعلومات ومشاريع رائدة في هذا المجال. لقد وفرت هذه المجموعة الشاملة من البيانات والتحليل أساسًا قويًا لكتابة هذه المقالة.
واحد، zk-SNARKs أساسيات المعرفة
1.نظرة عامة
في عام 1985، قدم الباحثون Goldwasser وMicali وRackoff في ورقتهم البحثية "تعقيد المعرفة لنظم الإثبات التفاعلي" مفهوم الإثباتات ذات المعرفة الصفرية والإثباتات التفاعلية لأول مرة. تعتبر هذه الورقة أساساً لأساليب الإثباتات ذات المعرفة الصفرية، حيث تعرف العديد من المفاهيم التي أثرت على الأبحاث الأكاديمية اللاحقة. على سبيل المثال، يتم تعريف المعرفة على أنها "ناتج غير قابل للحساب"، مما يعني أن المعرفة يجب أن تكون ناتجاً، ويجب أن تكون غير قابلة للحساب، مما يعني أنه لا يمكن أن تكون دالة بسيطة، بل يجب أن تكون دالة معقدة. عادةً ما يمكن فهم الحسابات غير القابلة للتنفيذ على أنها مشكلة NP، أي مشكلة يمكن التحقق من صحة حلها في وقت متعدد الحدود، حيث يشير وقت متعدد الحدود إلى أن وقت تشغيل الخوارزمية يمكن التعبير عنه كدالة كثيرة الحدود من حجم المدخلات. هذا هو معيار مهم في علوم الكمبيوتر لقياس كفاءة الخوارزمية وقابليتها للتنفيذ. نظراً لتعقيد عملية حل مشاكل NP، فهي تعتبر حسابات غير قابلة للتنفيذ؛ لكن عملية التحقق منها بسيطة نسبياً، لذا فهي مناسبة جداً لاستخدامها في التحقق من الإثباتات ذات المعرفة الصفرية.
مثال كلاسيكي لمشكلة NP هو مشكلة البائع المتجول، حيث يتعين العثور على أقصر مسار لزيارة مجموعة من المدن والعودة إلى النقطة الأصلية. على الرغم من أن العثور على أقصر مسار قد يكون صعبًا، إلا أن التحقق من ما إذا كان مسار معين هو الأقصر نسبيًا سهل نسبيًا. لأن التحقق من المسافة الإجمالية لمسار محدد يمكن أن يتم في وقت متعدد الحدود.
قدم غولدواسر وآخرون في ورقتهم مفهوم "تعقيد المعرفة" لقياس كمية المعرفة التي يكشفها المُثبت للمدقق في أنظمة الإثبات التفاعلية. كما اقترحوا نظام إثبات تفاعلي حيث يتفاعل المُثبت والمدقق عبر جولات متعددة لإثبات صحة عبارة معينة.
بناءً على ما سبق، فإن تعريف zk-SNARKs الذي قدمه Goldwasser وآخرون هو نوع خاص من الإثباتات التفاعلية، حيث لا يحصل المصدق خلال عملية التحقق على أي معلومات إضافية بخلاف قيمة صحة البيان؛ وقد اقترحوا ثلاثة خصائص أساسية تشمل:
1.اكتمال: إذا كانت الحجة صحيحة، يمكن للمدعي الصادق إقناع المراجع الصادق بهذه الحقيقة؛
2.الموثوقية: إذا كان المدعي لا يعرف محتوى البيان، فإنه يمكنه فقط خداع المصدق باحتمال ضئيل جداً؛
3.الخصائص غير المعروفة: بعد الانتهاء من عملية الإثبات، يحصل المُتحقق فقط على "معلومات أن المُثبت يمتلك هذه المعرفة"، ولا يمكنه الحصول على أي محتوى إضافي.
2.مثال على zk-SNARKs
لفهم zk-SNARKs وخصائصها بشكل أفضل، إليك مثالًا على كيفية التحقق مما إذا كان لدى المُثبت معلومات خاصة معينة، حيث ينقسم هذا المثال إلى ثلاث مراحل: الإعداد، والتحدي، والاستجابة.
الخطوة الأولى: الإعداد
في هذه الخطوة، هدف المُثبت هو إنشاء دليل يُثبت أنه يعرف رقمًا سريًا s، ولكنه لا يُظهر s مباشرةً. لنفترض أن الرقم السري؛
اختر عددين أوليين كبيرين p و q، واحسب حاصل ضربهما. ثم احسب مجموع الأعداد الأولية التي تم الحصول عليها؛
الحساب، هنا، v كجزء من الإثبات يتم إرساله إلى المدقق، لكنه غير كافٍ لتمكين المدقق أو أي متابع من استنتاج s.
اختر عدد صحيح عشوائي r، ثم احسبه وأرسله إلى المدقق. هذه القيمة x تستخدم في عملية التحقق اللاحقة، ولكنها لا تكشف عن s أيضًا. دع العدد الصحيح العشوائي، احسب الناتج.
الخطوة الثانية: التحدي
يختار المدقق بشكل عشوائي موضع a( يمكن أن يكون 0 أو 1)، ثم يرسله إلى المُثبِت. هذه "التحدي" تحدد الخطوات التي يحتاج المُثبِت إلى اتخاذها بعد ذلك.
الخطوة الثالثة: الاستجابة
استجابةً للقيمة a التي أرسلها المُصدق، يقوم المُثبت بالرد:
إذا، أرسل الم证明者 ( هنا r هو العدد الذي اختاره عشوائيًا سابقًا ).
إذا، يقوم المُثبت بالحساب والإرسال. لنفترض أن المُحقق يرسل بتات عشوائية، بناءً على قيمة a، يقوم المُثبت بالحساب؛
أخيرًا، يقوم المدقق بالتحقق مما إذا كان ما تم استلامه g يساوي. إذا كانت المعادلة صحيحة، يقبل المدقق هذه الشهادة. في ذلك الوقت، قام المدقق بحساب المدقق، والتحقق من الجانب الأيمن؛ في ذلك الوقت، قام المدقق بحساب المدقق، والتحقق من الجانب الأيمن.
هنا، نرى أن المُحقق قد حسب وأثبت أن المُثبت قد نجح في عملية التحقق، دون الكشف عن رقمه السري s. هنا، نظرًا لأن a يمكن أن تأخذ فقط 0 أو 1، هناك حالتان فقط، يعتمد المُثبت على الحظ للتغلب على عملية التحقق عندما تكون a تساوي 0. ولكن المُحقق يتحدى المُثبت مرة أخرى، ويستمر المُثبت في تغيير الأرقام ذات الصلة، ويقدمها للمحقق، وينجح دائمًا في اجتياز عملية التحقق، مما يجعل احتمال اعتماد المُثبت على الحظ للتغلب على عملية التحقق يقترب بلا حدود من 0(، ويثبت أن المُثبت بالفعل يعرف الرقم السري s. هذه الحالة تثبت تكامل وموثوقية وخصائص نظام إثبات المعرفة الصفرية.
٢. إثبات المعرفة الصفرية غير التفاعلي
) 1.خلفية
عادةً ما تكون zk-SNARKs في المفهوم التقليدي شكلًا من أشكال البروتوكولات التفاعلية وعبر الإنترنت؛ على سبيل المثال، تتطلب بروتوكولات Sigma عادةً من ثلاث إلى خمس جولات من التفاعل لإكمال التحقق. ومع ذلك، في سيناريوهات مثل التداول الفوري أو التصويت، غالبًا ما لا توجد فرصة لإجراء جولات تفاعلية متعددة، وخاصة في تطبيقات تقنية البلوكتشين، حيث تبرز أهمية وظيفة التحقق خارج الخط.
( 2.تم تقديم zk-SNARKs
في عام 1988، قدم بلوم وفيلدمان وميكالي مفهوم إثبات المعرفة الصفرية غير التفاعلية لأول مرة، وأثبتوا إمكانية إتمام عملية المصادقة بين المُثبت والمُتحقق دون الحاجة إلى تفاعلات متعددة. جعل هذا الاختراق تنفيذ المعاملات الفورية والتصويت وتطبيقات البلوكتشين ممكنًا.
لقد اقترحوا أن إثبات المعرفة الصفرية غير التفاعلي يمكن تقسيمه إلى ثلاثة مراحل:
تستخدم مرحلة الإعداد دالة حسابية لتحويل المعلمات الأمنية إلى معرفة عامة، وعادة ما يتم تشفيرها في سلسلة مرجعية مشتركة. هذه هي الطريقة التي يتم بها حساب الإثبات والتحقق باستخدام المعلمات والخوارزميات الصحيحة.
تستخدم مرحلة الحساب دالة حسابية، ومفاتيح الإدخال والإثبات، وتخرج نتيجة الحساب والإثبات.
في مرحلة التحقق، يتم التحقق من صحة الإثبات من خلال مفتاح التحقق.
نموذج سلسلة المرجع العامة الذي اقترحوه، وهو قائم على مشاركة جميع المشاركين لنص واحد