RAM-LFE
RAM-LFE تعني تقييم وظيفة لاكونية آلة الوصول العشوائي. في Iroha ، هي طبقة عامة من الوظائف الخفية للبرامج التي تكون سياساتها العامة على السلسلة ولكن يجب عدم كتابة المدخلات المقدمة المنطقية أو السرية أو الخام إلى دولة العالم. يتم استخدامه من خلال تدفقات تحديد SORA Nexus ، مثل البحث عن الهاتف الخاص أو البريد الإلكتروني ، ويمكن أيضًا تعريفه كمساعد عام لتنفيذ البرنامج Torii عندما يتيح ملف تعريف العقد المسارات التي تواجه التطبيق.
تخزين السلسلة بيانات metadata التزام السياسة والتحقق من الاستلام. يقوم مصمم أو Torii بتقييم البرنامج المخفي ، ويرد فقط الناتج المسموح به ، ويشمل استلامًا يمكن للعملاء أو أدوات الدعم أو تعليمات الكتيبة التحقق منه ضد سياسة المسجلة.
الإسم
المشاركة في الإسم مهمة:
| المدة | المعنى |
|---|---|
ram_lfe | مجردة الوظيفة الخفية الخارجية: سياسات البرنامج والالتزامات وإيصالات التنفيذ ووضع التحقق من الإيصالات. |
BFV | مخطط تشفير براكرسكي / فان-فركوتيرن المثلي الذي يستخدمه خلفيات المدخل المشفرة RAM-LFE. |
ram_fhe_profile | BFV - البيانات الأساسية الخاصة بجهاز التنفيذ المشفر المبرمج. إنه ليس اسم ثان لـ RAM-LFE. |
في نموذج البيانات، RamLfeProgramPolicy و RamLfeExecutionReceipt هي RAM-LFE النوع. BFV المعلمات، غلافات النص المشفرة، والخفية RAM-FHE ملف برنامج ينتمي إلى الخلفية التنفيذية المشفرة المستخدمة من قبل سياسة.
ما يسجل
يتم تسجيل سياسة برنامج RAM-LFE عالمياً من قبل program_id.
- الحساب المالك الذي يمكنه تنشيط أو تعطيل، أو تغيير السياسة بطريقة أخرى
- الخلفية التي يتم الإعلان عنها للعملاء
- نمط التحقق من الإيصالات، إما
signedأوproof - الالتزام بالبيانات المختفية للبرنامج والسرية للمقيم
- المفتاح العام لـ Resolver للإيصالات الموقعة
- البيانات الأساسية العامة المشفرة، مثل معايير BFV و
ram_fhe_profile - علامة
activeالتي تراقب ما إذا كانت السياسة قادرة على إصدار إيصالات جديدة
لا يتم تخزين السر الخفي، وقيمة تعريف النص الصريح، وجسم البرنامج المخفي في حالة العالم. يجب على العملاء التعامل مع الالتزامات والهاشات غير الشفافة، والهاشة الإيصالات، والنصوص المشفرة، وتضخيم البرمجيات كقيم بروتوكول غير الشفاف.
الخلفيات
الدعم الحالي RAM-LFE يركز على ثلاثة تحديدات الخلفية:
| الخلفية | استخدام |
|---|---|
hkdf-sha3-512-prf-v1 | التقييم المرتبط بالالتزام PRF. |
bfv-affine-sha3-256-v1 | BFV مدعومة التقييم السري على فتحات المعرف مشفرة. |
bfv-programmed-sha3-256-v1 | BFV المدعومة التنفيذ المبرمج عبر السجلات المشفرة وممرات الذاكرة. |
لسياسات المعرف، البرمجة BFV الخلفية هي المسار الحديث المهم. فإنه يسمح المحفظة تشفير المدخلات الطبيعية محليا، ويسمح لحل تقييم دون رؤية تحديد عام في المعاملة، ويرجع إيصال يربط الهاش المخرج بسياسة البرنامج المسجلة.
الرياضيات
يصف هذا القسم الجبر على مستوى التنفيذ المستخدم من قبل الرمز الحالي RAM-LFE. إنه ليس دليلاً أمنياً؛ بل هو النص المحدد ونموذج التقييم المشفر الذي يجب أن يتفق عليه السياسات والإيصالات والعملاء.
الإشارة
اسمحوا:
- (H(m)) تكون Iroha
Hash::new(m): Blake2b-32 فوقm، مع أقل جزءا هاما من البايت النهائي مضطر إلى1. - (N(x)) يكون رمز Norito القنوني لـ
x. - (a \parallel b) المتوسط من سلسلة البايت.
- (\operatorname{le64}(i)) يكون رمزية 8 بتات صغيرة من عدد كامل غير مؤشر.
- (s) أن يكون القرار السري تحتفظ خارج الدولة العالمية.
- (P) تكون معايير السياسة العامة.
- (A) طلب البيانات المرتبطة.
- (x) يجب أن تكون بايت إدخال طبيعية أو غلاف إدخال مشفرة مرموزة Norito، اعتمادا على الخلفية.
RAM-LFE يستخدم الحشيشات المنفصلة عن المستوى. الصيغة أدناه تسمي المستويات حسب الغرض؛ سلسلة البايت الحالية هي: .
| الرمز | سلسلة النطاقات |
|---|---|
| (D_{\mathrm{policy}}) | iroha.ram_lfe.policy.hkdf_sha3_512_prf.v1 |
| (D_{\mathrm{secret}}) | iroha.ram_lfe.policy_secret.hkdf_sha3_512_prf.v1 |
| (D_{\mathrm{salt}}) | iroha.ram_lfe.hkdf_salt.hkdf_sha3_512_prf.v1 |
| (D_{\mathrm{hkdf_opaque}}) | iroha.ram_lfe.opaque_info.hkdf_sha3_512_prf.v1 |
| (D_{\mathrm{hkdf_receipt}}) | iroha.ram_lfe.receipt_info.hkdf_sha3_512_prf.v1 |
| (D_{\mathrm{opaque}}) | iroha.ram_lfe.opaque_hash.hkdf_sha3_512_prf.v1 |
| (D_{\mathrm{receipt}}) | iroha.ram_lfe.receipt_hash.hkdf_sha3_512_prf.v1 |
| (D_{\mathrm{affine_circuit}}) | iroha.ram_lfe.bfv_affine.circuit.v1 |
| (D_{\mathrm{affine_opaque}}) | iroha.ram_lfe.bfv_affine.opaque_hash.v1 |
| (D_{\mathrm{affine_receipt}}) | iroha.ram_lfe.bfv_affine.receipt_hash.v1 |
| (D_{\mathrm{program_memory}}) | iroha.ram_lfe.bfv_program.memory.v1 |
| (D_{\mathrm{program_opaque}}) | iroha.ram_lfe.bfv_program.opaque_hash.v1 |
| (D_{\mathrm{program_receipt}}) | iroha.ram_lfe.bfv_program.receipt_hash.v1 |
| (D_{\mathrm{program_digest}}) | iroha.ram_lfe.bfv_program.digest.v1 |
| (D_{\mathrm{output}}) | iroha.ram_lfe.output_hash.v1 |
| (D_{\mathrm{id_opaque}}) | iroha.ram_lfe.identifier.opaque_hash.v1 |
| (D_{\mathrm{id_receipt}}) | iroha.ram_lfe.identifier.receipt_hash.v1 |
| (D_{\mathrm{bfv_keygen}}) | iroha.crypto.fhe.bfv.keygen.v1 |
| (D_{\mathrm{bfv_encrypt}}) | iroha.crypto.fhe.bfv.encrypt.v1 |
| (D_{\mathrm{id_keygen}}) | iroha.crypto.fhe.bfv.identifier.keygen.v1 |
| (D_{\mathrm{id_slot}}) | iroha.crypto.fhe.bfv.identifier.slot.v1 |
الالتزام السياسي
الالتزام بالسياسة يربط المعلمات العامة وسرية حل الخفية إلى نهاية خلفية. أولاً، يتم الالتزام السر بشكل منفصل:
ثم يتم تشفير نسخة السياسة الكاملة:
والسياسة المنشورة هي:
السلسلة PolicyCommitment هي:
يقوم التقييم بإعادة حساب نفس القيمة من سرية وقت التشغيل. إذا كان الهاش الذي تم إعادة احتسابه يختلف، فإن التقييم يفشل مع عدم مطابقة الالتزام.
HKDF-SHA3-512 الخلفية
بالنسبة إلى hkdf-sha3-512-prf-v1 ، فإن الخروج هو المدخل المعتاد نفسه، ولكن المعرف غير الشفاف وحش الإيصالات هي خروجيات مرتبطة بسرية PRF.
نسخة الطلب هي:
المفتاح HKDF الملح والصورة العشوائية هو:
يتم توسيع المواد الغير مرئية وتشغيلها:
إضافة إلى ذلك، يربط مواد الإيصالات الهوية غير الشفافية:
يرد الخلفي:
BFV مقدمة
BFV هو مخطط تشفير homomorphic القائم على الشبكة. "Homomorphic" يعني أن البرنامج يمكن إضافة وتضاعفة القيم المشفرة، وبعد فك التشفير، للحصول على نفس النتيجة كما لو أنه قام بإجراء الإضافات والتضاعفات على قيم النص الصريح.
لـ RAM-LFE، يستخدم BFV كآلية إدخال مشفرة:
- محفظة تعاديل قيمة خاصة، مثل رقم الهاتف أو عنوان البريد الإلكتروني.
- المحفظة تحول البايت إلى فتحات صغيرة من الأعداد الكاملة.
- يتم تشفير كل فتحة باستخدام مفتاح الحل العام BFV.
- يُقيّم وقت تشغيل الحل البرنامج المخفي على تلك النصوص المشفرة.
- وقت تشغيل يفكّر فقط إصدار البرنامج المخفي ويعلم أو يؤكد إيصال.
BFV هو الحساب الدقيق للأعداد الكاملة ، وليس الحساب التقريبي. هذا هو السبب في أنه يلائم بشكل أفضل للبايتات المعرفية والشرائح الصغيرة الحسابات بدلا من استنتاج النموذج في نقطة عائمة Iroha التيار BFV الاستخدام، كل فتحة مشفرة تحمل واحدة القيمة المتعددة modulo (t), عادة بايت أو حقل طول بايت. النص المشفر نفسه يعيش modulo عدد كامل أكبر بكثير (q). الفجوة بين (q) و (t) يمنح مساحة لتفكيك الضوضاء التي تسببها التشفير والعمليات المثلية.
يحتوي النص الرمزي BFV على اثنين من المكونات المتعددة:
المفتاح السري هو تعدد آخر (s_k). يجمع تشفير المكونات:
إذا تم تشكيل النص المشفر بشكل صحيح والضجيج لا يزال صغيرًا بما فيه الكفاية ، فإن (v) قريب من النص الصريح المقياسي. يستعيد الجولة معدل النص الصافي modulo (t). الملكية المفيدة هي أن عمليات نص المشفر تحافظ على هذه الهيكل:
| عمليات بسيطة | عمليات النص المشفر |
|---|---|
| (m+n) | إضافة مكونات النص المشفر. |
| (m+\alpha) | إضافة ثابتة النص الصريح المقياس إلى (c_0). |
| (\alpha m) | مقياس كل من مكونات النص المشفرة بواسطة (\alpha). |
| (mn) | مضاعفة تعدد النص المشفر، إعادة مقياسها، ثم إعادة التخطيط. |
التضاعف هو العملية المكلفة. إن منتج من نصين تشفير مزدوجين يخلق بطبيعة الحال نص تشفير ثلاثي مكونات يقوم بتشفير مع (1) ، (s_k) ، و (s_k^2). يستخدم Relinearization مفتاح التقييم المنشور لتثبيت مصطلح (s_k^2) مرة أخرى في نص رمزي عادي مزدوج. وهذا يحافظ على إضافة وتضاعفات لاحقة باستخدام نفس شكل نص رمزي.
BFV أيضا "مرتفعة": كل عملية مشفرة تستهلك بعض ميزانية الضوضاء. هذا التنفيذ لا يقوم بتشغيل النصوص المشفرة لتجديد تلك الميزانية. بدلاً من ذلك ، ينشر RAM-LFE ram_fhe_profile الصغير ويقبل فقط شكل برنامج مخفي محدود. هذا يحافظ على التقييم داخل عمق مجموعة المعايير المدعومة. يسمح الملف الشخصي المبرمج الحالي بمعدل سجل ثابت ، ومعدل مسار الذاكرة الثابت ، وعلى أقصى حد واحد من مضاعفة النص الرقمية إلى النص الرقمي لكل خطوة مبرمة.
في هذا RAM-LFE التصميم، BFV يخفي إدخال العميل من بيانات الكتب العامة ومن المراقبين الذين يرون فقط المعاملة أو الحمولة المفيدة للخطوط. هذا لا يعني أن السلسلة تنفيذ برامج مشفرة تعسفية عن طريق نفسها. Torii الحل التشغيل لا يزال يمتلك BFV المواد السرية، تقييم البرنامج المخفي الذي تم تشكيله، وتشفير الخروج المسموح به، وتشهد على النتيجة. ثم يؤكد الكتيب الإثبات ضد الالتزام بالسياسة على السلسلة ويقوم بحل المفاتيح العامة أو البيانات الأساسية للدليل.
يختار حالة استخدام المحدد تمثيلاً بسيطاً عن قصد. يتم تشفير سلسلة طبيعية على النحو التالي:
[length, byte_0, byte_1, ..., byte_n, 0, 0, ...]كل عنصر مُشفّر كعنصر خاص به BFV هذا الشكل يجعل التطبيع والتحقق من الملف صريح يسمح للمحفظات ببناء طلبات مشفرة من المعلمات العامة ، ويسمح للمحلّل بتقنيات المدخلات المشفرة المتساوية إلى نسخة ثابتة من الإيصالات.
BFV نموذج الخاتم
تستخدم الخلفيات BFV حلقة متعددة الأشكال السلبية:
وخط الصفحة البسيطة:
حيث:
- (n) هو
polynomial_degree، قوة من اثنين - (q) هو
ciphertext_modulus - (t) هو
plaintext_modulus - (q > t) و (t \mid q)
- (\Delta = q/t)
- (B = 2^{\mathrm{decomposition_base_log}})
يتم تشفير متجهات معدل النص البسيط عن طريق قياس كل معدل:
كشف المركز يرفع كل معدل من:
ثم يقوم بإعادته إلى (R_t):
هنا (s_k) هو BFV المفتاح السري المتعدد، وليس الخارجي RAM-LFE الحل السري (s).
BFV الجيل الرئيسي
بالنسبة إلى إدخال المعرف المشفر، فإن مادة مفتاح BFV هي تحديدية لكل بيانات سرية ومرتبطة بالحلول:
يتم زراعة BFV RNG على النحو:
عينات المولدات الرئيسية:
- (s_k \in {-1,0,1}^n) ، تمثيل modulo (q)
- (a \leftarrow R_q) بشكل متساوي
- (e \in {-1,0,1}^n)
المفتاح العام هو:
لتحديد خطية أخرى، دعونا (s_k^2) أن تكون منتج الخاتم في (R_q). لكل قاعدة(B) رقم (j), العينة (a_j) بشكل متساوي و (e_j) من التوزيع الصغير، ثم نشر:
الجمهور BFV تحتوي البيانات الأساسية السياسية على ((n,q,t,B)) ، المفتاح العام، و max_input_bytes. (الـ) BFV المفتاح السري ومفتاح إعادة التخطيط يبقى في وقت تشغيل القرار.
BFV تشفير العمليات
لتشفير متعدد النص البسيط (m) ، تبذّل عملية التنفيذ بذور أخرى ChaCha20 RNG من:
إنه يقطع عينات (u,e_1,e_2 \in {-1,0,1}^n) ويحسب:
النص المشفر هو (c=(c_0,c_1)).
الإضافة المثليّة هي العنصرية:
إضافة مقياس النص الصريح (\alpha) إلى معدل التغيرات صفر فقط (c_0):
مضاعفة مع مقياس النص الصريح (\alpha) تقيس كلا المكونين:
بالنسبة لثنين من النصوص المشفرة (c=(c_0,c _1)) و (d=(d_0,d_1)) ، تقوم مضاعفة النص المشفر أولاً بحساب نص مشفر ذو حجم ثلاث مرات وتعيد كل معدل إلى (t/q):
جميع المنتجات المذكورة أعلاه هي منتجات الحلقات النيغاسيكلية في (R_q). ثم يتم تفكيك (\tilde c_2) إلى متعددات الأساسية-(B):
ويتم إعادة التخطيط:
النتيجة هي مرة أخرى نص رمزي مكونين BFV.
الكشف الرقميةغلاف النص
سلسلة إدخال البايت للتعرف:
يتم تشفيرها في فتحات مستوى:
وكل الفتحات المتبقية هي صفر حتى max_input_bytes + 1. يتم تشفير كل فتحة مقياسية باعتبارها عداد الكلمات العادية من النص الصريح ([m_i]) .
تغطية المعرف المشفرة هي:
حيث (M=\mathrm{max_input_bytes}).
BFV الخلفية المتواصلة
بالنسبة إلى bfv-affine-sha3-256-v1 ، يستخرج وقت التشغيل أولاً مادة مفتاحية BFV من (s) و (A). يجب أن تتطابق المعايير العامة المستمدة بدقة مع العياريات العامة المشتركة على السلسلة.
بذور الدائرة المميزة هي:
من هذه البذور عينات وقت التشغيل، modulo (t) ، دائرة صفوف 32:
حيث (m_i) هي فتحات المعرفة المشفرة. من الناحية الهومورفية، يحسب نفس القيمة على نصوص تشفرية:
يقوم الحل بتشفير كل (C_j) ، ويطلب من جميع معايير النص الصريح المتأخر أن تكون صفرًا، ويحول قيم المعايير-الصفر إلى بايتات، ويشكل:
ثم:
BFV البرمجة الخلفية
بالنسبة ل bfv-programmed-sha3-256-v1 ، تتضمن المعايير العامة معايير تشفير معرف BFV بالإضافة إلى هضم برنامج مخفي:
الملف الحالي RAM-FHE هو:
| الحقل | القيمة |
|---|---|
profile_version | 1 |
register_count | 4 |
memory_lane_count | 32 |
ciphertext_mul_per_step | 1 |
encrypted_input_mode | resolver_canonicalized_envelope_v1 |
min_ciphertext_modulus | (2^{52}) |
يتم تشفير إدخال النص الصريح الذي تم تقديمه إلى Torii في نفس غلاف BFV قبل التنفيذ. البذور التحديدية لتشفير جانب الخادم هو:
بالنسبة إلى المدخلات المشفرة المقدمة خارجيًا ، يقوم القرار بتشفير غلاف التعريف وإعادة تشفيره على هذا الغلاف التحديدي قبل تنفيذها. يحافظ هذا التشريح على استقرار هاشات الاستقبال عبر نصوص تشفرية متساوية من الناحية الدلوية BFV .
يتم استنباط مسارات الذاكرة المشفرة الأولية من:
لكل من 32 ممر، عينات وقت التشغيل (_j \in [0,t)) وتخزين BFV تشفير النص المشفر (r_j). ينفذ البرنامج المخفي بعد ذلك على سجلات مشفرة وذاكرة مشفرة:
| التعليمات | الجبر |
|---|---|
LoadInput(dst, i) | (R_{\mathrm{dst}} \leftarrow C_i) |
LoadState(dst, j) | (R_{\mathrm{dst}} \leftarrow S_j) |
StoreState(j, src) | (S_j \leftarrow R_{\mathrm{src}}) |
LoadConst(dst, a) | (R_{\mathrm{dst}} \leftrow \operatorname{Enc}(a)) |
Add(dst, a, b) | (R_{\mathrm{dst}} \leftarrow R_a + R_b) |
AddPlain(dst, src, a) | (R_{\mathrm{dst}} \leftarrow R_{\mathrm{src}} + a) |
SubPlain(dst, src, a) | (R_{\mathrm{dst}} \leftarrow R_{\mathrm{src}} - a) |
MulPlain(dst, src, a) | (R_{\mathrm{dst}} \leftarrow aR_{\mathrm{src}}) |
Mul(dst, a, b) | (R_{\mathrm{dst}} \leftarrow R_aR_b) ، ثم إعادة التخطيط |
SelectEqZero(dst, cond, z, nz) | فك تشفير (R_{\mathrm{cond}}) ؛ اختر (R_z) عندما يكون صفر، وإلا (R_{nz}). |
Output(src) | إضافة (R_{\mathrm{src}}) إلى قائمة سجل المخرجات. |
بعد الانتهاء من شريط التعليمات ، يقوم القرار بتشفير كل سجل خروج ، وتحويل معدل الصفر إلى بايت ، وتربط تلك البايت:
الحشيشات العامة المبرمجة للخلفية هي:
الشريط التعرفي المبرمج الافتراضي لديه 64 فتحة إدخال. لكل فتحة (i) ، فإنه يحمل فتحة الإدخال، ويحمل طريق الذاكرة (i \bmod 32)، ويضيفها، وتخرج النتيجة:
أوراق الناتج والإيصالات
لا يوقع إيصال التنفيذ العام RAM-LFE على الناتج الخام. إنه يوقّف على الاختراق المخرج:
بالنسبة لرسائل تنفيذ Torii RAM-LFE، البيانات المرتبطة هي بايتات تحديد البرنامج القنوني:
الحمولة المفيدة التي تم التوقيع عليها هي:
لنظام signed:
تتحقق التحقق من التوقيع مع resolver_public_key وترفض الإيصالات ما لم تحصل جميع هذه المساواة على:
إذا قام المتصل بتقديم output_hex ، يقوم المحقق أيضًا بفحص:
بالنسبة لنمط proof ، يحمل الشهادة غلافًا إثباتيًا بدلاً من توقيع. تتحقق التحقق من أن الخلفية الإثباتية وتعرف الدائرة والهاشش للخطط المدخلة العامة والتحقق من المفتاح الهاشش والمحاكمات العامة المعروضة تتطابق مع البيانات الأساسية للتحقق من الإثبات والتحميل الرسوم المرموز. دعونا:
الحالات العامة المتوقعة هي أربع أعمدة من عنصر واحد. يحتوي العمود (j) على بايت (h_{8j}\ldots h_{8j+7}) يليها 24 بايت صفر:
تحديد المعلومات
لا يستخدم قرار المحدد الخلفي العام opaque_hash كمحدد حساب غير مرئي يواجه المستخدم. فإنه ينشر الهاشة الإخراجية RAM-LFE من خلال نطاقات محددة للمحدد:
علامة IdentifierResolutionReceipt على حمولة فائدة من مستوى أعلى:
للوصولات الموقعة للتعرف:
لا يقبل ClaimIdentifier الإيصالات إلا عندما تكون التوقيع أو الدليل صالحًا ، وتتطابق حمولة تنفيذ RAM-LFE المضمنة مع سياسة البرنامج المشار إليها ، وuaid و account_id هي الالتزامات التي يتم مطالبت بها.
تدفق التنفيذ
تنفيذ عام RAM-LFE يتبع هذا الشكل:
- الإدارة أو سجلات المشغل
RamLfeProgramPolicy. - المالك يقوم بتفعيل السياسة
- يقرأ العميل البيانات الوصفية للسياسة العامة من Torii.
- يقوم العميل بإرسال نموذج إدخال واحد بالضبط إلى القرار: نص بسيط
input_hexأو غلاف إدخال مشفر BFV. - وقت التشغيل يقيّم البرنامج المخفي ويعود
output_hex,output_hash,opaque_hash,receipt_hash, و aRamLfeExecutionReceipt. - يتحقق العميل أو الجهة الخلفية من الإيصالات بموجب السياسة المنشورة، ويتحقق اختياريًا من أن
output_hexالمرجع يختلط معoutput_hashالإيصالات. - إرشادات مستوى أعلى، مثل
ClaimIdentifier، يمكن أن تضم الإيصالات المصرح بها بدلاً من تضمين المدخل الخام.
سياسات تحديد الهوية
سياسات التعرف هي استخدام ملموس ل RAM-LFE. فإنها تضيف مساحة أسماء الأعمال وقاعدة التطبيع فوق سياسة البرنامج العامة:
RegisterRamLfeProgramPolicy(
program_id = "phone_team",
owner = "<POLICY_OWNER>",
backend = "bfv-programmed-sha3-256-v1",
verification_mode = "signed",
commitment = "<HIDDEN_PROGRAM_POLICY_COMMITMENT>",
resolver_public_key = "<RESOLVER_PUBLIC_KEY>"
)
ActivateRamLfeProgramPolicy(program_id = "phone_team")
RegisterIdentifierPolicy(
id = "phone#team",
owner = "<POLICY_OWNER>",
normalization = "PhoneE164",
program_id = "phone_team",
note = "Private phone registration for team dataspace"
)
ActivateIdentifierPolicy(policy_id = "phone#team")تستخدم طبقة المعرف إيصال RAM-LFE لربط:
policy_id- العلامة غير الشفافة المستمدة من الوظيفة الخفية
- الاختيار
receipt_hash - حساب UAID
- القنوني
account_id - الحمل المفيد للتنفيذ العام RAM-LFE
للحصول على إدخال المستخدم، حافظ على أسماء مستعار الحساب منفصلة عن معرفات خاصة. الأسماء المستعار هي أسماء عامة؛ يجب أن تتدفق أرقام الهاتف وعناوين البريد الإلكتروني والقيم المماثلة من خلال سياسات تحديد الهوية وإيصالاتها.
Torii طرق
عندما يتم تمكين عائلة الطرق التي تواجه التطبيقات، Torii تعرض RAM-LFE ومساعدات تحديد الهوية:
| الطريق | الغرض |
|---|---|
GET /v1/ram-lfe/program-policies | إدراج سياسات البرنامج النشطة وغير النشطة RAM-LFE و البيانات الوصفية العامة. |
POST /v1/ram-lfe/programs/{program_id}/execute | تنفيذ برنامج واحد من input_hex أو encrypted_input وإرجاع الهاشات الخارجة بالإضافة إلى إيصال غير حكومي. |
POST /v1/ram-lfe/receipts/verify | التحقق من RamLfeExecutionReceipt مقابل السياسة المنشورة، ومقارنة اختياريًا output_hex إلى output_hash. |
GET /v1/identifier-policies | قم بإدراج سياسات المعرف، وأساليب التطبيع، ومفاتيح القرار، و بيانات البيانات المشفرة. |
POST /v1/accounts/{account_id}/identifiers/claim-receipt | إصدار الإيصالات التي يمكن للمستخدم تضمينها في ClaimIdentifier. |
POST /v1/identifiers/resolve | حل إدخال تعريف طبيعي إلى الحساب المرتبط عندما يكون هناك مطالبة نشطة. |
GET /v1/identifiers/receipts/{receipt_hash} | البحث عن طلب تحديد المواصفات المستمرة بواسطة إرسال رسائل لتحقيق الأدوات ودعم. |
تحقق دائمًا من مستند /openapi أو /openapi.json للعقدة المستهدفة قبل البناء ضد هذه الطرق. يعتمد التوافر على بناء العقدة وملف الشبكة.
وقت تشغيل العقدة
يتم تكوين وقت تشغيل Torii في العملية RAM-LFE تحت torii.ram_lfe.programs[*] ، وترتيبها بواسطة program_id. يجب أن يتناسب كل برنامج تم تكوينه مع الالتزام بالسياسة على السلسلة ويجب أن يوفر المواد اللازمة لتقييم وإقرار الإيصالات. تستخدم طرق الكشف نفس الوقت التشغيلي؛ لا تتطلب مساحة تشكيل الكشف عن الحل منفصلة.
لا يكفي تسجيل سياسة على السلسلة بمفردها. يجب أن يعرض عقد الهدف أيضًا عائلة الطرق ويكون لديه مواد وقت تشغيل متطابقة للبرامج التي يتوقع تنفيذها.
خطوط الحراسة التشغيلية
- تسجيل السياسات غير نشطة، التحقق من البيانات المباشرة، ثم تفعيلها.
- أبقوا أسرار المقيّم مخفية، مفاتيح توقيع القرار، و BFV المواد السرية خارج الوثائق، سجلات، المعاملات، والعملاء.
- لا تضع المعرفات الخام في أسماء مستعار الحسابات أو بيانات المعاملة أو الأحداث أو حقل دولة العالم.
- التحقق من الإيصالات من جانب العميل قبل إرسال تعليمات على مستوى أعلى عندما يعرض SDK مؤكد.
- استخدم حقل انتهاء الصلاحية حيث لا ينبغي أن تبقى الإيصالات القديمة صالحة إلى الأبد.
- تدوير عن طريق تسجيل برنامج جديد أو سياسة تحديد الهوية، انتقال العملاء، وتعطيل السياسة القديمة بمجرد تدفق إيصالات جديدة.