通讯
Z-Text 的消息就是区块链交易。每条消息都是加密的、永久的、抗审查的。
发送消息
要发送消息,请打开与已完成握手验证的联系人的对话并输入消息。应用会使用共享密钥对消息进行加密,并将其作为隐蔽交易广播到 BitcoinZ 区块链上。
- 从 消息 标签页打开一个对话
- 在输入框中输入消息
- 点击发送按钮 -- 消息在本地完成加密
- 创建隐蔽交易并广播到网络
- 消息通过内存池 G-stream 推送几乎即时送达(通常 1-5 秒)
消息送达
消息通过内存池 G-stream 推送几乎即时送达。当交易被广播时,G-stream 会在 1-5 秒内将未读备注推送到收件人的设备上。区块确认随后完成,实现区块链上的永久结算。
| 状态 | 含义 |
|---|---|
| 发送中 | 交易正在创建和签名 |
| 待处理 | 交易已广播到内存池 |
| 已送达 | 收件人已收到内存池 G-stream 推送 |
| 已确认 | 交易已被打包进区块,完成永久结算 |
握手协议
在与某人通讯之前,您必须完成加密握手。此过程会建立一个双方共同使用的共享密钥,用于消息加密。
- 发起 -- 您发送一个包含您公钥的握手请求,嵌入在一笔隐蔽交易中
- 响应 -- 收件人接受请求,通过另一笔隐蔽交易发回其公钥
- 密钥派生 -- 双方客户端使用 Diffie-Hellman 密钥交换计算出共享密钥
- 就绪 -- 共享密钥存储在本地,用于加密/解密所有后续消息
无需信任的验证
握手过程无需信任 -- 没有服务器参与密钥交换。双方的公钥都通过隐蔽交易传输,因此即使是密钥交换过程对观察者也是不可见的。
加密机制详解
Z-Text 采用双层加密模型:
- 第一层 -- zk-SNARK 隐蔽保护:交易备注(包含您的消息)由区块链原生的隐蔽交易机制加密。只有发送方和接收方的 z-address 可以解密。
- 第二层 -- 共享密钥加密:在放入备注字段之前,您的消息还会使用握手过程中建立的共享密钥进行额外加密。这意味着即使有人获取了 z-address 的查看密钥,没有握手派生的密钥也无法阅读消息。
贴纸
Z-Text 支持在对话中发送贴纸图片。贴纸与文本消息一样,被编码并嵌入交易备注中。应用内置了贴纸包,高级用户可以获取更多贴纸包。
消息限制
由于消息存储在交易备注中,每条消息的字符数受限于区块链备注字段的大小。对于较长的消息,应用会自动将内容拆分为多笔交易,并在收件人端重新组装。
高级版:更快的消息
高级订阅用户享有优先交易中继服务,通过优化的节点基础设施可以缩短消息送达时间。