Bitcoin Forum
June 04, 2024, 10:37:15 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Je ne comprends pas le principe du "minage"  (Read 211 times)
Spermicide (OP)
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
January 15, 2018, 09:35:03 PM
 #1

Bonjours à tous. J'ai lu quelques tutos d'introduction à la blockchain et je n'ai pas compris le principe du minage.

Sur le tuto openclassroom je lis
Quote
Que font les ordinateurs qui minent ? Ils essaient de résoudre un problème mathématique. Plus précisément, ils essaient de trouver "le nombre qui, hashé, donne un nombre commençant par une longue série de zéros
Pourriez-vous m'expliquer l'intérêt de résoudre ce problème mathématique ? Qu'a t'il à voir exactement avec la blochain ?

Je sais que dans la blockchain, chaque block contients un hash du block précédent. Est-ce que ce problème mathémathique à résoudre y est relié ?


Pourquoi faut-il que les mineurs trouvent un nombre qui hashé commence par des zéros ? Pourquoi des zéros ? A quoi ce nombre correspond il exactement ? Pourquoi une fois trouvé cela permet il de créer un nouveau block ?


J'ai également une question concernant le problème de de la double dépense à éviter.  Toujours sur le tuto openclassroom je trouve ceci:

Quote
"En pratique avec le Bitcoin, on doit attendre qu'une transaction soit validée. La validation d'une transaction n'est pas instantanée avec le Bitcoin. On considère qu'il faut attendre que plusieurs blocs aient été ajoutés à la blockchain pour confirmer la transaction (ce qui peut prendre quelques dizaines de minutes !). Ca veut dire qu'à partir du moment où vous payez, le vendeur va attendre l'arrivée de nouveaux blocs pour être sûr que vous n'avez pas essayé de tromper le système"

Cela signifie que s'il faut  attendre que 3 blocs soient apparus pour valider la transaction celle ci apparaitra dans le 4ème bloc ?  Pourquoi et comment l'arrivée de ces nouveaux blocs permet de sécuriser la transaction et lutter contre la double dépense ?

Je vous remercie par avance Smiley
alphateam
Hero Member
*****
Offline Offline

Activity: 1036
Merit: 531


View Profile
January 16, 2018, 04:40:20 PM
 #2

