Kaia 체인에서 안전한 지갑 관리: 개발자를 위한 쿡북
소개
이 요리책의 대상
Kaia 보안 지갑 쿡북에 오신 것을 환영합니다. 이 가이드는 Kaia 블록체인을 기반으로 구축하는 개발자, 엔지니어, 팀을 위해 작성되었습니다. 이 쿡북은 첫 탈중앙화 애플리케이션(dApp)을 만들든, 자동화된 서비스를 배포하든, 자금을 관리하든, 보안을 우선시하는 사고방식으로 암호화 키와 지갑을 다루는 데 필요한 필수 레시피를 제공합니다.
이 쿡북을 사용하는 방법
이 요리책은 점진적인 학습 경로를 따릅니다:
각 레시피는 이전 섹션의 개념을 기반으로 합니다. Web3 보안을 처음 사용하시나요? 1장](./create-and-manage-wallets-securely.md#chapter-1-the-principles-of-private-key-security)부터 시작하세요. 숙련된 개발자입니까? 사용 사례에 맞는 레시피로 이동하기
핵심 철학: 보안 우선
Web3에서는 '키가 아니라 암호가 아니라'라는 문구가 기본적인 진리입니다. 개발자의 경우 이는 소프트웨어 개발 라이프사이클의 모든 부분으로 확장됩니다. 유출된 키 하나로 인해 사용자와 프로젝트 모두에게 치명적인 손실이 발생할 수 있습니다. 이 가이드의 핵심 철학은 보안 우선입니다. 모든 레시피와 권장 사항은 기본적으로 강력하고 안전한 시스템을 구축하여 공격 표면을 최소화하고 첫날부터 자산을 보호하는 데 도움이 되도록 설계되었습니다.
전제 조건
이 쿡북을 최대한 활용하려면 블록체인 개념(예: 공개/개인 키, 거래, 가스 요금)에 대한 기본적인 이해가 있어야 하며 명령줄 인터페이스에 익숙해야 합니다.
1부: 1부: 기본 개념 및 보안 원칙
이 부분에서는 안전한 지갑 관리의 '이유'에 초점을 맞춥니다. 코드를 작성하기 전에 필요한 핵심 지식을 확립합니다.
1장: 개인 키 보안의 원칙
1.1. 키 쌍 이해하기: 계정의 핵심
Kaia에서는 다른 EVM 호환 체인과 마찬가지로 사용자 계정이 사용자 아이디와 비밀번호가 아닙니다. 이는 공개 키와 개인 키의 암호화 키 쌍입니다. 공개 키는 은행 계좌 번호와 같은 공개 주소로, 안전하게 공유할 수 있습니다. 개인 키는 거래나 메시지에 서명하는 등 계정에서 이루어지는 모든 작업을 승인하는 비밀입니다. 이는 보호해야 할 가장 중요한 정보입니다. 개인 키를 소유한 사람은 누구나 계정과 그 자산을 완전하고 불가역적으로 제어할 수 있습니다.
1.2. 안전한 키 생성: Kaia 모범 사례
보안 키는 무작위로 생성된 키입니다. 계정의 보안은 누군가가 내 개인 키를 추측하는 것이 수학적으로 불가능하다는 점에 달려 있습니다. 키를 생성할 때는 항상 잘 검증된 표준 암호화 라이브러리(예: 'ethers-ext'에 포함된 라이브러리 또는 이 가이드에서 설명하는 도구)를 사용하세요. 자신만의 "영리한" 또는 "사람이 읽을 수 있는" 개인 키를 만들려고 시도하지 마세요. 이렇게 하면 무작위성이 크게 줄어들고 추측에 취약해집니다.
1.3. 안전한 키 저장소: 로컬 키 저장소에서 프로덕션 볼트까지
개인 키를 저장하는 방법은 생성하는 방법만큼이나 중요합니다. 개인 키를 일반 텍스트 파일에 저장하는 것은 은행 비밀번호를 스티커 메모에 적어 모니터에 붙여 두는 것과 같은 디지털 방식입니다.
경고: 개인 키를 일반 텍스트 '.env' 파일에 저장하지 마세요. 개발에는 편리하지만 .env 파일은 실수로 버전 관리에 커밋되는 경우가 많아 키가 공개적으로 노출되고 즉시 자금 도난으로 이어질 수 있습니다.
보안 로컬 저장소의 표준은 암호화된 키 저장소 파일(JSON 키 저장소라고도 함)입니다. 이 파일에는 개인 키가 포함되어 있지만 사용자가 선택한 강력한 비밀번호로 암호화되어 있습니다. 키를 사용하려면 키스토어 파일과 메모리에서 암호를 해독할 수 있는 비밀번호를 제공해야 합니다. 프로덕션 시스템의 경우, 키가 애플리케이션 코드에 직접 노출되지 않도록 하는 AWS KMS 또는 Google Cloud KMS와 같은 전용 비밀 관리자를 사용하는 것이 가장 좋습니다.
1.4. 메모리에서 키 처리하기: 런타임 중 노출 최소화하기
보안 소스에서 로드한 경우에도 트랜잭션에 서명하려면 애플리케이션의 메모리에 개인 키가 있어야 합니다. 이러한 노출을 최소화하는 것이 중요합니다. 애플리케이션을 잘 설계하면 키가 가능한 한 짧은 시간 동안 메모리에 보관되고 사용 후 즉시 지워집니다. 이 요리책의 라이브러 리와 레시피는 이 원칙을 따르도록 설계되었습니다.
2장: Kaia 지갑 생태계 탐색하기
2.1. Kaia 지갑
Kaia 지갑은 Kaia 생태계를 위한 기본 브라우저 확장 지갑입니다. 메타마스크와 많은 기능을 공유하지만, 고유한 거래 유형, 수수료 위임 거래, 네트워크 전용 계정 시스템을 지원하며 네트워크에서 원활한 사용자 경험을 제공함으로써 Kaia에 최적화되어 있습니다. 개발자에게는 특정 동작과 API를 이해하는 것이 원활한 디앱 통합을 구축하는 데 중요합니다.
2.2. 콜드 스토리지: 하드웨어 지갑 개요
콜드 스토리지는 인터넷에 연결되지 않은 장치에 개인 키를 보관하는 것을 말합니다. 하드웨어 지갑**은 이러한 목적으로 제작된 물리적 장치입니다. 연결된 컴퓨터에 개인 키를 노출하지 않고 내부적으로 트랜잭션에 서명합니다. 따라서 고가치 자산을 보호하는 데 있어 최고의 표준이 됩니다. 이 가이드에서는 공식적으로 지원되는 DCENT 및 SafePal 하드웨어 지갑에 중점을 두고 설명합니다.
2.3. 다중 서명 지갑: Kaia 세이프 소개
다중 서명(또는 "다중 서명") 지갑은 트랜잭션이 실행되기 전에 여러 개의 개인 키를 승인해야 하는 스마트 컨트랙트입니다. 예를 들어 2대 3 다중 서명의 경우 지정된 소유자 3명 중 2명의 승인이 필요합니다. 이는 단일 장애 지점을 방지하기 때문에 팀 자금, 재무 및 중요한 스마트 컨트랙트 관리를 위한 표준입니다. Kaia 세이프는 Kaia 네트워크의 기본 다중 서명 솔루션입니다.
2부: 지갑 관리를 위한 실용적인 레시피
이제 1부의 기본 보안 원칙을 이해했으니 이제 이를 실천에 옮길 차례입니다. 이 섹션에서는 개별 개발 설정부터 프로덕션급 솔루션에 이르기까지 실제 시나리오에 대한 단계별 가이드를 제공합니다.
구축 내용:
- 파운드리 및 하드햇을 위한 안전한 개발 환경
- 팀 협업을 위한 다중 서명 재무 설정
- 다양한 지갑 유형과 dApp 통합
3장: 개별 개발자 및 dApp을 위한 설정
이 장에서는 개발 과정에서 지갑을 설정하고 관리하기 위한 실습 가이드를 제공하며, 코드의 첫 줄부터 보안을 강조합니다.
3.1. 레시피: 첫 번째 Kaia 개발 지갑
Kaia를 처음 사용하거나 Kaia 지갑을 처음 설정하는 경우, 지갑 시작하기 섹션을 참조하시기 바랍니다. 지갑 설치, 안전한 계정 생성 및 백업, 추가 계정 추가, 지갑 자금 조달과 같은 필수 단계를 다룹니다.