Hardware Wallet 사용하기 2

in #kr7 years ago (edited)

1.2 Keepkey의 구입

해외의 Web site에서 물품을 구입해 본 경험이 있는 사람은 쉽게 Keepkey를 구입 할 수 있다. 요즈음,가상화폐의 인기로,주문이 밀려서 Shipping 까지는 좀 시일이 걸릴 수 있다. 99USD 정도의 가격이다. 다음 링크를 열면, 윗쪽 우측에,
"Get Yours | $99 " 라고 쓴 Button이 있을 것이다. 그것을 클릭하면 즉시 주문을 할 수 있다. 회원가입은 없어도 되고, 신용카드,Paypal, Bitcoin등등의 지불방법이 다 가능하다.
Keepkey Site
Amazon에서도 구입 할 수 있으나, 위의 링크를 써서 제작처에서 직접 구입하는 것이 좋다.

물품이 한국에 도착하면,통관과 배달을 담당하는 업소의 직원이 전화를 통해서, 소위 "개인통관 고유부호"를 물어 올 수가 있다. 이에 대비해서 "개인통관 고유부호"를 미리 받아두는 것이 좋을 것이다. 인터넷에서 검색하면 절차를 알 수
있다. 해외직구의 경험이 없다면,이를 잘 아는 친구에게 부탁을 하는 것이 좋겠다.

물건이 배달되는 과정중에 Tampering(Hacker들이 Keepkey에 Spyware를 심는다든지 하는 변조 행위)되는 것을 방지하기 위해서,Keepkey사는 포장Box를 특수한 Seal로 봉해서 발송한다. 따라서,물품을 수령하면 혹시 이 Seal에 손덴 흔적이 없는지 Check하라. (제작처의 설명에 의하면, 혹시라도,정품이 아닌 Firmware가 설치되면,나중에 Keepkey를 작동할 때, "정품이 아니라는" 취지의 Warning이 나타날 것이라고 한다.)

1.3 Chrome Browser에서 Application을 설치

이 준비 작업은 Keepkey본체가 도착하기 전에라도 미리 수행해 둘 수 있다. Keepkey는 Chrome Web Browser의 Application의 도움을 받아 작동한다. 따라서,우선 Chrome Web Browser를 먼저 설치한다.
그 다음. Chrome Web Browser에, 소위 "확장Program" 2개를 설치해야 한다.
Chrome Web Browser에서 다음 주소로 간다.
https://chrome.google.com/webstore/category/extensions
또는 다음 링크를 클릭 해도 좋다.
Chrome 웹스토어

그 page의 좌상측의 검색난에 "keepkey"라고 입력하여 검색하면, Keepkey와 관련되는 Chrome Browser용의 확장프로그람 2종이 보일 것이다.
keepkey launcher와 Keepkey client가 바로 그것이다.
Keepkey launcher는 Keepkey wallet이라고도 불리우는데,대부분의 Wallet기능을 이 것이 담당한다.
전에, "1.1.1 가동하기"에서 본적이 있는, Browser 우상측의 동전4개를 쌓아놓은 모양의 icon이 바로 이 확장Program의 icon이다.

한편,Keepkey client는,USB port를 통한, Keepkey본체와 Keepkey launcher간의 상호 통신을 중계하는 기능을 하는 것으로 보여 진다. 이 두 확장Program을 설치한다. 어렵지 않을 것이다.

1.4 Keepkey의 initializing

