각 도구는 구체적인 질문 하나에만 답합니다 — 그리고 무엇에는 답할 수 없는지도 함께 말해 줍니다.
calldata, 4바이트 셀렉터, 함수명을 붙여넣으세요. 4바이트 하나에 여러 시그니처가 대응할 수 있고 — 때로는 일부러 그렇게 만들어졌으므로 — 저희는 하나만 고르지 않고 가능한 후보를 전부 보여 드립니다.
요즘 트랜잭션은 되돌아갈 때 아무도 못 읽는 4바이트 커스텀 에러를 돌려줍니다. 저희는 그것을 실제 오류 메시지로 되돌리고, panic 코드도 16진수가 아니라 이름으로 적어 드립니다.
대부분의 ERC-20은 OpenZeppelin에 수십 줄을 얹은 것입니다. 라이브러리 지문을 먼저 빼면 남는 것이 팀이 실제로 쓴 코드이고 — 변경은 바로 거기에 숨어 있습니다.
변수명을 전부 바꾸고 서식을 새로 잡아도 아무것도 숨길 수 없습니다 — 비교는 텍스트가 아니라 토큰 구조를 기준으로 합니다. 겹치는 규모를 보고할 뿐, 누가 누구를 베꼈다고는 결코 말하지 않습니다.
그 주소에 처음 송금한 사람까지 최대 세 홉을 거슬러 올라가고, 각 홉마다 근거가 되는 트랜잭션을 함께 보여 줍니다. 거리는 유죄의 증거가 아니며, 페이지에 그렇게 적혀 있습니다.
두 주소 모두 사용자가 직접 넣으며, 어떤 명단도 관여하지 않고 어떤 고발도 성립하지 않습니다. 세 홉 이내로 제한됩니다 — '이 제한 안에서는 경로를 찾지 못했다'는 참인 말이고, '경로가 없다'는 이 도구가 내릴 수 있는 결론이 아닙니다.
저희는 파일 목록만 뽑아내고, GitHub에서 파일을 받아 로컬에서 분석하는 것은 사용자의 브라우저입니다 — 코드는 저희 서버를 거치지 않습니다. 공개 저장소만 지원합니다: 어떤 인증 정보도 전송되지 않기 때문입니다.
도구 자체(스캐너, 콘솔, SAFI 워크스페이스)의 화면은 아직 영어입니다. 이 페이지들은 그 안으로 들어가기 전에 무엇을 하게 되는지 한국어로 끝까지 설명해 드립니다.
추적 도구는 아주 쉽게 고발 기계가 됩니다. 이 도구는 그러지 않겠다는 결정 위에 서 있습니다.
두 주소 사이의 한 홉은 사람이 아니라 네트워크를 설명합니다. 큰 거래소에서 출금해 본 지갑이라면 수만 개 주소와 한 홉 거리에 있고, 그중에는 반드시 나쁜 것들도 섞여 있습니다.
그래서 이 도구는 각 홉을 증명하는 트랜잭션을 보여 주고 판단은 사용자에게 맡깁니다. 어떤 주소도 '사기꾼'이라 부르지 않습니다. 그것은 의도에 대한 추론이고, 체인은 의도를 기록하지 않으니까요.
4바이트 함수 셀렉터에는 여러 시그니처가 대응할 수 있고, 이 충돌은 빠르게 읽는 사람을 속이려고 일부러 만들어지기도 합니다. 그래서 저희는 일치하는 후보를 전부 보여 드립니다. 하나만 자신 있게 내미는 것이야말로 공격자가 이용하는 실수입니다.
경로 탐색은 세 홉과 정해진 횟수의 조회 안으로 제한됩니다. 아무것도 찾지 못했을 때 정직한 표현은 이것입니다: 그 제한 안에서는 찾지 못했다.
이 두 문장 사이의 차이가, 믿을 수 있는 도구와 듣기 좋은 말만 하는 도구의 차이입니다.
두 ERC-20 사이의 원시 유사도는 대체로 OpenZeppelin이 얼마나 널리 쓰이는지를 재는 값입니다. 저희는 라이브러리 지문을 먼저 빼서, 결과가 이 프로젝트를 위해 쓰인 코드에 관한 것이 되게 합니다.
그렇게 하고도 도구는 겹치는 규모만 보고합니다. 누가 누구를 베꼈는지는 코드가 답할 수 있는 질문이 아닙니다 — 그것은 시간선이 답하고, 그것을 읽는 사람은 사용자입니다.