Z-Text문서

송금 작동 방식

BTCZ 송금에서 두 가지가 사람들을 놀라게 합니다: 소액 결제가 고액보다 오래 걸릴 수 있고, 시간이 지나면 잔액이 조용히 여러 작은 조각으로 나뉩니다. 이 두 가지는 모두 프라이빗 지갑이 실제로 돈을 저장하는 방식에 대한 하나의 개념에서 비롯됩니다.

하나의 핵심 개념

잔액은 하나의 숫자가 아닙니다. 노트라고 불리는 별개의 코인들의 묶음입니다. 송금 속도는 가치가 아니라 지출하는노트의 개수에 달려 있습니다. 각 노트마다 자체 영지식 증명으로 봉인해야 하기 때문입니다. 이 하나의 사실이 "전액 보내기"가 왜 느린지, 수백만 BTCZ가 왜 몇 초 만에 이동하는지, Z-Text가 왜 자금을 많은 작은 노트로 분할해 두는지를 설명합니다.

잔액은 노트의 묶음입니다

지갑을 열면 하나의 잔액이 표시됩니다. 그 아래에는 실제로 많은 개별 코인이 있습니다. Z-Text 같은 차폐 지갑에서 이 코인들은 노트라고 불립니다(기술적 명칭은 미사용 트랜잭션 출력, 즉 UTXO입니다). 각 노트는 고정된 값을 가지며, 잔액은 단순히 모든 노트의 합계입니다.

핵심 규칙: 노트의 일부가 아닌 전체 노트를 지출합니다. 현금과 같은 방식입니다. 10짜리 동전 하나를 갖고 있는데 2를 지불하고 싶다면, 동전을 반으로 자를 수 없습니다. 전체 동전을 건네고 잔돈을 받습니다.

지출과 잔돈

전체 노트를 지출하기 때문에, 거의 모든 송금에서 잔돈이 생깁니다. 예를 들어 0.0002 BTCZ를 보내기 위해 0.01 BTCZ짜리 노트를 지출한다고 가정하면, 네트워크는 소액 수수료(0.0001 BTCZ)를 가져가고, 수신자는 금액을 받으며, 나머지는 새로운 노트로 돌아옵니다. 지출한 노트는 사라지고, 그 자리에 새로운 잔돈 노트가 생깁니다.

지갑을 사용하면서 노트 값이 계속 변하는 이유가 바로 이것입니다. 또한 새로 생성된 잔돈 노트는 다시 지출하기 전에 잠시 확인될 시간이 필요한 이유이기도 하며, 이것은 예상보다 더 중요합니다(아래 참조).

속도가 금액이 아닌 노트 개수에 달려 있는 이유

이것이 사람들을 놀라게 하는 부분입니다. 노트를 프라이빗하게 지출하려면 폰이 해당 노트에 대한 영지식 증명을 구성해야 합니다: 어떤 노트인지 공개하지 않으면서 그 노트를 소유하고 지출할 권한이 있다는 작은 암호학적 증명입니다. 하나의 증명을 구성하는 데 폰에서 대략 1~3초가 걸립니다.

중요한 것은, 지출하는 노트마다 하나의 증명이 필요합니다. 1개의 노트를 지출하는 트랜잭션은 1개의 증명이 필요합니다. 50개의 노트를 지출하는 트랜잭션은 50개의 증명이 필요합니다. 금액의 크기는 전혀 중요하지 않으며, 오직 노트의 개수만이 중요합니다.

경험 법칙

송금 속도는 보내는 BTCZ의 금액이 아니라 지출하는 노트의 개수에 달려 있습니다.

보내는 것지출된 노트증명속도
5,000,000 BTCZ가 하나의 노트에11몇 초
100개의 노트에 걸친 1 BTCZ다수다수수십 초~수 분
전액 보내기 (전부)보유한 모든 노트전부가장 느림, 여러 배치로 전송

실제 예시

메시지 하나 보내기

메시지를 보내면 단 하나의 작은 노트를 지출합니다. Z-Text는 이를 위해 약 0.0002 BTCZ의 노트를 보관합니다: 연락처에게 보내는 0.0001과 네트워크 수수료 0.0001을 충당하기에 충분한 양입니다. 노트 하나, 증명 하나, 몇 초면 완료됩니다. 그리고 양방향 대화에서 보낸 0.0001은 상대방이 답장할 때 돌아오므로, 채팅의 실제 비용은 수수료에 가깝습니다.

노트 하나에 담긴 5,000,000 BTCZ 대 백 개의 노트에 담긴 1 BTCZ

5백만 BTCZ가 단 하나의 노트에 있다면, 전송은 하나의 증명으로 몇 초 안에 완료됩니다. 반면 1 BTCZ가 백 개의 작은 노트에 분산되어 있다면, 대부분을 지출하는 것은 수십 개의 노트를 증명해야 하므로 훨씬 오래 걸립니다. 금액이 수백만 배 작더라도 마찬가지입니다. 금액이 아닌 개수입니다.

전액 보내기

