Author

Topic: Mais pourquoi nonce ? (Read 1214 times)

member
Activity: 229
Merit: 71
February 22, 2016, 08:13:40 AM
#6
Merci pour les réponses.

J'ai trouvé de bons arguments dans cet article :  http://www.e-ducat.fr/la-fin-du-travail/

Extrait : "....Prenons par exemple, l’idée de remplacer la preuve de travail (proof of work ou PoW en abrégé) par la preuve de possession (proof of stake ou PoS).
La proposition est séduisante car un algorithme PoS consomme théoriquement beaucoup moins d’énergie que l’algorithme PoW.
Le protocole PoS confie la validation des blocs de transactions aux possesseurs des coins, en fonction de la quantité de coins qu’ils détiennent et de leur durée de détention....etc"

legendary
Activity: 1652
Merit: 1002
Bitcoin enthusiast!
February 18, 2016, 08:36:56 AM
#5
Sans le nonce, tu devrais modifier le nouveau block à chaque tentative pour essayer d'avoir un bon hash (et donc enlever ou rajouter des transaxion pour que le contenu du block change, et que le hash soit différent).
En utilisant un nonce, je peux faire autant d'essais que je veux sans modificer les autres données (ici le hash du précédent block et le contenu du nouveau).

Mais ce que j'aimerai comprendre c'est de savoir si techniquement Satoshi aurait pu se contenter de seulement verrouiller la blockchain sans système de récompense et création. En d'autre termes, est-ce que la preuve de travail, avec cette loterie et ce nonce, est indispensable techniquement parlant.
Le principe c'est le proof of work, pour trouver un block il faut "cramer" de l'énergie ce qui permet à n'importe quel acteur de participer du moment qu'il a de l'énergie à cramer.
Ensuite qu'on utilise du sha256 ou un autre algo ça ne change pas grand chose et c'est plus un détail, le nonce ici est juste un des éléments qui nous permet de mettre en place la preuve de travail.

Par exemple Satoshi aurait pu se contenter de décider quelque chose comme : lorsque le bloc courant contient 2000 transactions, il est verrouillé immédiatement avec le hash du bloc précédent, sans attendre 10 mn. Quitte à récompenser les mineurs et à créer des bitcoins au moyen d'un autre processus.
Ça aurait pu être le cas, mais il y aurait quelques problemes :
 - qu'est ce qui empeche un mineur de mettre pleins de tx à la con pour arriver à 2000 pour pouvoir vérouiller le bloc
 - si il n'y a pas de limite, qu'est ce qui empeche quelqu'un de générer 2000 tx/sec donc 1 block toutes les secs ? (bon après on rejoint un autre débat, celui de la blocksize :-)
member
Activity: 229
Merit: 71
February 18, 2016, 08:03:57 AM
#4
J'ai compris le système du minage et de la récompense.

La question est de comprendre pourquoi le minage est ainsi fait. À priori il a 2 fonctions :
1. Une fonction technique : imposer un sceau crypté pour valider et verrouiller l'ensemble des blocs.
2. Une fonction économique : récompenser les mineurs et créer des bitcoins toute les 10 mn.

Mais ce que j'aimerai comprendre c'est de savoir si techniquement Satoshi aurait pu se contenter de seulement verrouiller la blockchain sans système de récompense et création. En d'autre termes, est-ce que la preuve de travail, avec cette loterie et ce nonce, est indispensable techniquement parlant.

Par exemple Satoshi aurait pu se contenter de décider quelque chose comme : lorsque le bloc courant contient 2000 transactions, il est verrouillé immédiatement avec le hash du bloc précédent, sans attendre 10 mn. Quitte à récompenser les mineurs et à créer des bitcoins au moyen d'un autre processus.
legendary
Activity: 1260
Merit: 1046
February 18, 2016, 03:39:46 AM
#3
En substance et l'état de mes connaissances/compréhension :

La difficulté détermine un nombre.
Le hash d'un bloc est également un nombre.

Le premier mineur dont le hash du bloc en cours est inférieur au nombre déterminé par la difficulté remporte la récompense (25 btc).
Comme le nombre représenté par le hash d'un bloc peut avoir n'importe quelle valeur entre son minimum (256 bits à 0) et son maximum (256 bits à F), la probabilité qu'il soit inférieur à une valeur donnée est directement proportionnelle au niveau de cette valeur.
En cela, c'est bien une loterie car les mineurs n'ont aucun contrôle sur le nombre issus de leur hash du bloc en cours.

A noter l'abus de langage/d'usage sur la difficulté :
 - dans le langage courant, plus la difficulté est élevée et plus il va falloir de puissance de hash pour avoir la chance de gagner la récompense de minage,
 - au niveau algorithmique, c'est l'inverse ; plus le nombre issu de la difficulté est grand et plus il va être facile de gagner lé récompense de minage.
C'est pour cela que j'écris "nombre issu de la difficulté"
legendary
Activity: 1512
Merit: 1012
February 18, 2016, 03:04:12 AM
#2
et comment tu fais quand tu as 5 personnes qui trouvent la bonne solution ... ?
le minage est une loterie.
member
Activity: 229
Merit: 71
February 18, 2016, 12:40:45 AM
#1
Bonjour,
Si j'ai bien compris on a, en simplifiant : [hash du bloc précédent] + [le contenu du nouveau bloc] + [nonce] = [hash du nouveau bloc]. Le challenge est de trouver [nonce] tel que [hash du nouveau bloc] < [0x000000123456...] en moins de 10mn.
Pourquoi Satoshi a imposé une telle complication ?
Est ce que par exemple [hash du bloc précédent] + [le contenu du nouveau bloc] = [hash du nouveau bloc] n'aurait pas été suffisant pour authentifier et verrouiller la chaine ?

Jump to: