감사는 한 장의 사진입니다. 이 도구는 사진이 찍힌 다음에 벌어지는 일을 지켜봅니다. owner 개인키가 넘어가고, 새로 발행되고, 프록시가 업그레이드되고, 유동성이 빠져나갑니다 — 리포트가 틀린 적은 없습니다. 다만 이미 지나간 어느 한순간에 대한 질문에 답하고 있을 뿐입니다. 워치타워는 그 리포트의 값어치를 바꾸는 7종의 사건을 15분마다 읽고, 그중 어느 하나라도 일어나면 몇 분 안에 알려 드립니다.
무엇이든 밀어 넣는 피드가 아닙니다. 이 7종이 선택된 이유는 각각이 감사 리포트의 값어치를 바꾸기 때문입니다. 아래 항목은 이 페이지를 만들 때 src/watch.js에서 읽어 온 것입니다 — 그래서 이 목록은 엔진이 실제로 감시하지 않는 것을 광고할 수가 없습니다.
owner는 규칙을 바꿀 수 있는 계정입니다. 그것이 넘어가는 순간, 리포트에서 '누가 이 컨트랙트를 통제하는가'에 대한 모든 결론이 더 이상 성립하지 않습니다.
출시 후에 생겨난 공급량은 모든 보유자를 희석시킵니다. 이 점검은 영주소에서 나오는 Transfer 이벤트를 읽습니다 — 새 단위가 만들어질 수 있는 유일한 방식이기 때문입니다.
한 번도 쓰인 적 없는 정지 스위치와 방금 눌린 정지 스위치는 완전히 다른 컨트랙트입니다. 거래가 멈추는 순간은 가장 먼저 알고 싶은 순간입니다.
프록시 업그레이드 한 번이면 같은 주소 뒤의 코드가 통째로 교체됩니다. 그때까지의 모든 리포트가 이 컨트랙트에 대해 말한 내용은, 이제 거기 없는 코드에 관한 것이 됩니다.
역할 부여는 평범한 호출자가 조용히 관리자가 되는 방식입니다. 이 중 사람이 직접 발견하기 가장 어렵고, 블록 익스플로러에서도 가장 놓치기 쉽습니다.
유동성이 풀을 떠나는 일은 보유자가 가장 늦게 알면서 가장 신경 쓰는 사건입니다. 어떤 가격 소스가 아니라 페어 자신의 burn 이벤트를 읽습니다.
그 주소의 런타임 바이트코드를 기준선을 세울 때 한 번 해싱하고, 이후 매 회차마다 다시 해싱합니다. 값이 달라졌다면 코드가 바뀐 것입니다 — 어떤 메커니즘을 썼든, 이벤트를 냈든 내지 않았든.
지나치게 크거나 무제한인 승인. 지갑은 DEX를 쓰거나 민팅하거나 브리지할 때마다 어떤 컨트랙트에 토큰을 대신 옮길 권한을 주고, 그 권한은 만료되지 않습니다. 재무 지갑이나 배포자 지갑의 모니터링은 승인이 나가는 순간 그것을 보고합니다 — 기준값은 사용자가 정합니다. 숫자 없는 '지나치게 큰'은 그저 의견일 뿐이니까요.
도구 자체(스캐너, 콘솔, SAFI 워크스페이스)의 화면은 아직 영어입니다. 이 페이지들은 그 안으로 들어가기 전에 무엇을 하게 되는지 한국어로 끝까지 설명해 드립니다.
장점만 나열하는 모니터링 제품은, 사각지대를 프로덕션에서 직접 찾으라고 요구하는 것과 같습니다.
오프체인의 모든 일. 개인키를 어떻게 보관하는지, 누가 쥐고 있는지, 팀이 무엇을 결정했는지. 체인은 의도가 아니라 트랜잭션을 기록합니다.
의도. owner가 바뀌었다고 보고할 뿐, 그것이 계획된 인수인계인지 도난인지는 대신 판단해 드리지 않습니다.
이 주소를 등록하기 이전의 모든 것. 기준선이 곧 출발선이며 과거는 소급되지 않습니다. 그리고 지원하지 않는 네트워크 — 현재는 Ethereum, BNB Chain, Polygon, Base, Arbitrum, Optimism 여섯 곳입니다.
주소를 등록하는 그 순간 헤드 블록, 런타임 코드 해시, 풀 잔액을 한 번 읽습니다. 그 뒤의 모든 것은 이것과의 비교입니다.
그래서 오늘 만든 모니터링은 지난주에 일어난 일에 대해 알릴 수 없습니다 — 그리고 도구는 본 척하는 대신 그렇게 그대로 말합니다.
회차마다 지난 커서 이후의 로그를 체인에 요청하고, 선택하신 이벤트 토픽으로 걸러냅니다.
네트워크별 블록 범위는 상수가 아니라 그 네트워크 자신의 블록 생성 속도에서 가져옵니다 — Ethereum에서 충분한 범위는 Arbitrum에서 영영 뒤처지게 만들고, 조용히 이벤트를 놓치게 합니다.
무엇이 바뀌었는지, 왜 중요한지, 어떤 트랜잭션이 그렇게 했는지를 블록 익스플로러 링크와 함께 전합니다.
모든 이벤트 기록에는 전달 표시가 붙습니다. 그래서 허공으로 나간 경보는 아무것도 표시되지 않는 대신 '미전달'로 보입니다. 현재 전달 채널은 Telegram이며 계정 페이지에서 한 번에 연결됩니다. 계정에 Telegram이 연결되어 있지 않으면 경보는 갈 곳이 없습니다 — 콘솔과 모니터링을 만드는 그 순간에 이 사실을 그대로 말씀드립니다. 몇 달 뒤 침묵 끝에 알게 되도록 두지 않습니다.