Əmr formatı
Hər zNS əməliyyatı qeydiyyatçının protokol ünvanına göndərilən qorunan ZCash əməliyyatıdır; burada məbləğ ödənişi, memo isə imzalanmış əmri təşkil edir. Hər ikisi eyni notda hərəkət edir, beləliklə niyyət və ödəniş ayrılmaz şəkildə bağlanır — uzlaşdırılacaq ayrıca istinad və ya hesab-faktura yoxdur.
Bu səhifə dəqiq ötürmə formatını təsvir edir. Ona uyğun qurulmuş əmri həm qeydiyyatçı, həm də sıfır bilik sxemi qəbul edəcək.
Quruluş
Bütün əmrlər iki nöqtə ilə ayrılmış ASCII-dir və protokol markeri ilə versiyadan başlayır:
zNS:1:{OP}:{name}:…:{ed25519_pubkey_hex}:…:{nonce}:{signature_hex}
Aradakı sahələr əməliyyatdan asılıdır:
| Əməliyyat | Memo quruluşu | Ödənilən məbləğ |
|---|---|---|
REG qeydiyyat | zNS:1:REG:{name}:{address}:{pubkey}:{nonce}:{sig} | adın uzunluğuna görə qeydiyyat haqqı |
UPD ünvanı dəyiş | zNS:1:UPD:{name}:{address}:{pubkey}:{nonce}:{sig} | dəyişiklik haqqı |
CHG sahibi ötür | zNS:1:CHG:{name}:{new_pubkey}:{nonce}:{sig} | dəyişiklik haqqı |
LST satışa çıxar | zNS:1:LST:{name}:{pubkey}:{price}:{nonce}:{sig} | dəyişiklik haqqı |
ULT satışdan çıxar | zNS:1:ULT:{name}:{pubkey}:{nonce}:{sig} | dəyişiklik haqqı |
BUY al | zNS:1:BUY:{name}:{address}:{pubkey}:{nonce}:{sig} | dəqiq elan qiyməti |
CHG üçün {new_pubkey} — qəbul edən sahibin açarıdır, imzanı isə ötürən sahib atır:
ötürməni təsdiqləyən cari sahibdir.
İmzalanan mesaj
İmza əmri sondakı :{signature} olmadan əhatə edir — yəni markerdən nonce daxil olmaqla hər
şeyi:
zNS:1:REG:richard.zcash:u1…:0101…0101:1780000001
Qaydalar dəqiqdir və onlardan hər hansı birini pozan müştəri sxemin rədd etdiyi imza alır:
pubkey— kiçik hərflərlə hex, 64 simvol.priceyalnızLSTüçün mövcuddur.addressyalnızREG,UPDvəBUYüçün mövcuddur.pricevənonceonluqdur; qabaqda sıfır, işarə və ya doldurma olmadan.- İmza məhz həmin baytlar üzərində Ed25519-dur, hex kodlaşdırmada, 128 simvol.
Yoxlama ciddidir: qeyri-kanonik imzalar və kiçik tərtibli açarlar rədd edilir.
Sahə qaydaları
Ad
| Qayda | Dəyər |
|---|---|
| Simvollar | a-z, 0-9, defis |
| Uzunluq | zona daxil olmaqla 1–64 simvol |
| Registr | yalnız kiçik hərflər — ad kiçik hərflərlə saxlanılır və heş olunur |
| Defislər | əvvəldə deyil, sonda deyil, heç vaxt ardıcıl deyil |
| Zonalar | .zcash, .zec, .private, .secure, .safe |
Etiketi zonadan ayıran dəqiq bir nöqtəyə icazə verilir.
Hədəf ünvan
Adın həll olunduğu ünvan Orchard qəbuledicisi olan mainnet Unified Address olmalıdır. Belə qəbuledicisi olmayan ünvanlar qəbul edilmir.
Səbəb özbaşına deyil, praktikdir: qeydiyyatçı vəsaiti Orchard açar materialı vasitəsilə qəbul edir və ödəyir, bu material isə ZIP 229 əsasında Ironwood hovuzunu da əhatə edir. Orchard qəbuledicisi olmayan ünvana ödəniş etmək mümkün deyil, deməli onu nə geri qaytarmalar, nə də satış gəlirləri üçün istifadə etmək olar.
Ironwood yeni qəbuledici əlavə etmir
Ironwood yeni dəyər hovuzudur, yeni ünvan formatı deyil. Pulqabıları oraya notları köçürür, qəbul ünvanı isə Orchard ünvanı olaraq qalır. Müasir pulqabının Unified Address-i dəyişiksiz işləyir.
Nonce
Nonce — imzaladığınız andakı saniyələrlə Unix vaxt möhürüdür.
- O, həmin ad üçün hazırda qeydə alınmış nonce dəyərindən ciddi şəkildə böyük olmalıdır. Köhnə imzalanmış əmrin təkrar istifadəsinin qarşısını alan məhz budur.
- O, onu daşıyan blokdan 300 saniyədən çox qabağa keçə bilməz; bu ehtiyat adi saat sürüşməsini udur, lakin nonce-un çox uzaq gələcəyə qoyulmasına imkan vermir.
İlk qeydiyyat üçün istənilən cari vaxt möhürü kifayətdir.
Qiymət
Qiyməti yalnız LST daşıyır. O, tam ədəd zatoşi ilə göstərilir (1 ZEC = 100 000 000 zatoşi) və
sıfırdan böyük olmalıdır.
Artıq satışda olan adı yeni qiymətlə təkrar satışa çıxarmaq mümkündür — başqa bir LST göndərin.
Sonuncusu qalib gəlir.
Ölçü məhdudiyyəti
ZCash memo-su tam 512 bayt tutur və bütün əmr ora yerləşməlidir. Sabit hissələr proqnozlaşdırıla bilən yer tutur:
zNS:1:{OP}: … marker, version, operation 11 bytes
{pubkey} 64 hex characters 65 bytes with separator
{nonce} 10 digits today 11 bytes with separator
{signature} 128 hex characters 128 bytes
Ad və hədəf ünvanın bölüşəcəyi təxminən 295 bayt qalır. Bir neçə qəbuledicisi olan Unified Address uzun ola bilər, ona görə çox uzun adla çox uzun ünvan yerləşməyə bilər. Müştərilər bu büdcəni hesablamalı və istifadəçi ödəniş etməzdən əvvəl xəbərdarlıq etməlidir, əməliyyatın sonradan uğursuz olmasına imkan verməməlidir.
Ödəniş
Etibarlılığı memo qədər məbləğ də müəyyən edir:
REGadın uzunluğuna uyğun qeydiyyat haqqını dəqiq ödəməlidir.UPD,CHG,LST,ULTdəyişiklik haqqını dəqiq ödəməlidir.BUYelan qiymətini dəqiq ödəməlidir.
Uzunluq zona nəzərə alınmadan etiketə görə ölçülür: ab.zcash — 2 simvolluq addır.
Az və ya çox ödənilmiş əmr emal olunmur. Əməliyyat və açıq açar oxunaqlıdırsa, məbləğ daxili balansınıza yazılır və çıxarıla bilər — bax: Suallar və cavablar.
Sıra
Əmrlər ZCash-in yaratdığı sıra ilə emal olunur: blok hündürlüyü, sonra blok daxilində əməliyyat indeksi, sonra giriş indeksi. Qeydiyyatçı sıranı seçmir və hər müstəqil indeksləyicinin fərqli kök hesablamasına səbəb olmadan onu dəyişə bilməz.
Rəqabətli əməliyyatlarda — eyni ad üçün iki REG və ya eyni elan üzrə iki BUY — bu sıradakı
birinci əməliyyat qalib gəlir, qalanlarına isə məbləğ daxili balansa qaytarılır.
Addım-addım nümunə
richard.zcash qeydiyyatı:
1. Generate an Ed25519 keypair. The public key is your identity across all your names.
2. Build the message to sign (note: no trailing signature field):
zNS:1:REG:richard.zcash:u1mvnsq85wane…:3757ee1a…a53:1780000001
3. Sign it with the private key; hex-encode the 64-byte signature.
4. Append it to form the memo:
zNS:1:REG:richard.zcash:u1mvnsq85wane…:3757ee1a…a53:1780000001:cfec7a58…04
5. Send a shielded transaction to the registrar address, with that memo, paying the
registration fee for a 7-character name.
Bir neçə dəqiqə ərzində əmr paketə düşür, sübut olunur və lövbərlənir. Bundan sonra
richard.zcash istənilən indeksləyici vasitəsilə həll olunur, həm də özünüz yoxlaya biləcəyiniz
Merkle sübutu ilə birlikdə.