안녕하세요 앱 개발팀 peter입니다 😎
이더리움에서는 보통 Gas만 이해하면 수수료를 설명할 수 있습니다. 하지만 TRON은 조금 다릅니다. TRON은 Bandwidth와 Energy라는 두 종류의 자원을 사용하고, 여기에 신규 계정 생성비나 메모 수수료 같은 추가 비용이 붙을 수 있습니다.
그래서 같은 전송이라도 상황에 따라 수수료가 완전히 달라질 수 있습니다.
01. TRON 수수료 모델의 핵심
TRON 수수료를 이해하는 가장 쉬운 방법은 "무료 자원"이라는 개념부터 보는 것입니다.
TRON 계정은 매일 일정량의 무료 Bandwidth를 받습니다.
또한 TRX를 스테이킹하면 Energy를 확보할 수 있습니다.
실제로 TRX가 수수료로 소각되는 것은 이 무료 자원이 부족할 때뿐입니다.
즉,
무료 자원이 충분하면 → 0 TRX
무료 자원이 부족하면 → 부족한 만큼만 TRX 소각
TRON 수수료 계산은 결국 아래 공식 하나로 정리됩니다.
필요 자원 - 보유 자원 = 부족 자원
부족 자원 × 단가 = 실제 수수료
02. Bandwidth: 트랜잭션 크기에 대한 비용
Bandwidth는 트랜잭션을 네트워크에 전파하는 비용입니다.
쉽게 말해 트랜잭션의 크기가 클수록 더 많은 Bandwidth가 필요합니다.
전송을 시도할 때 지갑은 먼저 트랜잭션이 얼마나 큰지 계산하고, 현재 계정이 보유한 무료 Bandwidth와 비교합니다.
무료 Bandwidth가 충분하다면 비용은 0입니다.
반대로 부족하다면 부족한 양만큼 TRX가 소각됩니다.
그래서 같은 TRX 송금이라도 어떤 계정은 0 TRX, 어떤 계정은 소액의 수수료가 발생할 수 있습니다.
03. Energy: 스마트컨트랙트 실행 비용
Energy는 스마트컨트랙트를 실행할 때 사용하는 자원입니다.
여기서 네이티브 TRX 전송과 TRC-20 토큰 전송이 갈립니다.
네이티브 TRX 전송
단순히 잔액만 이동합니다.
컨트랙트 실행이 없기 때문에 Energy가 필요하지 않습니다.
TRC-20 토큰 전송
USDT 같은 토큰은 실제로 토큰 컨트랙트의 transfer() 함수를 호출하는 작업입니다.
따라서 스마트컨트랙트 실행 비용인 Energy가 필요합니다.
토큰마다 내부 구현이 다르기 때문에 필요한 Energy도 달라질 수 있습니다.
그래서 지갑은 전송 전에 노드에게 시뮬레이션을 요청해 예상 Energy 사용량을 계산합니다.
만약 보유한 무료 Energy가 충분하다면 비용은 0입니다.
부족하면 부족한 만큼만 TRX가 소각됩니다.
04. 자원 외에 붙는 추가 수수료
TRON에는 Bandwidth와 Energy만 있는 것이 아닙니다.
특정 상황에서는 고정 TRX 수수료가 추가됩니다.
대표적인 예가 두 가지입니다.
신규 계정 생성
받는 주소가 아직 한 번도 활성화되지 않은 주소라면 계정을 생성해야 합니다.
이 경우 보내는 사람이 생성 비용을 부담합니다.
그래서 평소보다 수수료가 갑자기 크게 증가할 수 있습니다.
메모(Note)
전송 시 메모를 함께 기록하면 추가 수수료가 발생합니다.
작은 기능처럼 보이지만 실제 수수료에는 영향을 줍니다.
05. 그래서 왜 0 TRX였다가 27 TRX가 될까?
이제 답은 명확합니다.
0 TRX
무료 Bandwidth가 충분함
무료 Energy가 충분함
신규 계정 생성 없음
메모 없음
결과
수수료 0 TRX
1~2 TRX 수준
무료 Bandwidth 일부 부족
메모 사용
소량의 Energy 부족
결과
소액의 수수료 발생
20~30 TRX 수준
TRC-20 전송
무료 Energy 부족
신규 계정 생성까지 발생
결과
수수료가 크게 증가
사용자가 보기엔 같은 "보내기" 버튼이지만, 실제로는 사용한 자원과 조건이 전혀 다르기 때문에 결과도 달라지는 것입니다.
06. 정리
TRON 수수료를 한 문장으로 요약하면 다음과 같습니다.
필요한 자원에서 무료 자원을 뺀 부족분과 추가 수수료를 합친 값
Bandwidth는 트랜잭션 크기에 대한 비용입니다.
Energy는 스마트컨트랙트 실행 비용입니다.
그리고 신규 계정 생성비나 메모 수수료 같은 추가 비용이 더해질 수 있습니다.
그래서 어떤 전송은 0 TRX가 되고, 어떤 전송은 27 TRX가 됩니다.
복잡해 보이지만 원리는 단순합니다.
TRON은 "사용량 전체"가 아니라 "무료 자원으로 충당하지 못한 부족분"에 대해서만 비용을 청구하는 네트워크이기 때문입니다.
참고 개념
TRON Resource Model (Bandwidth · Energy)
triggerconstantcontract
getaccountresource
getchainparameters
TRC-20 Token Standard
