이번 글은 “NAS로 비트코인 풀노드 구축하기” 시리즈의 4편입니다.
앞선 글에서는 Synology NAS에서 Bitcoin Core와 Fulcrum을 운영하는 과정을 정리했습니다.
1편에서는 Bitcoin Core와 Fulcrum의 전체 구조를 살펴봤고, 2편에서는 Synology NAS에 Bitcoin Core를 설치하는 과정을 다뤘습니다. 3편에서는 Fulcrum을 설치하고 Bitcoin Core RPC와 연결하는 과정을 정리했습니다.
이번 4편에서는 실제 모바일 지갑 앱인 BlueWallet을 제가 운영 중인 Fulcrum 서버에 연결한 과정을 정리해보려고 합니다.
비트코인 풀노드를 직접 운영하는 이유 중 하나는 내 지갑이 외부 서버에만 의존하지 않고, 내가 직접 운영하는 노드의 데이터를 사용할 수 있다는 점입니다.
물론 지갑 앱을 기본 설정 그대로 사용해도 편리하게 사용할 수 있습니다. 하지만 Bitcoin Core와 Fulcrum까지 직접 구축했다면, 마지막에는 실제 지갑 앱이 내 서버를 통해 데이터를 조회하는지 확인해보는 과정이 필요하다고 느꼈습니다.
이번 글은 비트코인 이론을 깊게 설명하는 글이라기보다, NAS에서 운영 중인 Fulcrum 서버를 BlueWallet에 연결하고 실제로 정상 연결되는지 확인한 경험을 정리한 글입니다.
BlueWallet을 내 Fulcrum 서버에 연결한다는 의미
먼저 BlueWallet을 Fulcrum 서버에 연결한다는 말의 의미부터 정리해보겠습니다.
BlueWallet은 비트코인 네트워크에 직접 연결되어 모든 블록을 검증하는 풀노드 프로그램은 아닙니다. 모바일 지갑 앱은 보통 서버를 통해 주소, 잔액, 거래 내역 같은 정보를 조회합니다.
이때 사용할 수 있는 서버 중 하나가 Electrum 서버입니다.
Fulcrum은 Electrum 서버 역할을 하는 프로그램입니다. 지갑 앱이 필요한 주소 정보와 거래 내역을 빠르게 조회할 수 있도록 Bitcoin Core의 데이터를 인덱싱해서 제공합니다.
쉽게 정리하면 다음과 같습니다.
Bitcoin Core는 비트코인 블록체인을 직접 검증합니다.
Fulcrum은 Bitcoin Core의 데이터를 지갑 앱이 빠르게 조회할 수 있도록 준비합니다.
BlueWallet은 Fulcrum 서버를 통해 지갑 정보를 조회합니다.
따라서 BlueWallet을 내 Fulcrum 서버에 연결한다는 것은, 지갑 앱이 외부 기본 서버 대신 내가 운영하는 서버를 통해 데이터를 조회하도록 설정하는 것입니다.
여기서 중요한 점이 있습니다.
이 과정은 비트코인을 NAS로 옮기는 작업이 아닙니다.
또한 BlueWallet의 시드 문구, 개인키, 니모닉을 서버에 입력하는 작업도 아닙니다.
단지 BlueWallet이 사용할 Electrum 서버 주소를 내가 운영하는 Fulcrum 서버로 바꾸는 과정입니다.
전체 연결 구조 이해하기
이번 연결 구조를 단순하게 표현하면 다음과 같습니다.

