La crypto-monnaie pour les nuls : Bitcoin et au-delà

Publié: 2022-03-11

Bitcoin a créé beaucoup de buzz sur Internet. Il a été ridiculisé, il a été attaqué, et finalement il a été accepté et est devenu une partie de nos vies. Cependant, Bitcoin n'est pas seul. À l'heure actuelle, il existe plus de 700 implémentations d'AltCoin, qui utilisent des principes similaires et divers algorithmes de crypto-monnaie.

Illustration de la couverture de la crypto-monnaie pour les nuls

Alors, de quoi avez-vous besoin pour créer quelque chose comme Bitcoin ?

Sans essayer de comprendre votre motivation personnelle pour créer un système décentralisé et anonyme d'échange d'argent/d'informations (mais en espérant toujours que cela relève des activités morales et légales), décomposons d'abord les exigences de base de notre nouveau système de paiement :

  1. Toutes les transactions doivent être effectuées sur Internet
  2. Nous ne voulons pas d'une autorité centrale qui traitera les transactions
  3. Les utilisateurs doivent être anonymes et identifiés uniquement par leur identité virtuelle
  4. Un même utilisateur peut avoir autant d'identités virtuelles qu'il le souhaite
  5. L'offre de valeur (nouvelles factures virtuelles) doit être ajoutée de manière contrôlée

Partage d'informations décentralisé sur Internet

Remplir les deux premières exigences de notre liste, supprimer une autorité centrale pour l'échange d'informations sur Internet, est déjà possible. Ce dont vous avez besoin, c'est d'un réseau peer-to-peer (P2P) .

Le partage d'informations dans les réseaux P2P est similaire au partage d'informations entre amis et famille. Si vous partagez des informations avec au moins un membre du réseau, ces informations finiront par atteindre tous les autres membres du réseau. La seule différence est que dans les réseaux numériques, ces informations ne seront en aucun cas modifiées.

Algorithmes de crypto-monnaie et Toptal

Vous avez probablement entendu parler de BitTorrent, l'un des systèmes de partage de fichiers P2P (livraison de contenu) les plus populaires. Une autre application populaire pour le partage P2P est Skype, ainsi que d'autres systèmes de chat.

En fin de compte, vous pouvez implémenter ou utiliser l'un des protocoles P2P open source existants pour prendre en charge votre nouvelle crypto-monnaie, que nous appellerons Topcoin .

Algorithme de hachage

Pour comprendre les identités numériques, nous devons comprendre comment fonctionne le hachage cryptographique . Le hachage est le processus de mappage de données numériques de n'importe quelle taille arbitraire à des données de taille fixe. En termes plus simples, le hachage est un processus consistant à prendre des informations lisibles et à créer quelque chose qui n'a aucun sens.

Vous pouvez comparer le hachage à l'obtention de réponses de politiciens. Les informations que vous leur fournissez sont claires et compréhensibles, tandis que le résultat qu'ils fournissent ressemble à un flux de mots aléatoire.

Protocoles P2P

Un bon algorithme de hachage doit répondre à quelques exigences :

  1. La longueur de sortie de l'algorithme de hachage doit être fixe (une bonne valeur est de 256 octets)
  2. Même le plus petit changement dans les données d'entrée doit produire une différence significative dans la sortie
  3. La même entrée produira toujours la même sortie
  4. Il ne doit y avoir aucun moyen d'inverser la valeur de sortie pour calculer l'entrée
  5. Le calcul de la valeur HASH ne doit pas être intensif en calcul et doit être rapide

Si vous regardez les statistiques simples, nous aurons un nombre limité (mais énorme) de valeurs HASH possibles, simplement parce que notre longueur HASH est limitée. Cependant, notre algorithme de hachage (appelons-le Politician256) devrait être suffisamment fiable pour ne produire que des valeurs de hachage en double pour différentes entrées à peu près aussi souvent qu'un singe dans un zoo parvient à taper correctement Hamlet sur une machine à écrire !

Si vous pensez que Hamlet n'est qu'un nom ou un mot, arrêtez de lire maintenant ou lisez le théorème du singe infini.

Signature numérique

