13 / 736WAL

지갑

Bitcoin Wallet

비트코인을 받고 보내는 방법, 키를 가진 주체, 휴대전화나 서명 기기를 잃었을 때 필요한 것을 설명합니다.

비트코인 지갑은 결제를 받고 잔액을 확인하며 송금을 준비하도록 돕습니다. 하지만 같은 이름 아래에도 관리 방식은 다릅니다. 앱이 직접 서명하기도 하고 별도 기기가 서명하기도 하며, 수탁 서비스에서는 운영업체가 처리합니다. 따라서 화면의 모습보다 중요한 것은 누가 키를 통제하고 어떻게 접근을 복구할 수 있는지 아는 것입니다.

친구가 지갑의 주소로 비트코인을 보낸다고 해 봅시다. 휴대전화에 코인 파일을 보내는 것이 아니라 비트코인 네트워크에 트랜잭션을 만듭니다. 지갑은 결제가 도착했는지, 블록에서 확인되었는지 추적하고 잔액에 반영합니다. 나중에 내가 결제하려 하면 새 트랜잭션을 준비합니다. 결제를 승인하려면 보통 지출 권한을 증명하는 디지털 서명이 필요합니다. 지갑은 개인 키라는 비밀 정보를 이용해 서명하며 그 과정에서 키를 다른 사람에게 공개하지 않습니다. 앱과 네트워크의 역할은 다릅니다. 지갑은 결제를 돕고 네트워크는 거래가 규칙에 맞는지 검사합니다. [1]

표시된 잔액은 흔히 아직 쓰지 않은 여러 개별 금액, 즉 UTXO로 이루어져 있습니다. 지갑은 관리하는 정보를 바탕으로 이를 찾고 어느 것이 이미 사용되었는지 확인합니다. 단순히 관찰하는 데는 개인 키가 필요하지 않습니다. Watch-only Wallet은 입금을 표시하거나 결제안을 준비할 수 있지만 스스로 서명하지는 못하는 지갑입니다. 예를 들어 키는 별도 기기에 둔 채 저축액을 확인할 때 쓸 수 있습니다. 따라서 화면에 금액이 보인다는 것만으로 그 앱이 자금을 보낼 수 있다고 볼 수는 없습니다. [1]

Self-custody, 즉 직접 보관에서는 서명에 필요한 키를 내가 통제합니다. 동시에 키를 보호하고 복구할 책임도 집니다. custodial, 즉 수탁 서비스에서는 제공업체가 키를 보유하고 출금을 실행합니다. 앱에 표시된 잔액은 업체의 기록상 얼마를 출금할 수 있는지 뜻할 뿐, 해당 키를 내가 통제한다는 뜻은 아닙니다. 서비스의 이용 가능 여부와 규정도 중요합니다. 두 앱에 같은 금액이 표시되어도 접근을 잃거나 운영업체에 문제가 생기면 결과는 크게 달라질 수 있습니다. [1]

주소는 다른 사람이 내게 결제할 수 있게 하는 정보입니다. 지갑은 받은 비트코인을 나중에 어떻게 쓸 수 있는지 정하는 데이터로 주소를 만듭니다. 주소를 보내는 사람에게 알려 주어도, 보통 그것을 안다는 이유만으로 내 돈을 다른 곳에 보낼 수는 없습니다. 개인 키와 Seed Phrase는 역할이 다릅니다. Seed Phrase는 지원하는 지갑에서 키를 복구할 수 있는 순서가 있는 백업 단어입니다. 이런 비밀은 누구에게도 보내지 마세요. 다만 주소를 공유하는 것 역시 프라이버시에 영향을 줍니다. 주소를 아는 사람은 공개된 이력을 따라갈 수 있습니다. 다음 입금에 새 주소를 쓰면 서로 다른 결제를 불필요하게 연결하지 않는 데 도움이 됩니다. [1]

결제할 때 지갑은 적절한 UTXO를 고르고 수신자 금액과 필요한 거스름돈을 만들며 수수료를 제안합니다. 그다음 트랜잭션에 서명하고 네트워크로 보냅니다. 모든 단계를 같은 기기가 수행할 필요는 없습니다. PSBT는 아직 완성되지 않은 비트코인 트랜잭션을 앱과 서명 기기 사이에서 전달하는 형식입니다. Hardware Wallet은 별도 기기 안에서 키를 보호하고 서명을 만듭니다. 따라서 컴퓨터가 준비한 안을 컴퓨터에 키를 넘기지 않고도 서명할 수 있습니다. 목적지 주소와 금액은 기기의 신뢰할 수 있는 화면에서 확인하세요. 기기는 내가 실제로 누구에게 결제하려 했는지 알 수 없습니다. [2]

