Les Principes de la Technologie Blockchain et leurs Applications

Les Blockchains peuvent être publics ou privés, autorisés ou de confiance. IBM Hyperledger et R3 Corda sont deux des chaînes d’entreprise les plus utilisées.
La mise en œuvre de solutions concrètes est encore limitée et incomplète.
L’espace continue d’évoluer et n’en est qu’à ses débuts. L’acceptation dans les entreprises est encore hésitante.
La navigation dans la zone de la blockchain peut être très difficile.
Un grand nombre d’articles ont été écrits sur ce sujet, dont beaucoup sont remplis d’air chaud et de hype ainsi que de jargon technique et autre.

Dans cet article, nous expliquerons la différence entre les deux industries principales des projets de la chaîne de blocs (publics et privés), ainsi que quelques termes techniques de base sur le sujet.

Cela nous permettra de répondre à une question fondamentale dans le débat actuel sur les chaînes de blocs et les solutions connexes : Quels sont les cas d’utilisation d’une chaîne de blocs publique et fiable par rapport à un grand livre privé distribué par rapport à une base de données traditionnelle ?

Termes les plus importants
Certains des termes les plus importants utilisés dans le domaine de la chaîne de blocs sont :

Tiers de confiance – Système dans lequel certains faits (par exemple l’identité des participants) ne peuvent être vérifiés que s’il est fait référence à une autorité privilégiée (souvent centralisée).

Non fiable – Un système qui ne dépend pas d’un tiers de confiance pour tous les aspects des opérations, y compris la confirmation des transactions ou la vérification de l’identité.

Proof-of-Work (POW) – Trouver la solution à un puzzle mathématique (typiquement un problème de hashage) qui n’a pas d’algorithme abrégé et qui doit donc être résolu par une puissance informatique brute.

UTXO – Dans certaines chaînes de blocs (par exemple Bitcoin), les transactions consomment des entrées et laissent une partie (la sortie) _non délivrée_. Ces dépenses inutilisées sont alors disponibles comme entrées pour des transactions futures.

Modèle de machine virtuelle (EVM) – Certaines blockchain (en particulier Ethereum) ont un modèle abstrait de la façon dont l’état général du système est représenté et comment cet état est mis à jour. Ce modèle peut généralement être décrit par un modèle formel d’une machine virtuelle, par exemple la machine virtuelle Ethereum (EVM).

Smart Contract – Un petit système déclenché par événement qui peut être utilisé dans une blockchain qui supporte l’exécution du programme. Après le déploiement, le programme continue à fonctionner, en utilisant les transactions du blockchain comme entrée, et des mesures peuvent être prises pour déclencher l’exécution de transactions supplémentaires. Le code du système est protégé cryptographiquement.

Turing-complet – Un terme informatique qui peut être lu comme un “langage de programmation à part entière”. Tous les langages courants comme Java, Javascript, Python, Rubin, Go, Rubin, etc. sont tous des langues Turing complètes. Pour des raisons techniques, certaines blockchain ne peuvent pas décider de ne pas mettre toute la puissance des langages Turing Complete à la disposition des rédacteurs de contrats intelligents.

Il y a beaucoup plus de détails sur chacun de ces termes, mais certains des aspects les plus importants sont les suivants :

La plupart des systèmes transactionnels dépendent entièrement ou partiellement de tiers de confiance. La confidentialité, par contre, est une caractéristique remarquable, mais elle n’est pas obtenue à peu de frais – elle exige une complexité et des efforts supplémentaires considérables pour qu’un système soit digne de confiance. La clé est l’algorithme POW pour le consensus, qui est utilisé par de nombreuses chaînes de blocs.

Une fois qu’une solution à un POW a été trouvée (essentiellement par essais et erreurs à grande échelle), l’exactitude de la solution peut être immédiatement démontrée par chaque participant. Les bons problèmes de POW ont des propriétés statistiques qui permettent à tout observateur d’estimer de façon fiable le temps de calcul qui a été consacré à la recherche d’une solution. Ils peuvent donc être utilisés comme mécanisme de consensus distribué dans les chaînes de blocage publiques (p. ex. Bitcoin).

Le modèle UTXO offre un moyen simple d’assurer l’intégrité des transactions et d’éviter que les mêmes bitcoins ne soient utilisés deux fois dans deux transactions distinctes (le problème des doubles dépenses). Pour ce faire, on s’assure que chaque entrée d’une transaction doit apparaître dans la base de données UTXO, la base de données des extrants.