Lorsque vous signez un document, tout ce que vous avez à faire est d'apposer votre signature sur le texte d'un document. Une signature numérique est similaire : il vous suffit d'ajouter vos données personnelles au document que vous signez.

Si vous comprenez que l'algorithme de hachage adhère à la règle selon laquelle même le plus petit changement dans les données d'entrée doit produire une différence significative dans la sortie , alors il est évident que la valeur HASH créée pour le document d'origine sera différente de la valeur HASH créée pour le document avec la signature apposée.

Une combinaison du document original et de la valeur HASH produite pour le document avec vos données personnelles en annexe est un document signé numériquement .

Et c'est ainsi que nous obtenons votre identité virtuelle , qui est définie comme les données que vous avez ajoutées au document avant de créer cette valeur HASH.

Ensuite, vous devez vous assurer que votre signature ne peut pas être copiée et que personne ne peut exécuter de transaction en votre nom. La meilleure façon de vous assurer que votre signature est sécurisée est de la conserver vous-même et de fournir une méthode différente à quelqu'un d'autre pour valider le document signé. Encore une fois, nous pouvons nous rabattre sur la technologie et les algorithmes facilement disponibles. Ce que nous devons utiliser, c'est la cryptographie à clé publique, également connue sous le nom de cryptographie asymétrique .

Pour que cela fonctionne, vous devez créer une clé privée et une clé publique . Ces deux clés seront dans une sorte de corrélation mathématique et dépendront l'une de l'autre. L'algorithme que vous utiliserez pour créer ces clés garantira que chaque clé privée aura une clé publique différente. Comme leur nom l'indique, une clé privée est une information que vous garderez juste pour vous, tandis qu'une clé publique est une information que vous partagerez.

Si vous utilisez votre clé privée (votre identité) et le document original comme valeurs d'entrée pour l' algorithme de signature afin de créer une valeur HASH, en supposant que vous avez gardé votre clé secrète, vous pouvez être sûr que personne d'autre ne peut produire la même valeur HASH pour ce document. .

Comment fonctionnent Bitcoin et Cryptocurrency

Si quelqu'un a besoin de valider votre signature, il utilisera le document original, la valeur HASH que vous avez produite et votre clé publique comme entrées pour l' algorithme de vérification de signature afin de vérifier que ces valeurs correspondent.

Algorithme de vérification de signature

Comment envoyer des bitcoins/de l'argent

En supposant que vous ayez implémenté la communication P2P, des mécanismes de création d'identités numériques (clés privées et publiques) et fourni aux utilisateurs des moyens de signer des documents à l'aide de leurs clés privées, vous êtes prêt à commencer à envoyer des informations à vos pairs.

Comme nous n'avons pas d'autorité centrale qui validera combien d'argent vous avez, le système devra vous le demander à chaque fois, puis vérifier si vous avez menti ou non. Ainsi, votre enregistrement de transaction peut contenir les informations suivantes :

  1. J'ai 100 Topcoins
  2. Je souhaite envoyer 10 pièces à mon pharmacien pour le médicament ( vous devez inclure la clé publique de votre pharmacien ici )
  3. Je veux donner une pièce comme frais de transaction au système ( nous y reviendrons plus tard )
  4. Je veux garder les 89 pièces restantes

La seule chose qui reste à faire est de signer numériquement l'enregistrement de la transaction avec votre clé privée et de transmettre l'enregistrement de la transaction à vos pairs du réseau. À ce moment-là, tout le monde recevra l'information que quelqu'un (votre identité virtuelle) envoie de l'argent à quelqu'un d'autre (l'identité virtuelle de votre pharmacien).

Votre travail est terminé. Cependant, vos médicaments ne seront pas payés tant que l'ensemble du réseau n'aura pas convenu que vous aviez vraiment 100 pièces et que vous pouviez donc exécuter cette transaction. Ce n'est qu'après la validation de votre transaction que votre pharmacien recevra les fonds et vous enverra les médicaments.

Mineurs de crypto-monnaie : une nouvelle race d'agents

