Aller au contenu

Comprendre la cryptomonnaie - Blog


Messages recommandés

Nouvel article technique : les adresses multisignatures dans Bitcoin 

https://viresinnumeris.fr/les-adresses-multisignatures-dans-bitcoin/

 

Le 04/07/2018 à 14:22, Mister_Bretzel a dit :

Gros article, je prendrai le temps de le lire, parce que là en diagonale j'ai un bon paquet de questions :)

Si tu as des questions (même sans avoir tout lu) n'hésite pas ;) 

Lien vers le commentaire
  • 2 weeks later...
  • 4 weeks later...
  • 2 months later...
11 hours ago, Lugaxker said:

J'ai commis un petit article sur The Bitcoin Standard, le livre de Saifedean Ammous.

https://viresinnumeris.fr/letalon-bitcoin-la-vision-de-saifedean-ammous/

 

Plus je lis tes articles, plus j'apprends des trucs et plus j'ai de questions. Je ferai un pavé un de ces jours :D

Lien vers le commentaire
  • 1 month later...
  • 2 months later...

@Lugaxker

 

Salut, j'ai lu deux de tes articles :

https://viresinnumeris.fr/bitcoin-cles-privees-et-propriete/

https://viresinnumeris.fr/comprendre-bitcoin-cles-et-adresses/

 

C'est intéressant parce que c'est un peu plus poussé que ce qu'on voit d'habitude sans être incompréhensible pour autant. Ceci dit j'ai quand même deux questions :

 

1) Dans le premier article tu écris :

Citation

Plus précisément Bitcoin utilise l’encodage Base58Check qui ajoute une somme de contrôle (checksum) à la fin du nombre en lui-même pour permettre aux logiciels de détecter les erreurs de copie (typiquement une faute de frappe dans une adresse).

puis tu décris le protocole et dit que ça s'applique à la clé privée et aux adresses. Est-ce que ça veut dire qu'on ne peut jamais se tromper d'adresse (de destinataire par exemple) à cause d'une coquille ? Dans le sens où le wallet utilisé et/ou les nœuds du réseau rejetteront la transaction en voyant l'erreur.

 

2) Dans le deuxième article, il y a un truc qui me perturbe avec le schéma à la fin et la phrase :

Citation

Il existe deux formats de clés publiques : l’un non compressé, l’autre compressé ; et par conséquent, deux formats de clés privées et deux adresses différentes.

Autant je comprend qu'on ait obtenu deux adresses et non pas une car on a utilisé deux versions différentes de la clé publique (et on ne peut pas remonter à la clé publique par aucune des deux adresses), autant je ne comprends pas en quoi on a "deux clés différentes" alors que c'est la même encodée de deux manières différentes et qu'on peut remonter à la clé privée non encodée à partir des deux clés privées encodées, si je comprends bien. D'autant plus que les clés publiques, in fine, sont issues d'une fonction sur la clé privée "normale / non-WIF". En quoi la clé WIF compressée est liée en particulier à l'adresse issue de la clé compressée alors que rien ne semble les lier spécifiquement ? Même question pour le côté non compressé.

 

Je suis d'autant plus perturbé que je croyais que sur ce site il y a une clé privée pour deux adresses, ce qui correspond à ce qu'il me semble être logique au vu de tes articles.

 

Tout ça alors que je croyais au départ qu'il y avait 1cléprive-1clépublique-1adresse. Maintenant je vois 1cléprivée-Xclé(s)publique(s)-2adresses sur le site au-dessus et 2clésprivées-2cléspubliques-2adresses sur tes articles. Bref je suis un peu perdu et parce que je suis perdu je sais pas si je suis très clair ^^

Lien vers le commentaire
il y a une heure, Tipiak a dit :

Salut, j'ai lu deux de tes articles :

https://viresinnumeris.fr/bitcoin-cles-privees-et-propriete/

https://viresinnumeris.fr/comprendre-bitcoin-cles-et-adresses/

 

 C'est intéressant parce que c'est un peu plus poussé que ce qu'on voit d'habitude sans être incompréhensible pour autant.

Salut, et merci :) 

 

il y a une heure, Tipiak a dit :