Keepkey Box를 개봉하고, 동봉된 USB cable을 연결한 다음,이것을 PC의 USB port에 꼿는다.
이때 Keepkey본체에는 "Keepkey"라는 문자가 밝게 나타날 것이다.
그 다음. Chrome Web Browser의 우측 상단에 있는 "Keepkey launcher" icon (동전4개를 쌓은 모양의)을 클릭한다.
다음 같은 화면이 뜰 것이다.
initialize-and-recover.PNG
이때의 Keepkey는 Private key같은 정보가 생성되기 전의 백지 상태인 것이다.
initializing과정은, 향후 필요에 따라 Private key들을 생성하기 위한,뿌리 역할을 할, 소위 "Random seed"1개를 생성하는 과정이다. 이후 Keepkey에서 생성될 모든 가상화폐들의 모든 Private key들(및 Address)은 이 "Random Seed"로 부터,미리 정해진 수학적Rule에 따라 Deterministic하게 계산 되어 진다. 무슨 말인가 하면, 이 "Random seed"1개만 복원하면, 향후 그로부터 파생할 모든 가상화폐들의 모든 Private Key들을 모조리 복원할 수 있다. 고구마의 제일 굵은 뿌리 하나에 모든 자잘한 뿌리들이 연결되어 있는 것과 같다.

위 화면을 보면, 중간에 "initialize Keepkey"라는 Button이 있고,
한편,우측 아랫쪽을 보면 "Or Recover Keepkey"라고 쓴 작은 Button도 보일 것이다.
만약, 사용하던 Keepkey를 분실/도난/고장 등등의 이유로 복원을 하기 위해서 Keepkey를 구입을 한 경우라면, 이 "Or Recover Keepkey"를 클릭해서, Recovery의 절차로 들어가야 한다. 이 절차는 후술 하게 될 것이다.

제일 처음 Keepkey를 구입한 경우므로,중간에 있는 "initialize Keepkey"를 클릭한다.그러면, 다음 같은 화면이 뜨면서,
Set-Label.PNG
Label을 지정해 주기를 요구할 것이다. Label이란, 여러개의 Keepkey를 사용하는 경우,상호 구분을 위해서 Keepkey별로 이름을 달아 주기 위한 것이다.
Label을 입력하고 "Set Label"을 클릭하면, PIN code를 지정하기 위한 다음 같은 화면이 뜬다.
Choose-a-PIN.PNG
이 화면의, 3행3열의 숫자판(숫자는 안보이지만)은 전의 Post의 "1.1.1 가동하기"에서 본 적이 있던 그것이다.
그 때의 요령 대로, Mouse를 써서,입력하면 된다. 즉, Keepkey의 diaplay에 전시된 3행3열의 숫자를 보면서 Mouse로 해당 위치를 클릭하여 입력하는 것이다. PIN code는 4digt~6digit의 숫자이다. 필자는 6digit의 PIN code를 사용하지만, 4digit정도로 지정해도 되는 것으로 안다. 입력이 다 되었다는 표시로,아랫쪽의 "Choose PIN" Button을 클릭한다.
그러면,재확인을 위하여, 한번 더 PIN code를 입력하기를 요구 할 것이다.

이 PIN Code는 잘 기억해 두어야 한다. 어디 안전한 곳에 써두는 것이 좋을 것이다. 이것을 잊어 버리면 Keepkey에 접근할 수가 없다! 그런 경우,유일한 해결책은 후술할 Recovery Phrase를 이용한 복원 밖에는 없다.

이 PIN Code결정 과정을 마치면,
Keepkey는 그 때의 상황(시간?과 장소? PIN code?)과 기타 여러가지 우연적인 data등등을 이용하여,
"Random Seed"를 생성한다. 그리고,이 "Random Seed"가,앞서 설명한 것 처럼,향후 생성될 모든 Private Key들의 모태가 되는 것이다. 이 Seed를 암호화를 거쳐, 12개의 영어단어 형태로 만들어,Keepkey본체의 Display에 전시한다.

