Blocknet이 결제를 프라이빗하게 지키는 방법

· 읽는 데 7분

이 글은 Blocknet이란 무엇입니까?의 프라이버시 요약보다 한 걸음 더 들어가, Blocknet 트랜잭션의 프라이버시 계층을 하나씩 살펴봅니다. 각 계층이 무엇을 숨기는지, 어떻게 작동하는지, 다음에 BNT를 보내거나 받을 때 어떤 의미가 있는지 설명합니다.

Blocknet은 결제를 어떻게 프라이빗하게 지킵니까?

짧은 답변

Blocknet은 16개 출력에 대한 CLSAG 링 서명으로 보낸 사람을, 일회용 스텔스 주소로 받는 사람을, 페더슨 커밋먼트와 Bulletproofs 범위 증명으로 금액을 숨깁니다. Dandelion++ 전파는 트랜잭션이 네트워크에 들어온 지점을 숨기고, 모든 출력에는 128바이트 암호화 메모가 붙습니다. 이 모든 것이 필수이며 공개 모드는 없습니다.

Blocknet은 Monero와 같은 검증된 암호 기술 계열, 즉 Curve25519 위의 Ristretto 그룹을 기반으로 한 링 서명, 스텔스 주소, Bulletproofs 범위 증명을 사용합니다. 여기에 이름으로 결제하는 기능과 암호화 메모를 더합니다. 각 계층이 결제의 서로 다른 부분을 가리며, 함께 작동하면 체인을 읽는 사람에게 단서가 거의 남지 않습니다.

링 서명은 누가 보냈는지 숨깁니다

코인을 쓸 때 지갑은 16개 출력으로 이루어진 그룹에 서명합니다. 내가 소유한 출력 하나와 체인에서 디코이로 고른 다른 출력 15개입니다. 이 서명은 CLSAG 링 서명입니다. 누구나 링 구성원 중 하나가 서명했다는 것은 검증할 수 있지만, 서명은 그것이 누구인지 드러내지 않습니다.

링 크기는 합의 규칙으로 강제됩니다. 모든 입력은 정확히 16개의 링 구성원을 가져야 하고, 각 구성원은 이미 체인에 있는 실제 출력이어야 하며, 네트워크는 그 밖의 것을 모두 거부합니다. 네트워크의 모든 입력이 같은 크기를 쓰므로 링 크기로 트랜잭션이나 그것을 만든 지갑을 특정할 수 없습니다. 데몬 코드는 “가변 링 크기로 인한 정보 유출을 막기 위해” 크기를 고정합니다.

같은 코인이 두 번 쓰이는 것을 막기 위해 각 입력에는 키 이미지도 붙습니다. 키 이미지는 실제로 쓰이는 출력마다 고유하지만, 그것이 어느 링 구성원인지는 드러내지 않습니다. 같은 키 이미지가 두 번째로 나타나면 네트워크는 해당 트랜잭션을 이중 지불로 거부합니다.

스텔스 주소는 누가 받았는지 숨깁니다

Blocknet 주소에는 지출 키와 조회 키라는 두 공개 키가 들어 있습니다. 누군가 나에게 결제하면 그 사람의 지갑이 내 키와 새로운 난수를 결합해 해당 출력에만 쓰이는 일회용 주소를 만듭니다. 내가 공유한 주소는 체인에 절대 나타나지 않습니다.

내 지갑은 비공개 조회 키로 새 트랜잭션을 스캔해 나에게 속한 출력을 찾고, 나중에 지출 키로 그 출력을 씁니다. 같은 주소로 들어온 결제 10건은 서로 관련 없는 일회용 주소 10개에 도착하므로, 관찰자는 주소가 받은 금액을 합산할 수 없고 두 결제가 같은 사람에게 갔는지도 알 수 없습니다.

Blocknet ID 이름도 마찬가지입니다. @name 같은 짧은 이름은 보내는 사람이 결제하기 위해 blocknet.id에서 조회하므로 원래 공개되는 정보입니다. 그래도 그 이름으로 보낸 결제는 새로운 일회용 주소로 가므로, 이름으로는 내가 무엇을 받았는지 알 수 없습니다.

Blocknet은 트랜잭션 금액을 어떻게 숨깁니까?

