اختر اللغة

ZKProphet: فهم أداء براهين المعرفة الصفرية على معالجات الرسوميات

تحليل شامل لأداء براهين المعرفة الصفرية على معماريات معالجات الرسوميات، مع تحديد الاختناقات في حسابات NTT وتقديم استراتيجيات التحسين لتسريع ZKP.
computingpowercoin.net | PDF Size: 0.4 MB
التقييم: 4.5/5
تقييمك
لقد قيمت هذا المستند مسبقاً
غلاف مستند PDF - ZKProphet: فهم أداء براهين المعرفة الصفرية على معالجات الرسوميات

جدول المحتويات

200x

أقصى تسريع مقارنة بوحدة المعالجة المركزية

90%

مساهمة NTT في زمن الاستجابة

32-bit

استخدام خط الأنابيب للأعداد الصحيحة

1. المقدمة

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

برزت معالجات الرسوميات كمنصة التسريع الأساسية لـ ZKPs بسبب الطبيعة الموازية للبيانات لنواة الحساب الأساسية. كما هو موضح في الشكل 1، تُظهر ZKPs المُسرَّعة بمعالجات الرسوميات تسريعاً يصل إلى 200 ضعف مقارنة بالتطبيقات على وحدات المعالجة المركزية. ومع ذلك، على الرغم من هذه المكاسب المثيرة للإعجاب، كان هناك غياب ملحوظ للتوصيف المنهجي لاختناقات الأداء ومحدودية قابلية التوسع على معماريات معالجات الرسوميات الحديثة في الأدبيات.

2. الخلفية والأعمال ذات الصلة

2.1 أساسيات براهين المعرفة الصفرية

تعمل براهين المعرفة الصفرية على مبدأ أن المُثبِت يمكنه إقناع المُتحقِّق بمعرفة شاهد $w$ لدالة عامة $f$ ومدخل $x$ بحيث $f(x,w) = y$، دون الكشف عن أي معلومات حول $w$. يوفر بروتوكول Groth16، الذي يشكل أساس هذه الدراسة، براهين موجزة وأوقات تحقق أقل من جزء من الألف من الثانية، مما يجعله مناسباً بشكل خاص للتطبيقات الواقعية.

2.2 تسريع معالجات الرسوميات في التشفير

أظهر العمل السابق في تسريع معالجات الرسوميات للبدائيات التشفيرية تحسينات أداء كبيرة. أظهرت دراسات مثل [19,30,31,42] أن المعمارية الموازية لمعالجات الرسوميات مناسبة جيداً للعمليات التشفيرية، خاصة تلك التي تتضمن حسابات رياضية واسعة النطاق. ومع ذلك، ركزت هذه الجهود في المقام الأول على النواة الفردية بدلاً من أداء النظام الشامل.

3. المنهجية والإعداد التجريبي

3.1 إطار عمل ZKProphet

يوفر ZKProphet إطار عمل تحليلياً شاملاً لتقييم أداء ZKP على معالجات الرسوميات. يقوم الإطار بتقييم نواة الحساب الأساسية بشكل منهجي بما في ذلك الضرب القياسي المتعدد (MSM) وتحويل نظرية الأعداد (NTT)، والتي تمثل مجتمعة أكثر من 95٪ من الحمل الحسابي في توليد ZKP.

3.2 تكوينات المعايير

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

4. نتائج تحليل الأداء

4.1 تحليل أداء النواة

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

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

4.2 تحليل قابلية التوسع

نلاحظ أن حسابات ZKP تنفذ حصرياً على خطوط أنابيب الأعداد الصحيحة 32-bit لمعالجات الرسوميات وتظهر توازياً محدوداً على مستوى التعليمات بسبب تبعيات البيانات المتأصلة. هذا يحد بشكل أساسي من تدرج الأداء بناءً على وحدات الحساب الصحيحة المتاحة بدلاً من إمكانيات النقطة العائمة.

5. تفاصيل التنفيذ التقني

5.1 الأسس الرياضية

تعتمد العمليات الرياضية الأساسية في ZKPs على الحساب في الحقول المنتهية فوق الحقول الأولية الكبيرة. يمكن التعبير عن عملية NTT، وهي شكل متخصص من تحويل فورييه في الحقول المنتهية، كالتالي:

$$X_k = \sum_{j=0}^{n-1} x_j \cdot \omega^{jk} \mod p$$

حيث $\omega$ هو جذر الوحدة الأساسي $n$ modulo $p$، و $p$ هو عدد أولي كبير. يتم تعريف NTT العكسي بشكل مماثل باستخدام $\omega^{-1}$.

5.2 تنفيذ الكود

يوضح الكود الزائف التالي تنفيذ NTT محسناً لمعماريات معالجات الرسوميات:

__global__ void ntt_kernel(uint32_t *a, uint32_t *roots, int n) {
    int tid = threadIdx.x + blockIdx.x * blockDim.x;
    int stride = blockDim.x * gridDim.x;
    
    for (int i = tid; i < n/2; i += stride) {
        int j = bit_reverse(i, log2(n));
        if (i < j) {
            swap(a[i], a[j]);
        }
    }
    
    __syncthreads();
    
    for (int len = 2; len <= n; len <<= 1) {
        int half = len >> 1;
        for (int i = tid; i < n; i += stride) {
            if ((i & (len - 1)) < half) {
                uint32_t u = a[i];
                uint32_t v = mul_mod(a[i + half], roots[len + (i & (half - 1))]);
                a[i] = add_mod(u, v);
                a[i + half] = sub_mod(u, v);
            }
        }
        __syncthreads();
    }
}

6. التطبيقات المستقبلية والاتجاهات

يفتح تحسين ZKPs على معالجات الرسوميات العديد من الاحتمالات التطبيقية. في تكنولوجيا سلاسل الكتل، يمكن لـ ZKPs المحسّنة تمكين حلول اللف (rollup) أكثر كفاءة والعقود الذكية الحافظة للخصوصية. بالنسبة للتعلم الآلي القابل للتحقق، كما تم استكشافه في أعمال مثل [32]، يمكن لـ ZKPs المُسرَّعة بمعالجات الرسوميات تمكين التحقق العملي لاستدلالات النموذج دون الكشف عن معلمات النموذج الخاصة.

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

التحليل الأصلي

تمثل دراسة ZKProphet تقدماً كبيراً في فهم خصائص أداء براهين المعرفة الصفرية على معماريات معالجات الرسوميات الحديثة. بينما أسس البحث السابق، مثل العمل الأساسي حول zk-SNARKs بواسطة Ben-Sasson et al. (2014)، الأسس النظرية، ووفرت التطبيقات اللاحقة مثل libsnark وbellman أطراً عملية، كان هناك فجوة ملحوظة في تحليل الأداء المنهجي عبر خط الأنابيب الحسابي بأكمله.

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

يقدم الاستخدام الحصري لخطوط أنابيب الأعداد الصحيحة 32-bit كلاً من التحديات والفرص. على عكس أحمال عمل التعلم الآلي التي تستخدم نوى tensor والحساب FP32/FP16 بشكل كبير، لا يمكن لـ ZKPs الاستفادة من هذه الوحدات المتخصصة في معماريات معالجات الرسوميات الحالية. يشير هذا إلى إمكانية التصميم المشترك للبرامج والأجهزة، على غرار النهج المتبع في معمارية TPU من Google للشبكات العصبية، ولكن متخصص للعمليات التشفيرية. يؤكد التوازي المحدود على مستوى التعليمات بسبب تبعيات البيانات بشكل أكبر على الحاجة إلى ابتكارات خوارزمية يمكنها كشف المزيد من التوازي.

مقارنة بجهود التسريع التشفيرية الأخرى، مثل تلك الخاصة بالتشفير المتجانس (كما هو مذكور في [9]) أو أطر الحساب القابلة للتحقق، يوفر تركيز ZKProphet على الأداء الشامل بدلاً من تحسين النواة الفردية رؤى أكثر عملية للنشر الواقعي. يشير المرجع لتطبيقات التعلم الآلي القابلة للتحقق في [32] إلى تطبيقات واعدة عبر المجالات حيث يمكن لـ ZKPs المُسرَّعة بمعالجات الرسوميات تمكين نماذج ثقة جديدة في أنظمة الذكاء الاصطناعي.

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

7. المراجع

  1. Groth, J. (2016). "On the Size of Pairing-Based Non-interactive Arguments." EUROCRYPT 2016.
  2. Ben-Sasson, E., et al. (2014). "Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture." USENIX Security Symposium.
  3. Parno, B., et al. (2013). "Pinocchio: Nearly Practical Verifiable Computation." IEEE Symposium on Security and Privacy.
  4. Setty, S., et al. (2013). "Resolving the conflict between generality and plausibility in verified computation." EuroSys.
  5. Zhang, J., et al. (2020). "vCNN: Verifiable Convolutional Neural Network based on zk-SNARKs." Cryptology ePrint Archive.
  6. Wahby, R.S., et al. (2018). "Full accounting for verifiable outsourcing." CCS.
  7. Kosba, A., et al. (2016). "C∅C∅: A Framework for Building Composable Zero-Knowledge Proofs." USENIX Security.
  8. Xie, T., et al. (2022). "zkCNN: Zero Knowledge Proofs for Convolutional Neural Network Predictions and Accuracy." CCS.