Ana içeriğe geç

İspat zinciri

Alan adları toplu hâlde kaydedilir. Her toplu iş yaklaşık 10 dakika bekler. Her toplu iş bir ispat üretir. Bu ispatlar, başlangıçtan itibaren bir durum geçişleri zinciri oluşturur:

genesis_root (empty tree -- known constant)
| +-- "richard.pivx" registered at block 100,
| +-- "john.pivx" registered at block 110,
| ... (could be more registration/update commands)
| ! Proof 1 is generated
| old_root = genesis_root --> new_root_1
| +-- "richard.pivx" put his name on marketplace at block 200,
| +-- "sam.pivx" registered at block 250,
| ... (could be more registration/update commands)
| ! Proof 2 is generated
| old_root = new_root_1 --> new_root_2 (= current root)

Her ispatın old_root değeri, bir önceki ispatın new_root değerine eşit olmalıdır. İlk ispatın old_root değeri ise bilinen başlangıç köküne (boş bir seyrek Merkle ağacına) eşit olmalıdır.

Zinciri doğrulama

Bir doğrulayıcı, tüm kayıt geçmişini beş adımda denetler:

  1. SP1 doğrulama anahtarını alın — misafir program ikilisinden deterministik biçimde türetilir
  2. API'den tüm ispatları indirin
  3. Bu doğrulama anahtarıyla her SP1 ispatını doğrulayın
  4. Zinciri denetleyingenesis == P1.old_root, P1.new_root == P2.old_root, ..., PN.new_root == current_root
  5. Zincirde örnekleme yapın — taahhüt edilmiş herhangi bir txid değerini bir PIVX düğümünde arayın ve memo, tutar ile bloğun eşleştiğini doğrulayın

Tüm denetimler geçerse tüm kayıt geçmişi doğrudur — indeksleyiciye güvenmek gerekmez.

İspat hattı

Tarayıcı ve ispat üreticisi birbirinden bağımsız çalışır:

PIVX Blockchain
|
PiNS Registrar Scanner (validates, captures SMT state)
|
Database (status: "pending")
|
SP1 Prover (generates ZK proof, verifies it)
|
Database (status: "proved")
|
New checkpoint published
|
Indexer syncs to the checkpoint
|
API Server (GET /v1.0/resolve/{name})

Tarayıcı, ispat üretimini beklerken hiçbir zaman tıkanmaz. Üretici arka plan süreci, bekleyen kayıtları kendisi yoklar ve ayrı bir donanımda çalışabilir.