이 구조에서 BlueWallet은 Bitcoin Core에 직접 연결되는 것이 아닙니다.
BlueWallet은 Electrum 프로토콜을 사용하는 Fulcrum 서버에 연결합니다. 그리고 Fulcrum은 Bitcoin Core의 데이터를 바탕으로 지갑이 필요한 정보를 응답합니다.
BlueWallet을 내 서버에 연결하는 이유
BlueWallet 같은 모바일 지갑은 기본적으로 외부 Electrum 서버를 통해 잔액과 거래 내역을 조회할 수 있습니다.
이 방식은 편리합니다. 앱을 설치하고 지갑을 만들면 복잡한 서버 설정 없이 바로 사용할 수 있기 때문입니다.
하지만 외부 서버를 사용할 경우, 내 지갑이 어떤 주소를 조회하는지 외부 서버에 전달될 수 있습니다. 이것이 곧바로 코인을 잃는다는 뜻은 아니지만, 프라이버시 측면에서는 아쉬운 부분이 있을 수 있습니다.
직접 운영하는 Fulcrum 서버에 BlueWallet을 연결하면 다음과 같은 의미가 있습니다.
외부 Electrum 서버에 대한 의존도를 줄일 수 있습니다.
내가 직접 운영하는 Bitcoin Core 데이터를 기반으로 지갑 정보를 조회할 수 있습니다.
NAS에서 운영하는 풀노드를 실제 지갑 사용과 연결할 수 있습니다.
Bitcoin Core, Fulcrum, 지갑 앱의 관계를 더 잘 이해할 수 있습니다.
저도 처음에는 Bitcoin Core와 Fulcrum을 설치하는 것만으로 풀노드 구성이 끝난 것처럼 느꼈습니다.
하지만 BlueWallet을 실제로 제 Fulcrum 서버에 연결해보니, 앞에서 구축한 서버가 지갑 앱과 어떻게 이어지는지 더 분명하게 이해할 수 있었습니다.
BlueWallet 연결용 도메인을 따로 만든 이유
이번 글에서는 BlueWallet을 제가 운영 중인 Fulcrum 서버에 연결하기 위해 전용 서브도메인을 사용했습니다.
제가 사용한 주소는 다음과 같습니다.
electrum.asanbase.com
메인 도메인인 asanbase.com은 WordPress 블로그용으로 사용하고 있습니다. 이 도메인은 Cloudflare 프록시를 통해 웹사이트 접속용으로 운영하고 있습니다.
반면 Fulcrum Electrum 서버는 일반 웹사이트가 아닙니다.
Fulcrum은 BlueWallet 같은 지갑 앱이 접속하는 Electrum 서버 역할을 하며, 별도의 TCP 포트를 사용하는 서비스입니다. 그래서 WordPress 블로그용 도메인과 같은 방식으로 처리하면 헷갈릴 수 있습니다.
저는 역할을 분리하기 위해 다음처럼 정리했습니다.
asanbase.com → WordPress 블로그용
electrum.asanbase.com → Fulcrum Electrum 서버용
이렇게 나누면 블로그 접속 주소와 지갑 서버 접속 주소를 구분해서 관리할 수 있습니다.
Cloudflare DNS에서 electrum 서브도메인 만들기
먼저 Cloudflare DNS에서 새 A 레코드를 추가했습니다.
설정 내용은 다음과 같습니다.

- Type: A
- Name: electrum
- IPv4 address: 현재 집 공인 IP
- Proxy status: DNS only
- TTL: Auto
여기서 가장 중요한 것은 Proxy status입니다.
asanbase.com처럼 WordPress 블로그용 도메인은 Cloudflare 프록시를 사용할 수 있습니다. 하지만 electrum.asanbase.com은 BlueWallet이 Fulcrum 서버에 직접 접속하기 위한 주소이므로 DNS only로 설정했습니다.
Cloudflare의 일반 프록시는 주로 HTTP/HTTPS 웹 트래픽을 처리하는 용도입니다. 반면 Fulcrum Electrum 서버는 51002 포트를 사용하는 TCP 기반 서비스입니다.
그래서 electrum.asanbase.com은 Cloudflare를 거쳐 웹페이지를 보여주는 주소가 아니라, BlueWallet이 NAS에서 운영 중인 Fulcrum 서버에 접속하기 위한 주소로 정리했습니다.
DNS 전파 확인하기
Cloudflare에 DNS 레코드를 추가한 뒤에는 DNS 조회 사이트를 이용해 설정이 정상적으로 반영되었는지 확인했습니다.
아이폰에서 DNS 조회 사이트를 열고 다음 값을 조회했습니다.
- 도메인: electrum.asanbase.com
- 레코드 타입: A
조회 결과 여러 지역에서 동일한 공인 IP가 표시되었고, 정상적으로 반영된 것을 확인할 수 있었습니다.
이 단계에서 확인하고 싶었던 것은 간단했습니다.
electrum.asanbase.com이라는 주소가 실제로 제 집 네트워크를 가리키고 있는지 확인하는 것이었습니다.
DSM에서 electrum.asanbase.com 인증서 발급하기
다음으로 Synology DSM에서 electrum.asanbase.com용 Let’s Encrypt 인증서를 발급했습니다.
경로는 다음과 같습니다.
DSM → 제어판 → 보안 → 인증서 → 추가
인증서 발급 시 입력한 값은 다음과 같습니다.
- 도메인 이름: electrum.asanbase.com
- 주체 대체 이름: 비워둠
이 인증서는 WordPress 블로그용 기본 인증서로 바꾸기 위한 것이 아니라, Electrum 서버용 도메인을 위해 따로 발급한 인증서입니다.

