Tron 트랜잭션 디코더

raw_data_hex, 서명된 전체 트랜잭션, 또는 TronGrid나 tronWeb의 JSON을 붙여넣으세요. protobuf는 로컬에서 디코딩되고, txID가 계산되며, 서명에서 서명자를 복원하고, TRC-20 호출은 수신자와 수량으로 변환됩니다.

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

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

Tron 원시 트랜잭션이란 무엇인가요?

Tron 원시 트랜잭션은 protobuf로 직렬화된 Transaction.raw 메시지로, TronGrid와 tronWeb은 이를 raw_data_hex로 제공합니다. 참조 블록 바이트와 해시, expiration, timestamp, fee limit, 선택적 memo 데이터, 그리고 TransferContract나 TriggerSmartContract 같은 typed 컨트랙트 목록이 들어 있습니다. txID는 이 바이트들의 SHA-256이며, 서명은 같은 해시에 대한 65바이트 secp256k1 서명입니다.

필드 설명

TRC-20 전송

Tron의 USDT 결제는 contract_address가 토큰이고 data가 transfer(address,uint256)인 TriggerSmartContract입니다. 디코더는 수신자를 원시 20바이트 hex 인수와 T… 주소 두 가지로 표시하고, 수량은 원시 단위로 표시합니다(USDT는 소수점 6자리이므로 1,000,000으로 나누세요).

디코더가 이해하는 컨트랙트 유형

컨트랙트 유형기능주요 필드
TransferContractTRX 전송owner_address, to_address, amount (sun)
TriggerSmartContract컨트랙트 호출 (TRC-20 transfer, approve, swap)contract_address, data, call_value
TransferAssetContractTRC-10 토큰 전송asset_name, to_address, amount
FreezeBalanceV2 / UnfreezeBalanceV2에너지 또는 대역폭을 위한 TRX 스테이킹 / 스테이킹 해제frozen_balance, resource
DelegateResourceContract다른 계정에 에너지 또는 대역폭 대여receiver_address, balance, resource
VoteWitnessContract슈퍼 대표(SR) 투표votes (address, count)

예시

USDT 결제는 contract_address가 TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t이고 data가 a9059cbb + 32바이트 워드로 된 수신자 + 수량인 TriggerSmartContract로 디코딩됩니다. data가 …0bebc200으로 끝나면 원시 단위 200,000,000 = 200 USDT(소수점 6자리)입니다. fee_limit 100000000 sun은 에너지 비용을 100 TRX로 제한하며, timestamp로부터 60초 뒤의 expiration은 tronWeb의 기본값입니다.

관련 도구: Tron 주소 변환기, USDT 주소 검증기, Nile 일괄 전송.

자주 묻는 질문

raw_data_hex란 무엇인가요?

Transaction.raw의 protobuf 직렬화입니다: 참조 블록, expiration, timestamp, fee limit, 컨트랙트 목록. 이것의 SHA-256이 txID이며, 개인키가 서명하는 대상입니다. tronWeb의 transactionBuilder는 JSON 뷰와 함께 이를 반환합니다.

서명자는 어떻게 복원되나요?

Tron은 이더리움처럼 secp256k1을 사용합니다. 디코더는 raw_data를 SHA-256으로 해시하고 65바이트 서명에서 공개키를 복원한 뒤 T… 주소를 도출합니다. owner_address와 일치하면 owner 키로 서명된 트랜잭션이고, 일치하지 않으면 active 권한 키(다중 서명)로 서명되었거나 유효하지 않은 것입니다.

어떤 컨트랙트 유형이 디코딩되나요?

TransferContract(TRX), TriggerSmartContract(TRC-20 전송 및 기타 호출, calldata 인수 포함), TransferAssetContract(TRC-10), CreateSmartContract, FreezeBalanceV2 / UnfreezeBalanceV2, DelegateResource / UnDelegateResource, WithdrawExpireUnfreeze, VoteWitness, AccountCreate, AccountUpdate. 그 외 유형은 원시 protobuf 필드를 표시합니다.

JSON의 txID가 계산된 값과 다른 이유는 무엇인가요?

절대 달라서는 안 됩니다. 다르다면 raw_data_hex와 JSON의 txID가 같은 트랜잭션에 속하지 않는 것으로, 변조되었거나 복사-붙여넣기 실수의 징후입니다. 디코더가 이를 표시합니다.

서명은 왜 65바이트인가요?

r(32바이트), s(32바이트), 복구 ID v(1바이트)로, 이더리움과 같은 레이아웃입니다. 복구 ID 덕분에 디코더는 트랜잭션에 주소가 저장되어 있지 않아도 서명자의 공개키, 그리고 T… 주소를 도출할 수 있습니다.

TronLink가 서명하기 전에 트랜잭션을 디코딩할 수 있나요?

네. tronWeb.trx.sign에 전달되는 객체에 raw_data_hex가 들어 있습니다. 객체 전체를 붙여넣으세요. 결과에 승인하려는 컨트랙트 호출이 정확히 무엇인지 표시됩니다.