A.비트코인 지갑 주소는 각자의 지갑에서 무작위로 생성됩니다.
비트코인 네트워크에서는 어떤 주소가 있는지 없는지를 판단하지 않습니다.
보내는 지갑은 일단 해당 주소로 비트코인을 보내는 것이고 해당 지갑이 알아서 블록체인에 올라온 코인을 자기 소유로 만드는 것입니다.
만일 비트코인 주소를 중간에 한두 글자만 잘못 입력했다고 해봅시다.
이때는 비트코인 지갑 자체에서 이 주소가 유효한지 아닌지 검증하기 때문에 잘못된 주소라고 오류가 발생하면서 전송이 안 됩니다.
그러므로 실수로 틀린 주소를 입력하는 것은 큰 문제가 안 됩니다.
하지만, 예전에 사용했었지만, 지금은 지워버린 주소라거나 혹은 정말 우연히 잘못 입력했는데 그 주소가 유효한 주소라고 인정되면(실제 해당 주소가 존재하는지 하지 않는지는 판단하지 않습니다) 코인은 즉시 전송을 시작하고 코인을 블록체인 안으로 보내버립니다.
그러면 그 코인은 어떻게 될까요?
영영 블록체인 안에 남아서 해당 주소의 개인키로 블록체인에 접근하기 전까지는 사용하지 못하는 주소로 남게 됩니다.
하지만 확률적으로 그 주소가 생성될 확률이 얼마인지는 앞에서 언급했었죠?
한마디로 그냥 잃어버리는 코인이 됩니다.
그러므로 코인을 전송할 때는 반드시 복사-붙여넣기를 사용하거나 혹은 QR코드를 이용해야 합니다.
절대로 키보드로 타이핑을 하면 안 됩니다.
그러면 코인을 보내는 방식을 살펴보겠습니다.
다음 그림과 같이 A지갑에서 코인을 전송합니다.
보내는 지갑은 네트워크에 연결되어 있어야 합니다.
전송을 보내면 그 전송기록은 네트워크에 전파되어 10분 후에 블록체인에 기록됩니다.
그 후 B지갑이 PC를 켜고 네트워크에 연결합니다.
B지갑이 켜지면서 아직 동기화하지 않은 블록체인들을 읽어옵니다.
블록체인들을 읽어오면서 자신의 지갑 주소에 해당하는 코인이 블록체인에 있는지 확인합니다. 만일 코인이 블록체인에 들어 있다면 그 코인의 양을 지갑에 표현해줍니다.
이런 과정을 거쳐서 이체되기 때문에 수신 지갑은 반드시 온라인으로 연결되어 있을 필요는 없습니다.
극단적으로는 수신 지갑을 만들어서 USB에 백업을 해두거나
혹은 QR코드로 프린트해서 종이지갑으로 만들고 원본 지갑을 삭제한 후에 코인을 수신만 해두었다가
나중에 필요할 때 온라인으로 연결해서 그동안 수신하지 않았던 코인들을 일괄 수신하는 방법도 가능합니다.
이때 USB 지갑 혹은 종이지갑은 무기명채권과 같은 역할을 할 수도 있습니다.
하지만 싸구려 USB의 수명은 유한하기 때문에 그리 권장하는 방법은 아닙니다.
* 노파심에 더하자면 일부 시스템(특히 리눅스)은 Ctrl + C , V 처리가 제대로 되지 않는 경우도 허다합니다. ㅠㅠ
* USB 디스크에 저장할 때 Data retention 기간이 생각보다 길지 않습니다. 장기간 전원 off시 데이터 유실 가능성도 없지 않습니다.