여기서 중요한 점이 하나 있었습니다.
DSM에서 인증서를 발급했다고 해서 Fulcrum 서버가 자동으로 그 인증서를 사용하는 것은 아닙니다.
Fulcrum은 DSM의 웹 서비스와 별도로 동작하는 서버입니다. 특히 Docker 컨테이너에서 동작하는 경우, Fulcrum이 실제로 어떤 인증서 파일을 사용하는지는 컨테이너 설정이나 환경변수에서 따로 확인해야 합니다.
처음에는 이 부분이 조금 헷갈릴 수 있습니다.
DSM에서 인증서를 만들었으니 NAS에서 운영하는 서비스들이 모두 그 인증서를 자동으로 쓸 것처럼 느껴질 수 있습니다. 하지만 Docker 컨테이너나 별도 서버 프로그램은 각자 지정된 인증서 파일을 사용할 수 있습니다.
Fulcrum이 사용하는 인증서 설정 확인하기
Fulcrum 설정을 확인해보니, SSL 인증서 경로는 fulcrum.conf 파일 안에 직접 적혀 있는 것이 아니라 컨테이너 설정의 환경변수에 지정되어 있었습니다.

- SSL_CERTFILE = /data/fulcrum.crt
- SSL_KEYFILE = /data/fulcrum.key
즉, Fulcrum은 DSM 인증서를 자동으로 가져다 쓰는 것이 아니라, 컨테이너 내부에서 지정된 인증서 파일과 개인키 파일을 사용하고 있었습니다.
이론적으로는 DSM에서 발급한 electrum.asanbase.com 인증서를 내보낸 뒤, Fulcrum이 사용하는 인증서 파일로 교체할 수 있습니다.
하지만 인증서 파일 교체는 서버 운영에 영향을 줄 수 있습니다.
잘못 교체하면 SSL 연결이 깨질 수 있고, Fulcrum 컨테이너 재시작 후 BlueWallet에서 연결이 되지 않을 수도 있습니다.
그래서 저는 바로 인증서 파일을 교체하지 않고, 먼저 BlueWallet에서 electrum.asanbase.com 주소로 연결이 되는지 테스트해보기로 했습니다.
서버 파일을 건드리기 전에 BlueWallet에서 먼저 테스트했다
이번 과정에서 제가 가장 조심했던 부분은 인증서 파일을 바로 교체하지 않은 것입니다.
서버 설정 파일이나 인증서 파일을 바꾸는 작업은 작은 수정처럼 보여도 실제 서비스에는 영향을 줄 수 있습니다.
그래서 먼저 BlueWallet에서 electrum.asanbase.com 주소를 입력해 연결이 되는지 확인했습니다.
BlueWallet의 Electrum Server 설정 화면에서 다음과 같이 입력했습니다.
- Server: electrum.asanbase.com
- Port: 51002
- Use SSL: ON
처음에는 인증서 이름 문제로 연결이 안 될 수도 있다고 생각했습니다.
DSM에서 electrum.asanbase.com 인증서를 발급했지만, Fulcrum이 실제로 그 인증서를 쓰는 상태인지 확실하지 않았기 때문입니다.
하지만 실제로 저장해보니 BlueWallet에서 정상적으로 연결되었습니다.

