ZooBC 维基
集成

校验下载的文件

假冒钱包在把你的助记词发往别处的那一刻之前,外观和行为都可能与真品一模一样。所以要检查文件本身,而不是你获取它的网站。ZooBC 把其发布版本的指纹记录在链上,任何人都可以在浏览器中或从终端,把文件的指纹与它们进行比较。

链上的指纹

指纹就是文件的 SHA-256 哈希。改动文件的一个字节,哈希就会完全改变,因此哈希相同就意味着是同一个文件。

链在两个地方保存哈希:

  • 发布注册表。 发布机构(链的创世中指定的一个账户)为每个发布版本注册其版本字符串和一个 32 字节的清单哈希,之后也可以撤销它。单个文件也会被登记:钱包、区块浏览器和地址文件各有自己的哈希,而一个文件包的条目是其 SHA256SUMS 文件的 SHA-256。三分之二的已注册席位还可以否决某个发布版本,并在经过一周的投票后替换发布机构(发布版本与更新)。
  • 交易消息。 任何交易都可以在消息中携带一个哈希,而这个哈希可以被搜索到。

由于这些记录是链的一部分,每个节点对它们给出的答案都相同。

/verify 页面

每个网关都在 /verify 提供一个页面。把文件拖放到上面,该页面会:

  1. 在你的浏览器内计算 SHA-256 哈希;文件绝不会被上传;
  2. 在发布版本列表(/api/v1/release/list)和交易消息(/api/v1/search/transactions?q= 后接该哈希)中查找该哈希;
  3. 报告三种状态之一:已上链,即该哈希已在链上登记;等待锚定,即该文件本应有链上背书,但其哈希未被登记,因此只有网关为它担保;已撤销,即发布机构已将其撤回。

页面加载时,还会读取当前的发布机构(/api/v1/release/authority),并在发布机构的更换尚待生效时提醒你。已撤销的文件是已被撤回的文件;请删除它。

文件在浏览器内用 SHA-256 计算哈希,绝不上传,然后在发布注册表或携带该哈希的交易中查找;也可以用 sha256sum 和发布版本列表自己检查
文件在浏览器内用 SHA-256 计算哈希,绝不上传,然后在发布注册表或携带该哈希的交易中查找;也可以用 sha256sum 和发布版本列表自己检查

不依赖网站

你甚至不必信任这个页面。自己计算哈希,然后向任意节点(包括你自己运行的节点)请求发布版本列表:

sha256sum wallet.html
GET /api/v1/release/list

如果你算出的哈希列在一个未被撤销的发布版本之下,你持有的就是正式发布的文件。对于文件包,先将其 SHA256SUMS 文件的哈希与列表核对,再在该文件包的文件旁运行 sha256sum -c SHA256SUMS。每个节点都根据同一条链作答,因此无需信任任何单个网站。

网关发布什么

每个网关都发布一份验证清单,其中包含钱包文件的哈希及其 zip 压缩包的哈希。zip 以可复现的方式构建:相同的文件总是得到相同的压缩包,因而得到相同的哈希,任何人都可以重新构建并进行比较。

什么都证明不了的东西

  • 挂锁图标(HTTPS)只能证明你访问的是哪个网站,而不能证明文件会做什么。
  • 文件大小很容易复制。
  • 看起来正确的余额完全说明不了你的助记词接下来会被发往何处。

只有与链上记录比对过的哈希,才能告诉你这个文件就是正式发布的那个文件。

另见