EnglishBahasa IndonesiaTiếng Việt한국어日本語
XLM 구매하기

스텔라의 스마트 컨트랙트 엔진, 소로반

스텔라에도 스마트 컨트랙트가 있습니다. 원리와 비용을 짚어 봅니다.

인허가·등록된 플랫폼카드 & 계좌이체2013년부터 운영
lib.rs · SorobanRUST

스텔라 개발자 문서의 공식 Hello World 예제를 간단히 줄인 것입니다. 호출은 브라우저 안에서만 시뮬레이션되며 네트워크로 전송되지 않습니다.

목차
  1. 스텔라 스마트 컨트랙트, 짧은 역사
  2. 소로반의 작동 방식: Rust, 웹어셈블리, 그리고 호스트
  3. 소로반 수수료와 리소스 모델
  4. 상태 아카이빙: 온체인 데이터에도 월세가 있다
  5. 스텔라 자산 컨트랙트: 기본 자산과 컨트랙트의 만남
  6. 소로반 vs EVM, 무엇이 다른가
  7. 출시 이후 프로토콜 업그레이드: P29와 Bell 투표까지
  8. 개발 도구와 지원금
  9. 보안 교훈: YieldBlox 오라클 사건
  10. 아시아의 소로반 개발자들

스텔라에도 스마트 컨트랙트가 있을까요? 있습니다. 소로반(Soroban)은 스텔라의 스마트 컨트랙트 플랫폼으로, 2024년 2월 20일 프로토콜 20이 투표로 통과된 뒤 메인넷에서 돌아가고 있습니다. 모든 이용자에게 완전히 열린 건 2024년 3월 19일입니다(SDF 소프트웨어 버전). 개발자는 Rust로 컨트랙트를 작성하고 웹어셈블리(Wasm)로 컴파일해, 2014년부터 결제를 처리해 온 바로 그 스텔라 네트워크에 배포합니다. 소로반은 별도 체인도, 사이드체인도 아닙니다.

소로반이 흥미로운 건 존재 자체 때문이 아닙니다(요즘 레이어1 대부분에는 컨트랙트가 있습니다). 그 뒤에 깔린 설계 선택이 눈길을 끕니다. 수수료는 하나의 ‘가스’ 숫자가 아니라 리소스별로 매겨집니다. 저장된 데이터는 렌트를 내고 아카이브될 수 있습니다. 컨트랙트 재진입(re-entry)은 차단됩니다. 기본 자산은 래핑 없이 바로 연결됩니다. 이 가이드에서는 스텔라 스마트 컨트랙트의 작동 방식과 비용, 이더리움 EVM과의 차이, 그리고 아시아 개발자가 활용할 수 있는 지원책을 살펴봅니다.

2024.2.20
소로반(프로토콜 20) 메인넷 투표
출처 ↗
Rust → Wasm
컨트랙트 언어와 실행 환경
출처 ↗
2,000건
원장당 허용되는 스마트 컨트랙트 트랜잭션
출처 ↗
P29
최근 확인 시점의 메인넷 프로토콜
출처 ↗

스텔라 스마트 컨트랙트, 짧은 역사

스텔라는 오랫동안 의도적으로 범용 컨트랙트 없이 운영됐습니다. 프로토콜에는 내장 오더북, 멀티시그, 경로 결제, 클레임 가능 잔액(claimable balance), 그리고 2021년부터는 기본 AMM 풀이 들어 있었습니다. 결제와 단순 매매에는 충분했지만, 대출 시장 같은 맞춤형 로직은 누구도 배포할 수 없었습니다.

판을 바꾼 게 소로반입니다. SDF는 2022년 생태계 마중물로 1억 달러 규모의 소로반 도입 펀드(Soroban Adoption Fund)를 발표했고, 코드는 2023년 내내 테스트넷과 퓨처넷에서 다듬어졌습니다. 프로토콜 20은 버그 수정으로 3주 늦춰진 끝에 2024년 2월 20일 메인넷에 올랐습니다. SDF는 이후 단계적으로 문을 열었습니다. 2월 20일 0단계, 2월 27일 1단계, 그리고 일반 이용을 전면 개방한 2단계가 2024년 3월 19일이었습니다(SDF 단계별 출시 안내). ‘소로반이 2023년에 출시됐다’는 글을 봤다면, 그건 메인넷이 아니라 테스트 네트워크 얘기입니다.

