
Solana 패스키: 암호화폐 지갑 UX의 미래
Solana 앱에는 빠르고 안전하며 네이티브한 암호화폐 지갑 온보딩이 필요합니다. Phantom이 이를 선도해 왔지만, 사용자는 여전히 시드 문구를 관리해야 합니다.
패스키는 이를 바꿉니다.
WebAuthn 표준과 FIDO2 프로토콜을 기반으로 하는 패스키는 개인 키를 저장하거나 노출하지 않고 생체 인식 또는 하드웨어 기반 로그인(예: Face ID, Touch ID, Windows Hello, YubiKeys 등)을 지원합니다.
패스키는 암호화 키 쌍을 사용해 기존 비밀번호를 대체합니다. 개인 키는 사용자의 기기 내 보안 하드웨어 모듈에 유지되고 공개 키만 공유됩니다.
대부분의 앱은 패스키로 비밀번호를 대체해 비밀번호 없는 인증을 구현하지만, Para는 다르게 사용합니다. 지갑 세션을 위한 암호화 권한 부여 수단으로 활용합니다.
비밀번호도, 시드 문구도 필요 없습니다. 사용자의 기기에 내장된 암호화 접근 방식만으로 간소화된 사용자 경험을 제공합니다.
Solana 지갑 UX에서 패스키가 중요한 이유는 무엇인가요?
마찰 없는 암호화폐 온보딩이 그 어느 때보다 중요해졌습니다.
Solana 모바일 앱, 개발자 활동, 스테이블코인 거래량이 빠르게 성장하면서, 패스키 지원은 신규 사용자가 온체인에서 더 쉽고 안전하게 트랜잭션을 처리할 수 있도록 합니다.
Para의 임베디드 지갑 SDK와 패스키를 함께 사용하면 다음이 가능합니다.
- 즉시 온보딩: 설치나 시드 문구가 필요 없습니다
- 지속되는 세션: 여러 방문과 기기에서도 연결 상태가 유지됩니다
- 안전한 키 관리: 키가 기기에 귀속되며 피싱에 강합니다
Solana 패스키 지원과 SIMD-0075
대부분의 WebAuthn 인증은 기본적으로 P-256 곡선(secp256r1), 즉 브라우저와 기기 전반에서 폭넓은 호환성을 제공하도록 설계된 널리 사용되는 타원 곡선을 사용합니다. P-256 곡선은 범용 웹 로그인에는 적합하지만 Solana에는 적합하지 않습니다. Solana는 SIMD(Single Instruction, Multiple Data) 명령어를 통한 빠르고 결정적인 서명과 높은 처리량의 검증에 최적화된 다른 타원 곡선인 Ed25519(Curve25519 기반)를 사용하기 때문입니다.
이러한 불일치는 중요합니다. P‑256과 Ed25519는 직접 호환되지 않습니다.
현재 WebAuthn 패스키는 Ed25519 서명을 생성할 수 없으며, 브라우저는 보안 엔클레이브를 통한 Ed25519 서명용 API를 제공하지 않습니다. 따라서 패스키로 Solana 트랜잭션에 직접 서명할 수 없습니다.
이 차이로 인해 Solana에서 패스키를 지원하는 것은 기술적 난제였습니다. SIMD-0075(2024년 5월 승인)는 결정적 서명(논스 위험 없음), SIMD 벡터화, 생태계 상호 운용성 등의 이점을 근거로 Ed25519가 Solana에서 선호되는 곡선임을 재확인했습니다.
2025년 6월, Solana는 새로운 프리컴파일을 통해 secp256r1(P-256) 서명의 네이티브 온체인 검증을 지원하기 시작했습니다. 이를 통해 앱은 패스키 서명을 온체인에서 검증할 수 있습니다(예: 사용자 로그인 또는 신원 증명 확인).
하지만 Solana 트랜잭션에는 여전히 Ed25519 서명이 필요하며, WebAuthn 패스키로는 이를 생성할 수 없습니다. 즉, 패스키만으로는 여전히 지갑 수준의 서명에 충분하지 않습니다.
이 지점에서 Para의 인프라가 필요합니다.
Para는 패스키를 트랜잭션 서명에 사용하는 대신 권한 부여 기본 요소로 사용합니다. 패스키는 범위가 지정된 세션을 잠금 해제하며, 이 세션은 Para의 MPC(Multi-Party Computation) 인프라가 관리하는 Ed25519 호환 서명 키에 대한 접근 권한을 부여합니다.
이 설계는 곡선 불일치 문제를 우회하면서 다음을 제공합니다.
- 완전한 Solana 호환성
- 패스키를 통한 빠르고 네이티브한 온보딩
- 안전한 셀프 커스터디와 MPC 기반 키 관리
Para 패스키: 단순한 인증을 넘어선 권한 부여
Para는 2023년에 패스키 기반 세션 권한 부여를 도입했으며, 이는 임베디드 지갑 SDK의 핵심 기능입니다.
Para는 패스키를 단순한 로그인 수단으로 취급하지 않고, 지갑 작업에 대한 접근을 안전하게 제어하는 데 사용합니다.
Para SDK에서는 사용자가 OAuth, 이메일/비밀번호 등으로 로그인한 후 패스키를 사용해 지갑 세션을 승인합니다. 신원 확인에는 인증을, 지갑 접근에는 패스키를 사용하는 이러한 역할 분리는 Para 임베디드 지갑에 더 안전한 기반을 제공합니다.
Para에 새 패스키를 등록하면 어떻게 되나요?
클라이언트(브라우저 또는 OS 수준 자격 증명 관리자)가 키 쌍을 생성합니다.
- 개인 키는 기기의 보안 엔클레이브(예: TPM, Secure Enclave 또는 Android Keystore)에 저장됩니다
- 공개 키와 자격 증명 메타데이터는 서버로 전송됩니다
패스키 자격 증명 메타데이터에는 다음이 포함됩니다.
- 자격 증명 ID(각 패스키마다 고유함)
- 챌린지 논스
- RP ID(앱 도메인)
- 암호화 알고리즘(일반적으로 P-256)
새 지갑을 생성하면 어떻게 되나요?
사용자가 Para로 지갑을 생성하면 패스키가 등록되어 해당 기기에 연결됩니다. 구체적으로 다음 작업을 수행합니다.
- 권한 부여 챌린지에 서명합니다
- 사용자가 기기와 지갑을 제어하고 있음을 확인합니다
- 유지 가능한, 서명되고 범위가 지정된 세션을 설정합니다
이 세션은 이후 다음과 같은 민감한 작업을 잠금 해제합니다.
- 트랜잭션 전송
- 암호화된 세션 귀속 키 접근
- 스마트 계약 상호작용 승인
여기서 Para의 접근 방식이 중요해집니다.
패스키 자체는 Solana 트랜잭션 서명에 직접 사용되지 않습니다. Solana 트랜잭션에는 Ed25519가 필요하기 때문입니다.
대신 Para 지갑 SDK는 패스키를 권한 부여 기본 요소로 사용해 세션을 잠금 해제합니다. 그러면 이 세션은 임베디드 지갑에서 사용하는 Solana 호환 Ed25519 서명 키에 범위가 지정된 접근 권한을 부여합니다.
이 서명 키는 Solana의 서명 요구 사항과 호환되는 Para의 안전한 MPC 기반 키 인프라에 보관됩니다.
실제로는 패스키가 권한을 부여하고, 지갑 키가 서명을 수행합니다. 이를 통해 트랜잭션 전송, 암호화된 키 접근, 스마트 계약 상호작용 승인 같은 민감한 작업을 처리할 수 있습니다.
Para는 신원과 서명 권한을 분리하여, 중요한 작업도 단순한 사용자 로그인이 아닌 암호화 권한 부여로 보호합니다.
Para 패스키는 여기서 더 나아갑니다. 브라우저 확장 프로그램이나 복구 문구 없이도 지갑을 앱에 직접 임베드할 수 있습니다.
Solana 개발자에게 패스키가 중요한 이유는 무엇인가요?
Solana 개발자에게 Para 패스키는 다음과 같은 이점을 제공합니다.
- 지갑이 앱에 임베드되므로 온보딩 전환율이 높아집니다
- 개인 키나 시드 문구를 분실할 위험이 없습니다
- Solana 네이티브 방식을 유지하면서 UX와 보안을 개선합니다
패스키는 이미 Xelio 같은 앱에서 사용되고 있습니다. Xelio는 패스키를 활용해 SMS만으로 마찰 없이 사용자를 임베디드 지갑에 온보딩합니다.
SWIG Smart Wallet 같은 다른 프로젝트도 안전하고 앱 네이티브한 온보딩을 위해 패스키 기반 흐름을 도입하고 있습니다.
더 많은 앱이 패스키 기반 접근을 지원하는 임베디드 지갑을 도입할수록 범용 지갑 UX 레이어에 가까워집니다. 사용자는 앱, 기기, 세션 간에 신원과 서명 권한을 끊김 없이 유지할 수 있습니다. 이는 조합 가능성과 앱 체이닝이 표준으로 자리 잡고 있는 Solana 같은 생태계에서 특히 중요합니다.
Solana 앱에 패스키를 추가하는 방법
Para 지갑 SDK를 사용하면 5분 이내에 패스키 기반 지갑을 Solana 앱에 통합할 수 있습니다.
단계별 작동 방식은 다음과 같습니다.
사전 요구 사항
먼저 Para Developer Portal에서 Para API 키를 발급받으세요.
그런 다음 프로젝트 루트에 env.local 파일을 만들고 키를 추가하세요.
NEXT_PUBLIC_PARA_API_KEY=your_para_api_key_here
Next.js를 사용하지 않는다면 프레임워크에 맞게 조정하세요.
- Vite의 경우
VITE_PARA_API_KEY을 사용하세요 - Node.js의 경우
process.env.PARA_API_KEY을 참조하세요
1. Para SDK로 세션 초기화
먼저 앱을 ParaProvider으로 래핑하고 프런트엔드에서 Para SDK를 구성하세요. 이렇게 하면 임베디드 지갑 환경이 준비되고 사용자 세션을 생성하거나 복원할 수 있습니다.
<ParaProvider
paraClientConfig={{
env: Environment.BETA, // or Environment.PROD
apiKey: YOUR_API_KEY,
}}
externalWalletConfig={{
appName: YOUR_APP_NAME,
wallets: ["PHANTOM","GLOW","BACKPACK"],
walletConnect: { projectId: YOUR_WALLET_CONNECT_PROJECT_ID },
solanaConnector: {
config: {
endpoint: ENDPOINT_FOR_SOLANA_CONNECTION,
chain: SOLANA_CHAIN,
},
},
}}
paraModalConfig={{
oAuthMethods: ["GOOGLE","TWITTER","TELEGRAM"]
authLayout: ["AUTH:FULL","EXTERNAL:FULL"]
recoverySecretStepEnabled: true
onRampTestMode: true
}}
>
{REST_OF_APP}
</ParaProvider>2. Helius로 트랜잭션 서명 및 전송
세션이 활성화되면 Para SDK와 Helius를 통해 Solana 트랜잭션에 서명하고 전송할 수 있습니다. 이 서명자는 @solana/kit JavaScript SDK의 표준 signTransaction 메서드를 제공합니다.
const connection = new Connection(HELIUS_RPC_URL);
const solanaSigner = new ParaSolanaWeb3Signer(para, Connection);
const tx = new Transaction().add(...);
const signedTx = await solanaSigner.signTransaction(transaction);
await connection.sendRawTransaction(signedTx.serialize());Para를 사용하면 개인 키를 노출하거나 브라우저 확장 프로그램을 요구하지 않고도 패스키 UX와 Solana 네이티브 온체인 서명을 모두 구현할 수 있습니다.
결론
Solana가 주류로 진입하고 있습니다.
더 많은 사용자를 온보딩하려면 패스키, 생체 인식 서명, 비밀번호 없는 인증을 통해 마찰을 줄이고 더 많은 사람을 온체인으로 유입해야 합니다.
Para SDK로 단 5분 만에 Solana 앱에 패스키 지원을 추가하세요.
추가 자료
관련 아티클
Helius 구독하기
최신 Solana 개발 소식을 확인하고 새 게시물 알림을 받아보세요


