FastPQ
FastPQ seçilmiş icra effektləri üçün Iroha'ın STARK sübut yoludır. Normal əməliyyat icrasını və ya konsensusunu əvəz etmir. Əməliyyatlar hələ də normal olaraq ISI, IVM və Sumeragi vasitəsilə aparılır; FastPQ deterministik icra şahidini istehlak edir və dəstəklənmiş təsirləri sübut partiyalarına çevirir.
Hal-hazırda aparıcı inteqrasiya üçün üç əsas yol var:
- Blok icrası zamanı qeydə alınmış şəffaf rəqəmli aktiv köçürülməsi
- AXT sübut qovusunda FastPQ bağlayıcı olan Nexus təsdiqlənmiş zolaq relələri
- SCCP açıq yoxlama zarfında bir FastPQ sübutu əhatə edən şəffaf mesajı təsdiqləyən köməkçilər
Şahidlik yolunun köçürülməsi
Şəffaf rəqəmsal köçürmələr göstərici balansları mutasiya edərkən strukturlaşdırılmış köçürmə transkriptini yaratır.
- mənbə hesabı, hədəf hesabı, aktivlərin təyinatı və məbləği
- ötürülmədən əvvəl və sonra göndərən və qəbul edənlərin balansları
- Satış giriş nöqtəsi hash kimi istifadə edilən hash
- təqdim olunan hesabdan alınan səlahiyyətli şəxslər siyahısı
- Single-delta transkripsiyaları üçün bir Poseidon digest
Satış transferləri bir transkriptdən ibarətdir, bu halda Poseydonun tək-deltalı həzminin olmaması mümkündür.
Block finallaşdırıldıqda, Iroha bu transkripsiyaları giriş nöqtəsi hash ilə qruplaşır. İcraçı şahid sonra həm orijinal transkript paketlərini, həm də prover üçün hazırlanmış FastPQ keçid partiyalarını daşıyır.
Hər bir transfer delta iki keçid xətti olur:
| Sətir | Əsas forma | Əvvəlki qiymət | Qiymətdən sonra |
|---|---|---|---|
| Göndəricilərin ödənişi | asset/<asset-definition>/<source-account> | göndəricinin balansı əvvəl | göndərən balansdan sonra |
| Alıcı kreditləri | asset/<asset-definition>/<destination-account> | əvvəlki alıcı balansı | receiver balansı |
Rəqəmsal dəyərlər tam say şahid vahidlərinə normallaşdırılır. Seçilmiş onluq miqyasında mənfi olmayan u64 olaraq təmsil edilə bilmədiyi təqdirdə bir qiymət FastPQ seriyası üçün rədd edilir.
İctimai girişlər
Hər bir FastPQ keçid partiyasında sübutun blok və icra kontekstinə bağlanmasını təmin edən ictimai girişlər var:
| Giriş | Məna |
|---|---|
dsid | Məlumat sahəsinin identifikatoru kiçik bayt kimi kodlanmışdır |
slot | Block yaratma vaxtı nanosecondlara çevrildi |
old_root | Valideyn dövlətinin kökü icra şahidindən alınmışdır . |
new_root | Dövlətdən sonra işgəncə şahidindən alınan kök . |
perm_root | Poseidonun aktiv rol icazələri ilə bağlı öhdəliyi |
tx_set_hash | İşləmə və giriş nöqtələrinin hashləri üçün vaxt aktivləşdirilməsi . |
Ev sahibi bu partiyalar üçün fastpq-lane-balanced kanonik parametr olaraq istifadə edir.
Riyaziyyat modeli
Bu bölmədə mövcud Rust proveri və təsdiqçisi tərəfindən tətbiq olunan aritmetika təsvir olunur. Aşağıdakı bütün sahə əməliyyatları Goldilocks ilk sahəsi üzərindədir:
FastPQ sahə öhdəlikləri üçün Poseidon2-dən F istifadə edir. süngerin eni t = 3, dərəcəsi r = 2 və qabiliyyəti 1 var. Haş-2 bloklarında sahə elementlərini ələ alır və son permutasiyadan əvvəl bir sahə elementi 1 əlavə edir:
Bayt silsilələri 7 bayt kiçik ədəd ədədlərinə paketlənir, belə ki hər bir ədəd p -dən aşağıdır:
Domen bölünmüş sahə hashləri aşağıdakı kimi təmsil olunur:
Byte-domain digestlərindən başlayan hashlər üçün, FastPQ ilk səkkiz kiçik indian bytesini sahəyə xəritələyir:
Burada Hash Iroha-nin iroha_crypto::Hash::new 32-bayt Blake2bVar digestini ifadə edir, əgər formula açıq şəkildə Poseidon2 və ya SHA-256 adlarını göstərməsə.
Sahə aritmetikası
Rust kodu sahə elementlərini [0,p) kanonik u64 dəyərləri kimi təmsil edir. Əlavə və azalma aşağıdakılardır:
Əksiləmə əvvəlcə 128 bit məhsulu hesablayır:
Goldilocks azaldılması sonra kimliyi istifadə edir:
Əgər:
O zaman azaldıcı hesablayır:
Əməliyyat şərti olaraq p əlavə və ya çıxarır, nəticə kanonik olana qədər. İmzalanmış tam rəqəmlər, məsələn balans deltaları:
Poseidon2 Permutasiyası
Poseidon2 permutasiyasının vəziyyəti belədir:
Onun "S-box"u:
FastPQ dörd tam mərhələ, 57 qismli mərhələ və sonra daha 4 tam mərhələnin istifadə edilməsi. c_r = (c_{r,0}, c_{r,1}, c_{r,2}) aşağıdakılardır:
Ayrı mərhələ:
Bütün əlavələr və qatlamalar F ilədir. Kanonik MDS matris:
sahə hash sıfır vəziyyətdən başlayır. hər tam dərəcə-2 blok üçün (u,v):
Son blok 1 döşəmə elementini son bir dəyişiklikdən əvvəl əlavə edir. Nəticə x_0.
İctimaiyyət girişinin bağlanması
Ev sahibi u64 dəyərini 16-bayt sahəsinin ilk səkkiz kiçik indian baytlarına yazaraq məlumat məkanı idini kodlayır:
Blokun yaradılması vaxtı millisekundlardan nanosekundlara çevrilmişdir:
Transaction-set hash sıralanmış giriş nöqtəsi hashləri üzərində byte-domain hashidir:
h_i sıralanmış əməliyyat və vaxt tetikləyici giriş nöqtəsi hashləri olduğu yerdə. İctimai sübutda IO, əgər perm_root və ya tx_set_hash hamısı sıfırdırsa, prover geri dönüş dəyərlərini doldurur:
Rəqəmsal normallaşdırma
Hər bir transfer deltası üçün hədəf onluq miqdarı məbləğin və hər iki balans sürətləndirilməsi üzrə maksimum kəsilmiş miqdardır:
A Numeric mantissa ilə qiymət m və ölçüsü q yalnız qəbul edilir m >= 0 və q <= s. Onun FastPQ şahid dəyəri:
Normallaşdırılmış nəticə u64 ilə uyğunlaşmalıdır.
Kanonik əmrlər
İzləmə quruluşundan əvvəl partiya keçid açarı, əməliyyat rütbəsi və orijinal yerləşdirmə indeksinə görə sıralanır:
S sortlama öhdəliyi, fastpq:v1:ordering domeninin və Norito sıralanmış keçidlərin kodlaşdırılması üzərində Poseidon2 sahə hashidir:
P 7 baytlıq paketləşmə, E Norito kodlaşması, D_o fastpq:v1:ordering və T* sıralanmış keçid siyahısı olduğu yerlərdə.
Transfer tənlikləri
Transfer məbləği üçün a, göndəricinin balansı f, və alıcı balansı t, FastPQ izini qurmadan əvvəl normallaşdırılmış şahid dəyərlərini təsdiqləyir:
O zaman keçid sıraları kodlaşdırılır:
Ardından, imzalanmış delta F olaraq azaltılır:
Qeyri-müəyyən single-delta transfer digest kodlaşdırılmış köçürülmə preimage edir:
Mülti-delta köçürmə transkripsiyaları üçün mövcud formatda bu ən yüksək səviyyəli məzmunun olmaması tələb olunur.
Ödəniş transkripsiyaları üçün ev sahibi səlahiyyətli şəxslər aşağıdakılardır:
İzləmə sıraları
Sortlaşdırılmış keçid siyahısında real sıralar n olsun.
0..n-1 sətirləri aktivdir; n..N-1 sətirləri doldurma sətiridir. Hər real sətirdə bir əməliyyat seçicisi seti vardır:
Bütün seçicisi sütunları Boolean:
İzin axtarış sətirləri rol verilməsi və rol ləğv edilməsi sətiridir:
Rəqəmli əməliyyat sətirləri üçün:
İnşaatçı həmçinin hər aktiv üçün işləyən deltaları izləyir:
Yalnız mint və yanma sıraları təchizat hesabını yeniləyir:
Metadata və məlumat məkanının iz sütunları sətir materiallaşmadan əvvəl alınan sahə hashləridir:
Metadata hash, məlumat məkanı hash və boşluq bitişik iz sıralarında sabitdir:
Merkle sütunlarını köçürmək
Transfer sətirləri 32 səviyyəli nadir Merkle yolunu daşıyır. Əgər bir host sübutı yoxdursa, prover sətir açarından, pre-balansdan və sətirin göndərən və ya qəbul edən tərəfdən olub olmadığını müəyyənləşdirən bir yolun sintezini aparır.
Sentetik yollar üçün ləzzət duzları fastpq:smt:from göndərən sətirlər və fastpq:smt:to qəbul edən sətirlər üçün:
Sentetik yarpaq və daxili düyünlər aşağıdakılardır:
İz bitini qeyd edir. b_l, qardaşı s_l, Giriş nodu x_l, və çıxış dərəcəsi x_{l+1} Kodun şöbə konvensiyası ilə:
Rəsmi hashlar
Rolu verilən və ləğv olunan sətirlər icazə şahidini hash edir:
Qonaq icazəsi cədvəlinin kökü girişləri rol baytları, icazə baytları və epox baytları üzrə sıralayır, sonra Poseidon2 Merkle ağacını qurur:
Odd-width səviyyələri son elementini təkrarlayır.
İzləmə öhdəliyi
Hər bir iz sütunu üçün c, FastPQ əvvəlcə iz domeni üzərində sütun dəyərlərini interpolayır və koefitsiyent vektorunu hash edir:
İz kökləri sütun öhdəlikləri üzərində Poseidon2 Merkle köküdür:
Son izləmə öhdəliyi domen, parametrlər dəstinin, iz şəklinin, sütun həzmlərinin və iz kökünün üzərində bir bayt hashidir:
D_c - fastpq:v1:trace_commitment olduğu yerdə.
AIR tərkibi
V1 AIR tərkibi qiyməti sətir lokal qalıqların xətti bir kombinasiyadır. Transkript nümunələri iki çətinlik çəkir:
Hər bir qonşu sıra cütlüyü üçün (i,i+1), prover hesablayır:
Qalanlar rho, kod sırası ilə:
Rəqəmli sütunlu sətirlər üçün:
Və sabit partiya kontekst sütunları üçün:
Təyinatçı A_i nümunə alınan sətir açılışları üçün yenidən hesablayır və onu AIR tərkibi Merkle kökü ilə öhdəlik götürən kompozisiya dəyəri ilə müqayisə edir.
axtarış məhsulu
Rəsmi axtarış akkumulyatorunda Fiat-Shamir çətinliyi gamma istifadə olunur. s_perm və perm_hash nisbətən aşağı dərəcəli uzantı qiymətləndirmələri zamanı, işləyən məhsul:
Əldə edilən sənədlər:
Düşük dərəcəli genişlənmə
omega_T iz domeninin generatoru, omega_E qiymətləndirmə domeninin jeneratoru və g konfiqurasiyalı coset offseti olsun. v_i dəyərləri olan iz sütunu üçün interpolassiya a_j koeffitsiyentlərini belə verir:
Aşağı dərəcəli uzantı kosetdə eyni polinomiyanı qiymətləndirir:
Tədbir bunu FFT əvvəllər koset kompensasiyasının səlahiyyətləri ilə koefitsiyentlərin qatılması ilə hesablayır:
və sonra qiymətləndirmə sahəsində a' qiymətləndirilməsi.
İndiki CPU FFT bit-inversed giriş üzərində bir iterativ radix-2 Cooley-Tukey transformasıdır. L, Yarım uzunluq H=L/2, və mərhələ kök:
Hər bir kəpənək hesablayır:
Əksinə FFT omega^{-1} ilə eyni transformasiyanı həyata keçirir və əks domen ölçüsünə görə ölçelir:
Kataloq kökləri istifadədən əvvəl təsdiqlənir:
Kataloq kökündən alınan daha kiçik domenlər üçün generator:
Sətir və yarpaq həşləri
LDE-dən sonra, FastPQ bütün LDE sütunlarında hər bir satırı hash edir. m sütunları üçün:
Əgər sətir hashləri qiymətləndirmə sahəsi əvəzinə iz domenindədirsə, prover eyni coset LDE prosesi ilə həmin tək sətir-hash sütununu interpolasiya edir və uzadır.
Merkle açılışları
LDE qiymətləri aşağıdakı hissələrə bölünür:
Hər bir parça yarpaq:
Merkle valideynləri:
Odd səviyyələr son nodu təkrarlayır. Sorğu yolları hər bir səviyyədə sorğunun yarpaq indeksinin paritəsinə görə sol və ya sağ hashlə yoxlanılır.
İndeksdə olan bir yarpaq üçün i, bir yol (s_0,\ldots,s_{d-1}) təkrarlanma ilə köklə R müqayisədə yoxlanır:
Çek yalnız aşağıdakı hallarda qəbul edilir:
AIR iz xəttinin yarpaqları:
AIR tərkibi olan yarpaqlar:
LDE sorğusunun açılışı həmçinin qiymətləndirmə indeksində i açılan dəyərin təsdiqlənmiş hissəsində olduğunu yoxlayır:
FRI Dəyişdirilməsi
FRI öhdəsindən gəlir AIR tərkibi qiymətləndirmələr. l, transkripsiya nümunələri bir çətinlik beta_l. Döş qatı son qiyməti təkrarlayaraq aritənin bir dəfəsinə qədər doldurulur.
a FRI ariti olduğu yerdə. təsdiqləyici hər bir nümunə götürülmüş sorğu zəncirinə görə yoxlayır ki,
və hər açılan FRI qrupunu müvafiq FRI qat kökündən təsdiqləyir.
Fiat-Shamir transkripti
Kanonik parametrlər kataloqu transkript hashini SHA3-256 kimi etiketləyir. Hal-hazırda prov və yoxlayıcı tətbiqi iroha_crypto::Hash::new ilə çağırış baytlarını çıxarır, bu da 32-bayt Blake2bVar digestidir, sonra ilk səkkiz kiçik indian baytını F -ə endirir:
Çətinlik çağırışları transkript vəziyyətinə tam həzm əlavə edin.
- ictimai IO, protokol versiyası, parametr versiyası və parametr adı
- LDE kök və iz kökləri
gamma- AIR tərkibi ilə bağlı çətinliklər
alpha_0,alpha_1 - AIR iz kök və AIR tərkibi kök
- baxış böyük məhsul
- FRI qat kökləri və
beta_lçətinlikləri - nümunə götürülmüş sorğu indeksləri
Sorğu nümunələri tələb olunan unikal indekslərin sayına çatana qədər 32 baytlıq çağırış qruplarını çəkir və onları kiçik həcmli u64 parçalar kimi oxuyur:
nümunə götürülmüş dəst sıralama sırası ilə qaytarılır.
Verifikasiyaçı Yenidən oynat
Verifikatçı ilk növbədə partiya öhdəliklərini yenidən hesablayır:
və tələb edir:
O, həmçinin IO ictimaiyyətinin yenidən qurulmasını təmin edir:
Hər bir sahə sübutun ictimai IO byte-for-byte ilə uyğun olmalıdır. Verifikatçı sonra eyni transkripti yenidən qurur və eyni nəticəni çıxarır:
Hər bir nümunə alınan sorğu üçün q yoxlayır:
və:
AIR kompozisiyasının açılışı R_air_composition altında təsdiqlənməlidir. FRI zəncir daha sonra eyni A_q-dən başlayır və terminal FRI kökünün altındakı təsdiqlənmiş son FRI yarpaqda bitməlidir.
Süleymanın nələri yoxlayır
İzləmə qurmadan əvvəl, FastPQ proveri seriya sifarişini keçid açarı, əməliyyat rütbəsi ilə kanonikləşdirir, və yerləşdirmə sırası. Transfer sıraları da transkripsiya metadata tələb edir. Transfer sətirləri olan, lakin transfer transkripsiyaları olmayan bir partiya etibarsızdır.
Transfer transkripsiyaları üçün verilişdən sonra yoxlamalar aşağıdakıları əhatə edir:
- göndərici balansı aşağı axın etməməlidir.
sender_aftersender_before - amountbərabər olmalıdır.receiver_afterreceiver_before + amountbərabər olmalıdır.- transkript partiyadakı hər bir köçürmə xəttini əhatə etməlidir.
- "Poseidon"un tək-delta dijesinin mövcud olduğu zaman transkriptin əvvəlki görüntüsünə uyğun olmalıdır.
- Qeyri-Merkle sübutları versiya 1 kimi dekodlaşdırılmalıdır; yox olan yollar deterministik sintetik sübutlarla doldurulur.
İz transfer, mint, burn, rol verilməsi, rol ləğvi, metadata seti və icazə axtarış sətirləri üçün seçicilərdən ibarətdir. Rəqəmsal əməliyyat sətirləri də imzalanmış deltaları, hər aktiv üzrə deltaları və təchizat hesablamalarını da əhatə edir.
Prover Lane
irohad start zamanı FastPQ prover zolağını başlayır, əgər prov backend başlanğıclandırıla bilərsə. Lane sərhədlənmiş bir sıra ilə bir arxa plan vəzifəsidir. Bir blok icra şahidini istehsal etdikdən sonra commit yolu blok hash, hündürlük, görünüş və şahidini ehtiva edən prov işini təqdim edir.
Əgər zolaq işləmirsə və ya növbə doludursa, iş buraxılır və normal blok işlənməsi davam edir. Bu o deməkdir ki, arxa plan profer yolu əməliyyat qəbul və ya razılaşma qapısı deyil. Bu, artıq icra olunmuş bir dövlət üzərində sübut-təsərrüfat yoludır.
Şəbəkədə aşağıdakılardan ibarət bir prover qurulur:
parameter = "fastpq-lane-balanced"
execution_mode = auto | cpu | gpu
poseidon_mode = auto | cpu | gpuauto proverə mövcud backend seçməyə imkan verir. cpu pinlərin icrası CPU-dən üstünlük təşkil edir. gpu tələb olunan kernellərdən istifadə edə bilməyən CPU fallback ilə, GPU icrasını üstün tutur.
Verifikasiya
FastPQ sübut yoxlaması kanonik partiya öhdəliyini yenidən qurur və ictimai transkripti əvəz edir. Verifikatçı protokol versiyasını, parametrlər təyin edilmiş versiyanı, yenidən oynatma həddlərini, iz öhdəliyi, ictimai girişləri, nümunəvi Merkle açılışları, AIR açılışları və FRI sorğu zincirini yoxlayır.
Default play limitləri aşağıdakılardır:
| Sərhəd | Default |
|---|---|
| Keçid sıraları | 256 |
| Satış yükünün ölçüsü | 256 KiB |
| FRI qatlar | 16 |
| Sual açılışları | 128 |
Nexus Verifikasiya edilmiş relaylar
Nexus AXT sübut qovşaqları bir AxtFastpqBinding daxil edə bilər. RegisterVerifiedLaneRelay icra edərkən, Iroha:
- Lənət relay qovusunu və FastPQ sübut materialını yoxlayır.
- məlumat sahəsini və manifest kökünü yoxlayır.
- AXT sübut müqaviləsini dekod edir.
fastpq_bindingtələb olunur.- FastPQ partiyasını bu bağdan yenidən qurur.
- əhatə edilmiş FastPQ sübutunu dekodlaşdırır
- Yenidən qurulan partiyanın və sübutun FastPQ yoxlanıcısını çağırır
Verifikasiya uğurlu olarsa, Iroha relye istinadını, orijinal qabığı, sübut pay yükü hashini, verifikasiya hündürlüyünü, manifest kökünü və FastPQ bağlamasını ehtiva edən VerifiedLaneRelayRecord bir [PH000000) saxlayır.
Lane relay zarfları həmçinin kompakt FastPQ sübut materialı daşıyır. Material yol ID, məlumat məkanı id, blok hündürlüyü, yoxlama hündürlüyü, blok başlığı hash, həll hash və manifest kökü üzərində bir həzmdir. Bir relay yalnız QC və etibarlı FastPQ sübut materialına malik olduğu təqdirdə birləşməyə icazə verir.
AXT Məhdudlaşdırıcı riyaziyyat
Nexus AXT zarfları üçün, AxtFastpqBinding sübut yenidən oynamaqdan əvvəl kanonikləşdirilmişdir. Boş parametr dəyərləri standart olaraq fastpq-lane-balanced; boş təsdiqləyici id və versiyası standart olaraq fastpq və v1; iddia növü kəsilmiş və aşağı dərəcəli edilmişdir.
AXT FastPQ ictimaiyyət girişləri deterministik bayt hashləridir:
AXT keçid açarları:
authorization tələbində rolu təmin edən sətir yerləşdirilmişdir:
compliance tələbi iki metadata sətirini daxil edir: birini siyasət üçün və digərini hədəf verilən yerlər üçün.
tx_predicate və value_conservation üçün bağlama müsbət mənbə və ya istiqamət məbləğini ehtiva edirsə, bir açıq təsir məbləği istifadə olunur. Əks halda kod sərhədli müəyyənləşdirici məbləğin alınması:
Sonra eyni köçürmə tənlikləri istifadə olunur:
Sentetik göndərici və alıcı hesabı şəxsiyyətləri açar toxumlardan əldə edilir:
Transfer partiyası hash:
AXT partiya manifestinin həzm edilməsi kanonik bağlamanın SHA-256 kodlaşdırılması üzərindəki Norito
SCCP Şəffaf mesaj sübutları
SCCP köməkçi qutu, şəffaf çarşı silsilə mesajı sübutları üçün də FastPQ istifadə edir. Bu yol irohad arxa plan prowver zolağından ayrıdır. SCCP mesaj sübut qutusundan və manifestindən birbaşa FastPQ partiyasını qurur, sonra nəticələnən sübutı açıq yoxlama üçün bağlayır.
SCCP partiyasında fastpq-lane-balanced və üç metadata keçid istifadə olunur:
| Anahtar | Əməliyyat |
|---|---|
sccp:transparent:v1:statement | MetaSet |
sccp:transparent:v1:context | MetaSet |
sccp:transparent:v1:payload | MetaSet |
Onun ictimai girişləri SCCP şəffaf daxili sübutdan alınır:
| FastPQ giriş | SCCP mənbə |
|---|---|
dsid | Bir Blake2b digestinin ilk 16 baytı hash ifadəsi üzərində . |
slot | Sonluq hündürlüyü |
old_root | Faydalı yük hash |
new_root | Məşğulluq kökü |
perm_root | Son bloklar hash |
tx_set_hash | Bəyanat hash |
SCCP kanonik kodlaşdırıcılar tam rəqəmləri kiçik ədəd yazır və dəyişən uzunluqda olan bayt dizaynlarını aşağıdakı kimi kodlayır:
Şəffaf ictimai giriş bayt silsiləsi aşağıdakılardır:
Şəffaf bəyanat baytları versiya, zəncir ailəsi, yerli və əks tərəflər domenləri, təhlükəsizlik modeli, bağlayıcı idarəetmə, hesab kodeksi, yekunluq modeli, təsdiqçi hədəfi, təsdiqçinin arxası ailəsi, uzunluqda prefiks edilmiş zəncir / arxası / manifest sahələri, məqsədə bağlı hashdir. Hesab kodek açarı, payload növü, ictimai giriş baytları və payload hash.
Bu sübut yolu üçün FastPQ məlumat məkanı id başqa bir prefixed Blake2b digest ilk on altı baytdır:
SCCP FastPQ partiyası tam olaraq:
sonra eyni FastPQ sifariş qaydalarına əsasən sıralanır.
OpenVerify yoxlayıcı öhdəliyi SHA-256 üzərindəki SCCP mesaj arxa məntəqəsi adı və kanonik FastPQ yoxlayıcı təsvirçisi ilə:
Qırmızı FastPQ sübutları Norito-lə StarkFriOpenProofV1 kodlaşdırılır, sonra OpenVerifyEnvelope ilə bir Stark -lə bağlanır. SCCP yoxlaması eyni FastPQ partiyasını qrupdan və manifestdən yenidən qurur, açıq yoxlama qabı metadatalarını yoxlayır, Yenidən qurulmuş partiyanın və sübutun FastPQ yoxlanıcısını çağırır.
Parametrlər dəstləri
Kanonik parametrlər kataloqu iki parametr dəstini açıqlayır. Host prover lane hazırda fastpq-lane-balanced.
| Parametr | Məqsəd | sahə | Haşlar | FRI |
|---|---|---|---|---|
fastpq-lane-balanced | balanslaşdırılmış təchizatçı ötürülməsi | Goldilocks kvadrat uzantısı | Poseidon2 öhdəlikləri, katalog SHA3 etiketi | Arity 8, blowup 8, 46 sorğu |
fastpq-lane-latency | gecikmə həssas yollar | Goldilocks kvadrat uzantısı | Poseidon2 öhdəlikləri, katalog SHA3 etiketi | arity 16, blowup 16, 34 sorğu |
Hər ikisi 128-bit təhlükəsizliyi hədəfləyir və 2^16 ölçülü bir domen ölçüsünü istifadə edir. Rust V1 transkript yenidən oynatma kodu hazırda Fiat-Shamir çağırış baytlarını iroha_crypto::Hash::new ilə çıxarır, əvəzinə birbaşa SHA3-256 çağırır.
Rust proveri tərəfindən istifadə olunan dəqiq kataloq sabitləri:
| Daimi | 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 |
Konfiqurasiya
FastPQ konfigurasiyası zk.fastpq altında yerləşdirilir.
[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 = falseEyni icra və telemetriya etiketləri irohad ilə ləğv edilə bilər:
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 integratedKonfiqurasiya sahələri üçün ətraf mühit dəyişənləri də dəstəklənilir. FastPQ xüsusi dəyişənlər aşağıdakılardır:
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
Metriklər
Telemetriya aktivləşdirildiyi zaman FastPQ arxa plan seçimi və Metal runtime davranışı üçün ölçmələri ixrac edir:
| Metrik | Məna |
|---|---|
fastpq_execution_mode_total | İstənilən və həll olunmuş icra rejimi arxaüstü və cihaz etiketləri ilə |
fastpq_poseidon_pipeline_total | İstənilən və həll edilmiş Poseidon boru kəmərinin yolu |
fastpq_metal_queue_depth | Metal növbənin məhdudluğu, uçuşda maksimum sayım, göndərmə sayı və nümunə götürmə pəncərəsi |
fastpq_metal_queue_ratio | Metal növbəsində məşğul və üst-üstə düşən nisbətlər |
fastpq_zero_fill_duration_ms | Metal işləri üçün sıfır doldurma müddəti |
fastpq_zero_fill_bandwidth_gbps | Null doldurma bant genişliyi |
Ümumi performans triajı üçün Performance və Metrics -də göstərilən konsensus və sıra siqnalları ilə istifadə edin.
Əlaqəli istinad
- Yaradılan növ detalları üçün məlumat modelləri sxemi
FastpqTransitionBatchFastpqPublicInputsTransferTranscriptAxtFastpqBindingLaneFastpqProofMaterialirohadFastPQ variantları