이번에 디센트를 구입하면서 상호호환성 테스트를 해봤는데 참고하시라고 올려봅니다.
3월28일 업데이트 - 나노와 디센트 100% 호환 안됨
렛저 나노S 와 디센트 지갑의 니모닉 공유를 통한 지갑 호환성은 100%가 아닙니다.
이더와 비트코인 레거시 지갑은 동일하게 복구가 되었으나 비트코인 네이티브 세그윗 주소 계정은 복구가 안되길래
디센트에 문의했는데 사용 주소 경로가 동일하지 않아 복구가 안된다고 답변이 왔습니다.
상호 운영에 참고하세요.
각자의 하드웨어 월렛이 사용하는 앱을 믿지 못해서 니모닉을 입력해야하는 상호 호환 테스트를 시도도 안 해봤었는데.
이번에 지갑 초기화 할 일이 있어 한번 해봤습니다. 해당 테스트는 같은 암호키 표준을 사용하는 경우 다른 지갑으로도 복구가 되는걸 단순히 확인하는 데 있습니다. 특수상황이 아니면 본인의 복구 단어를 아무 지갑에나 입력하지 마세요~
가지고 있는 하드웨어 월렛은 총 4가지 입니다. ( 삼성 블록체인 월렛도 하드웨어 월렛에 포함시켜도 되겠죠? ^^; )
1. 키페어사의 키월렛 터치
2. 렛저사의 나노 S
3. 아이오트러스트의 디센트 지문인증형 하드웰렛
4. 삼성의 S21 블록체인 웰렛
입니다.
각각 특징을 보면
1. 키페어사의 키월렛 터치는
- NFC를 이용하는 카드형 지갑이고
- BIP39를 지원하고
- 아이폰과 안드로이드 폰을 지원합니다.
- FIDO U2F를 지원합니다.
- 비트코인 지원주소 : 레거시 주소 지원
제가 처음 사용했던 시점인 18년에는 사용자가 사용하던 지갑을 초기화 하고 새로 지갑을 생성하는 기능이 없어서 ( 초기화 하려면 본사를 방문해야 했습니다. ) 니모닉코드를 분실하고 초기화 할수가 없어 사용을 중지했었습니다.
이후 구글 로그인 인증에 사용되는 FIDO U2F키로 활용했습니다.
2. 렛저사의 나노 S
- USB로 연결해서 사용.
- BIP39/44 지원 + 25번째 passphares 추가 가능
- PC와 안드로이드(OTG) 사용가능 , 메타마스크 연동가능, 삼성 블럭체인 웰렛 연동가능
- ST31H320 보안칩 채용 ( 물리적 메모리 320Kbyte - 실사용 메모리 138 kByte) - 3개정도의 서로 다른 코인 설치가능
- FIDO U2F를 지원합니다. ( 지갑내부에 해당 앱 설치 )
- 비트코인 지원 주소 : 레거시, 세그윗, 네이티브세그윗, 탭루트 4가지 지원
3. 디센트 지문인증 하드웰렛
- 충전방식, 블루투스 연결, PC연결시 USB 사용
- BIP39/44 지원 + 25번째 passphares 추가 가능
- 아이폰, 안드로이드 지원 , PC 사용은 제한적 (메타마스크 미지원 )
- 메모리 용량은 1메가 추정
- 지문인증 방식 ( 지문 2개 입력가능 )
- 비트코인 지원 주소 : 레거시, 네이티브세그윗 두가지 지원
4. 삼성의 S21 블록체인 웰렛
- 삼성의 S10 이후 스마트폰에 탑재
- BIP39/44 지원
- 삼성 안드로이드 스마트폰에서 구동
- 녹스의 보안영역을 사용한다고 하는데 SDK를 보면 ARM에서 제공하는 칩 내부의 TrustZone( TEE )을 이용한다고 합니다.
- 비트코인 지원주소 : 세그윗 주소 지원
가지고 있는 웰렛의 키 관리 표준을 보면 전부 BIP39/44를 사용하고 있어 서로 호환이 될것 같아 테스트를 해봤습니다.
0. 12/24자리 니모닉코드로 전부 복원 후 지갑 상호 인식에 성공했습니다.
그러나 비트코인 주소지원 여부에 따라 비트코인은 접근이 불가능한 경우가 생기더군요.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
참고로 비트코인에서 사용하고 있는 주소체계를 잠시 살펴보면 아래와 같습니다.
1. 레거시 : 지갑주소가 1로 시작되는 주소로 처음 만들어질 때부터 사용.
2. 세그윗 : 지갑주소가 3으로 시작되는 주소로 서명데이터를 따로 분리하여 저장하는 방식으로 전송 데이터 감소.(레거시 대비 26% 절약)
3. 네이티브 세그윗 : bc1q로 시작되는 주소로 세그윗을 지원하며 2번 세그윗주소 대비 추가로 16% 전송데이터 감소 효과, 지원안하는 거래소 있음.
4. 탭루트 : bc1p로 시작되는 주소로 최근 탭루트 업데이트로 추가, 다중서명 지원, 아직 사용비중 낮음, 지원 안하는 거래소 있음.
17년쯤만 해도 거래소들이 레거시 주소만 사용했고. 업비트는 3으로 시작하는 세그윗 주소를 사용했습니다.
그때만 해도 네이티브세그윗 주소는 지원을 안하는 거래소들이 있어서 세그윗 주소를 메인으로 사용했었는데.
이제는 네이티브 세그윗을 메인으로 사용해도 될것 같습니다. 세그윗 대비 추가 16% 전송데이터 감소 효과가 있네요.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
결국 문제는 비트코인 지갑 지원여부가 달라서 일어나는데. ( 이더는 잘 복원됩니다. )
레거시 지갑과 세그윗 지갑 두개를 사용하는 나노 s를 다른 지갑에 복원해 봤는데
디센트는 레거시와 네이티브 세그윗만 지원하는데 레거시지갑은 접근이 되나. 세그윗 주소는 지원을 안해서 접근이 불가능합니다.
삼성 블럭체인 웰렛에 렛저 나노S를 복원하니 세그윗 지원되어 지갑이 보이나 또 레거시 지갑은 지원을 안하니 안보입니다.
키월렛터치에 복원을 해보니 레거시 지갑만 지원하니 또 당연히 세그윗 지갑은 안보이네요. ㅎㅎ
이런 저런 제한 없이 사용하려면 렛저 나노 X가 딱 제격인거 같은데 나노S가 있으니 구입은 또 망설여집니다. ㅎㅎ
일단 지갑 상호 호환성 관련하여 결론을 내보면
1. BIP39/44 지갑들은 니모닉 문구로 서로 복구가 가능하다.
2. 렛저를 기반으로 다른 지갑을 비상용 백업으로 쓸때 ( 비트코인 주소 호환여부와 관련하여 )
- 디센트를 백업으로 쓰려면 비트코인 주소는 네이티브 세그윗 주소( bc1q로 시작)를 사용해야 한다.
- 삼성 블록체인 웰렛을 백업으로 쓰려면 비트코인 주소는 세그윗 주소 ( 3으로 시작)를 사용해야 한다.
정도 되겠습니다.
마지막으로 지갑의 보안을 향상시키는 법에 대해 이야기 해봅니다.
지갑복원을 위한 24개 니모닉 이외에 추가암호 지정해서 보안성을 높이는 방법에 대해 잠시 소개합니다.
아시다시피 지갑복구를 위한 24개의 단어키가 유출되면 타인이 지갑을 완전히 복구해서 자산을 탈취당할수 있죠.
사실 BIP39에서 사용하는 복구단어는 이미 정해진 단어리스트 입니다. 총 2048개의 단어 리스트인데.
https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt
단어의 순서도 중요하기에 이 정도면 충분한 보안을 제공한다고 하나. 충분하지 않다고 생각하시는분들은 자신만의 단어를 추가해서 보안성을 높일수 있습니다.
전 이번에 5 dollar wrench attack 이라는 문구를 처음 보았는데 내용은 이렇습니다.

