Explication du livre blanc TON : Démystifier la technologie derrière la blockchain la plus rapide au monde

Le 31 octobre 2023, TON (anciennement Telegram Open Network) a établi un nouveau record du monde, atteignant un pic stupéfiant de 104 715 transactions par seconde lors de son premier test public en direct, complétant un total de 107 652 545 transactions en 25 minutes. Vérifiée et confirmée par Certik, cette performance fait de TON la blockchain la plus rapide et la plus évolutive au monde, surpassant les vitesses de traitement de toutes les blockchains L1 et des principaux réseaux de paiement centralisés tels que PayPal, Visa et Mastercard.

TON est sans aucun doute un projet remarquable. Dans cet article, nous examinerons en profondeur le livre blanc de TON, révélant ses caractéristiques techniques et ses innovations uniques et pourquoi TON est la blockchain la plus rapide au monde.

! Analyse du livre blanc TON : Démystifier la technologie derrière la blockchain la plus rapide au monde

Défis de mise à l’échelle

L’évolutivité a été un énorme défi dans le développement de la technologie blockchain. L’objectif principal du schéma de mise à l’échelle de la blockchain est d’augmenter le débit du système et de réduire les frais de transaction, afin que le réseau blockchain puisse traiter plus de transactions et mieux s’adapter aux applications à grande échelle. Bien que différentes chaînes publiques continuent d’essayer de nouveaux consensus et de nouvelles conceptions d’architecture, les résultats actuels sont toujours insatisfaisants et sont devenus un goulot d’étranglement pour que la blockchain évolue vers une application à grande échelle, ce qui est difficile à réaliser notre vision d’un milliard d’utilisateurs TG. À l’heure actuelle, les solutions de mise à l’échelle courantes peuvent être divisées dans les catégories suivantes :

Partitionnement : division du réseau en parties plus petites, chacune capable de traiter les transactions et les contrats intelligents en parallèle, ce qui augmente considérablement le débit du réseau. Mais le sharding s’accompagne de problèmes de sécurité potentiels, car chaque partition peut être moins sécurisée que l’ensemble du réseau. De plus, la communication entre partitions est un défi technique. Exemples représentatifs : les protocoles Ethereum 2.0 et NEAR.

Sidechains : Une sidechain est un type de blockchain qui fonctionne indépendamment de la chaîne principale, et qui peut avoir son propre mécanisme de consensus et ses propres paramètres de bloc. Avec les sidechains, les utilisateurs peuvent transférer des actifs entre deux chaînes, déchargeant ainsi la charge sur la chaîne principale. Exemple représentatif : Polygon

Solutions de couche 2 : En construisant une autre couche au-dessus de la chaîne principale, L2 est en mesure de fournir des délais de confirmation de transaction plus rapides et des frais de transaction réduits. Prenez les L2 plus connus, Optimism et Arbitrum : tous deux sont des solutions de mise à l’échelle conçues spécifiquement pour Ethereum. Par conséquent, une partie de l’architecture d’Optimism et d’Arbitrum se trouve sur la couche 1. Avec la mise à niveau d’Ethereum, leur limite supérieure de transactions par seconde (TPS) est passée de 2-4k à environ 2w.

zkSync 2.0 : Par rapport au plafond TPS de zkSync 1.0 de plusieurs centaines, zkSync 2.0 apporte des améliorations significatives. L’équipe de zkSync affirme que sa version 2.0 peut atteindre la limite supérieure de 10w TPS, mais la plupart des institutions prédisent que la véritable limite supérieure pourrait être de 1 à 2w. Starknet : Après avoir terminé la mise à niveau vers Quantum Leap en juin, son TPS est maintenant légèrement supérieur à 100TPS.

Solana : Solana utilise un algorithme de consensus innovant appelé Proof of History (PoH) comme cœur de sa solution de mise à l’échelle. Alors que Solana prétend avoir jusqu’à 65 000 TPS, la plupart d’entre eux agissent en fait comme une communication entre les nœuds. Le volume réel des transactions ne peut être plafonné qu’à 6-8k TPS. De plus, en raison de la conception de son mécanisme de consensus centralisé, Solana a connu de multiples temps d’arrêt face à un grand nombre de demandes, comme lors de la frappe de NFT. De plus, Solana n’a pas encore réussi à mettre en œuvre la rotation du nœud central.

