Le contenu du bloc doit-il être stocké avec la preuve qu’il n’a pas été modifié?

Dave Scotese

Le contenu du bloc doit-il être stocké avec la preuve qu’il n’a pas été modifié?


La réplication du contenu du bloc sur tous les nœuds complets me dérange depuis un certain temps. L’en-tête d’un bloc n’est-il pas suffisant pour que je puisse valider le contenu du bloc si et quand je le reçois (ce que je ne ferais pas jusqu’à ce que quelque chose me dise que j’ai besoin de ce bloc)? Lorsque j’obtiens des blocs, je peux les enregistrer, mais je pense qu’il y a un grand nombre de blocs dont je n’ai pas besoin. Je serais prêt à payer une somme modique pour obtenir un blocage de quelqu’un d’autre si cela signifie que j’obtiens indéfiniment 20 Go supplémentaires sur mon disque dur.

Je suppose que c’est un peu comme un client SPV, mais je n’ai vu aucun compromis, où un client a un tas de blocs apparemment aléatoires (mais ils ne sont pas aléatoires – ils contiennent toutes les transactions nécessaires pour prouver les avoirs actuels du personne qui le dirige). Si un tel client existait, il pourrait conserver et mettre à jour l’ensemble UTXO à mesure que chaque nouveau bloc arrive, tous les en-têtes de bloc, les blocs importants pour les connaissances de l’opérateur et les blocs que l’opérateur pense être utiles.

Si nous faisons confiance au réseau pour fournir la puissance de hachage qui empêche les modifications des données dans la blockchain, ne pouvons-nous pas également faire confiance au réseau pour fournir les données lui-même? Hashpower est précieux en ce moment en raison de A) la subvention et B) des frais de transaction. Il est logique pour moi que l’espace de stockage soit également précieux. Mais alors que les frais de transaction sont généralement conçus pour couvrir ce coût, ils sont affectés à la puissance de hachage plutôt qu’à ceux qui fournissent le stockage.

Enfin, si j’avais l’ensemble UTXO défini à partir d’un bloc précédent, et que j’ai observé toutes les modifications apportées à celui-ci représenté par tous les blocs depuis (sans nécessairement les stocker de manière permanente), alors je peux déterminer si une transaction entrante est ou non valide. Je pense que les exigences de stockage pour un client qui fait cela sont bien inférieures à 10% des exigences de stockage d’un nœud complet en ce moment.

Suis-je en train de manquer quelque chose?

Réponses


 Pieter Wuille

On dirait que vous décrivez un nœud élagué. À partir de Bitcoin Core 0.11, vous pouvez l’exécuter avec l’option expérimentale -prune=N , qui ne conserve que les N derniers mégaoctets (min 550) de blocs, plus l’ensemble UTXO. En 0.11, il n’est utile que pour certaines commandes RPC et minage, mais il désactive le portefeuille en raison de son caractère trop expérimental. En 0.12, la fonction portefeuille sera disponible en mode élagué.

Tous les blocs et en-têtes sont toujours téléchargés et entièrement validés, mais les anciens blocs sont parfois supprimés du disque.

De plus, je pense qu’il est un peu incorrect de dire que le pouvoir de hachage empêche la modification de la chaîne de blocs. Les chaînes de blocs sont au moyen de hachage toujours immuables et uniquement ajoutées. Cependant, en présence de plusieurs chaînes de blocs concurrentes valides , la plupart des puissances de hachage décident laquelle doit être acceptée.

Nick ODell

Droite. Mais il y a des choses qui ne peuvent pas être reconstruites à partir des en-têtes, comme les fichiers d’annulation.

 

#la, #pas, avec, bloc, contenu, doit-il, du, été, être, Le, modifié, n’a, Preuve, qu’il, Stocké

 

yahoo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *