Every hash below was individually checked on Base Sepolia (status 1) on 2026-10-11. Testnet and mock tokens only.
A. 둘째 눈 9단계 시험 (2026-10-10)
Safe 0x86D8Bd721D03817f4CB532bb356e6C6340caf63E · Guard 0xda791085211e33B3A8F8F13Bf04cD7887aCAF8da (공식 Safe v1.4.1 팩토리·싱글턴 코드해시 일치 확인)
| 단계 | 거래 해시 | 조회 결과 |
|---|---|---|
| 1. GuardFactory 배포 | 0x3575aa9a18c7797542be5afbfde4f11a79cc5cf061897efac51e042d7437d1aa | status 1 |
| 1. GuardInstaller 배포 | 0x71e343600216df3bd3fe68f4deb601bbdbf0bf511a689e160d2d2e1e3c9954f5 | status 1 |
| 1. 모의 토큰 배포 | 0x84e8ccb0ea91af5c4f522e0ebe3936488c069fb09e1cfd8029cdf4c452792d09 | status 1 |
| 2. Safe 2-of-2 생성 + Guard 장착(한 거래) | 0x1bf84c5d6a809f584e5f8cb783ad2a24c50a8e0fb5a77000a187444d581e97c3 | status 1 |
| 3. 정상 출금(A에게 100) | 0xd70014251dcbde77957ba6e911c2d2f69e64655fb0755820589e374430bd0e15 | status 1 |
| 8. 판정 머클 루트 고정 | 0xe72a4116798c6667ce2579299901d9bb0eead878f465a4f1f31505305358b5ed | status 1 |
공격 단계는 거래를 남기지 않습니다. 정직하게 구분해 적습니다.
| 공격 | 결과 | 방식 |
|---|---|---|
| C1 calldata 바꿔치기 | 둘째 눈 서명 거부 | 거래 안 보냄. 서명 1개뿐이라 Safe가 GS020으로 거절함을 확인 |
| C2 delegatecall·Guard 제거 | Guard 거절(DelegateCallForbidden) | 시뮬레이션(eth_call), 실제 거래 아님 |
| C3 두 키 탈취: 미등록 주소·상한 초과 | Guard 거절(RecipientNotAllowed) | 시뮬레이션(eth_call), 실제 거래 아님 |
| C4 요청 재사용·만료 | 둘째 눈 서명 거부 | 거래 안 보냄 |
B. 결제 관문 끝단 시연 (2026-10-10)
시험망 tUSD로 결제 → 판정 → 증명서 → 머클 루트 고정까지 이어지는 끝단 시연입니다. 도용 결제·내부망 주소(SSRF)·결제 없는 요청은 거절됐습니다.
| 단계 | 거래 해시 | 조회 결과 |
|---|---|---|
| 고객 지갑에 시험망 가스 보내기 | 0xf198b49c36c73e2297fdbbc9c40e6d21a348b3ec4fe3161d211b3f77fedf350a | status 1 |
| 시연용 tUSD 1.01 발행 | 0xb54af96b22f19fbb1551026d2686ee4ca8a851030c3192863f264c7a0792afd7 | status 1 |
| 결제 0.01 tUSD(답 하나 판정) | 0x868a14a4ea5c27210c032c9114afc07bc02ecc22e1cf690fdf7076a677d1ac89 | status 1 |
| 결제 1 tUSD(레드팀 실행) | 0x36e15005281535afcf96568748d6415f4137617d99ca83357b563907e67d0687 | status 1 |
| 증명서 머클 루트 고정(블록 47937356) | 0x1a128f96db4f579a394693a2e2d15f7c79abff28e65904fde661323d8e7f3116 | status 1 |
| 남은 가스 돌려보내기 | 0x13210290a34675da73b62885c69caff859a7dc501cb2383fe977a2e3526ad3fc | status 1 |
직접 재현하는 방법
- 위 해시를 터미널에서 조회:
cast receipt <해시> status --rpc-url https://sepolia.base.org(Foundry 필요). 1이면 성공. - Safe·Guard 주소의 코드를 탐색기에서 열어 Guard 설정(등록 수신자·상한)을 직접 읽기.
- 9단계 시험 스크립트와 Guard 소스로 빈 환경에서 처음부터 재현 — 저장소 공개 예정(현재 비공개, 빈 환경 재현 전).
폰 승인 페이지
https://approve.redteamledger.com 은 고객이 폰에서 출금 요청을 확인·서명하는 페이지입니다. 서버가 보여 주는 문구를 믿지 않고, 폰 안에서 거래 내용(수신자·금액·calldata)을 다시 계산해 표시합니다.
현재는 잠김 상태입니다. 승인용 보안칩(패스키) 키가 아직 설정되지 않아 서명 기능이 열리지 않으며, 페이지에서 실제 승인을 할 수 없습니다.