저자: NWC Docs
"Nostr Wallet Connect(NWC)" 프로토콜은 클라이언트 앱이 표준화된 프로토콜을 통해 비트코인 라이트닝 지갑 소프트웨어에 원격으로 접속할 수 있는 방법을 제공합니다. 지갑 소프트웨어와 앱은 사용자가 앱에서 간편 결제를 위해 지갑 계정에 원활하게 접속할 수 있도록 지원합니다.
NWC: 자유롭고 개방적인 프로토콜
NWC는 자유롭고 개방적인 프로토콜입니다. 이는 여러 가지 이점을 제공하기 때문에 매우 중요합니다.
- 누구나 NWC를 사용할 수 있습니다.
- NWC 기반 결제를 구현해도 공급업체에 종속되지 않습니다.
- NWC는 더욱 유연하며 기존 앱과 새 앱에 더 많은 통합 옵션을 제공합니다.
NWC를 채택한 앱은 사용 편의성과 창의성을 향상시킬 수 있습니다. 무엇보다도, 이를 통해 앱이 전체 생태계와 상호 운용될 수 있으므로 향상된 네트워크 효과를 누릴 수 있습니다.
NWC는 비트코인의 라이트닝 네트워크를 기반으로 구축되었습니다.
비트코인은 은행이나 중개업체에 의존하지 않고 P2P(개인 간) 결제를 지원하는 탈중앙화 전자 화폐입니다. 라이트닝 네트워크는 비트코인 위에 구축된 2계층 프로토콜로, 즉각적이고 저렴한 결제를 지원하며, 비트코인 네트워크에서 확인되는 대신 2차 네트워크에서 거래를 전달하면서도 비트코인의 보안을 그대로 유지합니다. 이 둘은 함께 글로벌 개방형 금융 시스템의 탄탄한 기반을 제공합니다. 라이트닝 네트워크와 라이트닝 네트워크는 완벽한 조화를 이루며, NWC가 선호하는 결제 프로토콜입니다.
NWC는 앱과 지갑 소프트웨어 간에 결제 콘텐츠가 전달되는 방식만 결정합니다. NWC는 모든 결제 네트워크를 지원할 수 있습니다. 실제로 비트코인의 온체인 거래 및 여러 통화로 이루어진 결제도 지원할 수 있습니다.
왜 "Nostr Wallet Connect"라고 부르나요?
이 글의 서두에서 언급했듯이, NWC는 앱이 지갑 소프트웨어에 연결할 수 있는 방법을 제공하는데, 이것이 바로 NWC의 이름에서 유래했습니다. "Nostr"은 NWC의 지원 기술 중 하나입니다. Nostr 자체는 검열 방지 및 분산화된 메시지 흐름을 공개 키 암호화 및 메시지 전달 서버를 기반으로 구축할 수 있도록 하는 간단하고 개방적인 프로토콜입니다. 중앙 집중식 서버나 게이트웨이에 의존하지 않습니다. NWC는 Nostr 프로토콜의 전달 기술과 공개 키 암호화를 사용하여 앱과 지갑 소프트웨어 간의 연결을 보호합니다.
NWC가 활성화된 지갑 소프트웨어의 최종 사용자는 기본 전달 기술에 대해 전혀 알 필요가 없으며, Nostr 키를 직접 보유할 필요도 없습니다. 이메일 제공업체가 사용자 인터페이스에 SMTP 프로토콜을 표시하지 않는 것처럼, 지갑 소프트웨어와 이에 연결된 앱이 정보 교환을 처리합니다.
워크플로(개요)
Nostr 메시지 릴레이 서버를 브리지로 사용하여 세션을 설정한 후, 앱과 지갑 소프트웨어가 상호 작용할 수 있습니다. Relay는 Onion 네트워크를 사용하거나 노드를 공개 네트워크(클리어넷)에 노출하지 않고도 라이트닝 노드에 안정적이고 효율적으로 연결할 수 있는 방법을 제공합니다.
사용자가 특정 작업(예: 라이트닝 송장 pay_invoce 결제)을 수행하려는 경우, 앱 프런트엔드에서 트랜잭션을 준비하고 직렬화하고 암호화한 후 릴레이로 전송합니다. 릴레이는 이를 지갑 애플리케이션으로 전달합니다. 지갑 애플리케이션은 릴레이에서 메시지를 읽은 후 트랜잭션을 복호화하여 지갑 사용자에게 표시하거나 자동으로 해당 작업을 수행합니다. 이 과정에서 릴레이는 통신만 지원하며, 모든 요청은 암호화되어 릴레이에서 읽을 수 없습니다.
워크플로(단계별)

