Wiki ZooBC
Intégrations

Vérifier un fichier téléchargé

Un faux portefeuille peut avoir exactement la même apparence et le même comportement que le vrai, jusqu’au moment où il envoie votre phrase de récupération ailleurs. Vérifiez donc le fichier lui-même, et non le site web d’où vous l’avez obtenu. ZooBC enregistre les empreintes de ses versions sur la chaîne, et n’importe qui peut comparer l’empreinte d’un fichier avec elles, dans un navigateur ou depuis un terminal.

Des empreintes sur la chaîne

L’empreinte est le hachage SHA-256 du fichier. Modifiez un seul octet du fichier et le hachage change complètement : un hachage identique signifie donc qu’il s’agit exactement du même fichier.

La chaîne conserve des hachages à deux endroits :

  • Le registre des versions. L’autorité de publication, un compte désigné dans la genèse de la chaîne, enregistre chaque version avec son numéro de version et un hachage de manifeste de 32 octets, et peut la révoquer par la suite. Les fichiers isolés y figurent aussi : le portefeuille, l’explorateur et les fichiers d’adresses ont chacun leur propre hachage, et l’entrée d’un paquet est le SHA-256 de son fichier SHA256SUMS. Les deux tiers des sièges enregistrés peuvent aussi opposer leur veto à une version, et remplacer l’autorité après une semaine de votes (versions et mises à jour).
  • Les messages de transaction. N’importe quelle transaction peut porter un hachage dans son message, et ce hachage peut être recherché.

Comme ces enregistrements font partie de la chaîne, tous les nœuds donnent la même réponse à leur sujet.

La page /verify

Chaque passerelle sert une page à /verify. Déposez-y un fichier et la page :

  1. calcule le hachage SHA-256 dans votre navigateur ; le fichier n’est jamais téléversé ;
  2. recherche ce hachage dans la liste des versions (/api/v1/release/list) et dans les messages de transaction (/api/v1/search/transactions?q= suivi du hachage) ;
  3. indique l’un de trois statuts : sur la chaîne lorsque le hachage est enregistré sur la chaîne ; ancrage en attente lorsque le fichier est censé être adossé à la chaîne mais que son hachage n’y est pas enregistré, si bien que seule la passerelle s’en porte garante ; révoqué lorsque l’autorité de publication l’a retiré.

Au chargement, la page lit aussi l’autorité de publication en vigueur (/api/v1/release/authority) et vous avertit lorsqu’un changement d’autorité est en attente. Un fichier révoqué est un fichier qui a été retiré ; supprimez-le.

Le fichier est haché avec SHA-256 dans le navigateur, sans jamais être téléversé, et le hachage est recherché dans le registre des versions ou dans une transaction qui le porte ; ou vérifiez-le vous-même avec sha256sum et la liste des versions
Le fichier est haché avec SHA-256 dans le navigateur, sans jamais être téléversé, et le hachage est recherché dans le registre des versions ou dans une transaction qui le porte ; ou vérifiez-le vous-même avec sha256sum et la liste des versions

Sans le site web

Vous n’avez même pas besoin de faire confiance à la page. Calculez vous-même le hachage et demandez la liste des versions à n’importe quel nœud, y compris un nœud que vous exploitez vous-même :

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

Si le hachage que vous avez calculé figure dans la liste pour une version qui n’a pas été révoquée, vous détenez le fichier publié. Pour un paquet, vérifiez le hachage de son fichier SHA256SUMS par rapport à la liste, puis lancez sha256sum -c SHA256SUMS à côté des fichiers du paquet. Chaque nœud répond à partir de la même chaîne : vous n’avez à faire confiance à aucun site web en particulier.

Ce que publie la passerelle

Chaque passerelle publie un manifeste de vérification contenant le hachage du fichier du portefeuille et celui de son archive zip. Le zip est construit de façon reproductible : les mêmes fichiers donnent toujours la même archive, et donc le même hachage, ce qui permet à n’importe qui de la reconstruire et de comparer.

Ce qui ne prouve rien

  • Un cadenas (HTTPS) prouve seulement quel site web vous avez atteint, pas ce que fait le fichier.
  • La taille du fichier est facile à copier.
  • Un solde qui semble correct ne dit rien de l’endroit où votre phrase de récupération partira ensuite.

Seul le hachage, comparé à la chaîne, vous dit que le fichier est bien celui qui a été publié.

Voir aussi