La blockchain TON est conçue par le fondateur et l’équipe principale de Telegram. En tant que l’une des plateformes sociales les plus populaires au monde, Telegram compte près de 900 millions d’utilisateurs actifs mensuels, offrant une expérience utilisateur stable et fluide tout en maintenant un niveau élevé de sécurité et de confidentialité, avec des dizaines de milliards de messages transmis chaque jour dans le logiciel. Le concept de web3 est devenu relativement bien connu, mais les utilisateurs crypto-natifs sont encore une minorité, et la plupart s’appuient sur des échanges centralisés pour accéder au jeton. Metamask, le portefeuille de cryptomonnaies décentralisé le plus populaire au monde, ne compte actuellement que 30 millions d’utilisateurs actifs mensuels. Et la philosophie de conception de TON a été basée sur le service à des milliards d’utilisateurs depuis le début, et pas seulement à quelques geeks du web3.

! Analyse du livre blanc TON : Démystifier la technologie derrière la blockchain la plus rapide au monde

Paradigme de partitionnement infini

Le Sharding est un concept issu de la conception de bases de données. Il s’agit de fractionner un grand ensemble de données logiques, puis de le distribuer sur plusieurs bases de données qui ne sont pas partagées entre elles, qui peuvent être distribuées sur plusieurs serveurs. En termes simples, le partitionnement offre la possibilité d’évoluer horizontalement, ce qui permet de décomposer les données en parties indépendantes qui peuvent être traitées en parallèle.

TON n’est pas le premier projet à introduire la technologie de sharding dans la blockchain, par exemple, Ethereum 2.0 a déjà annoncé un fixe de 64 shards, puis abandonné en raison d’une trop grande difficulté, tandis que le protocole Night Shadow de NEAR prévoit d’atteindre 100 shards l’année prochaine, et il y a actuellement 4 shards.

Contrairement aux méthodes de partitionnement traditionnelles, TON utilise une stratégie de partitionnement infini.

Cependant, l’approche de TON est considérée comme avancée non pas parce qu’elle a plus de partitions, mais en raison de deux caractéristiques uniques :

  • Le nombre de partitions n’est pas fixe : TON prend en charge un nombre croissant de partitions en fonction des besoins de l’entreprise, jusqu’à 2^60 chaînes de travail, ce qui est presque infini.
  • Nombre élastique de partitions : TON peut automatiquement diviser les partitions lorsque la charge du système est élevée et les fusionner lorsque la charge est faible. Il s’agit d’une stratégie très efficace pour faire face au besoin de mise à l’échelle dynamique.

! Analyse du livre blanc TON : Démystifier la technologie derrière la blockchain la plus rapide au monde

Actuellement, TON se compose de deux chaînes de travail, la chaîne principale (Masterchain) pour la synchronisation et la gouvernance, et la chaîne de travail (Workchain) pour les contrats intelligents. En dessous de la chaîne de travail se trouve la chaîne de partitions et le niveau le plus bas de la chaîne de comptes virtuels (Accountchain)

La chaîne de travail peut être divisée en N éclats (de 1 à 256 éclats). Chaque partition a son propre groupe de validateurs. L’équipe de la chaîne de travail est responsable de l’exécution des transactions dans ses propres partitions. Dans le même temps, il télécharge constamment des blocs à partir de tous les autres fragments de sa chaîne de travail. En général, une blockchain est une série de blocs qui enregistrent les changements dans leur état. Pour les blockchains POS, les validateurs se mettent d’abord d’accord sur la façon dont ils veulent changer l’état de la blockchain en compilant un bloc contenant une liste de modifications. Après avoir voté pour ce bloc, si suffisamment de votes sont collectés, ils appliquent le bloc à l’état de la blockchain et passent au bloc suivant.

Le débit d’un thread de bloc est très limité car les validateurs doivent vérifier toutes les transactions dans ce bloc avant d’accepter de l’accepter. Il y a donc beaucoup de threads dans TON, et vous pouvez simplement les considérer comme des mini-micro-blockchains. Ils existent en parallèle, et chacun a son propre ensemble de validateurs.

Chaîne principale

La chaîne principale est le filetage du bloc principal en TON. Il est utilisé pour synchroniser tous les blocs restants et recalculer l’ensemble des validateurs. Lorsque tous les threads se mettent d’accord sur un nouveau bloc, ils le signent et l’enregistrent auprès de la chaîne principale. Cependant, les validateurs de la chaîne principale ne vérifient pas la validité du bloc, ils vérifient seulement s’il est signé par le validateur approprié. Ainsi, beaucoup de fils peuvent coexister en parallèle. Les contrats de différents fils de discussion communiquent entre eux en envoyant des messages.

Chaîne de travail

