Tech1k/mwebscan.com
GitHub: Tech1k/mwebscan.com
MWEBscan 是一款针对莱特币 MWEB 扩展块的链上分析与隐私情报工具,追踪 peg-in/peg-out 资金流向并提供取证归属和隐私评分。
Stars: 1 | Forks: 0
# MWEBscan
MWEBscan 追踪跨越 Litecoin 的 MWEB 公共边界的 peg-in 和 peg-out,
并将它们与标准的链分析启发式算法公开进行关联。相同的分析同时支持取证视图(谁在何处进行了 peg-out,链接程度如何,属于哪个已知实体)和隐私视图(如何保持你的匿名集足够大)。MWEB 内部的任何信息对任何人都是不可见的,包括我们在内;只有公共的 peg 边界是可见的。
## 功能
- Peg-in / peg-out 追踪,提供按区块的供应量、净流量和活动时间序列
- 往返链接、地址重用检测以及按金额的隐私评分
- 钱包聚类(共同输入所有权)、实体归属以及实体资金流向
- “追踪资金流向”,通过地址、txid 或金额追踪跨越 MWEB 跳的路径,包括多跳路径
- 双重评分:每个 peg-in 的隐私评分和每个 peg-out 的 AML 风险评分
- 时间序列图表和实时隐私推荐引擎(“最佳金额 / 等待时间”)
- 只读 JSON API,以及带有 webhook 告警的地址关注列表
- 两种运行方式:全节点扫描器,或无需 litecoind 的无节点 daemon
## 快速开始
无节点(不需要 litecoind;SQLite 数据库是唯一的存储):
```
python3 mwebp2p.py # discover peers, sync + verify blocks, then poll
python3 mwebanalysis.py # compute links / clusters / scores from the synced data
# 然后使用 PHP 提供 index.php 服务,mwebscan.db 放在它旁边
```
使用完整的 Litecoin 节点(Core RPC):
```
export LTC_RPC_URL=... LTC_RPC_USER=... LTC_RPC_PASSWORD=...
python3 mwebscan.py # create schema + sync from MWEB activation
python3 mwebanalysis.py # analysis pass (re-run any time, or install mwebanalysis.timer)
python3 mweblabels.py # optional: load entity labels
```
只能运行一个区块来源 - `mwebp2p.py` 或 `mwebscan.py`,不能同时运行(它们共享
扫描游标)。运行测试不需要节点:
`python3 tests/test_scanner.py` / `test_labels.py` / `test_p2p.py` / `test_smoke.py`。
无节点调节参数:`MWEBSCAN_P2P_POLL`(轮询秒数,默认为 60),`MWEBSCAN_P2P_COMMIT`
(每次提交的区块数,默认为 200),`MWEBSCAN_P2P_SOURCES`(设置为 `1` 可通过 Electrum 解析 peg-in 来源)。策略是“一次批量拉取,然后永远跟随”:通过节点为数据库填充初始数据,然后让 daemon 保持同步。
## 工作原理
**后端**
- `mwebscan.py` - 全节点扫描器(Core RPC):peg-ins、peg-outs (HogEx)、供应量/流量。可选 peg-in 来源捕获(`TRACK_PEGIN_SOURCES`,需要 `txindex=1`)。
- `mwebp2p.py` - 无节点扫描器:从 P2P 网络获取区块(已进行 PoW 和 merkle 验证),仅使用 Electrum 进行源地址查询。
- `mwebanalysis.py` - 分析过程(纯 SQLite):往返链接、地址重用、聚类、归属、评分、实体资金流向。可安全重新运行。
- `mwebmonitor.py` - 地址关注列表 + webhook 告警(`add` / `list` / `remove` / `check`)。
- `mweblabels.py` - 将人工精选的标签加载到数据库中。
**Web** - `index.php`(主页)、`trace.php`(浏览器)、`charts.php`、`api.php`
(JSON API),以及 `lib/`(共享数据库层、导航/页脚、可复用的追踪引擎),所有这些
都读取同一个数据库。`methodology.php` 记录了每种启发式算法及其局限性。
**工具** (`tools/`) - P2P + Electrum + 解析器库 (`p2p_fetch.py`) 以及标签
导入器 (`label_ofac.py`, `label_pools.py`, `label_graphsense.py`)。
Schema 注意事项:针对旧 schema 的数据库重新运行扫描器会失败。请在 schema
更改后删除 `mwebscan.db` 并重新扫描。
## API
只读 JSON,基于路径路由:`/api/`(例如 `/api/stats`);也支持
`/api?endpoint=...` 查询格式。这两种方式都需要 mod_rewrite;
`/api.php?endpoint=...` 是始终有效的备用方案。
```
GET /api/stats
GET /api/privacy?amount=1.0 # wallet pre-flight privacy check
GET /api/recommendations # live privacy guidance
GET /api/trace?q= # full cross-MWEB trace graph
GET /api/follow?q=&depth=3 # multi-hop follow-the-money
GET /api/address?q= # attribution + peg summary
GET /api/links?min_confidence=0.5&limit=100
GET /api/pegin_amounts?limit=100
```
在 `trace`、`links` 或 `pegin_amounts` 后加上 `&format=csv` 以下载 CSV。在
`api.php` 中设置 `$REQUIRED_KEY` 以限制访问(通过 `?key=` 或 `X-API-Key`),适用于付费层级。
## 地址标签
归属效果取决于你的标签质量,而且目前没有大型免费的批量 LTC 标签
数据集(与 BTC/ETH 相比,LTC 的标签化程度较低),因此大部分覆盖范围是直接从链上数据推导出来的。
使用 `python3 mweblabels.py ` 加载任何 `address,entity,category,confidence,source` 格式的 CSV 文件
(它会执行 upsert,因此文件可以合并)。内置的导入器包括:
- `tools/label_pools.py` - 从 `tools/pools.json` 获取矿池标签(包含 coinbase 标签 + 支付地址)
- `tools/label_ofac.py` - OFAC SDN 制裁地址
- `tools/label_graphsense.py` - GraphSense TagPacks(需要 `pip install pyyaml`)
类别:`exchange, service, pool, mixer, gambling, merchant, sanctioned, other`。
有关完整的来源获取操作指南(交易所的种子与聚类、外部来源、仅限来源标签的黄金法则),请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 部署
有关生产环境清单、systemd 单元、Apache 安全加固和性能调优,请参阅 [DEPLOY.md](DEPLOY.md)。核心要点:通过 HTTPS 提供服务,设置 `MWEBSCAN_RATE_SALT`,
尽可能将 `mwebscan.db` 保存在 webroot 之外,并且只运行一个区块来源。
## 许可证与归属
代码采用 AGPL-3.0 许可证(见 [LICENSE](LICENSE)):如果你将修改后的版本作为网络
服务运行,你必须公开发布你的源代码。MWEBscan 生成的数据和 API 输出(计算得出的
链接、评分、实体资金流向、图表数据、隐私建议、导出的 CSV/JSON,
以及我们自己的标签)均采用 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)
授权,除非另有说明;第三方标签仍受其原始来源条款的约束。
有关商业、非 AGPL 授权,请参阅 [LICENSING.md](LICENSING.md)。站点法律
声明页面:`terms.php`、`privacy.php`、`disclaimer.php`。
如果你公开使用 MWEBscan(在钱包、浏览器、仪表盘、API、托管服务、
研究报告或分支中),你必须向 MWEBscan 和
Tech1k 提供合理且可见的署名,例如“Data from MWEBscan by Tech1k”或“Powered by MWEBscan”,并附带指向
mwebscan.com 或上游仓库的链接,未经书面许可不得暗示任何背书。全文请见:[ATTRIBUTION.md](ATTRIBUTION.md)。
## 免责声明
链接是基于启发式算法的,并非确凿证据:仅根据公开链上的数据(金额、
时间、匿名集大小、地址重用、标签)推断得出。MWEB 内部的任何信息都是不可见的。
请勿将归属结果视为事实。
标签:AML风控, ffuf, MimbleWimble, 区块链分析, 反洗钱, 莱特币, 逆向工具, 钱包聚类, 隐私情报