Monnaies numériques décentralisées. Partie 1. Bitcoin


Le sujet des diverses crypto-monnaies et blockchains est devenu très populaire et a cessé d'être le lot des geeks qui marmonnent à propos de la révolution dans le domaine de la finance. Mais dès que vous essayez de vous plonger dans ce sujet, vous rencontrez immédiatement un déficit d'information: il y a très peu de matériel décrivant un langage accessible et modérément technique sur le concept et les mécanismes de ces technologies. Classiquement, tous les matériaux peuvent être divisés en deux catégories: soit technique hardcore, où la cryptographie, p2p, "or numérique", etc. commence à partir de la première phrase, ou marketing absurde sur le nouvel Internet, la capitalisation de Bitcoin, ou en tant que certaine entreprise / pays implémenté la blockchain et résolu tous ses problèmes. Si vous voulez comprendre comment tout cela fonctionne et ce qui peut être fait avec ces technologies, ces articles sont pour vous.


J'essaierai de transmettre l'idée de base d'une crypto-monnaie décentralisée, les mécanismes de son travail, ainsi que de démonter les différentes fourches de Bitcoin. J'omets spécifiquement de nombreux détails techniques afin de ne pas alourdir le texte. L'essentiel est de comprendre l'essence, puis vous pouvez facilement comprendre vous-même les déserts.


Partie 1. Bitcoin
Partie 2. Autres (pas) types populaires de Bitcoin, blockchain
Partie 3. Ethereum


Idée


Dès que nous essayons de comprendre le mécanisme du travail de Bitcoin, nous commençons immédiatement à entrer en conflit avec notre façon de penser habituelle, qui refuse catégoriquement d'accepter le concept d'un système de contrôle décentralisé, sans recours à la force contre les contrevenants. Mais la question se pose immédiatement, si personne ne contrôle Bitcoin, comment fonctionne-t-il? En 2008, un certain Satoshi Nakamoto a proposé une solution élégante dans laquelle chaque membre du réseau ne fait confiance qu'à sa base, qu'il gère de manière indépendante, et à la base majoritaire s'il n'a aucun enregistrement.


Essayons d'expliquer du doigt l'exemple d'un petit village qui a décidé d'abandonner la circulation du papier-monnaie et d'introduire une monnaie décentralisée. Que ce soit un village spécial dans lequel tous les résidents se connaissent par leur nom, peuvent s'identifier par la voix, sont très bons dans les nuances de fleurs et adorent la couleur pourpre royale. Ainsi, les résidents conviennent que la nouvelle monnaie fonctionnera comme suit:


  1. Tous les flux de trésorerie sont publics, c'est-à-dire tout le monde sait qui, à qui, combien a été transféré;
  2. Quand quelqu'un veut transférer de l'argent à quelqu'un, il déclare publiquement ceci: Moi, John, je transfère 100 pièces à James;


  3. Chaque résident a un journal de comptabilité où tous les transferts d'argent qu'il a entendus ont sa place. Toutes les traductions de la journée sont enregistrées sur une seule page et le lendemain, elles recommencent à zéro.


  4. À la fin de la journée, les résidents font un étrange rituel qui corrige toutes les transactions pour cette journée, car la transaction n'est considérée comme valide que lorsqu'elle est corrigée. Le rituel est laborieux, mais vous pouvez en obtenir une récompense, et donc tout le monde veut participer à ce processus. La procédure est la suivante:

4.1. Pour chaque transaction à partir de ce jour, selon une formule spéciale, en fonction du montant du transfert et des destinataires, une peinture d'une certaine couleur et quantité est sélectionnée. Ensuite, tous ces pots de peintures sont versés dans un bol et bien mélangés.


4.2. Le rituel nécessite d'apporter le mélange résultant à une couleur pourpre royal. Pour ce faire, à petites doses, par une recherche longue et épuisante, différentes couleurs sont ajoutées à ce mélange;


4.3. Dès que quelqu'un trouve les couleurs nécessaires et leurs doses, il note immédiatement ces données au bas de la page d'aujourd'hui, crédite 50 pièces sur son compte en récompense et l'annonce à tous les résidents.


4.4. Les résidents vérifient rapidement s'il a vraiment trouvé les bonnes proportions. Si tout est correct, ils approuvent le transfert de récompense, ferment la page d'aujourd'hui et s'endorment.



Maintenant plus sur les points:


  1. Comme nous nous en souvenons, les résidents peuvent facilement se reconnaître par la voix, respectivement, si quelqu'un essaie de transférer de l'argent non en son propre nom, alors les résidents ignorent simplement cette déclaration, et personne n'ajoutera ce transfert à leurs notes.


  2. Puisque tous les transferts sont publics, tout le monde sait combien d'argent chaque citoyen a sur son compte, si John n'a pas assez de fonds, alors son transfert est ignoré (personne ne prend ses notes). Idéalement, une chaîne d'enregistrement unique devrait être la même pour tout le monde.


  3. Si quelqu'un a perdu son journal ou a raté certaines traductions, il interroge les résidents et synchronise ses notes. Dans ce cas, il est nécessaire de se fier uniquement aux enregistrements qui correspondent à la majorité.


  4. La sélection de la dose et de la couleur requises des peintures est un processus très long, et il est très facile de vérifier le résultat du travail. Les transactions de cette journée sont simplement prises, le mélange est préparé selon la formule et des peintures sont ajoutées dans la cuve à la dose annoncée. Si vous obtenez une couleur pourpre royal - alors tout est vrai et les habitants acceptent de récompenser ceux qui ont trouvé ces proportions. Dès que la page est scellée, toutes les transactions sont considérées comme valides et restent dans l'histoire pour toujours. De cette façon, l'intégrité de la base est maintenue et de l'argent frais entre également dans le système. Le montant de la rémunération est divisé par deux tous les 4 ans, ce qui limite le montant total d'argent dans le système. Et si vous ajoutez les proportions de couleurs trouvées de la page précédente à la page suivante, les pages seront liées et personne ne pourra modifier les transactions rétroactivement. Au moindre changement dans les enregistrements, il est nécessaire de recalculer la dose de peintures pour cette page et toutes les pages suivantes, en plus, il est nécessaire de convaincre la plupart des résidents de remplacer leurs propres enregistrements par de nouveaux.