금액은 페더슨 커밋먼트로 저장됩니다. 커밋먼트는 숫자를 보여 주지 않으면서 고정하며, 커밋먼트끼리 더할 수 있습니다. 덕분에 모든 노드는 금액을 하나도 알지 못한 채로 트랜잭션의 입력이 출력과 수수료의 합과 같은지 검사할 수 있습니다.

커밋먼트만으로는 음수 금액을 숨길 수 있어, 아무것도 없는 데서 코인이 생겨날 수 있습니다. 그래서 각 출력에는 금액이 0부터 시작하는 64비트 범위 안에 있다는 Bulletproofs 범위 증명이 함께 붙습니다. 이 증명은 모든 노드에 금액이 유효하다는 것을 납득시키면서 그 밖의 정보는 아무것도 드러내지 않습니다.

받는 사람은 실제 금액을 볼 수 있습니다. 받는 사람의 지갑은 출력을 찾을 때 쓰는 것과 같은 공유 비밀값으로 금액을 복원하므로, 금액은 결제의 두 당사자에게만 보이고 다른 누구에게도 보이지 않습니다.

Dandelion++는 트랜잭션이 시작된 곳을 숨깁니다

노드가 자신의 트랜잭션을 모든 피어에게 한꺼번에 알린다면, 많은 노드를 지켜보는 사람이 누가 먼저 들었는지 따져 출처를 추측할 수 있습니다. Blocknet은 이를 막기 위해 Dandelion++로 트랜잭션을 전파합니다.

새 트랜잭션은 먼저 줄기(stem)를 따라 한 피어에서 다음 피어 하나로만 전달됩니다. 홉마다 90% 확률로 줄기를 따라 계속 가고, 그렇지 않으면 확산(fluff) 단계로 넘어가 그 지점에서 네트워크 전체로 퍼집니다. 대부분의 노드가 트랜잭션을 볼 때쯤에는 내 노드에서 여러 홉 떨어졌을 수도 있는 노드에서 온 것처럼 보입니다. 줄기 경로는 10분마다 다시 섞입니다.

Blocknet 메모는 누가 읽을 수 있습니까?

모든 출력에는 최대 124바이트의 텍스트를 담을 수 있는 128바이트 암호화 메모가 붙습니다. 메모는 보낸 사람과 받는 사람이 해당 출력에 대해 공유하는 것과 같은 비밀값으로 암호화되므로 두 사람만 읽을 수 있습니다. 청구서 번호, 주문 참조 번호, 결제받는 사람에게 전할 짧은 메모 등에 쓰세요. 암호화 메모 가이드에서 메모를 넣는 방법과 받은 메모를 확인하는 곳을 보여 드립니다.

메모는 가득 채우든 아무것도 쓰지 않든 항상 같은 크기입니다. 메모가 짧거나 비어 있으면 지갑은 암호화하기 전에 나머지를 무작위 패딩으로 채우므로, 메모가 있는 출력과 없는 출력이 정확히 똑같아 보입니다. 메모는 절대 눈에 띄지 않으며, 다른 사람은 어느 결제에 메시지가 있는지조차 알 수 없습니다.

Blocknet에서 프라이버시는 선택 사항입니까?

짧은 답변

아니요. Blocknet에서 프라이버시는 필수입니다. 트랜잭션 형식에 공개 모드가 없고, 합의 규칙상 모든 입력이 정확히 16개 구성원의 링을 가져야 하므로, 모든 결제가 링, 스텔스 주소, 숨겨진 금액, 암호화 메모를 사용합니다. 누구도 이를 끌 수 없으므로 프라이빗 결제는 체인의 다른 모든 결제와 똑같아 보입니다.

프라이버시가 설정 항목이라면 그것을 켜는 사람들이 작은 집단을 이뤄 더 쉽게 눈에 띕니다. Blocknet에서는 모든 트랜잭션이 같은 방식으로 만들어지므로 각 트랜잭션이 다른 모든 트랜잭션과 섞이며, 결제를 보호하려고 따로 신경 쓸 필요가 없습니다.

누군가에게 결제할 때의 의미

