이더리움 원시 트랜잭션 디코더

EVM 트랜잭션의 서명된 또는 미서명 RLP hex를 붙여넣으세요. 서명에서 발신자를 복원하고, calldata를 일반적인 ERC-20 및 DeFi 함수와 대조하며, 익스플로러에서 찾을 수 있도록 해시를 계산합니다.

서명 여부와 무관하게 가능합니다. 디코딩은 브라우저에서 실행되며 아무것도 외부로 전송되지 않으므로, 서명을 앞둔 미서명 트랜잭션에도 안전합니다.
예시:

브라우저에서 JavaScript로 디코딩됩니다. 주소는 절대 업로드되거나 저장되지 않습니다.

원시 이더리움 트랜잭션이란 무엇인가요?

원시 이더리움 트랜잭션은 지갑이 서명할 때 생성하는 RLP 인코딩된 바이트 문자열입니다. typed 트랜잭션의 경우 1바이트 type 접두사(0x01~0x04) 뒤에 nonce, 수수료 필드, gas limit, to, value, data, 그리고 ECDSA 서명(v, r, s)의 RLP 리스트가 이어집니다. 발신자 주소는 저장되지 않습니다. 노드가 서명에서 복원하며, 트랜잭션 해시는 정확히 이 바이트들의 Keccak-256입니다.

원시 트랜잭션을 얻는 곳

필드 설명

최대 총 수수료는 gas limit × max fee per gas로, 트랜잭션에 들 수 있는 최대 비용입니다. 실제 수수료는 보통 더 낮습니다. 미서명 해시는 개인키가 서명하는 다이제스트입니다. Access list는 가스를 낮추기 위해 스토리지 키를 미리 선언합니다. blob 트랜잭션의 경우 blob 데이터 자체는 여기 표시되는 RLP에 포함되지 않고 versioned hash만 포함됩니다.

트랜잭션 type 한눈에 보기

TypeEIP수수료 필드추가 필드
0 (레거시)v에 EIP-155 chain IDgasPrice없음
1EIP-2930gasPriceaccessList
2EIP-1559maxPriorityFeePerGas, maxFeePerGasaccessList
3EIP-4844type 2와 동일 + maxFeePerBlobGasblobVersionedHashes
4EIP-7702type 2와 동일authorizationList

예시

gas limit 21,000, maxFeePerGas 30 gwei, maxPriorityFeePerGas 2 gwei인 type 2 트랜잭션은 최대 총 수수료가 21,000 × 30 gwei = 630,000 gwei = 0.00063 ETH로 표시됩니다. 블록의 base fee가 12 gwei라면 실효 가격은 12 + 2 = 14 gwei이고 실제 수수료는 294,000 gwei = 0.000294 ETH이며, 나머지 0.000336 ETH는 청구되지 않습니다. to가 USDT 컨트랙트이고 calldata가 a9059cbb로 시작하면 토큰 전송이며, value 필드는 0입니다.

calldata를 인코딩하거나 알 수 없는 함수를 디코딩해야 하나요? ABI 인코더 / 디코더와 셀렉터 조회를 이용하세요.

자주 묻는 질문

발신자는 어떻게 복원되나요?

이더리움 트랜잭션은 from 주소를 저장하지 않습니다. 디코더는 서명된 페이로드를 Keccak-256으로 해시하고 r, s, v 값으로 공개키를 복원한 뒤 주소를 도출합니다. 모든 노드가 하는 방식 그대로입니다. 따라서 미서명 트랜잭션에는 발신자가 표시되지 않습니다.

트랜잭션 type은 무엇을 의미하나요?

Type 0은 단일 gas price를 사용하는 원래 형식입니다. Type 1(EIP-2930)은 access list를 추가합니다. Type 2(EIP-1559)는 gas price를 max fee와 priority fee로 대체합니다. Type 3(EIP-4844)은 롤업용 blob commitment를 담습니다. Type 4(EIP-7702)는 EOA가 authorization list를 통해 컨트랙트 코드에 위임할 수 있게 합니다.

'to'에 제가 보내지 않은 컨트랙트 주소가 표시되는 이유는 무엇인가요?

트랜잭션에 수신자가 없으면 컨트랙트를 생성하는 것이며, 디코더는 발신자와 nonce로 계산한, 그 컨트랙트가 갖게 될 주소를 표시합니다.

토큰의 value는 어떻게 읽나요?

ERC-20 전송은 value가 0 ETH이고 수량은 calldata 안에 있습니다. 디코더는 transfer(address,uint256) 인수를 원시 단위로 표시합니다. 변환기로 토큰의 소수점 자릿수로 나누세요.

미서명 해시와 트랜잭션 해시의 차이는 무엇인가요?

미서명 해시는 서명을 제외한 트랜잭션의 Keccak-256입니다(레거시 트랜잭션의 경우 EIP-155에 따라 v, r, s 자리에 chain ID를 넣음). 개인키가 서명하는 대상이 바로 이것입니다. 트랜잭션 해시는 완전히 서명된 인코딩의 Keccak-256이며 익스플로러가 표시하는 ID입니다.

BNB Chain, Polygon, L2에서도 작동하나요?

네. 모든 EVM 체인은 같은 인코딩을 사용합니다. 주요 네트워크의 경우 chain ID가 이름과 함께 표시됩니다.