Beaucoup de gens entrent dans le monde des cryptos sans vraiment comprendre les bases : la clé privée et la clé publique sur la chaîne, les principales blockchains, les exchanges, les portefeuilles, et surtout leurs relations. Moi aussi, pendant très longtemps, je n’arrivais pas à comprendre clairement comment tout cela se reliait. Aujourd’hui, le week-end aidant, comme j’ai du temps, je vais expliquer simplement et de façon imagée :
En fait, la clé privée et la clé publique ne sont que de longues chaînes de caractères. En termes simples : clé privée = mot de passe de la carte ; clé publique = numéro de carte ; les grandes blockchains = les banques de chaque maison (par exemple : chaîne Bitcoin = banque de Chine ; chaîne Ethereum = banque ICBC ; BSC Binance Chain = banque de construction). L’exchange = la maison de change pour échanger des actifs. Les portefeuilles sont soit des portefeuilles chauds, soit des portefeuilles froids. La différence dépend de la connexion : s’ils se trouvent sur des appareils connectés comme le téléphone ou l’ordinateur, on appelle cela des portefeuilles chauds. S’ils sont stockés sur des périphériques matériels hors-ligne (non connectés), et qu’ils doivent interagir avec le monde extérieur via un scan de QR code ou Bluetooth : il faut alors, sur ce matériel, appuyer sur l’action de signature pour transférer les actifs. Par exemple, le wallet keyPal vendu par le wallet TP est un portefeuille froid.
I. Clé privée et clé publique
Algorithme de chiffrement à sens unique (clé privée x irréversible) = clé publique (la clé publique correspond à l’adresse du portefeuille). La clé privée et la clé publique sont dans une relation bijective : une clé privée correspond à une clé publique. Donc, si l’on connaît la clé privée, on connaît la clé publique. Mais comme l’algorithme de chiffrement est irréversible, on ne peut pas déduire la clé privée à partir de la clé publique. Ainsi, chaque adresse de portefeuille correspond à une seule clé privée unique. Par exemple : un portefeuille BSC correspond à une clé privée ; un portefeuille Bitcoin correspond aussi à une clé privée. Donc, par exemple, lorsqu’on convertit un portefeuille Binance en portefeuille de clé privée, on voit beaucoup de lignes de clés privées : il y a des clés privées pour la chaîne BSC, des clés privées pour la chaîne Ethereum, et des clés privées pour la chaîne Bitcoin. En copiant ces clés privées et en les important dans, par exemple, le wallet TP, on restaure les adresses des portefeuilles correspondants sur chaque chaîne, et on peut alors voir les actifs stockés dans les portefeuilles de ces chaînes.
II. Transfert de fonds : bourse, dépôt, retrait
Un exchange ressemble à une grande maison de change. Quand vous ouvrez un compte sur un exchange, celui-ci crée automatiquement des comptes sur les principales blockchains (c’est-à-dire qu’il obtient les adresses de portefeuille des différentes blockchains ; l’adresse du portefeuille est la clé publique ; la clé privée correspondante est gérée par l’exchange). C’est comme si vous ouvriez un compte dans cette maison de change : la maison de change ouvre pour vous les comptes bancaires de chaque banque. Par exemple : l’adresse du portefeuille Bitcoin = le numéro de compte de la banque en Chine ; l’adresse du portefeuille Ethereum = le numéro de compte de la banque industrielle et commerciale ; l’adresse du portefeuille BSC (Binance Chain) = le numéro de compte de la banque de construction. Chaque numéro de compte correspond à un mot de passe unique : c’est la clé privée. La magie de la blockchain, c’est que celui qui possède ce mot de passe (la clé privée) possède les actifs dans le portefeuille. Autrement dit, il suffit de connaître le mot de passe de la carte : les actifs présents sur la carte vous appartiennent. Alors, quelqu’un peut se demander : puisque c’est un mot de passe, est-ce qu’un ordinateur pourrait le pirater ? En réalité, la probabilité est quasiment nulle. Ce n’est pas un code bancaire à 6 chiffres. La clé privée a 2^256 possibilités, soit environ 10^77. Le supercalculateur le plus puissant au monde peut faire 10^18 calculs par seconde. Imaginez : en une seconde, même si l’on chiffre à 10 mille milliards, cela reste seulement 10^15. Pour casser par brute force cette super-machine, il faudrait environ 10^77 ÷ 10^18 = 10^59 secondes, soit 10^51 ans. Depuis le Big Bang, l’univers n’a que 10^10 ans environ. Donc c’est 10^41 fois plus long que le temps de l’univers depuis le Big Bang. Pour réussir un crack, il faudrait d’abord louer le supercalculateur le plus avancé, puis se fixer un petit objectif : vivre 10^41 ans de plus que le Big Bang. Ensuite, toutes les adresses de portefeuilles se trouvent sur la chaîne, et la chaîne est publique et transparente. Donc il suffit de copier l’adresse du portefeuille dans, par exemple, un wallet d’observation comme TP, pour voir combien d’actifs se trouvent dans ce portefeuille. C’est comme connaître le numéro de carte : vous pouvez savoir combien d’argent se trouve sur cette carte. Ces adresses de portefeuille sont exécutées sur la chaîne : autrement dit, seules les opérations de dépôt et de transfert impliquent la chaîne. En temps normal, les échanges de valeur se font à l’intérieur de cette maison de change. À chaque transaction, la maison de change facture des frais de négociation (achat/vente) : c’est la source de profit de l’exchange. Donc l’exchange est centralisé, tandis que la chaîne est décentralisée. L’exchange a en plus ses propres serveurs de base de données locaux. La base de données enregistre les informations d’actifs de chaque utilisateur. C’est comme si la maison de change avait un système de comptabilité : la base de données ressemble au tableau ci-dessous :

En fonction de l’identifiant unique de chaque utilisateur, le système gère ensuite les éléments de données qui suivent. Par exemple, lorsque l’utilisateur 1 fait une transaction : à ce moment-là, il dispose de 200 USDT et de 5 BNB. Il veut acheter des BNB avec des USDT. Si chaque BNB vaut 100 U, après avoir acheté 1 BNB, la quantité d’USDT enregistrée dans la base de données devient 100 U, et le nombre de BNB passe à 6. Autre exemple : lorsque l’utilisateur 1 recharge 200 USDT depuis l’OKX via la chaîne de Tron vers Binance, l’ensemble du processus est en réalité comme un virement bancaire. Il faut d’abord choisir la banque vers laquelle transférer (la blockchain, donc le réseau), puis renseigner le numéro de compte (c’est-à-dire la clé publique, l’adresse du portefeuille), ensuite saisir le montant du transfert (200 yuans, soit USDT 200), enfin saisir le mot de passe de transfert (la clé privée). Autrement dit, le processus de transfert est complété, simplement en utilisant par exemple une empreinte digitale ou un code numérique à la place de la clé (le système associe la clé à l’empreinte via un mappage). Quand les 200 USDT de l’utilisateur 1 arrivent dans le portefeuille Tron de Binance, l’exchange détecte l’augmentation des actifs du portefeuille, puis transfère les USDT du portefeuille Tron de cet utilisateur vers le portefeuille chaud propre à l’exchange (équivalent au comptoir d’une maison de change). En même temps, dans la base de données locale de l’exchange, le solde USDT du registre de l’échange augmente de 200. Lorsque tous les comptes USDT de tous les utilisateurs sont regroupés dans ce portefeuille chaud, à intervalles réguliers, on les transfère vers un portefeuille froid (équivalent au coffre-fort). Le processus de retrait est similaire : lorsque le fonds du portefeuille chaud n’est pas suffisant, on prélève une partie du portefeuille froid.
Autrement dit, le compte plateforme créé par l’exchange sert à gérer toutes les clés privées et portefeuilles sur la chaîne pour l’ensemble des utilisateurs. Ici, il y a un problème : un utilisateur possède plusieurs clés privées. Pour plusieurs centaines de millions d’utilisateurs, le nombre de clés privées à gérer est forcément énorme, et en plus, c’est facile à perdre. Voilà pourquoi, dans les premiers temps, les exchanges utilisaient ce mode de gestion des clés privées. Aujourd’hui, les exchanges ont introduit la technologie HD (Hiérarchique Déterministe), c’est-à-dire une structure arborescente de chemins pour gérer les clés privées, comme suit :

L’exchange génère les clés privées finales sous la forme suivante : clé privée de racine + numéro de protocole de la blockchain + numéro d’index utilisateur, afin d’obtenir la clé privée de bout en bout. La clé privée génère ensuite l’adresse du portefeuille. Ainsi, il suffit de retenir une seule clé privée de racine. En connaissant cette clé, on connaît toutes les clés privées et adresses de tous les utilisateurs. Par exemple : clé privée de racine + m/44'/XX'/0'/0/ + numéro d’utilisateur, pour générer la clé privée de cette chaîne. Ici, XX=0 correspond à la chaîne Bitcoin, XX=60 correspond aux chaînes BSC et Ethereum. Elles appartiennent toutes deux à l’écosystème EVM, donc en réalité, les clés privées, clés publiques et adresses de portefeuille générées par ces deux blockchains sont identiques. C’est comme si le même utilisateur avait des comptes dans deux banques différentes : un utilisateur dispose des mêmes numéros de carte (adresse), même si les actifs se trouvent dans deux banques différentes. XX=195 correspond à la chaîne Tron. Prenons un exemple : CZ est le 1er employé de Binance, He Yi est le 2e employé. Lorsque He Yi ouvre un compte chez Binance, sur la chaîne Bitcoin, le système génère une clé privée Bitcoin à partir de la clé de racine + m/44'/0'/0'/0/2. Cette clé privée génère ensuite la clé publique, c’est-à-dire le portefeuille Bitcoin de He Yi. De la même façon, sur la chaîne BSC, le système génère une clé privée BSC à partir de la clé de racine + m/44'/60'/0'/0/2. Cette clé privée génère ensuite la clé publique, donc le portefeuille BSC de He Yi. Ainsi, en gérant une seule clé privée de racine, on gère l’ensemble des portefeuilles de l’exchange. Le principe des portefeuilles froids est le même : on génère cette clé privée de racine à partir d’un mnemonic (phrase de récupération). Après import de cette clé de racine, on obtient les actifs de cet utilisateur sur toutes les chaînes.