동시에,PC에는 다음 같은 안내 화면이 뜰 것이다.
Recovery-Phrase-guide.PNG
안내의 내용은,
"Keepkey본체의 Display에 전시된 12개의 영어단어를 Note에 실수없이 확실히 받아 적은후에, Keepkey의 우측에 있는 Push Button을 눌러 기록을 끝냈음을 알려 달라" 라는 뜻이다. Keepkey의 포장Box내에는 이 12단어들을 받아 적어두기 위한 Card가 하나 동봉되어 있다. Note에 직접 받아 쓰게 하는 것은 다 이유가 있다.
가령 Printer를 써서 Printing을 한다면, 1차적으로는 PC측에,다시 2차로는 PC를 경유해서 Printer로 정보가 넘어 가게 되는데,PC에는 Spyware들이 있을 수 있다. 한편, 요즈음의 Printer는 고급화 또는 지능화되어 있어서 Printer출력을 한 뒤에도 Spool같은 곳에 정보의 흔적이 남아 있을 가능성이 있다. Hacker들은 모든 빈틈을 노린다! Keepkey본체의 display에서 직접 받아 적는 것이 가장 안전한 것이다. 그리고, 이 12words를 받아 적을 수 있는 기회는 이 때 뿐이다.
설명을 구체적으로 하기 위하여,이렇게 처음으로 받아 적은 12words를 "Recovery Phrase 1" 이라고 부르기로 하자.

이 정보(12words)에 대한 보안은 대단히 중요하다. 이 정보가 타인에게 노출되면,그 사람은 Keepkey또는 같은 규격의 다른Hardware Wallet을 구매한 다음, 그 정보를 이용하여 Recovery과정을 밟아, 당신이 향후 생성하여 사용하게 될 모든 Private key들을 빤히 알게될 것이므로,쥐도 새도 모르게 자금이 조금씩 빠져 나간다거나,또는 하룻밤새에 모든 자금이 아주 엉뚱한 Address로 송금된 것을 발견하게 될지도 모른다! Blockchain은 Open Ledger이므로,Blockchain상에 그 엉뚱한 Address(Hacker의 Address)가 뻔히 들어 나겠지만, 그 Address가 누구의 것인지를 직접적으로 알 방법은 없다. 또, 가상화폐들은 Decentralized Network System에 기반하고 있으므로,어디 하소연할 데도 없다. (가상화폐의 세계에서는 모든게 오로지 자신의 책임이다!)

한 두가지 도움말:
이 12words를,여러가지 상황(자연재해,화재?)을 고려하여,여벌을 1개 더 만들어,또 다른 안전한 곳에 두는 것도 좋겠다.
또, 만일 자신에게 어떤 "불행한"일이 갑자기 벌어지는 경우,Keepkey와 관련된 일을 오직 본인만이 알고 있었다면,그곳의 가상화폐는,영영 찾을 길이 없이 사장되고 말 것이다. 그러므로,거금인 경우, 누군가 가장 가까운 이에게, 넌지시 그러한 사항을 귀뜸해두는 것이 현명한 대처일 것이다.

Keepkey의 Push Button을 눌러서 Confirm을 하면, 좀 있다가,
다음 같은 매우 단출한 "Account화면"이 뜰 것이다.
Account-1st-time.PNG
이제는 1.1에서 설명한 바에 따라,Keepkey를 사용하면 된다.

이상에서 설명한 모든 과정을 유튜브로 만들어 올린 사람이 있다. 영어로 되어 있는 것이 문제지만,시청각적으로 이 과정의 이모 저모를 미리 보거나 듣는 것도 좋을 것디다. 다음 링크를 클릭하면 볼 수 있다.
Set up과정-YouTube

다음 1.5절에서는, Keepkey를 Paper Wallet으로 사용하는 방법도 대단히 유용하므로, 그것의 설명을 겸해서, Recovery과정을 함께 설명하겠다.

1.5 Paper Wallet처럼 Keepkey를 사용하는 방법