Chaque membre du réseau décide lui-même d'accepter ou non les transactions frauduleuses, et bien que la majorité des participants de bonne foi, le système fonctionnera comme il se doit. Mais que signifie «comment faire», quels objectifs ont été fixés par les développeurs d'une telle monnaie décentralisée?


  1. Le montant d'argent dans le système doit être limité, en ce sens, la monnaie est comme l'or. Personne ne devrait pouvoir imprimer une tonne d'argent, ce qui peut à son tour conduire à l'inflation et à la dépréciation de l'épargne.


  2. Supprimer les restrictions associées aux unités minimales du système monétaire actuel. Par exemple, vous souhaitez vendre vos services pour 1 kopeck, ou peut-être pour un centième de centime.


  3. Une garantie que tout transfert d'argent correctement formé sera effectué en raison de l'absence d'un seul point de défaillance, à moins que tout Internet soit déconnecté. Aucune organisation, pas même un État, ne devrait pouvoir annuler / bloquer une transaction.
  4. Pour tromper le système, ou changer les règles, il faut convaincre la plupart des participants (> 50%) du réseau, etc.

Implémentation


Si tout est clair avec l'idée fondamentale, alors nous pouvons passer à une implémentation technique simplifiée. Ensuite, vous devez connaître des concepts tels que le hachage, le chiffrement à clé publique et la signature numérique.



Chaque membre du réseau génère un compte / comptes, où un compte est juste une paire de clés générée par l'algorithme ECDSA (algorithme de clé publique pour créer une signature numérique). En tant qu'adresse du compte, la clé publique est utilisée à partir de la paire, et pour transférer de l'argent depuis le compte, il est nécessaire de signer ce transfert (transaction) avec la clé privée. La transaction est diffusée à tous les participants du réseau où se trouvent des participants spéciaux, des mineurs engagés dans la formation d'une chaîne unique et coordonnée de l'historique de toutes les transactions (blockchain). Les mineurs regroupent les transactions en cours dans un bloc tout en vérifiant leur exactitude. En plus de la liste des transactions, un bloc contient un hachage du bloc précédent et une certaine valeur NONCE. Pour que le bloc soit considéré comme correct, il est nécessaire de sélectionner un NONCE tel que le hachage de l'ensemble du bloc soit beau (avec un grand nombre de zéros au début).


Étant donné que le hachage des données donne des valeurs totalement imprévisibles, il est très difficile de détecter ce NONCE. Dans la liste des transactions, la première est une transaction spéciale (récompense en bloc) qui récompense le mineur d'un certain montant. Dès que le mineur ramasse le NONCE nécessaire, il informe tout le monde et les autres mineurs de vérifier le résultat de son travail. Ce processus est appelé minage, car une seule chaîne de blocs est créée et les mineurs reçoivent une récompense pour ce travail. La procédure de vérification est très rapide, toutes les transactions et le hachage de l'ensemble du bloc sont vérifiés. S'il n'y a pas d'erreurs et de fraudes, chaque mineur inclut ce bloc dans sa blockchain et continue à extraire davantage. Si un bloc est inclus dans la blockchain, toutes les transactions sont considérées comme terminées, y compris la transaction très spéciale qui transfère une récompense sur le compte du mineur.


Pour résumer


  • Toutes les transactions sont accessibles au public.
  • Il existe un ensemble de règles généralement acceptées, et il appartient à chacun de décider de se conformer ou non. Il n'y a pas d'autorité centrale avec des méthodes d'influence de la force sur les contrevenants.
  • Une transaction est considérée comme réussie (approuvée) si elle est emballée dans un bloc.
  • Les transactions regroupées dans un bloc sont considérées comme valides, car elles sont vérifiées à plusieurs reprises.
  • Le processus de validation des traductions doit être encouragé et plus impliqué dans ce dossier.
  • Mais il faut compliquer le processus d'emballage. Pour cela, le principe de la preuve du travail est utilisé. Il est nécessaire pour résoudre une tâche gourmande en ressources, dont le résultat est facile à vérifier.
  • Un bloc est considéré comme compressé s'il a un beau hachage, pour cela, vous devez trier la variable NONCE dans le bloc pendant une longue période. Trouver le bon NONCE est difficile et vérifier le hachage est facile. Trouver la bonne valeur reçoit une récompense.
  • Chaque bloc contient un hachage du précédent, nous obtenons une chaîne de blocs qui grandit dans une direction.
  • Parfois, une chaîne peut se ramifier, mais la branche la plus longue sera valide. Pour créer un bloc avec des transactions fictives et augmenter cette branche, les attaquants devront dépenser plus de ressources informatiques.

La partie suivante décrira les limitations et problèmes actuels du Bitcoin, ainsi qu'un aperçu des fourches visant à résoudre divers problèmes.


Littérature: À propos de Bitcoin et du Github .

Source: https://habr.com/ru/post/fr405453/


All Articles