이름에 대해서도 짚고 가겠습니다. SDF의 최근 자료는 점점 그냥 ‘스텔라 스마트 컨트랙트’라고 부르고, Soroban-RPC도 2024년 Stellar RPC로 이름이 바뀌었습니다. 그래도 소로반이라는 이름은 soroban-sdk Rust 크레이트와 개발자들의 일상 대화에 살아 있으니, 두 용어는 같은 것을 가리킨다고 보면 됩니다.

소로반의 작동 방식: Rust, 웹어셈블리, 그리고 호스트

소로반 컨트랙트는 Wasm으로 컴파일된 작은 Rust 프로그램입니다. SDF 개요 문서는 현재 Rust만 지원되며 컨트랙트에서 전체 Rust 표준 라이브러리를 쓸 수 없다고 못 박습니다. 대신 soroban-sdk 크레이트 위에서 개발합니다(스마트 컨트랙트 개요). 위 위젯은 최소한의 컨트랙트가 어떤 모양인지 보여 줍니다. 구조체 하나, #[contractimpl]이 붙은 impl 블록, 그리고 환경 핸들과 인자를 받는 함수 하나입니다.

Wasm 코드는 스텔라 코어(Stellar Core)에 내장된 ‘호스트’ 안에서 실행됩니다. 호스트가 스토리지, 암호 연산, 이벤트, 컨트랙트 간 호출, 권한 확인을 제공하기 때문에 컨트랙트는 가볍게 유지되고 무거운 작업은 네이티브 코드로 처리됩니다. 컨트랙트를 호출하려면 InvokeHostFunctionOp가 담긴 트랜잭션을 제출합니다. 스마트 컨트랙트 트랜잭션에는 오퍼레이션이 정확히 하나만 들어가고, 클래식 트랜잭션은 최대 100개까지 묶을 수 있습니다.

테스트 환경은 큰 강점입니다. SDK에는 온체인 환경과 똑같이 동작하는 로컬 호스트 구현이 들어 있어, 테스트넷에 올리기 전에 평소 쓰던 IDE에서 디버깅하고 단위·퍼즈·속성 기반 테스트를 돌릴 수 있습니다. 권한 확인도 기본 내장입니다. 함수가 주소에 대해 require_auth()를 호출하면 호스트가 해당 서명을 검증합니다. 일반 계정은 물론, 프로토콜 21에서 secp256r1이 지원된 뒤로는 패스키 기반 스마트 지갑에서도 작동합니다.

앱 아이콘이 가득한 스마트폰 홈 화면, 스텔라 스마트 컨트랙트 위에 만들어질 수 있는 앱들을 표현한 이미지
컨트랙트는 앱 뒤에 있고, 이용자 눈에는 대개 지갑 서명 창만 보입니다.

소로반 수수료와 리소스 모델

모든 소로반 트랜잭션은 포함 수수료(inclusion fee)와 리소스 수수료(resource fee) 두 가지를 냅니다(수수료, 리소스 한도, 미터링). 포함 수수료는 일반 스텔라 수수료와 똑같습니다. 최소 100스트룹(0.00001 XLM)이고, 원장이 꽉 차면 서지 프라이싱(surge pricing)이 입찰액 순으로 트랜잭션을 줄 세웁니다. 리소스 수수료가 소로반 고유의 부분으로, 항목별로 나뉩니다. CPU 명령어, 읽고 쓴 원장 엔트리, I/O 바이트, 트랜잭션 크기, 이벤트와 반환값, 스토리지 렌트입니다.

이 중 일부는 환불됩니다. CPU, 읽기·쓰기 바이트, 대역폭은 선언한 만큼 청구되고, 렌트·이벤트·반환값은 쓰지 않으면 돌려받습니다. 실제로는 이 숫자를 짐작할 일이 없습니다. Stellar RPC로 트랜잭션을 먼저 시뮬레이션하면 리소스 사용량과 붙여야 할 수수료가 나옵니다.