Une chaîne de travail est un espace d’adressage indépendant qui peut être exécuté selon ses règles. Par exemple, ils peuvent avoir des machines virtuelles différentes ou allonger le temps nécessaire à la publication de blocs avec des limites de gaz élevées. Plus important encore, les chaînes de travail doivent avoir le même format de file d’attente de messages afin qu’elles puissent échanger des messages. Cela signifie également que toutes les chaînes de travail doivent avoir à peu près les mêmes garanties de sécurité. Puisqu’ils peuvent échanger des messages, ces messages portent des jetons de réseau. Il y a maintenant deux chaînes de travail actives : la chaîne principale et la première chaîne de travail de transformation. La chaîne de travail est déterminée par le préfixe d’adresse : -1 :ax... 1s2 - L’adresse du compte dans la chaîne principale. -1 est le préfixe de la chaîne principale.

0 :zx... 123 - L’adresse du compte dans la première chaîne de travail. 0 - est le premier préfixe à traiter la chaîne de travail.

Chaînes d’éclats

Un thread de traitement, ou chaîne de partitions, est un thread de bloc indépendant qui traite une chaîne de travail. Par défaut, la chaîne de travail 0 n’a qu’un seul thread et une seule chaîne. Les validateurs de ce thread acceptent les messages externes et gèrent les messages internes qu’ils envoient eux-mêmes ou qu’ils envoient à partir d’autres chaînes de travail. S’il y a une situation où un thread est surchargé au cours des N derniers blocs, le thread est divisé : un thread est divisé en deux et les transactions sont effectuées en parallèle.

Les adresses commencent par 0 :00 : - 0:88.. Le compte au début est maintenant dans le thread 1 avec le compte 0 :88 : . - 0 :FF.. Situé dans le fil 2. Étant donné que tous les contrats intelligents communiquent de manière asynchrone entre eux sans aucun problème, le débit a triplé. Lorsque la charge diminue, les threads fusionnent à nouveau après un certain temps. Si la charge continue d’augmenter, les deux fils peuvent être divisés encore et encore, et ainsi de suite. Il n’y a qu’un seul fil sur la chaîne principale.

Les blocs dans TON sont plus qu’une simple liste de transactions qui doivent être effectuées pour réaliser un changement d’état. Au lieu de cela, un bloc est :

Liste des messages qui exécutent une transaction, en les supprimant de la file d’attente entrante. Un nouveau message entre dans la file d’attente sortante après le traitement du message, puis le traitement du message entraîne une modification de l’état du contrat intelligent. En d’autres termes, pour que le validateur de la partition X puisse maintenir l’état actuel de la partition Y, il n’a pas besoin d’exécuter toutes les transactions dans le bloc de partition Y. Il se contente de télécharger le bloc et de résumer les modifications qui ont eu lieu. Se produit dans les files d’attente de messages et les états de contrat intelligent.

Changer fondamentalement le monde de la blockchain ne peut pas aller sans prix. Afin de tirer parti de cette approche radicale, les développeurs de contrats intelligents TON doivent concevoir leurs contrats différemment. L’unité atomique de base de la blockchain TON est le contrat intelligent. Les contrats intelligents ont des adresses, du code et des unités de données (état persistant). De telles unités sont appelées unités atomiques car les contrats intelligents ont toujours un accès atomiquement synchronisé à tous leurs états persistants.

Routage réseau Hypercube

TON a créé un mécanisme de routage intelligent pour s’assurer que les transactions entre deux blockchains sont toujours traitées rapidement, quelle que soit la taille du système, et que le temps nécessaire pour envoyer des informations entre les blockchains TON n’augmente que de manière logarithmique avec le nombre de chaînes, de sorte que même la mise à l’échelle de millions de chaînes leur permet de communiquer à la vitesse la plus rapide.

Dans la blockchain TON, l’Instant Hypercube Routing et le Slow Routing sont deux mécanismes de routage utilisés pour gérer les transactions inter-chaînes.

! Analyse du livre blanc TON : Démystifier la technologie derrière la blockchain la plus rapide au monde

Routage instantané Hypercube : L’idée de TON est d’accélérer le routage des messages, permettant d’effectuer des transactions inter-chaînes en une fraction du temps. Dans le routage de cube lent traditionnel, un message est acheminé par une chaîne de partitions le long du réseau hypercube vers la chaîne de partitions de destination. Cependant, lors de l’acheminement des messages, le validateur auquel appartient la chaîne de partitions de destination peut choisir de traiter le message à l’avance pour l’ajouter au bloc, puis fournir une preuve de Merkel (reçu) et envoyer un accusé de réception pour détruire le message en cours de transmission. Il permet d’effectuer des transactions inter-chaînes dans un laps de temps très court. Le routage rapide permet d’obtenir une interaction inter-chaînes efficace en construisant une structure de routage cubique de grande dimension. Dans cette structure, chaque chaîne est mappée à un sommet du cube et la distance entre les chaînes est exprimée sous la forme du nombre de sauts entre les sommets. Grâce à cette approche, les transactions peuvent être acheminées rapidement sur le chemin le plus court, ce qui rend les interactions inter-chaînes efficaces. Le routage rapide permet d’effectuer des transactions inter-chaînes en quelques secondes sans attendre les confirmations de bloc.

