Z-Text문서

메시징

Z-Text 메시지는 블록체인 트랜잭션입니다. 모든 메시지는 암호화되고, 영구적이며, 검열에 저항합니다.

메시지 보내기

메시지를 보내려면 핸드셰이크가 완료된 연락처와의 대화를 열고 메시지를 입력합니다. 앱이 공유 키로 암호화한 후 BitcoinZ 블록체인에서 차폐 트랜잭션으로 브로드캐스트합니다.

  1. 메시지 탭에서 대화를 엽니다
  2. 입력 필드에 메시지를 입력합니다
  3. 보내기 버튼을 탭합니다 -- 메시지가 로컬에서 암호화됩니다
  4. 차폐 트랜잭션이 생성되어 네트워크에 브로드캐스트됩니다
  5. mempool G-stream 푸시를 통해 거의 즉시(보통 1-5초) 메시지가 전달됩니다

메시지 전달

메시지는 mempool G-stream 푸시를 통해 거의 즉시 전달됩니다. 트랜잭션이 브로드캐스트되면 G-stream이 읽지 않은 메모를 1-5초 이내에 수신자의 기기로 푸시합니다. 이후 블록 확인이 이루어져 블록체인에 영구적으로 기록됩니다.

상태의미
전송 중트랜잭션을 생성하고 서명하는 중입니다
대기 중트랜잭션이 mempool에 브로드캐스트되었습니다
전달됨mempool G-stream 푸시가 수신자에게 전달되었습니다
확인됨트랜잭션이 블록에 채굴되어 영구적으로 기록되었습니다

핸드셰이크 프로토콜

누군가에게 메시지를 보내기 전에 암호화 핸드셰이크를 완료해야 합니다. 이를 통해 양쪽 모두 메시지 암호화에 사용하는 공유 비밀 키가 설정됩니다.

  1. 시작 -- 차폐 트랜잭션에 공개 키를 포함하여 핸드셰이크 요청을 보냅니다
  2. 응답 -- 수신자가 다른 차폐 트랜잭션에 자신의 공개 키를 포함하여 수락합니다
  3. 키 도출 -- 양쪽 클라이언트가 Diffie-Hellman 키 교환을 사용하여 공유 비밀을 계산합니다
  4. 준비 완료 -- 공유 비밀이 로컬에 저장되어 이후 모든 메시지를 암호화/복호화하는 데 사용됩니다

신뢰 없는 검증

핸드셰이크는 신뢰가 필요 없습니다 -- 키 교환을 중재하는 서버가 없습니다. 양쪽의 공개 키가 차폐 트랜잭션을 통해 전달되므로 키 교환 자체도 관찰자에게 보이지 않습니다.

암호화 설명

Z-Text는 이중 암호화 모델을 사용합니다:

  • 레이어 1 -- zk-SNARK 차폐: 트랜잭션 메모(메시지 포함)는 블록체인의 기본 차폐 트랜잭션 메커니즘에 의해 암호화됩니다. 발신자와 수신자 z-address만이 복호화할 수 있습니다.
  • 레이어 2 -- 공유 키 암호화: 메모 필드에 넣기 전에 핸드셰이크 중 설정된 공유 키로 메시지를 추가 암호화합니다. 이는 누군가가 z-address 조회 키를 탈취하더라도 핸드셰이크에서 파생된 키 없이는 메시지를 읽을 수 없음을 의미합니다.

스티커

Z-Text는 대화에서 스티커 이미지 전송을 지원합니다. 스티커는 텍스트 메시지와 마찬가지로 인코딩되어 트랜잭션 메모에 포함됩니다. 앱에는 기본 스티커 팩이 포함되어 있으며, 프리미엄 사용자는 추가 팩에 접근할 수 있습니다.

메시지 제한

메시지가 트랜잭션 메모에 저장되므로 블록체인의 메모 필드 크기에 따라 메시지당 글자 수 제한이 있습니다. 긴 메시지의 경우 앱이 자동으로 콘텐츠를 여러 트랜잭션으로 분할하고 수신자 측에서 재조립합니다.

프리미엄: 더 빠른 메시지

프리미엄 구독자는 우선 트랜잭션 릴레이의 혜택을 받으며, 최적화된 노드 인프라를 통해 메시지 전달 시간을 단축할 수 있습니다.