issue83:qu_est-ce_que_c_est
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
issue83:qu_est-ce_que_c_est [2014/08/28 17:54] – [6] auntiee | issue83:qu_est-ce_que_c_est [2014/09/11 21:30] (Version actuelle) – [12] fcm_-_ekel | ||
---|---|---|---|
Ligne 9: | Ligne 9: | ||
Another essential feature is that each input will give a completely different hash, even for a very small difference. “MyHash” and “myHash” will give completely different outputs.** | Another essential feature is that each input will give a completely different hash, even for a very small difference. “MyHash” and “myHash” will give completely different outputs.** | ||
- | Le record | + | Le grand livre des transactions est protégé par différent mécanismes, |
- | Une fonction de hachage qui est souvent | + | Une fonction de hachage qui est souvent |
- | Un autre de ses caractéristiques essentielles est que chaque entrée | + | Une autre de ses caractéristiques essentielles est que chaque entrée |
===== 2 ===== | ===== 2 ===== | ||
Ligne 37: | Ligne 37: | ||
The problem can only be solved if the entire network can agree on a transaction order.** | The problem can only be solved if the entire network can agree on a transaction order.** | ||
- | Un problème supplémentaire de sécurité : l' | + | Un problème supplémentaire de sécurité : l' |
Maintenir l' | Maintenir l' | ||
- | - transaction 1 se fait et commence à se propager sur le réseau | + | - transaction 1 se fait et commence à se propager sur le réseau |
- | - transaction 2 se fait 10 secondes plus tard et commence à se propager sur le réseau | + | - transaction 2 se fait 10 secondes plus tard et commence à se propager sur le réseau |
- un nœud peer-to-peer beaucoup plus près de l' | - un nœud peer-to-peer beaucoup plus près de l' | ||
Ligne 48: | Ligne 48: | ||
Par exemple, le scénario suivant peut arriver : | Par exemple, le scénario suivant peut arriver : | ||
- | - un acheteur paie un produit (transaction 1, en se référant à la transaction A comme entrée d' | + | - un acheteur paie un produit (transaction 1, en se référant à la transaction A comme entrée d' |
- | - le vendeur envoie le produit | + | - le vendeur envoie le produit |
- | - l' | + | - l' |
- | - à cause de la vitesse de propagation de la transaction sur le réseau, certains nœuds peuvent recevoir la transaction 2 avant la transaction 1 et déclarent donc que la transaction 1 est invalide parce qu'il dépense l' | + | - à cause de la vitesse de propagation de la transaction sur le réseau, certains nœuds peuvent recevoir la transaction 2 avant la transaction 1 et déclarent donc que la transaction 1 est invalide parce qu'il dépense l' |
- s'il y a un consensus sur ce fait, le vendeur du produit ne sera pas payé, parce que la transaction 1 a été jugée invalide. Ainsi, le vendeur aura envoyé un produit gratuitement. | - s'il y a un consensus sur ce fait, le vendeur du produit ne sera pas payé, parce que la transaction 1 a été jugée invalide. Ainsi, le vendeur aura envoyé un produit gratuitement. | ||
Ligne 67: | Ligne 67: | ||
A Transaction that has been put into the latest block is said to have been confirmed once. A transaction that was put into the block directly before that is said to have been confirmed twice, etc. The reason for that is important, and will be explained in the Block Chain Security sections.** | A Transaction that has been put into the latest block is said to have been confirmed once. A transaction that was put into the block directly before that is said to have been confirmed twice, etc. The reason for that is important, and will be explained in the Block Chain Security sections.** | ||
- | Les blocs de transactions | + | Les Blocs de Transactions |
La réponse de la monnaie virtuelle à ce problème est de grouper les transactions par blocs qui sont organisés chronologiquement selon leur « hauteur ». La hauteur du premier bloc de transactions est de 0, celle du deuxième bloc est de 1, la hauteur du troisième bloc est de 2, et ainsi de suite. Toutes les transactions dans un bloc sont supposées avoir eu lieu exactement en même temps et sont étiquetées en conséquence. | La réponse de la monnaie virtuelle à ce problème est de grouper les transactions par blocs qui sont organisés chronologiquement selon leur « hauteur ». La hauteur du premier bloc de transactions est de 0, celle du deuxième bloc est de 1, la hauteur du troisième bloc est de 2, et ainsi de suite. Toutes les transactions dans un bloc sont supposées avoir eu lieu exactement en même temps et sont étiquetées en conséquence. | ||
- | Ainsi, les blocs fournissent un ordre chronologique des transactions et la chaîne des blocs, | + | Ainsi, les blocs fournissent un ordre chronologique des transactions et la chaîne des blocs, |
On dit d'une transaction qui a été incorporée dans le bloc le plus récent, qu' | On dit d'une transaction qui a été incorporée dans le bloc le plus récent, qu' | ||
Ligne 89: | Ligne 89: | ||
Cela va sans dire qu'il faut un système pour pouvoir se mettre d' | Cela va sans dire qu'il faut un système pour pouvoir se mettre d' | ||
- | La première façon d' | + | La première façon d' |
- | N' | + | N' |
===== 5 ===== | ===== 5 ===== | ||
Ligne 104: | Ligne 104: | ||
Une façon d' | Une façon d' | ||
- | * Un nœud crée un bloc en groupant des transactions et en ajoutant une référence au bloc précédent (le hash SHA 256 du bloc précédent) | + | * Un nœud crée un bloc en groupant des transactions et en ajoutant une référence au bloc précédent (le hash SHA 256 du bloc précédent). |
- | * Un petit nombre, | + | * Un petit nombre, |
* Le bloc entier accompagné du nonce est soumis à un algorithme de hachage du type SHA256 dont la sortie est le hash du bloc. | * Le bloc entier accompagné du nonce est soumis à un algorithme de hachage du type SHA256 dont la sortie est le hash du bloc. | ||
- | * Bitcoin demande que la représentation hexadécimale du hash du bloc soit inférieur | + | * Bitcoin demande que la représentation hexadécimale du hash du bloc soit inférieure |
Ce genre d' | Ce genre d' | ||
Ligne 119: | Ligne 119: | ||
The very first bitcoin block contained a single transaction for the block author, which was the reward for creating that block (at the time 50 bitcoins).** | The very first bitcoin block contained a single transaction for the block author, which was the reward for creating that block (at the time 50 bitcoins).** | ||
- | Puisque les hashs sont entièrement | + | Puisque les hashs sont entièrement |
- | Il y a un système de récompenses pour un nœud qui réussit à créer un bloc avec le bon hash : le nœud a le droit d' | + | Il y a un système de récompenses pour un nœud qui réussit à créer un bloc avec le bon hash : le nœud a le droit d' |
Le tout premier bloc de bitcoins contenait une seule transaction pour l' | Le tout premier bloc de bitcoins contenait une seule transaction pour l' | ||
Ligne 132: | Ligne 132: | ||
The block mining process also further secures the block chain almost fully, but this will be explained after the next section, which describes how to deal with multiple block candidates, and introduces the concept of the longest chain.** | The block mining process also further secures the block chain almost fully, but this will be explained after the next section, which describes how to deal with multiple block candidates, and introduces the concept of the longest chain.** | ||
+ | |||
+ | Tout le processus de la création de blocs - qui nécessite de grandes puissances de computation, | ||
+ | * Il aide à sécuriser la chaîne des blocs en garantissant que très peu de candidats au bloc peuvent être générés à un temps donné ; | ||
+ | * Il crée de nouveaux bitcoins en accordant une récompense au nœud qui a résolu le bloc avec succès. Ainsi, il augmente la quantité de monnaie en circulation. | ||
+ | |||
+ | Le processus de minage de blocs sécurise la chaîne des blocs de façon presque complète, mais j' | ||
+ | |||
===== 8 ===== | ===== 8 ===== | ||
- | Securing the Block Chain: Dealing with Multiple Candidates | + | **Securing the Block Chain: Dealing with Multiple Candidates |
- | **Consider the following scenario (arrows indicate a child block that refers to its parent block): | + | Consider the following scenario (arrows indicate a child block that refers to its parent block): |
[Block 10] <- [Block 11] | [Block 10] <- [Block 11] | ||
Ligne 146: | Ligne 153: | ||
[Block 10] <- [Block 11] <- [Block 12]** | [Block 10] <- [Block 11] <- [Block 12]** | ||
+ | |||
+ | La sécurisation de la chaîne de blocs : le traitement de candidats multiples[Bloc 11] <- | ||
+ | |||
+ | Examinez le scénario suivant (les flèches indiquent un bloc enfant se référant à son bloc parent) : | ||
+ | |||
+ | [Bloc 10] <- [Bloc 11] | ||
+ | |||
+ | Le dernier bloc créé est le bloc 11. À partir de ce bloc 11, un mineur peut commencer à travailler sur la création d'un candidat au bloc 12. Pour ce faire, le mineur rassemble les transactions dans son bloc qui ne sont pas confirmées, | ||
+ | |||
+ | Le Bloc 12 est créé ainsi et rajouté à la chaîne (si aucun autre mineur n'a trouvé une solution avant) : | ||
+ | |||
+ | [Bloc 10] <- [Bloc 11] <- [Bloc 12] | ||
+ | |||
+ | |||
===== 9 ===== | ===== 9 ===== | ||
Ligne 164: | Ligne 185: | ||
This chain that includes Block 14 is now the longest, and Block 14 refers back to Block 13B. Block 14 starts propagating throughout the network. Each node that receives it will understand that the longest chain available is now the one with Block 13B and Block 14, and will discard Block 13A as invalid. Therefore the block chain that includes Block 13B is now the official main chain.** | This chain that includes Block 14 is now the longest, and Block 14 refers back to Block 13B. Block 14 starts propagating throughout the network. Each node that receives it will understand that the longest chain available is now the one with Block 13B and Block 14, and will discard Block 13A as invalid. Therefore the block chain that includes Block 13B is now the official main chain.** | ||
+ | |||
+ | Il se trouve cependant que, à peu près en même temps, deux mineurs ont réussi à créer un candidat au bloc 13 qui satisfait aux conditions de la monnaie. Nous avons donc deux chaînes qui commencent à être diffusées sur le réseau. On appelle ceci un fork de la chaîne de blocs. | ||
+ | |||
+ | [Bloc 10] <- [Bloc 11] <- [Bloc 12] <- [Bloc 13A] | ||
+ | |||
+ | [Bloc 10] <- [Bloc 11] <- [Bloc 12] <- [Bloc 13B] | ||
+ | |||
+ | Selon le bloc qui leur est parvenu en premier au travers du réseau, des mineurs essaieront de trouver un bloc enfant de soit Bloc 13A, soit Bloc 13B. | ||
+ | |||
+ | Supposons que, très rapidement, un mineur réussit à trouver un bloc enfant du Bloc 13B alors qu' | ||
+ | |||
+ | [Bloc 10] <- [Bloc 11] <- [Bloc 12] <- [Bloc 13A] | ||
+ | |||
+ | [Bloc 10] <- [Bloc 11] <- [Bloc 12] <- [Bloc 13B] <- [Bloc 14] | ||
+ | |||
+ | Cette chaîne comprenant le Bloc 14 est maintenant la plus longue chaîne ; en outre, le Bloc 14 se réfère au Bloc 13B. Le Bloc 14 commence à se diffuser partout sur le réseau. Chaque nœud qui le reçoit comprendra que la chaîne la plus disponible est, à ce stade, celle contenant le Bloc 13B et le Bloc14 et se débarrassera du Bloc 13A suite à son invalidité. Ainsi, la chaîne de blocs qui contient le Bloc 13B est maintenant devenue la chaîne principale officielle. | ||
===== 10 ===== | ===== 10 ===== | ||
Ligne 176: | Ligne 213: | ||
• Once Block 15 starts being built, it will gather transactions. However, Transaction 2 cannot be included in the block, because it refers to Transaction A, which is already spent. Therefore the seller will have shipped a product for free.** | • Once Block 15 starts being built, it will gather transactions. However, Transaction 2 cannot be included in the block, because it refers to Transaction A, which is already spent. Therefore the seller will have shipped a product for free.** | ||
+ | Toute transaction contenue dans le Bloc 13A, mais pas dans le Bloc 13B, reprendra sa place parmi l' | ||
+ | |||
+ | Une faiblesse du système est ainsi mise en lumière : un attaquant qui voudrait dépenser son argent deux fois pourrait s' | ||
+ | |||
+ | Si la Transaction 2 est acceptée dans le Bloc 13A et est donc confirmée une fois, le vendeur pourrait envoyer le produit immédiatement. Si, au même moment, la Transaction A est acceptée dans le Bloc 13B, voici ce qui se passera : | ||
+ | * après un certain temps, la Transaction 2 sera remise avec les autres ordres non confirmés parce que le Bloc 13A est devenu orphelin ; | ||
+ | * toutefois, en même temps, la Transaction 1 est acceptée comme faisant partie de la chaîne de blocs principale. Pour cette raison, la Transaction A, à laquelle elle se réfère, est qualifiée de « Dépensée ». | ||
+ | * Une fois le Bloc 15 en construction, | ||
===== 11 ===== | ===== 11 ===== | ||
Ligne 190: | Ligne 235: | ||
In addition, it is extremely difficult to tamper with the block chain (thereby enabling double-spend attacks) because each block contains as part of its payload the hash of the previous block.** | In addition, it is extremely difficult to tamper with the block chain (thereby enabling double-spend attacks) because each block contains as part of its payload the hash of the previous block.** | ||
+ | À cause de ce problème systémique, | ||
+ | |||
+ | Chez Bitcoin, il faut une moyenne de 10 minutes pour résoudre un bloc (et la difficulté est ajustée pour que ce temps reste constant). On considère qu' | ||
+ | |||
+ | D' | ||
+ | |||
+ | Pourquoi la chaîne de blocs est-elle sécurisée ? | ||
+ | |||
+ | Nous avons vu que des mécanismes existent pour s' | ||
+ | |||
+ | Qui plus est, il est extrêmement difficile de manipuler la chaîne de blocs (pour rendre des attaques de double dépense d' | ||
===== 12 ===== | ===== 12 ===== | ||
Ligne 205: | Ligne 261: | ||
However, to do this, I need a lot of computing power. At least 50% of the total computing power in the network and more, as the origin point of my intended fork gets older. Currently, even the best super-computer in the world cannot match 50% of the network, so we are effectively safe. Anyway, with that kind of computing power, it would probably be more profitable just to mine many coins rather than try to subvert the system.** | However, to do this, I need a lot of computing power. At least 50% of the total computing power in the network and more, as the origin point of my intended fork gets older. Currently, even the best super-computer in the world cannot match 50% of the network, so we are effectively safe. Anyway, with that kind of computing power, it would probably be more profitable just to mine many coins rather than try to subvert the system.** | ||
+ | |||
+ | Regardez le scénario suivant : | ||
+ | |||
+ | [Bloc 10] <- [Bloc 11] <- [Bloc 12] <- [Bloc 13] <- [Bloc 14] | ||
+ | |||
+ | Supposons que je veuille modifier l' | ||
+ | * créer une autre version du Bloc 10, Bloc 10B, qui contient les transactions voulues ainsi que le hash du Bloc 9 ; | ||
+ | * pour ce faire je dois très rapidement trouver un nonce qui rendra le hash de mon nouveau bloc conforme aux conditions de la monnaie (difficile) ; | ||
+ | * ensuite, je dois créer le Bloc 11B, avec le hash du Bloc 10B, en trouvant le nonce ; | ||
+ | * et ainsi de suite jusqu' | ||
+ | |||
+ | SI j'ai réussi cette prouesse AVANT QUE le véritable Bloc 15 de la chaîne principale ne soit créé, alors mon nouveau fork deviendra la chaîne la plus longue et sera donc acceptée comme chaîne principale. | ||
+ | |||
+ | Cependant, pour le faire, j' | ||
===== 13 ===== | ===== 13 ===== | ||
Ligne 219: | Ligne 289: | ||
Note that cryptocurrencies usually have a target time for blocks. This target time for blocks is 10 minutes for Bitcoin, 1 minute for Primecoin. An interesting corollary is that the more computing power spent across the network mining a given coin, the faster the blocks will be solved, and thus it becomes more and more difficult to keep the block solving time fixed!** | Note that cryptocurrencies usually have a target time for blocks. This target time for blocks is 10 minutes for Bitcoin, 1 minute for Primecoin. An interesting corollary is that the more computing power spent across the network mining a given coin, the faster the blocks will be solved, and thus it becomes more and more difficult to keep the block solving time fixed!** | ||
+ | Les paramètres de la Monnaie virtuelle | ||
+ | |||
+ | En fait, une monnaie virtuelle n'a que quelques paramètres principaux : | ||
+ | * la difficulté du bloc, qui détermine, en moyenne, le temps qu'il faudrait pour que le réseau résolve/ | ||
+ | * l’intervalle après lequel la difficulté du bloc sera ajustée. Cela est nécessaire parce que, au fur et à mesure que le réseau croît, la puissance de calcul croît. Ainsi, si la difficulté reste stable, le temps nécessaire pour le minage d'un bloc n' | ||
+ | * la récompense pour le minage d'un bloc ; | ||
+ | * l' | ||
+ | * la méthode requise pour le minage d'un bloc ; habituellement précisée en tant qu' | ||
+ | |||
+ | Notez bien que les monnaies virtuelles ont généralement un temps cible pour les blocs. Ce temps cible pour les blocs est de 10 minutes pour Bitcoin et 1 minute pour Primecoin. Un corollaire intéressant est que plus il y a de puissance de calcul sur le réseau, dépensée pour le minage d'une monnaie donnée, plus vite les blocs seront résolus. Ainsi il devient de plus en plus difficile de garder stable le temps de résolution d'un bloc ! | ||
===== 14 ===== | ===== 14 ===== | ||
Ligne 245: | Ligne 325: | ||
A final 500 DOGE will be up for grabs next month, in the final part of this series, Cryptocurrency Part 3.** | A final 500 DOGE will be up for grabs next month, in the final part of this series, Cryptocurrency Part 3.** | ||
+ | |||
+ | La plupart des monnaies virtuelles sont similaires et utilisent deux algorithmes de hachage principaux : | ||
+ | * SHA256. | ||
+ | * Scrypt (pour lequel un paquet Debian existe). | ||
+ | |||
+ | D' | ||
+ | |||
+ | Dans la prochaine section, nous verrons en détail l' | ||
+ | |||
+ | Principales sources : | ||
+ | • le document de bitcoin : http:// | ||
+ | • l' | ||
+ | • le document de Primecoin : http:// | ||
+ | • une explication du document : http:// | ||
+ | |||
+ | CONCOURS | ||
+ | |||
+ | Gagnez 500 Dogecoin (DOGE) en répondant à la question suivante : | ||
+ | Il y a deux principaux algorithmes de hachage : SHA256 et _ _ _ _ _ _ _ ? | ||
+ | (Indice : la réponse est dans l' | ||
+ | |||
+ | Envoyez votre réponse à : ronnie@fullcirclemagazine.org avant le vendredi 18 avril. Le gagnant sera avisé par courriel et recevra une adresse de portefeuille Dogecoin valide. | ||
+ | |||
+ | Un dernier lot de 500 DOGE sera à gagner le mois prochain, dans la partie finale de cette série, Monnaie virtuelle, Partie 3. | ||
+ | |||
issue83/qu_est-ce_que_c_est.1409241242.txt.gz · Dernière modification : 2014/08/28 17:54 de auntiee