........

dimanche 3 mars 2019

La technologie de blockchain est intéressante car elle nous offre une troisième option sécurisée, rapide et bon marché.


Comment fonctionne la Blockchain?


La technologie blockchain expliquée en mots simples
De nouveaux outils sont développés chaque jour pour améliorer la sécurité de la blockchain tout en offrant une gamme plus étendue de fonctionnalités, d’outils et de services.



Crédit: Ani_Ka / Vecteurs DigitalVision / Getty





La technologie du système de verrouillage Best probablement la meilleure invention depuis Internet. Il permet l'échange de valeur sans avoir besoin de confiance ou d'une autorité centrale. Imaginez que vous et moi misions 50 $ sur la météo de demain à San Francisco. Je parie qu'il va faire beau, toi qu'il va pleuvoir. Aujourd'hui, nous avons trois options pour gérer cette transaction:
  1. Nous pouvons nous faire confiance . Pluvieux ou ensoleillé, le perdant donnera 50 $ au gagnant. Si nous sommes amis, cela pourrait être un bon moyen de le gérer. Cependant, amis ou étrangers, l’un ne peut facilement pas payer l’autre.
  2. Nous pouvons transformer le pari en contrat . Avec un contrat en place, les deux parties seront plus enclines à payer. Toutefois, si l’un des deux décidait de ne pas payer, le gagnant devrait débourser une somme supplémentaire pour couvrir les frais de justice et la procédure judiciaire pourrait prendre beaucoup de temps. Surtout pour une petite somme d'argent, cela ne semble pas être le moyen optimal de gérer la transaction.
  3. Nous pouvons impliquer une tierce partie neutre . Chacun de nous donne 50 $ à un tiers qui donnera le montant total au gagnant. Mais bon, elle pourrait aussi s'enfuir avec tout notre argent. Nous nous retrouvons donc avec l'une des deux premières options: confiance ou contrat .
Ni la confiance ni le contrat n'est une solution optimale: nous ne pouvons pas faire confiance aux étrangers, et pour faire respecter un contrat, il faut du temps et de l'argent. La technologie de blockchain est intéressante car elle nous offre une troisième option sécurisée, rapide et bon marché.
Blockchain nous permet d’écrire quelques lignes de code, un programme exécuté sur la blockchain, à laquelle nous envoyons tous les deux 50 dollars. Ce programme gardera les 100 dollars en sécurité et vérifiera automatiquement la météo de demain sur plusieurs sources de données. Ensoleillé ou pluvieux, il transférera automatiquement le montant total au gagnant. Chaque partie peut vérifier la logique du contrat et, une fois lancée dans la blockchain, elle ne peut plus être modifiée ni arrêtée. Cela peut être trop d'effort pour un pari de 50 $, mais imaginez vendre une maison ou une entreprise.
Cette pièce explique le fonctionnement de la blockchain sans discuter en détail des détails techniques, mais en creusant juste assez pour vous donner une idée générale de la logique et des mécanismes sous-jacents.

Les bases de Bitcoin





<

Images courtoisie de l'auteur.
L'application la plus connue et la plus discutée de la technologie blockchain est le bitcoin , une monnaie numérique qui peut être utilisée pour échanger des produits et des services, tout comme le dollar américain, l'euro, le yuan chinois et d'autres monnaies nationales. Utilisons cette première application de la technologie blockchain pour apprendre comment cela fonctionne.
«Bitcoin nous donne, pour la première fois, un moyen pour un utilisateur d’Internet de transférer une partie unique de la propriété numérique à un autre utilisateur d’Internet, de telle sorte que le transfert soit sûr et sécurisé. Tout le monde sait que le transfert a eu lieu. et personne ne peut contester la légitimité du transfert. Les conséquences de cette percée sont difficiles à surestimer. "
- Marc Andreessen

Un bitcoin est une unité unique de la devise numérique Bitcoin (BTC). Tout comme un dollar, un bitcoin n'a aucune valeur en soi; cela n'a de valeur que parce que nous acceptons d'échanger des biens et des services afin de mettre davantage de monnaie sous notre contrôle, et nous pensons que d'autres feront de même.
Pour garder une trace de la quantité de bitcoins que chacun de nous possède, la blockchain utilise un grand livre , un fichier numérique qui suit toutes les transactions en bitcoins.


