文档

安全模型与局限

这一设计保护什么、不保护什么,以及哪些部分仍未完成。

测试网络:代币没有价值

哪些是隐藏的

  • 一笔付款的发送方、接收方和金额。
  • 备注。
  • 一笔付款花费了哪些票据:被花费的票据只显示一个作废标识(nullifier)。

哪些是公开的

  • 发生过一笔付款,以及它是何时被打包进区块的。
  • 每笔交易支付的手续费,因此也就大致能知道它有多少个操作。
  • 每种代币的总供应量。
  • 对于兑换,经过兑换池的两个金额,以及池的储备量。
  • 在跨链桥上,Ethereum 一侧的一切:代币、金额、地址。
  • 时间信息:区块的时间及其在链中的位置。

节点运营者能了解到什么

节点通过 HTTPS 接收构建完成的付款,并看到它来自哪个网络地址。监视节点所在网络的人,或节点本身,可能把该地址与付款发送的时间联系起来。Tint 不会隐藏你的 IP 地址。如果这一点对你很重要,请通过你信任的网络连接节点。

公共节点的代理不保留访问日志。这是运营者的选择,你无法从外部验证。

在手机上

  • 密钥来自在设备上生成的 24 个单词的助记词。助记词和密钥绝不会发送给节点。
  • 进入钱包由密码保护,如果你开启,还有 Face ID 或 Touch ID。
  • 内置浏览器在隔离的 Web 视图中显示页面,无法访问钱包。它的数据存在于内存中,关闭时即被丢弃。
  • 浏览器的钓鱼检查只判断地址。它可能漏掉新出现的诈骗网站,也不会向网站隐藏你的 IP 地址。

有缺陷或有恶意的钱包只能生成会被账本拒绝的付款:钱包代码对共识并不关键。但恶意应用可能窃取它所持有的密钥,因此请只通过你收到的 TestFlight 邀请安装应用。

共识与去中心化

  • 共识是 BFT 权益证明,验证者集合在创世时固定。
  • 在公共测试网络上,四个验证者都运行在同一台服务器上。谁控制这台服务器,谁就控制这条链。
  • 付款目前尚不在节点之间转发:只有当收到付款的节点轮到出块时,这笔付款才会被打包。
  • 账本状态保存在内存中,重启时由已存储的区块重建。
  • 网络可以被重置:第一个区块可以被替换,随后每个钱包都会读取一条新的链。

密码学

隐私建立在 Orchard 协议和 Halo 2 证明之上,二者不需要可信设置。Tint 对它们的使用,包括其多币种扩展、兑换池以及周边代码,都是全新的,尚未经过外部人员的审查。其中的缺陷可能破坏隐私,或导致代币被凭空创造或丢失。

跨链桥

跨链桥是托管式的:由其签名者决定放行什么,合约的所有者挑选签名者,并且可以暂停它。单笔和单日的限额限定了失误造成的损失。参见跨链桥。

该怎么做

  • 把这个网络上的每一枚代币都当作一文不值,把每个余额都当作临时的。
  • 把助记词保存在纸上,不要给任何人看。
  • 不要在这里使用你在其他钱包中的真实助记词。
  • 使用钱包中的公共网络时,要像在其他任何地方一样谨慎:它们持有真实资金,其上的交易无法撤销。