
Solana 수수료와 임대료 해설
Solana는 쓰는 데 거의 공짜라는 평판이 있고, 평범한 전송에 한해서는 그 평판이 정당합니다. 하지만 "거의 공짜"는 이해해 둘 가치가 있는 구조를 가립니다. 자기수탁 지갑에서 마주치는 비용이 전부 수수료인 것은 아니고, Solana에서 보게 될 가장 큰 숫자는 오히려 당신에게 남는 돈이기 때문입니다.
이 글은 SSP에서 SOL이나 SPL 토큰을 보낼 때 정확히 무엇을 지불하는지, 반올림한 숫자가 아니라 실제 수치로 뜯어봅니다. SSP가 애초에 SOL을 어떻게 보관하는지 아직 읽지 않았다면 SSP의 Solana가 그 토대입니다.
실제로 값을 치르는 세 가지
모든 Solana 트랜잭션은 서로 다른 세 가지 비용을 수반할 수 있고, 이들을 뒤섞는 데서 혼란이 시작됩니다.
기본 수수료는 네트워크가 당신의 트랜잭션을 처리하는 대가로 받는 것입니다. 우선 수수료는 선택 사항이며, 네트워크가 붐빌 때 당신의 트랜잭션이 더 나은 대접을 받도록 사 주는 것입니다. 임대료는 수수료가 전혀 아닙니다 — 계정을 온체인에서 살아 있게 유지하는, 돌려받는 예치금입니다.
소비되는 것은 앞의 둘뿐입니다. 임대료는 세워 두는 것입니다. 이 구분을 이해하면 절반 이상은 끝난 셈입니다.
기본 수수료: 싸고 예측 가능하다
Solana는 서명 하나당 5,000 lamport — 0.000005 SOL — 를 받습니다. 기본 수수료 모델은 그게 전부입니다. 보내는 금액의 크기에도, 호출하는 프로그램의 복잡도에도, 시간대에도 따라 변하지 않습니다.
단순한 SOL 전송은 서명이 하나라 5,000 lamport가 듭니다. 서명 세 개짜리 트랜잭션은 15,000입니다. 그럴듯한 어떤 SOL 가격을 대입해도 이는 반올림 오차이며, 다른 곳에서는 채산이 맞지 않을 소액·빈번한 결제에 Solana가 쓰이는 이유가 바로 이것입니다. Solana의 수수료 문서가 1차 출처입니다.
Ethereum에서 왔다면 대비가 선명합니다. 그곳에서는 수수료가 연산량과 혼잡도에 따라, 때로는 자릿수 단위로 커집니다. Ethereum 가스비, 자기수탁 사용자를 위한 해설이 그 모델을 다룹니다.
우선 수수료: 줄에서 자리 사기
Solana가 붐빌 때 검증자에게는 담을 수 있는 것보다 많은 트랜잭션이 몰립니다. 우선 수수료는 내 것이 먼저 가야 한다고 알리는 방식입니다. 가격은 연산 단위(트랜잭션이 얼마나 많은 일을 하는지에 대한 척도)당 마이크로 lamport로 매겨집니다.
SSP는 메인넷에서 연산 단위당 50,000 마이크로 lamport의 우선 수수료를 설정합니다. 한 번의 전송은 대략 10,000 연산 단위를 소모하므로 우선 수수료는 약 500 lamport, 즉 0.0000005 SOL이 됩니다.
의도적으로 작게 잡았지만 의도적으로 큰 목적을 지닌 숫자입니다. 트랜잭션 안의 다른 모든 것에 비하면 무시할 만하고, 붐비는 시간대에 전송이 안착하느냐 조용히 버려지느냐를 가릅니다. 내 트랜잭션이 갔는지 궁금해하지 않아도 되는 값으로 1센트의 이천 분의 일을 내는 건 남는 거래입니다.
임대료는 예치금이지 수수료가 아니다
다른 체인에서 옮겨 온 사람을 놀라게 하는 대목이 여기입니다. Solana에서 계정은 존재하기 위해 자기 크기에 비례하는 최소 SOL 잔액을 보유해야 합니다. 예치금을 건너뛰면 그 계정은 소거됩니다.
SSP가 만드는 계정들의 수치입니다.
- 멀티시그 계정(86바이트) — 약 0.00149 SOL
- durable nonce 계정(80바이트) — 약 0.00145 SOL
- 연관 토큰 계정(165바이트) — 약 0.00204 SOL
어느 것도 소비되지 않습니다. 그 계정들 안에 놓여 있다가 계정이 언젠가 닫히면 돌아옵니다. 멀티시그 계정과 nonce 계정은 볼트가 존재하는 한 영구적이며 — nonce 예치금은 볼트를 폐기할 때만 회수됩니다. 토큰 계정의 예치금은 소유자가 계정을 닫아 언제든 회수할 수 있습니다.
이것이 SSP에서의 첫 Solana 전송이 비싼 전송인 이유이자, 그 일이 결코 되풀이되지 않는 이유입니다. 개통 수수료를 내는 것이 아니라, 이후의 모든 것을 작동하게 만드는 계정에 자금을 대는 것입니다.
SSP가 청구하는 것, 한 줄씩
여기의 모든 숫자는 추정이 아니라 SSP가 공개한 요금표에서 나온 것입니다.
| 무슨 일이 있었나 | 비용 | 그것이 무엇인가 |
|---|---|---|
| 새 볼트에서의 첫 전송 | 3,200,000 lamport(~0.0032 SOL) | 멀티시그 임대료 + nonce 임대료 + 네트워크 수수료 |
| 그 이후의 모든 전송 | 100,000 lamport(~0.0001 SOL) | 네트워크 수수료에 약간의 여유분 |
| 새 수신자에게 SPL 토큰 보내기 | + 2,500,000 lamport(~0.0025 SOL) | 수신자 토큰 계정의 임대료 |
알아 둘 만한 회계 항목이 하나 더 있습니다. 두 기기가 승인하는 멀티시그 제안 자체도 온체인 계정이고, 그것 역시 임대료가 필요합니다. SSP는 그것을 실행하는 바로 그 트랜잭션 안에서 닫아 버리므로, 그 임대료는 즉시 돌아오고 순액은 0이 됩니다. 그것을 비용으로 보게 될 일은 없습니다. 애초에 비용이 되지 않으니까요.