Les mineurs sont connus pour être des travailleurs très durs qui sont, à mon avis, fortement sous-payés. Dans le monde numérique de la crypto-monnaie, les mineurs jouent un rôle très similaire, sauf que dans ce cas, ils effectuent le travail de calcul intensif au lieu de creuser des tas de terre. Contrairement aux vrais mineurs, certains mineurs de crypto-monnaie ont gagné une petite fortune au cours des cinq dernières années, mais beaucoup d'autres ont perdu une fortune dans cette entreprise risquée.

Les mineurs sont le composant central du système et leur objectif principal est de confirmer la validité de chaque transaction demandée par les utilisateurs.

Afin de confirmer la validité de votre transaction (ou une combinaison de plusieurs transactions demandées par quelques autres utilisateurs), les mineurs feront deux choses.

Premièrement, ils s'appuieront sur le fait que "tout le monde sait tout", ce qui signifie que chaque transaction exécutée dans le système est copiée et disponible pour n'importe quel pair du réseau. Ils examineront l'historique de vos transactions pour vérifier que vous aviez réellement 100 pièces au départ. Une fois le solde de votre compte confirmé, ils généreront une valeur HASH spécifique. Cette valeur de hachage doit avoir un format spécifique ; il doit commencer par un certain nombre de zéros .

Il existe deux entrées pour calculer cette valeur HASH :

  1. Données d'enregistrement de transaction
  2. Preuve de travail du mineur

Considérant que même le plus petit changement dans les données d'entrée doit produire une différence significative dans la valeur HASH de sortie , les mineurs ont une tâche très difficile. Ils doivent trouver une valeur spécifique pour une variable de preuve de travail qui produira un HASH commençant par des zéros. Si votre système nécessite un minimum de 40 zéros dans chaque transaction validée, le mineur devra calculer environ 2^40 valeurs HASH différentes afin de trouver la bonne preuve de travail .

Une fois qu'un mineur a trouvé la valeur appropriée pour la preuve de travail, il a droit à des frais de transaction (la pièce unique que vous étiez prêt à payer), qui peuvent être ajoutés dans le cadre de la transaction validée. Chaque transaction validée est transmise à des pairs du réseau et stockée dans un format de base de données spécifique connu sous le nom de Blockchain .

Mais que se passe-t-il si le nombre de mineurs augmente et que leur matériel devient beaucoup plus efficace ? Auparavant, le bitcoin était exploité sur des CPU, puis des GPU et des FPGA, mais finalement les mineurs ont commencé à concevoir leurs propres puces ASIC, qui étaient beaucoup plus puissantes que ces premières solutions. Au fur et à mesure que le taux de hachage augmente, la difficulté de minage augmente également, assurant ainsi l'équilibre. Lorsque plus de puissance de hachage est introduite dans le réseau, la difficulté augmente et vice versa ; si de nombreux mineurs décident de débrancher parce que leur opération n'est plus rentable, la difficulté est réajustée pour correspondre au nouveau taux de hachage.

La blockchain pour les nuls : le registre mondial des crypto-monnaies

La blockchain contient l'historique de toutes les transactions effectuées dans le système. Chaque transaction validée, ou lot de transactions, devient un autre anneau dans la chaîne. Chaque entreprise de développement de blockchain s'appuie sur ce grand livre public.

Ainsi, la blockchain Bitcoin est, essentiellement, un grand livre public où les transactions sont répertoriées dans un ordre chronologique.

Le premier anneau de la blockchain Bitcoin s'appelle le Genesis Block

Pour en savoir plus sur le fonctionnement de la blockchain, je suggère de lire Blockchain Technology Explained: Powering Bitcoin, par Nermin Hajdarbegovic.

Il n'y a pas de limite au nombre de mineurs pouvant être actifs dans votre système. Cela signifie qu'il est possible pour deux mineurs ou plus de valider la même transaction. Si cela se produit, le système vérifiera l'effort total investi par chaque mineur pour valider la transaction en comptant simplement les zéros. Le mineur qui a investi plus d'efforts (trouvé plus de zéros non significatifs) prévaudra et son bloc sera accepté.

Contrôler la masse monétaire

La première règle du système Bitcoin est qu'il peut y avoir un maximum de 21 000 000 Bitcoins générés. Ce nombre n'a toujours pas été atteint, et selon les tendances actuelles, on pense que ce nombre sera atteint d'ici l'an 2140.

