Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

TP2e année4 livrables

Manipule une blockchain en direct

Tu as vu les films ce matin. Cet après-midi, tu mets les mains dans une vraie blockchain (dans ton navigateur) — et tu prépares le contrat que tu coderas demain.

Par Josselyn C., prof de BTS SIO. Publié le , mis à jour le .

Outil
blockchain-live.html (ouvre-le dans Chrome)
Déroulé
4 étapes · 4 flags à rendre
Pour qui
SLAM, 2e année
Durée
environ 3 h
Prérequis
Aucun.
Matériel
Chrome et l'outil blockchain-live.html, qui tourne hors ligne.

À télécharger : blockchain-live.html (l'outil, à ouvrir dans Chrome)

Compétences : C3.4 Garantir la disponibilité, l'intégrité et la confidentialité, C3.5 Assurer la cybersécurité d'une solution applicative

Avant de commencer

Ce matin tu as vu qui a inventé Bitcoin et comment on arnaque les gens autour (Bitconned). Reste une question : comment une blockchain marche-t-elle, techniquement ? Tu vas le découvrir en la manipulant toi-même — pas en l'écoutant.

Avance dans l'ordre : 4 onglets = 4 étapes. Pour chaque étape, tu fais, tu regardes ce qui se passe, tu retiens le concept, et tu rends un flag (ta preuve que tu as compris, pas recopié). Les flags A à D se remplissent sur cette feuille.

Les 4 notions que tu vas toucher

NotionÀ quoi ça sert
Le hash (SHA-256)une empreinte unique d'un contenu — la brique qui rend la triche visible.
Le bloc & la chaînerelier les données pour qu'on ne puisse pas réécrire le passé.
Le minage (51 %)pourquoi falsifier une blockchain est infaisable.
Le smart contractdu code qui gère l'argent tout seul — ce que tu codes demain.

Étape 1 — Le hachoir

Onglet 1 · Le hachoir. Deux cases de texte, deux empreintes SHA-256 calculées en direct.

Ce que tu fais

  1. Tape Bonjour GSB dans la 1re case. Regarde l'empreinte de 64 caractères.
  2. Dans la 2e case, change une seule lettre (une majuscule, un espace).
  3. Regarde la ligne « comparaison caractère par caractère » en bas.

Tu dois voir — une lettre de différence, et les deux empreintes n'ont presque aucun caractère commun (tout rouge). L'empreinte « explose » au moindre changement.

Le concept

Une fonction de hachage cryptographique transforme n'importe quelle donnée (un mot, un fichier de 4 Go, peu importe) en une empreinte de taille fixe. SHA-256 sort toujours 256 bits = 64 caractères hexadécimaux. Ses quatre propriétés sont ce qui fait tenir toute la blockchain :

  • Déterministe — la même entrée donne toujours la même empreinte. C'est ce qui permet à tous les nœuds de vérifier et de tomber d'accord.
  • À sens unique — de l'empreinte, impossible de remonter au texte. On ne peut que deviner-et-tester.
  • Effet avalanche — change un seul bit, en moyenne la moitié des bits de l'empreinte changent. Aucun « rapprochement » possible.
  • Résistance aux collisions — trouver deux textes différents avec la même empreinte est réputé infaisable.

Pourquoi c'est incassable. SHA-256 a 2²⁵⁶ empreintes possibles, soit environ 10⁷⁷ — de l'ordre du nombre d'atomes dans l'univers observable. Inverser un hash par force brute demanderait d'essayer la moitié de cet espace : hors de portée de toute la puissance de calcul de la planète, pour des milliards d'années. Ce n'est pas « difficile », c'est pratiquement impossible — et c'est une propriété mathématique, pas une promesse d'entreprise.

Tu connais déjà cette famille : le bcrypt qui hache les mots de passe (lab cracking), le checksum qui vérifie qu'un fichier n'a pas été altéré. En blockchain, le hash sert à sceller les blocs.

FLAG A

à rendre

Essaie de trouver deux textes différents qui donnent la même empreinte.

Tu y es arrivé ? Pourquoi (en une phrase) ?

Indice : on appelle ça une « collision », et c'est justement ce qu'une bonne fonction de hachage rend infaisable.

0 sur 4 dans cette étape

Étape 2 — La chaîne

Onglet 2 · La chaîne. Chaque bloc contient : des données, le hash du bloc précédent (prev), un nonce, et son propre hash.

hash du bloc = SHA-256( numéro + données + prev + nonce )

Ce que tu fais

  1. Ajoute un bloc, écris une transaction (ex. « Léa envoie 5 à Tom »), clique Miner ce bloc.
  2. Observe le hash obtenu : il commence par des zéros.
  3. Modifie maintenant les données d'un vieux bloc (le #0 par exemple).

Tu dois voir — dès que tu changes un vieux bloc, toute la chaîne derrière passe en rouge (« Chaîne cassée ») : le prev des blocs suivants ne correspond plus.

Le concept

La chaîne. Chaque bloc embarque le hash du précédent. Ils sont soudés les uns aux autres — d'où le nom block-chain.

Le minage = preuve de travail (Proof of Work). Un bloc n'est accepté que si son hash commence par des zéros. Tu ne choisis pas le hash : tu testes des nonces jusqu'à tomber juste. C'est dur à produire, instantané à vérifier — toute l'astuce est là.

L'immuabilité. Changer une ligne du passé change son hash, donc casse tous les blocs suivants. Impossible de le cacher.

Les vrais chiffres (Bitcoin). Dans l'outil, la difficulté = « 3 ou 4 zéros ». Chez Bitcoin, la cible est bien plus dure et s'ajuste automatiquement (tous les 2016 blocs, ~2 semaines) pour qu'un bloc sorte toutes les ~10 minutes, quelle que soit la puissance branchée. Cette puissance se compte en centaines de trillions de milliards de hachages par seconde — colossal, et c'est ce qui coûte tant d'électricité.

Ce n'est pas la seule façon. Depuis 2022 (« The Merge »), Ethereum utilise la preuve d'enjeu (Proof of Stake) : au lieu de brûler de l'électricité, on immobilise des jetons en garantie, et tricher fait perdre sa mise — ~99,9 % d'énergie en moins. PoW et PoS sont deux mécanismes de consensus : deux façons, pour un réseau sans chef, de se mettre d'accord sur le même registre.

FLAG B

à rendre

En haut de l'onglet, monte la difficulté de 3 à 4 puis 5, et mine un bloc à chaque niveau.

Qu'est-ce qui change (temps ? nonce trouvé ?) quand la difficulté monte ?

0 sur 4 dans cette étape

Étape 3 — Le défi du voleur

Onglet 3 · Le défi du voleur. Une chaîne de 4 blocs déjà minés. Le bloc #2 dit « Marc envoie 50 à Paul ». Tu es Paul.

Ce que tu fais

  1. Clique Démarrer le réseau : le réseau honnête se met à miner tout seul, en continu.
  2. Réécris le bloc #2 en « Marc envoie 500 à Paul ».
  3. Essaie de remettre ta chaîne valide et de rattraper le compteur « réseau honnête ». Tu as 3 minutes.

Tu dois voir — tu cours après un compteur qui monte tout seul. Même en re-minant à fond, « ta chaîne valide » reste derrière « réseau honnête ». L'écart se creuse.

Le concept

Le réseau suit une règle simple : la plus longue chaîne valide fait foi (c'est elle qui a accumulé le plus de travail). Pour imposer ta version, il faut donc que ta chaîne dépasse celle du réseau. Or il ne s'arrête jamais : tu devrais re-miner plus vite que tout le monde réuni, donc contrôler plus de la moitié de la puissance. C'est l'attaque des 51 %.

Les confirmations. Plus il y a de blocs par-dessus une transaction, plus la réécrire coûte cher. C'est pourquoi un commerçant attend des confirmations : sur Bitcoin, la convention est d'attendre ~6 blocs (≈ 1 heure) pour un gros montant. La sécurité est probabiliste : jamais « certaine » à 100 %, mais tellement improbable à casser que c'est équivalent.

Ça arrive pour de vrai. Le 51 % ne menace que les petits réseaux, où louer assez de puissance reste abordable : Ethereum Classic (2019, 2020) et Bitcoin Gold (2018, 2020) ont été attaqués ainsi, pour des millions « double-dépensés ». Sur Bitcoin, réunir 51 % coûterait des milliards — absurde. La sécurité vient donc autant de la décentralisation que des maths.

FLAG C

à rendre

Combien de blocs as-tu dû re-miner ? Le réseau t'a-t-il dépassé (de combien) ?

Complète : « Réécrire l'histoire d'une blockchain est infaisable parce que… »

0 sur 4 dans cette étape

Étape 4 — La cagnotte

Onglet 4 · Le contrat Cagnotte. On passe du registre d'argent au registre de code : un smart contract.

Ce que tu fais

  1. Scénario A (objectif raté) : déploie (objectif 20, deadline 5), fais contribuer pour un total inférieur à 20 (ex. n°4 : 8), puis « Avancer d'un bloc » jusqu'au bloc 5.
  2. Scénario B (objectif atteint) : recharge la page, recommence avec un total ≥ 20.

Tu dois voir — à la deadline, le contrat applique sa règle tout seul : il rembourse chacun si l'objectif est raté, il verse à l'organisateur s'il est atteint. Personne n'a décidé à la place du code.

Le concept

Un smart contract = du code posé sur la blockchain qui s'exécute automatiquement, sans intermédiaire. C'est l'invention d'Ethereum (2015, Vitalik Buterin) : une blockchain qui stocke non plus que de l'argent, mais des programmes. Ils tournent sur l'EVM (Ethereum Virtual Machine), un ordinateur mondial répliqué sur des milliers de machines qui exécutent toutes le même code et arrivent au même résultat.

Une cagnotte Leetchi : tu fais confiance à la plateforme (commission) et à l'organisateur (qui peut partir avec l'argent). Un smart contract : zéro tiers de confiance, le code fait exactement ce qui est écrit, et personne ne peut l'empêcher de tourner.

Le gas. Chaque opération d'un contrat coûte une petite somme (le « gas »), payée par celui qui l'appelle : ça rémunère le réseau et empêche d'écrire des programmes qui tourneraient à l'infini. Les oracles. Un contrat ne « voit » que la blockchain, pas le monde réel (le cours de l'euro, la météo…) : pour ça on utilise des oracles, des services qui injectent une donnée extérieure — et c'est le gros point faible à surveiller.

FLAG D

à rendre

Scénario A : qu'a fait le contrat ? Scénario B : qu'a-t-il fait ?

Pendant la cagnotte, qui détient l'argent ? (pas « l'organisateur »…)

0 sur 4 dans cette étape

Ce que l'app ne montre pas : les clés

Dans l'outil, un bloc dit « Marc envoie 50 à Paul ». Mais comment sait-on que c'est vraiment Marc qui a envoyé, et pas quelqu'un qui écrit son nom ? Réponse : la cryptographie à clés — le deuxième pilier (le hash étant le premier).

Deux clés, un principe

La clé privée est un secret énorme, que toi seul connais, que tu ne partages jamais : c'est elle qui prouve que tu es toi. La clé publique (et ton adresse) en est dérivée, et elle est publique : c'est ton « numéro de compte » que tu donnes pour recevoir. On calcule facilement la publique à partir de la privée, mais jamais l'inverse (encore du « à sens unique »).

Signer une transaction

Pour envoyer, Marc signe sa transaction avec sa clé privée. N'importe qui peut alors vérifier, avec la clé publique de Marc, que la signature est bien de lui — sans jamais voir sa clé privée. Et la signature dépend du contenu exact : changer un chiffre la rend invalide. Impossible de forger « Marc envoie 500 » sans sa clé privée.

Les deux piliers se complètent : le hash garantit l'intégrité (rien n'a été modifié), la signature garantit l'authenticité (c'est bien l'auteur). Ensemble, ils remplacent la banque : plus besoin d'un tiers pour dire « ce virement est légitime ».

Les grands principes à retenir

Au-delà de l'outil, voici les précepts qui définissent une blockchain. Si tu dois expliquer « c'est quoi une blockchain » à quelqu'un, c'est ça.

PrincipeCe que ça veut dire
Registre distribuéTout le monde détient la même copie du grand livre de comptes. Pas de serveur central qui pourrait tomber, mentir, ou être saisi.
DécentralisationAucune autorité unique ne commande. La confiance ne vient pas d'une institution, mais du protocole et du nombre de participants.
ConsensusLa règle qui permet à un réseau sans chef de se mettre d'accord sur le même état : preuve de travail (Bitcoin) ou preuve d'enjeu (Ethereum).
ImmuabilitéLe chaînage de hash fige le passé : réécrire un vieux bloc casse tous les suivants, et le réseau le rejette.
CryptographieHash (intégrité : rien n'a bougé) + signatures à clés (authenticité : c'est bien l'auteur, et lui seul peut dépenser).
Transparence & pseudonymatToutes les transactions sont publiques et vérifiables par quiconque — mais rattachées à des adresses, pas à des noms.
Trustless« Don't trust, verify » : tu ne fais confiance à personne, tu vérifies toi-même. La philosophie de fond.
IncitationsLes mineurs/validateurs sont payés pour sécuriser le réseau. L'intérêt économique de chacun protège l'ensemble.

Ce que ça prépare pour demain

Demain, tu écris cette cagnotte pour de vrai, en Solidity (le langage des smart contracts). Tout ce que tu viens de manipuler devient du code. Garde ce tableau : c'est le pont.

Dans l'app aujourd'huiDemain, en Solidity
L'objectif et la deadline de la cagnottedes variables d'état : objectif, deadline
Un pote qui contribue avec un montantune fonction contribuer() qui reçoit de l'argent (payable)
La règle « si total ≥ objectif, sinon… »un require(...) et un if / else
« La deadline est passée »une comparaison sur le temps (block.timestamp)
« Personne ne peut changer la règle »le contrat déployé, immuable sur la blockchain
L'argent tenu par le contratle solde du contrat, versé par transfer

Glossaire express

Hash / SHA-256empreinte unique d'un contenu, à sens unique.
Noncele nombre qu'on fait varier pour miner un bloc.
Preuve de travaill'effort de minage qui protège la chaîne.
Attaque des 51 %contrôler plus de la moitié du réseau pour réécrire le passé (infaisable).
Smart contractcode sur la blockchain qui s'exécute seul, sans intermédiaire.
Solidityle langage pour écrire les smart contracts (demain).

Compétences mobilisées (référentiel BTS SIO SLAM)

Bloc 3 · Cybersécurité des services informatiques
→ C3.4 Garantir la disponibilité, l'intégrité et la confidentialité des services et des données (intégrité par le chaînage de hash, registre infalsifiable).
→ C3.5 Assurer la cybersécurité d'une solution applicative (fonction de hachage, immuabilité, « code is law » et ses risques).

TP terminé ?

Coche chaque livrable quand tu l'as : c'est la preuve que l'étape est acquise.

livrables
–
de série
–
Voir tous les TP