G-ojies/ChainSentry

GitHub: G-ojies/ChainSentry

一款基于 BlockCypher API 的比特币区块链取证工具,用于追溯资金流动路径。

Stars: 0 | Forks: 0

# ChainSentry 🔍 **比特币钱包取证工具** — 使用免费的 [BlockCypher](https://www.blockcypher.com) 公共 API 追溯最多 N 层的资金流向。无需 API 密钥。 ## 功能 | 功能 | 详情 | |---|---| | 余额与历史 | 获取已确认余额、总收入/总支出、交易列表 | | 资金流追踪 | 递归追踪输出地址,最深可达 `--hops` 层 | | 循环预防 | 全局已访问集合确保每个地址仅获取一次 | | 易读报告 | 带颜色编码、缩进的交易树及跳数层级摘要 | | 限流安全 | 请求之间内置 400 毫秒延迟(免费层:约 3 请求/秒) | ## 要求 - Python 3.11+ - `requests` 库 ``` pip install requests ``` ## 用法 ``` python chainsentry.py [--hops N] ``` | 参数 | 默认值 | 描述 | |---|---|---| | `address` | — | 种子比特币钱包地址 | | `--hops N` | 3 | 最大递归深度(0 = 仅种子地址) | ### 示例 ``` # 追溯创世区块地址,3 跳(默认) python chainsentry.py 1A1zP1eP5QGefi2DMPTfTL5SLmv7Divf1V # 仅追溯 1 跳深度 python chainsentry.py 1A1zP1eP5QGefi2DMPTfTL5SLmv7Divf1V --hops 1 # 仅种子地址(无递归) python chainsentry.py 1A1zP1eP5QGefi2DMPTfTL5SLmv7Divf1V --hops 0 ``` ## 架构 ``` chainsentry.py │ ├── BlockCypherClient # API layer — HTTP + rate-limiting │ ├── fetch_address() # GET /addrs/{addr}/full │ └── fetch_transaction() # GET /txs/{txid} │ ├── Parsing layer # Raw dict → typed dataclasses │ ├── parse_tx_output() │ ├── parse_transaction() │ └── parse_wallet_info() │ ├── Forensics core │ ├── collect_output_addresses() # Identify fund destinations │ └── trace_funds() # Recursive DFS with visited set │ └── Reporting layer # Colour-coded terminal output ├── print_header() ├── print_wallet_summary() ├── print_tree() └── print_summary_stats() ``` ## 速率限制 BlockCypher 的免费层级大约允许 **每秒 3 个请求** 而无需 API 令牌。ChainSentry 默认在每次调用之间休眠 400 毫秒(`RATE_DELAY` 常量)。对活跃钱包的深度追踪可能需要几分钟。你可以注册一个免费的 BlockCypher 令牌并将其作为查询参数(`?token=`)添加到 `BlockCypherClient._get()` 中以提高限制。 ## 免责声明 ChainSentry 是一个研究与教育工具。所有数据均来自公共比特币区块链并通过 BlockCypher 的 API 提供。请勿将此工具用于任何违反适用法律的活动。
标签:BlockCypher, T1580, 二进制发布, 交易可视化, 区块链取证, 开源工具, 循环检测, 数字货币调查, 数据解析, 比特币分析, 深度优先搜索, 资金流分析, 逆向工具, 递归遍历, 钱包取证, 链上追踪