Fig. 1 - Fichier numérique du registre Bitcoin simplifié
Le fichier de grand livre n'est pas stocké dans un serveur d'entité central, comme une banque, ni dans un seul centre de données. Il est distribué dans le monde entier via un réseau d'ordinateurs privés qui stockent des données et exécutent des calculs. Chacun de ces ordinateurs représente un « nœud » du réseau de chaînes de blocs et possède une copie du fichier de grand livre.
Si David souhaite envoyer des bitcoins à Sandra, il diffuse un message au réseau indiquant que la quantité de bitcoins de son compte devrait diminuer de 5 BTC et que le montant de Sandra devrait augmenter de la même quantité. Chaque nœud du réseau recevra le message et appliquera la transaction demandée à sa copie du grand livre, en mettant à jour les soldes des comptes.






Fig. 2 - Message de demande de transaction simplifié
Le fait que le grand livre soit géré par un groupe d'ordinateurs connectés plutôt que par une entité centralisée telle qu'une banque a plusieurs implications:
  • Dans notre système bancaire, nous ne connaissons que nos propres transactions et soldes de comptes; sur la blockchain, tout le monde peut voir les transactions de tous les autres.
  • Bien que vous puissiez généralement faire confiance à votre banque, le réseau bitcoin est distribué et, en cas de problème, il n’ya pas de centre d’assistance à appeler ni de personne à poursuivre.
  • Le système de blockchain est conçu de manière à ce qu'aucune confiance ne soit nécessaire; la sécurité et la fiabilité sont obtenues via des fonctions mathématiques et des codes spéciaux.

Nous pouvons définir la blockchain comme un système permettant à un groupe d'ordinateurs connectés de gérer un seul journal mis à jour et sécurisé. Pour effectuer des transactions sur la blockchain, vous avez besoin d’un portefeuille , d’un programme vous permettant de stocker et d’échanger vos bitcoins. Puisque vous êtes le seul à pouvoir utiliser vos bitcoins, chaque portefeuille est protégé par une méthode cryptographique spéciale qui utilise une paire unique de clés distinctes mais connectées: une clé privée et une clé publique.
Si un message est chiffré avec une clé publique spécifique, seul le propriétaire de la clé privée couplée peut déchiffrer et lire le message. L'inverse est également vrai: si vous chiffrez un message avec votre clé privée, seule la clé publique couplée peut le déchiffrer. Lorsque David souhaite envoyer des bitcoins, il doit diffuser un message crypté avec la clé privée de son portefeuille. Comme David est le seul à connaître la clé privée nécessaire pour déverrouiller son portefeuille, il est le seul à pouvoir dépenser ses bitcoins. Chaque nœud du réseau peut vérifier que la demande de transaction provient de David en décryptant le message avec la clé publique de son portefeuille.
Lorsque vous chiffrez une demande de transaction avec la clé privée de votre portefeuille, vous générez une signature numérique qui est utilisée par les ordinateurs de la chaîne de blocs pour vérifier la source et l'authenticité de la transaction. La signature numérique est une chaîne de texte résultant de votre demande de transaction et de votre clé privée. par conséquent, il ne peut pas être utilisé pour d'autres transactions. Si vous modifiez un seul caractère dans le message de demande de transaction, la signature numérique changera afin qu'aucun attaquant potentiel ne puisse modifier vos demandes de transaction ou modifier la quantité de bitcoins que vous envoyez.






Fig. 3 - Cryptage de transaction de signature numérique simplifié
Pour envoyer des bitcoins, vous devez prouver que vous possédez la clé privée d'un portefeuille spécifique, car vous avez besoin de la clé pour chiffrer le message de votre demande de transaction. Étant donné que vous ne diffusez le message qu'après son chiffrement, vous ne devez jamais révéler votre clé privée.


Suivi de votre solde de portefeuille