위의 1.4의 과정을 끝냈으면, "1.1 사용법 맛보기" 에서 설명한 요령에 따라,
Bitcoin뿐만 아니라,다른 종류의 가상화폐,가령 Ethereum의 Account도 하나 만들어 본다.
그리고,이들 Bitcoin과 Ethereum의 Address로 소액의 자금을 실제로 보내 보라(자기가 거래하는 거래소로 부터 Send한다든지). Blockchain의 confirmation에 필요한 시간이 지나면,"Account화면"에서 Balance(잔고)로 잡혀지는 것을 확인 할 수 있을 것이다. 이들 Address들로 송금하는 것은 Keepkey와는 관계 없이,Address정보만 있으면 되는 것이므로, 자주 쓰는 Address들을 Text file에 따로 저장해 두면 여러모로 편리하다. (Address 는 그 보안에 크게 신경쓰지 않아도 좋다) 송금 과정도 경험해 보고, Account의 이름을 지정해 보는 등등, Keepkey의 사용법을 충분히 익히는 시간을 갖도록 한다.

그 다음. Keepkey의 사용법에 상당히 익숙해진 상태에서,
위의 1.4에서 받아 적었었던 "Recovery Phrase 1"에 의해서 Recovery가 제대로 작동하는지를 실제로 Test해 보자. 그러기 위해서는 일단 Keepkey를 공장초기화 상태로 되돌려야 한다.
"Account화면" 에서 좌상측의 "톱니바퀴" icon을 클릭하여, "Setting화면"으로 들어간 후, "Wipe Device"를 클릭한다.
정말 공장초기화를 원하는지 확인을 요구하는 화면이 나올 것이다.
Keepkey본체의 push button으로 confirm을 해주면, Keepkey가 공장초기화 진행 된다(수초 밖에 걸리지 않는다).
이제,"Random seed"와 Private key등등, 모든 data가 지워졌음을 의미한다.

그러고 나면, 앞서 "1.4 Keepkey의 initializing"에서 본 적이 있는 "initializing 안내화면"이 나올 것이다.
지금 우리는 Recovery과정을 Test하려고 하는 것이므로,이 화면 우측 아래의 "Or Recover Keepkey"를 클릭한다. 한편, 전에 받아 적어 두었던, "Recovery Phrase 1"을 손 가까운 곳에 준비해 둔다.

Label을 set하는 과정과,PIN Code를 Set하는 과정까지는 앞서 1.4에서 했던 것과 똑 같은 진행이다. 이 때,Label과 PIN Code는 전에 설정했던 것과는 관계 없이 임의로 새로운 값들로 설정해도 된다.
PIN Code 설정과정이 완료되고 나면,다음과 같은 화면이 나올 것이다.
Enteryour-Recovery.PNG

이때,Keepkey본체의 display를 보면,다음과 비슷한 상태일 것이다. 화면의 대부분을 "암호Key표"가 차지하고 있다.
Cipher-key.PNG
PC측의 Keepkey Wallet 조차 입력되는 단어들을 알 수 없도록, 오로지 Keepkey본체만이 입력된 단어를 인식할 수 있도록, 고안한 입력 방법인 것이다.
윗 그림을 예로들면, 가령 영문자 "a"를 입력하려면 Keyboard의 d를 치라는 것이다. 마찬가지로 "b"를 입력하려면 Keyboard의 r을 친다, 등등. 이 "암호Key표"는 문자 하나를 칠 때마다 완전히 달라진다. 이 Recovery Phrase가 PC측에 노출 되는 일이 결코 없도록 얼마나 신경을 썼는지 이해할 수 있을 것이다.
자기가 친 영문자는 Keepkey의 "암호key표" 좌측 아래쪽에 나타날 것이다.

그런데,영어 단어를 끝까지 칠 필요는 없다. 예를 들어 existence라는 단어를 입력한다면,처음의 4개문자 즉 exis까지만 제대로 처주면 이후의 Spelling은 Keepkey가 알아서 채워준다. (즉,word중 첫4자만이 의미가 있고,나머지는 그냥 군더더기라는 이야기다)
실수로 한 글자를 잘못 친 경우에는,Delete Key를 눌러서 그것을 취소할 수 있다. 한 단어의 입력이 끝나면,Space key를 처서 다음 단어 입력으로 가게 된다. 지금 몇번째 단어를 입력하는 상황인지는 PC측의 화면을 보면 된다.

