Registre distribué

(Redirigé depuis Blockchain)

La technologie de registre distribué a le vent en poupe depuis quelques années (depuis la popularisation des cryptomonnaies telles que le bitcoin).

Le principe très grossier d’un registre distribué est de faire valider un registre d’information (une liste d’informations) par une communauté ouverte et décentralisée d’utilisateur, à l’inverse des systèmes traditionnels où il y a un « maître des données » et une structure hiérarchique qui maintiennent la cohérence des données.

Définition

Smile définit cette techologie ainsi :

Les données entrant dans la blockchain sont notamment figées (immutables), prouvées (grâce à des techniques cryptographiques), transparentes. Dans une chaîne classique, ouverte et publique, un nombre élevé d’utilisateurs diminue le risque de disparition de la chaîne, puisque chaque noeud (chaque intervenant) dispose d’une copie valide et intègre de la blockchain.

Noeud et compte

Chaque intervenant dans une blockchain dispose d’un compte, auquel on associe une bi-clé (ou clé asymétrique), afin de pouvoir signer les transactions. L’identifiant de compte est unique et peut être anonyme (ou tout au moins pseudonyme). Un noeud désigne une machine sur le réseau, qui peut être simple utilisatrice de la blockchain ou alors elle peut également miner pour la chaîne.

Blocs et validation

Par construction, une blockchain est une liste de blocs de données, ordonnés et validés. Chaque bloc est composé d’un ensemble de transactions (dont on a vérifié la validité d’après les règles définies pour la chaîne en question).

La validation consiste à résoudre un « casse-tête » mathématique (souvent cryptographique) associé au bloc ; le résultat doit être difficile à trouver pour éviter les falsifications mais facile à vérifier. Un calcul de hash se prête très bien à cette problématique. Une fois le bloc validé, toutes les transactions incluses dans le bloc sont ainsi validées et donc irréfutables, et le bloc est incorporé dans la chaîne. Généralement, le bloc est accompagné d’un en-tête qui contient son hash et l’identifiant du bloc précédent (d’où la structure chaînée des blocs).

Smart Contract

Un « contrat intelligent » est un programme informatique autonome dont le code contrôle et conditionne, sous certaines conditions (internes ou externes à la chaîne), le transfert de devises ou d’actifs entre différentes parties. Une application possible est un contrat d’assurance qui déclenche automatiquement une transaction dans la blockchain en fonction de certaines conditions, comme rembourser le prix de votre séjour de vacances si la météo a été trop mauvaise ou votre billet d’avion s’il a trop de retard. Attention : malgré son nom, un Smart Contract est bien un programme appliquant un contrat juridique, et non un contrat en lui-même.

Le problème principal des smart contracts est leur fiabilité, en raison de l'irréversibilité des opérations introduites dans une blockchain. Ces contrats doivent, en théorie, être fiables et parfaits, aussi bien techniquement que fonctionnellement. Or, comme il s'agit de programmes, ils sont fatalement imparfaits et sujets aux bogues et erreurs de conception. En 2018, des chercheurs[1] ont estimé qu'une partie non négligeable de ces contrats (environ 3,5% d'entre eux) avaient des anomalies très sérieuses[2]. La vérification de la qualité devient un enjeu de sécurité, plusieurs chercheurs se penchent sur le sujet[3].

Liens externes

Articles liés

Références

  1. (en) Ivica Nikolic et al., « FindingTheGreedy,Prodigal,andSuicidalContractsatScale » [PDF], sur arxiv.org, (arXiv 1802.06038v1, consulté le 6 mars 2018)
  2. (en) Catalin Cimpanu, « Researchers Find 34,200 Vulnerable Ethereum Smart Contracts », sur Bleeping Computers, (consulté le 6 mars 2018)
  3. (en) David Manners, « Fujitsu algorithm identifies Blockchain risks », sur ElectronicsWeekly.com,