정확한 수수료는 서명 전 검토 화면에 표시되며, 서버가 알려 준 값이 아니라 트랜잭션 바이트에서 디코딩된 값입니다. 기기는 여기에 더해 독립적인 상한도 적용합니다. SSP가 그럴듯하다고 보는 최대치를 넘는 상환액은 어느 서버가 무엇을 주장하든 공격으로 취급되어 서명을 차단합니다.
볼트가 paymaster에게 상환하는 이유
Solana에서 트랜잭션 수수료를 내는 계정 — fee payer — 은 그 트랜잭션에 서명해야 합니다. 갓 만들어진 멀티시그 볼트에게 이것은 진짜 부트스트랩 문제입니다. 볼트는 자기 계정들을 만들어 줄 바로 그 트랜잭션의 값을 치르려면 SOL이 필요한데, 그 계정들은 아직 존재하지 않습니다.
SSP의 relay는 fee payer로 서명하고, 네트워크 수수료와 임대료를 먼저 대고, 같은 트랜잭션 안에서 당신의 볼트로부터 상환받는 paymaster를 운영합니다. 상환 명령은 두 기기가 승인하는 제안의 일부이므로, 두 서명 없이는 실행될 수 없고, 디코딩 검사에 걸리지 않은 채 다른 것으로 바꿔치기될 수도 없습니다.
실질적인 결과는, 별도의 가스 잔액을 유지할 일이 결코 없다는 것입니다. SOL을 받고, SOL을 보내면 됩니다. paymaster라는 일반적인 패턴이 낯설다면 가스 후원과 paymaster 설명이 그 개념을 다루고, durable nonce와 두 기기 서명이 Solana에서 두 기기 서명을 가능하게 하는 나머지 절반을 설명합니다.

SOL 되찾기
임대료 예치금은 회수할 수 있지만, 방식은 계정마다 다릅니다.
토큰 계정은 잔액이 0이 되면 소유자가 닫을 수 있으며, 하나당 대략 0.002 SOL을 돌려줍니다. 더 이상 보유하지 않는 토큰의 계정이 쌓여 있다면 — 누가 청하지도 않고 보낸 것까지 포함해 — 그것들을 닫으면 진짜 SOL이 회수됩니다. 그 계정들이 무엇인지는 SSP의 SPL 토큰과 토큰 계정이 설명합니다.
멀티시그 계정과 nonce 계정은 볼트가 사는 동안 계속 자금이 들어 있습니다. 이들의 예치금은 볼트를 통째로 폐기할 때만 회수할 수 있고, 그것은 가볍게 할 일이 아닙니다 — 당신의 주소를 지출 가능하게 만드는 것이 바로 그 계정들이기 때문입니다.
실용적인 결론은 소박합니다. 볼트 뒤에 있는 약 0.003 SOL은 지출 가능한 잔액이 아니라 볼트의 일부로 여기고, 지갑의 "사용 가능" 금액이 온체인 원시 숫자보다 조금 낮게 나와도 놀라지 마세요.
전송의 단계별 절차와 이 숫자들이 화면 어디에 나타나는지는 SSP로 Solana 보내기를 보세요.