이러한 요령으로, "Recovery Phrase 1"에 적힌 12개의 단어를 순서에 맞게 차례로
입력한다. 마지막 단어의 입력까지 끝내면, Enter key를 누르거나,혹은 PC측 화면의 "Done"이라쓴 Button을 마우스로 클릭하여, 작업이 끝났음을 알린다.

만약,단어 입력에 착오가 있었으면, Keepkey는 "뭔가 입력에 잘못이 있다"는 Message를 보여 줄 것이다. 이경우엔 첫 단어부터 다시 입력해야 한다. (즉, 이 12words에는,입력 오류를 Check할 수 있는 ,모종의 Checksum정보도 포함 되어 있는 것으로 보인다)

제대로의 입력이 이루어 졌다면, 잠시후에
PC측 화면에, "Loading accounts. . ."라는 화면이 잠시 뜬 후,
원래의 "Account화면"이 나타 날 것이다. 각 Account의 Balance(잔고)도 전과 동일하게 나타날 것이다.
다음 화면은, 필자가 Keepkey를 좀 사용하다가,Recovery Phrase에 이해서 복원에 성공한 직후에 나타난 Account화면 이다. 참조하기 바란다.
Accounts-01.PNG

이로써, "Recovery Phrase 1"에 의해서 Recovery(복원)가 제대로 이루어짐을 실제Test를 통해서 확인해 본 것이 된다.

여기서,사용자는 다음 2가지중 하나를 선택을 할 수 있다.

(1)이 상태에서 ,계속 사용한다. 즉, 수시로 출금을 할 수 있는 Hot Wallet으로 사용하는 것이다. 특히, Recovery과정도 실제로 확인했으므로,분실/고장/도난 등에 대해서 걱정할 필요없이, 100% 안전하게 사용할 수 있다. 사실,이것이 원래의 Hardware Wallet의 용도이다.

(2) 각 Account들의 Address만 알고 있으면,그리로 가상화폐를 송금하는 것은 Keepkey와는 관계없이 할 수 있으므로,이 Address들을 Text file같은 곳에 저정해 놓고,마치 "돼지 저금통"처럼, 저축만을 하는 용도로(Paper Wallet)사용할 수가 있다. 수년후,출금을 하고 싶을 때는,"Recovery Phrase 1"을 써서 Keepkey를 그 때의 상태로 복원하면 되는 것이다. 이 "돼지 저금통"의 Address들의 Balance(잔고)를 알고 싶으면,Blockchain.info같은 Web site에서 해당Address를 검색하면 된다. 이렇게 쓰고 싶다면, Keepkey는 또 한번의 공장초기화 및 initialize과정을 밟아, "Recovery Phrase 2"를 적어 둔후, 또 다른 상태의 Keepkey로써,수시 출금이 되는 Hot Wallet으로 활용하는 것이다.

1.6 가상화폐간의 변환 기능

예를 들어,Keepkey에서,Bitcoin, Ethereum , Litecoin 3종류의 가상화폐를 보유하고 있다고 하자. Bitcoin의 일부를 Ethereum으로 바꾸고 싶을 때가 있다.
통상적인 방법은, 자기가 거래하는 가상화폐 거래소의 자기 계정으로 Bitcoin을 보낸후, 거기서 그것을 매도하고 Etherum을 매입한 후, Keepkey의 Ethereum Address로 출금하는 방식으로 진행하였다.
그런데, Keepkey는 "Shapeshift"라는 회사와 특약을 맺어,Keepkey자체내에서 "shapeshift"와 연계하여,직접 변환이 가능하도록 하였다. 물론, 변환 당시의 시세를 기준으로 바꿔 주는 것이다.
"1.1.3거래화면"에서 "Send Bitcoin"을 클릭하면,
"Send bitcoin to: " 와 "Ammount: " 의 2개의 입력난이 있는 화면이 나타난다.
이 때,"Send bitcoin to:" 바로 아래의 입력난에 Mouse를 놓고 클릭하여, 커서(cusor)를 떨어 트리면, 다음 그림 같이
Drop Menu가 나타날 것이다.
Send-shapeshift.PNG
Drop Menu에 나타난 것들은 사용자가 Keepkey에 생성한 Account명들이다. Ethereum으로 변환코자 한다면,여기서 Ethereum용으로 자기가 생성했던 Account명을 선택한다.
그 다음. Ammount로써 Bitcoin금액을 입력한후, 맨 밑의 "Convert and send"를 클릭하면 된다. 그후 과정은 통상의 Send과정과 같다.
필자는 Keepkey자체에 이 변환 기능이 있다는 사실을 이 Post를 올리기 전까지는 몰랐었기 때문에,이 기능이 잘 작동하는지에 대해서는 아직 경험이 없다. 독자들이 직접 소액의 변환을 해 보면서 시험을 해 보기기를 바란다.

