교환 사이트가 실제로 남기는 로그: 3계층 흔적과 놓치는 쿼리 문자열
저희 데이터베이스와 웹 서버를 열어 세었습니다. 주문은 열아홉 열에 IP가 없고, 10시간에 9천 줄 로그, 수량은 URL에 있고, IP와 주문 id가 만나는 경로가 하나 있습니다.
모든 교환 사이트가 '로그를 남기지 않는다'고 말합니다. 말은 싸고 확인도 싸기 때문에 저희는 저희 것을 확인했습니다. 2026년 10월 28일 10:01 UTC에 지금 읽고 계신 사이트의 데이터베이스와 웹 서버를 열어 행과 로그 줄을 세고, 주문 한 건이 실제로 무엇을 남기는지 적었습니다. 결론은 구호보다 못생겼고 구호보다 유용합니다. 교환의 흔적은 세 곳에 남을 수 있습니다. 연결을 끝내는 엣지, 애플리케이션 데이터베이스, 그리고 실제로 체결하는 상대방입니다. '로그 없음'은 한 번에 한 계층에서만 참입니다. (모네로 확인 대기)
세 계층, 세 가지 답. 엣지는 연결을 끝내는 층으로 저희의 경우 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행, 2026년 9월 24일부터 10월 27일까지. 만료 90, 지급 완료 19, 실패 5, 환불 1, 풀별로 92/22/1, DB 전체 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줄, 그 안에 서로 다른 클라이언트 IP 2,410개. 로테이션은 일 단위로 압축 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와 주문 ID가 만나는 유일한 지점. 주문 페이지는 /order/<uuid>에 있고 이 경로도 다른 경로처럼 기록됩니다. 오늘 파일에 두 줄, 같은 클라이언트가 00:13:43과 00:13:44에 같은 주문을 열었습니다. 저희 스택에서 '네트워크 주소'와 '특정 주문'이 연결되는 유일한 지점이고 기한도 같은 14일입니다. 없는 척하지 않겠습니다. 개인정보 페이지에는 '서버 로그는 주문과 연결되지 않는다'고 적혀 있고, 이 한 지점이 그 문장을 부정확하게 만드는 예외입니다. 실질 영향은 작지만 실제입니다. 주문 링크는 Tor에서 열고, 교환보다 오래 사는 채팅이나 메일에 붙이지 마십시오. (Tor 스왑은 안전한가?)
받지 않는 것, 그래도 로드되는 것. 주문에 필요한 것은 다섯 필드입니다. 파는 자산, 받는 자산, 수량, 지급 주소, 환불 주소. 계정도 이메일도 지갑 연결도 서명도 없습니다. 운영자가 받는 Telegram 알림은 '주문 70455957, 100 USDT-TRC20 → 0.14460093 XMR, 풀 changenow' 같은 형태로 id 8자, 자산, 수량, 풀만 있고 주소는 없습니다. 분석은 의도적으로 나눴습니다. 세션 리플레이는 주문 페이지 HTML에 아예 없습니다(홈 2건, 주문 페이지 0건). 집계 카운터는 로드되지만 방문을 세는 것이고 입력란을 읽지 않습니다. 주문 페이지의 거래 컴포넌트에는 명시적 마스크 속성도 붙어 있습니다. (XMR→USDT 출구 루트)
풀이 당신에 대해 쓰는 것은 저희가 지울 수 없습니다. 주문이 생기는 순간 지급 주소, 환불 주소, 수량을 제공자에게 넘깁니다. 주문이란 그런 것이기 때문입니다. 제공자는 자체 기록, 자체 스크리닝, 자체 규제기관을 갖고 있고 저희가 무엇을 해도 바뀌지 않습니다. 이것이 KYC 없음의 정직한 경계입니다. 여기서 신원은 수집하지 않지만 형식이 올바른 주소와 수량은 타임스탬프와 함께 상대방에 존재합니다. 규모 감각으로 오늘 10:02 UTC 견적: 100 USDT-TRC20이 0.14460093 XMR(XMR당 691.56 USDT), 1,000이 1.60620148(622.59), 1,337.4242가 2.1533691. 소액과 대형의 11.1% 차이는 주문당 고정비이고 시세 변동이 아닙니다. 1 XMR은 587.75537 USDT. 표시가는 움직이므로 페이지가 기준입니다. (XMR→USDT 출구 루트)
어떤 교환 사이트든 5분 감사. 1. 견적을 열고 주소창을 봅니다. 수량이 URL에 있고 GET이면 그 수량은 당신 IP와 함께 상대 접속 로그에 있습니다. 2. 주문 페이지 소스에서 clarity, hotjar, fullstory, sentry를 검색합니다. 주문 페이지의 리플레이는 주소 입력란을 봅니다. 3. 개인정보 페이지에서 형용사가 아니라 일수를 찾습니다. '짧게 보관'은 정책이 아니고 '14일'은 정책입니다. 4. 상담 채팅이 텍스트를 남기는지 시험합니다. 일부러 틀린 주소를 붙여넣고 새로고침해 남는지 봅니다. 5. 응답 헤더를 봅니다. `server: cloudflare`는 당신 IP를 가진 회사가 하나 더 있고 그 보존 기간은 읽을 수 없다는 뜻입니다. 흔한 오해 넷: KYC 없음=기록 없음으로 보는 것, 모든 주문에 같은 지급 주소를 쓰는 것(풀에서 한 줄로 이어집니다), 주소를 채팅이나 메일에 붙이는 것, document_start에 도는 확장을 Tor가 가려 준다고 믿는 것. (Tor 스왑은 안전한가?)
스캔들이 아니라 경계 지도입니다. 저희 지도는 이렇습니다. 신원을 모으지 않고, 주소록이 없고, 요청 body를 기록하지 않고, 주문 행은 대조와 환불을 위해 남기고, 14일 엣지 로그에 연결 가능한 경로가 하나 있고, 60일 라우팅 표는 주소를 건드리지 않고, 상대방에는 상대방의 기록이 있습니다. '로그를 남기지 않는다'가 참이려면 이만큼이 포함되어야 합니다. 다음에 쓰는 사이트에도 같은 항목을 같은 단위로 물어보고, 답에 숫자가 있는지 확인하십시오. (모네로 확인 대기)