FastPQ
FastPQ булып тора Iroha Ул - STARK һайлап алынған үтәү эффекттары өсөн иҫбатлау юлы. Ул ғәҙәти транзакция үтәлеше йәки консенсус алмаштыра алмай. Транзакциялар һаман да үтә ISI, IVM, һәм Sumeragi ғәҙәттәгесә; FastPQ детерминистик үтәү шаһиты ҡулланыу һәм тәьмин ителгән эффекттар иҫбатлау партияларына әйләндереү.
Хәҙерге ҡабул итеүсе интеграцияла өс төп юл бар:
- Блоктарҙы үтәү ваҡытында теркәлгән һанлы активтар күсерелеүе
- Nexus иҫбатлау ҡапламаһында AXT бәйләнеше булған FastPQ йүнәлешле эстафета
- SCCP асыҡ хәбәр иҫбатлау ярҙамсылары FastPQ иҫбатлауын асыҡ тикшереү конвертына төрөп ҡуялар
Шаһиттарҙы күсергә
Прозрачные числовые переводы создают структурированный транскрипт передачи, когда инструкция мутирует балансы.
- сығанаҡ иҫәбе, маҡсат иҫәбенә, актив билдәләмәһе һәм сумма
- ебәреүсе менән ҡабул итеүсенең балансы тапшырыу алдынан һәм унан һуң
- транзакцияға инеү нөктәһе хэшиғы партияһы хэшигы булараҡ ҡулланыла
- тапшырыу иҫәбенән алынған хоҡуҡ сығанағы
- бер дельталы транскрипттар өсөн Poseidon дигесты
Партия күсереүҙәрендә бер транскрипт һәм күп кенә дельталар ҡулланыла. Ундай осраҡта бер дельталы Посейдон һеңдереүе юҡ.
Блокты тамамлағанда, Iroha был транскрипттарҙы инеү нөктәһе хэш буйынса төркөмләй. Эксплуатация шаһиты артабан төп транскрипт тупланмаларын һәм провер өсөн әҙерләнгән FastPQ күсеү партияларын алып бара.
Һәр күсереү дельтаһы ике күсеү рәтенә әүерелә:
| Ҡалып | Төп формаһы | Предварительная стоимость | Артабанғы баһа |
|---|---|---|---|
| ебәреүсе дебет | asset/<asset-definition>/<source-account> | ебәреүсе балансы алдынан | ебәреүсе балансы |
| Ҡабул итеүсе кредиты | asset/<asset-definition>/<destination-account> | ҡабул итеүсе балансы алдынан | ҡабул итеүсе балансы |
Санлы ҡиммәттәр тулы һанлы шаһиттар берәмектәренә нормализациялана. Һайланма өсөн FastPQ ҡиммәт кире ҡағыла, әгәр ул һайланған декамал үлсәмдә кире булмаған u64 тип күрһәтелмәй икән.
Йәмәғәт иғәнәләре
Һәр FastPQ күсеү партияһы иҫбатлауҙы блок һәм башҡарыу контексына бәйләүсе йәмәғәт инештәрен йөрөтә:
| Ҡалыптар | Мәғәнәһе |
|---|---|
dsid | Мәғлүмәт биҫтәһе идентификаторы ҙур булмаған байт булып кодлана |
slot | Блоктарҙы төҙөү ваҡыты наносекундтарға үҙгәртелә |
old_root | Ата-әсә дәүләтенең асылы язалауҙағы шаһиттан алынған . |
new_root | Үлем язаһына тарттырылған шаһиттарҙан алынған дәүләт һуҙымы |
perm_root | Посейдондың актив роль өсөн рөхсәт биреүенә бәйле йөкләмәһе |
tx_set_hash | Һәҙерләнгән транзакция һәм ваҡыт-тикшереү инеү нөктәһе хэштегтары өҫтөндә хаш |
Ҡунаҡсы был партиялар өсөн fastpq-lane-balanced каноник параметр билдәләй.
Математик модель
Был бүлектә хәҙерге Rust проверкаһы һәм верификаторы тарафынан тормошҡа ашырылған арифметика һүрәтләнә. Түбәндәге бөтә баҫыу операциялары "Алтын сәскәләр"ҙең төп яланынан үтә:
FastPQ Poseidon2 өҫтөндә ҡулланыла F баҫыу йөкләмәләре өсөн. t = 3, ставкаһы r = 2, һәм ҡеүәте 1. Хаш 2-се типтағы блоктарҙа поле элементтарын һеңдерә һәм бер генә поле элементын ҡуша 1 һуңғы алмаштырыу алдынан:
Байтлы ҡылдар 7 байтлыҡ бәләкәй эндия аяҡтарына төрөнгән, шуға күрә һәр аяҡ p аҫтына ҡуйылған:
Домендар менән айырылған яландар хештары түбәндәгесә күрһәтелә:
FastPQ байт-домен дигестарынан башланған хештар өсөн беренсе һигеҙ бәләкәй андиан байтын майҙанға картаға һала:
Бында Hash - Iroha-ның iroha_crypto::Hash::new 32-байтлы Blake2bVar дигесен аңлата, әгәр формула менән Poseidon2 йәки SHA-256 атамалары асыҡланмаһа.
Майҙан арифметикаһы
Ҡоролтай Rust код таҡта элементтарын каноник тип аңлата u64 ҡиммәттәре [0,p). Өҫтәмә һәм киметеү:
Күсәтеү иң тәүҙә 128-битлы продуктты иҫәпләй:
Goldilocks кәметеү һуңынан идентификация ҡуллана:
Әгәр:
аҙаҡ сикләүсе иҫәпләй:
Реализация шартлы рәүештә p өҫтәй йәки төшөрә, һөҙөмтә каноник булғанға тиклем. Баланс дельтаһы кеүек ҡул ҡуйылған бөтөн һандар түбәндәгеләр менән ҡушыла:
Посейдон2 Пермутацияһы
Посейдон2 пермутацияһы дәүләте:
Уның " С-куробкаһы ":
FastPQ дүрт тулы раунд, илле ете өлөшләтә раунд ҡулланыла, артабан тағы ла дүрт тулы раунд. c_r = (c_{r,0}, c_{r,1}, c_{r,2}) булып тора:
өлөшләтә әйләнәһе:
Бөтә өҫтәмәләр һәм ҡабатлауҙар F. Каноник MDS матрицаһы:
Баҫыу хэшиһы нуль дәүләтенән башлана. һәр тулы ставка-2 блогы өсөн (u,v):
Һуңғы блок 1 тултырыу элементын бер һуңғы алмашыу алдынан ҡуша. Сығарылыш x_0.
Йәмәғәт иғәнәләре менән бәйләнеш
Хост u64 ҡиммәтен 16 байтлы майҙандың тәүге һигеҙ бәләкәй эндиан байтына яҙып, мәғлүмәт киңлеге ID-һын кодлай:
Блоктар барлыҡҡа килтереү ваҡыты миллисекундтарҙан наносекундтарға үҙгәртелә:
Транзакция йыйылмаһы хеш - тарҡатылған инеү нөктәһе хэш өҫтөндә байт-домен хэшигы:
унда h_i sorted transaction and time-trigger entrypoint hashes. асыҡ иҫбатлауҙа IO, әгәр ҙә perm_root йәки tx_set_hash бөтәһе лә нуль булһа, проверл артта ҡалдырыу ҡиммәттәрен тултыра:
Санлы нормализация
Һәр күсереү дельтаһы өсөн маҡсатлы декамаль үлсәм күләменең максималь ҡырҡылған үлсәме һәм ике баланстың ла миҫалдары:
А Numeric mantissa менән ҡиммәт m һәм күләме q ҡабул ителә, тик m >= 0 һәм q <= s. Уның FastPQ Шаһиттар хаҡы:
Нормализацияланған һөҙөмтә u64 составына тура килергә тейеш.
Ҡанунлаштырыу
Тейлек төҙөлөшө алдынан партия күсеү клавишаһы, эксплуатация рейтингы һәм төп индекс буйынса сортировкалана:
Заказ йөкләмәһе булып тора Poseidon2 яланы хэш өҫтөндә домен fastpq:v1:ordering һәм Norito кодлау sorted күсеүҙәр:
унда P - 7-байтлы пакетта, E - Norito кодировкаһы, D_o - fastpq:v1:ordering, һәм T* - сортировкаланған күсеү исемлеге.
Трансфер тигеҙләмәләре
Трансфер өсөн сумма a, ебәреүсе балансы f, һәм ҡабул итеүсе балансы t, FastPQ эҙҙәр төҙөүгә тиклем нормалаштырылған шаһиттар ҡиммәттәрен раҫлай:
Һуңынан күсеү сираттары кодлана:
Эҙләүҙәр эсендә ҡул ҡуйылған дельталар F тип кәметелә:
Факультатив бер дельта күсереү диджеты кодировкалы күсереү преобразованияһын йөкмәтә:
Күп-дельта күсереү транскрипттары өсөн, хәҙерге форматта был юғары кимәлдәге һеңдереү юҡ булырға тейеш.
Трансформация транскрипттары өсөн ҡабул итеүсе хакимиәттең эшкәртеүе:
Эҙләнеү рәттәре
Төрлө күсеү исемлегендә n реаль рәттәре булһын. эҙ оҙонлоғо икеләтә киләһе көсө:
0..n-1 рәттәре әүҙем; n..N-1 рәттәре - ҡаплау рәттәре. Һәр ысын рәттең бер операция һайлаусыһы ҡуйылған:
Һайлаусы бағаналарҙың барыһы ла boolean:
Рөхсәт эҙләү рәттәре ролде биреү һәм ролде юҡҡа сығарыу рәттәре булып тора:
Санлы операциялар рәттәре өсөн:
Төҙөүсе шулай уҡ активҡа ярашлы дельталарҙы күҙәтә:
Бары тик мит һәм яндырыу сираттары ғына тәьмин итеү һанаҡсыһын яңырта:
Метамәғлүмәт һәм мәғлүмәттәр арауығының эҙҙәр колонналары - сират материализацияһынан алда алынған ҡыр һештәре:
Метамәғлүмәттәр хашисы, мәғлүмәт киңлеге хашисы һәм слот күрше эҙҙәр рәттәре буйынса тотороҡло:
Merkle колонналарын күсереү
Трансфер һыҙыҡтарҙа 32 баҫҡыслы һирәк Merkle юлы бар. Әгәр хост иҫбатламаһы юҡ икән, провер рәт төймәһенән детерминистик юлды синтезлай, pre-баланс һәм рәт ебәреүсе йәки ҡабул итеүсе яғынанмы.
Синтетик юлдар өсөн тәмле тоҙ fastpq:smt:from ебәреүсе һәм fastpq:smt:to ҡабул итеүсе рәттәре өсөн:
Синтетик япраҡ һәм эске узелдар түбәндәгеләр:
Эҙләүсе битте яҙҙыра . b_l, ҡустыһы s_l, инеү узелы x_l, һәм сығарыу узелы x_{l+1} һәр кимәлдә. Кодтың тармаҡ конвенцияһы менән:
Рөхсәт хашсылары
Ролдар биреү һәм кире ҡағыу рәттәре рөхсәт шаһиты:
Хост рөхсәте таблицаһы тамыр яҙмаларҙы роль байттары, рөхсәт байттары һәм эпоха байттары буйынса тарата, һуңынан Poseidon2 Merkle ағас төҙөй:
Аҙаҡҡы элементты икеләтә ҡабатлау.
Табынға ҡуйылған талаптар
Һәр эҙҙәр колоннаһы өсөн c, башта FastPQ колонна ҡиммәттәрен эҙҙәр биләмәһе буйынса интерполациялай һәм коэффициент векторын хэшләй:
Табын тамыр - колонна йөкләмәләре өҫтөндә Poseidon2 Merkle тамыр:
Һуңғы эҙләү йөкләмәһе - домен, параметрҙар йыйылмаһы, эҙләү формаһы, бағана һеңдереү һәм эҙләнеү тамырҙары өҫтөндә байт хэши:
унда D_c - fastpq:v1:trace_commitment.
AIR составы
V1 AIR составы ҡиммәте - сират-урындағы ҡалдыҡтарҙың һыҙыҡлы комбинацияһы. Транскрипт өлгөләре ике проблеманы үҙләштерә:
Һәр күрше рәт парҙары өсөн (i,i+1), проверс иҫәпләй:
Ҡалғаны rho код тәртибендә:
Һандарлы бағаналар менән рәт өсөн:
Һәм тотороҡло партия контексты бағаналары өсөн:
Тикшереүсе A_i өлгөһөнә индерелгән рәт киңлектәрен ҡабаттан иҫәпләп сығара һәм уны AIR составындағы Merkle тамыры буйынса йөкмәтелгән композиция ҡиммәте менән тикшерә.
Эҙләү продукты
Рөхсәт эҙләү аккумуляторы Fiat-Shamir проблемаһын ҡуллана gamma. s_perm һәм perm_hash түбән дәрәжәле киңәйтеү баһалары буйынса, эшләнгән продукт:
Дәлилдәр:
Аҫҡы кимәлдә киңәйтеү
omega_T эҙ-домен генераторы, omega_E баһалау домен генераторы һәм g конфигурацияланған косетт компенсацияһы булһын. v_i ҡиммәттәре булған эҙ-доман бағанаһы өсөн интерполяция коэффициенттары бирә a_j:
Түбән дәрәжәле киңәйтеү косеттағы бер үк полиномияны баһалай:
Уны тормошҡа ашырыу коэффициенттарҙы FFT алдынан coset offset ҡеүәттәре менән ҡабатлап иҫәпләй:
һәм артабан a' баһалау өлкәһе буйынса баһа.
Ҡоролтай CPU FFT бит-өсөнсө инеүҙәр өҫтөндә редикс-2 Cooley-Tukey трансформацияһы. L, ярым оҙонлоғо H=L/2, һәм этап тамырҙары:
һәр күбәләк иҫәпләй:
Инверс FFT omega^{-1} менән бер үк трансформацияны үтәй һәм инверс домен күләме буйынса үлсәп ала:
Каталог тамырҙары ҡулланыр алдынан раҫлана:
Каталог тамырынан алынған бәләкәйерәк домендар өсөн генератор:
Ҡалып һәм япраҡ һештары
LDE ҙан һуң, FastPQ һәр рәтте бөтә LDE бағаналары буйлап тарҡата. m бағаналары өсөн:
Әгәр рәт-хаш әле лә баһалау доменында түгел, ә эҙҙәр доменында булһа, провер интерполациялай һәм шул уҡ coset LDE процесы менән бер рәт-хэш бағанаһын киңәйтә.
Меркль асҡыстары
LDE ҡиммәттәре түбәндәге өлөштәргә бүленгән:
Һәр япраҡ киҫәктәре:
Мерклдың ата-әсәһе:
Бер төрлө кимәлдәр һуңғы узелды ҡабатлай. Һорау юлдары һәр кимәлдә һорау япрағы индексы парлығына ярашлы һул йәки уң яҡҡа хэш яһап раҫлана.
i индексындағы япраҡ өсөн, (s_0,\ldots,s_{d-1}) юлы тамырға R ҡаршы ҡабатланыуы менән раҫлана:
Тикшереү бары тик:
AIR эҙҙәр япрағы:
AIR составындағы япраҡтар:
LDE һорауҙы асыу шулай уҡ баһа индексы i буйынса асылған ҡиммәттең үҙенең раҫланған өлөшөндә булыуын тикшерә:
FRI Ҡабатлау
FRI композиция AIR баһаһына йөкмәтелә. һәр раунд өсөн l, транскрипт өлгөһө һынау beta_l. ҡатлам һуңғы ҡиммәтте ҡабатлап, ариттың ҡабатланыусыһына тултырыла.
унда a - FRI арифметикаһы. тикшереүсе, һәр өлгөләге һорауҙар сылбыры өсөн:
һәм һәр асылған FRI төркөмдө тейешле FRI ҡатлам тамырҙары менән раҫлай.
Fiat-Shamir транскрипты
Каноник параметрҙар каталогы транскрипт хешын SHA3-256 тип билдәләй. Хәҙерге проверка һәм верификатор тормошҡа ашырыуы ауырлыҡ байттарын iroha_crypto::Hash::new менән килтерә, был 32-байтлы Blake2bVar дигесте булып тора, һуңынан тәүге һигеҙ бәләкәй андиан байтын F итеп ҡыҫҡара:
Һөжүм саҡырыуҙары транскрипт торошона тулы алмаштырыуҙы ҡуша.
- йәмәғәт IO, протокол версияһы, параметр версияһы һәм параметр исеме
- LDE тамыр һәм эҙ тамырҙары
gamma- AIR составы буйынса һынауҙар
alpha_0,alpha_1 - AIR эҙ тамырҙары һәм AIR композиция тамырҙары
- эҙләү бөйөк продукт
- FRI ҡатлам тамырҙары һәм
beta_lпроблемалары - Һорау индекстары өлгөһө
Һорау сынамаһын алыу 32-байтлы һынау биттәрен һүрәтләй һәм уларҙы һоралған уникаль индекстар һаны булғанға тиклем u64 ҙур булмаған киҫәктәре итеп уҡый:
Үлсәүҙәр йыйылмаһы тартип буйынса ҡайтарыла.
Тикшереүсе ҡабаттан уйнатыу
Тикшереүсе тәүҙә партия буйынса йөкләмәне яңынан иҫәпләй:
һәм талап итә:
Ул шулай уҡ IO йәмәғәтселекте тергеҙеү:
Һәр яланы раҫлауҙың асыҡ IO байт-байт менән тап килергә тейеш. Унан һуң тикшереүсе шул уҡ транскриптты реконструкциялай һәм шул уҡ мәғлүмәтте килтерә:
Һәр өлгө буйынса һорау алыу q өсөн ул:
һәм:
AIR композицияһын асыу R_air_composition аҫтында раҫланырға тейеш. FRI сылбыры шул уҡ A_q менән башлана һәм FRI тамыр аҫтындағы ахырғы FRI битендә тамамланырға кәрәк.
Ғәйбәтселәр нимә тикшерә
FastPQ провери эҙләүҙе төҙөүҙән алда партия тәртибен күсеү төйөнсәһе, операция рангы һәм индереү тәртибе буйынса канонизациялай. Трансфер рәттәре шулай уҡ транскрипт метамәғлүмәттәрен талап итә. Трансфера рәттәре булған партия, әммә трансфер транскрипттары юҡ.
Трансфер транскрипттары өсөн, провер-бәйләнештәге тикшереүҙәр түбәндәгеләрҙе үҙ эсенә ала:
- ебәреүсе балансы түбәнгә ағып сыҡмаҫ
sender_afterменән тигеҙ булырға тейешsender_before - amountreceiver_afterменән тигеҙ булырға тейешreceiver_before + amount- транскрипт партиялағы һәр күсереү рәтенә ҡағылырға тейеш
- бер дельталы Посейдон һеңдереүсе, әгәр бар булһа, транскрипт преобразы менән тап килергә тейеш.
- Бер аҙ-Меркл иҫбатлауҙар версия 1 тип декодланырға тейеш; юғалған юлдары детерминистик синтетик иҫбатламалар менән тултырыла
Трейсҡа күсереү, минет, яндырыу, роль биреү, ролде юҡҡа сығарыу, метамәғлүмәттәр йыйылмаһы һәм рөхсәт эҙләү рәттәре өсөн һайлап алыу бағаналары инә. Официальный сайт Санлы операциялар рәттәре шулай уҡ ҡул ҡуйылған дельталар, актив буйынса дельталар һәм тәьмин итеү счетсылары алып бара.
Проверка Лейн
irohad башланғыс ваҡытта FastPQ провер лентаһын башлай, әгәр провер бэкэндаһы инициациялана алһа. Лен - сикләнгән сиратлы фоновой эш. Блок башҡарғандан һуң бойондороҡлау юлы блок хэшигы, бейеклеге, ҡарашы һәм шаһиты булған провер заданиеһын тапшыра.
Әгәр ҙә юл хәрәкәте туҡтап ҡалһа йәки сират тулы булһа, эштән ситтә ҡала һәм ғәҙәти блок эшкәртеү дауам итә. Тимәк, фоновый провер леняһы транзакция ҡабул итеү йәки консенсус ҡапҡаһы түгел. Был инде ғәмәлгә ашырылған дәүләт буйынса иҫбатлау-производство юлы.
Юл проверкаһын төҙөй:
parameter = "fastpq-lane-balanced"
execution_mode = auto | cpu | gpu
poseidon_mode = auto | cpu | gpuauto проверкаға доступлы бэк-энд һайларға мөмкинлек бирә. cpu пинҙар менән башҡарыу CPU өҫтөнлөк итә. gpu GPU үтәлеүен хуплай, ә CPU фалб-эксплуатацияһы өсөн талап ителгән ядролар ҡулланылмай.
Тикшереү
FastPQ иҫбатлау верификацияһы каноник партия йөкләмәһен ҡайтанан төҙөй һәм асыҡ транскриптты ҡабатлай. Verifier протокол версияһын, параметрҙар ҡуйылған версияны, ҡабаттан уйнатыу сикләүҙәрен, эҙләнеү йөкләмәләрен, йәмәғәт инештәрен, өлгөләтелгән Merkle киңлектәрен, AIR киңлектәрен һәм FRI һорауҙар сылбырын тикшерә.
Үҙенсәлекле ҡабаттан уйнатыу сиктәре:
| Сикләү | Дефолт |
|---|---|
| Переход рәттәре | 256 |
| Партияның файҙалы йөк күләме | 256 KiB |
| FRI ҡатламдар | 16 |
| Һорауҙар | 128 |
Nexus Тикшерелгән эстафеталар
Nexus AXT иҫбатлау конверттарҙа бер AxtFastpqBinding. Ҡасан RegisterVerifiedLaneRelay үтәй, Iroha:
- юл эстафетаһы конвертын һәм FastPQ иҫбатлау материалын тикшерә.
- мәғлүмәттәр арауығын һәм манифест тамырын тикшерә
- AXT иҫбатлау конвертын декодлай
fastpq_bindingталап итә- FastPQ партияһын ошо бәйләүҙән ҡайтанан төҙөй
- FastPQ индерелгән иҫбатлауҙы декодлай
- FastPQ тикшереүсеһен яңынан төҙөлгән партия һәм иҫбатлау буйынса саҡыра
Әгәр раҫлау уңышлы булһа, Iroha VerifiedLaneRelayRecord эстафетаға һылтанма, оригиналь конверт, иҫбатлау йөкләмәһе хэшигы, тикшереү бейеклеге, манифст тамыры һәм FastPQ бәйләнеше булған [PH000000) ] һаҡлай.
Йөҙәк эстафетаһында шулай уҡ компактлы FastPQ иҫбатлау материалы бар. Материал - юл идентификаторы, мәғлүмәт киңлеге идентификаторы, блок бейеклеге, раҫлау бейеклектәре, блок башлыҡтары хэшигы, иҫәпләү хэшиғы һәм манифест тамырҙары өҫтөндә эшкәртеү. QC һәм FastPQ иҫбатлау материалына эйә булған осраҡта ғына эстафета берләшергә рөхсәт ителә.
AXT Математика бәйләүсе
өсөн Nexus AXT конверттар, AxtFastpqBinding иҫбатлау ҡабатландырыу алдынан canonicalized. буш параметр ҡағиҙәләре fastpq-lane-balanced; буш верификатор ID һәм версияһы ҡалып буйынса fastpq һәм v1; заявка тибы ҡыҫҡартылған һәм түбән ҡатламға һалынған.
AXT FastPQ асыҡ инеүҙәр - детерминистик байт хэштәре:
AXT күсеү асҡыстары:
authorization заявкаһында "Ролль гранты" рәтенә индерелгән:
compliance заявкаһы ике метамәғлүмәт рәтенә индерелә: береһе - сәйәсәт өсөн һәм икенсеһе маҡсатлы мәғлүмәт майҙансыҡтары өсөн.
tx_predicate һәм value_conservation өсөн, бәйләнеш ыңғай сығанаҡ йәки маҡсатлы күләмгә эйә булған осраҡта, асыҡ эффект күләме ҡулланыла. Юғиһә код сикләнгән детерминистик күләмде ала.
Унан һуң бер үк күсереү тигеҙләмәләре ҡулланыла:
Синтетик ебәреүсе һәм ҡабул итеүсе иҫәбенең идентификаторҙары төп орлоҡтарҙан барлыҡҡа килә:
Трансфер партияһы хэшиғы:
AXT партияһы манифестаты SHA-256 каноник бәйләнештең Norito кодировкаһы өҫтөндә:
SCCP Асыҡ хәбәр иҫбатлауҙары
SCCP ярҙамсы һандығында шулай уҡ транспарентлы селтәр аша хәбәрҙәр иҫбатлау өсөн FastPQ ҡулланыла. Был юл irohad фоновой провер лентаһынан айырылып тора. Ул FastPQ партияһын туранан-тура SCCP хәбәр иҫбатлау төрөнән һәм манифестан төҙөй, һуңынан һөҙөмтәле иҫбатлауҙы асыҡ тикшереү өсөн уратып ала.
SCCP партияһы fastpq-lane-balanced һәм өс метамәғлүмәт күсеүҙәр ҡуллана:
| Ключ | Операция |
|---|---|
sccp:transparent:v1:statement | MetaSet |
sccp:transparent:v1:context | MetaSet |
sccp:transparent:v1:payload | MetaSet |
Уның асыҡ инеүҙәре SCCP үтә күренмәле эске иҫбатлауҙан алынған:
| FastPQ инеү | SCCP сығанағы |
|---|---|
dsid | Тәүге 16 байт Блейк2б һеңдереүе белдереүҙең hash өҫтөндә |
slot | Финаллылыҡ бейеклеге |
old_root | Файҙалы йөкләмә |
new_root | Вазифалы булыу |
perm_root | Оҙаҡлатыу блогы хэш |
tx_set_hash | Мәғлүмәт хашисы |
SCCP каноник кодерҙар тулы һандарҙы аҙ ендәргә яҙып, үҙгәреүсән оҙонлоҡтағы байт массивтарын түбәндәгесә кодлай:
Асыҡ инеү байты штригы:
Прозрачные заявление байты - версиялар, сылбыр ғаиләһе, локаль һәм контрагент домендары, хәүефһеҙлек моделе, якорь идаралығы, иҫәп кодэгы, финаллыҡ моделе, верификатор маҡсаты, верификаторының бэкэнд ғаиләһе, оҙонлоҡтағы префиксированный сылбыр / бэкэнд / манифест ҡырҙары, тәғәйенләнешен бәйләү хэши; аккаунт кодек клавишаһы, файҙалы йөкләмә төрө, йәмәғәт инеү байттары һәм файҙалы йөкләнеш хеш.
Был иҫбатлау юлы өсөн FastPQ мәғлүмәттәр арауығы ID-һы икенсе префиксациялы Blake2b дигесенең тәүге ун алты байты:
SCCP FastPQ партияһы:
Һуңынан шул уҡ FastPQ команда ҡағиҙәһе буйынса һайлана.
OpenVerify верификатор йөкләмәһе SHA-256 өҫтөндә SCCP хәбәр артында исем һәм каноник FastPQ верификатор һүрәтләүсе:
Үҫемлек FastPQ иҫбатлау Norito-электрон системаһына индерелгән StarkFriOpenProofV1, һуңынан уны OpenVerifyEnvelope арҡыры менән Stark. SCCP тикшереү яңынан шул уҡ төҙөй FastPQ пакет һәм манифесттан партия, асыҡ тикшереү конверт метамәғлүмәттәрен тикшерә, һәм саҡыра FastPQ яңынан төҙөлгән партия һәм иҫбатлау буйынса тикшереүсе.
Параметрҙар йыйылмаһы
Каноник параметрҙар каталогы ике параметр йыйылмаһын асыҡлай. Хәҙерге ваҡытта fastpq-lane-balanced ҡулланыла.
| Параметр | Маҡсат | Баҫыу | Һеш | FRI |
|---|---|---|---|---|
fastpq-lane-balanced | теүәл тәьмин итеү сығымдары | Goldilocks квадратик киңәйтеү | Poseidon2 йөкләмәләре, каталог SHA3 билдәһе | 8‐се бүлек, 8‐се этап, 46 һорау |
fastpq-lane-latency | кисектереүсән юлдар | Goldilocks квадратик киңәйтеү | Poseidon2 йөкләмәләре, каталог SHA3 билдәһе | Арита 16, взрыв, 16, 34 һорау |
Икеһе лә 128-битлы хәүефһеҙлекте маҡсат итеп ҡуя һәм 2^16 күләмен ҡуллана. Rust V1 транскрипты ҡабаттан уйнатыу коды әлеге ваҡытта SHA3-256 менән Fiat-Shamir һынау байттарын туранан-тура саҡырыу урынына, iroha_crypto::Hash::new менән килтерә.
Rust проверкаһы ҡулланған теүәл каталог константалары:
| Даими | fastpq-lane-balanced | fastpq-lane-latency |
|---|---|---|
target_security | 128 | 128 |
grinding_bits | 23 | 21 |
trace_log_size | 16 | 16 |
trace_root | 0x002a247f81c6f850 | 0x6a9f4eb38fb9b892 |
lde_log_size | 19 | 20 |
lde_root | 0x60263388dbbf9b2a | 0x9c9c3a571b6f89ac |
permutation_size | 65,536 | 65,536 |
lookup_log_size | 19 | 20 |
omega_coset | 0x6af325e825ad5c18 | 0x3a5fd4171e3c3a4d |
fri_arity | 8 | 16 |
fri_blowup | 8 | 16 |
fri_max_reductions | 8 | 6 |
fri_queries | 46 | 34 |
Конфигурация
FastPQ конфигурацияһы zk.fastpq аҫтында ҡуйылған.
[zk.fastpq]
execution_mode = "auto"
poseidon_mode = "auto"
# Optional telemetry labels.
device_class = "apple-m4"
chip_family = "m4"
gpu_kind = "integrated"
# Optional Metal backend tuning.
metal_queue_fanout = 3
metal_queue_column_threshold = 24
metal_max_in_flight = 5
metal_threadgroup_width = 128
metal_trace = false
metal_debug_enum = false
metal_debug_fused = falseШул уҡ үтәү һәм телеметрия этикеттарын irohad аша кире ҡағырға мөмкин:
irohad --fastpq-execution-mode auto
irohad --fastpq-poseidon-mode cpu
irohad --fastpq-device-class apple-m4
irohad --fastpq-chip-family m4
irohad --fastpq-gpu-kind integratedКонфигурация майҙансыҡтары өсөн тирә-яҡ мөхит үҙгәреүсәндәре лә ярҙам ителә. FastPQ‐ҡа ярашлы үҙгәреүсәндәр:
FASTPQ_EXECUTION_MODEFASTPQ_POSEIDON_MODEFASTPQ_DEVICE_CLASSFASTPQ_CHIP_FAMILYFASTPQ_GPU_KINDFASTPQ_METAL_QUEUE_FANOUTFASTPQ_METAL_COLUMN_THRESHOLDFASTPQ_METAL_MAX_IN_FLIGHTFASTPQ_METAL_THREADGROUPFASTPQ_METAL_TRACEFASTPQ_DEBUG_METAL_ENUMFASTPQ_DEBUG_FUSED
Статистика
Телеметрия булдырылған саҡта, FastPQ Backend һайлап алыу өсөн метрикалар экспорты һәм Металл йүгереү тәртибе:
| Метрик | Мәғәнәһе |
|---|---|
fastpq_execution_mode_total | Заказ ителгән һәм хәл ителгән башҡарыу режимы арттағы һәм ҡулайлама этикеткалары буйынса |
fastpq_poseidon_pipeline_total | Посейдон торбаһы юлы буйынса һоралған һәм хәл ителгән |
fastpq_metal_queue_depth | Металл сират сиктәре, максималь осоу иҫәбе, ебәреү иҫәбе һәм үлсәм алыу тәҙрәһе |
fastpq_metal_queue_ratio | Металл сираттағы мәшғүллек һәм ҡапма-ҡаршылыҡ нисбәттәре |
fastpq_zero_fill_duration_ms | Металл йүгереүҙәр өсөн тулыландырыу ваҡыты |
fastpq_zero_fill_bandwidth_gbps | Асылған нуль тултырыу диапазоны |
Дөйөм күрһәткестәргә ҡарап, уларҙы Эшмәкәрлек һәм үлсәүҙәр бүлегендә күрһәтелгән консенсус һәм сират сигналдары менән ҡулланығыҙ.
Үзара бәйләнешле һылтанма
- Мәғлүмәт моделе схемаһы генерирулған тип мәғлүмәттәре өсөн
FastpqTransitionBatchFastpqPublicInputsTransferTranscriptAxtFastpqBindingLaneFastpqProofMaterialirohadFastPQ варианттары