실제 금액으로 보면 여전히 소액입니다. 최근 확인 시점에 메인넷에서 가장 흔한 수수료는 최소치인 100스트룹이었고, 중앙값은 컨트랙트 호출 영향으로 약 0.00035 XLM이었습니다. 2026년 7월 기준 원장 하나에는 클래식 오퍼레이션 1,000개와 스마트 컨트랙트 트랜잭션 2,000건이 들어갈 수 있었습니다. 다른 스텔라 수수료와 마찬가지로 XLM은 검증인이 아니라 잠긴 수수료 풀로 들어갑니다. 다른 네트워크와의 비교는 스텔라 수수료·속도 가이드에 있습니다.

빛나는 네트워크 선 위에 놓인 코인들, 리소스 단위로 과금되는 스텔라 스마트 컨트랙트 네트워크를 흐르는 XLM 수수료를 표현
컨트랙트 호출은 리소스별로 측정되고 XLM으로 정산됩니다.

상태 아카이빙: 온체인 데이터에도 월세가 있다

이더리움에서는 누군가 비용을 내고 데이터를 한 번 쓰면 영원히 저장되고, 모든 노드가 그 무게를 끝없이 짊어집니다. 소로반은 상태 아카이빙(state archival)이라는 다른 접근을 택했습니다(SDF 문서). 컨트랙트 데이터마다 원장 수로 세는 유효 기간(TTL)이 있고, 살아 있으려면 렌트를 내야 합니다.

스토리지는 세 종류입니다. 임시(temporary) 스토리지는 가장 저렴하고 TTL이 0이 되면 영구 삭제되므로, 가격 견적이나 논스(nonce) 같은 데이터에 알맞습니다. 영구(persistent) 스토리지는 잔액 같은 데이터에 쓰며, 만료되면 삭제가 아니라 아카이브됩니다. 인스턴스(instance) 스토리지는 컨트랙트 전체 설정을 담고 컨트랙트 자체의 TTL을 공유합니다. 아카이브된 엔트리는 새로 만들 수 없고 복원만 가능해서, 예전 잔액이 있던 자리에 누군가 새 잔액을 슬쩍 끼워 넣을 수 없습니다.

프로토콜 23 ‘Whisk’(2025년 9월)는 아카이빙 방식을 손봐서, 트랜잭션 복원 목록에 들어 있는 아카이브된 영구 엔트리가 컨트랙트 실행 전에 자동으로 복원되게 했고, 시뮬레이션이 이 목록을 대신 채워 줍니다. 덕분에 검증인 스토리지는 가볍게 유지되지만, 개발자에게는 숙제가 하나 생깁니다. 중요한 데이터의 TTL을 연장하거나, 복원 비용을 예산에 넣어 두어야 합니다.

스텔라 자산 컨트랙트: 기본 자산과 컨트랙트의 만남

소로반이 피해 간 골칫거리 중 하나가 래핑입니다. 이더리움에서는 대부분의 컨트랙트에서 쓰려면 ETH를 WETH로 바꿔야 합니다. 스텔라에서는 XLM을 포함한 모든 자산에 표준 토큰 인터페이스(SEP-41)를 구현한 스텔라 자산 컨트랙트(SAC)가 하나씩 예약돼 있습니다. SDF 문서는 자산과 그 SAC가 “같은 자산을 나타낸다”고 설명합니다(SAC 문서). SAC는 누구나 배포할 수 있고, 클래식 지갑이 쓰는 것과 같은 신뢰선 잔액을 읽고 씁니다.

이건 단순한 편의 이상입니다. SAC는 발행사의 승인·회수 플래그를 그대로 따르기 때문에, 규제를 받는 발행사도 통제권을 잃지 않고 자기 토큰을 디파이에 들일 수 있습니다. 예를 들어 페이팔의 PYUSD는 SAC를 이용해 스텔라에 출시돼 첫날부터 소로반과 호환됐습니다. 자세한 내용은 스테이블코인 가이드에서 다룹니다. 이 컴플라이언스 계층이 왜 자산운용사를 끌어들이는지는 실물자산 토큰화 페이지에서 설명합니다. 프로토콜 26(2026년 5월)은 한발 더 나아가, SAC를 통한 XLM 전송이 수취인 계정을 자동으로 생성할 수 있게 했습니다.

