궁금한 주제를 찾아보세요

비트코인, 스테이블코인, 온체인 데이터처럼 주제로 검색하세요.

다시 읽을 이야기

저장한 글은 이 브라우저에만 보관됩니다.

기초지식코인 기초

탐색기의 Input Data를 읽으면 무엇을 알 수 있을까

EVM input data의 4바이트 함수 선택자와 ABI 인수를 해석하고 미검증 계약·충돌 선택자의 한계를 구분합니다.

난이도 입문기초 카테고리와 설명 방식 기준검토 정보AI 보조 초안 · 출처 목록 제공 · 주장별 대조 진행 중
원시 입력 띠가 해독 장치를 통과해 함수와 인수 모양으로 나뉘고 미확인 정보가 남는 개념도
주제의 이해를 돕기 위해 imagegen으로 제작한 AI 생성 개념 일러스트
먼저 읽는 핵심

to 주소와 chain을 확인한 뒤 selector와 인수를 봅니다.
탐색기 디코딩은 verified ABI와 현재 implementation에 의존합니다.
decoded 함수명만으로 안전성이나 결과를 보증하지 않습니다.

EVM transaction의 input data는 계약에 전달되는 calldata입니다. 일반적인 ABI 호출은 첫 4바이트가 함수 signature의 selector이고 나머지가 32바이트 단위로 인코딩된 arguments입니다. verified contract ABI가 있으면 탐색기가 함수명과 주소·금액을 풀어 보여 줄 수 있지만, selector만으로는 충돌 가능성이 있고 proxy·미검증 bytecode·동적 인수에서는 해석이 틀릴 수 있으므로 to 주소와 현재 implementation, source를 함께 확인해야 합니다.

Input Data는 계약 호출의 지시문입니다

ethereum.org는 transaction의 input data가 임의 데이터를 담는 선택 필드이며 Solidity contract가 ABI 규칙으로 해석한다고 설명합니다. 단순 EOA ETH 송금은 보통 data가 비어 있지만 contract interaction은 함수와 arguments를 담습니다. contract deployment는 to가 없고 data에 생성 code가 들어갑니다.

먼저 chain, to, value, sender를 확인한 뒤 input을 읽습니다. 같은 bytes라도 다른 contract code가 다르게 처리할 수 있으므로 calldata만 떼어 해석하지 않습니다. proxy address라면 실행 code는 현재 implementation에 있을 수 있습니다.

Input Data는 거래의 동작 설명서지만, 그 설명서를 실제로 해석하는 주체는 목적지 계약 코드입니다.

JOBCOIN 해설

VISUAL GUIDE거래 요청부터 블록 확인까지
거래 요청, 블록 포함, 후속 블록 확인을 구분한 거래 처리 개념도
그림과 함께 짚어볼 본문 내용

그림은 이 주제의 공통 개념을 단순화한 설명입니다. 아래 항목에서 이 글의 구체적인 조건과 예외를 함께 읽어보세요.

  1. Input Data는 계약 호출의 지시문입니다

    ethereum.org는 transaction의 input data가 임의 데이터를 담는 선택 필드이며 Solidity contract가 ABI 규칙으로 해석한다고 설명합니다.

  2. 첫 4바이트와 나머지 인수를 나눕니다

    함수 selector는 보통 keccak256('함수명(타입,타입)')의 앞 4바이트입니다.

  3. approve와 transfer 인수를 실제 단위로 바꿉니다

    approve(address spender,uint256 amount)를 decode했다면 spender 전체 주소와 raw amount를 봅니다.

AI로 제작한 개념도 · 실제 가격·거래 내역·통계가 아닙니다.

첫 4바이트와 나머지 인수를 나눕니다

함수 selector는 보통 keccak256('함수명(타입,타입)')의 앞 4바이트입니다. 예를 들어 0xa9059cbb는 흔히 transfer(address,uint256)로 알려져 있습니다. 이어지는 32바이트 words에는 앞을 0으로 채운 address와 integer 등이 ABI 규칙으로 놓입니다.

ethereum.org 예시는 verified source가 있어 selector를 transfer로 확인하고 주소와 value를 decode합니다. selector 데이터베이스에는 같은 4바이트 후보가 여러 개 있을 수 있습니다. 정확한 contract ABI와 bytecode가 없으면 ‘가능한 함수’로만 표현해야 합니다.

