코인과 토큰: USDC를 보내려면 왜 ETH가 필요할까

·4분 읽기·작성자: SSP Editorial Team
SSP Academy 표지: 코인과 토큰, 그리고 가스비

코인과 토큰: USDC를 보내려면 왜 ETH가 필요할까

암호화폐에서 가장 흔한 당황스러운 순간 중 하나입니다. Ethereum에 500달러어치 USDC가 있어서 보내려고 했는데, 지갑이 잔액이 부족하다고 합니다. 무엇이 부족하다는 걸까요? 답은 코인과 토큰의 차이에 있습니다. 이 차이를 이해하고 나면 지갑의 많은 동작이 갑자기 이해되기 시작합니다.

코인은 체인 고유의 돈입니다

모든 블록체인에는 규칙에 내장된 네이티브 자산이 있습니다. Bitcoin에는 BTC, Ethereum에는 ETH, Solana에는 SOL, Polygon에는 POL이 있습니다. 이것이 코인입니다. 네트워크 자체가 코인을 기록하며, 네트워크가 트랜잭션 처리의 대가로 받는 것도 바로 코인입니다.

코인을 보내면 체인이 이를 직접 옮깁니다. 중간에 컨트랙트는 없고, 프로토콜 자체의 장부만 있을 뿐입니다.

토큰은 컨트랙트 안에 존재합니다

토큰은 다릅니다. Ethereum과 유사한 체인에서 USDC, USDT, 거버넌스 토큰 같은 토큰은 자체 원장을 관리하는 스마트 컨트랙트입니다. 원장에는 주소 목록과 각 주소가 보유한 토큰 수량이 기록됩니다. Solana에서는 토큰이 SPL 표준을 따르며, 잔액은 별도의 토큰 계정에 보관됩니다.

여러분의 "USDC 잔액"은 사실 USDC 컨트랙트 안에 있는, 특정 금액이 여러분의 주소에 속한다고 적힌 항목입니다. USDC를 보낸다는 것은 그 컨트랙트에 원장 업데이트를 요청하는 것, 즉 여러분의 항목에서 다른 사람의 항목으로 숫자를 옮기는 것을 의미합니다.

그래서 같은 토큰이 여러 체인에서 완전히 별개의 존재로 있을 수 있습니다. Ethereum의 USDC와 Polygon의 USDC는 서로 다른 원장을 가진 서로 다른 컨트랙트입니다. 어떤 버전은 네이티브로 발행되고, 어떤 버전은 다른 곳에 보관된 자산의 래핑 또는 브리지 표현입니다.

가스비는 항상 코인으로 냅니다

당황스러운 상황은 바로 여기서 생깁니다. 토큰 컨트랙트에 잔액 이동을 요청하는 것도 결국 체인 위의 트랜잭션이며, 체인은 모든 트랜잭션에 수수료를 부과합니다. 이것이 가스비입니다. 이 수수료는 보내려는 토큰이 아니라 네이티브 코인으로 지불됩니다.

따라서 Ethereum에서 USDC를 보내려면 같은 주소에 두 가지가 필요합니다.

  • 보내려는 USDC, 그리고
  • 트랜잭션 수수료를 낼 소량의 ETH.

ETH가 없으면 USDC는 묶여 버립니다. 사라진 것이 아니라, ETH를 채워 넣을 때까지 옮길 수 없을 뿐입니다. 같은 규칙은 어디에나 적용됩니다. Polygon의 토큰은 가스비로 POL이, BNB Chain에서는 BNB가, Avalanche에서는 AVAX가, Base에서는 ETH가 필요합니다.

Solana의 추가 특징

Solana도 근본적으로는 같은 방식으로 동작해 수수료를 SOL로 내지만, 한 가지가 더 있습니다. 보유한 토큰마다 별도의 토큰 계정이 필요하고, 토큰 계정을 만들려면 렌트라고 부르는 소액의 SOL 예치금이 필요합니다. 한 번도 보유한 적 없는 토큰을 누군가 보내 주면, 그 토큰을 위한 토큰 계정을 새로 만들어야 합니다. 자세한 내용은 토큰 계정과 렌트의 작동 방식에서 설명하는데, 간단히 말해 SPL 토큰을 보유하고 옮기려면 SOL도 조금 갖고 있는 것이 좋습니다.

이것으로 설명되는 실수들

코인과 토큰의 구분이 명확해지면 몇 가지 대표적인 문제가 이해됩니다.

  • 토큰 잔액이 충분한데도 "잔액 부족"이 뜹니다. 가스비로 쓸 네이티브 코인이 떨어진 것입니다.
  • 토큰을 잘못된 네트워크로 보냈습니다. 한 체인에서 보낸 USDC는 같은 주소라도 다른 체인에는 나타나지 않습니다. 다른 원장 위의 다른 컨트랙트이기 때문입니다.
  • 마지막 코인까지 보냈습니다. ETH를 완전히 비우면 그 주소에 있는 모든 토큰은 다시 충전할 때까지 옮길 수 없습니다.
  • 팔 수 없는 "공짜" 토큰. 요청하지도 않았는데 받은 토큰은 옮기는 데 가스비가 필요할 수 있으며, 옮기려는 시도 자체가 토큰 가치보다 더 큰 비용을 치르게 하도록 설계되었을 수도 있습니다.

SSP에서는 어떻게 동작하나요

SSP는 코인과 토큰을 체인별로, 각 체인의 지갑 안에 보여 줍니다. EVM 체인에서 여러분의 SSP 계정은 2-of-2 멀티시그가 제어하는 스마트 계정이며, 토큰 전송의 가스비는 같은 볼트의 네이티브 코인으로 지불됩니다. 그러니 토큰 옆에 소량의 ETH(또는 POL, BNB, AVAX)를 함께 두세요. 토큰을 보낼 때 SSP Key는 트랜잭션에서 디코딩한 토큰 전송 내용, 즉 단순한 원시 컨트랙트 호출이 아니라 토큰의 수신자와 수량을 보여 줍니다.

Solana에서는 SSP의 릴레이가 네트워크 수수료를 먼저 내고, 볼트가 같은 전송 안에서 이를 SOL로 상환하므로 볼트에 여전히 약간의 SOL이 필요합니다.

솔직한 요약

코인은 체인 고유의 돈이고, 토큰은 체인 위에서 실행되는 컨트랙트 안의 잔액입니다. 모든 트랜잭션은 코인으로 수수료를 냅니다. 토큰을 옮기는 트랜잭션도 마찬가지입니다.

토큰을 보유한 모든 체인에 네이티브 코인을 조금씩 여유분으로 남겨 두고, 토큰을 보내거나 받기 전에 어느 네트워크에 있는지 확인하세요. 그러면 암호화폐에서 가장 흔한 "내 돈 어디 갔지?" 순간을 피할 수 있습니다.

이 글 공유하기

관련 글