نظرة عامة على تقنية zk-SNARKs وتطبيقاتها في مجال البلوكتشين
ملخص
تعتبر تقنية zk-SNARKs ( ZKP ) واحدة من أهم الابتكارات في مجال البلوكتشين، وأيضًا واحدة من المجالات التي حظيت باهتمام كبير من قبل شركات رأس المال المخاطر في السنوات الأخيرة. تقدم هذه المقالة مراجعة شاملة لتاريخ تطوير تقنية ZKP على مدى 40 عامًا والأبحاث الحديثة المتعلقة بها.
أولاً، تم تقديم المفهوم الأساسي لـ ZKP والخلفية التاريخية. بعد ذلك، تم تحليل تقنية ZKP المستندة إلى الدائرة، بما في ذلك تصميم وتطبيق وتحسين نماذج مثل zkSNARK وBen-Sasson وPinocchio وBulletproofs وLigero. في ما يتعلق بالبيئة الحاسوبية، يقدم هذا المقال ZKVM وZKEVM، ويستكشف كيف يمكنهما تحسين قدرة معالجة المعاملات، وحماية الخصوصية وزيادة كفاءة التحقق. كما يوضح المقال آلية عمل وتحسينات Zero Knowledge Rollup( ZK Rollup) كحل لتوسيع Layer 2، بالإضافة إلى التقدم الأخير في تسريع الأجهزة، والحلول المختلطة و ZK EVM المخصصة.
أخيرًا، تستشرف هذه المقالة المفاهيم الناشئة مثل ZKCoprocessor وZKML وZKThreads وZK Sharding وZK StateChannels، وتستكشف إمكاناتها في توسيع نطاق البلوكتشين، والتشغيل البيني، وحماية الخصوصية.
من خلال تحليل هذه التقنيات والاتجاهات الحديثة، يقدم هذا المقال منظورًا شاملاً لفهم وتطبيق تقنيات zk-SNARKs، ويظهر إمكاناتها الكبيرة في تعزيز كفاءة وأمان أنظمة البلوكتشين، مما يوفر مرجعًا هامًا لقرارات الاستثمار المستقبلية.
فهرس
مقدمة
أ. أساسيات zk-SNARKs
نظرة عامة
مثال على zk-SNARKs
ثانياً، zk-SNARKs
الخلفية
اقتراح NIZK
تحويل فيات-شامير
ينس غروث وأبحاثه
أبحاث أخرى
ثالثاً، إثبات عدم المعرفة القائم على الدوائر zk-SNARKs
الخلفية
المفاهيم الأساسية وخصائص نموذج الدائرة
تصميم الدوائر واستخدامها في zk-SNARKs
العيوب والتحديات المحتملة
أربعة، zk-SNARKs نموذج
الخلفية
نماذج الخوارزميات الشائعة
الحل القائم على PCP الخطي ومشكلة اللوغاريتمات المنفصلة
خطة قائمة على إثبات الأشخاص العاديين
الإثبات القابل للتحقق المستند إلى الاحتمالات (PCP) zk-SNARKs
تصنيف مرحلة الإعداد لبناء إثبات عام CPC( )
خمسة، نظرة عامة على الآلة الافتراضية التي تعتمد على zk-SNARKs وتطورها
الخلفية
تصنيف ZKVM الحالي
نمط الواجهة الأمامية والواجهة الخلفية
مزايا وعيوب نموذج ZKVM
ستة، نظرة عامة على zk-SNARKs والبلوكشين الإيثيريوم وتطوره
الخلفية
كيفية عمل ZKEVM
عملية تنفيذ ZKEVM
ميزات ZKEVM
سبعة، نظرة عامة على حلول الشبكة الثانية zk-SNARKs وتطورها
الخلفية
آلية عمل ZK Rollup
عيوب ZK Rollup والتحسينات
ثمانية، اتجاهات التطوير المستقبلية للzk-SNARKs
تسريع تطوير بيئة الحوسبة
تقديم وتطوير zk-SNARKs
تطوير تقنيات توسيع zk-SNARKs
تطور التفاعل بين zk-SNARKs
التاسع، الاستنتاج
المراجع
مقدمة
الإنترنت يدخل عصر Web3، تطبيقات البلوكتشين ( DApps ) تتطور بسرعة. في السنوات الأخيرة، تحمل منصات البلوكتشين أنشطة ملايين المستخدمين يوميًا، وتعالج عشرات المليارات من المعاملات. تنتج هذه المعاملات كميات هائلة من البيانات التي تتعلق بالهوية الشخصية للمستخدمين، ومبالغ المعاملات، وعناوين الحسابات، والأرصدة، وغيرها من المعلومات الشخصية الحساسة. نظرًا ل openness والشفافية الخاصة بالبلوكتشين، فإن البيانات المخزنة هذه مفتوحة للجميع، مما أثار مجموعة متنوعة من مشكلات الأمان والخصوصية.
يوجد حاليًا عدة تقنيات تشفير يمكن أن تتعامل مع هذه التحديات، بما في ذلك التشفير المتجانس، التوقيع الدائري، الحساب الآمن متعدد الأطراف، و zk-SNARKs. يسمح التشفير المتجانس بتنفيذ العمليات دون فك تشفير النصوص المشفرة، مما يساعد في حماية أمان رصيد الحساب ومبلغ المعاملات، ولكنه لا يمكنه حماية أمان عنوان الحساب. يوفر التوقيع الدائري شكلًا خاصًا من التوقيع الرقمي قادرًا على إخفاء هوية الموقّع، مما يحمي أمان عنوان الحساب، لكنه غير قادر على حماية رصيد الحساب ومبلغ المعاملات. يسمح الحساب الآمن متعدد الأطراف بتوزيع مهام الحساب بين عدة مشاركين، دون أن يعرف أي مشارك بيانات المشاركين الآخرين، مما يحمي بفعالية أمان رصيد الحساب ومبلغ المعاملات، لكنه بنفس القدر لا يمكنه حماية أمان عنوان الحساب. بالإضافة إلى ذلك، فإن هذه التقنيات غير قادرة على التحقق مما إذا كان لدى المبرهن في بيئة البلوكتشين مبلغ معاملات كافٍ دون الكشف عن مبلغ المعاملات، عنوان الحساب، ورصيد الحساب.
الـzk-SNARKs هي حل شامل أكثر، حيث تسمح بروتوكولات التحقق بالتحقق من صحة بعض العبارات دون الكشف عن أي بيانات وسيطة. لا تتطلب هذه البروتوكولات بنى تحتية معقدة للمفاتيح العامة، كما أن تنفيذها المتكرر لا يمنح المستخدمين الخبيثين فرصة للحصول على معلومات مفيدة إضافية. من خلال الـzk-SNARKs، يمكن للمتحقق التحقق مما إذا كان المدعي يمتلك ما يكفي من مبلغ المعاملات دون تسريب أي بيانات معاملات خاصة. تشمل عملية التحقق توليد دليل يحتوي على المبلغ الذي يدعيه المدعي، ثم يتم تمرير هذا الدليل إلى المتحقق، حيث يقوم المتحقق بإجراء حسابات محددة مسبقاً على الدليل، وينتج النتيجة النهائية، مما يؤدي إلى استنتاج ما إذا كان يجب قبول بيان المدعي. إذا تم قبول بيان المدعي، فهذا يعني أنهم يمتلكون ما يكفي من مبلغ المعاملات. يمكن تسجيل عملية التحقق المذكورة أعلاه على البلوكتشين، دون أي تزوير.
تجعل هذه الميزة من zk-SNARKs دورًا رئيسيًا في معاملات البلوكتشين وتطبيقات العملات المشفرة، خاصة في مجالات حماية الخصوصية وتوسيع الشبكة، مما يجعلها ليست فقط محور الأبحاث الأكاديمية، ولكن تُعتبر على نطاق واسع واحدة من أهم الابتكارات التكنولوجية منذ تنفيذ تقنية دفتر الأستاذ الموزع بنجاح، كما أنها أيضًا المسار الرئيسي للتطبيقات الصناعية ورأس المال الاستثماري.
نتيجة لذلك، ظهرت العديد من المشاريع الشبكية المعتمدة على zk-SNARKs، مثل ZkSync وStarkNet وMina وFilecoin وAleo وغيرها. مع تطور هذه المشاريع، تظهر ابتكارات جديدة في خوارزميات zk-SNARKs بشكل متكرر، حيث يُقال إن هناك خوارزمية جديدة تُطلق تقريبًا كل أسبوع. بالإضافة إلى ذلك، يتقدم تطوير الأجهزة المرتبطة بتقنية zk-SNARKs بسرعة، بما في ذلك الشرائح المصممة خصيصًا لتحسين أداء zk-SNARKs. على سبيل المثال، أكملت بعض المشاريع جمع تمويل كبير، وهذه التطورات لا تظهر فقط التقدم السريع لتقنية zk-SNARKs، بل تعكس أيضًا الانتقال من الأجهزة العامة إلى الأجهزة المتخصصة مثل GPU وFPGA وASIC.
تشير هذه التقدمات إلى أن تقنية zk-SNARKs ليست فقط اختراقًا مهمًا في مجال التشفير، بل هي أيضًا القوة الدافعة الرئيسية لتحقيق تطبيقات أوسع لتقنية البلوكتشين، وخاصة في تحسين حماية الخصوصية والقدرة على المعالجة.
لذلك، قررنا تنظيم المعرفة المتعلقة بـ zk-SNARKs (ZKP) بشكل منهجي، لمساعدتنا بشكل أفضل في اتخاذ قرارات الاستثمار المستقبلية. ولهذا الغرض، قمنا بمراجعة شاملة للأوراق الأكاديمية الأساسية المتعلقة بـ ZKP ( وترتيبها بناءً على الصلة وعدد الاقتباسات )؛ في الوقت نفسه، قمنا أيضًا بتحليل مفصل لمعلومات ومشاريع الرائدة في هذا المجال وترتيبها بناءً على حجم التمويل (. وقدمت هذه المجموعات الشاملة من البيانات والتحليلات أساسًا قويًا لكتابة هذه الوثيقة.
) ١. أساسيات zk-SNARKs
1. نظرة عامة
في عام 1985، قدم الباحثون Goldwasser وMicali وRackoff لأول مرة مفهوم zk-SNARKs في ورقتهم البحثية "تعقيد المعرفة لأنظمة الإثبات التفاعلية". تعتبر هذه الورقة الأساس لمفهوم zk-SNARKs، حيث تعرفت على العديد من المفاهيم التي أثرت في الأبحاث الأكاديمية اللاحقة. على سبيل المثال، تعريف المعرفة هو "مخرجات غير قابلة للحساب"، أي يجب أن تكون المعرفة مخرجات، ويجب أن تكون غير قابلة للحساب، مما يعني أنه لا يمكن أن تكون دالة بسيطة، بل يجب أن تكون دالة معقدة. عادة ما يمكن فهم الحساب غير القابل بأنه مشكلة NP، وهي مشكلة يمكن التحقق من صحة حلها في زمن متعدد الحدود، حيث يشير زمن متعدد الحدود إلى أن الوقت الذي يستغرقه الخوارزمية يمكن تمثيله كدالة متعددة الحدود لحجم الإدخال. هذا هو معيار مهم في علوم الكمبيوتر لقياس كفاءة الخوارزميات وقابليتها للتطبيق. نظرًا لأن عملية حل مشكلات NP معقدة، فإنها تعتبر حسابات غير قابلة للتطبيق؛ ولكن عملية التحقق منها بسيطة نسبيًا، لذا فهي مناسبة جدًا للاستخدام في التحقق من zk-SNARKs.
مثال كلاسيكي لمشكلة NP هو مشكلة البائع المتجول، حيث يجب إيجاد أقصر مسار لزيارة مجموعة من المدن والعودة إلى نقطة البداية. على الرغم من أن إيجاد أقصر مسار قد يكون صعبًا، إلا أنه من السهل نسبيًا التحقق مما إذا كان مسار معين هو الأقصر. لأن التحقق من المسافة الإجمالية لمسار معين يمكن أن يتم في وقت كثيرات الحدود.
قدم غولدواتزر وآخرون في ورقتهم مفهوم "تعقيد المعرفة"، الذي يُستخدم لقياس كمية المعرفة التي يكشفها المُثبت إلى المُحقق في نظام الإثبات التفاعلي. كما قدموا نظام إثبات تفاعلي ###Interactive Proof Systems، IPS(، حيث يقوم المُثبت )Prover( و المُحقق )Verifier( بإثبات صحة عبارة معينة من خلال تفاعل متعدد الجولات.
وعليه، فإن تعريف zk-SNARKs الذي قدمه Goldwasser وآخرون هو نوع خاص من الإثباتات التفاعلية، حيث لا يحصل المدقق خلال عملية التحقق على أي معلومات إضافية سوى حقيقة صحة العبارة؛ وقد تم تقديم ثلاث خصائص أساسية تشمل:
الاكتمال: إذا كانت الحجة صحيحة، يمكن للمدعي الصادق أن يقنع المراجع الصادق بهذه الحقيقة؛
الموثوقية: إذا كان المُثبت لا يعرف محتوى البيان، فإنه يمكنه فقط خداع المُصادق بفرصة ضئيلة.
الخصوصية: بعد انتهاء عملية الإثبات، يحصل المصدق فقط على "معلومات حول امتلاك المبرهن لهذه المعرفة"، ولا يمكنه الحصول على أي محتوى إضافي.
) # 2. مثال على إثبات المعرفة الصفرية
لفهم zk-SNARKs وخصائصها بشكل أفضل، إليك مثال للتحقق مما إذا كان المبرهن يمتلك بعض المعلومات الخاصة، حيث ينقسم هذا المثال إلى ثلاث مراحل: الإعداد، والتحدي، والاستجابة.
الخطوة الأولى: إعداد (Setup)
في هذه الخطوة، الهدف من المُثبت هو إنشاء دليل يُثبت أنه يعرف رقمًا سريًا معينًا s، لكنه لا يُظهر s مباشرةً. دع الرقم السري؛
اختر عددين أوليين كبيرين p و q، واحسب حاصل ضربهما. لنفترض أن العددين الأوليين هما ، احسب الناتج؛
حساب، هنا، v كجزء من الدليل يُرسل إلى المُتحقق، لكن هذا غير كافٍ ليجعل المُتحقق أو أي مُشاهد آخر يستنتج s.
اختر عددًا صحيحًا عشوائيًا r، احسب وارسله إلى المدقق. تُستخدم هذه القيمة x في عملية التحقق اللاحقة، ولكن لا تكشف أيضًا عن s. لنفترض أن العدد الصحيح العشوائي، احسب الناتج.
الخطوة الثانية: التحدي (Challenge)
يقوم المدقق باختيار موقع عشوائي a### يمكن أن يكون 0 أو 1(، ثم يرسله إلى المُثبِت. هذا "التحدي" يحدد الخطوات التي يحتاج المُثبِت إلى اتخاذها بعد ذلك.
الخطوة الثالثة: استجابة )Response(
استجابة المُثبت للقيمة a التي أرسلها المُتحقق:
إذا، أرسل المُثبت ) هنا r هو الرقم الذي اختاره عشوائيًا سابقًا (.
إذاً، يقوم المُثبت بالحساب وإرسال. لنفترض أن المُحقق يرسل بتات عشوائية، بناءً على قيمة a، يقوم المُثبت بالحساب؛
أخيرًا، يتحقق المُحقق مما إذا كانت القيمة المستلمة g تساوي . إذا كانت المعادلة صحيحة، يقبل المُحقق هذه الشهادة. عندما تكون ، يقوم المُحقق بحساب المُحقق ، والتحقق من الجانب الأيمن ؛ عندما تكون ، يقوم المُحقق بحساب المُحقق ، والتحقق من الجانب الأيمن .
هنا، نرى أن ما حسبه المُصادق يُظهر أن المُثبت قد نجح في عملية التحقق، دون الكشف عن رقمه السري s. في هذه الحالة، بما أن a يمكن أن تأخذ فقط 0 أو 1، فهناك حالتان فقط، واحتمال نجاح المُثبت في التحقق بالاعتماد على الحظ هو ) عندما تكون a تساوي 0. لكن المُصادق يتحدى المُثبت مرة أخرى، ويستمر المُثبت في تغيير الأرقام ذات الصلة، ويقدمها للمُصادق، ويستطيع دائمًا النجاح في عملية التحقق، وبالتالي فإن احتمال نجاح المُثبت في التحقق بالاعتماد على الحظ يقترب بلا حدود من 0(، مما يثبت أن المُثبت يعرف رقمًا سريًا معينًا s. هذه الحالة تثبت سلامة وموثوقية وخصوصية نظام إثبات المعرفة الصفرية.
) ثانياً، zk-SNARKs غير التفاعلية
(# 1.الخلفية
الzk-SNARKs)ZKP( في المفهوم التقليدي غالباً ما تكون على شكل بروتوكولات تفاعلية وعبر الإنترنت؛ على سبيل المثال، يتطلب بروتوكول سيغما عادةً ثلاث إلى خمس جولات من التفاعل لإتمام عملية المصادقة. ومع ذلك، في سيناريوهات مثل المعاملات الفورية أو التصويت، غالباً ما لا تكون هناك فرصة لإجراء جولات متعددة من التفاعل، خاصةً في تطبيقات تقنية البلوكتشين، حيث تبدو وظيفة التحقق غير المتصل أكثر أهمية.
)# 2.تم تقديم NIZK
في عام 1988، قدم بلوم وفيلدمان وميكالي مفهوم الإثبات غير التفاعلي للمعرفة الصفرية (NIZK) لأول مرة، وأثبتوا إمكانية إتمام عملية المصادقة بين المبرهِن ###Prover### والمُصادق (Verifier) دون الحاجة إلى تفاعلات متعددة الجولات. جعلت هذه الاختراقات من الممكن تنفيذ المعاملات الفورية، والتصويت، وكذلك تطبيقات البلوكتشين.
لقد قدموا إثباتات غير تفاعلية للمعرفة الصفرية ### NIZK ( يمكن
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
أحدث التطورات في تقنية zk-SNARKs وتطبيقاتها في مجال البلوكتشين
نظرة عامة على تقنية zk-SNARKs وتطبيقاتها في مجال البلوكتشين
ملخص
تعتبر تقنية zk-SNARKs ( ZKP ) واحدة من أهم الابتكارات في مجال البلوكتشين، وأيضًا واحدة من المجالات التي حظيت باهتمام كبير من قبل شركات رأس المال المخاطر في السنوات الأخيرة. تقدم هذه المقالة مراجعة شاملة لتاريخ تطوير تقنية ZKP على مدى 40 عامًا والأبحاث الحديثة المتعلقة بها.
أولاً، تم تقديم المفهوم الأساسي لـ ZKP والخلفية التاريخية. بعد ذلك، تم تحليل تقنية ZKP المستندة إلى الدائرة، بما في ذلك تصميم وتطبيق وتحسين نماذج مثل zkSNARK وBen-Sasson وPinocchio وBulletproofs وLigero. في ما يتعلق بالبيئة الحاسوبية، يقدم هذا المقال ZKVM وZKEVM، ويستكشف كيف يمكنهما تحسين قدرة معالجة المعاملات، وحماية الخصوصية وزيادة كفاءة التحقق. كما يوضح المقال آلية عمل وتحسينات Zero Knowledge Rollup( 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 والبلوكشين الإيثيريوم وتطوره
سبعة، نظرة عامة على حلول الشبكة الثانية zk-SNARKs وتطورها
ثمانية، اتجاهات التطوير المستقبلية للzk-SNARKs
التاسع، الاستنتاج
المراجع
مقدمة
الإنترنت يدخل عصر Web3، تطبيقات البلوكتشين ( DApps ) تتطور بسرعة. في السنوات الأخيرة، تحمل منصات البلوكتشين أنشطة ملايين المستخدمين يوميًا، وتعالج عشرات المليارات من المعاملات. تنتج هذه المعاملات كميات هائلة من البيانات التي تتعلق بالهوية الشخصية للمستخدمين، ومبالغ المعاملات، وعناوين الحسابات، والأرصدة، وغيرها من المعلومات الشخصية الحساسة. نظرًا ل openness والشفافية الخاصة بالبلوكتشين، فإن البيانات المخزنة هذه مفتوحة للجميع، مما أثار مجموعة متنوعة من مشكلات الأمان والخصوصية.
يوجد حاليًا عدة تقنيات تشفير يمكن أن تتعامل مع هذه التحديات، بما في ذلك التشفير المتجانس، التوقيع الدائري، الحساب الآمن متعدد الأطراف، و zk-SNARKs. يسمح التشفير المتجانس بتنفيذ العمليات دون فك تشفير النصوص المشفرة، مما يساعد في حماية أمان رصيد الحساب ومبلغ المعاملات، ولكنه لا يمكنه حماية أمان عنوان الحساب. يوفر التوقيع الدائري شكلًا خاصًا من التوقيع الرقمي قادرًا على إخفاء هوية الموقّع، مما يحمي أمان عنوان الحساب، لكنه غير قادر على حماية رصيد الحساب ومبلغ المعاملات. يسمح الحساب الآمن متعدد الأطراف بتوزيع مهام الحساب بين عدة مشاركين، دون أن يعرف أي مشارك بيانات المشاركين الآخرين، مما يحمي بفعالية أمان رصيد الحساب ومبلغ المعاملات، لكنه بنفس القدر لا يمكنه حماية أمان عنوان الحساب. بالإضافة إلى ذلك، فإن هذه التقنيات غير قادرة على التحقق مما إذا كان لدى المبرهن في بيئة البلوكتشين مبلغ معاملات كافٍ دون الكشف عن مبلغ المعاملات، عنوان الحساب، ورصيد الحساب.
الـzk-SNARKs هي حل شامل أكثر، حيث تسمح بروتوكولات التحقق بالتحقق من صحة بعض العبارات دون الكشف عن أي بيانات وسيطة. لا تتطلب هذه البروتوكولات بنى تحتية معقدة للمفاتيح العامة، كما أن تنفيذها المتكرر لا يمنح المستخدمين الخبيثين فرصة للحصول على معلومات مفيدة إضافية. من خلال الـzk-SNARKs، يمكن للمتحقق التحقق مما إذا كان المدعي يمتلك ما يكفي من مبلغ المعاملات دون تسريب أي بيانات معاملات خاصة. تشمل عملية التحقق توليد دليل يحتوي على المبلغ الذي يدعيه المدعي، ثم يتم تمرير هذا الدليل إلى المتحقق، حيث يقوم المتحقق بإجراء حسابات محددة مسبقاً على الدليل، وينتج النتيجة النهائية، مما يؤدي إلى استنتاج ما إذا كان يجب قبول بيان المدعي. إذا تم قبول بيان المدعي، فهذا يعني أنهم يمتلكون ما يكفي من مبلغ المعاملات. يمكن تسجيل عملية التحقق المذكورة أعلاه على البلوكتشين، دون أي تزوير.
تجعل هذه الميزة من zk-SNARKs دورًا رئيسيًا في معاملات البلوكتشين وتطبيقات العملات المشفرة، خاصة في مجالات حماية الخصوصية وتوسيع الشبكة، مما يجعلها ليست فقط محور الأبحاث الأكاديمية، ولكن تُعتبر على نطاق واسع واحدة من أهم الابتكارات التكنولوجية منذ تنفيذ تقنية دفتر الأستاذ الموزع بنجاح، كما أنها أيضًا المسار الرئيسي للتطبيقات الصناعية ورأس المال الاستثماري.
نتيجة لذلك، ظهرت العديد من المشاريع الشبكية المعتمدة على zk-SNARKs، مثل ZkSync وStarkNet وMina وFilecoin وAleo وغيرها. مع تطور هذه المشاريع، تظهر ابتكارات جديدة في خوارزميات zk-SNARKs بشكل متكرر، حيث يُقال إن هناك خوارزمية جديدة تُطلق تقريبًا كل أسبوع. بالإضافة إلى ذلك، يتقدم تطوير الأجهزة المرتبطة بتقنية zk-SNARKs بسرعة، بما في ذلك الشرائح المصممة خصيصًا لتحسين أداء zk-SNARKs. على سبيل المثال، أكملت بعض المشاريع جمع تمويل كبير، وهذه التطورات لا تظهر فقط التقدم السريع لتقنية zk-SNARKs، بل تعكس أيضًا الانتقال من الأجهزة العامة إلى الأجهزة المتخصصة مثل GPU وFPGA وASIC.
تشير هذه التقدمات إلى أن تقنية zk-SNARKs ليست فقط اختراقًا مهمًا في مجال التشفير، بل هي أيضًا القوة الدافعة الرئيسية لتحقيق تطبيقات أوسع لتقنية البلوكتشين، وخاصة في تحسين حماية الخصوصية والقدرة على المعالجة.
لذلك، قررنا تنظيم المعرفة المتعلقة بـ zk-SNARKs (ZKP) بشكل منهجي، لمساعدتنا بشكل أفضل في اتخاذ قرارات الاستثمار المستقبلية. ولهذا الغرض، قمنا بمراجعة شاملة للأوراق الأكاديمية الأساسية المتعلقة بـ ZKP ( وترتيبها بناءً على الصلة وعدد الاقتباسات )؛ في الوقت نفسه، قمنا أيضًا بتحليل مفصل لمعلومات ومشاريع الرائدة في هذا المجال وترتيبها بناءً على حجم التمويل (. وقدمت هذه المجموعات الشاملة من البيانات والتحليلات أساسًا قويًا لكتابة هذه الوثيقة.
) ١. أساسيات zk-SNARKs
1. نظرة عامة
في عام 1985، قدم الباحثون Goldwasser وMicali وRackoff لأول مرة مفهوم zk-SNARKs في ورقتهم البحثية "تعقيد المعرفة لأنظمة الإثبات التفاعلية". تعتبر هذه الورقة الأساس لمفهوم zk-SNARKs، حيث تعرفت على العديد من المفاهيم التي أثرت في الأبحاث الأكاديمية اللاحقة. على سبيل المثال، تعريف المعرفة هو "مخرجات غير قابلة للحساب"، أي يجب أن تكون المعرفة مخرجات، ويجب أن تكون غير قابلة للحساب، مما يعني أنه لا يمكن أن تكون دالة بسيطة، بل يجب أن تكون دالة معقدة. عادة ما يمكن فهم الحساب غير القابل بأنه مشكلة NP، وهي مشكلة يمكن التحقق من صحة حلها في زمن متعدد الحدود، حيث يشير زمن متعدد الحدود إلى أن الوقت الذي يستغرقه الخوارزمية يمكن تمثيله كدالة متعددة الحدود لحجم الإدخال. هذا هو معيار مهم في علوم الكمبيوتر لقياس كفاءة الخوارزميات وقابليتها للتطبيق. نظرًا لأن عملية حل مشكلات NP معقدة، فإنها تعتبر حسابات غير قابلة للتطبيق؛ ولكن عملية التحقق منها بسيطة نسبيًا، لذا فهي مناسبة جدًا للاستخدام في التحقق من zk-SNARKs.
مثال كلاسيكي لمشكلة NP هو مشكلة البائع المتجول، حيث يجب إيجاد أقصر مسار لزيارة مجموعة من المدن والعودة إلى نقطة البداية. على الرغم من أن إيجاد أقصر مسار قد يكون صعبًا، إلا أنه من السهل نسبيًا التحقق مما إذا كان مسار معين هو الأقصر. لأن التحقق من المسافة الإجمالية لمسار معين يمكن أن يتم في وقت كثيرات الحدود.
قدم غولدواتزر وآخرون في ورقتهم مفهوم "تعقيد المعرفة"، الذي يُستخدم لقياس كمية المعرفة التي يكشفها المُثبت إلى المُحقق في نظام الإثبات التفاعلي. كما قدموا نظام إثبات تفاعلي ###Interactive Proof Systems، IPS(، حيث يقوم المُثبت )Prover( و المُحقق )Verifier( بإثبات صحة عبارة معينة من خلال تفاعل متعدد الجولات.
وعليه، فإن تعريف zk-SNARKs الذي قدمه Goldwasser وآخرون هو نوع خاص من الإثباتات التفاعلية، حيث لا يحصل المدقق خلال عملية التحقق على أي معلومات إضافية سوى حقيقة صحة العبارة؛ وقد تم تقديم ثلاث خصائص أساسية تشمل:
الاكتمال: إذا كانت الحجة صحيحة، يمكن للمدعي الصادق أن يقنع المراجع الصادق بهذه الحقيقة؛
الموثوقية: إذا كان المُثبت لا يعرف محتوى البيان، فإنه يمكنه فقط خداع المُصادق بفرصة ضئيلة.
الخصوصية: بعد انتهاء عملية الإثبات، يحصل المصدق فقط على "معلومات حول امتلاك المبرهن لهذه المعرفة"، ولا يمكنه الحصول على أي محتوى إضافي.
) # 2. مثال على إثبات المعرفة الصفرية
لفهم zk-SNARKs وخصائصها بشكل أفضل، إليك مثال للتحقق مما إذا كان المبرهن يمتلك بعض المعلومات الخاصة، حيث ينقسم هذا المثال إلى ثلاث مراحل: الإعداد، والتحدي، والاستجابة.
الخطوة الأولى: إعداد (Setup)
في هذه الخطوة، الهدف من المُثبت هو إنشاء دليل يُثبت أنه يعرف رقمًا سريًا معينًا s، لكنه لا يُظهر s مباشرةً. دع الرقم السري؛
اختر عددين أوليين كبيرين p و q، واحسب حاصل ضربهما. لنفترض أن العددين الأوليين هما ، احسب الناتج؛
حساب، هنا، v كجزء من الدليل يُرسل إلى المُتحقق، لكن هذا غير كافٍ ليجعل المُتحقق أو أي مُشاهد آخر يستنتج s.
اختر عددًا صحيحًا عشوائيًا r، احسب وارسله إلى المدقق. تُستخدم هذه القيمة x في عملية التحقق اللاحقة، ولكن لا تكشف أيضًا عن s. لنفترض أن العدد الصحيح العشوائي، احسب الناتج.
الخطوة الثانية: التحدي (Challenge)
يقوم المدقق باختيار موقع عشوائي a### يمكن أن يكون 0 أو 1(، ثم يرسله إلى المُثبِت. هذا "التحدي" يحدد الخطوات التي يحتاج المُثبِت إلى اتخاذها بعد ذلك.
الخطوة الثالثة: استجابة )Response(
استجابة المُثبت للقيمة a التي أرسلها المُتحقق:
إذا، أرسل المُثبت ) هنا r هو الرقم الذي اختاره عشوائيًا سابقًا (.
إذاً، يقوم المُثبت بالحساب وإرسال. لنفترض أن المُحقق يرسل بتات عشوائية، بناءً على قيمة a، يقوم المُثبت بالحساب؛
أخيرًا، يتحقق المُحقق مما إذا كانت القيمة المستلمة g تساوي . إذا كانت المعادلة صحيحة، يقبل المُحقق هذه الشهادة. عندما تكون ، يقوم المُحقق بحساب المُحقق ، والتحقق من الجانب الأيمن ؛ عندما تكون ، يقوم المُحقق بحساب المُحقق ، والتحقق من الجانب الأيمن .
هنا، نرى أن ما حسبه المُصادق يُظهر أن المُثبت قد نجح في عملية التحقق، دون الكشف عن رقمه السري s. في هذه الحالة، بما أن a يمكن أن تأخذ فقط 0 أو 1، فهناك حالتان فقط، واحتمال نجاح المُثبت في التحقق بالاعتماد على الحظ هو ) عندما تكون a تساوي 0. لكن المُصادق يتحدى المُثبت مرة أخرى، ويستمر المُثبت في تغيير الأرقام ذات الصلة، ويقدمها للمُصادق، ويستطيع دائمًا النجاح في عملية التحقق، وبالتالي فإن احتمال نجاح المُثبت في التحقق بالاعتماد على الحظ يقترب بلا حدود من 0(، مما يثبت أن المُثبت يعرف رقمًا سريًا معينًا s. هذه الحالة تثبت سلامة وموثوقية وخصوصية نظام إثبات المعرفة الصفرية.
) ثانياً، zk-SNARKs غير التفاعلية
(# 1.الخلفية
الzk-SNARKs)ZKP( في المفهوم التقليدي غالباً ما تكون على شكل بروتوكولات تفاعلية وعبر الإنترنت؛ على سبيل المثال، يتطلب بروتوكول سيغما عادةً ثلاث إلى خمس جولات من التفاعل لإتمام عملية المصادقة. ومع ذلك، في سيناريوهات مثل المعاملات الفورية أو التصويت، غالباً ما لا تكون هناك فرصة لإجراء جولات متعددة من التفاعل، خاصةً في تطبيقات تقنية البلوكتشين، حيث تبدو وظيفة التحقق غير المتصل أكثر أهمية.
)# 2.تم تقديم NIZK
في عام 1988، قدم بلوم وفيلدمان وميكالي مفهوم الإثبات غير التفاعلي للمعرفة الصفرية (NIZK) لأول مرة، وأثبتوا إمكانية إتمام عملية المصادقة بين المبرهِن ###Prover### والمُصادق (Verifier) دون الحاجة إلى تفاعلات متعددة الجولات. جعلت هذه الاختراقات من الممكن تنفيذ المعاملات الفورية، والتصويت، وكذلك تطبيقات البلوكتشين.
لقد قدموا إثباتات غير تفاعلية للمعرفة الصفرية ### NIZK ( يمكن