إعادة تعشية المدخلات
كيف تنفق مخرجًا من الشجرة دون أن تُظهر أيّها
في FCMP++ لا يكون مدخل المعاملة إشارة إلى مخرج، بل نسخة "معاد طلاؤها" منه: يُضاف إلى كل نقطة من نقاط المخرج مضاعف عشوائي لمولّد منفصل. النقاط الناتجة لا يمكن تمييزها عن نقاط عشوائية، لكن المُنفِق يعرف "الطلاء" ويستطيع أن يُثبت: (1) أن إزالته تعطي ورقة ما من الشجرة، و(2) أنه يعرف مفتاح تلك الورقة.
لماذا إعادة التعشية أصلًا
يُثبت برهان العضوية العبارة "النقطة X ورقة في الشجرة". فإذا نشرنا المخرج O نفسه، لم يبقَ شيء لنخفيه: سيرى الجميع أي مخرج يُنفق. وإذا لم ننشر شيئًا، فلن يكون هناك ما نربط به key image والتزام المبلغ. نحتاج إلى حل وسط: أن ننشر شيئًا مرتبطًا رياضيًا بالمخرج، بحيث لا يرى هذا الارتباط إلا المُنفِق.
هذه الحيلة هي إعادة التعشية (rerandomization). في RingCT كانت حيلة مشابهة هي المخرج الزائف C̃: التزام المبلغ نفسه، لكن بقناع جديد. ويطبّق FCMP++ الفكرة نفسها على كل جزء من أجزاء المخرج.
ممّ تتكون الورقة
يأتي O وC مباشرة من المخرج على السلسلة؛ أما I فتحسبه العقدة عند إضافة المخرج إلى الشجرة. لا تدخل الشجرةَ إلا الإحداثيات (أعداد)، لا النقاط نفسها — وهذا يسهّل "تجزئتها" في المستوى التالي (انظر Curve Trees).
صيغ إعادة التعشية
يختار المُنفِق أربعة أعداد قياسية عشوائية r_o, r_i, r_r_i, r_c وينشر:
| المنشور | الصيغة | ما الذي يخفيه |
|---|---|---|
| Õ | O + r_o·T | أي مفتاح مخرج يُنفق |
| Ĩ | I + r_i·U | مولّد key image لذلك المخرج |
| R | r_i·V + r_r_i·T | التزام بـ r_i — لازم لربط Ĩ بـ key image |
| C̃ | C + r_c·G | أي التزام مبلغ يُنفق (مثل المخرج الزائف في RingCT) |
T, U, V مولّدات ثابتة يُحصل عليها بالتجزئة إلى نقطة؛ ولا أحد يعرف لوغاريتماتها بالنسبة إلى G أو بالنسبة إلى بعضها. وهذا أمر حاسم: لو عرف أحدهم T = t·G، لاستطاع "إعادة طلاء" مكوّن بمكوّن آخر.
ما الذي يُثبت عن هذه النقاط
تحمل المعاملة برهانين يتقاسمان العمل:
- برهان العضوية (داخل دارة حسابية على Helios/Selene) يُثبت: توجد ورقة
(O, I, C)في الشجرة ذات الجذرρ، وتوجدr_o, r_i, r_r_i, r_cبحيث تتبعÕ, Ĩ, R, C̃المنشورة الصيغ أعلاه. - SA+L (خارج الدارة، على Ed25519) يُثبت: أن المُنفِق يعرف
x, yبحيثÕ = x·G + (y + r_o)·T، وأن key image هيL = x·I— باستخدامÕ, Ĩ, Rالمنشورة فقط.
لاحظ أن برهان العضوية لا يعرف شيئًا عن مفاتيح الإنفاق، وأن SA+L لا يعرف شيئًا عن الشجرة. هذا الفصل يتيح مثلًا تفويض برهان العضوية إلى جهاز آخر دون منحه صلاحية الإنفاق.
لماذا هو آمن
- الإخفاء:
r_o·Tنقطة عشوائية من الزمرة الجزئية، لذا يتوزعÕبانتظام أيًّا كان شكلO. ومقارنةÕبالمخرجات لا طائل منها — وهذا ما تُظهره الأداة. - لا أوراق مزيفة: "لإزالة الطلاء" عن نقطة مختلقة والوصول إلى ورقة حقيقية، ستحتاج إلى حل لوغاريتم متقطع بين المولّدات.
- لا تبديل للمبالغ: يُتحقق من التوازن على
C̃، ويضمن برهان العضوية أنC̃لا يختلف عنCالحقيقي للورقة إلا بمضاعف لـG— فيكون المبلغ هو نفسه. - لا إنفاق مزدوج:
L = x·Iيعتمد على المخرج وحده، لا علىr؛ والإنفاق الثاني ينتجLنفسه.