Routage lent : Le routage lent est une méthode relativement traditionnelle de traitement des transactions inter-chaînes en transférant progressivement les transactions de la chaîne source à la chaîne de destination. Dans cette méthode, les transactions sont d’abord regroupées dans un bloc de la chaîne source, puis transférées vers la chaîne de destination via un relayer. Le validateur de la chaîne de destination vérifie la validité de la transaction, puis l’empaquette dans un bloc de la chaîne de destination. L’avantage du routage lent par rapport au routage rapide est qu’il offre un degré plus élevé de sécurité et de décentralisation, car les transactions inter-chaînes doivent passer par un processus de confirmation de bloc complet. À l’instar d’un réseau TCP/IP, l’adresse IP de destination est adressée à la destination pour s’assurer que les messages sont transmis de manière fiable à la chaîne de destination dans l’ordre. Pour un réseau hypercube de chaîne de partitions d’échelle N, le saut intermédiaire de chaîne de partitions = log16(N)-1 doit passer. Par conséquent, seuls 4 nœuds de routage (chaînes de partitions intermédiaires) sont nécessaires pour prendre en charge des millions de chaînes de partitions.

Pourquoi est-il conçu de cette façon ? **

Des validateurs sont nécessaires pour la distribution. Si le système est très grand, avec des dizaines de milliers de nœuds, il est trop surchargé pour être mis à l’échelle. Après le partitionnement, chaque partition a un ensemble, shard0, shard1... Il est également nécessaire d’obtenir une communication entre partitions. La communication peut être interpartitionnée, et passer d’une partition à une autre signifie qu’il doit y avoir un mécanisme de routage pour les partitions et les partitions. La connexion forme une route qui passe par un nœud intermédiaire. Chaque fois qu’un message est acheminé, cela équivaut à une augmentation du temps de transmission d’un temps de bloc.

Au fur et à mesure que le nombre total de chaînes de partitions augmente, cela nécessitera beaucoup de puissance de calcul et de bande passante réseau, ce qui limitera l’évolutivité du système. Par conséquent, il n’est pas possible de remettre un message directement d’une partition à toutes les autres partitions. Au lieu de cela, chaque partition est uniquement « connectée » à une partition différente avec un nombre hexadécimal sur son identificateur de partition (w,s). De cette façon, toutes les chaînes de fragments forment un graphe « hypercube », et les messages sont transmis le long des bords de cet hypercube.

Si un message est envoyé à une partition différente de la partition actuelle, un numéro hexadécimal de l’identificateur de partition actuel (choisi de manière déterministe) sera remplacé par le numéro correspondant de la partition cible, et l’identificateur résultant servira de destination approximative pour devenir le destinataire du message transféré.

Le principal avantage du routage hypercube est la condition de validité des blocs, où les validateurs qui créent des blocs d’une chaîne de partitions doivent collecter et traiter les messages de la file d’attente de sortie des chaînes de partitions « voisines » ou perdre leur jalonnement. De cette façon, on peut s’attendre à ce que tout message atteigne sa destination finale tôt ou tard ; Les messages ne sont ni perdus en transit ni redistribués.

Le routage Hypercube introduit une latence et des dépenses supplémentaires en raison de la nécessité de transférer les messages via plusieurs chaînes de partitions intermédiaires. Cependant, le nombre de ces chaînes de fragments intermédiaires augmente très lentement, ce qui est lié au log N du nombre total de chaînes de fragments.

La communication est asynchrone

Le contrat intelligent sur TON met en œuvre une communication asynchrone, qui peut être comparée aux microservices Internet. Chaque microservice dispose uniquement d’un accès synchronisé atomiquement à ses données locales. La communication entre deux microservices implique l’envoi de messages asynchrones sur le réseau.

Dans l’architecture système, les systèmes plus importants nécessitent souvent l’architecture de microservices. Cette approche distribuée nécessite un certain compromis à adopter, mais peut apporter des avantages en termes d’expérience utilisateur. La gestion moderne des systèmes s’appuie sur des séquenceurs tels que Kubernetes pour prendre un ensemble de microservices conteneurisés et lancer automatiquement de nouvelles instances selon les besoins (mise à l’échelle automatique) et les partitionner efficacement entre les machines.

