Cronozen Proof について
Cronozen Proofは、AIの意思決定をSHA-256で連結した監査記録に残し、検証やJSON-LD形式の証拠出力を行います。MCP、SDK、REST APIを通じて意思決定を記録・確認するチーム向けです。
主な機能
- 01追記型のSHA-256ハッシュチェーン
- 02記録単体とチェーン全体の検証
- 03Ed25519サーバー署名
- 04JSON-LD v2.0形式の証拠出力
活用シーン
- 01AIエージェントの判断の監査
- 02コンプライアンス証拠の作成
- 03意思決定の出所の追跡
- 04人による承認・却下の記録
MCP 対応
MCPサーバーは、意思決定の記録・取得、記録やチェーンの検証、JSON-LD証拠の出力を行うツールを提供します。Claude DesktopやCursorなどのMCPクライアントに接続できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.cronozen.com/mcpclaude mcp add --transport http cronozen https://mcp.cronozen.com/mcp{"mcpServers":{"cronozen":{"type":"http","url":"https://mcp.cronozen.com/mcp"}}}Cursor で開く{"servers":{"cronozen":{"type":"http","url":"https://mcp.cronozen.com/mcp"}}}VS Code で開く{"mcpServers":{"cronozen":{"type":"http","url":"https://mcp.cronozen.com/mcp"}}}{"mcpServers":{"cronozen":{"serverUrl":"https://mcp.cronozen.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.cronozen.com/mcp認証が必要ツール
7| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| domain | string | はい | 業務領域(例:rehab_care、market、edu、mentor、welfare) |
| purpose | string | はい | 判断の目的/理由 |
| final_action | string | はい | 実行したアクション(例:CREATE、UPDATE、APPROVE) |
| evidence_level | enum | いいえ | 証拠レベル。デフォルト:AUDIT_READYDRAFT | PARTIAL | AUDIT_READY |
| reviewed_by | string | いいえ | 人間のレビュアー識別子 |
| reviewer_role | string | いいえ | レビュアーの役割(例:operator、admin) |
| approved | boolean | いいえ | 判断が承認されたかどうか |
| tags | array | いいえ | 分類用タグ |
| reference_type | string | いいえ | 参照エンティティの種類 |
| reference_id | string | いいえ | 参照先エンティティの ID |
詳細
Cronozen Proof
AI の意思決定に対する改ざん検知可能な監査証跡。 MCP、SDK、または REST API を通じて、暗号学的な証明チェーンを記録、検証、エクスポートできます。
すべての AI の意思決定は SHA-256 でチェーン化され、誰でも検証でき、監査コンプライアンスのために JSON-LD としてエクスポートできます。
改ざん-検知可能であり、改ざん-防止ではありません。 データベースへの書き込み権限を持つ人がレコードを編集するのを止めるものはありません。ここで実現するのは、編集が見過ごされることがないということです。検証時に保存済みレコードからハッシュを再計算するため、変更があれば verified は false になります。改ざんを検知しますが、防止はしません。
Cronozen Proof を選ぶ理由
AI エージェントは本番環境で、承認、分類、ワークフローの実行など、実際の意思決定を行っています。しかし、問題が起きたとき、何が起きたのかを証明できるでしょうか?
Cronozen Proof なら、以下を実現できます。
- 追記専用ハッシュチェーン — SHA-256 でレコードをリンクし、後からの編集を検知できます
- 公開検証 — どのプランでも、認証なしで誰でも証明を検証できます
- サーバー署名 — チェーンハッシュに対する Ed25519 署名により、データベースへの書き込み権限だけではレコードを偽造できません
- 監査対応のエクスポート — JSON-LD v2.0 の証拠ドキュメント
- 3 つの連携方法 — MCP サーバー、Node SDK、REST API
コンプライアンス対応を想定した設計
- EU AI Act — 人間による監督と監査可能性の要件
- Korea AI Basic Act(2026)— AI の意思決定に関する文書化の義務
- SOC 2 — 監査証跡の証拠を生成
クイックスタート
オプション 1:npm SDK(推奨)
npm install cronozen
import { Cronozen } from 'cronozen';
const client = new Cronozen({
apiKey: 'your-api-key',
baseUrl: 'https://api.cronozen.com',
});
// Record an AI decision
const decision = await client.decision.record({
type: 'ai_decision',
actor: { id: 'agent-1', type: 'ai', name: 'credit-risk-agent' },
action: {
type: 'APPROVE_LOAN',
description: 'AI evaluated credit risk for application #1234',
output: { result: 'approved_with_conditions' },
},
aiContext: { model: 'claude-opus-5', reasoning: 'DTI within policy; no adverse history' },
metadata: { domain: 'loan-approval' },
});
// Verify integrity — recomputes the hash chain from the stored record
const verification = await client.decision.verify(decision.evidence.id);
console.log(verification.verified); // true
console.log(verification.checks.chainHash.contentBound); // true — the outcome is bound by the hash
console.log(verification.limitations); // what this proof does NOT cover
オプション 2:MCP サーバー(AI クライアント向け)
Claude Desktop、Cursor、または MCP 互換のクライアントを接続します。
{
"mcpServers": {
"cronozen-proof": {
"url": "https://mcp.cronozen.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
または、Smithery 経由でインストールします。
smithery mcp add cronozen/proof
利用可能な MCP ツール:
| ツール | 説明 |
|---|---|
proof_record | SHA-256 ハッシュチェーンを使って AI の意思決定を記録します |
proof_verify | 証明レコードの暗号学的整合性を検証します |
proof_chain_verify | ドメイン全体のハッシュチェーンを検証します |
proof_get | 詳細情報を含む証明を取得します |
proof_export_jsonld | JSON-LD v2.0 の証拠ドキュメントとしてエクスポートします |
proof_public_verify | 公開検証(認証不要) |
エンドポイントに関する注意。 MCP サーバーは Cronozen の意思決定証明 API(
/api/dpu/*、/api/proof/*)を対象としており、CRONOZEN_API_URLで設定します。これは、このリポジトリにあるスタンドアロンの証明 API(api-server。/decision-events、/evidence/:id、/verify/:idを提供)とは別のインターフェースです。CRONOZEN_API_URLは前者を指定してください。上記の SDK と REST の例では後者を使用します。
オプション 3:DPU Core(セルフホスト可能なライブラリ)
最大限の制御を行うには、コアハッシュチェーンライブラリを直接使用します。
npm install @cronozen/dpu-core
import { computeChainHash, createDPUEnvelope } from '@cronozen/dpu-core';
// Create a hash chain link
const hash = computeChainHash(content, previousHash, timestamp);
// Create a full DPU envelope
const envelope = createDPUEnvelope({ content, previousHash, timestamp });
依存関係はゼロです。純粋な暗号関数です。どこでも実行できます。
パッケージ
このモノレポには、オープンソースの Cronozen Proof エコシステムが含まれています。
| パッケージ | npm | 説明 |
|---|---|---|
@cronozen/dpu-core | コアハッシュチェーンエンジン — 依存関係ゼロ、純粋な暗号処理 | |
@cronozen/dp-schema-public | 共通の型、列挙型、JSON-LD スキーマ定義 | |
cronozen | 高レベル SDK — decision.record() / decision.verify() | |
@cronozen/mcp-server | — | AI クライアント連携用の MCP サーバー |
アーキテクチャ
Your Application / AI Agent
│
├─── cronozen SDK ──────► Cronozen Cloud API
│ (npm install cronozen) │
│ ▼
├─── MCP Server ────────► Decision Proof Store
│ (Streamable HTTP) │
│ ▼
└─── @cronozen/dpu-core ─► SHA-256 Hash Chain
(self-hosted) │
▼
Tamper-evident Evidence
(JSON-LD v2.0 export)
ハッシュチェーン:各意思決定レコードには、その内容、前のレコードのハッシュ、タイムスタンプから計算した SHA-256 ハッシュが含まれます。これにより追記専用のチェーンが作られ、いずれかのレコードが改ざんされると、それ以降のすべてのレコードでチェーンが破損します。
ハッシュの対象はレコード全体です。アクター、アクション、入力と出力、AI モデルと推論、タイムスタンプ、チェーン内の位置が含まれます。承認はレコードの書き込み後に行われるため、元のチェーンハッシュを含む別個のシールハッシュによって紐付けられます。承認者や承認結果を変更すると、検証も失敗します。
証明できること — そして証明できないこと
検証はすべてのプランで無料で、アカウントも不要です。GET /verify/:id は、実際に実行したチェックと limitations のリストを返します。両方を確認してください。
実装済み
| チェック | 検出できる内容 |
|---|---|
| チェーンハッシュの再計算 | 書き込み後のレコードの変更(アクター、アクション、入力、出力、AI の推論、タイムスタンプ) |
| チェーンリンク(双方向) | レコードの削除や並べ替え、後続レコードの参照先の書き換え |
| シールハッシュ | シール後の承認者、承認結果、シール時刻の変更 |
| サーバー署名(Ed25519) | データベースへの書き込み権限はあるが、署名鍵を持たないユーザーによる偽造 |
未実装 — 明記しています
| ステータス | |
|---|---|
| RFC 3161 の信頼できるタイムスタンプ | 未実装です。 タイムスタンプはサーバーが設定するものであり、第三者による証明はありません。TSA 証明書チェーン、署名、ノンスを検証せずにリクエストを送るだけの不完全な実装は、実装しないよりも悪いため、提供していません。API は trustedTimestamp: not_implemented を報告します。 |
| 外部アンカー | 未実装です。 現在、サーバーは自分自身のデータベースを読み取り、「一致している」と応答します。これは内部整合性であり、第三者による証明ではありません。 |
| 末尾の切り詰めの検出 | アンカーなしでは不可能です。 途中のレコードを削除すると、チェーンスキャンで報告される欠落が生じます。最新のレコードを削除した場合、チェーンの連続性は保たれ、検証も成功します。データベース内の情報だけでは、現在の末尾を超えてレコードが存在していたことを証明できません。 |
| C2PA / W3C VC のエクスポート | 未実装です。 設計上は対応可能ですが、エクスポーターはまだ存在しません。 |
レガシーレコード
ペイロードが拡張される前に書き込まれたレコードは contentBound: false を報告します。これらのレコードで verified: true が意味するのは、イベントタイプ、アクションタイプ、アクターが変更されていないことだけです。結果と承認フィールドはハッシュの対象外です。この場合、API は limitations に明示的な警告を追加します。
デプロイ範囲のフラグ
API では、3 つの機能グループがデフォルトで無効になっています。削除されているのではなく、個別に審査した後にのみ有効にできます。
| 環境変数 | デフォルト | 制御対象 | 次の条件を満たした後にのみ有効化 |
|---|---|---|---|
PROOF_ENABLE_FILES | false | POST /files/upload、GET /files | ボリューム容量と保持ポリシーが確定していること — アップロードされたファイルはマシンのローカルディスクに保存されます |
PROOF_ENABLE_DRIVE | false | /integrations/google-drive/*、POST /webhooks/google-drive | Webhook の署名検証が実装され、OAuth トークンが保存時に暗号化されていること(現在は平文で保存されています) |
PROOF_ENABLE_QUOTA | false | /decision-events と /files のクォータミドルウェア | プラン制限を適用する場合 — proof_free の上限は 100 件のイベントであるため、有効にすると上限をすでに超えているテナントからの書き込みが拒否されることがあります |
この仕組みがある理由:デプロイ済みのイメージが main より古い状態になっていたため、これらのルートは本番環境で一度も実行されていませんでした。検証エンジンをリリースすると、審査されていない未認証の公開 Webhook を含む 3 つすべてが一度に有効になってしまいます。これらを制御することで、デプロイ済みの環境は、検証エンドポイントを除けば、すでに稼働していた範囲と同一に保たれます。
サーバー署名キー
サーバー署名を使用すると、検証の信頼性が大幅に高まります。署名がない場合、ハッシュを再計算しても、データベースに書き込めるユーザーがレコードを変更してハッシュを再計算することを防げません。署名があれば、レコードの偽造には署名キーが必要になります。
npm run keygen --workspace=api-server # prints PROOF_SIGNING_PRIVATE_KEY and the public key
⚠️ v3 レコードを書き込む最初のデプロイより前に、キーを設定してください。 キーが設定されていない間に書き込まれたレコードには署名がありません。後からキーを設定すると、それらのレコードは serverSignature: missing と報告され、検証に永久に失敗します。バックフィルはできません。署名の目的が損なわれるため、履歴に再署名せずに後から署名を追加することはできません。
第三者がこのサーバーの応答を信頼せずに検証できるよう、公開鍵(/verify/public-key でも提供されています)を配布してください。
台帳の保存場所
ホスト型 API は Fly.io の 東京(nrt) で稼働しています。Fly に韓国リージョンはないため、api.cronozen.com 経由で記録された証拠は日本に保存されます。レコードには実行者名、アクションの入力/出力、AI の推論、承認者名が含まれる場合があります。国境を越えたデータ保存要件を評価する際は、顧客の運用データとして扱ってください。
これは、単一マシンと SQLite ボリュームによるシンプルさを優先した意図的な選択です。国内保存を義務付ける監査要件が顧客に生じた場合は、改めて検討します。セルフホストすれば、この問題自体がなくなります。Docker イメージはどこでも実行できます。
セルフホストでのデプロイ
Docker
cd mcp-server
docker build -t cronozen-mcp .
docker run -p 3100:3100 \
-e CRONOZEN_API_URL=https://mcp.cronozen.com \
-e CRONOZEN_API_TOKEN=your-token \
cronozen-mcp
ソースからの実行
git clone https://github.com/cronozen/proof.git
cd proof/mcp-server
npm install
cp .env.example .env # Configure your API endpoint
npm run dev
Cronozen Cloud
セルフホストを希望しませんか? Cronozen Cloud がホスティング、セキュリティ、バックアップ、アップデートを代行します。
| セルフホスト | Cloud Pro | Cloud Business | Enterprise | |
|---|---|---|---|---|
| 価格 | 無料 | $99/mo | $299/mo | カスタム |
| イベント | 無制限 | 1,000/mo | 無制限 | 無制限 |
| ソースコード | フルアクセス | — | — | — |
| サポート | コミュニティ | メール | 優先対応 | 専任 |
| SSO | — | — | ✓ | ✓ |
| SLA | — | — | 99.9% | カスタム |
| オンプレミス | ✓(DIY) | — | — | ✓(マネージド) |
仕組み
- 記録 — アプリから意思決定イベント(ドメイン、目的、アクション、証拠レベル)を送信します
- チェーン化 — イベントを SHA-256 でハッシュ化し、前のレコードとリンクします
- 検証 — 認証なしで誰でも単一のレコードを検証できます(
GET /verify/:id)。 チェーン全体の検証には認証が必要で、テナントごとに分離されています。これは、応答でチェーンドメインが明らかになるためです。 - エクスポート — 監査担当者向けに JSON-LD v2.0 の証拠文書を生成します
Genesis ──► Record #1 ──► Record #2 ──► Record #3
│ │ │ │
hash₀ hash₁ hash₂ hash₃
│ │ │
SHA-256( SHA-256( SHA-256(
content₁, content₂, content₃,
hash₀, hash₁, hash₂,
timestamp₁) timestamp₂) timestamp₃)
ユースケース
- AI エージェントの監査証跡 — 本番環境で AI エージェントが行うすべての意思決定を追跡します
- コンプライアンス文書 — SOC2、EU AI Act、Korea AI Basic Act 向けの改ざん検知可能な証拠を自動生成します
- 意思決定の来歴 — 暗号学的な証明により、「AI がなぜこのような動作をしたのか?」に答えます
- 人間参加型の証拠 — AI の意思決定とともに、人間による承認/却下を記録します
- 決済証明 — 金融取引や承認のための、追記専用で検証可能なレコードを作成します
貢献
貢献を歓迎します!ガイドラインは CONTRIBUTING.md をご覧ください。
git clone https://github.com/cronozen/proof.git
cd mcp-server
npm install
npm run build
ライセンス
Apache-2.0 — 詳細は LICENSE をご覧ください。
Cronozen Proof Enterprise(ガバナンス、コンプライアンスエンジン、高度なチェーン検証)は商用ライセンスで提供しています。お問い合わせ →
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。