03/05/2021
Cybersecurity Insights
Introduction, comprendre la Blockchain | Partie 1
La blockchain est à la confiance ce que l’internet a été à la communication
Le Nouvel Economiste.fr
Définitions
La Blockchain est vue différemment selon qui nous sommes.
Technique
La blockchain est une base de données transactionnelle sécurisée, distribuée, décentralisée et sans organe central de contrôle.
Juridique
La blockchain valide des transactions, elle remplace l’entité de confiance.
Business
Un réseau d’échange de transactions, de valeur, d’actifs auditables entre des confrères sans l’assistance d’un intermédiaire.
Rentrons plus en détails dans la définition technique.
Pour cela, revenons sur chacun des mots.
BASE DE DONNEES
Transactionnelle
- Auditable
- Les données sont sous un format de transaction entre 2 interlocuteurs
- Une transaction est composée de transactions
Sécurisée
- Cryptographie avancée
- Théorie des jeux
- Pas de single point of failure
Distribuée
- Intégrité
- Tous les participants du réseau Peer To Peer ont une copie
Décentralisée
- Transparence
- Chaque block possède un Hash du block précédent
- Tout le monde possède les mêmes droits
Sans organe central
- Confiance
- Suppression des tiers de confiance
- La Blockchain est une base de données transactionnelle, la donnée de base stockée est une transaction.
- La Blockchain est sécurisée by design grâce à des outils de cryptographie, elle utilise la théorie des jeux dans la résolution de problème et elle ne possède pas de point de défaillance unique.
- Une copie de la Blockchain est distribuée à un ensemble de participants.
- La Blockchain fonctionne sur un réseau P2P, tout le monde est Client et Serveur.
- La gestion de la Blockchain est effectuée par la communauté, donc il n’y a pas d’organe central de contrôle.
Création de la blockchain
Le 31 Octobre 2008, Satoshi Nakamoto publie « Bitcoin: A Peer-to-Peer Electronic Cash System » sur le blog de cryptographie Metzdown.com. Cet article résout quelques problèmes :
- Le problème de double dépense dans un réseau P2P
- Pas de tiers de confiance
- Les participants peuvent être anonymes
- L’apport de monnaie s’effectue lors d’une validation, exemple Proof-Of-Work
Satoshi Nakamoto échange des mails du mois d’Octobre au 9 Janvier 2009 avec la liste de diffusion du blog Metzdown.com afin d’améliorer la première implémentation du code Bitcoin. Le 9 Janvier 2009, le code du Bitcoin est publié.
Qui est Satoshi Nakamoto ?
Satoshi Nakamoto est un pseudonyme. On possède peu d’information le concernant.
- Il est probablement Japonais
- Il possède 1 million de BTC
Dorian Prentice Satoshi Nakamoto, un développeur de logiciels, est présenté comme Satoshi Nakamoto par le média Newsweek dans un article de mars 2014. Avec un tel nom, difficile d’échapper aux questions. La nouvelle provoque un mini séisme dans le milieu des crypto-monnaies. La communauté crypto est à l’époque consternée par ce procédé, elle soutient d’ailleurs fortement Dorian Nakamoto, et met en place un fonds pour lui permettre de collecter 67 BTC.
Bitcoin vs. Blockchain
Le Bitcoin est une implémentation de la Blockchain, c’est un cas d’utilisation financier.
Le Bitcoin est une manière d’utiliser la Blockchain. Comme l’argent ou le papier journal sont des utilisations du papier.
Un système financier décentralisé et distribué
Le Bitcoin est une implémentation de la Blockchain, c’est un cas d’utilisation financier.
Le Bitcoin est une manière d’utiliser la Blockchain. Comme l’argent ou le papier journal sont des utilisations du papier.
Il y a 1500 ans, il était une fois l’île de Yap…
Afin de vous vulgariser la Blockchain, voici une vidéo :
Contexte: Un système financier non centralisé avec une monnaie non transportable
La base de donnée distribuée et décentralisée
Comparons ici une base de données classique et une Blockchain :
Actions possibles sur la Blockchain
A la différence d’une BDD classique où les actions sont Create-Read-Update-Delete, il y a deux actions possibles sur la Blockchain :
En conséquence les autres actions sont prohibées
Les types de données
La Blockchain possède 2 types de données.
Donnée transaction
- Composée de transactions
- Possède un destinataire et un expéditeur
- Peut être associée à une valeur (Bitcoin) ou un binaire (un hash)
Donnée logique
- Nommée Smart Contract
- Se déclenche sous certaines préconditions
- Effectue des actions sur la Blockchain
- Langage de développement spécifique pour chaque Blockchain
Les Smart Contracts
Afin de faciliter la compréhension de ce qu’est un Smart Contract, voici un exemple :
- Déploiement du Smart Contract sur la Blockchain
- Un utilisateur souscrit une assurance retard lors de la réservation de son vol
- Le vol a un retard
- Le Smart contract déclenche l’indemnisation de l’utilisateur
Acteurs de la validation de donnée
Blockchain Privée
- Une entité possède la Blockchain
- Stockée sur des serveurs internes
- B2C
- Acteurs connus
- Besoin d’authentification
Blockchain de consortium
- Un groupe d’entité possède la Blockchain
- Chaque entité stocke la Blockchain
- B2C – B2B
- Acteurs connus
- Besoin d’authentification
Blockchain Publique
- La Blockchain est en ligne
- Personne ne la possède
- N’importe qui peut stocker la Blockchain
- C2C
- Acteurs inconnus
Validation de la donnée
A chaque validation, seul un acteur est autorisé à valider la donnée. Pour déterminer cet acteur il existe deux procédés, le vote et la compétition.
Le type de validation dépend également de l’architecture de la Blockchain (privé, public, consortium).
L’algorithme utilisé afin de valider la donnée se nomme consensus.
Le consensus
Voici un tableau de quelques algorithmes de validation de donnée :
- Haute scalabilité
- Peu polluant
- Rend le réseau très difficile à attaquer
- Consensus décentralisé
- Très énergivore
- Basse scabilité
- Pas d’attaque externe possible car les valideurs sont connus
- Transaction rapide, Bloc 5min
- Peu polluant
- Pas vraiment décentralisé car valideurs internes
- Si le valideur est compromis, danger
- Hautement scalable
- Peu polluant
- Très dépendant aux technos Intel, même si l’algorithme est open source
Les consensus de type compétition sont plus sécurisées que ceux de type vote. Pour le moment les Blockchain de type public utilisent principalement des consensus de type compétition. Le consensus le plus utilisé est le Poof-Of-Work (PoW).
Proof Of Work
Voici en exemple l’implémentatoin du Proof-of-Work par la Blockchain Bitcoin
- Récupération du nouveau lot de transactions & le header du bloc précédent
- Calcul du Hash (lot transaction + header + Nonce)
- La valeur du Hash est-elle inférieure à la valeur du « difficulty target » ?
- Oui – c’est votre bloc qui est ajouté à la Blockchain, vous êtes récompensé avec 6,25 BTC
- Non – y a-t-il un autre mineur qui a réussi ?
- Oui – son bloc est ajouté
- Non – on incrémente la valeur du Nonce et recalcule le Hash (lot transaction + header + Nonce) et on recommence tant qu’aucun bloc n’est validé
Ce qu'il faut retenir
- La Blockchain est une base de données décentralisée et distribuée
- Le process de validation de donnée sur la Blockchain se nomme consensus
- Il existe plusieurs algorithmes de consensus
- Il y a une donnée logique stockée sur la Blockchain, les Smarts Contracts
- Un Smart Contract se déclenche lors de certaines préconditions et il exécute une action sur la Blockchain
- Seules deux actions sont possibles : la lecture et l’écriture
- Le Bitcoin est une implémentation de la Blockchain, comme le billet est une implémentation du papier
Hamza ARFAOUI
Consultant