Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第三者検証ガイド

リポジトリ非公開に関する注意 本リポジトリ(stark-ballot-simulator)は現時点で非公開です。ソースコードへのアクセスが必要な手順(verifier-service のビルド、imageId-mapping.json の参照、election-manifest.json / close-statement.json の整合確認、inputCommitment 再計算)は、リポジトリが公開されるまで実行できません。 ソースコード不要の手順(bundle.zip の展開、journal.json の完全性チェック)は、ダウンロード済みの ZIP のみで実行可能です。

この章は、アプリの検証ページでダウンロードした bundle.zip を使って、第三者がローカルで行える最小監査手順をまとめたものです。

この章の手順だけで /verify 画面の最終判定を完全再現するわけではありません。ここで確認できるのは主に次の 5 点です。

  • receipt.json に対する STARK レシート検証
  • journal.json に対する除外件数・集計整合の確認
  • journal.json に対する totalExpected == treeSize の確認
  • election-manifest.json / close-statement.json の公開監査アーティファクト整合確認
  • public-input.json に対する inputCommitment 再計算

一方で、UI の最終判定に関わる次の材料は bundle.zip 単体では通常そろいません。

  • 掲示板の包含証明 / 整合性証明
  • 自票 inclusion 用のビットマップ証明
  • 有効化されている場合の第三者 STH ソース照合

この章で扱う範囲

  • 検証ページから取得した bundle.zip のローカル検証
  • Ubuntu 環境での Rust セットアップ
  • verifier-service を使った STARK レシート検証
  • journal.json の完全性チェック(excludedSlotstotalExpected など)
  • 公開監査アーティファクト(election-manifest.json / close-statement.json)の整合確認
  • public-input.json に対する inputCommitment 再計算

この章で扱わない範囲

  • アプリケーション本体のビルド・デプロイ
  • AWS インフラや非同期 finalize の運用トラブル対応
  • アプリを一から複製して再現実行するための手順

上記の調査が必要な場合は、次のページを参照してください。

最低限確認する不変条件

項目合格条件
STARK レシートverifier-service verifystatus: "success"
投票の除外有無excludedSlots == 0 かつ missingSlots == 0 かつ invalidPresentedSlots == 0
期待投票数整合totalExpected == treeSize
公開監査アーティファクトelection-manifest.jsonclose-statement.json の自己整合・相互整合が成立
入力整合性inputCommitment の再計算値が journal.json と一致

手順