Input Data 구성
구간 의미 검증
0x 이후 4바이트 function selector ABI·source와 대조
고정형 word address·uint 등 타입·decimals 확인
offset word 동적 데이터 위치 ABI 기준 추적
to address 해석 contract proxy 여부 확인
value field 함께 보낸 native coin calldata와 별도

approve와 transfer 인수를 실제 단위로 바꿉니다

approve(address spender,uint256 amount)를 decode했다면 spender 전체 주소와 raw amount를 봅니다. amount는 token decimals를 적용해야 화면 단위가 되며 2^256에 가까운 큰 값은 unlimited allowance로 쓰일 수 있습니다. transfer의 recipient도 transaction의 to와 다릅니다. to는 token contract, calldata 안 주소가 실제 token 수신자입니다.

swap router 호출은 path, recipient, minimum output, deadline이 중첩될 수 있습니다. multicall은 내부 calldata를 다시 decode해야 합니다. 바깥 함수명만 ‘swap’이라고 보고 모든 최종 수신자와 approval을 확인했다고 말하면 안 됩니다.

  • 올바른 chain과 to address를 확인합니다.
  • verified source와 현재 implementation을 찾습니다.
  • selector 후보를 ABI와 대조합니다.
  • 주소·금액·deadline을 실제 단위로 풉니다.
  • simulation과 receipt 결과를 교차 확인합니다.

프록시와 미검증 계약에서는 한계를 적습니다

proxy 자체 ABI만 보면 implementation의 함수가 없거나 오래된 ABI로 decode될 수 있습니다. explorer의 ‘as Proxy’ 기능과 ERC-1967 implementation을 확인합니다. upgrade 직전·직후에는 같은 proxy와 selector가 다른 logic을 실행할 수 있어 block 시점 구현이 중요합니다.

source가 verified되지 않았다면 selector 이름 서비스의 추정값을 사실로 단정하지 않습니다. bytecode decompile도 변수명과 의도를 복원하지 못할 수 있습니다. 고가 거래는 공식 contract, audit 버전, 실제 simulation을 확보할 때까지 서명하지 않습니다.

실패와 로그까지 연결해 읽습니다

input은 사용자가 요청한 지시이고 receipt와 logs는 실행 결과의 일부입니다. 거래가 revert했다면 input에 transfer가 있어도 token balance는 바뀌지 않습니다. 반대로 multicall 내부에서 여러 호출이 발생하면 traces가 중간 경로를 보여 줍니다. 요청과 결과를 혼동하지 않습니다.

의심 거래를 분석할 때 TxID, selector, decoded arguments, ABI 출처, implementation block, receipt status를 기록합니다. 시드나 private key는 필요하지 않습니다. 탐색기 UI의 해석이 달라질 수 있으므로 raw input을 증거로 보존합니다.

자주 묻는 질문

0xa9059cbb면 항상 ERC-20 transfer인가요?

흔한 후보지만 4바이트 충돌이 가능하므로 목적지 contract ABI와 verified source를 확인해야 합니다.

transaction to가 토큰을 받은 주소인가요?

ERC-20 transfer에서는 to가 token contract이고 실제 recipient는 calldata 인수에 들어갑니다.

Input Data를 decode하면 거래 안전성이 증명되나요?

아닙니다. 함수 의도를 이해하는 단서이며 contract 코드·상태·프록시·실행 결과를 함께 봐야 합니다.

참고한 원문 자료

자료 확인 기준일 2026.09.27
  1. Transactionsethereum.org
  2. Proxy APIdocs.openzeppelin.com
자료 대조 기록과 확인 범위
출처 수집
원문 링크 2개 제공
핵심 주장 대조
완료 근거가 아직 기록되지 않았습니다.
분야 전문가 검수
별도 완료 기록이 없습니다.

원문 링크와 자료 확인일은 글 전체의 주장 대조나 전문가 검수 완료를 뜻하지 않습니다. 별도 확인이 필요한 절차는 원문의 적용 대상과 최신 안내를 함께 확인해 주세요.

AI 활용 안내

이 글은 초안 구성과 자료 정리에 AI를 활용했습니다. 글에 표시된 출처와 기준일을 함께 확인해 주세요. 별도 검토 정보가 없다면 전문가 검수를 뜻하지 않습니다.

이해를 위한 정보 콘텐츠

이 글은 특정 자산의 매수·매도 또는 수익을 권유하지 않습니다. 자료의 발표 시점과 이후 변경 사항을 함께 확인해 주세요.

편집 원칙 보기 →이 기사 정정 제보 →