주소나 @name으로 BNT를 보내면 지갑이 모든 단계를 알아서 처리하며, 켜야 할 것은 없습니다.

  1. 체인에서 디코이 15개를 고르고 크기 16의 링으로 입력에 서명합니다.
  2. 받는 사람을 위한 새 일회용 주소를 만듭니다.
  3. 금액을 커밋하고 범위 증명을 붙입니다.
  4. 메모를 암호화하며, 메모를 비워 두면 무작위 패딩을 암호화합니다.
  5. 트랜잭션을 Dandelion++에 넘겨 전파합니다.

체인을 읽는 사람에게는 각각 16개의 가능한 출력을 가리키는 입력, 아무도 본 적 없는 일회용 주소로 보낸 출력, 금액 대신 커밋먼트, 무작위처럼 보이는 바이트로 된 메모 필드만 보입니다. 결제받은 사람은 자신의 지갑에서 결제, 금액, 메모를 확인합니다.

첫 BNT를 벌고 싶다면 내 컴퓨터로 채굴할 수 있습니다. 채굴 가이드를 따라 하면 몇 분 안에 bntpool.com에서 seine를 실행할 수 있고, 내 주소나 @name으로 바로 채굴할 수 있습니다.

Faraday 업그레이드로 달라지는 점

blocknetcrypto.com에 따르면 Blocknet은 Faraday라는 네트워크 업그레이드를 계획하고 있으며, 활성화는 2027년 2월 16일 무렵으로 예정되어 있습니다. 사이트는 프라이버시를 한층 더 끌어올릴 두 가지 변화를 소개합니다.

사이트는 또한 Faraday로 새 코인이나 재출시는 없으며 기존 내역도 그대로 유지된다고 밝힙니다. 설계, 테스트, 공격 관점의 검토가 진행 중이고 날짜는 확정이 아닌 계획이므로, 업데이트는 blocknetcrypto.com에서 확인하세요.

자주 묻는 질문

Blocknet은 기본적으로 프라이빗합니까?

네. 모든 Blocknet 트랜잭션은 16개 출력에 대한 링 서명, 수신자마다 일회용 스텔스 주소, Bulletproofs 범위 증명으로 숨긴 금액, 모든 출력의 128바이트 암호화 메모를 사용합니다. 트랜잭션 형식에 공개 모드가 없으므로 켜야 할 설정도 없고, 결제가 이 보호 장치를 건너뛸 방법도 없습니다.

Blocknet은 링 크기를 얼마로 사용합니까?

Blocknet 트랜잭션의 모든 입력은 정확히 16개 출력으로 이루어진 CLSAG 링으로 서명됩니다. 실제 출력 하나와 체인에서 가져온 디코이 15개입니다. 합의 규칙은 다른 크기를 모두 거부하며, 링 구성원은 모두 이미 체인에 있는 실제 출력이어야 합니다. 모든 입력이 같은 크기를 쓰므로 링 크기로 지갑을 특정할 수 없습니다.

Blocknet 메모는 누가 읽을 수 있습니까?

보낸 사람과 받는 사람만 읽을 수 있습니다. 각 메모는 두 지갑이 해당 출력에 대해 공유하는 비밀값으로 암호화되며, 체인에서 항상 정확히 128바이트를 차지하고 최대 124바이트의 텍스트를 담습니다. 짧거나 빈 메모는 무작위 패딩으로 채워지므로, 다른 사람은 어느 결제에 메모가 있는지 알 수 없습니다.

내 Blocknet 주소가 얼마를 받았는지 다른 사람이 볼 수 있습니까?

아니요. 주소로 들어오는 결제는 모두 새로운 일회용 스텔스 주소로 도착하므로, 공유한 주소 아래로 결제를 묶을 수 없습니다. 금액은 범위 증명과 함께 페더슨 커밋먼트로 저장되므로 체인에는 각 출력의 금액이 드러나지 않습니다. 비공개 조회 키를 가진 내 지갑만 결제를 찾아 합계를 냅니다.

Blocknet은 Monero와 같은 암호 기술을 사용합니까?

Blocknet은 Monero와 같은 검증된 암호 기술 계열을 사용합니다. 크기 16의 링을 쓰는 CLSAG 링 서명, 일회용 스텔스 주소, Bulletproofs 범위 증명을 갖춘 페더슨 커밋먼트, Dandelion++ 트랜잭션 전파입니다. 여기에 Blocknet ID 짧은 이름으로 결제하는 기능과 모든 출력의 128바이트 암호화 메모를 더합니다.