Est-ce que ça veut dire qu'on ne peut jamais se tromper d'adresse (de destinataire par exemple) à cause d'une coquille ? Dans le sens où le wallet utilisé et/ou les nœuds du réseau rejetteront la transaction en voyant l'erreur.

C'est exactement ça ! Ça se fait au niveau du wallet : le logiciel va voir que l'adresse n'est pas valide et il va te le signaler.

 

Les nœuds du réseau par contre ne voient jamais l'adresse en base 58, ils voient juste la donnée brute en hexadécimal à l'intérieur des transactions.

 

il y a une heure, Tipiak a dit :

Autant je comprend qu'on ait obtenu deux adresses et non pas une car on a utilisé deux versions différentes de la clé publique (et on ne peut pas remonter à la clé publique par aucune des deux adresses), autant je ne comprends pas en quoi on a "deux clés différentes" alors que c'est la même encodée de deux manières différentes et qu'on peut remonter à la clé privée non encodée à partir des deux clés privées encodées, si je comprends bien. D'autant plus que les clés publiques, in fine, sont issues d'une fonction sur la clé privée "normale / non-WIF". En quoi la clé WIF compressée est liée en particulier à l'adresse issue de la clé compressée alors que rien ne semble les lier spécifiquement ? Même question pour le côté non compressé.

Oui je pense que je suis pas assez clair là-dessus. C'est pour ça que je parle de format.

 

On part bien d'une seule clé privée qui est un nombre (0x6ef6b8ddb7d09b14a3f5239b1d76ed943bc697765ffd242baf08e532cdbe6197) et on a une seule clé publique qui est un point sur la courbe ( 0xd307d94c5d7cbf8ce1a6b62b3286eafddf13065ad4b101f7b7a222f673f9508c, 0xe9581deecf3bf37220f5c48d427913c522f80b74576d2bd5108055c0d54b88d9 ). Suivant comment on représente la clé publique (non compressée avec 0x04 en préfixe, ou compressée en omettant l'ordonnée du point avec 0x02 ou 0x03 en préfixe), le résultat du hachage n'est pas le même, et on a donc 2 adresses différentes. L'adresse dépend ainsi du format qu'on a choisi pour la clé publique (format non compressé ou compressé).

 

Pour les clés privées, il n'y pas de compression à faire ou non puisqu'il s'agit d'un nombre. Le format de la clé privée, le Wallet Import Format (WIF) est là pour on doit signaler au wallet comment on doit calculer l'adresse à partir de la clé privée (doit-on compresser la clé publique dans le processus ou pas ?). C'est pour ça qu'on rajoute un suffixe 0x01 à la donnée brute de la clé privée lorsqu'on veut calculer l'adresse en compressant la clé publique, ce qui fait que la clé privée en base 58 a un caractère de plus (52 au lieu de 51) et commence par un K ou un L.

 

Donc pour résumer :

- Une seule clé privée, mais deux formats possibles

- Une seule clé publique, mais deux formats possibles

- Deux adresses différentes

 

J'espère que ça t'éclaircit les idées ;)  Pas facile tout ça.

 

il y a une heure, Tipiak a dit :

Je suis d'autant plus perturbé que je croyais que sur ce site il y a une clé privée pour deux adresses, ce qui correspond à ce qu'il me semble être logique au vu de tes articles.

Ça se comprend. Pourtant si tu importes une clé privée comme ça dans un wallet quelconque, il va te sortir la première adresse et pas la deuxième^^ C'est juste une histoire de format.

Lien vers le commentaire

Merci, je crois que j'ai tout compris.

 

il y a une heure, Lugaxker a dit :

Pourtant si tu importes une clé privée comme ça dans un wallet quelconque, il va te sortir la première adresse et pas la deuxième^^ C'est juste une histoire de format.

 

Parce que j'aurais rentré une adresse WIF non compressé (elles commencent toutes par 5 sur ce site et donc on se retrouve avec le "chemin du haut" / "chemin non compressé" sur ton schéma) ou parce que tous les wallets choisissent l'option non compressée par défaut ? Je veux dire : si je prends une des clés privées non compressée du site, que je la convertis en version compressée et que je met cette version compressée dans un wallet, je vais obtenir la deuxième adresse présente sur le site ?

Lien vers le commentaire
Il y a 1 heure, Tipiak a dit :

Je veux dire : si je prends une des clés privées non compressée du site, que je la convertis en version compressée et que je met cette version compressée dans un wallet, je vais obtenir la deuxième adresse présente sur le site ?

Oui voilà c'est ça ;)

 

Il y a 1 heure, Tipiak a dit :

tous les wallets choisissent l'option non compressée par défaut ?

La plupart des wallets d'aujourd'hui fonctionnent avec le format compressé : les txns sont plus petites donc moins coûteuses en frais. 

  • Yea 1
Lien vers le commentaire

@Lugaxker

 

<grammar nazi>

 

Je me permets de te signaler quelques coquilles dans tes articles :

 

https://viresinnumeris.fr/a-propos/

    trop complexe pour --- QUE --- ça puisse marcher

 

https://viresinnumeris.fr/comprendre-bitcoin-cles-et-adresses/

    Ainsi, on peut dire --- QUE --- quelqu’un possède des bitcoins

 

https://viresinnumeris.fr/bitcoin-cles-privees-et-propriete/

    Ainsi, on peut dire --- QUE --- celui qui contrôle ses clés privées

 

https://viresinnumeris.fr/comprendre-bitcoin-chaine-de-blocs-et-minage/

    professionalisée et --- indusTRIALisée ---.
    qui lui permettrait de « voler » quelqu’un avec --- QUI --- elle réalise une transaction
    Les coopératives sont elles aussi (pas de tiret entre elles et aussi)

 

https://viresinnumeris.fr/comprendre-bitcoin-protocole-et-mises-a-jour/

    est --- LE --- fork de Bitcoin Cash
    à quelqu’un d’autre --- SUR --- sur une chaîne

 

https://viresinnumeris.fr/bitcoin-bitcoin-cash-et-gouvernance/
    il y a un mainteneur principal --- QUI --- se charge
    le don en bitcoin est un usage est assez répandu sur le web (soit "et" soit "et est")
    il s’ensuit --- QUE --- l’influence exercée sur eux

 

</grammar nazi>

 

Et sinon je vais sûrement avoir d'autres questions bientôt ^^

 

EDIT : autre remarque, je sais pas si c'est faisable mais ça serait bien qu'on puisse cliquer sur le numéro d'une note en bas de page accéder à la note et inversement, cliquer sur le numéro à côté de la note pour revenir au bon endroit dans le texte.

Lien vers le commentaire

https://viresinnumeris.fr/comprendre-bitcoin-protocole-et-mises-a-jour/

 

Citation

Instaurée pour éviter les attaques par déni de service (DDoS), cette règle interdit aux blocs d’être plus gros qu’un certain seuil, qui est actuellement de 1 Mo (1 000 000 octets) pour BTC et de 32 Mo pour BCH.

 

Un DDoS sur la blockchain ça consisterait à envoyer plein de transactions bidons c'est ça ? (Par exemple 1 satoshi et 1 satoshi de fee) Si c'est ça je vois pas trop en quoi limiter la taille des blocs éviterait les DDoS ou diminuerait leur impact : que ce soit avec des petits blocs ou des gros blocs (voire des blocs sans limite de taille), dans tous les cas les transactions s'accumulerait dans le mempool. Le problème c'est qu'on aurait vite des blocs énormes pour rien c'est ça ?

 

Ce qui m'amène à une autre question aussi : les mineurs peuvent-ils choisir les transactions qu'ils valident / minent ? Est-ce qu'ils peuvent tous refuser les transactions qui ont pour destinataire l'adresse de Roger Ver par exemple ? (en supposant qu'il a une adresse publique sur laquelle il propose qu'on lui fasse des dons par exemple)

Lien vers le commentaire
Il y a 16 heures, Tipiak a dit :

Ce qui m'amène à une autre question aussi : les mineurs peuvent-ils choisir les transactions qu'ils valident / minent ?

Je n'ai pas la réponse, mais je signale qu'installer le logiciel bitcoin est facile (Le soft est petit, et il n'y a PAS besoin de downloader la blockchain).

En tapant bitcoind --help tu vois la liste, bien fournie, des paramétrages possibles.

 

J'ai zieuté vite fait et pas vu de quoi bannir des adresses bitcoin.

(après, on peut bidouiller le code aussi).

 

On peut par contre bannir des noeuds (il y a des listes qui circulent).

 

Lien vers le commentaire
Il y a 17 heures, Tipiak a dit :

Je me permets de te signaler quelques coquilles dans tes articles :

Merci je les vois pas forcément, et je m'en mors les doigts quand je me relis ;) Je modifierai ça ce soir.

 

Il y a 17 heures, Tipiak a dit :

autre remarque, je sais pas si c'est faisable mais ça serait bien qu'on puisse cliquer sur le numéro d'une note en bas de page accéder à la note et inversement, cliquer sur le numéro à côté de la note pour revenir au bon endroit dans le texte.

Oui c'est faisable mais je n'utilise pas de système automatique pour écrire ces notes, donc ça peut s'avérer ennuyeux à faire.

 

Il y a 17 heures, Tipiak a dit :

Un DDoS sur la blockchain ça consisterait à envoyer plein de transactions bidons c'est ça ? (Par exemple 1 satoshi et 1 satoshi de fee) Si c'est ça je vois pas trop en quoi limiter la taille des blocs éviterait les DDoS ou diminuerait leur impact : que ce soit avec des petits blocs ou des gros blocs (voire des blocs sans limite de taille), dans tous les cas les transactions s'accumulerait dans le mempool. Le problème c'est qu'on aurait vite des blocs énormes pour rien c'est ça ?

Non rien à voir avec le nombre de transactions. L'attaque consisterait plus pour un mineur à fabriquer un bloc très gros mais invalide que les autres mineurs mettraient des plombes à vérifier (pour rien du coup).

 

Le spam des transactions lui est gérable grâce aux frais de transactions. Les nœuds du réseau peuvent choisir des frais minimaux en fonction de la taille de la transaction (actuellement c'est 1 satoshi par octet) en dessous desquels ils ne relaient pas la transaction. Les transactions à zéro frais sont tout à fait valides mais sont rejetées par la plupart des nœuds.

 

Il y a 17 heures, Tipiak a dit :

Ce qui m'amène à une autre question aussi : les mineurs peuvent-ils choisir les transactions qu'ils valident / minent ? Est-ce qu'ils peuvent tous refuser les transactions qui ont pour destinataire l'adresse de Roger Ver par exemple ? (en supposant qu'il a une adresse publique sur laquelle il propose qu'on lui fasse des dons par exemple)

Bien sûr que c'est possible. D'où l'intérêt de garder le système assez décentralisé pour qu'il y ait toujours un mineur pour vouloir inclure ce type de transaction.

 

Même si, de façon générale, des mineurs qui se grouperaient pour censurer des transactions ça atteindrait la crédibilité de Bitcoin, et ça devrait faire baisser sa valeur de marché. Ce que les mineurs ne veulent pas en général (tout leur investissement repose sur ça).

Lien vers le commentaire
Il y a 5 heures, Rübezahl a dit :

Je n'ai pas la réponse, mais je signale qu'installer le logiciel bitcoin est facile

 

Il y a 5 heures, Rübezahl a dit :

En tapant bitcoind --help tu vois la liste, bien fournie, des paramétrages possibles.

Tu comprends bien que ces deux phrases sont contradictoires l'une avec l'autre ? ;)

Lien vers le commentaire
il y a 10 minutes, Rocou a dit :

Pourquoi? :huh:

Quand tu installes une app sur ton iPhone (l'archétype de la simplicité), est-ce que tu dois taper une commande pour te lister tous les paramètres possibles, i.e. toute la complexité possible de l'installation (et accessoirement toutes les manières de te planter en l'installant) ? Non.

 

Mettre en place une aide ne rend les choses que marginalement plus simples ; parce que l'existence même d'une page d'aide est la preuve que niveau simplicité de prise en main, le développeur s'est chié dessus. Dans le monde de l'administration système, ce n'est pas un problème, c'est même une bonne chose d'avoir plein d'options ; mais c'est un public très particulier, qui n'est pas la masse des gens. Or, si Bitcoin veut continuer à se développer, il va falloir qu'il s'adresse à la masse des gens.

Lien vers le commentaire
il y a 1 minute, Rincevent a dit :

Quand tu installes une app sur ton iPhone (l'archétype de la simplicité), est-ce que tu dois taper une commande pour te lister tous les paramètres possibles, i.e. toute la complexité possible de l'installation (et accessoirement toutes les manières de te planter en l'installant) ? Non.

 

Mettre en place une aide ne rend les choses que marginalement plus simples ; parce que l'existence même d'une page d'aide est la preuve que niveau simplicité de prise en main, le développeur s'est chié dessus. Dans le monde de l'administration système, ce n'est pas un problème, c'est même une bonne chose d'avoir plein d'options ; mais c'est un public très particulier, qui n'est pas la masse des gens. Or, si Bitcoin veut continuer à se développer, il va falloir qu'il s'adresse à la masse des gens.

 

Je partage à 100% ton opinion sur l'existence même d'une page d'aide. C'est un foirage.

Néanmoins concernant le wallet que @Rübezahl évoque (Electrum?) , ce n'est pas exactement cela. L'application est très simple à installer, il suffit de la déplacer où tu veux. En outre, elle fonctionne immédiatement, sans paramètrage particulier. Mais si l'utilisateur veut aller plus loin, il existe effectivement une tripotée d'options. (Issue de la version initiale de l'application qui fonctionnait, à l'origine, en ligne de commande)

Lien vers le commentaire

Pour en revenir à Bitcoin, la difficulté ne vient plus des outils. Aujourd'hui ils sont très aboutis et à la portée de tous (bien plus facile de réaliser un paiement en BTC qu'un virement via le site bancaire de ta banque).

La difficulté vient de l'approvisionnement en Bitcoins. C'était déjà pénible il y a deux ans mais aujourd'hui c'est devenu encore plus complexe avec le KYC. Il est clair que cela doit décourager plein de gens.

 

La seconde difficulté c'est d'être orienté en toute confiance vers les bons outils. En effet, le néophyte qui va chercher "portefeuille Bitcoin" sur Google, va tomber sur tout et n'importe quoi.

Lien vers le commentaire
il y a 1 minute, Rocou a dit :

C'était déjà pénible il y a deux ans mais aujourd'hui c'est devenu encore plus complexe avec le KYC.

C'est donc un KYC in the balls. ;)

  • Haha 1
Lien vers le commentaire
Il y a 1 heure, Rübezahl a dit :

Précision : je parlais de bitcoind installé sur un PC.

Pas sur un iphone ou truc dans le genre.

Oui oui, je sais. Tu as récemment installé un jeu vidéo sur ton PC ? :)

Lien vers le commentaire
il y a 17 minutes, Rübezahl a dit :

Non, pas depuis longtemps.

il y a 17 minutes, Rübezahl a dit :

Et justement, l'install eg de bitcoin est ama (bien) plus facile qu'une install de jeu sous windoze.

Moi aussi, je me souviens des jeux vidéo où il fallait swapper les disquettes (3"1/2, 1,44 Mo) lors de leur installation. Et tout le monde dans l'industrie a bien compris que c'était pénible pour quiconque n'était pas déjà un peu geek et bien motivé (un des principaux inconvénients du PC face aux consoles, pour sûr). Du coup, il y a eu des avancées dans ce domaine. Essaie un peu Steam, pour voir. ;)

Lien vers le commentaire
Il y a 10 heures, Lugaxker a dit :

L'attaque consisterait plus pour un mineur à fabriquer un bloc très gros mais invalide que les autres mineurs mettraient des plombes à vérifier (pour rien du coup).

Invalide, dans le sens où les transactions seraient invalides ? (parce que si c'est juste l'identifiant du bloc qui est invalide ça se vérifie super rapidement ça si j'ai bien compris : on fait tourner sha256 sur l'entête et on vérifie que c'est compatible avec la valeur cible)

Lien vers le commentaire
il y a 13 minutes, Tipiak a dit :

 Invalide, dans le sens où les transactions seraient invalides ? (parce que si c'est juste l'identifiant du bloc qui est invalide ça se vérifie super rapidement ça si j'ai bien compris : on fait tourner sha256 sur l'entête et on vérifie que c'est compatible avec la valeur cible)

Oui voilà.
 

Bon après, le cœur du problème ne nécessite pas que le bloc soit invalide. Il suffit qu'il soit énorme par rapport à la capacité du réseau pour poser souci (notamment en faisant crasher une bonne partie des nœuds).

Lien vers le commentaire

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...