تفترض هذه المقالة أنك على دراية بأساسيات كيفية عمل SNARK وSTARK، إذا لم تكن على دراية بها، فمن المستحسن قراءة الأقسام القليلة الأولى من هذه المقالة. شكر خاص لإيلي بن ساسون، وشاهار بابيني، وأفيهو ليفي، وآخرين في ستاركوير على تعليقاتهم ومناقشاتهم.
https://vitalik.eth.limo/general/2024/04/29/binius.html
هذا التحول هذا أدى ذلك إلى تحسينات كبيرة في سرعة الإثبات، أبرزها قدرة Starkware على إثبات 620.000 تجزئة Poseidon2 في الثانية على كمبيوتر محمول M3. ويعني هذا بشكل ملموس أنه طالما أننا على استعداد للثقة في Poseidon2 كجزء من وظيفة التجزئة، فقد تم حل أحد أصعب الأجزاء في بناء ZK-EVM الفعال بكفاءة. ولكن كيف تعمل هذه التقنيات، وكيف يتم بناء أدلة التشفير (التي تتطلب غالبًا أعدادًا صحيحة كبيرة للأمان) على هذه المجالات؟ وكيف يمكن مقارنة هذه البروتوكولات بالبنيات الأكثر غرابة مثل Binius؟ ستستكشف هذه المقالة بعض الاختلافات الدقيقة، مع التركيز بشكل خاص على بنية تسمى Circle STARKs (تم تنفيذها في Starkware's stwo، وPolygon's plonky3، وتنفيذ python الخاص بي)، والتي لها بعض الخصائص الفريدة والمصممة لتتوافق مع مجال Mersenne31 الفعال.
https://x.com/StarkWareLtd/status/1807776563188162562
< /li>https://vitalik.eth.limo/general/2022/08/04/zkevm.html
https://vitalik.eth.limo/general/2024/04/29/binius.html
https://www.irreducible.com/posts/binius-hardware-optimized-snark
https://eprint.iacr.org/2024/278
https://github.com/starkware-libs /stwo
https://github.com/Plonky3/Plonky3
https://github.com/ethereum/research/tree/master/circlestark
المشكلات الشائعة في النطاقات الصغيرة p> h2>
أحد أهم "الحيل" عند إجراء البراهين المبنية على التجزئة (أو في الواقع أي نوع من الإثبات) هو إثبات شيء ما حول تقييم كثير الحدود في نقاط عشوائية بدلاً من إثبات شيء ما حول كثير الحدود الأساسي .
- https://en.wikipedia.org/wiki/Fiat%E2%80%93Shamir_heuristic
هناك حلان طبيعيان لهذه المشكلة:
- تنفيذ متعدد الاختبارات العشوائية
< /p >
- https://www2.clarku.edu/faculty/djoyce/complex/mult.html
< p style="text-align: center;">
التنفيذ هنا ليس الأمثل (يمكن تحسينه باستخدام Karatsuba)، فهو يوضح المبدأ فقط p>
< h2>الجمعة المنتظمة
- https://eccc.weizmann.ac.il /تقرير /2017/134/
ضع دائرة حول FRI
- https://elibensasson.blog/why-im-excited-by-circle-stark-and-stwo/
< نمط p ="text-align: center;">تتبع هذه النقاط قانون الجمع، وإذا كنت قد درست مؤخرًا علم المثلثات أو الضرب المعقد، فقد تجد هذا القانون مألوفًا:
- https://unacademy.com/content/cbse-class- 11/study -material/mathematics/algebra-of-complex-numbers-multiplication/
من الجولة الثانية فصاعدًا، يتغير التعيين:
دائرة FFTs
- https://vitalik.eth.limo/general/2019/05/12/fft.html القسم>< القسم>
- https://www.researchgate.net/publication/353344649_Elliptic_Curve_Fast_Fourier_Transform_ECFFT_Part_I_Fast_Polynomial_Algorithms_over_all_Finite_Fields
من هنا، دعنا ندخل في بعض التفاصيل الباطنية، لأولئك الذين ينفذون دائرة STARK، مقابل هذه التقليدية ستكون التفاصيل مختلفة مقارنة بـ STARK.
بدء الأعمال
- https:/ /eprint.iacr.org/2019/336
كثيرة الحدود المتلاشية
ترتيب البت العكسي
الكفاءة
لذلك، ضع دائرة حول STARK هو في الواقع قريب جدًا من الأمثل! يعتبر Binius أكثر قوة لأنه يسمح بخلط ومطابقة النطاقات ذات الأحجام المختلفة، مما يوفر تعبئة أكثر كفاءة لكل شيء. يوفر Binius أيضًا خيار إجراء إضافات 32 بت دون تحميل جدول البحث. ومع ذلك، فإن هذه المكاسب تأتي على حساب (في رأيي) تعقيد نظري أعلى بكثير، في حين أن دائرة STARK (و STARK العادية المستندة إلى BabyBear) بسيطة من الناحية المفاهيمية.
الخلاصة: ما رأيي في دائرة ستارك؟
مقارنة بـ STARK العادي، لا تجلب Circle STARK الكثير من التعقيد الإضافي للمطورين. أثناء عملية التنفيذ، فإن المشكلات الثلاث المذكورة أعلاه هي في الأساس الاختلافات الوحيدة التي أراها مقارنةً بـ FRI التقليدية. إن الرياضيات وراء "متعددات الحدود" التي تعمل عليها Circle FRI هي غير بديهية تمامًا وتستغرق بعض الوقت لفهمها وتقديرها. ولكن يحدث أن يكون هذا التعقيد مخفيًا حتى لا يرى المطورون الكثير منه. إن تعقيد الرياضيات الدائرية مغلف، وليس منهجي.
يعد فهم دائرة FRI ودائرة FFT أيضًا أسلوبًا فكريًا جيدًا لفهم "FFTs الغريبة" الأخرى: الأكثر تجدر الإشارة إلى مجال ثنائي FFT، تم استخدامه سابقًا في Binius وLibSTARK، بالإضافة إلى بنيات أكثر غرابة، مثل المنحنى الإهليلجي FFT، الذي يستخدم تعيينات متعددة ويعمل بشكل جيد مع عمليات نقطة المنحنى الإهليلجي.
https://github.com/ethereum/research/blob/master/binius/ ثنائي_ntt.py#L60
https://github.com/elibensasson/libSTARK
https://arxiv.org/abs/2107.08473
من خلال الجمع بين Mersenne31 وBabyBear وتكنولوجيا النطاق الثنائي مثل باعتبارنا Binius، نشعر أننا نقترب من حدود كفاءة "الطبقة الأساسية" لـ STARK. في هذا الوقت، أتوقع أن تتحول حدود تحسين STARK نحو الحساب الأكثر كفاءة للبدائيات مثل وظائف التجزئة والتوقيعات (وتحسين تلك البدائيات نفسها لهذا الغرض)، والإنشاءات العودية لفتح المزيد من الموازاة، وحساب الأجهزة الافتراضية لتحسين تجربة المطور، وغيرها من المهام عالية المستوى.