최근 정부에서 해외 거래소 이용을 제한하는 움직임이 보이면서 그동안 미뤄두었던 비트코인 셀프 커스터디를 반강제적으로(?) 진행하게 되었습니다. 가상화폐 거래소에서만 코인을 모아두었던 저의 눈높이로 작성한 글이라 셀프커스터디를 처음 입문하시는 분들에게 적합한 글이 될 것으로 보입니다. 이 글의 내용들은 필레몬님의 비트코인 사용 가이드를 참고한 것이며, 이 글을 빌어 필레몬님께 감사의 말을 전합니다. 그럼 바로 시작하겠습니다.
준비물
시드사이너 하드월렛, 마이크로 SD 카드, 마이크로 SD 카드 리더기, 마이크로 5핀 충전 케이블 + 충전 어뎁터 or 보조 배터리
이미지 파일 설치 + 변조 여부 확인
시드사이너는 라즈베리 파이(Raspberry Pi)라는 초소형 컴퓨터를 사용하는데, 저렴한 가격과 모니터, 카메라, 버튼 등을 연결하기 쉬운 구조, 오픈 소스 사용, 인터넷에 연결되지 않는 상태 등에 최적화된 컴퓨터라고 볼 수 있습니다.
시드사이너 OS는 전원을 끄는 순간 개인 키를 포함한 모든 정보가 사라지도록 설계되어 있으므로, 시드사이너를 사용하기 위해서는 전원 공급과 함께 시드사이너 전용 이미지 파일이 설치된 부팅용 마이크로 SD카드가 삽입되어 있어야 합니다. 따라서 시드사이너의 부팅용 마이크로 SD카드를 설치할 이미지파일을 먼저 다운로드 해보도록 합니다.
먼저 아래의 깃허브 홈페이지에 접속하여, 라즈베리 파이 이미지 파일을 다운로드합니다.
깃허브 홈페이지를 캡처한 아래의 이미지를 보시면, 시드사이너 구매처에서는 상위 두 가지 파일 중 아무거나 다운로드해도 상관이 없다고 하지만, 제 개인적인 생각으로는 라즈베리 파이 제로 W는 무선 통신 모듈이 있는 보드이므로, 가장 위에 있는 파일을 다운로드 했습니다. (참고로 제가 구입한 시드사이너는 무선 통신 모듈이 없는 보드가 조립된 제품입니다.)

이미지 파일 이름 (Seedsigner_os.x.x.x.pi0.img) 중 x.x.x에 해당되는 숫자들은 버전에 해당되므로 다운로드 할 때 위의 이미지와는 다른 숫자가 있을 수 있으니 참고로 봐주시기 바랍니다.
이미지 파일 변조 여부 확인(Mac OS)
깃허브 홈페이지에 업로드된 이미지 파일이 변조된 파일인지를 먼저 확인하는 과정입니다. 비트코인은 본인이 직접 관리해야하는 자산인 만큼, 모든 과정을 스스로 검증하는 것이 중요함에 따라, 과정이 조금 복잡하더라도 천천히 따라해보시는 것을 추천드립니다. 저는 맥을 사용하고 있으므로, 맥을 기준으로 설명드림을 양해 부탁드립니다.
좀전에 접속한 깃허브에서 다운로드한 이미지 파일이 업로드된 링크에서 조금만 아래로 내려보면, 다음과 같은 파일 링크가 있는데, 두 가지 파일(해시값 텍스트 파일, 서명 파일) 모두 다운로드 합니다.

이미지 파일과 해시값 텍스트 파일, 서명 파일 모두 같은 폴더에 다운로드 해야함을 참고하시기 바랍니다. 편의상 기본 폴더인 다운로드(Downloads) 폴더에 세 가지 파일을 모두 다운로드 하도록 합니다.

서명 파일은 PGP(Pretty Good Privacy) 암호화 방식으로 서명된 것인데, 서명 검증은 GPG(GnuPG) 프로그램을 통해서 확인할 수 있습니다.
PGP는 두 개의 열쇠를 사용하는데, 누구나 볼 수 있는 공개키(Public Key)는 자물쇠를 잠그거나(암호화), 서명을 확인할 수 있는 용도로 사용되며, 개인키(Private Key)는 자물쇠를 열거나(복호화), 서명을 만드는 용도로 사용됩니다.
따라서 개인키(Private Key)는 오직 제작자 본인만 서명이 가능하고, 위변조가 불가능하며, 또한 본인 외 다른 사람들이 공개키(Public Key)를 통해 위변조 여부를 확인할 수 있게 됩니다. 비트코인과 상당히 비슷한 구조라고 볼 수 있겠습니다. 따라서 시드사이너에서 다운로드한 이미지 파일의 해시값이 시드사이너 개발자가 공개한 해시값과 일치하면, 문제가 없다고 볼 수 있겠습니다.
맥에서는 터미널을 통해 GPG를 설치하게 되는데, 이 과정을 설명해보도록 합니다.