노트북에 백만달러의 자산이 숨겨져 있어 크랙을 시도하는데
암호학을 전공한 너드들은 노트북이 4096비트 RSA로 암호화 되어 있음을 알고 지레 포기하지만.
실제현실은 5달러짜리 렌치로 패스워드를 말할때 까지 팬다는 이야기죠. ㅎㅎ
그래서 인지 렛저 나노는 25번째 암호를 적용하는 방식을 재미있게 구현했더군요.
(디센트는 기본설정 후에 설정메뉴에 가면 25번째 암호 추가를 할수 있는데 지갑을 새로 생성합니다. )
렛저 나노는 일단 원래대로 최대 8자리 숫자를 지정하고 ( 나노를 켤때 물어보는 숫자로된 비번입니다. 3회 틀리면 초기화 됩니다.)
지갑을 생성하면 24단어 리스트가 나옵니다. ( 반드시 백업 )
이렇게 지갑을 생성후 설정의 시큐리티에 들어가 25번째 단어를 추가하는데. 재미 있는건 지갑이 초기화되어 새로 만들어지는게 아니라
25번째 단어리스트를 가진 지갑을 추가로 생성합니다. ( 진입 숫자 비번을 다르게 설정합니다. )
즉 24단어로 된 지갑이 있고 여기에 추가로 24+1로 된 지갑이 추가 됩니다. 두지갑은 동시에 존재하면 서로다른 초기진입 숫자 패스워드로 선택합니다.
이게 저 5달러 렌치 공격과 연관되는 이유는
24단어 지갑에 페이크자산을 넣어두고 ( 빈 지갑이 아닌 아주 소량의 자산 ) 실제 자산은 25번째 단어로 보안이 된 지갑에 넣어두는거죠. 누군가 물리적인 공격으로 지갑을 탈취하거나 암호키를 훔쳐갔을때 기본지갑의 페이크 자산을 보고 실망하고 포기하는 상황을 연출하는거죠.
그럼 즐거운 크립토 생활 되세요~
참 FIDO U2F에 대해 빼먹어서 추가합니다.
U2F는 Universal 2nd Factor이 약어인데 2차인증을 제공하기 위한 기술인데 USB보안키 가 대표적입니다.
구글 지메일의 경우 신규 로그인시 보안성을 높이기 위해 2차인증을 도입하면서 FIDO U2F를 적용할수 있게 했는데
이를 활성화 하기 위해선 2개의 USB 보안키가 필요하고 신규 로그인시 해당 보안키를 꼽아 인증해야만 신규로그인이 가능합니다.
해당 보안기능을 이용하려면 이와 같은 USB 같은 별도의 FIDO 보안키를 구입해야 하지만
https://www.amazon.com/gp/product/B09HJBL6F3/?th=1amazon
렛저나노가 있으면 해당기능을 하는 키로 활용 가능합니다.
-------------------------------------------------------------------------------------------------------------------------------------
시드키 공유 추가 테스트 결과를 하나더 알려드려요.
같은 시드키로 렛저 나노 S와 디센트를 설정후
1. 비트코인 레거시 주소 어카운트는 같은 주소가 확인되면서 같은 어카운트가 등록되는데
2. 비트코인 네이티브 세그윗 주소로 어카운트를 만들면 서로 다른 어카운트가 등록되며 주소 공유가 안되네요. 음...
사용자가 특별히 임의의 문자열을 입력하면, 그 문자열을 추가하고요.
2048^24 의 확률은 사실 양자컴퓨터가 예고없이 갑자기 세상에 짠~ 등장하면 뚫릴 수도 있기에 여기에 임의의 문자열을 추가하여 아예 확률을 무한대로 확장시켜버리는 방법이죠.
(사실 양자컴퓨터가 나오면 핵전쟁을 걱정해야지 암호화폐 걱정할건 아니긴 하지만요.)
근데 전 갑자기 양자컴퓨터 보다도 니모닉의 물리적인 탈취가 더 걱정이 되더라구요.
화재가 걱정되어 내열금고에 니모닉을 넣어두긴 했는데. ㅎ 화재소실보다 누가 훔쳐가면 끝이겠구나 싶어더라구요.
이번에 한 지갑별 호환 테스트도 실은 암호문구를 입력해야 하는 지갑들이 사용하는 전용 앱들을 100% 믿을수가 없어서 시도도 안했었는데. 지갑 전부 초기화 할 예정이라 한번 테스트 해봤습니다.
유용한 정보 감사드립니다
제가 임의의 문자로 passphrase 설정해서 쓰고있는데,
테스트로 복구를 시도해보니까 24자리 니모닉 넣으라그래서 니모닉만 넣었는데 못찾더라구요..ㅠ
먼저 24단어로 렛저 복구 한다음 설정에서 패스워드 추가 하시면 됩니다.