The French wiki is no longer maintained and is in read-only mode. Information contained within may be inaccurate or outdated. Please go to the English wiki for more up to date information.

Traduction automatique de l'anglais : Le wiki français n'est plus maintenu et est en mode lecture seule. Les informations qu'il contient peuvent être inexactes ou obsolètes. Veuillez consulter le wiki anglais pour des informations plus à jour.

Clients légers

De Bitcoin Wiki
Aller à la navigation Aller à la recherche

Récement, un certain nombre de clients bitcoins qui ne copient pas la totalité de la blockchain ont vu le jour. Cette page traite de ces clients connus sous le nom de "clients légers"

Cette page est destinée à faire la part des choses entre la sécurité, la confiance, et la praticité des différents modes de fonctionnements des portefeuilles.


La hauteur des blocs et la profondeur des blocs

Il est important de faire la distinction entre la vérification de la hauteur d'un bloc et la vérification de la profondeur de ce même bloc.

Un client vérifie la hauteur H d'un bloc en vérifiant qu'il y a H bloc avant lui, que tout ces H blocs sont tous bien formé et qu'ils obéissent à la règle de l'ajustement de la de difficulté. Actuellement, seul le client Satoshi, libbitcoin, et BTCD vérifient la Hauteur. Les clients lourds tiennent compte de cette méthode pour valider une transaction. La hauteur d'un bloc est le point d'ancrage fondamental de la sécurité du système Bitcoin.


Un client vérifie la profondeur D d'un bloc en vérifiant qu'il y a un nombre D de blocs créés après (ces blocs sont également appelés «confirmations»), qui sont tous bien formés. Les clients légers tiennent compte de cette méthode pour valider une transaction. En revanche, tous les clients utilisent la profondeur de bloc quelle branche est la plus longue, en cas d'une division en deux branches(ou plus) de la blockhain.


les clients "lourd"

Les clients complets(on parle aussi de clients "complets") téléchargent l'intégralité de la blockchain, en y incluant la totalité des transactions.

Utilisation de la hauteur d'un bloc comme contrêle de validité

Un client lourd fait confiance a plus longue chaîne de blocs respectant les règles de formations et de difficulté, qu'il peut trouver.

Toute opération sur la chaîne la plus longue bien formé est considéré comme valide. Par conséquent, la validité d'une transaction est déterminé par sa hauteur - c'est à dire le nombre de blocs devant elle. La profondeur d'une transaction (le nombre de blocs après elle) est utilisée pour déterminer la probabilité de l'opération d'être invalidée à cause de l'apparition d'une branche plus longue


Les clients "légers"

Les clients légers (on parle aussi de clients "Headers Only") téléchargent une copie complète des en-têtes de tous les blocs de la blockchain. Cela signifie que les exigences de téléchargement et de stockage augementent de manière linéaire avec le temps écoulé depuis bitcoin a été inventé; il serait préférable d'avoir une augementation à l'échelle logarithmique, ou même constante.


La vérification simplifiée de paiement (SPV)

Le fonctionnement est décrit dans la section 8 du livre blanc bitcoin original.

La profondeur d'un bloc en guise de controle de validité

Comme l'écrit Satoshi, "[le client léger] ne peut pas vérifier la transaction de lui-même, mais en le reliant à un endroit de la chaîne, il ne peut voir que d'un noeud de réseau à validé cette transaction, et les blocs ajoutés après confirment que le réseau a accepté celle ci". Si on prend "X" le "nombre de blocs ajoutés après la validation de la transaction", un client léger fait confiance essentiellement sur le fait qu'une transaction profonde de X blocs dans la chaîne n'a pas encore entrées qui sont dépensé plus loin dans la chaîne. Par conséquent, la validité d'une transaction est déterminé par sa profondeur - c'est à dire le nombre de blocs se trouvent après lui.

Ceci est très différent du modèle de confiance dans le client "lourd": le client lourd vérifie que les entrées d'un transaction n'ont pas été dépensés en vérifianr tout le parcourt de toute la chaîne jusqu'à ce point - il n'y a pas besoin de profondeur ici. Le client lourd n'a besoin que d'une seule "confirmation", car il a déjà véréfié que la transaction est valide (pas besoin de double confirmation).

La seule utilisation de la profondeur des blocs dans le client lourd, actuellement, est pour décider laquelle des branches est valides, en cas de division (fork) de la chaine


Le danger des clients légers

Les clients légers sont une préoccupation car ils sont vulnérables a l'attaque par double-dépense par quelqu'un qui contrôle la connexion réseau. Par exemple, supposons que vous êtes dans un café avec wi-fi et que vous payez pour quelque chose en utilisant votre smartphone - le propriétaire du café contrôle la connexion réseau de son établissement. La vérification est fiable tant que le contrôle est effectué par une majorité de neuds honnêtes au sein du réseau, et que le client léger est en mesure de comuniquer avec. Dans un scénario d'attaque par le FAI, ceci n'est pas une propriété de sécurité suffisamment solide. Le FAI n'aurait pas besoin de dominer "le reste du réseau" parce que le client ne serai pas en mesure de communiquer avec lui : Le FAI pourrai aisément détourner le trafic.


[Page en construction]