تقني › FCMP++

إعادة تعشية المدخلات

كيف تنفق مخرجًا من الشجرة دون أن تُظهر أيّها

باختصار

في FCMP++ لا يكون مدخل المعاملة إشارة إلى مخرج، بل نسخة "معاد طلاؤها" منه: يُضاف إلى كل نقطة من نقاط المخرج مضاعف عشوائي لمولّد منفصل. النقاط الناتجة لا يمكن تمييزها عن نقاط عشوائية، لكن المُنفِق يعرف "الطلاء" ويستطيع أن يُثبت: (1) أن إزالته تعطي ورقة ما من الشجرة، و(2) أنه يعرف مفتاح تلك الورقة.

لماذا إعادة التعشية أصلًا

يُثبت برهان العضوية العبارة "النقطة X ورقة في الشجرة". فإذا نشرنا المخرج O نفسه، لم يبقَ شيء لنخفيه: سيرى الجميع أي مخرج يُنفق. وإذا لم ننشر شيئًا، فلن يكون هناك ما نربط به key image والتزام المبلغ. نحتاج إلى حل وسط: أن ننشر شيئًا مرتبطًا رياضيًا بالمخرج، بحيث لا يرى هذا الارتباط إلا المُنفِق.

هذه الحيلة هي إعادة التعشية (rerandomization). في RingCT كانت حيلة مشابهة هي المخرج الزائف C̃: التزام المبلغ نفسه، لكن بقناع جديد. ويطبّق FCMP++ الفكرة نفسها على كل جزء من أجزاء المخرج.

ممّ تتكون الورقة

leaf = ( O.x, I.x, C.x ) الإحداثيات x لثلاث نقاط على Ed25519: مفتاح المخرج O، ومولّد key image I = Hp(O)، والالتزام C

يأتي O وC مباشرة من المخرج على السلسلة؛ أما I فتحسبه العقدة عند إضافة المخرج إلى الشجرة. لا تدخل الشجرةَ إلا الإحداثيات (أعداد)، لا النقاط نفسها — وهذا يسهّل "تجزئتها" في المستوى التالي (انظر Curve Trees).

صيغ إعادة التعشية

يختار المُنفِق أربعة أعداد قياسية عشوائية r_o, r_i, r_r_i, r_c وينشر:

المنشورالصيغةما الذي يخفيه
ÕO + r_o·Tأي مفتاح مخرج يُنفق
ĨI + r_i·Uمولّد key image لذلك المخرج
Rr_i·V + r_r_i·Tالتزام بـ r_i — لازم لربط Ĩ بـ key image
C̃C + r_c·Gأي التزام مبلغ يُنفق (مثل المخرج الزائف في RingCT)

T, U, V مولّدات ثابتة يُحصل عليها بالتجزئة إلى نقطة؛ ولا أحد يعرف لوغاريتماتها بالنسبة إلى G أو بالنسبة إلى بعضها. وهذا أمر حاسم: لو عرف أحدهم T = t·G، لاستطاع "إعادة طلاء" مكوّن بمكوّن آخر.

ورقة الشجرة (علنية) O I = Hp(O) C + r_o·T + r_i·U + r_c·G مدخل المعاملة Õ Ĩ (+ R) C̃ من دون r تبقى الصلة بين العمودين الأيسر والأيمن غير مرئية

ما الذي يُثبت عن هذه النقاط

تحمل المعاملة برهانين يتقاسمان العمل:

  1. برهان العضوية (داخل دارة حسابية على Helios/Selene) يُثبت: توجد ورقة (O, I, C) في الشجرة ذات الجذر ρ، وتوجد r_o, r_i, r_r_i, r_c بحيث تتبع Õ, Ĩ, R, C̃ المنشورة الصيغ أعلاه.
  2. 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 نفسه.