보안
보안과 비수탁 모델
이 페이지는 NextCryptoPay가 돈에 대해 무엇을 할 수 있고 무엇을 할 수 없는지, 그것이 글로 하는 약속이 아니라 코드로 어떻게 강제되는지, 그리고 최악의 경우 무엇을 잃게 되는지를 설명합니다. 믿게 하려는 글이 아니라 확인하게 하려는 글입니다.
플랫폼이 기술적으로 할 수 있는 일
- 당신이 제공한 공개키에서 수신 주소를 파생해 결제 페이지에 표시할 수 있습니다.
- 공개 블록체인 데이터를 읽어 인보이스가 결제되었는지 판단할 수 있습니다.
- 서명된 웹훅으로 당신의 서버에 알리고, 주문 상태를 자체 데이터베이스에 기록할 수 있습니다.
- 결제를 옮기거나 동결하거나 취소하거나 환불할 수 없습니다. 블록체인 트랜잭션에 서명할 수 있는 키를 하나도 갖고 있지 않기 때문입니다. 이는 지키겠다고 약속한 정책이 아니라 구조 자체의 성질입니다.
우리가 당신의 돈을 가져갈 수 없는 이유 — 작동 원리
결제 처리자는 트랜잭션에 서명할 수 있는 키를 가진 경우에만 자금을 움직일 수 있습니다. 우리는 그런 키를 하나도 갖고 있지 않습니다. 지갑을 설정할 때 당신이 주는 것은 수신 주소이거나 확장 공개키(xpub)입니다. 둘 다 공개 데이터입니다. xpub은 수신 주소를 파생할 수 있지만, 그 주소에서 지출하는 데 필요한 개인키를 수학적으로 만들어낼 수 없습니다. 우리 워커는 읽기 전용 블록체인 엔드포인트(Tronscan, BscScan, mempool.space 뒤에 있는 바로 그 공개 데이터)만 호출하며, 판매자 자금을 지출하는 트랜잭션을 구성·서명·브로드캐스트하는 코드 경로는 플랫폼 어디에도 없습니다.
여기 적어두기만 한 게 아니라 코드로 강제합니다
- 지갑 설정 엔드포인트는 개인키 정보를 포함한 확장키를 모두 거부합니다. xprv를 붙여넣어도 저장되지 않고 거부됩니다.
- 플랫폼 자체 수수료 지갑에도 모든 환경에서 같은 규칙이 적용됩니다. 조회 전용 공개키가 아니라 개인키로 설정되어 있으면 서비스가 기동을 거부합니다.
- 운영 환경에서는 기동 검증이 추가로, 개인키·니모닉·시드 문구를 담은 환경변수가 있으면 프로세스를 중단시킵니다.
- 온체인 워커는 읽기 전용 데이터 어댑터만 사용합니다. 플랫폼에는 트랜잭션 서명 코드도, 브로드캐스트 코드도 없습니다.
- 자동화 테스트가 두 키 입력 지점 모두 개인키를 거부함을 검증하므로, 이 불변식을 이후 릴리스에서 조용히 없앨 수 없습니다. 또한 대시보드에서 주문을 환불 처리로 표시하는 것은 데이터베이스 레코드를 바꾸는 일일 뿐, 코인을 움직이지 않으며 움직일 수도 없습니다.
단 하나의 예외, 솔직하게
NextCryptoPay가 USDT를 받는 곳은 정확히 한 군데뿐이며, 그것은 고객의 돈이 아닙니다. 플랫폼 수수료를 내기 위해 당신이 충전하는 선불 잔액입니다. 이는 당신이 선지급한 우리의 매출이며, 당신과 고객 사이의 결제 흐름과 완전히 분리되어 있습니다. 수수료 수취 지갑 역시 우리 인프라에서 조회 전용으로 설정되어 있고, 바로 그 때문에 이 지갑에 개인키를 넣으면 서비스가 기동을 거부합니다. 나중에 발견하고 '또 무엇을 숨겼나' 생각하시게 하느니, 이 예외를 우리가 먼저 밝히는 편을 택했습니다.
서버가 침해되면 공격자가 얻는 것
- 공격자가 얻을 수 있는 것: 판매자 계정 데이터, 설정된 수신 주소와 xpub, 주문 메타데이터, 웹훅 엔드포인트와 웹훅 시크릿. 이후의 결제 페이지에 잘못된 수신 주소를 표시할 수도 있습니다.
- 공격자가 얻을 수 없는 것: 당신의 자금, 그리고 이미 발생한 결제. 우리 시스템에는 판매자 지갑에서 지출할 수 있는 키가 존재하지 않으므로, 잔액 자체에서 훔칠 것이 없습니다.
- 당신이 해야 할 일: 결제 페이지에 표시된 수신 주소를 직접 설정한 지갑과 대조하고, 모든 웹훅은 서명을 검증한 뒤에 처리하십시오.
직접 확인하세요
설정한 지갑 주소를 공개 블록 익스플로러에서 조회해 보십시오. TRC-20은 Tronscan, BEP-20은 BscScan, ERC-20은 Etherscan, 비트코인은 mempool.space입니다. 결제가 고객 주소에서 당신 주소로 곧바로 들어오고 중간 경유가 없음을 확인할 수 있습니다. 우리가 통제하는 주소가 그 경로에 있었다면 바로 거기에 보일 것입니다. 없습니다.
다른 한편 — 우리가 해 줄 수 없는 일
- 결제를 취소하거나 환불해 드릴 수 없습니다. 온체인 트랜잭션은 최종적입니다. 환불은 당신이 직접 자신의 지갑에서 보내는 것이고, 대시보드는 그 사실을 기록할 뿐입니다.
- 잘못된 주소로 보낸 자금을 되찾아 드릴 수 없습니다. 설정한 지갑 주소가 틀렸다면 결제는 그 잘못된 주소로 가고 사라집니다. 주소를 확인하고 먼저 소액으로 시험해 보십시오.
- 당신의 지갑을 복구해 드릴 수 없습니다. 우리는 당신의 키를 가진 적이 없습니다. 키를 잃으면 도와드릴 방법이 없습니다. 어떤 지원 채널도, 어떤 예외도 없습니다.
- 자금을 동결하거나 압류할 수 없습니다. 당신 본인의 요청이든 제3자의 요구든 마찬가지입니다. 그런 기능 자체가 없습니다.
감사와 익명성에 대해, 솔직히
NextCryptoPay는 제3자 보안 감사를 받은 적이 없으며, 받은 것처럼 암시하지도 않겠습니다. 운영자의 신원도 공개하지 않습니다. 이 사이트에 회사명, 등록번호, 사무실 주소가 없는 이유는 이름을 밝힐 법인이 존재하지 않기 때문입니다. 실제 매출을 어떤 서비스로든 — 이 서비스를 포함해 — 흘려보내기 전에 두 가지 사실을 함께 따져 보십시오. 이름과 인증서 대신 우리가 내놓는 것은, 우리의 신원이 중요할 필요가 없도록 만든 설계입니다. 우리는 고객의 돈을 움직일 수 있는 키를 결코 보유하지 않으며, 위의 모든 주장은 믿는 것이 아니라 시험해 볼 수 있는 종류입니다.
보안 문제 신고
발견한 내용을 [email protected]으로 보내 주시거나, 아래의 신고 정책을 확인하십시오. 접수를 확인해 드리고 수정 진행 상황을 알려드립니다. 실제 판매자 인보이스나 다른 사람의 결제를 대상으로 시험하지는 말아 주십시오.