
SSP의 Solana
Solana는 빠르고 저렴하며, 스테이블코인이 실제로 오가는 곳이 되어 가고 있습니다. 동시에 자기수탁 멀티시그를 제대로 구현하기가 역사적으로 가장 어려웠던 체인이기도 합니다 — 암호학이 어려워서가 아니라, Solana의 계정 모델이 "여러 당사자가 함께 통제하는 하나의 주소"를 Bitcoin에서보다 훨씬 낯선 대상으로 만들기 때문입니다.
SSP는 여러분이 Bitcoin과 Ethereum에서 이미 쓰고 있는 것과 똑같은 2-of-2 멀티시그로 SOL과 SPL 토큰을 보관합니다. 한 키는 브라우저 확장에, 다른 한 키는 휴대폰에 있으며, 모든 트랜잭션에 두 키가 모두 필요합니다. 이 글은 그것이 Solana에서 구체적으로 무엇을 뜻하는지 — 주소가 어떻게 파생되는지, 수수료는 누가 내는지, 기기가 무엇을 검증하는지, 그리고 이미 아는 체인들과 진짜로 다른 부분은 어디인지 — 를 설명합니다.

자기수탁의 자리에서 본 Solana
Solana는 트랜잭션을 하나씩이 아니라 병렬로 처리하는 단일한 전역 상태 기계입니다. 자기 키를 직접 쥔 사람에게는 처리량이라는 헤드라인보다 세 가지 성질이 더 중요합니다.
첫째, 모든 것이 계정입니다. 당신의 잔액, 토큰의 mint, 프로그램의 코드, 그 프로그램이 저장하는 데이터가 모두 주소와 소유자를 가진 계정 안에 존재합니다. 둘째, 계정에는 임대료가 듭니다. 온체인에 존재하려면 계정은 자기 크기에 비례하는 최소 SOL 잔액을 유지해야 합니다. 이 예치금은 계정을 닫을 때 돌려받지만, 어딘가에서 나와야 하는 진짜 돈입니다. 셋째, 트랜잭션은 금방 만료됩니다 — 보통의 Solana 트랜잭션은 최근 blockhash를 참조하며 대략 1분 뒤에는 무효가 됩니다.
이 각각은 두 기기 서명에 곧바로 영향을 주며, SSP에서는 하나하나가 덮이지 않고 명시적으로 다뤄집니다. 가공되지 않은 버전을 원한다면 계정과 임대료 모델에 대해서는 Solana 자체 코어 문서가 1차 출처입니다.
생성자가 없는 주소
대부분의 Solana 멀티시그 설계에서 지갑은 생성되어야 합니다. 누군가 그것을 성립시키는 트랜잭션을 보내고, 그렇게 얻어지는 주소는 그 트랜잭션 안에서 고른 입력값 — 보통은 새로 만든 무작위 일회용 키 — 에 의존합니다. 실제 효과는, 생성자가 그것을 세상에 내놓기 전까지 주소는 존재하지 않고 그 전에는 입금도 받을 수 없다는 것입니다.
SSP의 온체인 프로그램은 다르게 동작합니다. 당신의 볼트 주소는 정렬된 구성원 집합과 승인 임계값에서 얻은 지문이며, 그 외에는 아무것도 아닙니다. 구성원이 누구이고 몇 명이 승인해야 하는지 아는 사람이라면 누구나, 체인에 아무것도 닿기 전에 오프라인에서 주소를 계산할 수 있습니다. 등록은 허가가 필요 없습니다. 프로그램은 제시된 구성원이 정말로 주장된 주소로 해시되는지만 확인하므로, 등록한다고 해서 누가 지출할 수 있는지는 전혀 달라지지 않습니다.
그 결과 신뢰해야 할 생성자도, 특권을 가진 등록자도, 관리자 키도 없습니다. 지출은 오직 프로그램 내부의 임계값 검사로만 통제됩니다. 전체 그림을 원한다면 왜 Solana 멀티시그 주소가 어려운가가 근본 문제를, 스스로 시작하는 Solana 멀티시그가 프로그램 자체를 다루며, SSP 대 Squads V4가 항목별 비교입니다.
2-of-2 모델 자체가 낯설다면 2-of-2 multisig가 실제로 무엇인지부터 시작하세요.
두 기기에 durable nonce가 필요했던 이유
만료가 만들어내는 문제는 이렇습니다. 확장 프로그램이 트랜잭션을 만들어 서명합니다. 그다음 휴대폰이 그것을 승인해야 합니다. 방을 나가 식사를 하고 돌아오면, 그 트랜잭션이 참조하던 blockhash는 이미 오래전에 죽었고 전부 다시 만들어야 합니다.
SSP는 이를 당신의 멀티시그 주소에서 파생한 durable nonce 계정으로 해결합니다. 트랜잭션은 최근 blockhash 대신, 트랜잭션이 실제로 체인에 올라갈 때만 전진하는 nonce를 참조합니다. 서명 창은 더 이상 스톱워치가 아닙니다. 몇 분 뒤든 몇 시간 뒤든 휴대폰에서 승인해도 트랜잭션은 여전히 유효합니다 — 그러면서도 단 한 번만 쓸 수 있습니다. 실행하면 nonce가 전진하기 때문입니다.
nonce 계정은 처음 보낼 때 만들어지며, 첫 전송 비용에 임대료가 드러나는 두 계정 중 하나입니다. durable nonce와 두 기기 서명이 더 깊이 들어갑니다.
수수료는 누가 내는가
Solana에서 트랜잭션 수수료를 내는 계정을 fee payer라고 하며, 그 계정은 반드시 서명해야 합니다. 이는 갓 만들어진 멀티시그에 껄끄러운 부트스트랩 문제를 만듭니다. 볼트는 자기 SOL을 옮길 트랜잭션 값을 치르기 위해 SOL이 필요한데, 임대료가 필요한 계정들은 아직 존재하지도 않습니다.
SSP는 paymaster를 씁니다. SSP relay는 fee payer로 서명하는 계정을 운영하여 네트워크 수수료와 임대료를 먼저 대고, 같은 트랜잭션 안에서 당신의 볼트로부터 상환받습니다. 별도의 단계도, 제공된 신용도 없으며, 당신의 두 서명 없이 그 상환이 일어날 방법도 없습니다 — 상환은 당신의 두 기기가 승인하는 제안 안에 함께 실려 갑니다.
새겨둘 만한 결과가 둘 있습니다.
- 가스를 위해 주소에 미리 SOL을 넣어둘 필요가 없습니다. SOL을 받고, SOL을 보내면 됩니다. 계정은 첫 전송 때 만들어집니다.
- 첫 전송은 그 이후보다 비쌉니다. 첫 전송은 멀티시그 계정과 nonce 계정의 영구 임대료를 냅니다. 이후 전송은 네트워크 수수료보다 아주 조금 더 낼 뿐입니다. 정확한 수치는 이 시리즈의 수수료 편에 있습니다.
paymaster라는 개념이 낯설다면 가스 후원과 paymaster 설명이 일반적인 패턴을 다룹니다 — SSP는 EVM 체인에서 이미 같은 발상을 쓰고 있으며, SSP의 Ethereum에 설명되어 있습니다.
무엇을 보유할 수 있는가
SSP의 Solana는 네이티브 SOL과 SPL 토큰을 지원합니다. 기본적으로 Circle의 공식 USDC mint와 Solana 위의 FLUX를 포함하며, 볼트에서 발견되는 다른 SPL 토큰도 SSP가 인식합니다.
사람들이 자주 걸려 넘어지는 구분은 이것입니다. Solana에서는 토큰을 메인 주소에 보유하지 않습니다. 각 토큰은 당신의 주소가 소유한 자기만의 연관 토큰 계정 안에, mint마다 하나씩 존재합니다. 그 계정에도 임대료가 필요하고, 그래서 그 토큰을 한 번도 보유한 적 없는 사람에게 SPL 토큰을 보내면 조금 더 비쌉니다 — 상대의 토큰 계정을 존재하게 만드는 값을 치르는 것입니다. SSP는 오류로 실패하는 대신 전송의 일부로 그것을 자동 생성하며, 이 시리즈의 토큰 계정 편이 세부를 풀어냅니다.

