개요

이더리움 단위 체계는 10의 지수 기반으로 딱 떨어지게 설계됨 EVM은 부동소수점을 지원하지 않으므로 모든 값은 정수로 표현, 단위 나눔과 스케일링이 필수

단위 환산

1 ETH = 10^9 Gwei = 10^18 Wei

풀어서 보면 다음과 같음

  • 1 ETH
  • = 1,000,000,000 Gwei (10억 그웨이)
  • = 1,000,000,000,000,000,000 Wei (100경 웨이)

용도별 구분

  • Wei: 최소 단위, 스마트 컨트랙트 내부 연산에 사용. Solidity에 소수점 개념 없음
  • Gwei: 10^9 Wei. 가스 가격 표시 단위로 사용, 사람이 읽고 비교하기 쉬움
  • Ether: 10^18 Wei. 지갑 잔고, 일상적 송금 금액 표시에 사용

개발자 상식: ERC-20 decimals = 18

ERC-20 토큰에서 decimals를 18로 두는 관례는 이더리움 기본 최소 단위(Wei) 스케일을 그대로 따름 의미: 토큰 1개가 10^18의 최소 단위로 분할 가능 예외: 스테이블 코인처럼 법정화폐 소수 자리를 맞추는 토큰은 decimals 6 등으로 설정하는 경우 있음

구현 팁

  • 온체인 연산은 항상 정수로 처리. 금액 연산 시 기준 단위를 Wei로 고정
  • 스케일 변환 관례: ETH ↔ Wei 변환 시 1e18 계수 사용. 예) amountInWei = amountInEth * 1e18
  • 프런트엔드 표현 단계에서만 단위 변환 및 포맷팅. 사용자 입력은 문자열 → 정수 스케일 업 후 처리 권장
  • 가스비 표시는 Gwei로 노출, 내부 연산은 Wei로 계산. base fee와 tip 합산 시 단위 혼용 주의

정리

핵심은 정수 기반 단위 스케일 고정과 문맥별 표현 단위 분리 컨트랙트 내부 연산은 Wei, 가스 가격 표시는 Gwei, 사용자 노출은 Ether라는 역할 구분 유지

참고자료