Cela peut vous amener à vous interroger sur l'utilité d'un tel système, car 21 millions d'unités, ce n'est pas beaucoup. Cependant, le système Bitcoin prend en charge les valeurs fractionnaires jusqu'à la huitième décimale (0,00000001). Cette plus petite unité d'un bitcoin s'appelle un Satoshi , en l'honneur de Satoshi Nakamoto, le développeur anonyme à l'origine du protocole Bitcoin.

De nouvelles pièces sont créées pour récompenser les mineurs pour la validation des transactions. Cette récompense ne correspond pas aux frais de transaction que vous avez spécifiés lors de la création d'un enregistrement de transaction, mais elle est définie par le système. Le montant de la récompense diminue avec le temps et sera finalement remis à zéro une fois que le nombre total de pièces émises (21 millions) aura été atteint. Lorsque cela se produit, les frais de transaction joueront un rôle beaucoup plus important puisque les mineurs pourraient choisir de donner la priorité aux transactions les plus précieuses pour la validation.

En plus de fixer la limite supérieure du nombre maximum de pièces, le système Bitcoin utilise également un moyen intéressant de limiter la production quotidienne de nouvelles pièces. En calibrant le nombre minimum de zéros non significatifs requis pour un calcul de preuve de travail, le temps nécessaire pour valider la transaction et obtenir une récompense de nouvelles pièces est toujours fixé à environ 10 minutes. Si le temps entre l'ajout de nouveaux blocs à la blockchain diminue, le système peut exiger que la preuve de travail génère 45 ou 50 zéros non significatifs.

Ainsi, en limitant la vitesse et le nombre de nouvelles pièces pouvant être générées, le système Bitcoin contrôle efficacement la masse monétaire.

Commencez à "imprimer" votre propre devise

Comme vous pouvez le voir, créer votre propre version de Bitcoin n'est pas si difficile. En utilisant la technologie existante, mise en œuvre de manière innovante, vous disposez de tout ce dont vous avez besoin pour une crypto-monnaie.

  1. Toutes les transactions sont effectuées sur Internet en utilisant la communication P2P, éliminant ainsi le besoin d'une autorité centrale
  2. Les utilisateurs peuvent effectuer des transactions anonymes en utilisant la cryptographie asynchrone et ils ne sont identifiés que par leur combinaison clé privée/clé publique
  3. Vous avez mis en place un registre global validé de toutes les transactions qui a été copié en toute sécurité sur chaque pair du réseau
  4. Vous disposez d'une masse monétaire sécurisée, automatisée et contrôlée, qui assure la stabilité de votre monnaie sans avoir besoin d'une autorité centrale

Une dernière chose à mentionner est que, dans son essence, la crypto-monnaie est un moyen de transférer des valeurs/informations anonymes d'un utilisateur à un autre dans un réseau peer-to-peer distribué .

Envisagez de remplacer les pièces dans votre enregistrement de transaction par des données aléatoires qui pourraient même être cryptées à l'aide de la cryptographie asynchrone afin que seuls l'expéditeur et le destinataire puissent les déchiffrer. Pensez maintenant à appliquer cela à quelque chose comme l' Internet des objets !

Un système de crypto-monnaie pourrait être un moyen intéressant de permettre la communication entre notre poêle et notre grille-pain.
Tweeter

Un certain nombre de poids lourds de la technologie explorent déjà l'utilisation de la technologie blockchain dans les plateformes IoT, mais ce n'est pas la seule application potentielle de cette technologie relativement nouvelle.

Si vous ne voyez aucune raison de créer votre propre monnaie alternative (autre qu'une blague), vous pouvez essayer d'utiliser la même approche ou une approche similaire pour autre chose, comme l'authentification distribuée, la création de monnaies virtuelles utilisées dans les jeux, les réseaux sociaux. , et d'autres applications, ou vous pouvez créer un nouveau programme de fidélité pour votre entreprise de commerce électronique, qui récompenserait les clients réguliers avec des jetons virtuels qui pourraient être échangés plus tard.