서명 전에 당신의 기기가 확인하는 것
Solana 트랜잭션은 Bitcoin 트랜잭션에는 없는 방식으로 불투명합니다. 트랜잭션이 무엇을 하는지는 명령어 데이터 안에 들어 있고, 지갑은 그것을 디코딩해야만 비로소 사실에 맞는 이야기를 할 수 있습니다. 서버가 말해준 것을 그대로 보여주기만 하는 지갑은, 당신에게 그 서버를 믿으라고 요구하는 셈입니다.
그래서 SSP는 오픈 소스 라이브러리 @runonflux/solana-multisig를 사용해 당신의 기기에서 바이트 단위로 디코딩합니다. 수신자, 금액, 토큰 mint는 원시 바이트에서 읽어내어 화면에 표시되는 내용과 대조됩니다. 둘이 어긋나면 서명은 강하게 차단됩니다 — 그 지점의 불일치는 표시 오류가 아니라 능동적인 공격을 뜻하기 때문입니다. SPL 전송에서는 토큰의 소수 자릿수가 서명되는 명령어 자체에 박히므로, 다른 소수 자릿수를 주장하는 mint는 온체인 프로그램이 트랜잭션을 거부하게 만듭니다.
같은 원칙이 프로그램에도 적용됩니다. 메인넷 빌드는 공개된 소스에서 재현할 수 있으므로, SSPWVu7dtTDkZYmDx73StqV46PioSmdiNE7igpjHK1r에 배포된 바이트코드는 독립적으로 다시 빌드해 대조할 수 있습니다. 보안에 대한 주장은 당신이 그것을 스스로 확인할 수 있는 만큼만 가치가 있습니다.
시작하기
SSP Wallet과 SSP Key를 최신 버전으로 업데이트한 뒤, 체인 선택기에서 Solana를 활성화하세요. v2의 일괄 동기화를 쓰면 휴대폰에서 한 번만 승인해 다른 어떤 체인과도 함께 켤 수 있습니다. SSP를 아직 전혀 설정하지 않았다면 첫 SSP 지갑 설정하기가 출발점입니다.
그다음부터 Solana는 SSP의 다른 모든 체인과 똑같이 동작합니다. Portfolio 합계에 들어가고, 보내기는 받는 주소를 전부 표시한 채 작성 → 검토 → 승인의 같은 흐름을 따르며, 모든 트랜잭션은 두 기기가 함께 서명합니다. 메인넷 출시 공지에 무엇이 언제 나왔는지 정리되어 있습니다.


