프로덕션 환경에서의 서명

트랜잭션은 모든 필수 서명자의 유효한 서명이 포함된 경우에만 실행됩니다. 로컬 개발 환경에서는 보통 해당 키를 Keypair로 보유하고 직접 서명합니다. 프로덕션 환경에서는 다른 중요한 질문이 생깁니다: 개인 키는 어디에 저장되며, 누가 해당 키로 서명을 승인할 수 있는가?

클라이언트 측 코드에 개인 키를 절대 삽입하거나, 프론트엔드 번들에 포함하거나, 소스 컨트롤에 커밋하지 마세요. 키를 획득한 누구든 해당 계정의 자산을 완전히 제어할 수 있습니다.

서명 방식

방식키 저장 위치서명 주체적합한 용도
로컬 keypair머신의 파일 또는 환경 변수코드에서 직접로컬 개발, 테스트, CI
브라우저 지갑최종 사용자의 지갑 (예: Phantom, Solflare)최종 사용자가 트랜잭션별로사용자가 직접 트랜잭션에 서명하는 프론트엔드 dApp
클라우드 KMS / HSM하드웨어 기반 키 서비스 (AWS KMS, GCP KMS, Vault)백엔드가 서비스에 서명을 요청백엔드 서비스, 자금 운용, 규제 환경
관리형 / MPC 지갑제공업체 인프라 전반에 분산 또는 위탁 보관제공업체가 정책에 따라 공동 서명임베디드 지갑, 승인 워크플로, 기관 수탁

로컬 keypair는 애플리케이션 내부에 원시 키 자료를 직접 저장하는 유일한 방식입니다. 모든 프로덕션 방식은 키를 전용 인프라에 보관하고, 해당 인프라에 서명을 위임합니다.

백엔드 서명

서버가 수수료 지불, 프로그램 트랜잭션 전송, 또는 트레저리 운영 등을 위해 서명해야 할 경우, 원시 keypair 대신 전용 키 관리 백엔드를 사용하세요. Solana Foundation은 Keychain을 유지 관리하고 있으며, 이는 위 표에 나열된 모든 백엔드(Memory, HashiCorp Vault, AWS KMS, GCP KMS, Fireblocks, Privy, Turnkey, CDP, Crossmint, Dfns, Para, Openfort, Utila)에서 단일 SolanaSigner 인터페이스를 제공하는 통합 서명 라이브러리(Rust 및 TypeScript)입니다.

백엔드 간 인터페이스가 동일하기 때문에, 애플리케이션 코드를 수정하지 않고도 인메모리 키로 로컬 개발을 진행한 뒤 설정만 변경하여 프로덕션 백엔드로 전환할 수 있습니다. Keychain은 @solana/kitRust SDK와 호환됩니다.

키 관리, RPC 보안, 모니터링 등 전체 프로덕션 체크리스트는 프로덕션 준비를 참고하세요.

Is this page helpful?

목차

페이지 편집