Skip to main content

Ə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əliyyatMemo quruluşuÖdənilən məbləğ
REG qeydiyyatzNS: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ürzNS:1:CHG:{name}:{new_pubkey}:{nonce}:{sig}dəyişiklik haqqı
LST satışa çıxarzNS:1:LST:{name}:{pubkey}:{price}:{nonce}:{sig}dəyişiklik haqqı
ULT satışdan çıxarzNS:1:ULT:{name}:{pubkey}:{nonce}:{sig}dəyişiklik haqqı
BUY alzNS: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:

  • pubkeykiçik hərflərlə hex, 64 simvol.
  • price yalnız LST üçün mövcuddur.
  • address yalnız REG, UPDBUY üçün mövcuddur.
  • pricenonce onluqdur; 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ı

QaydaDəyər
Simvollara-z, 0-9, defis
Uzunluqzona daxil olmaqla 1–64 simvol
Registryalnı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.

tip

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:

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ə.