컴파일 바이너리 라이선스: 설계 공간
소스 판매는 부담이 크고, 호스팅 SaaS는 무겁습니다. 판매자가 경계를 정하는 컴파일 바이너리가 PineForge 마켓플레이스의 축입니다 — 그에 이른 설계 탐색을 정리합니다.
전략 제작자는 소스를 넘기지 않고 수익화하고 싶어 합니다. 구매자는 자기 데이터로 백테스트하고 자기 브로커에서 실행하고 싶어 합니다. 이 두 요구는 실제로 긴장 관계에 있고, 지금 흔한 대부분의 해법은 그 긴장을 잘 풀지 못합니다. 이 글은 PineForge 마켓플레이스의 기반으로 컴파일된 바이너리 라이선스 모델을 정하기 전에 우리가 탐색한 설계 공간을 정리합니다.
문제를 쉽게 말하면
제작자는 작동하는 무언가를 만들었습니다. 수개월 동안 파라미터를 다듬고, 엣지 케이스를 고치고, 샘플 밖에서 검증했습니다. 팔고 싶습니다. 구매자는 자기 데이터에서 실행하고, 제작자가 말한 대로 백테스트되는지 검증하고, 자기 실행 파이프라인에 연결하고 싶습니다.
제작자가 소스 코드를 넘기는 순간 수익화는 끝납니다. 구매자는 무기한 실행할 수 있고, 자유롭게 수정하고, 다른 사람에게 재판매할 수 있습니다. 제작자가 얻는 건 한 번의 매출뿐입니다. 그 이후의 모든 구매자는 잠재 고객 손실입니다.
제작자가 소스를 쥐고 있는 순간 구매자는 전략을 검증·튜닝·신뢰할 수 없습니다. 블랙박스를 구독하는 셈입니다. 제작자 서버가 멈추면 거래도 멈춥니다.
이 딜레마를 헤치려는 흔한 두 가지 해법이 있습니다. 둘 다 잘 알려진 실패 모드가 있습니다.
패턴 1: 소스 판매
제작자는 Pine 스크립트 자체를 팝니다. 일회 구매로 .pine 파일이
넘어갑니다.
구매자에게 이점은 실제입니다. 완전한 접근, 완전한 검증 가능성, 완전한 통제. 어떤 데이터로든 백테스트하고, 파라미터를 조정하고, 판매자와 무관하게 영원히 독립 실행할 수 있습니다.
판매자에게 단점도 실제입니다. 소스가 한 번 넘어가면 지속적인 레버리지가 없습니다. 불법 복제 방지는 구매자 선의만큼만 강합니다. 전략은 다른 플랫폼에 다시 올라가거나, 파생으로 수정·판매되거나, 그냥 무료로 공유될 수 있습니다. 수익은 정직한 최초 구매자 수로 상한이 납니다.
단순함을 지속 수익보다 우선하는 제작자에게 맞는 모델입니다. 수년 단위로 가치를 지키고 싶은 제작자에게는 맞지 않습니다.
패턴 2: 시그널 판매
제작자가 직접 전략을 돌리고 진입·청산·포지션 크기 같은 시그널을 구독 피드로 내보냅니다. 소스는 제작자 통제를 벗어나지 않습니다.
판매자 이점: 소스 완전 보호, 지속 구독 수익, 모든 가치를 한 번에 넘기는 거래가 없음.
구매자 단점은 심각합니다. 자기 데이터로 전략을 백테스트할 수 없습니다. 제작자가 주장하는 과거 성과를 믿어야 합니다. 제작자 인프라에 전적으로 의존합니다——휴가, 서버 장애, 서비스 종료면 구매자에게 남는 게 없습니다. 파라미터 튜닝도 불가능하고, 제작자가 설정한 값을 받기만 합니다.
시그널 서비스는 스스로 전략을 돌릴 기술이 없는 구매자에게 맞습니다. 무엇을 실행하는지 이해하고 독립 검증하려는 기술적 구매자에게는 출발점이 되기 어렵습니다.
패턴 3: 컴파일된 바이너리 판매
세 번째 패턴이 PineForge 마켓플레이스의 중심입니다. Pine 전략은
공유 라이브러리(Linux에서는 .so, macOS에서는
.dylib)로 컴파일됩니다. 제작자는 소스가 아니라 바이너리를
배포합니다. 구매자는 오픈소스 PineForge 런타임을 통해 자기 머신에서
자기 OHLCV 데이터에 대해 바이너리를 실행합니다.
긴장의 양쪽을 모두 다룹니다.
제작자: 소스는 제작자 머신을 떠나지 않습니다. 바이너리는 Pine
스크립트에서 빌드되지만, 컴파일된 .so를 읽기 쉬운 Pine으로
되돌리려면 상당한 노력이 필요합니다——되돌려도 결과는 어셈블리 수준이지
관용적인 Pine이 아닙니다. 전략 핵심 로직은 실질적으로 보호됩니다.
구매자: 백테스트는 자기 데이터에서 로컬로 실행됩니다. 실행은 자기 브로커 연동을 씁니다. 오픈소스 런타임은 감사 가능합니다——보안에 민감한 구매자는 전략 본문은 읽지 못해도 자금을 움직이는 코드는 읽을 수 있습니다. 백테스트 자체는 판매자 서버에 의존하지 않습니다.
이 패턴이 PineForge에서 처음은 아닙니다. MetaTrader 4/5
생태계는 2012년경 MQL5 Market 출시 이후 이렇게 운영되어
왔습니다. MetaTrader 전략은 .ex5 바이너리로 컴파일되어
마켓플레이스를 통해 계정 잠금·기간 제한으로 배포됩니다. 구매자는
MetaTrader 전략 테스터에서 로컬 백테스트하고, 소스는 개발자에게
남습니다. 대규모에서 검증된 모델입니다.
우리는 같은 플레이북을 Pine에 적용하되 두 가지를 더합니다. 라이선스 조절의 더 세밀한 입자(아래), 그리고 누구나 거래 실행 부분을 감사할 수 있도록 런타임을 오픈소스로 둡니다.
라이선스 차원
라이선스 프레임 없는 컴파일 바이너리는 그저 복사 가능한 파일입니다. 라이선스 층이 비즈니스 모델을 성립시킵니다.
PineForge 판매자 도구는 여섯 가지 라이선스 차원을 노출합니다.
기간 제한. 라이선스에 만료일이 있습니다——구매 후 일·주·월. 만료되면 바이너리는 전략 실행을 멈춥니다. 구매자는 갱신할 수 있습니다. 판매자는 지속 수익을 얻습니다. 가장 흔한 차원이며 마켓플레이스 전략 대부분이 쓸 것입니다.
머신 바인딩. 라이선스는 하드웨어 지문에 묶입니다. 구매자는 등록한 머신에서는 실행할 수 있지만 두 번째 머신이나 클라우드 인스턴스에서는 실행할 수 없습니다. 바이너리 공유 가치를 제한합니다——받는 쪽 머신에는 유효 라이선스가 없습니다. 캐주얼 공유보다 대규모 불법 복제가 걱정되는 판매자가 켤 수 있습니다.
브로커 바인딩. 라이선스는 전략이 실행할 수 있는 브로커 연동을 지정합니다. 특정 브로커 API와 제휴한 판매자는 그 연동으로만 실행을 제한해 지원하지 않거나 원치 않는 실행 장소에서의 사용을 막을 수 있습니다.
심볼 바인딩. 라이선스는 전략이 거래할 수 있는 티커를 제한합니다. BTC/USDT에서 만들고 검증한 제작자는 그 심볼만 허용하는 라이선스를 배포할 수 있습니다. 한 자산에 맞춰 최적화한 전략을 전혀 다른 자산에 써서 예기치 않은 결과를 내고 제작자를 탓하는 일을 막습니다.
입력 범위 제한. 구매자는 파라미터를 조정할 수 있지만 판매자가 허용한 범위 안에서만입니다. 룩백 창 파라미터가 있는 전략은 10~50봉 사이만 허용하고, 10 미만(제작자가 과적합이 심한 구간으로 아는 곳)이나 50 초과(의미가 희미해지는 구간)는 막을 수 있습니다. 판매자가 범위를 공개하고 런타임이 강제합니다.
철회 가능. 라이선스 서버가 다음 주기적 확인에서 403을 반환하면 바이너리는 실행을 멈춥니다. 구매자가 약관을 위반——바이너리 공유, 미승인 하드웨어에서 실행——하면 제작자는 환불이나 긴 법적 절차 없이 철회할 수 있습니다. 철회는 핵 옵션이며, 판매자는 명확한 위반에만 써야 합니다.
의도적으로 하지 않는 것
DRM 스타일 난독화 쇼는 없습니다. .so는 진짜 컴파일
바이너리입니다. 시간과 적절한 도구가 있으면 숙련된 엔지니어는 로직을
리버스할 수 있습니다. 그렇지 않다고 주장하지 않습니다. 계약은 라이선스이지
바이너리 형식이 아닙니다. 보호는 구매자가 동의한 조건과 런타임의 라이선스
집행에서 오며, 디스어셈블 불가능성에서 오지 않습니다. 바이너리가 깨질 수
없다고 가장하는 건 부정직합니다.
매 백테스트마다 폰홈하지 않습니다. 라이선스 확인은 주기적이지 호출마다가 아닙니다. 런타임은 유효 라이선스를 로컬에 캐시하고 일정(라이선스별 설정 가능, 기본 일일)에 따라 서버를 확인합니다. 라이선스 유효 기간 동안은 오프라인에서도 백테스트가 됩니다. 매 봉 계산마다 폰홈하지 않습니다. 그렇게 하면 백테스트가 네트워크 가용성에 의존하고 지연만 늘며 보안 이득은 거의 없습니다——한 번의 라이선스 확인을 가로챌 수 있는 공격자는 백 번도 가로챌 수 있습니다.
깜짝 수익 분배는 없습니다. 마켓플레이스 테이크 레이트는 론칭 전에 공표된 고정 비율입니다. 웨이트리스트에 온 판매자는 리스팅 전에 조건을 압니다. 제품이 라이브된 뒤에야 수수료 구조를 드러내는 마켓플레이스도 봤는데, 우리는 그걸 불성실로 보고 하지 않습니다.
아직 다듬는 중인 열린 질문들
라이선스 키 유출. 구매자 머신이 침해되어 키가 빠져나가면 어떻게 할까? (a) 철회 후 정당한 구매자에게 재발급해 혼란을 주거나, (b) 구매자별 키 로테이션으로 머신 인스턴스마다 다른 파생 키를 두어 한 대 침해가 모든 구매자를 망가뜨리지 않게 한다. 우리는 (b) 쪽으로 기울지만 구현은 만만치 않은 키 관리가 필요합니다.
범위와 함께 판매자 정의 입력 기본값. 입력 범위 차원은 각 파라미터의 상한·하한을 공개합니다. 판매자가 기본값——처음 설정할 때 구매자가 보는 시작 값——도 공개해야 할까? 아마 yes: 20봉 룩백이 가장 잘 맞는다는 걸 아는 판매자가 구매자에게 시행착오로 알게 할 필요는 없습니다. 기본값은 권고이지 강제는 아닙니다.
판매자 게시 «데모 백테스트» 리포트. 구매자는 구매 전에 전략이
작동한다는 증거——판매자 주장만이 아니라——를 봐야 합니다. 현재 계획은
자기 데이터와 OHLCV 윈도우로 /gallery와 같은 스키마의 갤러리
형식 백테스트 리포트를 게시할 수 있게 하는 것입니다. 리포트는 선언된
입력으로 PineForge 엔진이 생성한 것으로 검증됩니다. 구매자는 실제
트레이드 목록, 실제 샤프, 실제 스파크라인을 봅니다——마케팅 스크린샷이
아닙니다. «사기 전에 보기»의 정직한 버전입니다.
오픈코어 정렬
컴파일 바이너리 마켓플레이스의 한 걱정은 구매자 자금의 안전이 바이너리
실행기에 전적으로 달려 있다는 점인데, 많은 구현에서 그 실행기는 독점
블랙박스입니다. MetaTrader에서 .ex5 파일을 돌리면
MetaQuotes 런타임과, 공개되지 않은 동작을 실행하지 않겠다는 그들의
보증을 믿는 셈입니다.
PineForge 런타임은 Apache-2.0이며
ghcr.io/pineforge-4pass/pineforge-engine:latest에서
공개적으로 받을 수 있습니다. 코드젠(Pine을 C++로 컴파일하는 부분)은
독점——비즈니스가 있는 곳입니다. 하지만 실행기——실제로 컴파일된 바이너리를
OHLCV에 대해 돌려 트레이드 목록을 내는 코드——는 오픈소스입니다.
보안에 민감한 구매자는 백테스트를 맡기기 전 실행기를 감사할 수 있습니다. 전략 소스는 감사할 수 없습니다(그게 요지입니다), 하지만 그것을 돌리는 컨테이너는 감사할 수 있습니다. 분할은 의도적입니다. 실제 자금에 닿는 부분은 열고, 해자가 되는 부분은 닫습니다.
마켓플레이스 일정
베타는 2026년 Q4에 수동 판매자 온보딩으로 시작합니다——소수의 심사된 제작자, 팀이 검토하는 전략 리스팅, 구매자를 위한 간소화된 구매 플로우. 실제 거래로 베타를 돌리되 카탈로그는 제한해 스케일 전에 연동 이슈를 잡습니다.
완전 셀프서비스 마켓플레이스는 2027년에 열립니다. 그때 판매자는 독립적으로 리스팅하고, 자기 라이선스 차원을 설정하고, 데모 백테스트 리포트를 게시하고, 팀 개입 없이 카탈로그를 관리할 수 있습니다.
이건 염원이 아니라 솔직한 날짜입니다. 엔진과 코드젠은 이미 있습니다. 라이선스 서버, 판매자 대시보드, 구매자 구매 플로우는 2026년 구축 과제입니다.
다음에 할 일
- 판매자 웨이트리스트 참여——리스팅하고 싶은 전략을 만들고 있다면 등록해 두면 베타 온보딩이 열릴 때 연락드립니다.
- 오늘 런타임 사용해 보기——MCP 서버의
backtest_pine은 마켓플레이스 전략이 쓰는 것과 같은 실행기입니다. MCP 워크플로에서 전략이 올바르게 동작하면 마켓플레이스에서도 올바르게 동작합니다. - 얼리 액세스 받기——무료 티어는 월 100회 트랜스파일로 마켓플레이스 론칭 전 전략을 만들고 검증할 수 있습니다.