RAM-LFE
RAM-LFE Random-Access Machine Laconic Function Evaluation тип атала. Iroha, был дөйөм йәшерен функциялар ҡатламы программалар өсөн дәүләт сәйәсәте селтәрҙә, әммә уларҙың баһалау логикаһы, серле, йәки сеймал инеү донъя дәүләтенә яҙылырға тейеш түгел. SORA Nexus идентификатор ағымдары, мәҫәлән шәхси телефон йәки электрон почта эҙләү, һәм шулай уҡ дөйөм булараҡ асылырға мөмкин Torii программаны үтәү ярҙамсыһы, әгәр узел профиле ҡушымтаға ҡараған маршруттарҙы тәьмин итә.
Сылбыр сәйәсәт йөкләмәһе һәм квитанция раҫлау метамәғлүмәттәрен һаҡлай. Резолютор йәки Torii йүгереү ваҡыты йәшерен программаны баһалай, рөхсәт ителгән продукцияны ғына ҡайтарып бирә һәм клиенттарҙың, ярҙам инструменттары йәки бухгалтер инструкциялары теркәлгән сәйәсәткә ҡаршы тикшереп була торған квитанцияны ҡуша.
Исемләү
Исемде бүлеү мөһим:
| Мөрәжәғәтнамә | Мәғәнәһе |
|---|---|
ram_lfe | Тышҡы йәшерен функция абстракцияһы: программа сәйәсәте, йөкләмәләр, үтәү квитанциялары һәм квитанцияларҙы раҫлау режимы. |
BFV | Brakerski/Fan-Vercauteren гомоморф шифрлау схемаһы 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 backend мөһим заманса юлды. Ул аҡса янсыҡтары шифрлаштырылған инеү локаль рәүештә рөхсәт итә, хәл итеүсе транзакцияла асыҡ идентификатор күрмәйенсә баһаларға мөмкинлек бирә. һәм сығанаҡ хэштеген теркәлгән программа сәйәсәте менән бәйләгән квитанцияны кире ҡайтара.
Математика
Был бүлектә ғәмәлгә ашырыу кимәлендәге алгебра хәҙерге RAM-LFE коды тарафынан ҡулланыла. Ул хәүефһеҙлек иҫбатламаһы түгел; ул сәйәсәт, квитанциялар һәм клиенттар килешергә тейеш булған детерминистик транскрипт һәм шифрланған баһалау модели.
Билдәләмә
Алып барыу:
- (H(m)) Iroha
Hash::new(m): Blake2b-32 overm, һуңғы байттың иң әһәмиәтһеҙ бите менән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 |
Политик йөкләмәһе
Политик йөкләмәһе йәмәғәт параметрҙарын һәм йәшерен resolver серҙәрен backend менән бәйләй. Беренсенән, сер айырым йөкмәтелә:
Һуңынан сәйәсәттең тулы транскрипты кодлана:
һәм баҫылған сәйәсәт хэшиғы:
Сылбырҙа PolicyCommitment - был:
Һораулау һөҙөмтәһендә ҡабаттан шул уҡ ҡиммәткә иҫәпләнә. Әгәр ҡабаттан иҫәпләнгән хэш айырылһа, баһалау йөкләмәнең тап килмәүсәнлеге менән уңышһыҙ була.
HKDF-SHA3-512 Арҡысаҡ
hkdf-sha3-512-prf-v1 өсөн сығанаҡ - нормалаштырылған инеүҙең үҙе, әммә үтә күренмәле идентификатор һәм квитанция хэшиғы йәшерен бәйләнештәге PRF сығанаҡтар.
Талаптың транскрипты:
HKDF тоҙ һәм псевдореандум асҡысы:
Прозрачный материал киңәйтелә һәм тарҡала:
Квитанция материалдары шулай уҡ үтә күренмәле идентификаторҙы бәйләй:
Бакинд кире ҡайтарыла:
BFV Пример
BFV - селтәр нигеҙендәге гомоморф шифрлау схемаһы. "Гомоморф" тигәнде аңлата, программа шифрланған ҡиммәттәрҙе өҫтәй һәм ҡабатлай ала һәм, шифрланғас, ябай текст ҡиммәттәре буйынса өҫтәмәләр һәм ҡабатлауҙар яһаған кеүек үк һөҙөмтә ала.
RAM-LFE өсөн, BFV шифрланған инеү механизмы булараҡ ҡулланыла:
- Сумка телефоны йәки электрон почта адресы кеүек шәхси ҡиммәттәрҙе нормализациялай.
- Бухгалтерлыҡ аҡса янсығы байттарҙы бәләкәй тулы һанлы слотҡа әйләндерә.
- Һәр слот резюсерҙың BFV асыҡ асҡысы менән шифрлана.
- Резолюторҙың йүгереү ваҡыты был шифрлы текстар өҫтөндә йәшерен программаны баһалай.
- Уйын ваҡыты йәшерен программа сығанағын ғына шифрламай һәм квитанцияны раҫлай.
BFV тигеҙ һандар арифметикаһы түгел, яҡынса арифметик. Шуға күрә ул идентификатор байт һәм бәләкәй модульле өсөн яҡшыраҡ яраҡлы иҫәпләүҙәргә ҡарағанда, йөҙөү нөктәһе моделе һығымтаһы. Iroha Хәҙерге BFV ҡулланыу, һәр шифрланған слот бер скаляр ҡиммәтле модуль йөрөтә (t), ғәҙәттә байт йәки байт оҙонлоғо яланы. шифрлы текстың үҙендә күпкә ҙурыраҡ бөтөн һандың модуле йәшәй. (q). Аралағы айырма (q) һәм (t) шифрлау һәм гомоморф операциялар индергән шау-шыу өсөн дешифрировка мөмкинлеген бирә.
BFV шифрлы текстың ике полиномия компоненты бар:
Серле асҡыс - тағы бер полиномиаль (s_k). Дешифровка компоненттарын берләштерә.
Әгәр шифрлау тексы дөрөҫ формалаштырылған һәм шау-шыу һаман да етерлек бәләкәй, (v) күләмле ябай текстҡа яҡын. түңәрәкләндереү ябай текст коэффициентын кире ҡайтара (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 backends negacyclic polynomial ring ҡулланыу:
һәм ябай текст ҡулсаһы:
ҡайҙа:
- (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)
Йәмәғәт асҡысы:
Линейкалаштырыу өсөн, let (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 юлдың һәр береһе өсөн йүгереү ваҡыты өлгөләре (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}(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һәм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 менән билдәләнә. Һәр конфигурацияланған программа селтәрҙәге сәйәсәт йөкләмәһенә тап килергә тейеш һәм квитанцияларҙы баһалау һәм раҫлау өсөн кәрәкле ғәмәлгә ашырыу ваҡытын тәьмин итергә тейеш. Идентификатор маршруттары был уҡ ваҡытта эшләй башлай; улар айырым идентификатор-резолютор конфигурацияһы өҫкө йөҙө кәрәкмәй.
Политиканы сылбырҙа теркәү үҙе үк етерлек түгел. маҡсатлы узел шулай уҡ маршрут ғаиләһен асырға тейеш һәм уның тормошҡа ашырыуы көтөлә программалар өсөн тап киләһе ваҡыттағы материалға эйә булырға тейеш.
Оператив ҡарауылдар
- Политикаларҙы теркәгеҙ, асыҡ метамәғлүмәттәрҙе тикшерегеҙ, һуңынан уларҙы әүҙемләшегеҙ.
- Документтарҙан, журналдарҙан, транзакцияларҙан һәм клиенттар төркөмдәренән йәшерен баһалаусы серҙәрен, резолютор ҡултамғалау асҡыстарын һәм BFV серле материалдарҙы һаҡлағыҙ.
- Ябай идентификаторҙарҙы иҫәп-хисап исемдәренә, транзакция метамәғлүмәттәренә, ваҡиғаларға йәки донъя дәүләте майҙансыҡтарына ҡуймағыҙ.
- SDK раҫлаусыны асыҡлағанда, юғары кимәлдәге күрһәтмәләрҙе ебәрер алдынан клиент яғынан квитанцияларҙы тикшерегеҙ.
- Иҫкергән квитанциялар мәңгегә ғәмәлдә булмаҫҡа тейеш булған ваҡыты сыҡҡан баҫыуҙарҙы ҡулланығыҙ.
- Яңы программаны йә идентификатор сәйәсәтен теркәү, клиенттарҙы күсереү һәм иҫке сәйәсәтте яңы квитанциялар сыҡҡандан һуң һүндереү юлы менән әйләнегеҙ.