소로반 vs EVM, 무엇이 다른가

이더리움, BNB 체인 같은 EVM 네트워크에서 넘어온 개발자라면 익숙한 개념을 다른 기본값으로 만나게 됩니다. SDF의 설계 해설은 그중 여럿을 이더리움에서 얻은 교훈으로 설명하며, “컨트랙트 재진입을 허용하지 말라”는 단호한 원칙도 포함돼 있습니다(SDF 블로그).

항목소로반 (스텔라)EVM (이더리움 등)
언어 / 실행 환경Rust → Wasm 컴파일주로 Solidity, EVM 바이트코드
수수료항목별 리소스 수수료 + 포함 수수료단일 가스 지표
스토리지TTL, 렌트, 아카이빙한 번 쓰면 무기한 저장
재진입호스트가 컨트랙트 재진입 차단허용, 앱 코드에서 방어
컨트랙트 내 기본 코인SAC로 XLM 사용, 래핑 불필요ETH는 보통 WETH로 래핑
토큰 승인내장 권한 확인, 트랜잭션 1건approve + transferFrom 패턴

단서가 두 가지 있습니다. 재진입 차단으로 고전적인 버그 유형 하나가 사라지지만, 그렇다고 컨트랙트가 기본적으로 안전해지는 건 아닙니다. 로직 오류, 잘못된 접근 제어, 오라클 문제는 그대로 남습니다. 또 EVM 호환 레이어가 없어서 Solidity 코드는 새로 작성해야 합니다. 결제에 특화된 경쟁 체인과의 폭넓은 비교는 스텔라루멘과 리플 차이를 참고하세요.

출시 이후 프로토콜 업그레이드: P29와 Bell 투표까지

업그레이드는 검증인이 투표로 결정하고, 투표가 통과되는 즉시 적용됩니다. 소로반이 가동된 뒤 컨트랙트 플랫폼은 꽤 많이 바뀌었습니다.

  • 프로토콜 21 (2024년 6월): 패스키 지갑용 secp256r1 서명 검증, 비용 모델 개선.
  • 프로토콜 22 (2024년 12월): 컨트랙트 생성자(constructor)와 BLS12-381 암호 연산.
  • 프로토콜 23 ‘Whisk’ (2025년 9월): 이벤트 통합, 상태 아카이빙 변경, 컨트랙트 병렬 실행.
  • 프로토콜 25 ‘X-Ray’ (2026년 1월): 영지식 증명의 기반이 되는 BN254와 Poseidon 해싱.
  • 프로토콜 26 ‘Yardstick’ (2026년 5월): 검증인 합의로 손상된 원장 엔트리 동결, 오버플로 검사가 들어간 256비트 연산, SAC 개선.
  • 프로토콜 27 ‘Zipper’·28 ‘Adapter’ (2026년 7월·9월): 스마트 계정의 인증 위임, 이어서 외부 관리형 컨트랙트 실행 파일과 희소 맵(sparse map) 함수.
  • 프로토콜 29 (2026년 10월 1일): 보안 수정만 포함, 새 CAP 없음.

다음 차례는 프로토콜 30 Bell이며, 아직 적용되지 않았습니다. 메인넷 투표는 2026년 11월 23일로 예정돼 있고 일정은 바뀔 수 있습니다. Bell은 먹스드(muxed) 컨트랙트 주소, 호스트 함수로서의 ML-DSA 양자내성 서명 검증, 밀리초 단위 원장 타임스탬프를 추가할 예정입니다(Bell 업그레이드 가이드). SDF는 일반 계정 서명은 계속 Ed25519를 쓰며, Bell만으로 원장 마감 시간이 약 5초보다 빨라지지는 않는다고 설명합니다.