Chaque nœud de la blockchain conserve une copie du grand livre Alors, comment un nœud connaît-il le solde de votre compte? Le système de blockchain ne garde pas trace des soldes des comptes; il enregistre uniquement chaque transaction vérifiée et approuvée. En fait, le grand livre ne garde pas trace des soldes, il ne garde que trace de chaque transaction diffusée dans le réseau Bitcoin (Fig. 4). Pour déterminer le solde de votre portefeuille, vous devez analyser et vérifier toutes les transactions qui ont déjà eu lieu sur l’ensemble du réseau connecté à votre portefeuille.






Fig. 4 - Ledger Blockchain Ledger
Cette vérification de «solde» est effectuée sur la base de liens vers des transactions précédentes. Afin d'envoyer 10 bitcoins à John, Mary doit générer une demande de transaction incluant des liens vers des transactions entrantes précédentes totalisant au moins 10 bitcoins. Ces liaisons sont appelées «entrées». Les nœuds du réseau vérifient le montant et s'assurent que ces entrées n'ont pas encore été dépensées. En fait, chaque fois que vous référencez des entrées dans une transaction, elles sont considérées comme non valides pour toute transaction future. Tout cela se fait automatiquement dans le portefeuille de Mary et est revérifié par les nœuds du réseau Bitcoin; elle envoie seulement une transaction de 10 BTC au portefeuille de John en utilisant sa clé publique.






Fig. 5 - Structure de demande de transaction de chaîne de blocs
Alors, comment le système peut-il s’assurer que les transactions d’entrée sont valides? Il vérifie toutes les transactions précédentes en corrélation avec le portefeuille que vous utilisez pour envoyer des bitcoins via les références en entrée. Pour accélérer le processus de vérification, les nœuds du réseau conservent un enregistrement spécial des transactions non dépensées. Grâce à cette vérification de sécurité, il n’est pas possible de doubler les dépenses en bitcoins.
Posséder des bitcoins signifie qu'il y a des transactions écrites dans le grand livre qui pointent vers l'adresse de votre portefeuille et n'ont pas encore été utilisées comme entrées. Tout le code pour effectuer des transactions sur le réseau bitcoin est open source; Cela signifie que toute personne disposant d'un ordinateur portable et d'une connexion Internet peut effectuer des transactions. Toutefois, en cas d'erreur dans le code utilisé pour diffuser un message de demande de transaction, les bitcoins associés seront définitivement perdus.

N'oubliez pas que, le réseau étant distribué, vous ne pouvez appeler ni le support technique ni toute personne susceptible de vous aider à restaurer une transaction perdue ou un mot de passe portefeuille oublié. Pour cette raison, si vous souhaitez effectuer des transactions sur le réseau Bitcoin, il est judicieux d’utiliser la version officielle et à code source ouvert du logiciel de portefeuille Bitcoin (tel que Bitcoin Core ), et de stocker le mot de passe ou la clé privée de votre portefeuille dans un répertoire très personnel. dépôt sécurisé.

Mais est-ce vraiment sûr? Et pourquoi l'appelle-t-on Blockchain?

