데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      블록체인 지갑 firmware 검증하기

      Prelude 24.03.21
      640 6 0
      DEVOTEE 요약
      블로그 첫 글에서는 비트코인에 대해 다루며 그 중에서도 비트코인 지갑에 대한 firmware를 검증하는 방법을 소개한다. 기술적인 관점에서 비트코인에 대해 조금 더 깊게 이해하고자 하는 독자들에게 잘 설명되어 있는 이 포스트는 오픈소스 기반의 하드웨어 지갑 중 비트박스02를 기반으로 하여, 자신의 로컬에서 firmware 소스를 빌드하고 개발 회사와 동일한 바이너리 결과를 확인하는 방법을 상세하게 알려준다. 이를 통해 독자는 본인이 가진 지갑을 본인이 직접 검증할 수 있다.

      들어가며

      처음으로 작성하는 블로그라서 설레기도 하면서도 낯설기도 합니다.


      아무래도 첫 번째 블로그임을 고려하여 가능한 좀 더 많은 분들이 공통적으로 관심이 있으실 만한,

      나아가 이 글을 꼭지로 하여 다음 이야기도 손쉽게 풀어나가며 전개할 수 있을 만한 주제로 꼽았는데요, 쓰려고 보니 막상 마음처럼 쉽지는 않네요.


      '블록체인'이라고 제목을 달았지만, 실상 '비트코인'에 대한 이야기입니다.

      비트코인을 제외하고 블록체인을 이야기하기 어렵기 때문이고, 이야기를 간단하게 풀어나가려면 비트코인에 한정하는 것이 좋겠다는 판단에서입니다.

      저의 경우 아무래도 기술쟁이이다보니 기술적인 부분에 있어서 일반인보다는 관심이 많을 수 밖에 없는데,

      인터넷이나 유튜브에는 아무래도 투자 관점에서의 비트코인에 대한 정보들이 압도적으로 많다 보니, 비트코인의 근간이 되는 기술적인 부분에 대해 파고 들기가 쉽지가 않더군요.

      결국 양질의 과정들을 제공할 만한 곳에서 in-depth 전문 과정들을 섭렵하게 된 계기가 되었죠.

      '여행을 다녀오면 결국 남는건 사진'이라는 말이 있는데, 이렇게 여러 교육 과정들을 마치고 나니 결국 남는 건 자격증, 수료증이네요.

      어쩌면 이 블로그 글도 새롭게 남는 일일 것 같구요!


      하여간 비트코인을 보유하기 시작하면, 개인에 따라 차이는 있겠지만 어느 시점에는 결국 하드웨어 지갑을 갖추고 셀프 커스티디를 고려하게 되는데요,

      이 무렵 자신의 소중한 재산을 보관하는 하드웨어 지갑을 막무가내로 믿을 수는 없다는 걱정이 들게 되죠.

      이 걱정에 불을 붙이듯 마침 작년 초에는 나노렛저의 마케팅 담당자가 "누구나 지갑 회사를 어느 정도는 신뢰하기 때문에 해당 지갑을 사용하는 것 아니냐"라는

      알쏭달쏭하고도 미스테리한 멘트를 남겨 좀 더 많은 사람들이 본인이 가진 지갑에 대한 본격적인 걱정을 하게 만들기도 하였습니다.

      아무튼 본인의 지갑을 본인이 직접 검증하는 것은 이러한 걱정을 조금이나마 덜 수 있는 방법 중 하나가 될 것 같네요.


      오늘 블로그 글은 시중에서 구할 수 있는 여러 비트코인 지갑 중,

      본인이 직접 firmware source code를 검증 할 수 있는 오픈소스 기반의 하드웨어 지갑 중 비트박스02 라는 하드웨어 지갑을 기반으로 하도록 할게요.


      지갑 검증하기

      하필이면 왜 비트박스02냐 라고 한다면, 뭐 당연히 필자의 취향입니다.


      물론 시중에는 여러 좋은 지갑들이 많지만, 저의 경우 크게 오픈소스 여부, secure element chip 지원 여부, Bitcoin-Only 지원 여부, 제3자 검증 기관에 의한 검증 여부,

      passphrase 지원 여부, RBF 지원 여부, miniscript 지원 여부 및 제조국의 금융 컴플라이언스 수준을 주되게 고려하는데요,

      비트박스02는 해당 조건들을 부합하는 몇 안되는 지갑 중 하나인 셈이죠. 참고로 여기 사이트를 보시면 주요 지갑들의 특성들을 일목 요연하게 비교할 수 있습니다.


      비트박스02 지갑의 Firmware 소스코드는 여기에서 확인할 수 있는데요. 이번 글에서는 가장 간단한

      - 즉, firmware 소스를 자신의 로컬에서 빌드를 하고 개발 회사와 동일한 바이너리 결과가 나오는지를 검증하는 방법에 대해 기재하도록 할게요.

      물론 자세한 방법은 여기에 잘 설명이 되어 있지만, 저는 이를 좀 더 간단하게 한국어로 요약했다라고 보시면 됩니다. ^^


      우선 bitbox02-firmware 를 자신의 Github로 fork 한 후, 적당한 이름으로 firmware 검증을 할 본인의 branch를 하나 땁니다.

      해당 branch 에서 releases 디렉토리로 들어가면 버전 별 firmware 소스코드를 볼 수 있는데요,

      bitcoin 전용의 가장 최신 firmware 는 firmware-btc-v9.17.0 임을 확인할 수 있네요.

      일단 releases 디렉토리에서 아래 명령을 수행합니다.

      # ./build.sh firmware-btc-only/v9.17.0 "make firmware-btc"

      물론 이 명령이 수행되기 위해서는 docker 등과 같은 패키지들이 설치되어 있어야 하는데요,

      빌드 진행 중에 때에 따라 필요한 패키지들을 설치하라고 나오니 그때그때 설치를 해 주면 됩니다.

      이 명령이 완료되기 위해서는 상당한 시간이 흘러야 합니다. 제 로컬에서는 한 30분 걸리는 것 같네요.


      성공적으로 빌드가 완료되면 temp/build/bin 디렉토리에 해당 firmware의 bin 파일이 생성되는데요,

      이를 releases/firmware-btc-v9.17.0/assertion.txt 파일 안에 기재된 해시값과,

      이 최종 결과 바이너리 파일의 hash 값을 아래 명령어로 수행해 본 결과와 비교해서 동일하면 검증이 완료된 겁니다.

      # sha256sum temp/build/bin/firmware-btc.bin 

      검증이 너무 간단히 완료되었나요?

      허무함을 조금 덜기 위해서라도, 자, 이렇게 검증했으면 아래와 같이 본인의 GPG 서명 인증해서 main branch로 PR 을 등록하자구요.

      # cd firmware-btc-only/v9.17.0
      # gpg -o assertion-본인이름.sig --detach-sign assertion.txt
      # gpg --export --armor YOUR_PGP_KEY_ID > ./pubkeys/본인이름.asc

      오늘은 간단하게 비트코인 지갑에 대해 firmware 검증하는 방법을 소개하였습니다.

      데브오션 분들의 수준에 비해 너무 간단한 내용을 기재한 것이 아닌가 싶기도 하지만, 일단 첫 번째 글이라고 양해해 주시고,

      다음에는 비트코인 테스트넷에서 Miniscript 와 Rust 언어로 비트코인 smart contract 을 구현하는 주제를 단계 별로 다루어볼까 합니다.

      물론 지금 생각은 이렇다는 것이고, 바뀔 수도 있어요 ^^

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      Prelude 님의 최신 블로그

      더보기
      동영상 기고하기