이중 암호화: Z-Text가 메시지를 보호하는 방법
대부분의 암호화 메신저는 단일 암호화 계층에 의존합니다. Z-Text는 각각 다른 위협 벡터를 방어하는 두 개의 독립적인 암호화 계층을 사용합니다.
대부분의 암호화 메신저는 단일 암호화 레이어에 의존합니다. Z-Text는 두 개의 독립적인 암호화 레이어를 사용하며, 각각은 서로 다른 위협 벡터로부터 보호합니다. 이 글에서는 이들이 어떻게 함께 작동하여 메시지에 대한 심층 방어를 제공하는지 설명합니다.
레이어 1: 블록체인 차폐
첫 번째 암호화 레이어는 BitcoinZ 블록체인 자체에서 나옵니다. 차폐 거래는 zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge)를 사용하여 모든 거래 데이터를 암호화합니다.
Z-Text 메시지가 차폐 거래로 전송되면, 다음 사항이 모든 네트워크 관찰자로부터 숨겨집니다:
- 발신자의 주소
- 수신자의 주소
- 거래 금액
- 메모 필드 (메시지가 저장되는 곳)
수신자의 z-address 조회 키를 보유한 사람만이 메모 필드를 복호화하고 메시지 내용을 읽을 수 있습니다. 이는 수동적인 네트워크 감시와 블록체인 분석으로부터 보호합니다.
레이어 2: 연락처 키 암호화
두 번째 레이어는 블록체인 차폐 위에 종단간 암호화를 추가합니다. 핸드셰이크 과정에서 Z-Text는 Elliptic Curve Diffie-Hellman (ECDH) 키 교환을 사용하여 두 연락처 간에 공유 비밀 키를 설정합니다.
메시지가 거래 메모에 배치되기 전에, 이 공유 키로 암호화됩니다. 이는 누군가가 z-address 조회 키를 (강압, 도난, 또는 미래의 취약점을 통해) 획득하더라도, 별도로 파생된 연락처 키 없이는 여전히 메시지를 읽을 수 없다는 것을 의미합니다.
핸드셰이크 키 교환
연락처 키는 트러스트리스 핸드셰이크 프로토콜을 통해 설정됩니다:
- Alice가 Bob의 z-address로 핸드셰이크 요청을 보내며, 그녀의 임시 공개 키를 포함합니다 (차폐 거래의 메모에 암호화됨)
- Bob은 자신의 임시 공개 키를 Alice에게 다시 보내며 수락합니다 (역시 차폐 거래를 통해)
- Alice와 Bob 모두 ECDH를 사용하여 독립적으로 동일한 공유 비밀을 도출합니다
- 이 공유 비밀이 이후 모든 메시지의 대칭 암호화 키가 됩니다
이 접근 방식의 장점은 키 교환조차도 레이어 1 차폐에 의해 보호된다는 것입니다. 관찰자는 교환되는 공개 키를 보거나 핸드셰이크가 일어나고 있다는 것조차 알 수 없습니다.
두 레이어가 중요한 이유
각 레이어는 서로 다른 공격 시나리오로부터 보호합니다:
- 레이어 1만으로는 네트워크 관찰자와 블록체인 분석가로부터 보호하지만, 조회 키 유출에 취약합니다
- 레이어 2만으로는 조회 키 유출로부터 보호하지만, 메시지가 온체인에 평문으로 전송된다면 취약할 것입니다
- 두 레이어를 함께 사용하면 공격자가 두 개의 독립적인 암호 시스템을 동시에 침해해야 합니다
이것은 메시징 암호화에 적용된 심층 방어 원칙입니다. 메시지를 노출할 수 있는 단일 실패 지점이 없습니다.
암호학적 기본 요소
Z-Text의 암호화 스택은 잘 확립된 암호학적 기본 요소를 사용합니다:
- zk-SNARKs (Groth16) — 레이어 1 차폐 거래용
- ECDH over Curve25519 — 키 교환용
- ChaCha20-Poly1305 — 레이어 2 대칭 암호화용
- BLAKE2b — 키 파생용
모든 암호화 작업은 애플리케이션의 Rust 코어에서 수행되며, 타이밍 사이드 채널 공격을 방지하기 위해 상수 시간 구현을 활용합니다.
실용적 의미
사용자에게 이중 레이어 암호화는 완전히 투명합니다. 앱이 모든 키 교환과 암호화를 자동으로 처리합니다. 메시지는 아래에서 벌어지는 정교한 암호학에 대한 표시 없이 친숙한 채팅 인터페이스에 표시됩니다.
결과적으로 어떤 중앙화된 메신저도 제공할 수 없는 수준의 메시지 보안이 달성됩니다 — 암호학이 더 복잡하기 때문이 아니라, 신뢰 모델이 근본적으로 다르기 때문입니다. 소환장을 발부받을 서버도, 강요할 회사도, 모든 것을 풀 수 있는 단일 키도 없습니다.