렛저 나노 S 사용 중에, 지갑 주소가 바뀌었다면?

레저 나노 S 로고

렛저 나노 S 지갑이나 Jaxx지갑, 일렉트럼 지갑, 비트코인 지갑 등을 사용하다보면, 어느 날 나의 ‘받는 주소’가 달라져 있는 걸 확인할 수 있어요. 계속해서 주소가 변경되나요? 주소 변경은 정상적인 증상입니다. 렛저 주소로 입금을 하고 나니 다른 주소가 나와 있어서 ‘헉! 해킹당한건가!’ 놀라실까봐 쓰는 포스팅이에요 🙂 해킹아니에요! 걱정말아요 >_< 처음 보는 그 주소는, 최근에 새로 생성된 나의 주소일겁니다. 더 자세히 알아볼게요!

최초 발급 주소와 현재 주소가 달라진 모습

비트코인 입금주소가 바뀌어있다.

처음 비트코인을 렛저 나노 S에 넣으려고 했을 때는 분명 주소가 3Q~~Xp였습니다만, 오늘 확인해보면 3H~~Xx입니다. 바뀌어있죠. 퀀텀 입금 주소도 볼까요? 주소가 변경되는걸 확인하기 위해서 일부러 1회 트랜잭션(해당 주소로 입금)을 발생시켜봤습니다.

퀀텀 입금주소가 변경된 모습

렛저 라이브(ledger live) 프로그램에서 퀀텀 주소가 변경되었음.

QX-GK였던 주소가, QU-Qk로 바뀌어있죠? 왜 이렇게 되는걸까요? 이렇게 바뀌는 주소들 관리는 어떻게 해야하는걸까요?

계층적 결정성 지갑(Hierarchical Deterministic Wallet)

지갑주소가 계속해서 변경되는 이유는 레저 나노 지갑이 계층적 결정성 지갑(Hierarchical Deterministic Wallet)을 지원하기 때문인데요. 이 계층적결정성지갑의 특징이 바로, 트랜잭션이 발생할 때마다 새로운 주소가 생성되는 것입니다.

비트코인 및 비트코인 일부 코드를 복사해 만들어진 몇몇 코인들은 모두 HD지갑으로써, 이렇게 지갑 하나당 여러 주소를 가지고 있을 거에요. 렛저 나노 월렛은 이 계층적 결정성 지갑의 특징을 그대로 지원하는거구요. 일렉트럼 지갑, 마이셀리움 지갑 등등 모두 HD를 지원합니다.

왜 이렇게 주소를 계속해서 생성할까요? 바로 개인정보 보호 목적입니다. 만약 지갑 당 주소 하나만 부여된다면 어떻게될까요? 특정 주소가 킵코잉닷컴 소유라는 걸 알고 있는 누군가가 주소를 조회하면 나의 모든 트랜잭션 및 잔액을 한 눈에 파악하고 거래 내역을 추적할 수 있겠죠. 받을 때마다 새로운 주소를 생성해서 알려줄 수 있다면 나의 개인 거래 내역을 보호할 수 있습니다.

주소 관리 방법 및 기존 주소로 입금했을 때는?

주소가 계속해서 생기는데, 이 주소들을 어떻게 관리해야할지 고민되실거에요.

  • 새로 생성된 주소 : 한 번만 사용해도, 여러번 사용해도 정상 입금처리됨.
  • 기존에 입금한 주소 : 기존 주소로 계속 입금해도 정상 입금처리됨. 

한 번 생성된 주소는 영원히 유효한 나의 주소입니다. 새로운 주소가 발급됐다고해서 과거의 주소가 사라지는건 아니거든요. 과거 주소로 입금해도 정상적으로 내 지갑에 입금 반영되니 걱정마세용. 주소 하나를 골라서 계속 그 주소를 사용해도 큰 문제는 없으나, 이렇게 주소를 새로이 생성해주는 이유는 개인정보보호에 더 좋기때문이니 각자의 판단에 따라 사용하시면 되겠습니다. 각 주소를 한 번만 사용하는 것이 ‘권장(recommend)되는 사항’이지만 보안적으로 치명적인 문제는 아니기 때문에 각자 판단에 따라 사용하면 되겠지용? 저의 경우, 최초의 주소를 즐겨찾기해두고 계속 그 주소로 입금처리를 하고 있습니다.

그리고 레저라이브에서 보이는 잔고(balance)는 내 지갑 속의 여러 주소들을 통합해서 잔고를 보여주는 거에요. 예를 들어 A주소에 1비트코인, B주소에 2비트코인, C주소에 3비트코인을 입금되어있다면, 레저라이브 포트폴리오에서 총 6비트코인(=1+2+3)이라고 잔고가 확인될거고요. 이 상태에서 5비트코인을 외부로 출금하려 한다면, A,B,C주소의 잔고들을 일부 통합해서 5비트코인을 출금 처리합니다. 우리가 따로 신경쓸 필요 없이 알아서 처리되는 거죠.

레저 라이브는 입출금 ‘간편화’되어있는 어플이라고 이해하면 돼요. 내 렛저에서 외부로 출금할 때마다 내 지갑은 잔돈주소(change address)라는 걸 계속해서 생성하고, 코인들이 여러군데로 쪼개지는 작업을 시작합니다. 내 지갑내에서 주소들끼리 코인수량을 쪼갰다가 합쳤다가 하는거에요. 이렇게 들었을 땐 복잡하죠? (복잡하면 스킵하셔도 됩니다. 이렇게 세부적으로 꼭 알지않아도 돼요. 입출금에 무리는 없어요. :)) 지갑 내부에선 주소끼리 서로 코인을 주고 받고, 잔돈주소(change address)가 생성되고 꽤 복잡하게 돌아가고 있지만 레저라이브에서 그걸 확인할 일은 없거든요. 그래서 간편화되어있는 코인 관리 프로그램이라고 표현한건데요. 주소들을 통합해서 총 보유량이 얼마나 되는지는 알 수 있어도, 내가 소유하고 있는 주소 리스트들과, 각각 주소마다 몇개의 코인이 들어있는지는 확인안되죠. 간편한 레저라이브에서는요.

그런데 레저라이브에서는 안되고, 외부 지갑을 연동하면 가능해요. 바로 일렉트럼 지갑(Electrum wallet)! 일렉트럼월렛을 사용하면 내 지갑주소 리스트들을 모두 확인할 수 있고, 잔고가 어떻게 나뉘어져있는지 알 수 있고, 트랜잭션마다 이리저리 쪼개지게 할지, 그대로 통합상태를 유지할지 선택할 수 있습니다.

일렉트럼지갑과 렛저 나노 지갑을 연동해서, ①지갑 속 주소 리스트들을 확인하고 ②트랜잭션 발생마다 코인이 쪼개지는 ‘잔돈 주소 생성’을 컨트롤 하는 방법을 다음 포스팅에서 다루겠습니다. 이 내용이 궁금하신 분들은 하단의 링크 타고 오셔서 계속 읽어주세요 🙂