새 비트코인 코어, 풀노드와 하드웨어 지갑 결합

등록 : 2019년 4월 15일 10:30 | 수정 : 2019년 4월 15일 01:55

Next Bitcoin Core Release to Finally Connect Hardware Wallets to Full Nodes

이미지=Shutterstock

비트코인 지지자들이 손꼽아 기다려온 비트코인 코어(Bitcoin Core)의 18번째 업그레이드가 다가오고 있다.

비트코인에서 가장 많이 쓰이는 클라이언트 소프트웨어인 비트코인 코어는 새로운 업그레이드를 통해 이용자들이 하드웨어 지갑에 비트코인 풀노드(full node)를 직접 연결할 수 있게 할 예정이다.

간단한 기술 업그레이드에 불과한 것처럼 보일지도 모른다. 하지만 사용자 보안 측면에서 보면 이번 업그레이드는 획기적인 도약이다. 비트코인 풀노드를 이용하면 거래가 실제로 이루어졌는지 사용자가 스스로 검증할 수 있게 된다. 또 하드웨어 지갑은 비트코인을 보관하는 가장 안전한 방법이다. 따라서 이 두 가지를 결합하여 이용할 수 있게 된다는 것은 사용자가 마침내 비트코인을 스스로 온전히 관리할 수 있게 된다는 뜻이다.

이번 업그레이드를 주관하고 있는 비트코인 코어의 선임 관리자 블라디미르 반더란은 오랫동안 염원해온 기능이 드디어 실현된다며 흥분을 감추지 못했다.

물론 이번 업그레이드는 기술 마니아가 아닌 일반인들도 비트코인 풀노드를 더 쉽게 이용할 수 있도록 개선하기 위한 다양한 노력 가운데 하나에 지나지 않는다. 예를 들어 비트코인 보안시스템 회사인 카사(Casa)는 설치 과정을 간소화한 노드를 선보였고, 비트코인 프로토콜 개발자들은 사용자가 설치, 저장해야 하는 데이터의 양을 줄이기 위해 많은 노력을 기울여 왔다.

비트코인 코어 개발자 앤드루 초우는 트위터에 이렇게 썼다.

“비트코인 코어 0.18 버전이 출시되면 하드웨어 지갑 인터페이스(Hardware Wallet Interface, HWI)를 이용해서 하드웨어 지갑을 사용할 수 있게 된다. 아직 개발하는 단계이고 완전히 자동화되기까지는 시간이 걸리겠지만, 다소 투박하더라도 기능이 구현되었다는 것만으로도 대단한 도약임에 틀림없다. 일반 사용자들이 편리하게 사용하는 그 날까지 개발자들은 노력을 멈추지 않을 것이다.”

 

두 마리 토끼를 잡다

먼저 비트코인 풀노드를 써야 할 이유는 무엇일까?

비트코인 네트워크에서 거래하려면 사용자는 우선 비트코인 노드에 연결해야 한다. 풀노드는 100GB를 훌쩍 넘는 분산원장 데이터가 다 들어있는 노드로, 메모리 크기가 작은 노트북의 하드웨어 용량에 맞먹는다.

용량은 크지만, 풀노드만 가진 장점도 있다. 정확한 금융 정보를 얻기 위해 다른 누군가에게 의존할 필요가 없다는 점이다.

비트코인의 가치는 신뢰가 필요없는 공유 원장이라는 데 있다. 그래서 원칙을 고수하는 일부 개발자들 가운데는 풀노드를 쓰지 않는 것은 비트코인의 기본 목적을 위배하는 것이라고 주장하는 사람도 있다.

예를 들어 비트코인 코어 개발자 쇼즈 브로부스트는 풀노드를 사용하면 “비트코인이 실재하는 블록체인이라는 사실을 인식하는 데 도움이 된다”며, 세그윗2x(Segwit2x)를 예로 들었다. 세그윗2x는 비트코인의 블록 크기를 두 배로 늘리는 하드포크로, 2017년 추진되었다가 커뮤니티의 반발로 무산된 바 있다.

당시 세그윗2x를 실제로 진행해 비트코인 블록체인이 둘로 분리되면 ‘간이 결제 확인(Simplified Payment Verification, SPV)’ 기술에 의존하는 모바일 지갑들은 안정성을 위협받을 수 있다는 우려가 제기됐다.

“이론적으로 서버에서 사용자의 잔액을 거짓으로 보여줄 수 있다. 세그윗2x가 실행되었다면 둘로 나뉜 비트코인 네트워크 가운데 어느 쪽 정보를 선택할 것인지 정해야 했을 것이다. 하지만 풀노드 사용자라면 그런 걱정을 할 필요가 없다.”

풀노드 사용은 개인정보 보호 문제와도 관련이 있다. 프로부스트의 설명은 빌리면 다음과 같다.

“일반적으로 하드웨어 지갑에 연동된 지갑 소프트웨어는 제3의 서버에 사용자의 계좌 정보를 제공한다. 그러나 풀노드는 이러한 지갑 소프트웨어를 대체할 수 있으며 사용자의 개인정보는 보호받게 된다.”

