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

第三者検証ガイド

公開 snapshot に関する注意 bundle.zip の展開と journal.json 完全性チェック(Step 3, 6)はダウンロード済み ZIP のみで実行できます。 verifier-service ビルド・imageId-mapping.json 参照・公開アーティファクト整合・inputCommitment 再計算(Step 2, 4, 7, 8)は、検証対象リリースと対応する公開 repository snapshot が必要です。

この章は、検証ページでダウンロードした bundle.zip を使って、第三者がローカルで行える配布対象アーカイブ単体の最小監査手順をまとめたものです。/verify 画面の最終判定の完全再現ではなく、下表の不変条件を確認することがゴールです。

bundle.zip 単体では揃わないもの(上の callout は手順実行に必要な前提、ここは検証材料そのものとして ZIP に入らないものです):

  • /api/verify が返す claimed tally と verificationChecks / verificationSteps
  • 投票者端末に残る投票意図・乱数・投票レシート
  • 掲示板の包含証明 / 整合性証明
  • 自票 inclusion 用のビットマップ証明
  • 有効化されている場合の第三者 STH ソース照合

これは PoC の設計意図です(配布対象アーカイブ の構成も参照)。

この部に含まれる章

想定読者と前提

  • 想定読者: 配布された bundle.zip を独立にローカル監査したい第三者
  • 前提: Ubuntu 系 Linux と jq / unzip などの基本 CLI、対応する公開リポジトリ snapshot へのアクセス。詳細は はじめに を参照

本章で扱わないもの

  • /verify UI が表示する最終判定の完全再現(包含証明・整合性証明・第三者 STH 照合などはサーバー側でのみ評価される)
  • 投票者端末のローカル証跡(投票意図・乱数・投票レシート)を使った Cast-as-Intended 検証
  • AWS インフラのデプロイ・運用手順
  • 上で扱わない検証材料の一覧は冒頭の「bundle.zip 単体では揃わないもの」も参照

関連する章

この章は bundle.zip のローカル監査に絞ります。範囲外の作業は次のページを参照してください。

最低限確認する不変条件

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