발사되는 로켓 일러스트, 소로반 메인넷 출시 이후 이어진 스텔라 프로토콜 업그레이드를 상징
P20부터 P29까지 열 번의 프로토콜 버전, 모두 검증인 투표로 승인됐습니다.

개발 도구와 지원금

툴체인은 간결합니다. Stellar CLI는 컨트랙트 빌드·테스트·배포·호출과 키·네트워크 관리를 맡습니다. SDF의 웹 도구 Stellar Lab에서는 로컬 설정 없이 메인넷·테스트넷·퓨처넷에서 컨트랙트를 업로드·배포·호출·시뮬레이션할 수 있습니다. Stellar RPC는 새로 시작하는 개발자에게 권장되는 데이터 API입니다. 클라이언트 SDK는 자바스크립트, 파이썬 등을 지원하고, Stellar Wallets Kit는 앱을 Varial(옛 Freighter), LOBSTR, xBull 같은 스텔라 지갑과 연결해 줍니다.

보안 측면에서 SDF는 오픈제플린(OpenZeppelin)과 2025년 1월부터 2026년 12월까지 2년간 파트너십을 맺었습니다. 감사를 거친 스텔라 컨트랙트 라이브러리, 40 감사인-주(auditor-week) 분량의 보안 감사, 버그 바운티가 포함됩니다(SDF 발표). SDF의 소로반 보안 감사 뱅크(Soroban Security Audit Bank)는 자격을 갖춘 프로젝트를 감사 업체와 연결해 주며, 자기부담금은 5%입니다. 치명·높음·중간 등급 발견 사항을 영업일 20일 안에 고치면 이 부담금도 돌려받습니다.

지원금은 주로 스텔라 커뮤니티 펀드(SCF)를 통해 나옵니다. Build 트랙은 프로젝트당 최대 15만 달러 상당의 XLM을 지원하고, 소액 Instawards는 지역 앰배서더 챕터를 통해 지급됩니다. 수상작은 커뮤니티 구성원이 투표로 정합니다. 최근 라운드는 회차마다 대략 120만~220만 달러를 지급했는데, 예컨대 SCF #29는 39개 프로젝트에 약 220만 달러를 나눠 줬습니다.

대나무와 함께 앉아 있는 판다 마스코트
판짱의 한마디
Stellar Lab으로 테스트넷에서 시작하고, 모든 호출을 시뮬레이션해 본 다음에야 CLI를 메인넷으로 돌리세요. 공짜 테스트넷 XLM이 비싼 수업료보다 훨씬 낫습니다.

보안 교훈: YieldBlox 오라클 사건

지금까지 소로반이 치른 가장 비싼 수업료는 핵심 컨트랙트의 버그에서 나오지 않았습니다. 2026년 2월 22일 한 공격자가 Blend 위에서 YieldBlox DAO가 운영하던 대출 풀을 노렸습니다. 이 풀은 Reflector 오라클로 담보 가격을 매겼는데, 오라클이 참조한 건 스텔라 DEX의 얇은 USTRY/USDC 시장이었습니다. 트랜잭션 하나로 USTRY 보고 가격이 약 1.05달러에서 약 106.73달러로 치솟았고, 공격자는 부풀려진 담보로 XLM과 USDC 약 1,020만 달러를 빌려 갔습니다(Blockaid 사후 분석).

Blockaid가 공격자 지갑을 특정하자 티어1 검증인들이 공조해 해당 주소의 트랜잭션을 거부했고, 약 4,807만 XLM(약 730만 달러)이 ‘격리’됐습니다. Blockaid 자신도 대응에 관여했으니 수치는 그 점을 감안해 읽어야 합니다. 개발자가 얻을 교훈은 디파이의 고전적인 것들입니다. 얇은 시장으로 담보 가격을 매기지 말고, 시간가중 또는 다중 소스 피드를 쓰고, 유동성 낮은 자산의 노출 한도를 정해 두라는 것입니다. 이용자 관점에서 본 사건 경위는 스텔라 디파이 가이드에서 다룹니다.

아시아의 소로반 개발자들

