오프라인 상태의 개인 키로 온라인 트랜잭션에 어떻게 서명할 수 있나요?
![보라색 배경에 닫힌 회색 벨트.](https://ledger-wp-website-s3-prd.ledger.com/uploads/2022/09/09_Security_Cover_Purple-1024x432.jpg)
주요 시사점: |
— 암호화폐는 인터넷 상에서의 블록체인 간 트랜잭션으로 본질적으로 온라인 상태일 수 밖에 없습니다. — 하드웨어 지갑은 개인 키를 인터넷과 해커가 접근할 수 있는 온라인 연결 지점에 접근하지 못하도록 설계되었습니다. 그렇다면 온라인 트랜잭션은 어떻게 서명할 수 있나요? — Ledger는 시스템을 통해 별도의 단계에서 트랜잭션을 승인하고 개인 키를 오프라인에서 관리합니다. |
Ledger 하드웨어 지갑 소유자라면 Ledger 지갑이 오프라인에서 개인 키를 생성하고 저장한다는 사실을 잘 알고 계실 거예요. 하드웨어 지갑의 주요 판매 포인트는 무엇인가요? 절대 인터넷에 연결되지 않는다는 사실입니다.
그러나 블록체인은 인터넷 연결로 인해 계속 실행됩니다. 또한 web3 앱도 모두 인터넷 연결에 의존합니다. 트랜잭션을 네트워크에 브로드캐스트하려고 해도 인터넷 연결이 필요합니다.
즉 프로세스의 모든 단계가 인터넷 연결에 의존하는 것처럼 보이죠. 따라서 ‘하드웨어 지갑이 항상 오프라인이라면, 도대체 이러한 온라인 디앱(dApp)이나 마켓플레이스와 어떻게 상호 작용하고 블록체인에 트랜잭션을 어떻게 보낼 수 있다는 말인가?’하고 의아한 생각이 들 수도 있습니다.
네, 그래서 이번에는 Ledger 장치 내에서 트랜잭션이 어떻게 발생하고, 키를 공개하지 않고도 어떻게 온라인 플랫폼과 상호 작용할 수 있는지를 정확하게 설명해 드리겠습니다. 함께 살펴 보겠습니다.
개인 키가 오프라인일 때 온라인 트랜잭션에 어떻게 서명하나요?
간단히 말해서 Ledger 장치의 트랜잭션 프로세스는 “오프라인” 부분과 “온라인” 부분의 단계로 나뉩니다. 이 프로세스를 통해 개인 키가 비공개로 유지됩니다.
전체 설명을 보려면 Ledger 장치 작동 방식에 대한 글을 참조하세요. 그러나 본질적으로 Ledger 장치는 트랜잭션 서명을 처리하지만 트랜잭션 자체를 브로드캐스트할 수는 없습니다. 대신 Ledger의 동반 앱인 Ledger Live를 호스팅하는 장치의 인터넷 연결을 대신 사용합니다.
즉, Ledger Live를 통해 트랜잭션을 개시할 때 사용한 바로 그 장치이죠. 이러한 방법을 통해 Ledger Live에 연결되어 트랜잭션 정보를 장치로 보낼 수 있습니다.
트랜잭션 서명 프로세스는 물리적 장치 내부의 변조 방지 컴퓨터 칩인 보안 요소 내에서 수행됩니다. 트랜잭션 서명이 완료되기 전에 해커에 의해 조작될 수 있기 때문에 이 과정은 트랜잭션에서 가장 중요한 부분입니다. 그러나 Ledger 장치의 보안 칩을 사용하면 서명 프로세스가 해커의 손이 닿지 않는 상태에서 서명을 완료할 수 있습니다.
이제, Ledger 장치는 USB 케이블을 통해 이미 서명된 트랜잭션을 인터넷에 연결된 장치로 전송합니다. 트랜잭션의 서명이 이미 완료되었기 때문에 인터넷에 연결된 장치가 악성 코드에 감염된 경우에도 서명을 변조할 수 없습니다.
이 시점에서는 트랜잭션을 노트북이나 스마트폰의 지갑 인터페이스로 다시 전송할 수 있으며 안심하고 블록체인에 브로드캐스팅할 수도 있습니다.
어떤 식으로든 인터넷에 연결된 장치가 필요하다면 컴퓨터나 스마트폰으로 트랜잭션에 서명하면 되지 않을까요?
간단히 답해 드리자면, 악성코드 때문에 안 됩니다. 인터넷에 연결된 장치(일반적으로 핫월렛이라고 불리는 지갑)에서 암호화폐 지갑을 직접 사용하는 경우 악성 코드와 같은 온라인 위협에 취약해집니다.
악성코드는 다양한 형태일 수 있습니다. 시드 문구나 개인 키를 알아내는 것이 목표일 수도 있고, 노트북이나 스마트폰 화면을 제어하여 악의적인 트랜잭션에 서명하도록 유도하는 것이 목표일 수도 있습니다. 악성코드가 컴퓨터에 물리적으로 설치될 수도 있지만 원격 해킹이 훨씬 더 널리 퍼져 있습니다.
안타깝게도 스마트폰이나 노트북에 직접 설치하는 암호화폐 지갑인 핫월렛은 이러한 유형의 위협에 매우 취약합니다. 즉, 인터넷에 연결된 장치에 접근할 수 있는 해커는 신속하게 개인 키를 찾아내어 지갑을 털어갈 수 있습니다. 이는 핫월렛이 개인 키를 저장하는 위치가 문제가 되어 발생합니다. 보통 호스트 장치에 직접 저장하거나, 경우에 따라 브라우저의 데이터 저장소에 저장합니다. 한 마디로, 해커에게 너무나 쉽게 노출될 수 밖에 없는 구조이죠.
굳이 설명하지 않아도, 거액의 암호화폐를 관리에 핫월렛을 사용하는 것은 일부러 사기꾼을 초대하는 것과 다를 바 없습니다.
인터넷에 연결된 기존 장치와 Ledger 장치가 함께 작동하는 시스템
web3 플랫폼, 애플리케이션 및 서비스와 상호 작용하려면 인터넷 연결이 필요합니다. 하지만 키를 안전하게 보관하려면 키를 오프라인 상태로 유지하는 것이 필수적입니다. 이 두 가지 사실은 서로 상충하죠. 탈중앙화된 앱을 사용하고자 하는 경우, 당연히 온라인 지갑의 편리함이 매력적으로 비칠 수 있습니다.
하지만 자금이 안전하지 않은데, 암호화폐 소유권이 무슨 의미가 있을까요? 보안은 암호화폐 공간에서 가장 중요하면서도 간과되기 쉬운 부분 중 하나입니다.
Ledger는 안전한 셀프 커스터디의 사용을 핵심으로 하기 때문에, Ledger 지갑을 사용하면 Ledger Live를 통해 간단하고 광범위한 암호화폐 앱과 서비스 생태계를 이용하면서 오프라인 상태에서 트랜잭션에 서명할 수 있습니다. 간단히 말해 Ledger를 통하면 보안, 사용 편의성 및 진정한 소유권이라는 두 가지 장점을 모두 누릴 수 있습니다.
셀프 커스터디가 아니라면 암호화폐를 사용하는 이유는 무엇인가요?