1.7 Changelly와 Shapeshift

Internet에는, 거래소를 거치지 않고,Address에서 Address로 직접 가상화폐간의 변환을 해주는 Site들이 있다. 다음 링크는 필자가 자주 애용하는 Changelly라는 Web site이다.
Changelly
Email주소만 있으면 아주 간단히 즉시 계정을 얻을 수 있다. 대부분의 경우(95%?),문제없이 변환이 된다. 가끔,delay가 있다든지 문제가 발생하는 것을 경험 한 적이 있다. 그런 때는 Support Center(고객지원)에 알리고 재촉을 해야 한다. 이런 Site를 이용할 때에는 Address들을 입력("copy"and "paste")할 때 실수가 없었는지 재삼 재사 확인과 확인을 거듭해야 한다. 자신이 없으면, 소액을 먼저 변환해 보고,자신이 생기면 점차 금액을 올리는 것이 좋다. 차츰 차츰 경험을 쌓아야 한다. 본인의 착오로 엉뚱한 Address로 송금되어도 하소연 할 곳이 없다. 오로지 본인 책임임을 명심하여라.

다음 링크는 Keepkey가 "특약"으로 활용하고 있는 Shapeshift라는 가상화폐 변환Site이다. 이 Site의 경우는,계정이 없이도 이용할 수 있는 것으로 알고 있다.
Shapeshift

한편, 가상화폐간의 변환과 관련하여,
현재의 가상화폐 시세를 알고자 한다면 다음 링크를 이용한다. 이 Site는 모든 가상화폐 투자자들이 매일 참조하는,아주 유명한 곳이다. 가상화폐에 대한 모든 갖가지 정보도 얻을 수 있는 대단히 유용한 Site이다.
coinmarketcap.com

Ethereum에 대한 주의
Keepkey에서 Ethereum Account를 사용할 때,주의 할 점이 있다.
Ether를 주고 받고 하는데만 이 Ethereum Address를 사용하라는 것이다. Ethereum Network를 기반으로 하여 발행되는 여러가지 Token들이 있다. 예를 들면, Golem,Auger,OmiseGo같은 것들이 그것인데,"ERC20규격에 기반한 Token"이라고들 말한다. 이들은 Ethereum Blockchain에 의존하여 발행되고 유통된다.
Keepkey는 ERC20 Token에 대한 것은 아직 고려 되어 있지 않다. 따라서,Keepkey의 Ethereum Address로 ERC20 Token을 보내도(보내는 것 자체는 가능하다),Keepkey wallet에는 전혀 나타나지 않는다. 뿐만아니라,이 Token들을 다른 Address로 Send할 방법이 현재로써는 준비되어 있지 않다. 그러니,Keepkey사의 Wallet Software가 더 upgrade되어 Token들을 포함하게 될 때 까지는,Keepkey의 Ethereum Address를 Token을 주고 받는데는 사용하지 말라!


다음 Post는 Ledger Nano S에 대해서 쓰게 될 것이다.

Sort:  

으...으음....렛져를 산지 얼마 안되었는데....이렇게 이쁘게 생긴아이가 나오면...ㅠ