Home R&D Webnet Blockchain : Petits rappels avant toutes choses !

Blockchain : Petits rappels avant toutes choses !

  Oriane, Ingénieur R&D 5 min 22 février 2019
blockchain

Définition

Blockchain : Technologie de stockage et de transmission d’informations à coût minime, sécurisée, transparente, et fonctionnant sans organe central de contrôle. […]

Une blockchain peut donc être assimilée à un grand livre comptable transparent, pseudonyme et infalsifiable.

source : https://blockchainfrance.net/le-lexique-de-la-blockchain/ 

On peut extraire de cette définition les concepts clé suivants :

  • stockage de données : il s’agit avant tout d’une technologie de sauvegarde de données
  • sécurisée : les données sauvegardées sont cryptées, anonymisées
  • transparente : les données sauvegardées sont répliquées chez chaque utilisateur et vérifiables à tout moment elles sont donc infalsifiables (une tentative de falsification conduira à une incohérence avec tous les autres utilisateurs)
  • sans organe central de contrôle : les données sauvegardées sont distribuées (=dupliquées) dans un réseau peer-to-peer, chaque nœud de ce réseau prend part à la blockchain, au même titre que tous les autres nœuds.

 

Principe de fonctionnement

Les données sauvegardées dans cette « base de données distribuée » se présentent sous forme de blocs cryptés liés les uns aux autres par des clés. Un bloc contient plusieurs données (par exemple la description de transactions « A transfert x à B »). En rejouant la liste chaînée de blocs, n’importe quel utilisateur peut recalculer la situation courante, c’est pourquoi on parle de « transparence ».

Lors de l’ajout d’un nouveau bloc de données, la clé le liant au bloc précédent est recherchée par tous les utilisateurs du réseau et lorsqu’un consensus est trouvé, le bloc est ajouté de façon définitive par TOUS les utilisateurs. De cette façon, les blocs sont ajoutés les uns après les autres dans un ordre unique. La suite de blocs ainsi formée est partagée par tous les utilisateurs de la blockchain et ils peuvent vérifier les clés (=consensus trouvés) de chaque bloc, à tout moment, ce qui la rend infalsifiable.

C’est cette recherche de consensus qui met en œuvre des notions de mathématique et de cryptologie avancées et qui est la pierre angulaire du concept de blockchain. Nous détaillons cette notion ci-dessous.

L’image souvent utilisée pour décrire le principe de fonctionnement de la blockchain est celle d’un grand registre (ou livre de compte) :

  • dont TOUS les utilisateurs partagent une copie
  • auquel on ne peut qu’AJOUTER des lignes, ils est donc impossible de revenir sur une ligne déjà inscrite
  • et dans lequel tout le monde peut écrire sous réserve de partager la nouvelle écriture avec les autres

Recherche de consensus

Lors de l’ajout de nouvelles données, celles-ci sont encodées sont la forme d’un bloc, puis soumises à un processus de validation par les pairs.

Il s’agit de la résolution d’un problème algorithmique mettant en œuvre de la cryptographie. Plus précisément : on cherche un nombre tel que, combiné aux données du bloc actuel, au hash du bloc précédent et au timestamp, puis crypté selon une fonction de hachage connue, on obtienne un résultat (=hash) répondant aux critères suivants.

Le hash cible doit en réalité respecter une forme précise (et non une valeur précise) : il doit commencer par un certain nombre de 0. Plus ce nombre de 0 est grand plus le problème aléatoire est difficile. Plusieurs valeurs sont donc solutions de ce problème, c’est la première trouvée qui valide le bloc.

Comme la fonction de hachage est « non reversible », il est impossible de prévoir quel nombre répondra à cet énoncé. On doit donc tester aléatoirement un très grand nombre de valeurs. C’est ce qu’on appelle « miner ». Les utilisateurs actifs du réseau lancent de très nombreux calculs jusqu’à trouver un nombre qui est solution à ce problème. C’est ce qui demande une certaine puissance de calcul et consomme beaucoup d’énergie. Dès qu’une valeur satisfait le problème, on a un consensus. Tous les autres utilisateurs peuvent alors vérifier la validité de la valeur trouvée car la fonction de hachage est connue.

Lorsqu’une valeur aléatoire satisfaisante est trouvée, le bloc est validé et ajouté à la chaîne. Le nombre solution verrouille ainsi le bloc et sa position dans la chaîne. On parle de « preuve de travail ».

Selon la difficulté de ce problème aléatoire et les nombre d’utilisateurs qui « minent », la recherche de solution à ce problème peut prendre entre quelques secondes et plusieurs heures.

Mining et rémunérations

Seul le premier mineur trouvant une solution répondant au problème est récompensé pour la preuve de travail qu’il fournit. Tous les réseaux blockchain (même non monétaire) ont besoin de chiffrer cet effort et le récompenser grâce à la notion de jetons ou unité de compte (token). Ainsi l’utilisateur qui souhaite écrire un nouveau bloc doit disposer de jetons afin de rémunérer les mineurs travaillant pour son bloc.

 

Jusqu’alors, le cas d’usage le plus médiatisé de cette technologie de stockage est celui des crypto-monnaies, pour lesquelles ces jetons ont directement une valeur financière en monnaie classique. Le système de stockage en blockchain stocke ainsi toutes les transactions de cette monnaie virtuelle depuis la création du réseau. Souvent un bloc contient plusieurs transactions.  Par exemple, le réseau Bitcoin a comme unité de compte (=jeton) le bitcoin et le réseau Ethereum permet d’échanger des Ether (ETH)

 

D’autres cas d’usage possibles pour ce genre de réseaux de stockage sont les transferts d’autres types d’actifs que de la monnaie, des registres sécurisés et infalsifiables ou encore des contrats intelligents (smart contract) contenant des scripts exécutés automatiquement par la blockchain elle-même.

Smart contract et dApp

Le réseau Ethereum ne se limite à l’usage monétaire présenté ci-dessus, il permet également aux utilisateurs de déployer dans ses blocs de véritables petits programmes autonomes pouvant exécuter les conditions définies dans la blockchain. Ces contrat intelligents (smart contracts) se présentent sous forme d’objets stockés dans un bloc de la blockchain et contenant du code informatique décrivant son propre comportement. On parle d’applications décentralisées ou dApps.

Par exemple on peut imaginer signer un contrat spécifiant que dans certaines conditions, un remboursement nous sera fait. Le contrat est stocké définitivement dans la blockchain Ethereum, il est donc infalsifiable. Si les conditions sont réunies, les fonds nous seront automatiquement transférés en Ether sur le réseau sans la moindre intervention humaine (ni demande, ni arbitrage, ni validation). Le déploiement et l’exécution de ces contrats est lui aussi payant sous forme de jetons afin de récompenser les mineurs.

Quel intérêt pour nous, développeurs ?

Nous l’avons vu, la blockchain intègre de nombreux mécanismes de sécurité qui permettent de s’assurer de l’intégrité des données qui y sont présentes. Outre l’usage classique financier dont vous avez certainement entendu parler, nous avons voulu essayer de tirer parti de ces mécanismes pour des usages différents. Nous vous présentons ces derniers dans cette suite d’article qui commence ici : Créer sa blockchain privée

Sources : https://blockchainfrance.net/decouvrir-la-blockchain/c-est-quoi-la-blockchain/

Lire les articles similaires

Laisser un commentaire

Social Share Buttons and Icons powered by Ultimatelysocial