En revanche, le modèle de machine virtuelle (implémenté par Ethereum en particulier) offre une extension significative – la possibilité de stocker des états arbitraires et d’exécuter des programmes simples dans le réseau de manière fiable et complètement à distance.
Maintenant que ces définitions clés (et certaines conséquences) ont été clarifiées, nous pouvons jeter un coup d’œil sur certaines des technologies basées sur la chaîne de blocs les plus importantes actuellement utilisées dans le monde.

 

BITCOIN

La cryptomonnaie originale dans le modèle UTXO (sortie de transaction non dépensée) pour le registre des comptes. Il utilise un algorithme POW simple pour le calcul des données minières, basé sur l’estimation d’une chaîne aléatoire qui, en combinant le hash SHA-256 du composite à celui du dernier bloc de transaction, donne un résultat moins grand qu’un seuil de faible valeur numérique.

Le participant qui a estimé avec succès la solution obtient un bloc ” germé ” et les transactions contenues dans ce bloc sont ajoutées au registre des mouvements.

Cela permet ensuite une méthode très simple pour atteindre un consensus – les participants conviennent simplement que la chaîne la plus longue doit être considérée comme la base du démantèlement du bloc de transaction suivant.

Bitcoin n’a pas été développé pour Smart Contracts. Par conséquent, les fonctionnalités disponibles sont extrêmement limitées, en particulier grâce à l’utilisation novatrice des canaux secondaires qui existent dans le protocole. La fonctionnalité résultante n’est en aucun cas complète et est simplement ignorée par la plupart des analyses de Bitcoin.

Le système qui en résulte est donc purement celui d’un grand registre de compte sécurisé cryptographiquement.

ETHEREUM

Ce registre s’appuie sur certaines des idées de Bitcoin, mais modélise l’état d’une machine virtuelle globale unique, et non le modèle UTXO. L’innovation la plus importante est l’ajout d’une option de contrat intelligent Turing-complet. Il s’agit de la Machine Virtuelle Ethereum (EVM), une VM conçue spécifiquement pour être utilisée dans un grand livre distribué avec des contrats intelligents.

Dans Ethereum, le statut du programme est privé et appartient à des adresses de contrats individuels et est modifié par une série de déclarations de bytecodes EVM représentant le contenu des contrats intelligents.
L’état global global est ensuite dérivé en agrégeant l’état du programme de chaque adresse de contrat.

Tous les nœuds complets du réseau Ethereum suivent les règles du modèle. Ils peuvent calculer l’état du système pour l’état de n’importe quelle adresse de contrat sur leur machine, et tant qu’ils utilisent les mêmes transactions (qui représentent les données d’entrée dans le modèle Ethereum), ils obtiennent le même résultat.

Comme Ethereum utilise un algorithme de consensus global et a un concept du bloc de construction global le plus récent, le taux de traitement global (c’est-à-dire la vitesse effective de temps) de la machine virtuelle Ethereum est limité par la vitesse de production du bloc. L’ajout de plus de ressources matérielles et de puissance de traitement au réseau Ethereum ne le rend pas plus rapide ou plus puissant, mais seulement plus inviolable.

L’utilisation de Smart Contracts complets de Turing permet d’ajouter des fonctions supplémentaires au réseau sans que tous les participants aient besoin de les connaître. De cette façon, par exemple, le réseau Ethereum peut émettre des tokens logiciels qui sont conservés comme un statut supplémentaire dans la machine virtuelle Ethereum. C’est ce qui constitue la base de ce que l’on appelle les Offres initiales de pièces (ICOs).

L’EVM est superficiellement similaire à l’EVM et à des systèmes comparables, mais dans certains domaines importants, il est conçu différemment. En particulier, la conception du byte code EVM rend l’analyse statique du code compilé beaucoup plus difficile qu’avec les alternatives établies. Il ne s’agit pas d’un argument de vente pour un environnement d’exécution qui exige un très haut niveau de transparence et de responsabilité.

L’environnement EVM de bas niveau n’est pas non plus un environnement de programmation particulièrement convivial. En conséquence, plusieurs langues mères ont été créées qui compilent jusqu’au byte code EVM. Le plus célèbre d’entre eux est Solidity.

Inspiré des langages de programmation populaires tels que Javascript et Java, le langage Solidity offre également de nouvelles fonctionnalités d’interaction avec la chaîne de blocs Ethereum.

Ethereum est en quelque sorte victime de son propre succès. Son émergence en tant que plate-forme privilégiée des OCI début 2018 a conduit à un prix élevé pour l’ETH (Ethereum token). Le niveau de cette monnaie cryptée, détenue par l’équipe d’Ethereum elle-même, a conduit de nombreux acteurs majeurs du marché à s’intéresser de près au statu quo et à la réalisation de leurs bénéfices sur papier.

CORDA

