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, 区块链分析, 反洗钱, 莱特币, 逆向工具, 钱包聚类, 隐私情报