이 결과를 통해 다음을 확인할 수 있었습니다.
- electrum.asanbase.com DNS 설정 정상
- 51002 포트 연결 정상
- Fulcrum 서버 응답 정상
- BlueWallet에서는 SSL ON 상태로 연결 정상
즉, BlueWallet에서는 electrum.asanbase.com 주소와 51002 포트로 Fulcrum 서버에 정상 연결되었습니다.
BlueWallet에 입력한 최종 설정값
이번 작업 후 BlueWallet에서 사용한 최종 설정값은 다음과 같습니다.
- Server: electrum.asanbase.com
- Port: 51002
- Use SSL: ON
설정을 저장한 뒤 Connected 상태가 표시되면 정상적으로 연결된 것입니다.
이 주소는 NAS에서 운영 중인 Fulcrum 서버를 가리킵니다. 그리고 Fulcrum은 다시 Bitcoin Core와 연결되어 지갑 앱에 필요한 데이터를 전달합니다.
여기서 다시 한 번 주의해야 할 점이 있습니다.
BlueWallet의 Electrum Server 설정에 입력하는 것은 서버 주소입니다.
시드 문구, 개인키, 니모닉을 입력하는 과정이 아닙니다. 지갑 복구 문구는 어떤 서버 설정 화면에도 입력하면 안 됩니다.
인증서 파일은 바로 교체하지 않았다
BlueWallet에서 electrum.asanbase.com 연결이 정상적으로 성공했기 때문에, 이번 단계에서는 Fulcrum 인증서 파일을 바로 교체하지 않았습니다.
인증서 파일을 교체하려면 대략 다음 과정이 필요합니다.
DSM 인증서 내보내기
→ 인증서 파일 준비
→ 개인키 파일 준비
→ Fulcrum이 사용하는 인증서 파일로 교체
→ Fulcrum 컨테이너 재시작
→ SSL 연결 테스트
이 과정은 가능하지만, 현재 정상 연결 중인 Fulcrum 서버를 굳이 바로 건드릴 필요는 없다고 판단했습니다.
서버 운영에서는 “잘 되는 상태를 불필요하게 건드리지 않는 것”도 중요하다고 생각합니다.
다만 실제로 Fulcrum이 어떤 인증서를 내보내고 있는지는 따로 확인해볼 필요가 있었습니다.
그래서 Mac 터미널에서 openssl 명령을 사용해 Fulcrum 서버의 SSL 인증서 정보를 확인했습니다.
실행한 명령은 다음과 같습니다.
echo | openssl s_client -connect electrum.asanbase.com:51002 -servername electrum.asanbase.com 2>/dev/null | openssl x509 -noout -subject -issuer -dates
확인 결과는 다음과 같았습니다.
- subject= /O=Fulcrum
- issuer= /O=Fulcrum
- notBefore=Jan 1 14:07:22 2026 GMT
- notAfter=Jan 1 14:07:22 2027 GMT
이 결과를 보고 한 가지를 분명히 확인할 수 있었습니다.
현재 Fulcrum 서버가 내보내는 인증서는 electrum.asanbase.com용 Let’s Encrypt 인증서가 아니라 Fulcrum 자체 인증서였습니다.
subject와 issuer가 모두 Fulcrum으로 표시되었기 때문에, DSM에서 electrum.asanbase.com용 인증서를 발급했더라도 Fulcrum에 자동으로 적용된 상태는 아니었습니다.
처음에는 DSM에서 인증서를 발급하면 NAS에서 운영하는 서비스가 자동으로 그 인증서를 사용할 것처럼 생각할 수 있습니다.
하지만 Fulcrum은 DSM의 웹 서비스와 별도로 동작하는 서버입니다. 특히 Docker 컨테이너에서 운영하는 경우에는 Fulcrum이 컨테이너 설정에 지정된 인증서 파일을 따로 사용할 수 있습니다.
이번 확인을 통해 “DSM 인증서 발급”과 “Fulcrum SSL 인증서 적용”은 별개의 작업이라는 점을 다시 확인할 수 있었습니다.
다만 BlueWallet에서는 SSL ON 상태로 정상 연결되었습니다.
따라서 이번 단계에서는 Fulcrum 인증서 파일을 바로 교체하지 않고, 현재 상태를 유지하기로 했습니다.
나중에 필요하다면 DSM에서 발급한 electrum.asanbase.com 인증서를 내보낸 뒤, Fulcrum이 사용하는 인증서 파일로 교체하고 다시 테스트해볼 수 있습니다.
다만 그 작업은 Fulcrum 연결에 직접 영향을 줄 수 있기 때문에, 별도의 작업으로 분리해서 진행하는 것이 좋다고 생각합니다.
연결이 안 될 때 확인할 것
BlueWallet에서 Fulcrum 서버 연결이 되지 않는다면 무작정 앱 설정만 바꾸기보다 아래 항목을 차례대로 확인하는 것이 좋습니다.
Fulcrum 서비스 실행 상태
먼저 Fulcrum 서버가 실행 중인지 확인해야 합니다.
서비스가 중지되어 있거나 오류 상태라면 BlueWallet에서는 연결할 수 없습니다.
Docker로 운영 중이라면 컨테이너가 정상 실행 중인지, 로그에 반복 오류가 없는지 확인하는 것이 좋습니다.
Bitcoin Core와 Fulcrum 연결 상태
Fulcrum은 Bitcoin Core의 데이터를 기반으로 동작합니다.
Bitcoin Core RPC 연결이 끊겨 있거나, Bitcoin Core가 아직 준비되지 않은 상태라면 Fulcrum도 정상적으로 응답하기 어렵습니다.
이 부분은 3편에서 다룬 Fulcrum과 Bitcoin Core RPC 연결 과정과 이어지는 내용입니다.
DNS 설정 상태
electrum.asanbase.com이 실제 공인 IP를 제대로 가리키는지 확인해야 합니다.
DNS 조회 사이트나 터미널 명령을 이용해 A 레코드가 정상적으로 반영되었는지 확인할 수 있습니다.
Cloudflare Proxy status
electrum.asanbase.com은 Cloudflare에서 DNS only로 두었습니다.
블로그용 도메인처럼 Proxied 상태로 두면, 일반적인 Electrum 서버 접속 구조와 맞지 않을 수 있습니다.
이 부분은 이번 설정에서 가장 중요하게 확인한 항목 중 하나였습니다.
포트와 SSL 설정
BlueWallet에서 서버 주소를 입력할 때 포트와 SSL 설정이 맞아야 합니다.
도메인은 맞는데 포트를 빠뜨렸거나, SSL 설정이 서버와 맞지 않으면 연결이 되지 않을 수 있습니다.
이번 설정에서는 다음 값을 사용했습니다.
Server: electrum.asanbase.com
Port: 51002
Use SSL: ON
이번 과정에서 알게 된 점
이번 설정을 진행하면서 몇 가지를 다시 확인할 수 있었습니다.
첫째, Electrum 서버는 WordPress 블로그와 다른 방식으로 접근해야 합니다.
블로그는 Cloudflare 프록시를 사용할 수 있지만, Fulcrum Electrum 서버는 51002 TCP 포트를 사용하는 서비스입니다. 그래서 electrum.asanbase.com은 DNS only로 설정했습니다.
둘째, 서브도메인을 분리하면 역할이 명확해집니다.
asanbase.com은 블로그용으로 두고, electrum.asanbase.com은 Fulcrum 서버용으로 분리하면 각각의 역할을 구분하기 쉽습니다.
셋째, DSM 인증서와 Fulcrum 인증서는 별개로 봐야 합니다.
DSM에서 인증서를 발급했다고 해서 Fulcrum이 자동으로 그 인증서를 사용하는 것은 아닐 수 있습니다. Fulcrum이 실제로 어떤 인증서 파일을 사용하는지는 따로 확인해야 합니다.
넷째, 서버 파일을 수정하기 전에 클라이언트에서 먼저 테스트하는 것이 안전합니다.
이번에는 인증서 파일을 먼저 교체하지 않고, BlueWallet에서 electrum.asanbase.com으로 먼저 연결 테스트를 했습니다. 정상 연결이 확인되었기 때문에 불필요한 인증서 파일 교체는 하지 않았습니다.
1~4편을 마무리하며
이번 글에서는 BlueWallet을 제가 직접 운영하는 Fulcrum Electrum 서버에 연결한 과정을 정리했습니다.
BlueWallet에는 다음 값으로 설정했습니다.
Server: electrum.asanbase.com
Port: 51002
Use SSL: ON
설정 후 BlueWallet에서 Fulcrum 2.1.0 서버에 정상 연결되는 것을 확인했습니다.
이제 NAS에서 운영하는 Bitcoin Core와 Fulcrum이 실제 모바일 지갑 앱과 연결되었습니다. 단순히 풀노드를 설치한 단계에서 한 걸음 더 나아가, 실제 지갑이 내 서버를 통해 데이터를 조회하는 구조가 된 것입니다.
이번 과정을 통해 Bitcoin Core, Fulcrum, BlueWallet의 관계가 더 분명해졌습니다.
Bitcoin Core는 블록체인을 검증하고, Fulcrum은 지갑 앱이 빠르게 조회할 수 있도록 데이터를 준비합니다. BlueWallet은 그 Fulcrum 서버를 통해 지갑 정보를 확인합니다.
앞으로는 Fulcrum 상태, 인증서 갱신, 도메인 연결 상태를 주기적으로 확인하면서 안정적으로 운영해볼 생각입니다.
이 글은 개인적인 NAS 운영 경험과 비트코인 풀노드 학습 과정을 바탕으로 정리한 참고용 글입니다.
비트코인 투자 조언이나 특정 지갑 앱 사용 권유가 아니며, 서버 보안과 지갑 정보 관리는 각자의 환경에 맞게 신중하게 확인하시기 바랍니다