저자: enze, 슬로우 미스트 테크놀로지
솔라나는 빠르고 확장성이 뛰어난 블록체인 프로토콜로, 탈중앙화 애플리케이션(DApp)을 위한 강력한 인프라를 제공합니다. 최근 솔라나 생태계가 부활하면서 많은 관심을 받고 있으며, 이 글에서는 솔라나 계정, 토큰, 트랜잭션, 생태계에서 자산을 보호하는 방법에 대해 살펴봅니다.
솔라나 계정
계정에 대한 이해는 자산을 보호하는 첫 번째 단계입니다. 이더리움의 계정과 달리 솔라나에서 계정의 주요 역할은 데이터를 저장하는 것입니다.
솔라나에는 세 가지 주요 계정 유형이 있습니다:
데이터 계정: 데이터를 저장하는 데 사용됩니다.
프로그램 계정: 실행 프로그램을 저장하는 데 사용됩니다.
기본 계정: 시스템, 스테이크, 투표 등 솔라나의 기본 프로그램을 참조합니다.
이 중 데이터 계정은 다시 두 가지 범주로 나눌 수 있습니다.
각 계정에는 주소(일반적으로 공개 키)와 소유자(프로그램 계정의 주소)가 있습니다. 전자는 이더리움의 주소와 유사하며, 후자는 계정을 생성한 프로그램으로 이해하면 됩니다.
일반 사용자가 지갑을 통해 생성한 계정은 데이터 계정에서 시스템 소유 계정에 속하며, 기본 계정 소유자는 시스템 프로그램입니다. 사용자가 시스템 프로그램을 통해 시스템 소유 계정을 생성하면 사용자의 기본 정보, 자산 등의 데이터가 저장되고 이 계정이 주소(공개 키라고도 함)를 소유한다고 간단히 이해할 수 있습니다.
솔라나 익스플로러를 예로 들면, 일반 사용자가 사용하는 계정, 즉 시스템 소유 계정은 브라우저에 다음과 같이 표시됩니다.
. 할당된 프로그램 아이디는 계정의 소유자를 나타내고, 할당된 데이터 크기는 계정에 저장된 데이터의 크기를 나타내며, 실행 가능은 계정이 실행 가능한지 여부를 나타내며, 일반적으로 프로그램 계정만 실행 가능합니다. 일반적으로 프로그램 계정만 실행 가능하며, 일반 사용자는 계정 주소만 확인하면 됩니다.
위와 같이 솔라나 계정에 대한 예비적 이해를 마쳤으니 이제 솔라나 토큰에 대해 알아보겠습니다.
>
솔라나 토큰
SPL 토큰은 동종 토큰을 포함하여 솔라나 네트워크의 모든 비로컬 토큰을 나타냅니다. 토큰, 동종 토큰과 비동종 토큰(NFT)을 모두 포함합니다.
SPL 토큰은 ERC20 및 ERC721 토큰과 유사하게 솔라나에서 발행 및 거래되며, 다음과 같은 점에서 이더와 구별됩니다.
솔라나에서 토큰 발행자는 솔라나의 기본 토큰 프로그램을 통해 민트 계정을 생성하고 이 계정에 토큰에 대한 기본 정보를 저장합니다. 예를 들어 솔라나 익스플로러에서 USDC의 발행 계정 주소는 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v입니다. 익스플로러는 현재 토큰 공급량, 발행 및 동결 기관의 주소, 토큰의 소수점 이하 정밀도 등 USDC 토큰 민트에 대한 자세한 정보를 표시합니다. 주소, 토큰의 소수점 이하 정밀도 등 자세한 정보를 확인할 수 있습니다.
다음으로 토큰 계정이 무엇인지 이해해 보겠습니다.
솔라나에서는 각 토큰 보유자가 특정 토큰을 가지고 있습니다. 예를 들어, 앨리스가 USDT와 USDC 토큰을 모두 가지고 있다면, 앨리스는 두 개의 토큰 계정을 가지게 되는데, 하나는 USDT용이고 다른 하나는 USDC용입니다.
그렇다면 내 토큰 계정을 어떻게 확인하나요?
솔라나 비치 브라우저에서 데이터 계정의 주소를 입력하고 포트폴리오를 클릭하면 특정 토큰의 잔액을 기록하는 각 토큰 계정을 명확하게 볼 수 있습니다.
솔라나 비치 브라우저를 사용하면 각 계정에 기록된 토큰 정보, 승인 등에 대한 자세한 정보도 볼 수 있습니다.
솔라나 트랜잭션
솔라나에서의 트랜잭션 솔라나에서 각 트랜잭션에는 다음과 같은 주요 정보가 포함됩니다.
인스트럭션: 송금, 프로그램 상호작용, 토큰 전송 등 트랜잭션의 작업을 정의하는 하나 이상의 명령어입니다.
블록해시: 가장 최근의 블록 해시값을 포함하며 트랜잭션이 올바른 블록에서 실행되는지 확인하는 데 사용됩니다.
서명: 트랜잭션의 승인을 나타내는 하나 이상의 서명입니다. 각 서명은 트랜잭션에서 서명된 계정에 해당하며, 승인된 계정만 트랜잭션을 실행할 수 있도록 합니다.
솔라나의 트랜잭션은 여러 개의 명령어를 포함할 수 있으며, 이는 동일한 트랜잭션 내에서 다양한 작업을 수행할 수 있음을 의미합니다. 예를 들어 사용자가 여러 개의 이체 명령어를 동일한 트랜잭션에 패키징할 수 있으며, 이러한 명령어는 순차적으로 실행될 수 있습니다. 트랜잭션의 명령어 중 하나라도 실패하면 전체 트랜잭션이 실패합니다.
솔라나의 트랜잭션 로깅은 이더와 약간 다르므로, 솔라나에서 트랜잭션 로그를 효과적으로 읽는 방법을 살펴보겠습니다.
SOL 전송 트랜잭션
솔라나에서 트랜잭션 로깅을 위해 솔스캔 브라우저를 예로 들어 다음과 같은 주요 정보를 중점적으로 살펴보겠습니다.
서명 (서명): 트랜잭션 해시와 유사하게, 트랜잭션의 첫 번째 서명은 트랜잭션 로그에서 트랜잭션의 인덱스로 사용됩니다.
Result(결과): 트랜잭션 실행의 결과로, 트랜잭션의 성공 여부를 나타냅니다.
서명자: 트랜잭션이 실행된 계정의 주소, 즉 서명자의 주소입니다.
주 작업: 트랜잭션에 포함된 주요 작업 명령어(이체, 프로시저 호출 등)
주 작업: 트랜잭션에 포함된 주요 작업 명령어입니다.
명령어 세부 정보: 트랜잭션에서 실행된 특정 명령어입니다.
주 작업에서 이체 양 당사자의 계좌 주소를 확인할 수 있습니다.
인스트럭션 세부정보에서 SOL 이체 트랜잭션의 주 인스트럭션이 SOL 이체임을 확인할 수 있습니다. 트랜잭션 세부 정보를 자세히 살펴보면 트랜잭션이 호출하는 절차 및 송금에 관련된 두 당사자의 계좌 주소에 대한 정보를 얻을 수 있습니다.
토큰 이체 트랜잭션
다음은 트랜잭션은 SOL 트랜잭션과 유사한 USDT 이체입니다.
지시 세부 정보 섹션에서 토큰 트랜잭션은 일반적으로 연결 계정 만들기 명령을 호출하는 것으로 시작됩니다. 는 수신자의 토큰 계정을 생성하며(수신자에게 아직 계정이 없는 경우), 이 계정은 USDT 잔액과 같은 데이터를 저장하는 데 사용됩니다.
그런 다음 토큰 전송 명령이 실행되어 USDT를 전송합니다. SOL 전송 명령과 달리 토큰 전송 명령의 소스 및 대상은 전송 당사자의 직접 계정 주소가 아니라 토큰 계정(PDA 계정)을 나타낸다는 점에 유의할 필요가 있습니다.
스왑 트랜잭션
다음은 사용자가 USDT를 USDC로 교환하는 스왑 트랜잭션입니다.
스왑 트랜잭션
다음은 사용자가 USDT를 USDC로 교환하는 스왑 트랜잭션입니다.
멀티 인스트럭션 트랜잭션
솔라나 트랜잭션에서 다음과 같은 여러 인스트럭션이 포함됩니다. SOL 이체, 스왑 거래, 토큰 이체.
인스트럭션이 여러 개 있더라도 인스트럭션 세부 정보를 통해 트랜잭션의 세부 지침을 확인하여 각 단계가 수행하는 작업을 확인할 수 있습니다.
자산 보안
'적을 알면 나를 안다'는 속담이 있습니다. 솔라나의 계정, 토큰, 트랜잭션에 대해 간략히 살펴보았습니다. 자산 도난의 위험을 피하기 위해서는 솔라나 지갑을 사용할 때 직면할 수 있는 위험에 대해 더 깊이 이해해야 합니다.
개인 키 및 도우미 유출
슬로우 포그 블록체인 해킹 아카이브(https://hacked.slowmist.io)에 따르면, 2023년에 발생한 9건의 개인 키 유출 보안 사고로 인해 손실액만 8,475만 달러에 달했습니다. 자산 도난으로 이어지는 개인 키 및 니모닉 유출은 슬로우 포그 AML 팀에서 처리하는 도난 사건의 상당 부분을 차지합니다. 따라서 솔라나 지갑의 자산 보안을 위해 할 수 있는 가장 중요한 일은 지갑의 개인 키와 니모닉을 관리하는 것입니다.
서명은 지갑을 사용할 때 주의해야 할 가장 중요한 보안 위험 중 하나이며, 솔라나에서 프로젝트와 상호 작용할 때 서명하는 정보에 특히 주의를 기울여야 합니다.
또한 솔라나는 여러 번의 이체를 하나의 트랜잭션으로 패키징할 수 있으므로 지갑에 있는 모든 자산을 한 번에 전송하려면 한 번의 서명이 필요합니다.
실제 사례를 살펴보겠습니다.
피싱 사이트에서 피해자가 확인을 위해 실수로 한 번만 클릭한 결과 지갑에 있는 모든 자산이 한 번에 이체되었습니다. 피해자가 단 한 번만 서명하면 해커가 모든 자산을 이체할 수 있도록 허용한 작업은 정확히 무엇이었을까요?
예, 해커는 위에서 언급한 메커니즘과 위에서 언급한 메커니즘과 지갑의 기능을 악용했습니다.
피해자는 여러 개의 이체 지침을 단일 트랜잭션으로 패키징하여 전체 프로세스를 완료하는 데 단 하나의 서명만 필요한 팬텀 지갑을 사용하고 있었습니다. 바로 이 기능이 해커들이 악용할 수 있는 돌파구가 되었고, 피해자는 단 한 번의 서명으로 모든 자산을 잃게 되었습니다.
지갑을 사용할 때 사용자는 손실을 방지하기 위해 각 서명 작업을 주의 깊게 확인해야 합니다.
이 주요 기능은 팬텀 월렛의 공식 문서에도 명확하게 설명되어 있습니다:
요약
이번 솔라나 사이언스에서는 먼저 솔라나 계정의 기본 사항을 살펴본 다음, 솔라나 토큰의 기본 개념을 살펴보고 솔라나에서 거래하는 데 무엇이 필요한지 알아보았습니다. 지갑 자산 보호 섹션에서는 개인 키와 보조 단어의 안전한 보관에 대해 강조했으며, Slow Mist에서 제작한 "블록체인 다크 포레스트 셀프 도움말 매뉴얼"(https://github.com/slowmist/Blockchain-dark-forest-selfguard-handbook/blob/)을 읽어보시길 권장합니다. main/README_CN.md에서 더 많은 보안 조언을 확인할 수 있으며, 지갑을 사용할 때 사용자는 손실을 방지하기 위해 각 서명 작업을 주의 깊게 확인하는 것이 좋습니다. 또한, 지갑 설명서에 있는 보안 팁을 읽어보시는 것이 중요하며, 자산을 보호하기 위해서는 지속적인 경계가 필요합니다.