Comment puis-je savoir qu'un nœud fournit la blockchain précise


Edit : cette réponse est écrite en supposant que vous posez des questions sur les implémentations « SPV » ou « light wallet », et non sur une implémentation complète du nœud.

Comment puis-je savoir que ce nœud particulier (malveillant) possède la blockchain la plus récente ou la plus valide ?

Il s’agit de deux questions distinctes : êtes-vous à jour ? Et l'info est-elle valable ?

Comment puis-je savoir qu'un nœud fournit la blockchain précise

À jour: il est possible pour les portefeuilles légers d'interroger les données de plusieurs homologues du réseau, bien que toutes les implémentations ne le fassent pas. Cela permet de garantir qu'aucun nœud ne « ment par omission », ce qui signifie qu'il vous cache des informations (informations connexes intéressantes : les « preuves de fraude » sont apparemment très, très difficiles à élaborer. Il s'agit d'un domaine de recherche en cours dans le domaine) . Si vous êtes uniquement connecté à des nœuds malveillants, cela peut devenir un problème, même si en pratique ce n'est pas un problème difficile à surmonter (voir : Attaques Sybil / Attaques Eclipse).

Certains portefeuilles légers se connecteront à un serveur géré par les développeurs de ce portefeuille, tandis que d'autres se connecteront directement à un ou plusieurs nœuds du réseau Bitcoin. Il est probablement préférable d'utiliser un service qui ne code pas en dur son propre serveur dans le portefeuille, mais s'il suit un schéma de portefeuille HD standard, il ne devrait y avoir aucun problème à importer votre phrase de départ dans un autre portefeuille au cas où ce service tomberait en panne.

Je pense que le meilleur conseil est d'exécuter votre propre nœud. De nombreux portefeuilles légers vous permettent de pointer votre portefeuille vers votre propre nœud comme option de configuration manuelle. Cela vous donne la souveraineté et une confidentialité considérablement accrue.

Validité: les portefeuilles légers fonctionnent en téléchargeant la chaîne d'en-têtes de bloc, puis en demandant des informations relatives à l'adresse du portefeuille aux nœuds connectés. En téléchargeant uniquement les blockheaders, l'utilisation des ressources reste suffisamment faible pour que le portefeuille fonctionne sur mobile (moins de 100 Mo pour l'ensemble de l'historique Bitcoin, actuellement).

L'en-tête contient la racine merkle de la transaction, qui peut être utilisée pour vérifier localement qu'une transaction valide est incluse dans un certain bloc, sans avoir à le faire. tous des données de ce bloc. Un nœud servira la transaction en question au portefeuille, ainsi que les hachages intermédiaires dans l'arborescence Merkle. Cela permet au nœud de recalculer localement la racine merkle, prouvant que la transaction est confirmée sur le réseau bitcoin (et donc valide selon les règles du réseau). Si ne serait-ce qu'une seule information est modifiée, la racine merkle sera calculée différemment et le portefeuille saura que la transaction effectuée n'est pas valide.