SSX360/matrixscroll

GitHub: SSX360/matrixscroll

Matrix Scroll 是一个为 agent 辅助 Git 提供 Ed25519 签名的 commit 来源证明协议,支持在 CLI、浏览器和 CI 中进行离线验证,解决「谁签名了每次 commit」的可追溯性问题。

Stars: 4 | Forks: 0

# Matrix 滚动 **关于是谁——或者说是哪个程序——编写了每一次 commit 的签名证明。** Matrix Scroll 是一个开放的 Ed25519 commit 来源协议,专为 agent 辅助的 Git 设计——支持在 CLI、浏览器和 CI 中进行离线验证。硬件 (SE050) 是可选的预览信任升级;模拟模式现已发布。 **托管控制平面:** 身份验证、计费和设备激活位于 [ssx360.com](https://ssx360.com/)。Digital Rain 是本地漏斗;Matrix Scroll 是长矛。 ## 合规性证据映射 Matrix Scroll **映射到** 并 **生成以下证据**(绝非“被要求”): - **Five Eyes · Agentic AI (2026年4月)** —— 证明 agent 运行的是预期的、未修改的代码的加密认证。 - **EU AI Act · 高风险可追溯性** —— 可验证的 commit 时审计产物。 - **美国联邦 SSDF · 自我证明** —— 用于供应链审查的证据包。 完整矩阵:[`controls/agentic_ai_controls.json`](controls/agentic_ai_controls.json) ## 采用信号 在推出期间跟踪出站和注册表的吸引力: | 信号 | 计数器 | |--------|---------| | PyPI `matrixscroll` | [![PyPI downloads](https://img.shields.io/pypi/dm/matrixscroll)](https://pypi.org/project/matrixscroll/) | | PyPI `[mcp]` extra | [![PyPI MCP downloads](https://img.shields.io/pypi/dm/matrixscroll?label=mcp%20extra)](https://pypi.org/project/matrixscroll/) | | GitHub stars | [![GitHub stars](https://img.shields.io/github/stars/SSX360/matrixscroll?style=social)](https://github.com/SSX360/matrixscroll/stargazers) | | Scroll Gate Action | [![GitHub Action](https://img.shields.io/github/stars/SSX360/matrixscroll-verify-action?style=social)](https://github.com/SSX360/matrixscroll-verify-action) | | Glama MCP registry | [matrixscroll on Glama](https://glama.ai/mcp/servers/SSX360/matrixscroll) | ## 核心演示 (MCP 合并后) 在 [`docs/HERO_DEMO.md`](docs/HERO_DEMO.md) 中记录 60-90 秒的来源流程 —— 仅包含 Scroll Gate + 浏览器验证器 + MCP 动词。 ## 安装 —— MCP server (核心路径) Agent 通过 **仅限来源** 的 MCP server 在循环内对 commit 进行签名: ``` { "mcpServers": { "matrixscroll-mcp": { "command": "matrixscroll-mcp", "args": [] } } } ``` ``` pip install "matrixscroll[mcp]==0.2.6" matrixscroll-mcp # stdio — register in Cursor / Claude Desktop / VS Code ``` **MCP 工具 (仅限来源动词):** `create_envelope`、`verify_envelope`、`verify_pr_range` (Scroll Gate)、`publish_notes`、`status`、`audit_export`。 工作区智能(分析、头脑风暴、雷达)位于 [Digital Rain](https://ssx360.com/) 中 —— 而不在此 MCP server 中。 ## 也可用 —— CLI & hooks ``` pip install "matrixscroll==0.2.6" matrixscroll hook-install export MATRIXSCROLL_ACTOR_TYPE=agent export MATRIXSCROLL_TOOL=agent-runner git commit -m "feat: agent-assisted change" matrixscroll envelope-verify "$(git rev-parse HEAD)" ``` 请参阅 [`docs/quickstart-git.md`](docs/quickstart-git.md) 和 [`examples/demo/agent-commit-demo.sh`](examples/demo/agent-commit-demo.sh)。 本仓库是该产品的标准 SDK、验证器契约、测试固件集和发布窗口。 Matrix Scroll 是 Git 的加密证据层。当 agent、CI 工作流或人类操作者生成 commit 时,一个已签名的 commit 信封可以记录执行者、工具和可选的受限范围。任何人都可以在本地、CI 或浏览器中验证该信封,而无需信任生成它的编辑器会话。 保留 GitHub Advanced Security、Semgrep、Snyk、分支保护和构建产物认证。Matrix Scroll 在合并前添加了签名的 commit 时作者身份证明,并在 CLI、浏览器、CI 和 SE050 预览路径中保持相同的离线验证契约。 参考 SDK 目前提供基于标准 manifest 字节的纯 Ed25519。SSX360 / NXP SE050 路径是兼容的下一信任层,在设备验收完成之前仍作为预览路径。 ## 客观的局限 - 现已发布:PyPI `matrixscroll==0.2.6`、Git post-commit hooks、`matrixscroll envelope-verify`、Scroll Gate PR 验证、浏览器验证器、GitHub Action 以及用于 SE050 推广路径的 USB CDC 主机传输预览。模拟模式是默认的评估路径。 - 开发中:RP2350 + SE050 固件验证、外部支持 Ed25519 的硬件密钥后端,以及透明度日志集成。 - 不包含:IAM、沙箱、prompt 过滤或 agent runtime。 ## 适用场景 - 扫描器和分支保护能发现代码和策略问题;Matrix Scroll 记录在 push 之前是谁或什么签名了该更改。 - 硬件密钥和构建认证仍然是互补的信任根和下游证明;Matrix Scroll 负责处理 commit 时的来源记录。 - 公共契约保持基于标准 manifest 字节的纯 Ed25519,无论今天的签名者是模拟的还是未来由硬件支持的。 ## 常见问题 ### 什么是 Matrix Scroll,它如何保护 Git 的安全? Matrix Scroll 是 agent 辅助 Git 的签名 commit 时来源记录。它通过将 Ed25519 签名的 commit 信封附加到 commit 上来保护 Git,记录执行者、工具和可选的受限范围,然后让审查者在 CLI、浏览器或 CI 中在合并前离线验证该证明。 ### Matrix Scroll 中硬件和模拟模式有何不同? 模拟模式今天即可使用,它将签名密钥以仅限所有者的权限保留在磁盘上,以便团队现在就可以评估整个工作流程。硬件模式保持相同的验证器契约和 commit 信封 schema,但将私钥移入 SE050 安全元件中,因此主机无法将其导出;该路径在设备验收完成之前将仅作为预览提供。 ### 如何将 Matrix Scroll 集成到 CI/CD 工作流中? 在你的仓库中安装 SDK 和 hooks,在 PR 审查之前将 commit 信封发布到 `refs/notes/matrixscroll`,并使用 `SSX360/matrixscroll-verify-action@v1` 在 GitHub Actions 中验证完整的 PR commit 范围。受保护的分支随后可以与现有的扫描器、分支保护和构建认证一起,要求提供 Matrix Scroll 证明。 ## 快速开始 (CLI) ``` pip install "matrixscroll==0.2.6" matrixscroll hook-install matrixscroll hook-status export MATRIXSCROLL_ACTOR_TYPE=agent export MATRIXSCROLL_TOOL=agent-runner git commit -m "feat: agent-assisted change" matrixscroll envelope-verify "$(git rev-parse HEAD)" ``` 请参阅 [`docs/quickstart-git.md`](docs/quickstart-git.md) 并运行 [`examples/demo/agent-commit-demo.sh`](examples/demo/agent-commit-demo.sh)。 ## CI 验证 ### 针对 PR commit 范围的 Scroll Gate ``` - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: SSX360/matrixscroll-verify-action@v1 with: head-ref: ${{ github.event.pull_request.head.sha }} base-ref: ${{ github.event.pull_request.base.sha }} source: notes matrixscroll-version: "0.2.6" require-mode: emulated ``` 在审查前将信封发布到 git notes: ``` matrixscroll envelope-publish-notes --base origin/main --head HEAD git push origin refs/notes/matrixscroll ``` ``` - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: SSX360/matrixscroll-verify-action@v1 with: head-ref: ${{ github.event.pull_request.head.sha }} base-ref: ${{ github.event.pull_request.base.sha }} source: notes matrixscroll-version: "0.2.6" summary-output: provenance-summary.json ``` 请参阅 [`docs/quickstart-git.md`](docs/quickstart-git.md) 和 [`examples/ci/protected-branch.yml`](examples/ci/protected-branch.yml)。 `--require-mode`、`--trusted-keys` 以及执行者或委托策略检查可在 `0.2.x` 系列中使用;本 README 中的示例固定为 `0.2.6`。 ## 为什么它与 Sigstore 不同 Sigstore、GitHub 构建产物认证和 SLSA 回答的是“CI 中构建了什么?” Matrix Scroll 回答的是“在 push 之前是谁签名的这个 commit?” 这些系统是互补的:Matrix Scroll 在 commit 时对 commit 信封进行签名,而构建产物认证系统稍后在交付链中对构建输出进行签名。 Matrix Scroll 不会在通用认证密钥的主场与之竞争。现有的硬件信任根只有在保留相同的纯 Ed25519 字节契约时,才能成为 Matrix Scroll 的签名后端。 ## 公开证明链接 - 浏览器验证器: - 比较页面: - 规范:[`SPEC.md`](SPEC.md) - Commit 信封 schema:[`schemas/commit-envelope.v1.json`](schemas/commit-envelope.v1.json) - 白皮书:[`docs/WHITEPAPER.md`](docs/WHITEPAPER.md) - 一致性向量:[`vectors/`](vectors/) - GitHub Action: - Agentic AI 控制项:[`docs/AGENTIC_AI_SECURITY.md`](docs/AGENTIC_AI_SECURITY.md) - 网站: - 参考设备路径:[SSX360](https://matrixscroll.com/device) ## Python API ``` pip install "matrixscroll==0.2.6" ``` ``` import matrixscroll print(matrixscroll.status()) # {'schema': 'matrixscroll.identity.v1', 'available': True, # 'mode': 'emulated', 'device_id': 'MS-A3F2-9C81', ...} signed = matrixscroll.sign_manifest({"release": "v1.0.0", "artifacts": [...]}) assert matrixscroll.verify_manifest(signed) ``` ## CLI ``` $ matrixscroll status { "available": true, "device_id": "MS-A3F2-9C81", "mode": "emulated", "public_key": "...", "schema": "matrixscroll.identity.v1" } $ matrixscroll sign release.json > release.signed.json $ matrixscroll verify release.signed.json {"device_id": "MS-A3F2-9C81", "mode": "emulated", "ok": true, "signed_at": "..."} ``` `matrixscroll verify` 在签名有效时退出代码为 `0`,在失败时(如 manifest 被篡改、缺少签名块、schema 或算法错误、设备 ID 不匹配、公钥格式错误、文件不可读)退出代码为 `2`。 ## 工作原理 ``` your IDE / agent / CI | | commit envelope, release manifest, evidence pack, SBOM v matrixscroll.sign_manifest(...) / post-commit hook | | canonical JSON (sorted keys, ASCII-escaped, no NaN, | signature block excluded from input) v IdentityProvider --> Ed25519 signature (L1 emulated today, SSX360 / SE050 roadmap) | v signed document --> matrixscroll.verify_manifest(...) (anyone, anywhere, offline) ``` 使用 `MATRIXSCROLL_MODE` 切换 provider。硬件模式包含一个 USB CDC 主机传输预览和一个用于 CI 的 mock 路径;真实的 SE050 签名仍然取决于设备固件验证。外部密钥后端在能够使用 Ed25519 对相同的标准字节进行签名之前,不会进入主线。 关于推广顺序,建议从 `MATRIXSCROLL_MODE=emulated` 开始进行评估,仅在外部支持 Ed25519 的签名者保持与验证器兼容时才引入它们,并将 `hardware` 视为 SE050 预览路径,直到设备验收完成。 ## 合规级别 | 级别 | Provider | 支持方式 | 状态 | | ----- | -------- | --------- | ------ | | **L1** 模拟 | `EmulatedProvider` | 软件密钥,文件备份 (0600) | 已发布 | | **L2** 硬件 | `HardwareProvider` | NXP SE050 安全元件 (SSX360) | 开发中 | | **L3** 认证 | 未来计划 | L2 + 远程认证 | 规划中 | `status()` 通过 `mode` 和 `available` 字段公开当前的活动级别。 ## 存储和信任边界 - 模拟密钥存储:`~/.matrixscroll/device.json` (使用 `MATRIXSCROLL_HOME` 覆盖)。 - 创建目录时的权限为 `0700`;打开种子文件时的权限为 `0600` 并带有 `O_CREAT|O_EXCL`,因此私有种子绝不会出现短暂的全球可读状态。 - 损坏或截断的存储会明确报错(`IdentityError`),而不是静默生成新身份。 - 计划中的硬件路径不会在磁盘上保存任何私有内容;种子密封在安全元件中。 ## 参考实现,并非唯一实现 Matrix Scroll 是一个协议。这个 Python 包是参考实现。我们欢迎使用 Rust、Go、TypeScript 和嵌入式 C 进行实现。针对 [`vectors/`](vectors/) 运行它们以进行自我认证。请参阅 `CONTRIBUTING.md`。 ## Agentic AI 指导证明 该仓库包含位于 [`controls/agentic_ai_controls.json`](controls/agentic_ai_controls.json) 的机器可读控制矩阵,位于 [`examples/agentic_ai_evidence_manifest.json`](examples/agentic_ai_evidence_manifest.json) 的示例受限 agent 证据 manifest,以及 `tests/test_agentic_guidance.py` 中的可执行检查。 ## Model Context Protocol (MCP) 服务器 MCP server **仅公开来源动词**:`create_envelope`、`verify_envelope`、`verify_pr_range`、`publish_notes`、`status` 和 `audit_export`。工作区智能和仓库扫描位于 [Digital Rain](https://ssx360.com/) 中 —— 而不在此 MCP server 中。 在 Cursor / Claude Desktop / VS Code 中安装并注册: ``` pip install "matrixscroll[mcp]==0.2.6" matrixscroll-mcp # stdio ``` 请参阅上面的 [安装 —— MCP server](#install--mcp-server-headline-path) 部分获取推荐的 `mcp.json` 代码片段。 ## License - 代码:**Apache-2.0** (`LICENSE`)。 - 规范文本(`SPEC.md`、`vectors/`):**CC0 1.0** - 公共领域。 ## 安全性 请参阅 [`SECURITY.md`](SECURITY.md)。将漏洞私下报告给 **security@matrixscroll.com** 或通过 GitHub Security Advisory 提交。 **协议:** https://matrixscroll.com · **验证:** https://matrixscroll.com/verify/ **控制平面:** https://ssx360.com · **试点:** sales@ssx360.com
标签:AI代理, Git工具, 代码溯源, 密码学, 手动系统调用, 网络安全研究, 逆向工具