RAM-LFE
RAM-LFE - кездейсоқ қолжетімділік машинасының лаконикалық функциясын бағалау. Iroha - бұл мемлекеттік саясаты желіде болатын, бірақ бағалаушы логикасы, құпия немесе шикі кірісі әлемдік мемлекетке жазылуға тиіс емес бағдарламаларға арналған жалпы жасырын-функция қабат. Ол SORA Nexus жеке телефон немесе электрондық пошта іздеуі сияқты сәйкестендіру ағындарымен пайдаланылады, сондай-ақ түйін профилі қолданбаға қарасты бағыттарды мүмкіндік берген кезде жалпы Torii бағдарламаны орындау көмекшісі ретінде таныстырылуы мүмкін.
Сабақ саясаттың міндеттемелері мен қолхаттарды тексеру метамәдени деректерін сақтайды. Резолютор немесе 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түсімді тексеру режимі- жасырын бағдарламаның метамәліметтері мен бағалаушының құпиясы туралы міндеттеме
- қол қойылған квитанциялар үшін шешушінің мемлекеттік кілті
- 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))
xканоникалық Norito кодтамасы болып табылады. - (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 шығыстар.
Өтiнiштiң көшірмесі:
HKDF тұз және псевдореандомий кілті:
Өткінші материал кеңейтіліп, шешеленеді:
Қабылдау материалы ашық емес ID-ді бұдан басқа байлайды:
Аяқтауыш қайтарады:
BFV Түйінді
BFV - торға негізделген гомоморфтық шифрлау схемасы. "Гомоморфты" дегеніміз, бағдарлама шифрланған мәндерді қосуы және көбейтуі мүмкін және шифрлаудан кейін ол жай мәтіндік мәндердегі қосылулар мен көбейтулерді орындағандай нәтижеге ие болады.
RAM-LFE үшін BFV шифрланған кіріс тетігі ретінде қолданылады:
- Қапсық телефон нөмірі немесе электрондық пошта адресі сияқты жеке құндылықты қалыпқа келтіреді.
- Қапсық байттарды кішкентай бүтін сандық ұңғымаларға айналдырады.
- Әрбір ұяшықты шешушінің BFV қоғамдық кілтімен шифрланады.
- Резолютордың орындалу уақыты жасырын бағдарламаны осы шифрлы мәтіндерге қарап бағалайды.
- Орындалу уақыты жасырын бағдарламаның шығысын ғана шифрлайды және қолтаңбалар немесе квитанция дәлелдейді.
BFV нақты бүтін сандар арифметикалық емес, шамамен арифметика. Сол себепті ол идентификатор байт және шағын модульдік Есептеулерге қарағанда, жылжымалы нүктелік модельді қорытындылауға. Iroha Ағымдағы BFV пайдалану, әрбір шифрланған ұяшықта бір скалярлық мәнді модулі бар (t), әдетте байт немесе байт ұзындығы өріс. шифрлы мәтіннің өзі әлдеқайда үлкен бүтін санның модульінде тұрады (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) арқылы шифрланған үш құрамдас мәтінді жасайды. Релинеаризация (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)).
Гомоморфтық қосылу компоненттер бойынша:
Тек (c_0) коэффициентінің нөлдік өзгеруіне жай мәтінді масштабты (\alpha) қосу:
Ашық мәтіннің масштабы (\alpha) арқылы көбейту екі құрамдас бөліктерді де өлшеуіш:
Екі шифрлы мәтін үшін (c=(c_0,c_1)) және (d=(d_0,d_1)), шифрлы текст көбейтуі алдымен үш өлшемді шифрлық мәтінді есептеп береді және әрбір коэффициентті (t/q) арқылы қайтарады:
Жоғарыда келтірілген өнімдердің барлығы (R_q) дегендегі негацикликалық дөңгелек өнімдері болып табылады. Содан кейін (\tilde c_2) базалық-(B) көптікшелерге бөлініп тасталады:
және қайта тіктелген:
Нәтижесінде қайтадан екі компонентті BFV шифрлы мәтін пайда болады.
Идентификатор шифрлау мәтіні конверті
Идентификатордың кіріс байт жиегі:
Скаларлы ұяшықтарға шифрланған:
және қалған барлық ұңғымалар max_input_bytes + 1 -ға дейін нөлді құрайды. Әр scalar ұңғымасы коэффициенті нөлдік жай мәтінді көптікше ([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 жолдың әрқайсысы үшін (r_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}} \leftarrow \operatorname{Enc}(а) ) |
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жәнеRamLfeExecutionReceiptқайтарады. - Тапсырыс беруші немесе т.б. қолхатты жарияланған саясатқа сәйкес тексеріп, кері қайтарылған
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 белгісі қойылады. Әрбір конфигурацияланған бағдарлама желідегі саясаттың міндеттемесіне сәйкес келуі тиіс және түсімдерді бағалау мен растау үшін қажетті жұмыс уақытын қамтамасыз етуі керек. Идентификатор бағыттары осы жұмыс уақытын қайта пайдаланады; оларға жеке идентификатор-резульвер конфигурациясы беті қажет емес.
Политиканы тізбекке тіркеу өздігінен жеткіліксіз. Мақсатты түйін сонымен қатар маршрут отбасын ашады және оның орындауы күтiлетiн бағдарламалар үшін сәйкес келетiн орындау уақыты материалдары болуы керек.
Операциялық күзет рельстері
- Политиканы белсенді емес тіркеу, қоғамдық метамәліметтерді тексеру, содан кейін оларды қосу.
- Бағалаушының құпияларын, шешуші қолтаңбалау кілттерін және BFV құпия материалдарды құжаттардан, журналдардан, транзакциялардан және клиент топтамаларынан жасыру.
- Тіркелгілердің аты-жөндеріне, транзакция метамәліметтеріне, оқиғаларға немесе әлемдік мемлекет өрістеріне шикі атауларды қосуға болмайды.
- SDK растаушыны ашқан кезде жоғары деңгейдегі нұсқауларды тапсырудан бұрын клиент тарапынан түбіртектерді тексеру.
- Ескірген квитанциялар мәңгілікке жарамды болмауы тиіс мерзімі өткен өрістерді пайдаланыңыз.
- Жаңа бағдарламаны немесе сәйкестендіру саясатын тіркеу, клиенттерді көшіру және жаңа түсімдер ағылған кезде ескі саясатты өшіру арқылы айналдырыңыз.