兑换站到底记录了哪些日志:三层留痕与没人审计的查询串
我们打开自己的数据库和 Web 服务器数了一遍:订单十九个字段里没有 IP,十小时写了九千行日志,金额就躺在 URL 里,还有一条路径让 IP 和订单号相遇。
每个兑换站都说自己不记日志。这句话成本很低,验证成本也很低,所以我们验了自己:2026 年 10 月 28 日 10:01 UTC,我们打开你现在读的这个站的数据库和 Web 服务器,数了行数、数了日志行,把「一笔订单到底留下什么」写下来。结论不如口号好听,但比口号有用。一次兑换可能在三处留痕——终结你连接的边缘、应用数据库、以及真正成交的对手方——而「无日志」在同一时刻只对其中一层成立。
三层,三个不同答案。 边缘是终结你连接的那一层:Cloudflare,然后是源站的 nginx。它对每个 HTTP 请求写一行——URL、状态码、字节数、UA、两个 IP。应用是一个 SQLite 文件,一笔订单一行的表。对手方是真正换币的流动性提供方:它收到收款地址、退款地址和金额,并跑自己的筛查。一个站点说「我们不记日志」却不说指哪一层,等于没回答。有用的问题要窄得多:写了什么、写在哪、留多久、能不能和某一笔订单对上。 (转错网络如何找回)
第二层:订单行,十九个字段。 orders 表恰好十九列:id、corridor、from_asset、to_asset、from_amount、to_amount、to_address、refund_address、provider、provider_order_id、deposit_address、deposit_extra_id、markup_bps、status、provider_status、created_at、updated_at、affiliate_status、commission_est_usd。没有一列叫 ip、user_agent、email 或 session——我们查的是表结构,不是文档。10:01 UTC 时表里 115 行,跨 9 月 24 日到 10 月 27 日:90 过期、19 已付、5 失败、1 退款,分属三个池(92、22、1),整库 771 KB。两个邻居同样重要:一张 97 行的扫描器订单表(留着是因为要靠这个模式拦下一波),以及一张 1,173 行的路由表,只记走廊、金额和哪个池赢,60 天自动清。客服对话是唯一存自由文本的地方:我们数的时候 51 条,所以我们说别把地址粘进去。
第一层:边缘一行一行写了什么。 nginx 的格式就一行:远端地址、字面量 CFIP= 加 Cloudflare 传来的真实客户端 IP、时间戳、请求行、状态码、字节数、完整 UA。今天一条真实的:`GET /api/quote?from=usdt-tron&to=xmr-xmr&amount=1337.4242 HTTP/1.1" 200 157 "curl/8.5.0`。午夜到 10:01 这个文件写到 9,748 行,每分钟 16.2 行,其中含 2,410 个不同客户端 IP。轮转按天、保留 14 份压缩,14 个归档文件合计 392,163 行。唯一关掉日志的 location 是新闻图片目录——一张静态图不说明任何你需要知道的事。其余全写,包括订单页和每个 API 调用。
查询串是最没人审计的泄漏点。 看那行里有什么:金额,原样,在 URL 里。报价是 GET,所以任何人报的每一次价,都会变成「币对+金额」贴在 IP 和 UA 旁边的 14 天记录——今天 15 行,14 个归档日里 982 行。地址从不走这条路:下单是 POST,字段在 body 里,而 nginx 没配日志记 body。我们验过:用字面量 4INVALID 当收款地址下一单(返回 400),再在日志里 grep 这个串,命中 0 次。下单请求在日志里只有 `POST /api/order HTTP/1.1" 400 130` 这一行。给爱读别人日志的人一个细节:第一列是 Cloudflare 边缘(样本里 172.71.x、104.22.x),真实客户端在 CFIP= 后面;只数第一列,数到的是 CDN,不是访客。
IP 与订单号唯一相遇的地方。 订单页在 /order/<uuid>,这个路径和其他路径一样被记录。今天的文件里有两条,同一个客户端在 00:13:43 和 00:13:44 打开同一个订单。这是我们整套栈里「网络地址」与「具体订单」唯一的连接点,期限也是同样的 14 天。我们不会假装这个连接点不存在:隐私页写的是「服务器日志不与订单关联」,这一条就是让那句话不够准确的例外。实际后果不大但真实——订单链接请在 Tor 里打开,别粘进聊天软件或一封比这次兑换活得久的邮件。 (Tor 换币安全吗)
我们从不接收的东西,以及仍会加载的东西。 下单要五个字段:兑出资产、兑入资产、金额、收款地址、退款地址。没有账户、没有邮箱、不连钱包、不要签名。运营收到的 Telegram 通知长这样:「订单 70455957,100 USDT-TRC20 → 0.14460093 XMR,池 changenow」——8 位 id、资产、金额、池,没有地址。分析工具这一层是刻意分开的:会话回放根本不在订单页的 HTML 里(首页命中 2 次,订单页 0 次);聚合访客计数器则会加载,因为它只数一次访问、不读输入框。订单页上的交易组件还带显式遮罩属性,即使以后加载了别的东西,文本也不会被录。 (转错网络如何找回)
池子那边写了什么,不是我们能擦掉的。 建单那一刻,我们就把收款地址、退款地址和金额交给了池方——订单本身就是这些。池方有自己的记录、自己的筛查、自己的监管者,我们做什么都改变不了。这才是「无 KYC」的诚实边界:这里不收身份,但一个格式正确的地址和一个金额,带时间戳地存在于对手方。给个量级,今天 10:02 UTC 的站内报价:100 USDT-TRC20 换 0.14460093 XMR(691.56 USDT/XMR),1,000 换 1.60620148(622.59),1,337.4242 换 2.1533691——小额与大额差 11.1%,那是每单固定成本,不是行情波动。1 XMR 卖 587.75537 USDT。实时报价会动,以页面为准。 (转错网络如何找回)
五分钟审计任何兑换站。1. 打开报价,看地址栏:金额在 URL 里、请求是 GET,那它就带着你的 IP 躺在对方访问日志里。2. 打开一个订单页看源码,搜 clarity、hotjar、fullstory、sentry——订单页上的回放工具看得见地址输入框。3. 隐私页里找「天数」而不是形容词:「留存时间很短」不是政策,「14 天」是。4. 试客服对话:粘一个故意写错的地址,刷新看它还在不在。5. 看响应头:`server: cloudflare` 意味着还有一家公司也拿着你的 IP,它自己的留存期你查不到。四个常见误判:把无 KYC 当成无记录;所有订单复用同一个收款地址(在池子那边就串成一条线);把地址粘进聊天或邮件;以为 Tor 能盖住一个在 document_start 就跑起来的浏览器扩展。 (Tor 换币安全吗)
这些都不是丑闻,是一张边界图。我们这张长这样:不收身份、没有地址簿、不记请求体、订单行为了对账和退款留着、14 天的边缘日志里有一条可关联路径、60 天的路由表从不碰地址、对手方有它自己的档案。这就是「我们不记日志」要成立时必须包含的内容。下次用别的站,照这张单子用同样的单位问一遍,看对方给的答案里有没有数字。