Pour utiliser l’analogie de Kubernetes (Massive Cluster Management System), c’est exactement ce que fait TON. Au fur et à mesure que la charge sur une chaîne de partitions particulière augmente, elle est divisée en deux parties. Étant donné que les contrats intelligents sont atomiques, ils ne sont jamais divisés en deux. Cela signifie que certains contrats intelligents qui se trouvaient autrefois sur la même chaîne de partitions peuvent un jour se retrouver sur des chaînes de partitions différentes.

La machine virtuelle (TVM) de TON applique le concept de microservices distribués à une architecture globale qui se compare à l’EVM d’Ethereum.

Décentralisation de l’État

Il s’agit de l’un des mécanismes de partitionnement les plus complexes et les plus difficiles dans le domaine du partitionnement. L’ensemble de la base de données est fractionné et placé sur différentes partitions. Chaque partition stocke toutes les données dans sa propre partition, et non dans l’état de l’ensemble de la blockchain.

Dans le partitionnement de la blockchain TON, tous les services sont mis en œuvre sous la forme de contrats intelligents, et les données d’état des contrats intelligents ne sont stockées que dans le réseau de partitions correspondant, afin d’obtenir un partitionnement d’état.

De plus, dans TON, le contrat a atteint un chemin de mise en œuvre unique dans l’industrie, où chaque utilisateur peut gérer l’état du jeton dans son propre contrat, réalisant ainsi véritablement la décentralisation de l’état de la blockchain. J’explorerai en détail les principes de cette conception à travers des études de cas.

Tout d’abord, vous devez comprendre le contrat Wallet et le contrat Jetton Wallet. Le contrat Wallet est un contrat intelligent spécifique à l’utilisateur qui gère les jetons de l’utilisateur sur la blockchain TON. Jetton (russe : Jewel) Le contrat de portefeuille est un type spécial de contrat de portefeuille dédié à la gestion des jetons Jetton de l’utilisateur. Ces jetons peuvent être utilisés pour payer les frais de réseau et exécuter des contrats intelligents. Chaque utilisateur dispose de son propre contrat Wallet et de son propre contrat Jetton Wallet. Ces contrats agissent comme des portefeuilles numériques permettant aux utilisateurs de stocker et de gérer leurs jetons. Dans le même temps, ces contrats peuvent également interagir avec les contrats d’autres utilisateurs pour permettre le transfert et le trading d’actifs décentralisés.

Dans ce cas, il est supposé que l’utilisateur A et l’utilisateur B ont chacun leur propre contrat de portefeuille. L’utilisateur A souhaite transférer un certain nombre de jetons à l’utilisateur B. Dans ce cas, le contrat de portefeuille de l’utilisateur A interagit avec le contrat de portefeuille de l’utilisateur B pour réaliser le transfert de jetons. L’ensemble du processus n’a pas besoin de s’appuyer sur un contrat centralisé, mais sur deux contrats décentralisés.

Les utilisateurs de la blockchain TON ont tous leurs propres contrats pour gérer l’état de leurs actifs, ce qui signifie qu’il n’y a pas de contrat centralisé unique pour prendre le risque de gérer tous les actifs. Cela augmente la décentralisation du système et réduit le risque d’un point de défaillance unique. L’état des actifs de tous les utilisateurs est géré par un contrat dédié, et un attaquant ne peut pas affecter l’ensemble du système en attaquant un seul contrat centralisé. Les transactions d’actifs entre les utilisateurs peuvent également être exécutées automatiquement par le biais de contrats intelligents, évitant ainsi le risque d’opération humaine. Vous pouvez également personnaliser votre propre contrat de portefeuille et votre contrat de portefeuille Jetton en fonction de vos besoins pour obtenir plus de fonctions et de scénarios d’application. Cela donne aux utilisateurs plus de flexibilité et d’autonomie. Chacun gère l’état des actifs dans son propre contrat, et l’évolutivité du système est améliorée. À mesure que le nombre d’utilisateurs augmente, le nombre de contrats augmente également, mais cela n’exerce pas une pression excessive sur l’ensemble du système, car chaque contrat fonctionne indépendamment.

Ce qui précède est mon analyse de l’évolutivité de la blockchain TON et de l’architecture technique du livre blanc, merci au Dr Awesome Doge pour avoir édité la première version. Merci aux équipes de développement russes et ukrainiennes pour leur persévérance et enfin au fondateur de Telegram, M. Nikolai Durov, pour son grand design il y a de nombreuses années, et ceux-ci sont pour la gloire de l’esprit humain.

Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Reposter
  • Partager
Commentaire
0/400
Aucun commentaire
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)