لأغراض تعليمية فقط؛ لا يشكل ذلك نصيحة استثمارية أو توصية استثمارية. قد تؤدي الاستثمارات إلى خسائر.
الإجابة المباشرة
توقيع Boneh-Lynn-Shacham هو توقيع رقمي قائم على الاقتران. في ترتيب شائع، ينتج المفتاح السري sk المفتاح العام PK = sk * G1؛ وتحول الرسالة m إلى H(m) في G2؛ ويجري التحقق من التوقيع sig = sk * H(m) عبر e(PK, H(m)) = e(G1, sig). المجموعات الدقيقة والترميزات وحزمة hash-to-curve وفصل النطاق خيارات ciphersuite وليست رموزا قابلة للتبديل.
لـBLS ميزة تشغيلية غير مألوفة: يمكن جمع التوقيعات الصحيحة في عنصر مجموعة واحد ثابت الحجم. يضغط ذلك التوقيعات، لكنه لا يضغط قائمة الموقعين ولا يثبت quorum ولا يحدد المدققين المصرح لهم ولا يمنع equivocation ولا يجعل الإجماع نهائيا. تأتي هذه الخصائص من البروتوكول المحيط.
آلية العمل
- ثبّت البروتوكول وciphersuite والإصدار: المنحنى ومجموعتي المفتاح العام والتوقيع والتسلسل ودالة hash-to-curve ووسم فصل النطاق وبناء جذر الرسالة. لا تستنتج التوافق من اسم BLS وحده.
- أنشئ
skبإجراء توليد المفتاح المحدد واشتقPK. ارفض الصفر ونقطة اللانهاية والترميزات المشوهة وغير القانونية أو التابعة لمجموعة فرعية خاطئة وفق قواعدKeyValidateوفك التسلسل الدقيقة. - أنشئ bytes الرسالة ونطاق التوقيع بدقة. في إجماع Ethereum، يربط جذر التوقيع جذر كائن SSZ بنطاق مشتق من نوع العملية وبيانات fork؛ النص المعروض ليس الكائن الموقع.
- وقّع وتحقق فرديا بالمخطط المختار. تختلف متغيرات Basic وإضافة الرسالة وproof-of-possession في دفاعاتها ضد rogue key، ولا يجوز خلطها بلا تدقيق.
- اختر محقق التجميع حسب نمط الرسائل. استخدم
FastAggregateVerifyفقط لمفاتيح عامة متعددة تم التحقق منها وتوقع الرسالة نفسها ضمن افتراضات proof-of-possession المطلوبة؛ واستخدمAggregateVerifyلقائمة المفاتيح والرسائل التي يسمح بها المخطط. - أعد بناء مجموعة الموقعين بصورة مستقلة من بيانات اللجنة أو participant bitlist، وارفض الفهارس المكررة أو غير المصرح بها، وطبق أوزان stake أو threshold، ثم تحقق من التوقيع المجمع. يثبت التجميع الصحيح المجموعة المقدمة، لكنه لا يقرر استيفاءها للسياسة.
- طابق النتيجة مع fork choice وشروط slashing وquorum وavailability والتوقيت وfinality. احتفظ بbytes الإدخال والنطاقات وفهارس الموقعين وإصدار التنفيذ وtest vectors، وقارن مكتبات مستقلة قبل النشر.
أمثلة محلولة
- الضغط لا يلغي بيانات العضوية. يرمز إجماع Ethereum كل مفتاح عام BLS في
48 bytesوكل توقيع في96 bytes. تشغل512توقيعا للرسالة نفسها منفصلة512 * 96 = 49,152 bytes. يشغل توقيع مجمع واحد مع participant bitlist بطول512-bit = 64-byteمقدار96 + 64 = 160 bytes، أي انخفاض49,152 - 160 = 48,992 bytesأو99.6744791667%. ويجب أن تبقى مفاتيح المدققين العامة وربط اللجنة متاحة في مكان آخر. - تجميع الرسالة نفسها. لنفترض أن المدققين المسجلين
17و24و91يوقعون جذر التوقيع نفسهR. تتجمع توقيعاتهم هكذاsigAgg = sig17 + sig24 + sig91. يستخدم التحقق مجموعة المفاتيح المرتبة والمتحقق منها[PK17, PK24, PK91]وRنفسه وFastAggregateVerify. تثبت النتيجة الصحيحة توقيع هذه المفاتيح علىRضمن المخطط؛ وتحدد قاعدة منفصلة أوزانهم وما إذا كان ثلاثة موقعين يشكلون quorum. - الرسائل المختلفة تتطلب API الصحيح. توقع المفاتيح
PK1وPK2وPK3الرسائل المختلفةm1وm2وm3. يجب أن يحافظ المحقق على الاقترانات[PK1, m1]و[PK2, m2]و[PK3, m3]ويستدعيAggregateVerifyالمنطبق؛ أما استبدالها برسالة واحدة وFastAggregateVerifyفيتحقق من ادعاء مختلف. وفي مخطط Basic يجب أيضا أن تكون الرسائل متميزة. - التجميع ليس توقيع threshold. في مجموعة من
8أعضاء، ينتج التجميع العادي لتوقيعات الأعضاء[1, 2, 4, 6, 8]توقيعا واحدا وقائمة من خمسة موقعين. لا يصبح توقيع5-of-8threshold تحت مفتاح عام جماعي واحد. يتطلب threshold BLS فعليا توليد مفتاح موزعا أو نموذجا بجهة موثوقة، وفهارس shares وقواعد interpolation؛ ويجب تدقيق افتراضات الثقة والفشل بصورة مستقلة.
المخاطر
- استخدام منحنى أو ترتيب مجموعات أو ciphersuite يختلف عن البروتوكول.
- توقيع bytes متسلسلة مختلفة رغم عرض الرسالة نفسها للبشر.
- إغفال نطاق fork أو العملية أو التطبيق وإتاحة replay عبر السياقات.
- اعتبار Internet-Draft منتهي الصلاحية معيارا نهائيا ثابتا.
- قبول ترميزات نقاط مشوهة أو غير قانونية أو عند اللانهاية.
- تخطي فحوص المجموعة الفرعية وإدخال نقاط منحنى غير صالح أو مجموعة صغيرة.
- استخدام code مخصص لـhash-to-curve بدلا من الحزمة وtest vectors المحددة.
- توليد مفاتيح سرية منحازة أو صفرية أو مكررة أو مسربة أو متوقعة.
- إعادة استخدام مفتاح عبر بروتوكولات تختلف افتراضات proof-of-possession والنطاق فيها.
- تجميع مفاتيح عامة غير مسجلة بلا دفاع rogue-key المطلوب في المخطط.
- استدعاء التحقق السريع للرسالة نفسها على رسائل مختلفة أو جذور غير متسقة.
- تبديل أو تكرار أو حذف ارتباط المفتاح العام بالرسالة.
- الثقة في participant bitlist دون فحص عضوية اللجنة وتفرد الفهارس.
- عد التوقيعات بدلا من stake أو الوزن أو threshold المحدد في البروتوكول.
- افتراض أن التجميع الواحد يكشف أي توقيع فردي غير صالح.
- الخلط بين التجميع العادي وmultisignatures وتوقيعات threshold.
- اعتبار صحة التوقيع دليلا على availability أو صحة التنفيذ أو finality.
- تجاهل equivocation والرسائل القابلة للعقوبة ونوافذ التوقيت وسياق fork choice.
- الاعتماد على مكتبة واحدة أو ميزة CPU أو تحسين batch verification غير مفحوص.
- التقليل من تكلفة الاقتران ومدخلات حجب الخدمة والقنوات الجانبية وحفظ المفاتيح والترقيات وغياب أمان ما بعد الكم.
مفاهيم خاطئة شائعة
- يثبت التوقيع المجمع مشاركة كل مدقق.
- يمكن جمع أي مفاتيح وتوقيعات BLS بأمان بلا قواعد proof-of-possession.
- يلغي التجميع ثابت الحجم الحاجة إلى إرسال عضوية الموقعين أو إعادة بنائها.
- تجميع BLS وthreshold BLS هما البناء نفسه.
- يجعل توقيع BLS الصحيح الكتلة أو رسالة الجسر أو البروتوكول آمنا اقتصاديا ونهائيا.
موضوعات ذات صلة
المصادر
- BLS Signatures - Internet Research Task Force (accessed: 2026-08-12)
- RFC 9380: Hashing to Elliptic Curves - RFC Editor (accessed: 2026-08-12)
- Short Signatures from the Weil Pairing - Springer (accessed: 2026-08-12)
- Ethereum Proof-of-Stake Consensus Specifications - Ethereum Foundation (accessed: 2026-08-12)
- Phase 0 Beacon Chain Specification - Ethereum Foundation (accessed: 2026-08-12)
- Ethereum Annotated Specification: BLS Signatures - Ethereum Foundation (accessed: 2026-08-12)
- EIP-2537: Precompile for BLS12-381 curve operations - Ethereum Improvement Proposals (accessed: 2026-08-12)
- Consensus mechanisms - Ethereum.org (accessed: 2026-08-12)