Tout le monde peut accéder au réseau bitcoin via une connexion anonyme (par exemple, le réseau TOR ou un réseau VPN ) et soumettre ou recevoir des transactions ne révélant rien d'autre que sa clé publique. Toutefois, si quelqu'un utilise la même clé publique à plusieurs reprises, il est possible de connecter toutes les transactions au même propriétaire. Le réseau bitcoin vous permet de générer autant de portefeuilles que vous le souhaitez, chacun avec ses propres clés privées et publiques. Cela vous permet de recevoir des paiements sur différents portefeuilles et il est impossible pour quiconque de savoir que vous possédez toutes les clés privées de ces portefeuilles, sauf si vous envoyez tous les bitcoins reçus à un seul portefeuille.
Le nombre total d'adresses de bitcoins possibles est 2¹⁶⁰ ou 1461501637330902918203684832716283019655932542976.
Ce nombre important protège le réseau des attaques éventuelles tout en permettant à quiconque de posséder un portefeuille.
Avec cette configuration, il reste un trou de sécurité majeur qui pourrait être exploité pour rappeler des bitcoins après les avoir dépensés. Les transactions étant passées d'un noeud à l'autre sur le réseau, l'ordre dans lequel deux transactions atteignent chaque noeud peut être différent. Un attaquant pourrait envoyer une transaction, attendre que la contrepartie expédie un produit, puis renvoyer une transaction inversée sur son propre compte. Dans ce cas, certains nœuds pourraient recevoir la deuxième transaction avant la première et par conséquent, considérer la transaction de paiement initiale comme invalide, car les entrées de la transaction seraient marquées comme étant déjà dépensées. Comment savez-vous quelle transaction a été demandée en premier? Il n'est pas sécurisé de commander les transactions par horodatagecar il pourrait facilement être contrefait. Par conséquent, il n’ya aucun moyen de savoir si une transaction a eu lieu avant une autre et cela ouvre la voie à une fraude potentielle.
Si cela se produit, il y aura désaccord entre les nœuds du réseau en ce qui concerne l'ordre des transactions reçues par chacun d'eux. Le système blockchain a donc été conçu pour utiliser l'accord de nœud pour ordonner les transactions et prévenir la fraude décrite ci-dessus.
Le réseau bitcoin ordonne les transactions en les regroupant en blocs ; chaque bloc contient un nombre défini de transactions et un lien vers le bloc précédent. C'est ce qui met un bloc après l'autre dans le temps. Les blocs sont donc organisés en une chaîne temporelle (Fig. 6) qui donne son nom à l'ensemble du système: blockchain .



Fig. 6 - La structure de séquence de la chaîne de blocs simplifiée
Les transactions dans le même bloc sont considérées comme ayant eu lieu au même moment et les transactions ne faisant pas encore partie d'un bloc sont considérées comme non confirmées. Chaque nœud peut regrouper des transactions dans un bloc et les diffuser sur le réseau en tant que suggestion pour le bloc suivant. Puisqu'un nœud peut suggérer un nouveau bloc, comment le système s'accorde-t-il sur le prochain bloc?
Pour être ajouté à la blockchain, chaque bloc doit contenir la réponse à un problème mathématique complexe créé à l'aide d'une fonction de hachage cryptographique irréversible La seule façon de résoudre un tel problème mathématique est de deviner des nombres aléatoires qui, combinés au contenu du bloc précédent, génèrent un résultat défini. Un ordinateur typique peut prendre environ un an pour deviner le bon nombre et résoudre le problème mathématique. Cependant, en raison du grand nombre d'ordinateurs sur le réseau qui supposent des chiffres, un bloc est résolu en moyenne toutes les 10 minutes. Le nœud qui résout le problème mathématique acquiert le droit de placer le prochain bloc sur la chaîne et de le diffuser sur le réseau.
Et si deux nœuds résolvent le problème en même temps et envoient leurs blocs au réseau simultanément? Dans ce cas, les deux blocs sont diffusés et chaque nœud s'appuie sur le bloc qu'il a reçu en premier. Cependant, le système blockchain requiert que chaque nœud construise immédiatement sur la plus longue blockchain disponible. Ainsi, s'il existe une ambiguïté sur le dernier bloc, dès que le bloc suivant est résolu, chaque nœud adopte la chaîne la plus longue comme seule option.

<

Fig.7 - Logique d'ambiguïté de fin de chaîne
En raison de la faible probabilité de résolution simultanée de blocs, il est presque impossible de résoudre plusieurs blocs en même temps, en créant différentes «queues», de sorte que la blockchain entière se stabilise rapidement en une seule chaîne de blocs sur laquelle chaque nœud est d'accord .
Un désaccord sur le bloc qui représente l'extrémité de la chaîne ouvre à nouveau le potentiel de fraude. Si une transaction se trouve dans un bloc appartenant à une extrémité plus courte (comme le bloc B sur la figure 7), une fois le bloc suivant résolu, cette transaction, ainsi que toutes les autres de son bloc, reviendra aux transactions non confirmées. .
Les transactions dans le système de blockchain Bitcoin sont protégées par une race mathématique: tout attaquant est en concurrence avec l’ensemble du réseau.
Voyons comment Mary pourrait exploiter cette ambiguïté de fin de chaîne pour mener une attaque à double dépense. Mary envoie de l'argent à John, John expédie le produit à Mary. Puisque les nœuds adoptent toujours la queue la plus longue comme transaction confirmée, si Mary pouvait générer une queue plus longue contenant une transaction inversée avec les mêmes références d'entrée, John serait à la fois à court d'argent et de produit.

<

Fig. 8 - La double dépense de Marie
Comment le système empêche-t-il ce type de fraude? Chaque bloc contient une référence au bloc précédent (voir Fig. 6). Cette référence fait partie du problème mathématique à résoudre pour étendre le bloc suivant au réseau. Il est donc extrêmement difficile de pré-calculer une série de blocs en raison du nombre élevé de suppositions aléatoires nécessaires pour résoudre un bloc et le placer sur la blockchain. Mary est dans une course contre le reste du réseau pour résoudre le problème de calcul qui lui permet de placer le bloc suivant sur la chaîne. Même si elle résout le problème avant tout le monde, il est très peu probable qu'elle puisse résoudre deux, trois ou plus de blocs d'affilée, car à chaque fois, elle est en concurrence avec l'ensemble du réseau.
Mary pourrait-elle utiliser un ordinateur super rapide pour générer suffisamment de suppositions aléatoires pour rivaliser avec l'ensemble du réseau dans la résolution de bloc? Oui, mais même avec un ordinateur très, très rapide, en raison du grand nombre de membres sur le réseau, il est très peu probable que Mary puisse résoudre plusieurs blocs à la fois au moment exact nécessaire pour effectuer une attaque à double dépense.
Elle aurait besoin de contrôler 50% de la puissance de calcul de l'ensemble du réseau pour avoir 50% des chances de résoudre un bloc avant un autre nœud - et même dans ce cas, elle n'aurait que 25% des chances de résoudre deux blocs. dans une rangée. Plus le nombre de blocages à résoudre est élevé, plus la probabilité de succès est faible. Les transactions dans le système blockchain de bitcoin sont protégées par une race mathématique: tout attaquant est en concurrence avec l’ensemble du réseau.
Par conséquent, les transactions deviennent plus sûres avec le temps. Les personnes incluses dans un bloc confirmé il y a une heure, par exemple, sont plus sûres que celles d'un bloc confirmé au cours des 10 dernières minutes Etant donné qu'un bloc est ajouté à la chaîne toutes les 10 minutes en moyenne, une transaction incluse dans un bloc pour la première fois il y a une heure a probablement été traitée et est maintenant irréversible.
<

Fig. 9 - Sécurité des transactions Blockchain

Miner Bitcoin

Pour envoyer des bitcoins, vous devez référencer une transaction entrante dans votre propre portefeuille. Cela s’applique à chaque transaction sur le réseau. Alors, d'où viennent les bitcoins?
Pour équilibrer la nature déflationniste du bitcoin due aux erreurs logicielles et à la perte du mot de passe du portefeuille, une récompense est donnée à ceux qui résolvent le problème mathématique de chaque bloc. L’exécution du logiciel de chaîne de blocs bitcoin afin d’obtenir ces récompenses bitcoin est appelée «exploitation minière» - et elle ressemble beaucoup à l’exploitation de l’or.