R3 Corda utilise le modèle UTXO (comme Bitcoin), mais inclut également des contrats intelligents complets de Turing dans la conception. Ces contrats sont représentés par des codes d’octets JVM, avec des garanties de déterminisme supplémentaires optionnelles limitant la sémantique des contrats.

L’approche n’utilise pas un verrouillage global unique (hauteur de bloc) pour contrôler la progression de l’état du ledger, mais permet plutôt d’exécuter en parallèle des transactions sans conflit. Il en résulte un grain fin et efficace de la serrure, au prix d’une idée plus complexe et subtile du temps et des horloges. Dans le modèle Corda, la simple règle “Longest Chain Wins” ne suffit plus comme algorithme de consensus.

Les participants sont connus et fiables parce que la vérification de l’identité par une tierce partie fait naturellement partie de l’architecture Corda.

Comme effet secondaire de la décision de lever le verrou du registre global, Corda offre une sémantique de sortie et d’entrée pour séparer les transactions de la chaîne principale et empêcher que toutes les transactions ne soient dévorées au fil du temps. Ceci est possible parce que l’architecture dépend fortement du modèle du tiers-partie de confiance.

Par conséquence, le pouvoir de certains participants de retirer de la circulation des positions du registre (l’équivalent des pièces dans les monnaies cryptographiques) et de les remplacer par des contreparties fraîchement frappées sans historique des transactions peut être garanti par les autorités chargées de l’identité.

Les créateurs de Corda donnent pas l’impression que c’est une crypto monnaie.
Elles considèrent plutôt la technologie comme la base d’une infrastructure commune au niveau du marché global et non au niveau d’une seule entreprise.

Corda se positionne ainsi comme une blockchain d’entreprise destinée aux entreprises qui peuvent bénéficier d’une infrastructure commune et d’une compréhension commune de l’état du monde, plutôt que de maintenir des versions séparées des enregistrements, ce qui conduit inévitablement à des problèmes de réconciliation.

HYPERLEDGER

Le projet HyperLedger lancé par IBM est une autre des solutions leader de la blockchain d’entreprise.
Le Fabric Hyperledger est une implémentation de framework en chaîne de blocs et l’un des projets Hyperledger hébergé par la Linux Foundation.
Les objecifs de conception clés d’IBM pour le projet incluent la confidentialité, la résilience, la flexibilité et l’évolutivité.
Comme Corda, Hyperledger utilise une architecture approuvée.
Il met en œuvre un algorithme déterministe pratique byzantin de tolérance aux pannes (PBFT) qui garantit qu’une transaction achevée, une fois déclarée, est effectivement exécutée.

IBM a investi dans une intégration solide des dockers, y compris des tests de conteneurs.
Smart Contracts pour Hyperledger peuvent être écrits en Java, avec un SDK disponible (les contrats Go sont également possibles).
Hyperledger sépare les nœuds par rôles, y compris les pairs titulaires, les nœuds d’autorité de certification (requis pour l’autorisation) et les Orderers, qui regroupent les transactions en blocs.

L’état de la blockchain de l’hyperledger est modélisé sous forme de mémoire de valeurs de clé versionnée (KVS), où les noms (chaînes de caractères) et les valeurs des clés sont des blobs arbitraires.
Il s’agit d’une interface de très bas niveau à travers laquelle Hyperledger fournit une couche appelée Ledger qui fournit un historique vérifiable de tous les changements d’état réussis.

Le code et l’architecture d’Hyperledger évoluent encore rapidement, mais les essais de production réels commencent et ils évoluent aux côtés de Corda pour devenir l’une des solutions les plus professionnelles.

CAS D’APPLICATION

Les cas d’utilisation des blockchain font encore l’objet de débats vifs.
Il y a l’exemple évident des monnaies digitales résistantes à la censure.
Toutefois, la volatilité et la fragmentation du marché de la cryptographie en 2018 semblent indiquer que l’applicabilité réelle des monnaies numériques de confiance est limitée.

Du point de vue de l’entreprise, il est clair qu’ils peuvent aussi servir à créer des systèmes ou des réseaux qui peuvent être utilisés comme une construction commune entre plusieurs entités qui ne se font pas nécessairement confiance, mais qui veulent tout de même partager des données et maintenir une forme de consensus qui est importante pour tous les intervenants.

Ces cas d’utilisation, où une autorité centralisée est inacceptable ou trop coûteuse à mettre en place pour les participants, se produisent encore.
Ceci malgré le temps, le travail et le capital-risque investis dans le grand nombre de projets de la chaîne de production en bloc mis en œuvre à ce jour.

Au fur et à mesure que d’autres projets seront lancés sur le marché en 2019, il reste à voir si la promesse de la chaîne en bloc apportera un jour le grand succès que ses partisans promettent depuis longtemps.

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *