보안 및 프라이버시
Z-Text는 처음부터 제로 트러스트 보안 모델로 구축되었습니다. 분석 없음, 추적 없음, 서버 측 데이터 저장 없음.
PIN 보호
Z-Text는 초기 설정 시 설정한 8자리 PIN으로 앱을 잠급니다. 앱은 다음 작업을 하기 전에 PIN을 요구합니다:
- 앱 열기
- 트랜잭션 전송(메시지 및 BTCZ 이체)
- seed phrase 표시
- 보안 설정 변경
PIN 자체는 읽을 수 있는 형태로 절대 저장되지 않습니다. 잠금 화면에서 잘못된 입력이 반복되면 대기 시간이 적용됩니다.
생체 인증
지원되는 기기에서는 앱 접근 시 PIN 입력 대신 지문 또는 얼굴 인식을 활성화할 수 있습니다. 생체 데이터는 기기의 보안 엔클레이브에서 전적으로 처리됩니다 -- Z-Text는 원시 생체 데이터에 절대 접근하지 않습니다.
이중 암호화
Z-Text는 심층 방어를 제공하는 이중 암호화 아키텍처를 사용합니다:
레이어 1: 블록체인 차폐 (zk-SNARKs)
BitcoinZ 블록체인의 차폐 트랜잭션은 zk-SNARKs를 사용하여 트랜잭션 메모 필드를 암호화합니다. 이는 다음을 의미합니다:
- 메시지 내용이 온체인에서 암호화됩니다
- 발신자와 수신자 z-address가 숨겨집니다
- 거래 금액이 숨겨집니다
- z-address 조회 키 소유자만 메모를 복호화할 수 있습니다
레이어 2: 연락처 키 암호화
트랜잭션 메모에 메시지를 넣기 전에 Z-Text는 핸드셰이크에서 파생된 공유 키로 암호화합니다. 이는 두 번째 보호 레이어를 추가합니다:
- 누군가 z-address 조회 키를 탈취하더라도 메시지를 읽을 수 없습니다
- 공유 키는 연락처 쌍별로 고유합니다
- 키는 ECDH를 통해 도출되며 직접 전송되지 않습니다
왜 이중 레이어인가?
레이어 1은 블록체인 관찰자로부터 보호합니다. 레이어 2는 조회 키 유출로부터 보호합니다. 메시지를 읽으려면 두 레이어 모두를 뚫어야 합니다 -- 이는 극히 어려운 일입니다.
zk-SNARKs 설명
Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge (zk-SNARKs)는 한 당사자가 값 자체를 공개하지 않고 값을 알고 있음을 증명할 수 있는 암호화 증명입니다.
Z-Text의 맥락에서 zk-SNARKs는 누가 보냈는지, 누가 받았는지, 얼마가 전송되었는지 공개하지 않고 트랜잭션이 유효함(올바른 잔액, 인가된 발신자)을 증명합니다. 이것이 차폐 트랜잭션을 진정으로 프라이빗하게 만드는 요소입니다.
제로 텔레메트리
Z-Text는 사용자 데이터를 절대 수집하지 않습니다:
- 어떤 종류의 분석이나 추적도 없습니다
- 외부로 데이터를 전송하는 충돌 보고가 없습니다
- 사용 데이터는 우리에게 전송되지 않습니다
- 앱은 사용자가 선택한 lightd 서버(기본값은 우리 서버, 또는 사용자 자신의 노드)에 연결하고 공개된 BTCZ 가격을 조회하며, Tor를 켜면 둘 다 Tor를 거칩니다
- 비밀번호 볼트의 웹사이트 아이콘은 사용자가 켠 경우에만 가져옵니다
- 앱 자체는 IP 주소를 로깅하지 않습니다
소스 코드
Z-Text 앱은 클로즈드 소스입니다. 와이어 프로토콜은 공개 검토를 위해 명세서로 공개될 예정입니다.
위협 모델
Z-Text는 다음으로부터 보호하도록 설계되었습니다:
| 위협 | 보호 방법 |
|---|---|
| 서버 침해 | 서버 없음 -- 메시지는 블록체인에 저장됩니다 |
| 네트워크 감시 | zk-SNARK 차폐 트랜잭션이 발신자, 수신자, 금액, 메모를 숨깁니다 |
| 다른 사람이 사용자의 잠긴 기기를 가지고 있는 경우 | PIN/생체 잠금 화면, 암호화된 로컬 저장소 |
| 조회 키 유출 | 레이어 2 암호화가 메시지 읽기를 방지합니다 |
| 검열 | 분산화된 블록체인은 차단할 수 없습니다 |