Tiens, dejà pour répondre à ta question, je vais te donner un lien qui devrait peut etre eclaircir un peu plus les choses pour le minage du moins (je trouve que c'est bien expliqué)

https://bitcoin.fr/minage/


oktapodia
Member
**
Offline Offline

Activity: 122
Merit: 10


View Profile
January 16, 2018, 05:28:12 PM
 #3

Je ne suis pas un expert donc je peux me tromper sur certains points mais globalement:
Quote
Pourriez-vous m'expliquer l'intérêt de résoudre ce problème mathématique ? Qu'a t'il à voir exactement avec la blochain ?
Resoudre ce probleme est justement la blockchain, si ce probleme n'est pas resolu, alors la transaction ne peut etre ajoute a la blockchain, c'est ce qui permet de proteger des hacks (par exemple, si on pouvait ajouter n'importe quoi, n'importe qui pourrait mettre une transaction te volant tous tes coins).

Quote
Je sais que dans la blockchain, chaque block contients un hash du block précédent. Est-ce que ce problème mathémathique à résoudre y est relié ?
C'est aussi une securite de la blockchain contre les hacks, chaque block contient une date, un numero de block (incremental), le hash du parent, toutes les transactions qui sont arrives depuis le precedent block miné (pas 100% sur a propos du nombre de transaction depuis le block miné) et un nonce (de base 0) (voir le minage). Avoir le hash du block precedent permet de securiser la blockchain, vu que c'est quelque chose de decentralise, il faut pouvoir etre sur que la blockchain n'a pas ete modifié par quelqu'un de mal intentionné. Le block du parent est la pour ca, si tu veux modifier par exemple une transaction au block 100 et que nous en sommes maintenant au block 150, tous les blocks apres le block 100 devront a leur tour etre modifie pour respecter la regle des premiers caracteres obligatoire dans le hash.

Le minage:
Un block contient beaucoup d'informations: un nombre de transactions, une date, le numero du block, le hash du parent + un nonce (0 au debut).
Une fonction mathematique est utilise pour calculer ce hash (sha256 pour le bitcoin).
Le but du mineur est de trouver un hash commencant par une suite de caractere definit par le createur de la cryptocurrency (par exemple pour bitcoin, des 0).

Les 0 definissent aussi la difficulte (plus tu dois avoir de 0 au debut, moins tu auras de chance de trouver le bon hash)

La fonction mathematique va passer une premiere fois sur toutes les infos du block, si le hash commence par des 0, la validation est bonne et le peut envoyer le hash a la blockchain (et avoir sa recompense).

Si le hash ne commence pas par des 0, le nonce est incrementé de 1 (il sera donc de 0+1) et la fonction mathematique repasse sur les infos du block (avec le nonce incremente) ce qui fera un hash different du precedent et ainsi de suite.

Quote
Cela signifie que s'il faut  attendre que 3 blocs soient apparus pour valider la transaction celle ci apparaitra dans le 4ème bloc ?  Pourquoi et comment l'arrivée de ces nouveaux blocs permet de sécuriser la transaction et lutter contre la double dépense ?
La blockchain est quelque chose de decentralise, pour etre sur que rien n'a ete alteré, il va falloir que de nouveau block soit miné pour valider le parent (comme dit plus haut, il est valide et ne pourra donc plus etre modifié sans modifier tous les blocks suivants). Actuellement la validation est de 6 confirmations generalement pour le bitcoin.

En esperant avoir ete assez clair Smiley

Spermicide (OP)
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
January 28, 2018, 11:43:41 PM
 #4

Merci pour ta réponsé détaillée oktapodia  Smiley

Quote
Resoudre ce probleme est justement la blockchain, si ce probleme n'est pas resolu, alors la transaction ne peut etre ajoute a la blockchain, c'est ce qui permet de proteger des hacks (par exemple, si on pouvait ajouter n'importe quoi, n'importe qui pourrait mettre une transaction te volant tous tes coins).


Oui ça j'ai bien compris mais c'est les données intrinsèques du problème qui m'intéressent, en quoi ces données sont-elles liées à la blockchain d'où sortent-elles précisément ?


Quote
Le minage:
Un block contient beaucoup d'informations: un nombre de transactions, une date, le numero du block, le hash du parent + un nonce (0 au debut).
Une fonction mathematique est utilise pour calculer ce hash (sha256 pour le bitcoin).
Le but du mineur est de trouver un hash commencant par une suite de caractere definit par le createur de la cryptocurrency (par exemple pour bitcoin, des 0).

Les 0 definissent aussi la difficulte (plus tu dois avoir de 0 au debut, moins tu auras de chance de trouver le bon hash)

La fonction mathematique va passer une premiere fois sur toutes les infos du block, si le hash commence par des 0, la validation est bonne et le peut envoyer le hash a la blockchain (et avoir sa recompense).

Si le hash ne commence pas par des 0, le nonce est incrementé de 1 (il sera donc de 0+1) et la fonction mathematique repasse sur les infos du block (avec le nonce incremente) ce qui fera un hash different du precedent et ainsi de suite.

Ici tu parles bien du hash du block n+1 (celui destiné à être crée par les mineurs) ? Je ne comprends justement pas tout ce que tu viens d'expliquer ^^ Le hash c'est bien le résultat de toutes les infos du bloc passées à la moulinette de la fonction mathématique (sha256) si j'ai bien compris ? Et à partir du hash on ne peut pas retrouver les info d'origine en revanche on peut vérifier que les info d'origines sont correctes en les "hash" avec le sha256 et on tombant donc sur le hash que le mineur aura trouvé.

Maintenant ce que je ne comprends pas c'est comment fonctionne ce "hash",pourquoi diables ces foutus zéros au début (la difficulé de trouver le hash mis à part). Quand on passe les info du block dans la moulinette du sha256 on est pas censé trouvé forcément le même hash ? Pourquoi et comment ça peut varier et commencer avec des zeros ou sans zero ? Qu'est ce qui est calculé exactement, qu'elles sont les paramètres et les données du calcul des mineurs ?

Quote
La blockchain est quelque chose de decentralise, pour etre sur que rien n'a ete alteré, il va falloir que de nouveau block soit miné pour valider le parent (comme dit plus haut, il est valide et ne pourra donc plus etre modifié sans modifier tous les blocks suivants). Actuellement la validation est de 6 confirmations generalement pour le bitcoin.

En esperant avoir ete assez clair Smiley


Oui mais comment de nouveaux blocks peuvent être minés si le parent n'est pas validé ? Ca signifie que s'il faut 6 nouveaux block pour valider un block, les 6 nouveaux blocks ne sont pas validés eux même ?
scutzi128
Sr. Member
****
Offline Offline

Activity: 476
Merit: 283


View Profile
January 29, 2018, 12:17:55 AM
 #5

sinon télécharge le pdf (google, facile à trouver) de Mastering Bitcoin (pdf de 283 pages), tu y trouveras toutes les réponses à tes questions
oktapodia
Member
**
Offline Offline

Activity: 122
Merit: 10


View Profile
January 29, 2018, 11:31:22 AM
 #6



Oui ça j'ai bien compris mais c'est les données intrinsèques du problème qui m'intéressent, en quoi ces données sont-elles liées à la blockchain d'où sortent-elles précisément ?

C'est lié a la blockchain car c'est décentralisé, n'importe quel mineur dans le monde peut découvrir ceci, que veux-tu dire par "d'ou sortent-elles"?

Ici tu parles bien du hash du block n+1 (celui destiné à être crée par les mineurs) ? Je ne comprends justement pas tout ce que tu viens d'expliquer ^^ Le hash c'est bien le résultat de toutes les infos du bloc passées à la moulinette de la fonction mathématique (sha256) si j'ai bien compris ?
Oui

Quote
Et à partir du hash on ne peut pas retrouver les info d'origine en revanche on peut vérifier que les info d'origines sont correctes en les "hash" avec le sha256 et on tombant donc sur le hash que le mineur aura trouvé.
Faux! On peut toujours retrouver toutes les infos car c'est dans la blockchain et ce n'est pas crypté, c'est le même principe que si tu signes un document, on sait qui tu es mais (dans un monde genial) personne ne peut reproduire ta signature sur ce contrat et donc se faire passer par toi.

Quote
Maintenant ce que je ne comprends pas c'est comment fonctionne ce "hash",pourquoi diables ces foutus zéros au début (la difficulé de trouver le hash mis à part).
Ca aurait pu etre un autre caractere, cela est definit lors de la creation de la blockchain par le proprietaire (ethereum c'est 0x)

Quote
Quand on passe les info du block dans la moulinette du sha256 on est pas censé trouvé forcément le même hash ? Pourquoi et comment ça peut varier et commencer avec des zeros ou sans zero ? Qu'est ce qui est calculé exactement, qu'elles sont les paramètres et les données du calcul des mineurs ?
J'ai expliqué tout ca dans le second block que tu as quote, le hash est le meme si les datas à l'intérieur du block sont les memes, c'est pour ca qu'on a le nonce qui lui est uniquement un nombre incrémenté à partir de 0, à chaque incrémentation, le hash va donc changer avec potentiellement un 0 au debut de ce nouveau hash. Les parametres d'entrée sont toutes les données du block.

Quote
Oui mais comment de nouveaux blocks peuvent être minés si le parent n'est pas validé ? Ca signifie que s'il faut 6 nouveaux block pour valider un block, les 6 nouveaux blocks ne sont pas validés eux même ?

Si le block n'est pas miné, il n'est pas dans la blockchain seul les blocks minés sont dans la blockchain, si 2 blocks sont en train d'etre miné avec le meme index, c'est le plus rapide a etre miné + push dans la blockchain qui gagne et le calcul devra etre refait avec un nouvel index (rejected).

Les 6 nouveaux blocks seront validés chacun leur tour et poussé dans la blockchain.

CarlOrff
Sr. Member
****
Offline Offline

Activity: 826
Merit: 440



View Profile
January 29, 2018, 01:51:46 PM
 #7

Bonjours à tous. J'ai lu quelques tutos d'introduction à la blockchain et je n'ai pas compris le principe du minage.

Sur le tuto openclassroom je lis
Quote
Que font les ordinateurs qui minent ? Ils essaient de résoudre un problème mathématique. Plus précisément, ils essaient de trouver "le nombre qui, hashé, donne un nombre commençant par une longue série de zéros
Pourriez-vous m'expliquer l'intérêt de résoudre ce problème mathématique ? Qu'a t'il à voir exactement avec la blochain ?

Je sais que dans la blockchain, chaque block contients un hash du block précédent. Est-ce que ce problème mathémathique à résoudre y est relié ?


Pourquoi faut-il que les mineurs trouvent un nombre qui hashé commence par des zéros ? Pourquoi des zéros ? A quoi ce nombre correspond il exactement ? Pourquoi une fois trouvé cela permet il de créer un nouveau block ?


J'ai également une question concernant le problème de de la double dépense à éviter.  Toujours sur le tuto openclassroom je trouve ceci:

Quote
"En pratique avec le Bitcoin, on doit attendre qu'une transaction soit validée. La validation d'une transaction n'est pas instantanée avec le Bitcoin. On considère qu'il faut attendre que plusieurs blocs aient été ajoutés à la blockchain pour confirmer la transaction (ce qui peut prendre quelques dizaines de minutes !). Ca veut dire qu'à partir du moment où vous payez, le vendeur va attendre l'arrivée de nouveaux blocs pour être sûr que vous n'avez pas essayé de tromper le système"

Cela signifie que s'il faut  attendre que 3 blocs soient apparus pour valider la transaction celle ci apparaitra dans le 4ème bloc ?  Pourquoi et comment l'arrivée de ces nouveaux blocs permet de sécuriser la transaction et lutter contre la double dépense ?

Je vous remercie par avance Smiley
Tu liras a peu près partout que le principe du minage dans la PoW consiste à résoudre un problème mathématique très complexe.
C'est complètement faux puisque en fait, le calcul en lui même est très simple et même quasi-instantané.
Ce qui le rend difficile, c'est que le résultat du calcul (un hash) doit être inférieur à une valeur inversement proportionnelle à la difficulté.
Plus il y a de monde qui mine, plus cette difficulté augmente, plus elle augmente, plus le résultat du calcul doit être petit, donc plus les probabilité de trouver un tel résultat sont faibles, d'où l'intérêt d'être capables de fournir le plus grand nombre de résultats à la seconde.

Bitcoin + privacy respect = BitcoinZ (topic BitcoinZ)
The only decentralized crypto that complements Bitcoin on privacy.
You missed Bitcoin in 2009 ? Do not miss BitcoinZ in 2018 !
oktapodia
Member
**
Offline Offline

Activity: 122
Merit: 10


View Profile
January 29, 2018, 03:41:10 PM
 #8

Bonjours à tous. J'ai lu quelques tutos d'introduction à la blockchain et je n'ai pas compris le principe du minage.

Sur le tuto openclassroom je lis
Quote
Que font les ordinateurs qui minent ? Ils essaient de résoudre un problème mathématique. Plus précisément, ils essaient de trouver "le nombre qui, hashé, donne un nombre commençant par une longue série de zéros
Pourriez-vous m'expliquer l'intérêt de résoudre ce problème mathématique ? Qu'a t'il à voir exactement avec la blochain ?

Je sais que dans la blockchain, chaque block contients un hash du block précédent. Est-ce que ce problème mathémathique à résoudre y est relié ?


Pourquoi faut-il que les mineurs trouvent un nombre qui hashé commence par des zéros ? Pourquoi des zéros ? A quoi ce nombre correspond il exactement ? Pourquoi une fois trouvé cela permet il de créer un nouveau block ?


J'ai également une question concernant le problème de de la double dépense à éviter.  Toujours sur le tuto openclassroom je trouve ceci:

Quote
"En pratique avec le Bitcoin, on doit attendre qu'une transaction soit validée. La validation d'une transaction n'est pas instantanée avec le Bitcoin. On considère qu'il faut attendre que plusieurs blocs aient été ajoutés à la blockchain pour confirmer la transaction (ce qui peut prendre quelques dizaines de minutes !). Ca veut dire qu'à partir du moment où vous payez, le vendeur va attendre l'arrivée de nouveaux blocs pour être sûr que vous n'avez pas essayé de tromper le système"

Cela signifie que s'il faut  attendre que 3 blocs soient apparus pour valider la transaction celle ci apparaitra dans le 4ème bloc ?  Pourquoi et comment l'arrivée de ces nouveaux blocs permet de sécuriser la transaction et lutter contre la double dépense ?

Je vous remercie par avance Smiley
Tu liras a peu près partout que le principe du minage dans la PoW consiste à résoudre un problème mathématique très complexe.
C'est complètement faux puisque en fait, le calcul en lui même est très simple et même quasi-instantané.
Ce qui le rend difficile, c'est que le résultat du calcul (un hash) doit être inférieur à une valeur inversement proportionnelle à la difficulté.
Plus il y a de monde qui mine, plus cette difficulté augmente, plus elle augmente, plus le résultat du calcul doit être petit, donc plus les probabilité de trouver un tel résultat sont faibles, d'où l'intérêt d'être capables de fournir le plus grand nombre de résultats à la seconde.

Voila bien résumé Smiley

Je vais faire mon chasseur de merit mais n'oubliez pas de m'en donner si vous aimez mes réponses Cheesy

etc.etc.
Member
**
Offline Offline

Activity: 228
Merit: 71


View Profile WWW
January 29, 2018, 04:58:34 PM
 #9

Une idée de corruption :

Je télécharge Bitcoin Core avec la blockchain complète.

Je prends par exemple le bloc nr 85150 miné en 2010 qui ne contient que 3 transactions ( https://blockchain.info/fr/block-index/100000 ).

Dans la transaction https://blockchain.info/fr/tx/e70e765843df8d12045ec76b91dd738ee7bd6ec6510cc74b3a4ea1ba8f1949ed je remplace les 2 adresses dépensées 1HvZ...H4Q et 1NTh...kGHp ( 300 et 500 BTC ) par 2 autres adresses du genre paper wallet que j'ai créé, mêmes montants, mais non dépensées.

Dans le bloc, je remplace la transaction d'origine par cette nouvelle transaction. Je modifie donc ma blockchain. Je sais que le hash est différent, mais je laisse comme ça.

Je sais que le minage ne se sert que des derniers blocs, à partir du nr 506000 en janvier 2018.

Je mine, et par chance je gagne le dernier challenge, par exemple le bloc 506700 vers le 29 janvier 2018. Je propose donc le bloc suivant, il est accepté, je touche la prime + les fees.

2 questions :

1/ est ce que ma blockchain corrompue a des chances d'être dupliquée sur un autre serveurs du réseau p2p ?

2/ est ce que tout les blocs de la blockchain sont systématiquement vérifiés ? C'est-à-dire est ce que le minage va se rendre compte que le bloc nr 85150 d'il y a 7 ans est erroné ?



CarlOrff
Sr. Member
****
Offline Offline

Activity: 826
Merit: 440



View Profile
January 29, 2018, 05:42:07 PM
Last edit: January 29, 2018, 07:44:15 PM by CarlOrff
 #10

Bonjours à tous. J'ai lu quelques tutos d'introduction à la blockchain et je n'ai pas compris le principe du minage.

Sur le tuto openclassroom je lis
Quote
Que font les ordinateurs qui minent ? Ils essaient de résoudre un problème mathématique. Plus précisément, ils essaient de trouver "le nombre qui, hashé, donne un nombre commençant par une longue série de zéros
Pourriez-vous m'expliquer l'intérêt de résoudre ce problème mathématique ? Qu'a t'il à voir exactement avec la blochain ?

Je sais que dans la blockchain, chaque block contients un hash du block précédent. Est-ce que ce problème mathémathique à résoudre y est relié ?


Pourquoi faut-il que les mineurs trouvent un nombre qui hashé commence par des zéros ? Pourquoi des zéros ? A quoi ce nombre correspond il exactement ? Pourquoi une fois trouvé cela permet il de créer un nouveau block ?


J'ai également une question concernant le problème de de la double dépense à éviter.  Toujours sur le tuto openclassroom je trouve ceci:

Quote
"En pratique avec le Bitcoin, on doit attendre qu'une transaction soit validée. La validation d'une transaction n'est pas instantanée avec le Bitcoin. On considère qu'il faut attendre que plusieurs blocs aient été ajoutés à la blockchain pour confirmer la transaction (ce qui peut prendre quelques dizaines de minutes !). Ca veut dire qu'à partir du moment où vous payez, le vendeur va attendre l'arrivée de nouveaux blocs pour être sûr que vous n'avez pas essayé de tromper le système"

Cela signifie que s'il faut  attendre que 3 blocs soient apparus pour valider la transaction celle ci apparaitra dans le 4ème bloc ?  Pourquoi et comment l'arrivée de ces nouveaux blocs permet de sécuriser la transaction et lutter contre la double dépense ?

Je vous remercie par avance Smiley
Tu liras a peu près partout que le principe du minage dans la PoW consiste à résoudre un problème mathématique très complexe.
C'est complètement faux puisque en fait, le calcul en lui même est très simple et même quasi-instantané.
Ce qui le rend difficile, c'est que le résultat du calcul (un hash) doit être inférieur à une valeur inversement proportionnelle à la difficulté.
Plus il y a de monde qui mine, plus cette difficulté augmente, plus elle augmente, plus le résultat du calcul doit être petit, donc plus les probabilité de trouver un tel résultat sont faibles, d'où l'intérêt d'être capables de fournir le plus grand nombre de résultats à la seconde.

Voila bien résumé Smiley

Je vais faire mon chasseur de merit mais n'oubliez pas de m'en donner si vous aimez mes réponses Cheesy
Merci pour le compliment.
Par contre, pour le merit, vu que tu quotait ma réponse, j'ai d'abord cru que tu t'attribuait ma réponse, mais je pense en fait que tu faisait allusion uniquement à ta propre réponse... ;-).

Bitcoin + privacy respect = BitcoinZ (topic BitcoinZ)
The only decentralized crypto that complements Bitcoin on privacy.
You missed Bitcoin in 2009 ? Do not miss BitcoinZ in 2018 !
oktapodia
Member
**
Offline Offline

Activity: 122
Merit: 10


View Profile
January 30, 2018, 09:51:12 AM
 #11

Ah oui désolé pour ta réponse je disais juste que c'etait bien résumé!! J'ai bien entendu essayer de faire ma pub pour mes précédents messages ^^' J'aurais du faire une nouvelle réponse désolé de t'avoir mis le doute!

Spermicide (OP)
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
January 31, 2018, 01:01:01 PM
 #12

sinon télécharge le pdf (google, facile à trouver) de Mastering Bitcoin (pdf de 283 pages), tu y trouveras toutes les réponses à tes questions

Merci je viens de le télécharger une longue lecture m'attends Smiley


Quote
C'est lié a la blockchain car c'est décentralisé, n'importe quel mineur dans le monde peut découvrir ceci, que veux-tu dire par "d'ou sortent-elles"?

Ce que je veux dire c'est quelles sont les données du problème précisément ?

Quote
J'ai expliqué tout ca dans le second block que tu as quote, le hash est le meme si les datas à l'intérieur du block sont les memes, c'est pour ca qu'on a le nonce qui lui est uniquement un nombre incrémenté à partir de 0, à chaque incrémentation, le hash va donc changer avec potentiellement un 0 au debut de ce nouveau hash. Les parametres d'entrée sont toutes les données du block.

Merci je pense avoir compris Smiley

Quote
Tu liras a peu près partout que le principe du minage dans la PoW consiste à résoudre un problème mathématique très complexe.
C'est complètement faux puisque en fait, le calcul en lui même est très simple et même quasi-instantané.
Ce qui le rend difficile, c'est que le résultat du calcul (un hash) doit être inférieur à une valeur inversement proportionnelle à la difficulté.
Plus il y a de monde qui mine, plus cette difficulté augmente, plus elle augmente, plus le résultat du calcul doit être petit, donc plus les probabilité de trouver un tel résultat sont faibles, d'où l'intérêt d'être capables de fournir le plus grand nombre de résultats à la seconde.


Ok merci je commence à comprendre Smiley
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!