MSTR Cat

블록체인/레벨 VIII · 밈코인 시대/8.2 Solana/수업 2

지갑 및 서명

지출하는 서명, 그보다 오래 남는 승인, 그리고 읽을 수 없는 내용에 서명하는 위험

준비물웹 브라우저가 있는 컴퓨터솔라나 블록 탐색기(예: Solscan)Phantom/Solflare가 설치된 하드웨어 지갑 또는 모바일 기기

호기심

  1. 솔라나 트랜잭션에는 왜 만료 시점이 있을까요?
  2. 사용자가 버전이 지정된 트랜잭션에 서명할 때 정확히 무엇이 승인되는 건가요?
  3. 하나의 트랜잭션이 어떻게 전체 주소로 나열한 것보다 훨씬 많은 계정을 참조할 수 있을까요?

탐구

  1. 솔라나 키는 ed25519 키 쌍입니다. 대부분의 지갑은 m/44'/501'/0'/0' 파생 경로를 사용해 BIP39 시드 문구로부터 이 키를 도출합니다. 이 표준 덕분에 사용자는 원래의 12단어 또는 24단어 니모닉만 보관하고 있다면 호환되는 다른 소프트웨어에서도 자신의 계정 전체를 복구할 수 있습니다. 프라이빗 키는 로컬에 남고, 퍼블릭 키는 온체인에서 계정 주소 역할을 합니다.
  2. 트랜잭션에는 특정 인스트럭션과 그 인스트럭션이 사용하는 계정이 나열됩니다. 중요한 점은 최근 블록해시가 포함된다는 것입니다. 이 해시는 만료 장치로 작동합니다. 트랜잭션이 약 150블록, 대략 60~90초 이내에 처리되지 않으면 블록해시가 만료되어 네트워크가 해당 트랜잭션을 거부합니다. 지속형 논스(durable nonce)를 사용하면 최근 블록해시 대신 특별한 논스 계정에 저장된 값을 사용해, 더 오래 유효한 트랜잭션에 서명할 수 있습니다.
  3. 서명은 트랜잭션에 포함된 모든 인스트럭션을 승인합니다. 악의적인 페이로드는 사용자가 그 세부 인스트럭션을 분명히 인지하지 못한 사이에 토큰 계정을 이전하거나 권한 설정을 변경할 수 있습니다. Phantom, Solflare, Backpack 같은 지갑은 이러한 트랜잭션을 시뮬레이션해 사람이 읽을 수 있는 미리보기를 제공합니다. 하지만 사용자는 여전히 원시 데이터를 의도 확인 없이 받아들이는 ‘블라인드 서명’을 통해 해로운 인스트럭션을 승인할 수 있습니다.
  4. 버전 지정 트랜잭션은 주소 조회 테이블을 도입해, 하나의 트랜잭션이 모든 전체 주소를 나열하는 대신 인덱스로 여러 계정을 참조할 수 있게 합니다. 이 최적화는 다수의 토큰 민트나 포지션을 다루는 복잡한 작업의 바이트 크기를 줄여 줍니다. 대가는 복잡성입니다. 실제로 해석되는 주소를 파악하려면 참조된 계정의 현재 상태를 기준으로 테이블 인덱스를 디코딩해야 합니다.
  5. 하드웨어 지갑은 서명을 위한 격리된 환경을 제공하며, USB나 QR 코드로 연결되어 호스트 시스템의 악성 코드로부터 키를 보호합니다. 하지만 보안은 트랜잭션 데이터를 구성하고 표시하는 호스트 애플리케이션의 무결성에 달려 있습니다. 호스트가 침해되면 악의적인 내용을 숨긴 채 정상처럼 보이는 내용을 보여 주고, 사용자는 그것에 서명하게 됩니다. 하드웨어 기기 화면에서 모든 파라미터를 직접 확인하면 이 특정 공격 경로를 막을 수 있습니다.
  6. 트랜잭션의 구조를 확인하려면 솔라나 블록 탐색기를 열고, 여러 단계로 이루어진 작업이 포함된 최근 트랜잭션 하나를 선택하세요. ‘Instructions’ 섹션을 펼쳐 개별 프로그램 호출을 각각 확인하세요. 그런 다음 ‘Accounts’ 탭에서 각 인스트럭션이 어떤 계정을 읽고 썼는지 살펴보세요. 이를 원시 데이터와 대조하면 시뮬레이션 미리보기가 실제 상태 변화와 어떻게 대응하는지 이해할 수 있습니다.

핵심 사실

  • 솔라나 키는 m/44'/501'/0'/0' 경로로 BIP39 시드에서 도출된 ed25519 키 쌍입니다.
  • 트랜잭션에는 최근의 블록해시가 포함되어 있어 약 150개의 블록이 생성된 후(60~90초 후) 만료됩니다.
  • 서명은 모든 인스트럭션을 승인하므로, 미리보기를 무시하면 악성 페이로드에 블라인드 서명을 하게 될 수 있습니다.
  • 버전 지정 트랜잭션은 주소 조회 테이블을 사용해 여러 계정을 간결하게 참조합니다.
  • 하드웨어 지갑은 키를 격리하지만, 트랜잭션 데이터 표시는 호스트 애플리케이션에 의존합니다.
  • 지갑은 서명을 요청하기 전에 트랜잭션을 시뮬레이션해 사람이 읽을 수 있는 미리보기를 보여 줍니다.

연습 아홉, 여섯, 셋, 하나

9모으기솔라나 지갑 인터페이스 또는 서명 방식 9가지를 나열하세요. 각각의 주요 보안 모델(소프트웨어, 하드웨어, MPC)과, 트랜잭션 검사를 위해 제공하는 구체적인 기능 하나를 적으세요.
6묶기9개를 서명 전에 사용자에게 보이는 트랜잭션 데이터의 양에 따라 6가지 범주로 분류하세요: 전체 원시 데이터, 시뮬레이션 미리보기만, 하드웨어 화면 검증, 불투명한 실행.
3추리기6개 그룹을 솔라나 지갑에서 사용성과 보안 가시성 사이의 3가지 핵심 트레이드오프로 압축하세요.
1결정화솔라나에서 서명이 다른 체인과 비교해 실제로 무엇을 승인하는지 문장 1개로 쓰세요.

팩트 체크

날짜, 수치 및 주장은 아래에 명시된 출처들을 통해 확인되었습니다.

인터랙티브 아카데미에서 열기 →

EN PT ES ZH JA RU DE FR MS