아시아에서 확인된 소로반 활동은 아직 크지 않지만 늘고 있습니다. 2026년 SDF와 교육 플랫폼 Rise In은 상금 최대 6만 달러의 APAC 스텔라 해커톤을 열었습니다. 동남아 전역의 팀들에게 소로반 기반 디파이, 결제, 지갑, 온·오프램프 앱을 만들도록 했고, 현지 지원과 함께 필리핀·베트남·인도네시아에서 오프라인 결선을 치렀습니다(BitPinas). 기관 쪽에서는 2026년 10월 SDF의 전략적 투자를 받은 싱가포르의 Marketnode가 스텔라에서 아시아·태평양 투자자에게 토큰화 펀드를 유통하고 있습니다. 시장별 규제 동향은 아시아 허브에서 따라가고 있습니다.

호찌민이나 반둥, 또는 판교의 개발자에게도 현실적인 경로는 어디나 같습니다. Rust를 배우고, 테스트넷에 먼저 배포하고, SCF에 지원하고, 실제 돈이 들어오기 전에 감사를 받는 것입니다. 네트워크부터 이해하고 싶다면 스텔라루멘이란에서 시작하고, TTL, SAC, 신뢰선 같은 용어는 스텔라 용어 정리를 옆에 띄워 두고 찾아보세요.

자주 묻는 질문

스텔라에도 스마트 컨트랙트가 있나요?

네. 스텔라의 스마트 컨트랙트 플랫폼 소로반(Soroban)은 2024년 2월 20일 프로토콜 20과 함께 메인넷에 적용됐고, 2024년 3월 19일 모든 이용자에게 완전히 개방됐습니다. 컨트랙트는 Rust로 작성해 웹어셈블리로 컴파일합니다. 그 전까지 스텔라는 내장 DEX, 멀티시그, 클레임 가능 잔액 같은 기본 기능은 제공했지만 범용 컨트랙트는 없었습니다.

소로반 컨트랙트는 어떤 프로그래밍 언어를 쓰나요?

Rust입니다. SDF 문서에 따르면 현재 컨트랙트 언어로는 Rust만 지원되며, 전체 Rust 표준 라이브러리 대신 soroban-sdk 크레이트를 사용합니다. 컨트랙트를 호출하는 앱은 자바스크립트, 파이썬 등 다른 언어의 클라이언트 SDK를 쓸 수 있습니다.

소로반 트랜잭션 수수료는 얼마인가요?

컨트랙트 호출에는 포함 수수료(최소 100스트룹, 즉 0.00001 XLM)와 CPU, 원장 읽기·쓰기, 트랜잭션 크기, 이벤트, 스토리지 렌트에 대한 리소스 수수료가 붙습니다. 최근 확인 시점에 전체 트랜잭션의 수수료 중앙값은 컨트랙트 호출 영향으로 약 0.00035 XLM이었습니다. 트랜잭션을 먼저 시뮬레이션하면 정확한 비용을 알 수 있으며, 자세한 내용은 수수료 가이드에 있습니다.

스텔라의 상태 아카이빙(state archival)이란 무엇인가요?

스텔라의 컨트랙트 데이터에는 유효 기간(TTL)이 있고, 살아 있으려면 렌트를 내야 합니다. 임시(temporary) 데이터는 TTL이 끝나면 삭제됩니다. 영구(persistent)·인스턴스(instance) 데이터는 삭제 대신 아카이브되고 나중에 복원할 수 있으며, 프로토콜 23부터는 트랜잭션의 복원 목록에 넣으면 자동으로 복원됩니다.

스텔라 프로토콜 30은 적용됐나요?

아직입니다. 최근 확인 시점에 메인넷은 프로토콜 29로 운영 중이었습니다. 'Bell'이라는 이름의 프로토콜 30은 2026년 11월 23일 검증인 투표가 예정돼 있으며, 먹스드(muxed) 컨트랙트 주소, 컨트랙트용 양자내성 ML-DSA 서명 검증, 밀리초 단위 원장 타임스탬프를 추가할 계획입니다. 투표가 통과되기 전까지는 대기 중인 업그레이드로 보세요.

더 알아보기