비트코인 코어의 지갑 관리 책임자인 새뮤얼 돕슨은 ‘최종적으로 편리함과 안전함 가운데 어느쪽을 선택할지의 문제가 될 것’ 이라고 주장한다.

이러한 보안 문제 때문에 아예 모두가 풀노드 소프트웨어를 사용해서 정확한 금융정보를 스스로 검증할 수 있어야 한다는 주장도 나온다.

BTC페이(BTCPay)의 창립자 니콜라스 도리에는 최근 이렇게 말했다.

“나는 언젠가는 모두가 풀노드를 사용하게 될 것이라고 확신한다. 미래에는 풀노드를 이용하지 않는 사람은 사용자 경험 측면이나 실행 측면에서 커다란 제약을 받게 될 것이다.”

 

안전한 오프라인 비트코인

비트코인 코어 0.18 버전의 두 번째 핵심은 하드웨어 지갑 사용이다. 하드웨어 지갑은 비트코인을 보관하는 가장 안전한 방법으로 알려져 있다. 인터넷에 연결된 컴퓨터에 지갑을 보관하면 해커의 공격에 노출되지만, 하드웨어 지갑은 그렇지 않다. 돕슨은 코인데스크 인터뷰에서 이렇게 말했다.

“PC는 개인키 보관에 특화된 작은 보안 장치에 비해 공격에 노출될 가능성이 훨씬 크다. 예기치 못한 고장이나 장애가 발생할 확률도 훨씬 크다.”

비트코인 코어 소프트웨어가 업그레이드 되면 사용자들은 오프라인 하드웨어 지갑에 비트코인을 보관할 수 있게 되고, 자신들의 풀노드를 사용해서 금융 정보를 직접 검증할 수 있게 된다.

이 기술이 개발되기까지는 오랜 시간이 걸렸다. 풀노드에 하드웨어 지갑을 연결하는 것은 크리스 벨처가 개발한 일렉트럼 퍼스널 서버(Electrum Personal Server)의 주요 목표 가운데 하나이기도 했다. 지난해 프로젝트 공개 당시 벨처는 “가능한한 많은 사람들이 풀노드를 사용하게 되는 데 일렉트럼이 일조할 수 있기를 바란다”고 말한 바 있다.

그러나 이들 프로젝트에도 장단점이 존재한다. 프로부스트의 말이다.

“하드웨어 지갑 인터페이스를 사용한다면 필요한 소프트웨어 컴포넌트의 수가 줄어든다. 하지만 현 단계에서는 일렉트럼 퍼스널 서버에 비해 사용자 친화적이지 못한 것이 단점이다.”

또한 그래픽 인터페이스의 동작 면에서도 아직 개선될 여지가 많다. 프로부스트는 이와 관련된 발표에서 “시연에서 보여드린 수준의 그래픽이 실현될 날이 언젠가 올 것”이라며, “그때쯤엔 유니콘도 만들 수 있을지 모르겠다”고 말했다.

 

그 밖의 기능들

비트코인 코어 0.18에는 획기적인 하드웨어 지갑 지원 기능 외에도 여러 가지 흥미로운 기능이 포함될 예정이다. 돕슨은 코인데스크 인터뷰에서 몇 가지 흥미로운 기능을 소개했는데, 그중 하나는 지난번 업그레이드 때 기초를 놓았던 새로운 ‘언어’의 개선이다. 이제 개발자들은 이 새로운 언어를 사용해서 정보를 추가할 수 있게 될 것이다.

“이제 코어에 추가 정보를 더할 수 있게 되고…, 추가 정보를 사용해서 코어를 분석하고 개인 키와 스크립트 등등을 지갑으로 불러올 수 있게 될 것이다. 이것이 지갑을 개선하고 추가 정보의 삽입을 지원하는 장기 프로젝트의 첫 단추다. 그 결과 비트코인 지갑 환경은 깔끔하게 정리될 것이고, (지금과 달리) 사용자의 기대에 부합하며 자연스럽게 작동할 것이다.”

그 밖에 돕슨이 언급한 기능으로 새로운 “다중 지갑” 관리 기능도 있다. 이 기능을 통해 사용자들은 비트코인 코어 풀노드에서 여러 개의 지갑을 관리할 수 있게 된다. 기존 코드에서도 여러 개의 지갑을 동시에 사용하는 것이 기술적으로는 가능했지만, 0.18 버전에서는 최초로 그래픽 사용자 인터페이스(GUI)가 제공된다. 이제 전문 개발자가 아니더라도 이 기능을 이용할 수 있게 된다.

“0.18 버전에서는 GUI 기능이 제공되는 동시에 작동법 또한 일부 개선되었다.”

현재 비트코인 코어 0.18 버전은 소프트웨어 개발 단계 가운데 “출시 대기” 상태에 있다. 즉, 열정 가득한 비트코인 개발자들과 업체들이 테스트와 점검을 계속하면서 대중 앞에 공개하기 위해 박차를 가하고 있는 것이다. 이제 얼마 남지 않았다. 몇 주만 더 기다리면 새로운 비트코인 코어를 만나볼 수 있을 것이다.

번역: 뉴스페퍼민트

각종 제보 및 보도자료는 contact@coindeskkorea.com 으로 보내주세요.