맥에서 터미널에 들어갑니다. 보통 우리가 컴퓨터를 사용할 때에는 화면의 아이콘을 클릭하여 사용(GUI, 그래픽 사용자 인터페이스)하는데, 터미널(CLI, 명령줄 인터페이스)은 명령어를 입력함으로써 컴퓨터와 대화를 통해 사용하는 방식으로서, 일반적인 메뉴에는 없는 고급 보안 기능을 실행하기 위해 사용합니다.
터미널 실행 후 아래의 명령어를 입력합니다. Homebrew를 설치하는 명령어인데, Homebrew는 터미널 전용 앱스토어라고 보면 됩니다. 아이폰에서 앱스토어를 통해 앱을 다운로드 하듯이, 터미널에서는 Homebrew를 통해 명령어 하나로 필요한 프로그램을 설치할 수 있습니다.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
위 명령어를 입력하면 아래 이미지와 같이 암호를 입력하라고 뜨는데, 이 때 맥의 암호를 입력하면 됩니다.

암호를 입력하는 과정에서 커서가 움직이지 않지만, 정상적으로 입력이 되고 있으므로 그대로 입력하시고 엔터를 누르시면 됩니다.

암호를 입력하면, 위와 같은 화면이 출력되는데 한 번 더 엔터를 눌러 설치를 진행합니다. Downloading Command Line Tools for Xcode, Installing Command Line Tools for Xcode의 문구가 뜨면 비교적 오랫동안 기다려야 되므로, 인내심을 갖고 지켜보도록 합니다.

설치가 완료되면 위와 같은 화면이 나타나게 되는데, 여기서 빨간 박스 안의 명령어들을 그대로 복사해서, 다시 붙여넣고 엔터를 눌러줍니다. 가장 마지막의 “까지 모두 복사해서 붙여넣어야 함을 참고하시면 좋을 것 같습니다.
brew install gnupg
다음은 GPG(GnuPG)프로그램을 설치합니다. 위의 명령어를 입력하여, GPG 프로그램을 설치합니다. GPG 프로그램의 설치가 완료되면, 아래의 명령어를 입력하여, Keybase 웹사이트에 등록된 PGP 공개키를 가져올 것입니다.
gpg --fetch-keys https://keybase.io/seedsigner/pgp_keys.asc
위의 명령어가 정상적으로 입력되면, 아래와 같은 화면이 출력될 것입니다.

이제 터미널에서 아래 명령어를 입력하여, 좀전에 세 가지 파일(이미지 파일과 해시값 텍스트 파일, 서명 파일)을 다운로드 했었던 다운로드(Downloads) 폴더를 불러오겠습니다.
cd ~/Downloads
그리고 아래의 명령어를 입력합니다. 맥에 다운로드된 파일이 시드사이너 개발자가 만든 것이 맞는지 아닌지를 검증하는 명령어로서, 아래 명령어 중 숫자로 표기된 0.8.6.은 버전을 뜻하며, 버전이 업데이트되면 바뀔 수 있는 점을 참고하시면 좋을 것 같습니다.
gpg --verify seedsigner.0.8.6.sha256.txt.sig seedsigner.0.8.6.sha256.txt
명령어를 입력하면, 파일을 검증하기 위해 아래와 같은 메시지가 뜨는데 허용을 눌러줍니다.

아래의 Good signature from “seedsigner <btc.hardware.solutions@gmail.com>”이라고 출력되면 해당 파일은 정상적으로 다운로드된 것입니다. 혹여나 gpg: Bad Signautre from …이라고 출력될 경우에는 해당 파일이 정상적인 경로에서 다운로드된 파일인지 다시 확인해야 합니다.

그리고 공개키도 함께 출력이 되었는데, 해당 키가 시드사이너 개발자의 키가 맞는 것인지 확인해야합니다. 아래의 링크를 접속하여, 시드사이너 개발자의 키를 확인해 봅니다.
아래와 같이 화면이 출력되면, 열쇠 모양을 눌러서 코드 전체의 값이 맥에서 출력된 코드와 일치하는지 비교해 봅니다.

PGP 검증을 통해 맥에 다운로드된 서명 파일의 키가 시드사이너 개발자의 키와 일치하는 것을 확인했습니다. 마지막으로 최종 단계라고 볼 수 있는 이미지파일(.img)의 내용물에 오차가 없는지 점검하는 단계입니다. 이미지 파일을 해싱하여, 해시값을 비교해 보도록 합니다. 마찬가지로 버전을 뜻하는 0.8.6.은 향후 바뀔 수 있음을 참고하시면 좋을 것 같습니다.
shasum -a 256 seedsigner_os.0.8.6.pi0.img
이미지 파일의 해시값이 계산되어, 아래와 같이 출력될 것입니다. 해당 해시값을 다운로드된 해시값 텍스트 파일과 비교해 보도록 합니다.

아래 이미지처럼 다운로드한 세 가지 파일 중 확장자가 .txt로 끝나는 해시값 텍스트 파일을 열어줍니다.

텍스트 파일에서 출력된 해시값이 이미지 파일에서 계산된 해시값과 일치하는지 살펴봅니다. 해시값이 일치하면, 파일은 변조되지 않은 파일입니다. 아래 이미지와 같이 해시값 오른쪽에는 다운로드한 이미지 파일의 파일명도 확인이 됩니다.

깃허브에서 다운로드된 이미지 파일의 검증이 끝났으며, 글의 내용이 길어짐에 따라 글을 나누어서 작성하도록 하겠습니다. 다음 편에서는 검증이 완료된 이미지 파일을 사용하여, 시드사이너의 부팅 마이크로 SD카드를 제작하는 방법에 대해 살펴보도록 하겠습니다.