AI 安全
ZCodeがソースコードとデータフローを公開、旧版のアップロード問題は過去の経緯の検証がなお必要
公開コードによると、現行のチェックポイントはローカルのGitとJSONで保存される。旧版のアップロードパイプラインの削除には公式記録と報告者による検証がある一方、過去のデータの行方については、さらなる証拠が必要だ。

Z.aiによるZCodeのソースコード公開を受け、旧版でのワークスペースのスナップショットアップロード問題は、実装を検証できる新たな段階に入った。GitHubの記録によると、コードは9月20日に一括でインポートされた。最初の報告者であるferstarは、21日に新版のソースコードの検証結果を追記した。公開範囲にはデスクトップ、Web、ターミナルの各インターフェースとエージェント実行環境が含まれ、Apache 2.0ライセンスが適用されている。[公式リポジトリ](https://github.com/zai-org/ZCode)、[コミット履歴](https://github.com/zai-org/ZCode/commits)
問題の発端は、ferstarによる3.12.3クライアントの調査だった。ワークスペースがGit履歴を含めてアーカイブ化され、サーバーから提供された公開鍵で暗号鍵を保護したうえで、Alibaba Cloud OSSへ直接アップロードする準備が行われていた。同氏は特に、313 MBの商用プロジェクトのアーカイブはアップロードに失敗し続けていたと明確に説明している。受信成功の記録があるのは、別途行った小規模な公開リポジトリでのテストであり、両者を混同して商用コードが流出したとみなすことはできない。[当初の調査と追記](https://blog.ferstar.org/posts/zcode-silent-workspace-snapshot-upload/)
公式の3.14.0更新履歴には、リポジトリ百科機能での異常なアップロードの修正が記載されている。一方、ferstarは新版の検証で、従来のスナップショット生成・アップロードパイプラインが削除されたと報告している。これらの証拠は特定バージョンでの修正の進展を裏付けるが、すべてのインストール元や実行環境を網羅するものではなく、過去にアップロードされた内容のすべてのコピーが削除されたことも証明できない。[公式更新履歴](https://zcode.z.ai/en/changelog)
公開コードからは、直接検証できる別の詳細も明らかになった。現在のチェックポイントは、ローカルのGitでツリーオブジェクト、コミット、隠し参照を作成し、メタデータをローカルのJSONに書き込む。復元時にはワークスペースの変更を確認し、デフォルトでは競合があると上書きを拒否する。この復元機構自体はリポジトリ全体をクラウドに送る必要がないが、それを根拠に旧版のすべての挙動を推定することはできない。[チェックポイントの実装](https://raw.githubusercontent.com/zai-org/ZCode/main/packages/services/src/git/repo/gitCheckpointRepo.ts)、[ローカル保存の実装](https://raw.githubusercontent.com/zai-org/ZCode/main/packages/services/src/git/repo/gitCheckpointStore.ts)
オープンソース版にも、通常の動作に伴う外部へのデータフローは存在する。公式のNOTICEには、モデルや補助タスクの処理でプロンプト、コード、差分、ツールの実行結果を送信する場合があると記載されている。また、指定されたエンドポイントに該当するCoding Planのリクエストは、ZCodeゲートウェイを経由して転送される。そのため、自分でビルドする場合でもエンドポイントと機能設定の確認が必要であり、ソースコードが公開されているという理由だけで、すべてのデータがローカルにとどまると判断することはできない。[データフローの説明](https://raw.githubusercontent.com/zai-org/ZCode/main/NOTICE.md)
今後注目すべきなのは、配布ファイルと公開コミットの対応関係、旧版のアップロード経路について再現可能な証拠、そして過去のデータの取り扱いに関する記録だ。現在の公開履歴には、初期化とオープンソース公開時のインポートという2件のコミットしかなく、削除に至る過程をバージョンごとに比較することはまだできない。導入する側にとって、今回の公開は監査の出発点となるが、全体像を明らかにするには、引き続きバージョン間の比較と実際のネットワーク通信の観測が必要だ。