Les récompenses constituent la principale incitation des particuliers à exploiter les nœuds, ce qui leur donne la puissance de calcul nécessaire pour traiter les transactions et stabiliser le réseau de blockchain.
Parce qu'un ordinateur typique met longtemps à résoudre un bloc (environ un an en moyenne), les nœuds se regroupent en groupes qui divisent le nombre de suppositions pour résoudre le bloc suivant. Travailler en groupe accélère le processus consistant à deviner le bon nombre et à obtenir la récompense, qui est ensuite partagée entre les membres du groupe. Ces groupes s'appellent des pools miniers .
Certains de ces pools d’exploitation minière sont très volumineux et représentent plus de 20% de la puissance informatique totale du réseau. Cela a des implications claires pour la sécurité du réseau, comme le montre l'exemple ci-dessus de l'attaque par double dépense. Même si l'un de ces pools peut potentiellement gagner 50% de la puissance de calcul du réseau, plus un bloc se trouve en arrière de la chaîne, plus les transactions qu'il contient deviennent sécurisées.
Cependant, certains de ces pools miniers disposant d’une puissance de calcul importante ont décidé de limiter le nombre de leurs membres afin de préserver la sécurité globale du réseau.
Comme la puissance de calcul globale du réseau est susceptible d'augmenter avec le temps en raison des innovations technologiques et du nombre croissant de nœuds, le système blockchain recalibre la difficulté mathématique de résoudre le bloc suivant de manière à cibler 10 minutes en moyenne pour l'ensemble du réseau. Cela garantit la stabilité et la sécurité globale du réseau.
En outre, tous les quatre ans, le bloc de récompenses est divisé par deux, de sorte que l’exploitation de bitcoin (exploitation du réseau) devient moins intéressante au fil du temps. Pour encourager les nœuds à continuer à fonctionner, des frais de récompense minimes peuvent être associés à chaque transaction; ces récompenses sont collectées par le nœud qui inclut avec succès de telles transactions dans un bloc et résout son problème mathématique. En raison de ce mécanisme, les transactions associées à une récompense plus élevée sont généralement traitées plus rapidement que celles associées à une récompense faible. Cela signifie que, lors de l'envoi d'une transaction, vous pouvez décider si vous souhaitez la traiter plus rapidement (plus cher) ou moins cher (prend plus de temps). Les frais de transaction sur le réseau bitcoin sont actuellement très faibles comparés à ce que facturent les banques, et ils ne sont pas associés au montant de la transaction.

Blockchain Avantages et défis

Maintenant que vous avez compris le fonctionnement de la blockchain, voyons rapidement en quoi elle est si intéressante.
L'utilisation de la technologie de blockchain présente des avantages remarquables:
  • Vous avez le contrôle complet de la valeur que vous possédez; il n'y a pas de tiers qui détient votre valeur ou peut limiter votre accès à celle-ci.
  • Le coût pour effectuer une transaction de valeur de et vers n'importe où sur la planète est très faible. Cela permet des micro-paiements .
  • La valeur peut être transférée en quelques minutes et la transaction peut être considérée comme sécurisée au bout de quelques heures plutôt que de plusieurs jours ou plusieurs semaines.
  • N'importe qui à tout moment peut vérifier chaque transaction effectuée sur la blockchain, ce qui permet une transparence totale.
  • Il est possible de tirer parti de la technologie de la blockchain pour créer des applications décentralisées capables de gérer les informations et de transférer de la valeur rapidement et en toute sécurité.
Cependant, il reste quelques défis à relever:
  • Les transactions peuvent être envoyées et reçues de manière anonyme. Cela préserve la confidentialité des utilisateurs, mais permet également une activité illégale sur le réseau.
  • Bien que de nombreuses plates-formes d'échange émergent et que les monnaies numériques gagnent en popularité, il n'est toujours pas facile de négocier des bitcoins contre des biens et des services.
  • Le bitcoin, comme beaucoup d’autres crypto-monnaies, est très volatile: il n’ya pas beaucoup de bitcoins disponibles sur le marché et la demande évolue rapidement. Le prix des bitcoins est irrégulier et varie en fonction d’événements importants ou d’annonces dans le secteur des crypto-monnaies.
Dans l’ensemble, la technologie de la blockchain pourrait révolutionner plusieurs secteurs, de la publicité à la distribution d’énergie. Son principal pouvoir réside dans sa nature décentralisée et sa capacité à éliminer le besoin de confiance.

De nouveaux cas d'utilisation apparaissent constamment - comme la possibilité de créer une plate-forme entièrement décentralisée qui exécute des contrats intelligents comme Ethereum. Mais il est important de rappeler que la technologie en est encore à ses balbutiements. De nouveaux outils sont développés chaque jour pour améliorer la sécurité de la blockchain tout en offrant une gamme plus étendue de fonctionnalités, d’outils et de services.


ÉCRIT PAR

Michele D'Aliessi

Expliquer la technologie Blockchain en mots simples.