توقيعات BLS ومخططات التوقيع التجميعي
استكشفوا pairings الخاصة بـ BLS12-381، وتجميع التوقيعات، وكيف يستخدم Ethereum 2.0 توقيعات BLS لتقليل العبء على المدقّقين.
توقيعات BLS ومخططات التوقيع التجميعي درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
الإقرانات الثنائية الخطية: الأساس الرياضي
تعتمد تواقيع BLS على الإقرانات الثنائية الخطية، وهي عملية رياضية على المنحنيات الإهليلجية. يربط الإقران e: G1 x G2 -> GT أزواج النقاط من المجموعتين (G1, G2) بمجموعة الهدف GT. وتتمثل الخاصية الأساسية في الخطية الثنائية: e(aP, bQ) = e(P, Q)^(ab) للعددين a وb والنقطتين P وQ. ويتيح ذلك التحقق من العلاقات بين عناصر المجموعات من دون معرفة اللوغاريتمات المتقطعة. وأكثر منحنيات الإقران استخداماً في التشفير هو BLS12-381، وقد اختير لمستوى أمان يبلغ 128 بتاً، ولصغر أحجام عناصر المجموعة (48 بايتاً في G1 و96 بايتاً في G2)، وللكفاءة في حساب الإقران.
بناء توقيع BLS
يعمل توقيع BLS (Boneh-Lynn-Shacham) كما يلي. توليد المفتاح: المفتاح الخاص x هو عدد قياسي عشوائي؛ والمفتاح العام PK = x * G، حيث G هو مولّد G2. التوقيع: given message m، احسب H = hash-to-curve(m) في G1، ثم sigma = x * H. ويكون التوقيع sigma نقطةً واحدة في G1 (بحجم 48 بايتاً على BLS12-381). التحقق: تحقّق من e(sigma, G) == e(H, PK). وبفضل الخطية الثنائية، e(x*H, G) = e(H, G)^x = e(H, x*G) = e(H, PK). ويعتمد الأمان على افتراض co-CDH: إذ يصعب حساب x*H انطلاقاً من H وx*G من دون معرفة x.
تجميع التوقيعات: الابتكار الأساسي
تدعم تواقيع BLS التجميع غير التفاعلي: فبالنسبة إلى تواقيع sigma_1, ..., sigma_n على الرسائل m_1, ..., m_n ومن المفاتيح العامة PK_1, ..., PK_n، يحسب المُجمِّع sigma_agg = sigma_1 + sigma_2 + ... + sigma_n (بجمع نقاط المنحنى الإهليلجي). ويكون التوقيع المُجمَّع قيمةً واحدة بحجم 48 بايتاً بغض النظر عن n. ويتطلب التحقق n+1 عملية إقران: تحقّق من e(sigma_agg, G) == product(e(H_i, PK_i)). وفي الحالة الشائعة التي يوقّع فيها جميع الموقّعين الرسالة نفسها، ينخفض التحقق إلى إقرانين: e(sigma_agg, G) == e(H, sum(PK_i)).
هجوم المفتاح المارق ووسائل التصدي له
يكون تجميع BLS الساذج عرضةً لهجوم المفتاح المارق. يسجّل الخصم PK_adv = x_adv*G - PK_honest. ويصبح المفتاح المُجمَّع PK_agg = PK_honest + PK_adv = x_adv*G، فيتحكم فيه الخصم بالكامل. وتشمل خيارات الدفاع: (1) برهان امتلاك (PoP): يثبت كل موقّع معرفته بمفتاحه الخاص عبر توقيع مفتاحه العام أثناء التسجيل. (2) تعزيز الرسالة: تضمين المفتاح العام لكل موقّع في رسالته. (3) إزالة الخطية (BGLS): ضرب كل مفتاح عام في hash(PK_i, all_PKs) قبل التجميع، مما يكسر الخطية التي تتيح الهجوم. تستخدم Ethereum PoP عند تسجيل المدقّقين.
استخدام BLS في Ethereum 2.0
تستخدم طبقة الإجماع في Ethereum (Beacon Chain) تجميع BLS12-381 على نطاق واسع. وفي كل خانة زمنية، يقدّم نحو 400,000+ مدقّق نشط تصديقات لرأس السلسلة. ومن دون التجميع، سيتطلب تخزين جميع التواقيع نحو ~400,000 * 96 bytes = 38 MB لكل خانة زمنية. أما مع تجميع BLS لكل لجنة (التي تضم عادةً 512 مدقّقاً)، فتنتج كل لجنة توقيعاً مجمّعاً واحداً بحجم 96 بايتاً، مما يخفض إجمالي بيانات التوقيعات إلى بضعة كيلوبايتات لكل خانة زمنية. ويحتوي جسم كتلة Beacon Chain على تصديقات مجمّعة: حقل بتات يحدد المدقّقين المشاركين، إضافةً إلى توقيع BLS مجمّع واحد لكل لجنة.
BLS مقابل ECDSA من حيث الأداء
تختلف خصائص أداء عمليات توقيع BLS عن ECDSA. يتطلب توقيع BLS عملية تحويل واحدة من الهاش إلى منحنى وضرباً قياسياً واحداً (~1 ms على الأجهزة الحديثة). ويتطلب التحقق من BLS عمليتي إقران (~3-5 ms لكل منهما = ~6-10 ms إجمالاً). ويتطلب توقيع ECDSA عملية ضرب واحدة للنقطة (~0.2 ms)، بينما يتطلب التحقق عمليتي ضرب للنقطة (~0.4 ms). ويكون التحقق من BLS أبطأ لكل توقيع، لكنه أسرع بكثير عند التجميع: إذ يتطلب التحقق من 1000 توقيع BLS مجمّع نحو ~10 ms إجمالاً، مقابل ~400 ms للتحقق من 1000 توقيع ECDSA فردي. وتقع نقطة التعادل عند نحو 2-3 تواقيع.
توقيعات BLS ذات العتبة
يوسّع BLS ذو العتبة التجميع ليشمل المشاركة السرية. في مخطط عتبة (t, n)، يُقسَّم المفتاح الخاص إلى n حصص باستخدام مشاركة Shamir السرية على حقل BLS القياسي. ينتج كل مساهم i توقيعاً جزئياً sigma_i = sk_i * H(m). ويمكن دمج أي t من التواقيع الجزئية باستخدام معاملات استيفاء Lagrange: sigma = sum(lambda_i * sigma_i). وتكون النتيجة مطابقةً للتوقيع الذي ينتجه المفتاح الأصلي، لكن لا يحتفظ أي طرف بالمفتاح الكامل في أي وقت. ويُستخدم BLS ذو العتبة في تقنية المدقّق الموزّع (DVT)، ومحافظ MPC، وخدمات التوقيع ذي العتبة مثل Fireblocks وWeb3Auth.
BLS في شبكة Filecoin
تستخدم Filecoin تواقيع BLS في نظام براهين التخزين وتوقيع المعاملات. ويجمع معدّنو التخزين عدة براهين باستخدام تجميع BLS، مما يقلل تكاليف التحقق على السلسلة. كما يجمع مخزن رسائل Filecoin عدة تواقيع للمعاملات في توقيع مجمّع واحد، مما يقلل أحجام الكتل. ويستخدم تنفيذ Filecoin مسودة معيار BLS الخاصة بـ IETF (التحويل من الهاش إلى منحنى وفق RFC 9380، ومنحنى BLS12-381) مع صيغة الحد الأدنى لحجم المفتاح العام، حيث تكون المفاتيح العامة في G1 (48 بايتاً) والتواقيع في G2 (96 بايتاً)، أي عكس اصطلاح Ethereum.
BLS في Zcash وبروتوكولات الخصوصية
مع أن Zcash تستخدم أساساً براهين Groth16 zk-SNARK، فإن إقرانات BLS تمثل أساس العديد من بنيات المعرفة الصفرية القائمة على الإقران. ومعادلة التحقق في Groth16 هي فحص إقران: e(A, B) = e(alpha, beta) * e(vk, C)، حيث A وB وC عناصر البرهان. وتعتمد التزامات كثيرات الحدود KZG (المستخدمة في معاملات blob وفق EIP-4844 في Ethereum وفي أنظمة ZK rollup المختلفة) أيضاً على إقرانات BLS12-381: يكون الالتزام بكثير الحدود f(x) هو C = f(tau)*G، وتُتحقق من براهين التقييم باستخدام الإقران. وقد اختير BLS12-381 تحديداً لكفاءة عمليات الإقران فيه ولمستوى أمانه البالغ 128 بتاً.
التوقيعات القابلة للتجميع خارج BLS
ليس BLS مخطط التوقيع القابل للتجميع الوحيد. فتواقيع Schnorr تدعم تجميع المفاتيح (MuSig2، المستخدم في Bitcoin Taproot)، حيث ينتج عدة موقّعين توقيع Schnorr واحداً لا يمكن تمييزه عن توقيع موقّع واحد. ويوفّر FROST (Flexible Round-Optimized Schnorr Threshold) تواقيع Schnorr ذات العتبة في جولتين. غير أن تجميع Schnorr يتطلب تفاعلاً بين الموقّعين (على خلاف التجميع غير التفاعلي في BLS)، مما يجعله أقل ملاءمةً لمجموعات المدقّقين الكبيرة. ويظل BLS مفضلاً لإجماع سلاسل الكتل بفضل تجميعه غير التفاعلي والتحقق الدفعي الفعّال.
نظرة مستقبلية على BLS بعد الحوسبة الكمّية
تعتمد توقيعات BLS على الاقترانات بين المنحنيات الإهليلجية، وهي معرّضة للخطر أمام الحواسيب الكمّية التي تشغّل خوارزمية Shor. ويمكن لحاسوب كمّي قوي بما يكفي أن يحسب اللوغاريتمات المتقطعة على BLS12-381، مما يؤدي إلى كسر جميع توقيعات BLS الحالية وتقويض أمان الإجماع في Ethereum. ولا يزال الإطار الزمني غير مؤكد، لكن NIST تقدّر أن ظهور حواسيب كمّية ذات صلة بالتشفير قد يستغرق 15 إلى 20 عامًا. وستحتاج Ethereum وسلاسل الكتل الأخرى المعتمدة على BLS إلى الانتقال إلى مخططات توقيع ما بعد كمّية (CRYSTALS-Dilithium/ML-DSA أو SPHINCS+/SLH-DSA) قبل تحقّق هذا التهديد. ويتطلب هذا الانتقال تغييرات على مستوى البروتوكول في تسجيل المدقّقين، وتنسيقات التصديقات، والتحقق التجميعي.
اختبار تجميع توقيعات BLS
ما الميزة الأساسية لتجميع توقيعات BLS في طبقة الإجماع في Ethereum؟
مراجعة توقيعات BLS
تستخدم توقيعات BLS الاقترانات الثنائية الخطية على منحنيات BLS12-381. وتكون التوقيعات نقاطًا بطول 48 بايتًا في G1، بينما تكون المفاتيح العامة نقاطًا بطول 96 بايتًا في G2 وفق اصطلاح Ethereum. ويجمع التجميع غير التفاعلي n من التوقيعات في قيمة واحدة بطول 48 بايتًا، ويتم التحقق منها باستخدام n+1 من الاقترانات. وتُخفَّف حدة هجوم المفتاح المتمرّد باستخدام Proof of Possession أثناء تسجيل المدقّق. وتستخدم Ethereum تقنية BLS لضغط تصديقات أكثر من 400,000 مدقّق في كل خانة إلى بضعة كيلوبايتات. ويتيح Threshold BLS إنشاء مدقّقين موزّعين من دون وجود حامل واحد للمفتاح. وتعتمد BLS على الاقترانات، ولذلك فهي غير آمنة في مواجهة الحوسبة الكمّية، مما يستلزم انتقالًا مستقبليًا.
الأسئلة الشائعة
هل درس «توقيعات BLS ومخططات التوقيع التجميعي» مجاني؟
نعم — نص درس «توقيعات BLS ومخططات التوقيع التجميعي» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ماذا ستتعلم في «توقيعات BLS ومخططات التوقيع التجميعي»؟
استكشفوا pairings الخاصة بـ BLS12-381، وتجميع التوقيعات، وكيف يستخدم Ethereum 2.0 توقيعات BLS لتقليل العبء على المدقّقين. تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟
لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «توقيعات BLS ومخططات التوقيع التجميعي»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟
نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الآليات التشفيرية لإثبات الحصة
- بروتوكولات BFT: PBFT وTendermint
- دوال العشوائية القابلة للتحقق في الإجماع
- توقيعات BLS ومخططات التوقيع التجميعي