VeritasChain CloudはVCP準拠システムのためのクラウドベースのロギングと証明書発行を提供します
VCCは、VeritasChain Protocol (VCP)のリファレンス実装であり、以下を実証します:
| 項目 | VCCデモ | VCC本番 |
|---|---|---|
| デプロイ | 静的ホスティング | クラウドインフラ |
| ストレージ | ブラウザIndexedDB | PostgreSQL / TimescaleDB |
| 外部アンカー | シミュレート | OpenTimestamps / Blockchain |
| マルチテナント | シングルユーザー | APIキー付きマルチテナント |
| 暗号署名 | SHA-256ハッシュ | HSM付きEd25519 |
VCCデモはVCP v1.1で定義された3層整合性アーキテクチャを実装しています
個々のイベントの改ざん検知
マークルツリーによるバッチ検証
第三者タイムスタンプアンカリング
VCCデモはサーバー依存なしでブラウザ内で完全に動作します
┌─────────────────────────────────────────────────────────────────────┐
│ ブラウザ環境 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Reactアプリケーション │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │ │
│ │ │ ダッシュ │ │ イベント │ │ 検証 │ │ │
│ │ │ ボード │ │ タブ │ │ タブ │ │ │
│ │ └──────┬──────┘ └──────┬──────┘ └──────────┬──────────┘ │ │
│ │ │ │ │ │ │
│ │ └────────────────┼─────────────────────┘ │ │
│ │ ▼ │ │
│ │ ┌───────────────────────┐ │ │
│ │ │ VCCService │ │ │
│ │ │ (ビジネスロジック) │ │ │
│ │ └───────────┬───────────┘ │ │
│ │ │ │ │
│ │ ┌────────────────┼────────────────┐ │ │
│ │ ▼ ▼ ▼ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ 暗号 │ │ マークル │ │ UUID │ │ │
│ │ │ モジュール │ │ モジュール │ │ モジュール │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ │ │ │
│ └──────────────────────────────┬───────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────┐ │
│ │ IndexedDB │ │
│ │ ┌────────┐ ┌────────┐ │ │
│ │ │events │ │anchors │ │ │
│ │ └────────┘ └────────┘ │ │
│ └────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
インタラクティブコンポーネント用UIフレームワーク
ユーティリティファーストCSSフレームワーク
ネイティブブラウザ暗号化
ブラウザベースの永続ストレージ
Certificate Transparency標準
時間順ユニーク識別子 (RFC 9562)
VCCデモは業界標準の暗号プリミティブを使用しています
Web Crypto APIを使用したネイティブパフォーマンス:
const sha256 = async (data) => {
const encoder = new TextEncoder();
const dataBuffer = encoder.encode(
typeof data === 'string' ? data : JSON.stringify(data)
);
const hashBuffer = await crypto.subtle.digest('SHA-256', dataBuffer);
return Array.from(new Uint8Array(hashBuffer))
.map(b => b.toString(16).padStart(2, '0'))
.join('');
};
第二プリイメージ攻撃を防ぐためのドメイン分離:
| ノードタイプ | プレフィックスバイト |
|---|---|
| リーフ | 0x00 |
| 内部 | 0x01 |
[Root]
│
┌──────────┴──────────┐
│ │
[N01] [N23-4]
│ │
┌────┴────┐ ┌─────┴─────┐
│ │ │ │
[N0] [N1] [N23] [L4]
│ │ │
┌──┴──┐ ┌──┴──┐ ┌──┴──┐
│ │ │ │ │ │
[L0] [L1] [L2] [L3] [L2] [L3]
Lx = merkleHashLeaf(Ex), Nxy = merkleHashNode(Lx, Ly)
デモの制限事項と本番環境の代替案を理解する
VCCデモはデモンストレーションツールです。「アンカー」はブラウザ内でシミュレートされており、 外部検証可能性を提供しません。本番システムでは、実際の外部タイムスタンプ認証局 (OpenTimestamps、RFC 3161)、不変性のためのブロックチェーンアンカリング、HSMベースのデジタル署名を使用する必要があります。
| 項目 | VCCデモ | 本番環境 |
|---|---|---|
| 鍵ストレージ | なし | HSM |
| 署名 | SHA-256 | Ed25519 |
| 改ざん耐性 | ブラウザ | ブロックチェーン |
| データプライバシー | ローカル | サーバーサイド |
crypto.subtleによるネイティブ暗号操作
UUID生成のためのcrypto.getRandomValues()
ブラウザによるクロスサイトデータアクセス防止
ユーザーはいつでもすべてのデータを削除可能
認証ステータス: このデモはVC認証を受けておらず、VSOの推奨を意味するものではありません。 公式認証を取得するには、組織は完全なVCP v1.1仕様を実装し、本番グレードの暗号化を使用し、 適合性テストに合格し、認証監査を完了する必要があります。