Ce qu’est ZooBC
ZooBC est une blockchain publique dotée de sa propre pièce, le ZBC. N’importe qui peut ouvrir un compte, envoyer des transactions et faire tourner un nœud qui vérifie chaque bloc. Son consensus, la preuve de participation (Proof of Participation), n’a pas de minage : les blocs sont produits à tour de rôle par des nœuds enregistrés tirés au sort, et les nouvelles pièces vont aux nœuds qui accomplissent le travail de relais des données pour le réseau.
Une chaîne publique avec sa propre pièce
ZooBC n’est pas un jeton sur un autre réseau. Il a sa propre chaîne, ses propres nœuds et sa propre pièce native, le ZBC, qui paie les frais de transaction, les mises des nœuds et les loyers. Personne n’a besoin d’une autorisation pour suivre la chaîne ou la vérifier : chaque bloc, chaque solde et chaque transaction est public, et l’API de n’importe quel nœud répond à tout le monde (comptes et adresses).
Il existe trois réseaux ZooBC distincts, le devnet, le testnet et le mainnet (devnet, testnet et mainnet). Chacun commence par son propre bloc de genèse, dont le hachage est l’identité de la chaîne.
Comment les blocs sont produits
Un nouveau bloc arrive environ toutes les 15 secondes (blocs et le temps). Les blocs ne se gagnent pas en résolvant des énigmes. Le registre des nœuds est l’ensemble, inscrit sur la chaîne, des nœuds autorisés à produire des blocs, et après chaque bloc un tirage aléatoire fondé sur la graine de ce bloc désigne qui peut produire le suivant (tirage). Chaque nœud peut refaire le tirage et obtenir la même réponse : un bloc venant d’un nœud qui n’a pas été tiré est donc refusé. Chaque siège actif a la même chance au tirage : le matériel, le solde et la mise n’y changent rien.
La preuve de participation mesure aussi le travail qui maintient un réseau en vie : transmettre les blocs et les transactions aux autres nœuds. Lorsqu’un nœud enregistré reçoit des données d’un autre nœud enregistré, il signe un reçu pour celles-ci, et les reçus qu’un nœud peut présenter font évoluer son score de participation. Le score pondère la loterie coinbase qui répartit les nouvelles pièces et les frais de chaque bloc. La sécurité repose sur les signatures Ed25519 et le hachage SHA3-256, pas sur de l’énergie dépensée.
Ce qu’est un nœud
Un nœud est le logiciel ZooBC qui tourne sur un ordinateur. Il télécharge la chaîne, vérifie chaque bloc et chaque transaction selon les mêmes règles que tous les autres nœuds, et conserve l’état qui en résulte : les soldes, les jetons, le registre des nœuds et le reste. Il sert une API HTTP publique (API du nœud) et la page du portefeuille officiel à /wallet (obtenir un portefeuille et le protéger).
Un nœud peut participer à deux niveaux :
- Suiveur. N’importe qui peut faire tourner un nœud qui ne fait que suivre et vérifier la chaîne. Il permet à son propriétaire de tout vérifier sans faire confiance à personne, mais il ne produit aucun bloc.
- Producteur. Un nœud qui rejoint le registre des nœuds peut produire des blocs. Son propriétaire enregistre la clé de nœud depuis un compte ordinaire, verrouille une mise et attend dans la file d’attente jusqu’à ce que le nœud soit admis (enregistrer un nœud). Dès lors, le nœud est tiré pour produire des blocs, relaie les données vers les pairs que le protocole lui assigne, signe des reçus pour ce qu’il reçoit, et prend part aux nouvelles pièces selon son score.
Un portefeuille n’est pas un nœud : c’est un client qui dialogue avec l’API d’un nœud. Et aucun nœud ZooBC ne mine.
Des fonctionnalités intégrées au protocole
ZooBC n’a pas de machine virtuelle pour le code des utilisateurs, ni EVM ni gas. Chaque fonctionnalité est un type de transaction intégré, avec une disposition d’octets fixe et des règles fixes : envoyer des ZBC, émettre un jeton, placer un ordre sur un marché, créer un séquestre, stocker un fichier, lier des comptes en un groupe, programmer des paiements, et plus encore. À partir de la version 0.5.8, le protocole définit 73 numéros de types de transactions (transactions, ce que vous pouvez faire sur ZooBC).
C’est un compromis délibéré. Chaque nœud connaît à l’avance tout ce qu’une transaction peut faire et l’applique exactement de la même façon : l’effet d’une transaction ne dépend donc jamais de qui la traite, et un portefeuille peut calculer les frais minimaux avant de signer. En contrepartie, un nouveau type de fonctionnalité arrive avec une version du protocole (versions et mises à jour) plutôt que par le déploiement d’un contrat.
Des règles qu’aucune clé ne peut changer
Les règles d’une chaîne viennent avec sa genèse et avec le logiciel du nœud. À partir de la version 0.5.8, une chaîne compte 121 règles de consensus, toutes en vigueur dès la hauteur 0. Aucune clé ne peut modifier une règle, un paramètre ou un solde en signant un message : les soldes ne changent que par des transactions que chaque nœud valide, et les sièges du registre ne peuvent déplacer que quelques prix à l’intérieur de bornes fixes (votes de prix). La ZooBC Foundation détient les premiers sièges de chaque chaîne et publie les outils en ligne de commande, mais elle n’a pas de clé maîtresse.