"전액 보내기"는 지갑에 요청할 수 있는 가장 느린 작업입니다. 보유한 모든 노트를 지출해야 하기 때문입니다. 증명이 너무 많아 하나의 트랜잭션에 맞지 않으므로, 지갑은 여러 연속 트랜잭션으로 잔액을 전송합니다 (각각 최대 약 50개의 노트). 각 배치의 증명을 구성하는 데 폰에서 대략 1~2분이 걸립니다. 200개의 노트가 있는 지갑은 약 4개의 순차 트랜잭션이 됩니다. 이것은 비용이 금액이 아닌 노트의 개수를 따른다는 가장 명확한 증거입니다.

Z-Text가 자금을 분할하는 이유

많은 노트가 송금을 느리게 만든다면, 왜 Z-Text는 의도적으로 자금을 많은 작은 노트로 나눌까요? 메시징은 반대의 문제이기 때문입니다. 보내는 모든 메시지는 하나의 노트를 지출합니다. 전체 잔액이 하나의 노트에 있다면, 한 번에 하나의 메시지만 보낼 수 있습니다: 각 송금 후 다음 메시지를 보내기 전에 잔돈이 확인될 때까지 기다려야 합니다.

많은 작은 노트의 풀이 있으면, 각 메시지가 준비된 다른 노트를 가져가므로, 기다리지 않고도 여러 메시지를 연속으로 보낼 수 있습니다. 노트 하나는 한 번에 하나의 메시지를 의미하고, 백 개의 노트는 백 개의 메시지를 동시에 전송할 수 있음을 의미합니다.

대기 함정

첫 번째 메시지의 잔돈이 아직 확인되지 않은 상태에서 두 번째 메시지를 보내려 하면, 지출 가능한 유일한 노트가 방금 사용되었기 때문에 전송이 실패합니다. 이미 확인된 노트의 건강한 풀이 빠른 메시징을 즉각적으로 느끼게 해주는 것입니다. 확인은 약 하나의 블록, 대략 2.5분이 걸립니다.

따라서 Z-Text는 하나의 트랜잭션으로 큰 노트를 약 0.0002 BTCZ의 많은 작은 노트로 분할합니다(노트 하나가 백 개가 되고, 소액 수수료 하나만 발생). 새로운 라이선스는 바로 채팅을 시작할 수 있도록 준비된 노트 풀과 함께 도착합니다.

노트 풀을 건강하게 유지하기

이 모든 것을 직접 관리할 필요가 없습니다. 지갑은 노트 수를 모니터링하고 상태를 표시합니다: 편안한 풀은 약 50개 이상의 노트이며, 부족할 때 알림을 표시합니다. 메시지를 받는 것도 충전해 줍니다. 받는 모든 메시지는 노트를 돌려주므로, 활발한 대화는 자연스럽게 풀을 보충합니다.

예를 들어 메시지를 대량으로 보내기 전에 수동으로 충전하고 싶다면, 설정 → 노트 관리에서 한 번의 탭으로 잔액을 새로운 노트로 분할할 수 있습니다. 하나의 수수료가 드는 단일 트랜잭션입니다.

용어 사전

용어의미
노트고정된 값을 가진 단일 차폐 코인. 잔액은 노트의 합계입니다.
UTXO"미사용 트랜잭션 출력" — 노트의 기술적 명칭입니다.
잔돈지출된 노트의 남은 값으로, 새로운 노트로 돌아옵니다.
더스트메시지에 첨부된 0.0001 BTCZ와 같은 매우 소액입니다.
네트워크 수수료블록체인이 트랜잭션 처리를 위해 부과하는 소액(0.0001 BTCZ)입니다.
zk-SNARK 증명지출하는 각 노트에 대해 구성된 영지식 증명. 송금을 프라이빗하게 만들며, 시간이 걸리는 부분입니다.
확인트랜잭션이 블록에 포함되면 노트를 안정적으로 지출할 수 있게 됩니다. 약 2.5분마다 발생합니다.

자주 묻는 질문

전액 보내기는 왜 그렇게 오래 걸리나요?

보유한 모든 노트를 지출하며, 각 노트는 자체 증명이 필요합니다. 노트가 많으면 지갑은 여러 순차 배치로 잔액을 전송하며 각각의 증명을 구성합니다. 작동 중인 것이며, 멈춘 것이 아닙니다.

소액 결제가 때로는 고액보다 느린 이유는 무엇인가요?

속도는 결제에 사용되는 노트의 개수에 달려 있으며, 금액과는 무관하기 때문입니다. 많은 작은 노트를 모아야 하는 소액 결제는 하나의 큰 노트를 사용하는 고액 결제보다 느릴 수 있습니다.

잔액이 왜 많은 작은 금액으로 나뉘었나요?

그것은 의도된 것입니다. 작은 노트의 풀이 있으면 잔돈 확인을 기다리지 않고도 많은 메시지를 빠르게 보낼 수 있습니다.

잔액이 분할될 때 코인을 잃었나요?

아닙니다. 분할에는 소액의 네트워크 수수료 하나만 듭니다. 그리고 메시지에 첨부된 더스트는 양방향 대화에서 돌아옵니다.

송금이 한동안 계속되고 있습니다. 무언가 잘못된 건가요?

대체로 그렇지 않습니다. 많은 노트를 지출하는 송금은 모든 증명을 구성하는 데 시간이 필요합니다. 거의 항상 증명 생성 중인 것이지, 네트워크나 잔액 문제가 아닙니다.