- 사용자는 자신의 클라이언트 애플리케이션을 사용하여 지갑 서버 에서 생성된 QR 코드를 스캔하고,
nostr+walletconncet:딥링크를 입력하거나 연결 정보를 수동으로 설정합니다. 이 연결 설정 단계는 한 번만 수행됩니다. - 이 클라이언트 애플리케이션은 다양한 소스(예: NWC 자체 또는 LNURL)에서 송장을 수신합니다.
- 클라이언트 애플리케이션은 릴레이를 통해 지갑 서버 로 이벤트를 전송합니다. 이벤트 내용은
pay_invoice요청입니다. 사용되는 개인 키는 위에서 언급한 연결 문자열에서 가져옵니다. - Relay는
pay_invoice요청을 지갑 서버 로 전달합니다. - 지갑 서버는 이벤트 작성자의 공개 키를 확인한 다음, 메시지를 복호화하고 지불을 보냅니다.
- 지갑 서버는 특정 이벤트로 클라이언트 애플리케이션에 응답하는데, 이는 오류 메시지나 지불된 송장의 원본 이미지일 수 있습니다.
애플리케이션 개발자를 위한 이점
쉽고 빠른 구현
명확하고 잘 문서화된 API를 사용하여 몇 분 안에 NWC를 통합하면 인프라가 아닌 기능 개발에 집중할 수 있습니다.
자유롭고 개방적이다
NWC는 오픈 소스로 무료로 사용할 수 있습니다. 라이선스 비용, 공급업체 종속성, 숨은 비용이 없습니다.
호스팅 없음
사용자 자금을 보관할 필요성을 없애세요. 지갑 소프트웨어가 자금을 처리하고, 앱은 보안 운영만 조정하면 됩니다.
유연한
NWC를 사용하면 지갑 기능을 모두 사용하거나 일부 기능(예: 송금 및 수금)만 사용할 수 있습니다. NWC는 모듈 설계되었습니다.
상호 운용성
NWC를 지원하는 모든 비트코인 지갑 소프트웨어에 연결할 수 있습니다. 하나의 프로토콜, 여러 지갑 소프트웨어 - 별도의 통합이 필요하지 않습니다.
플랫폼 독립성
다양한 환경에서 작업 가능: 모바일 앱, 웹 백엔드, 명령줄 도구, 데스크톱 애플리케이션 - NWC는 까다롭지 않습니다.
지속적인 연결
연결이 설정되면 사용자의 지갑 소프트웨어가 온라인 상태인 한 사용자가 추가로 구성하지 않고도 애플리케이션이 해당 소프트웨어에 연결할 수 있습니다.
사용자에게 제공되는 혜택
편리한 앱 내 결제
한 번에 결제를 완료하세요. QR 코드를 스캔하거나, 앱을 전환하거나, 직접 확인할 필요가 없습니다.
더 빨리 시작하세요
지갑 소프트웨어가 NWC를 지원하는 한, 사용자는 로그인, KYC, 온보딩 단계 없이 즉시 연결할 수 있습니다. 지갑에 돈이 있는 한 바로 결제할 수 있습니다.
간편한 관리를 위한 단일 지갑
사용자는 여러 앱에서 동일한 지갑을 사용할 수 있으므로 각 앱에 대해 별도로 "충전"할 필요가 없습니다.
NWC 특징
결제 보내기
단일 결제, 일괄 거래 또는 심지어 반복 결제를 자동화하세요.
결제를 받다
결제 요청 및 수금 요청을 실시간으로 표시합니다. 팁, 앱 내 결제, 기부에 적합합니다.
지갑 잔액
앱 내에서 연결된 지갑의 실시간 잔액 확인하고 표시합니다.
결제 내역
입금 및 출금 내역을 나열합니다.
결제 확인
결제 상태를 자동으로 확인합니다(보류, 완료, 실패).

