確認日: 2026-09-09。対象コミット: 07277b86572f12dd67e6458867541dab7d7aad56。
目的・現状
requireAnchorDensity は cp の疎密だけを検査するため、cp がゼロのとき density:null として素通りする。これは signedCheckpoints.ts に明記された現行仕様であり、既存フラグの実装ミスとは区別する。
今回、正しい root token を持つ三イベントの proof から checkpoints を空配列に変更し、次のオプションで full 検証した。
{ mode: 'full', requireRootAnchor: true, requireAnchorDensity: true,
signedCheckpointKeyRegistry: [testKey.registryEntry] }
実測: 総合 valid:true / rootAnchored:true / signedCheckpoints.anchored:false / density:null。
「授業では継続的な時刻証拠も必須」という受理条件を現在の二つのフラグだけでは表現できない。cp の削除で密度ゲートの対象外になる点も運用上明示したい。
内容・修正方針
暗号的整合性と授業ごとの受理判定を分離し、少なくとも署名 cp の存在・最終状態への署名・密度を独立に要求できる設計を決定する。個別フラグでも名前付き policy profile でもよいが、検証結果に適用したポリシーと不受理理由を構造化して残す。
旧 proof の閲覧/検証と、現在の試験で受理する条件は別にする。通信障害時の export を禁止して証拠自体を失わせない。final anchor による保証範囲の修正 Issue と整合させる。
受け入れ条件
関連情報
スコープ外
既存フラグの意味を告知なく厳格化すること、分析器の出力を暗号検証合否に混ぜること。
確認日: 2026-09-09。対象コミット:
07277b86572f12dd67e6458867541dab7d7aad56。目的・現状
requireAnchorDensity は cp の疎密だけを検査するため、cp がゼロのとき density:null として素通りする。これは signedCheckpoints.ts に明記された現行仕様であり、既存フラグの実装ミスとは区別する。
今回、正しい root token を持つ三イベントの proof から checkpoints を空配列に変更し、次のオプションで full 検証した。
実測: 総合 valid:true / rootAnchored:true / signedCheckpoints.anchored:false / density:null。
「授業では継続的な時刻証拠も必須」という受理条件を現在の二つのフラグだけでは表現できない。cp の削除で密度ゲートの対象外になる点も運用上明示したい。
内容・修正方針
暗号的整合性と授業ごとの受理判定を分離し、少なくとも署名 cp の存在・最終状態への署名・密度を独立に要求できる設計を決定する。個別フラグでも名前付き policy profile でもよいが、検証結果に適用したポリシーと不受理理由を構造化して残す。
旧 proof の閲覧/検証と、現在の試験で受理する条件は別にする。通信障害時の export を禁止して証拠自体を失わせない。final anchor による保証範囲の修正 Issue と整合させる。
受け入れ条件
関連情報
スコープ外
既存フラグの意味を告知なく厳格化すること、分析器の出力を暗号検証合否に混ぜること。