내 풀노드가 좀비노드일까?
예전에 블로그에 올라왔던 질문의 답변을 옮겨왔습니다.
(질문)
어떤 분이 풀노드를 왜 돌려야 하는지 제대로 모르면서 돌리면 좀비노드가 된다고 이야기합니다. 그래서 노드를 어떻게 운영되는지 자세히 알아야 한다고 하면서요. 이 말에 동의하시나요?
원본 영상: 내 풀노드가 좀비노드일까?
(답변)
동의와 비동의 중 하나를 선택하라면 비동의입니다. 다만 저렇게 주장하는 데에도 의미가 있을 테니, 생각해 볼 만한 것들을 정리해 보겠습니다.
비트코인은 오픈 금융 네트워크
비트코인은 오픈 금융 네트워크입니다. 네트워크가 동작하기 위한 기본적인 약속, 즉 프로토콜을 지키면서 다양한 도구를 만들고 사용할 수 있습니다. 오디널스와 믹싱 같은 서비스도 그 위에서 나왔습니다. 탭루트 같은 규칙 변경에는 참여자들의 채택이 필요하고, 라이트닝 같은 결제 기술도 개발됩니다. 중앙 운영자 한 곳이 모든 사용 방식을 정하는 네트워크는 아닙니다.
어떤 풀노드 패키지를 사용하고 어떤 옵션을 설정할지는 운영자가 선택합니다. 풀노드를 돌릴지 말지도 마찬가지입니다. 네트워크에는 거래와 블록을 검증하는 참여자가 필요하지만, 모든 사용자가 풀노드를 운영해야 비트코인을 쓸 수 있는 것은 아닙니다. 내 목적과 여건에 맞게 시작하면 됩니다.
비트코인은 돈
저는 비트코인을 돈으로 봅니다. 공급 규칙이 정해져 있고, 그 규칙을 스스로 검증할 수 있으며, 중개자에게 키를 맡기지 않고 보유할 수 있다는 점에 의미를 둡니다. 법정화폐로만 저축하던 방식에서 벗어나 다른 선택을 해 보는 것이죠.
그 선택에서 보관 방식은 중요합니다. CeFi 같은 중앙화된 금융 서비스나 수탁형 거래소에 맡기면 사업자가 키를 관리합니다. ETF를 보유하는 것은 금융상품의 지분을 보유하는 것이며, 비트코인 키를 직접 관리하는 방식이 아닙니다. 셀프 커스터디, 즉 자가보관은 자신의 키를 직접 관리합니다. 콜드스토리지는 그 키를 오프라인에 두는 방식입니다.
저는 출금을 다른 사업자의 판단에 맡기지 않기 위해 자가보관을 선택합니다. 그만큼 키의 분실과 유출을 막고 백업을 관리하는 책임도 제 몫입니다. 콜드스토리지라는 이유만으로 모든 위험이 사라지는 것은 아닙니다. 어떤 통제권과 책임을 직접 맡을지 이해하고 선택해야 합니다.
비트코인은 돈일 뿐...
저는 비트코인이라는 오픈 네트워크와 돈을 이해하면서 자가보관에 관심이 갔습니다. 하지만 다른 사람도 반드시 저와 같은 순서로 이해하고 선택할 것이라고 생각하지는 않습니다. 거래소나 ETF를 선택하는 사람에게 차이를 설명할 수는 있어도, 그 판단을 대신할 수는 없습니다.
여기서 저는 적어도 '조롱'하고 싶지는 않습니다. 그 사람의 판단을 존중하고 싶습니다. 조롱은 기본적으로 내가 다른 사람보다 우월하다는 의식이 깔려 있습니다. 내가 비트코인을 이해했다고 해서 모르는 다른 사람보다 우위에 있다고 생각하지 않습니다. 내가 비트코인을 공부하고, 다양하게 경험했다고 해서 다른 사람보다 더 잘났다고 생각하지 않습니다. 그냥 먼저 이해한 것이고, 먼저 경험한 것뿐입니다. 그래서 전 '조롱'하고 싶지 않습니다. 그 사람만의 인생이 있는데 비트코인이 뭐라고 제가 남을 조롱하겠습니까.
자가보관의 의미를 더 전하고 싶은 마음은 있습니다. 하지만 비트코인을 이해하지 못했다거나 다른 선택을 했다는 이유로 조롱당하고 멸시받을 사람은 없습니다. 그 사람의 인생을 제가 책임질 것도 아니므로, 저는 제가 책임져야 하는 사람에게 더 집중합니다. 가족이죠.
오히려 이렇게 뻘글을 쓰면서 저의 생각과 관점을 정리하고, 이러한 글을 보면서 더 이해의 폭이 넓어지기를 기원할 뿐입니다. 가족 이외의 다른 사람에게는 슬쩍 알려주는 것이 전부이고, 적극적으로 권장하지 않습니다. 비트코인이 뭐라고 제 생각을 주입하겠습니까. 돈은 돈일 뿐, 돈 이상의 역할을 하면 안 되니까요.
풀노드와 비트코인
풀노드도 마찬가지입니다. 비트코인을 이해하고 자가보관을 결심하기까지도 쉽지 않았을 것입니다. 그러다 내 거래와 전체장부를 남의 서버에만 의존하지 않고 확인하고 싶어질 수 있죠. 풀노드는 블록과 거래를 직접 검증하는 도구입니다. 비트코인 개발자 가이드도 이 검증 기능을 설명합니다.
서명 장치는 개인키로 거래에 서명하는 도구입니다. 키는 서명 장치에서 관리하고, 비트코인의 거래 기록은 네트워크의 전체장부에 남습니다. 풀노드와 연동하는 앱을 이용하고, 에어갭 방식으로 오프라인에서 서명한 거래를 전달해 전파해 보는 것. 정말 짜릿한 순간들입니다.
저도 처음 풀노드 구축에 성공하고 동기화되는 모습을 보면서 '비트코인 네트워크의 일원'이 된 것처럼 매우 흥분했던 기억이 있습니다. 왠지 멋져 보였고, 스스로 대단해 보였습니다. 그렇게 풀노드 구축 패키지를 여럿 경험하면서 다른 분의 풀노드를 대신 구축해 드리는 일까지 하게 된 것이죠.
저는 그냥 풀노드를 돌려도 된다고 생각합니다. 어느 분이 이야기한 '좀비노드'가 되면 어떻습니까. 내가 비트코인을 이해했고, 풀노드에 관심이 생겨서 돌리고 싶다는데 그게 좀비노드가 되었든 안좀비노드가 되었든 무슨 상관일까요. 비트코인에 심취해 있는 사람들은 약간 강하게 이야기하는 경향이 있습니다. 저도 마찬가지이고요. 그래서 아마도 '좀비노드'라는 표현을 쓴 것 같습니다. 내가 내 돈 내고 운영하는 것이 좀비면 어떻습니까. 다 자기 좋자고 하는 것인데 남이 뭐라고 평가하는 것이 중요하지 않다 생각합니다.
그래서 잘 모르고 운영하면 좀비노드가 된다는 이야기에 동의하지 않는 것입니다.
비트코인의 모든 작동 원리를 이해해야 자가보관하고 풀노드를 돌릴 수 있다면, 세상에 몇 명이나 시작할 수 있겠습니까. 키 관리에 필요한 기본을 익히고 자가보관부터 시작해도 됩니다. 직접 키를 관리한다는 것만으로도 사업자의 출금 허가에 의존하던 방식에서 중요한 변화가 생깁니다.
하지만 저런 이야기를 한 분의 심정이 이해되지 않는 것은 아닙니다. 이왕 시작했으면 제대로 이해하면서 운영하라는 독려가 아닐까 싶습니다. 그렇더라도 내가 내 돈을 가지고 있겠다는데 모든 옵션을 먼저 알아야 한다고 전제를 붙이는 것은 이상하잖아요. 필요한 것부터 익히면서 사용하면 됩니다.
이미 풀노드를 구축했고 Pruned node(프룬 노드) 옵션도 알고 있는 사람이라면, 블록 데이터를 얼마나 보관할지도 스스로 선택하면 됩니다. 프룬 노드도 블록을 검증하는 풀노드이며, 검증을 마친 오래된 블록 데이터를 삭제해 저장 공간을 줄이는 방식입니다. 비트코인 코어 안내에서도 이 저장 공간 절약 방식을 설명합니다. 저는 이왕 할 것 돈 좀 더 써서 SSD 용량을 넉넉하게 마련할 수 있다면, 굳이 프룬 모드를 선택하기보다 전체 블록 데이터를 보관하고 싶습니다.
제가 Not your keys, not your bitcoin!을 강조하는 이유도 키를 직접 관리할 때의 통제권 때문입니다. 그 통제권을 갖기 위해 자가보관을 하는 것이죠.
여기서 한 걸음 더 나아가 직접 검증하려면, 서명 장치와 함께 쓰는 앱이 내 풀노드를 이용하도록 연결할 수 있습니다. 다른 서버가 알려 주는 거래 내역에 대한 의존을 줄이는 것입니다. 다만 풀노드가 거래를 검증하고 전파해도 채굴자의 블록 포함까지 강제하지는 못합니다. 자체 검증이 검열 저항에 기여하는 범위를 이렇게 이해하면 좋겠습니다.
inbound 옵션은 다른 노드가 내 노드로 연결해 오는 것을 허용할지에 관한 선택입니다. 외부 연결을 받지 않아도 내 노드가 다른 노드에 연결해 데이터를 받아 검증할 수 있습니다. 다른 참여자의 연결을 받아 주는 역할과 나를 위한 검증 기능을 알고 설정하면 됩니다.
풀노드를 안 돌린다고 내가 보유한 비트코인이 다른 비트코인이 되는 것도 아니고, 인바운드 허용 옵션을 안 켰다고 해서 어리석은 '좀비노드' 운영자가 되는 것도 아닙니다. 인바운드 연결이 왜 유용한지 설명하고 설정 방법을 안내하면 되지 않을까요?
엄브렐을 사용하더라도 실제 연결 방식과 설정을 확인해야 합니다. 토르의 onion 서비스로 인바운드 연결을 받도록 구성했다면, 일반 인터넷의 공개 포트를 열어 받는 방식과는 다릅니다. 비트코인 코어의 Tor 안내는 onion 서비스를 통한 수신 연결 설정을 설명합니다. 패키지 이름만으로 모든 연결이 토르를 쓰거나 클릭 한 번으로 설정이 끝난다고 단정할 수는 없습니다.
그래도 이왕이면...
물론 이왕이면 더 공부해서 비트코인 기술과 비트코인 풀노드의 옵션을 모두 알고 있으면 더 좋겠죠. 아마도 '좀비노드' 이야기한 분도 '맹신하지 말고 스스로 공부해서 제대로 풀노드를 돌려라'라는 이야기를 저렇게 하신 것 같습니다.
맞습니다. 제대로 파고들어 이해하는 것은 중요합니다. 법정화폐를 쓰면서도 돈이 어떻게 흘러가고 이자는 어떻게 생기는지 모른 채 살아왔던 제 시간을 돌아보면, 공부해야 비로소 보이는 것들이 있습니다.
비트코인도 다양한 도전에 직면해 있기 때문에 제대로 알고 스스로 판단할 수 있어야 한다는 의미에는 동의합니다. 하지만 그렇지 않다고 해서 누군가를 조롱하고, 편 가르고, 비난할 일은 아니라고 생각합니다.
비트코인 코어에서 어떤 규칙을 적용할지 선택하는 일이 중요해질 때도 있을 것입니다. UASF, 즉 사용자가 소프트포크 규칙을 시행하는 방식을 둘러싼 논의가 그런 예입니다. 그때는 저도 글을 쓰고, 다른 비트코인 유튜버들도 각자의 관점을 이야기하겠죠. 여러 설명의 근거를 확인하고 스스로 판단할 수 있을 정도로 관심을 이어가면 좋겠습니다.
저의 긴 뻘글도 반드시 베뤼파이하시기 바랍니다.


