メインコンテンツまでスキップ

プルーフチェーン

ドメインは一括で登録されます。各バッチの待機タイムアウトは約 10 分です。すべてのバッチで 1 つのプルーフが生成されます。これらの証明は、生成からの状態遷移の連鎖を形成します。

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)

各証明の old_root は、前の証明の new_root と等しくなければなりません。最初の証明の old_root は、既知の起源ルート (空のスパース マークル ツリー) と等しくなければなりません。

チェーンの検証

検証者は、次の 5 つのステップで登録履歴全体をチェックします。

  1. SP1 検証キーを取得します -- ゲスト プログラム バイナリから決定的に派生します
  2. API から すべてのプルーフを取得
  3. 検証キーを使用して 各 SP1 プルーフを検証
  4. チェーンを確認します -- genesis == P1.old_rootP1.new_root == P2.old_root、...、PN.new_root == current_root
  5. オンチェーンのスポットチェック -- PIVX ノード上でコミットされた txid を検索し、メモ、値、およびブロックの一致を確認します。

すべてのチェックに合格した場合、登録履歴全体が正しいことになります。インデクサーを信頼する必要はありません。

検証パイプライン

スキャナーとプルーバーは独立して実行されます。

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})

スキャナーは校正刷りの生成をブロックすることはありません。証明者デーモンは保留中のレコードをポーリングし、別のハードウェア上で実行できます。