많은 현대 지갑은 BIP 32 규칙에 따라 시드라는 공통 출발점에서 여러 키를 파생합니다. BIP 39 등에서 쓰는 Seed Phrase는 그 출발점을 되찾도록 돕는 것이며, 키 하나를 단어로 옮겨 적은 것이 아닙니다. 파생 과정의 선택적인 추가 입력인 BIP39 passphrase를 사용한다면 복구할 때도 필요합니다. 오타로 경고 없이 다른 지갑이 열릴 수 있습니다. 파생 경로는 개별 키를 만드는 방식을, 스크립트 유형은 지출 조건을 기록하는 형식을 나타냅니다. 소프트웨어가 올바른 키와 주소를 찾으려면 이런 정보도 필요할 수 있습니다. 여러 서명이 필요한 Multisig에서는 서명 규칙과 공동 서명자의 공개 정보도 백업해야 합니다. 지갑 하나의 단어만으로는 부족할 수 있습니다. [3] [4] [2]

검증된 모바일 지갑은 소액 거래를 배우거나 일상에서 결제하는 데 쓸 수 있습니다. 큰 금액을 오래 보관하려면 키가 어디 있고 누가 접근할 수 있는지, 백업이 작동할지 더 신중히 생각해야 합니다. 별도 서명 기기는 휴대전화나 컴퓨터가 해킹되었을 때의 일부 위험을 줄이지만, 잘못된 결제를 승인하는 것까지 막지는 못합니다. 생활비와 저축액을 분리하면 한 번의 실수가 미치는 영향을 줄일 수 있습니다. 단순히 가장 복잡한 보안 방식을 고르는 것이 목적은 아닙니다. 절차를 이해하지 못하거나 그 절차로 접근 권한을 복구할 수 없다면, 그 자체가 위험입니다. [1]

복구에 쓸 앱이나 기기는 지갑 유형과 백업 형식을 지원해야 합니다. 백업을 적어 두었다고 복구 가능성을 확인한 것은 아닙니다. 단어가 빠짐없이 읽을 수 있는 상태로 올바른 순서에 있어야 하며, 다른 필요한 정보도 잃어서는 안 됩니다. 지갑이나 기기가 권장하는 안전한 백업 확인 또는 복구 절차를 이용하세요. 누군가 지갑을 검증하라며 보낸 페이지에 실제 단어를 입력해 시험하지 마세요. 지원팀을 사칭하는 사람에게도 필요하지 않습니다. 올바른 백업에서 키를 복구할 수 있다면 잃어버린 휴대전화는 교체할 수 있습니다. 같은 앱을 다시 설치하거나 비밀번호를 바꾸는 것만으로는 사라진 원래 키가 돌아오지 않습니다. [4] [5]

잔액을 표시하려면 지갑은 관련 트랜잭션의 상태를 알아야 합니다. 제공업체의 서버를 쓰거나, 비트코인 규칙을 독립적으로 검증하는 컴퓨터인 내 Full Node에 연결할 수 있습니다. 서버는 주소와 조회 사이의 관계를 알아낼 수 있고 다른 노드와 같은 미확인 거래를 보여 주지 않을 수도 있습니다. 내 노드는 지갑이 실제로 사용할 때만 도움이 됩니다. 이는 키를 보유하는 문제와는 별개입니다. 앱이 서명을 전적으로 내게 맡기면서도 정보는 다른 사람의 서버에 의존할 수 있습니다. 직접 보관과 독립적인 검증은 따로 평가해야 합니다. [1]

아무리 좋은 기기라도 가짜 앱을 설치하거나 백업 단어를 공개하거나 다른 주소로 결제를 승인하면 지켜 줄 수 없습니다. Phishing, 즉 피싱은 신뢰할 수 있는 웹사이트나 메시지, 지원팀을 흉내 내 비밀을 얻거나 위험한 행동을 승인하도록 유도하는 사기입니다. 앱과 업데이트의 출처를 확인하고 결제 정보를 점검하며 백업이 분실되거나 파괴되지 않도록 보호하세요. 누군가 키를 얻었다면 앱의 새 비밀번호로 그 사람의 사본을 무효화할 수 없습니다. 지갑은 앱, 필요에 따른 서명 기기, 백업, 사용 습관을 모두 포함한 자금 관리 방식으로 생각해야 합니다. [2] [5]

더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Private Key, UTXO, 트랜잭션, Full Node, Lightning Network. 다음 항목에서도 이 글을 참조합니다 UTXO, Private Key, Lightning Network, 비트코인 주소.

DOC · 001Bitcoin Developer Guide: Wallets1차 출처 DOC · 002BIP 174: PSBT1차 출처 DOC · 003BIP 32: wallet derivation1차 출처 DOC · 004BIP 39: passphrase1차 출처 DOC · 005Trezor: scams and phishing1차 출처
개정일: 1차 출처 우선 · 투자 조언이 아닙니다