용어집 / 주소와 키
고유 주소
- 고유 주소란 무엇입니까?
- 고유 주소는 단 한 건의 결제에만 등장하고 다시는 발급되지 않으며, BIP-32를 기반으로 한 모든 지갑이 기본적으로 이렇게 동작합니다.
BIP-32에 명시되어 있습니다.
이 표현은 두 가지 의미를 지니고 있어 혼동하기 쉽습니다. 지갑 안에서 고유 주소는 위생 규칙입니다. 주소 하나에 결제 하나, 그리고 다음으로 넘어갑니다. 블록 탐색기의 “unique addresses” 차트에서는 집계 단위이며, 비트코인을 사용하는 사람이 몇 명인지 보여주는 지표로서는 형편없는 대리 지표입니다.
작동 방식
지갑은 새로운 비밀을 만들어내는 것이 아니라 인덱스를 따라가며 고유 주소를 생성합니다. BIP-32에서 계좌의 수신 가지에는 0부터 번호가 매겨진 2,147,483,648개의 자식이 있으며, 수신 화면에는 온체인에 한 번도 나타난 적이 없는 가장 낮은 번호의 주소가 표시됩니다. 미리 생성되는 것도 없고 고갈되는 것도 없습니다.
두 가지 설정이 이 구조를 신뢰할 수 있게 유지합니다. BIP-44에서 20으로 정해진 갭 한도(gap limit)는 복원된 지갑이 결제가 있는 마지막 주소를 지나 더 찾을 것이 없다고 판단하기 전까지 얼마나 더 스캔하는지를 뜻합니다. Bitcoin Core는 같은 작업을 위해 1,000개의 키로 이루어진 선행 키 풀을 유지합니다. 둘 다 존재하는 이유는 복원된 지갑이 어떤 주소를 사용했는지 누구에게도 물어볼 수 없고, 후보를 도출해 각각을 체인에서 검색해야 하기 때문입니다.
갭 한도는 문제가 생기기 전에 이해해 둘 가치가 있습니다. 새 주소를 40개 생성하고 마흔 번째 주소만 사용한 뒤 시드 문구를 다른 소프트웨어로 복원하면, 갭 한도 20을 따르는 지갑은 처음 20개를 스캔하고 아무것도 찾지 못한 채 잔액이 0이라고 보고합니다. 코인은 안전하며 해결책은 복원하는 지갑에서 갭 한도를 높이는 것이지만, 그 사실을 알기까지의 10분은 불쾌합니다.
고유 주소를 확인하는 곳
고유 주소는 탐색기 대시보드에서 대표 지표로 등장하는데, 그 숫자가 보이는 것보다 훨씬 적은 의미를 지닙니다.
일별 고유 주소 수는 그날 체인에 나타난 서로 다른 주소를 집계합니다. 현대적인 지갑에서 세 건의 결제를 하는 한 사람은 잔돈까지 계산하면 네다섯 개의 주소를 만들 수 있습니다. 고객 200만 명을 상대하는 거래소는 수십 개 정도의 주소만 다룰 수 있는데, 입금을 한데 모으고 출금을 단일 트랜잭션으로 묶어 처리하기 때문입니다. 따라서 이 지표는 적어도 채택 정도만큼이나 지갑 설계와 거래소 구조를 반영하며, 새 사용자가 유입될 때가 아니라 인기 지갑이 잔돈 정책을 바꿀 때 움직입니다.
지갑 쪽 의미에는 알아둘 만한 더 새로운 형태가 있습니다. BIP-352에 규정된 사일런트 페이먼트(silent payments)를 사용하면 온체인에 전혀 나타나지 않는 하나의 정적 문자열을 공개할 수 있습니다. 각 발신자가 이를 이용해 서로 다른 일회용 주소를 계산하므로, 재사용 가능한 공개 식별자를 유지하면서도 모든 결제가 고유한 곳으로 도착합니다. 합의 변경은 필요 없고 송신 및 수신 소프트웨어의 지원만 필요하므로, 지원 여부는 지갑마다 다릅니다.
인보이스는 일상적인 사례입니다. 결제 처리업체는 확장 공개 키로부터 주문별 고유 주소를 도출하므로, 인보이스 주소는 본인이 아니라 시간 창에 묶입니다. 늦게 결제하면 판매자의 소프트웨어가 수동으로 대사해야 할 수 있는데, 주소가 작동을 멈춘 것이 아니라 그 주소가 속했던 주문이 종료되었기 때문입니다.