4 juillet 2024

Crypto-monnaie GRAM sur la chaîne de blocs TON (Telegram Open Network)

Crypto-monnaie GRAM sur la chaîne de blocs TON (Telegram Open Network)

Sergey Prilutsky, célèbre expert blockchain, chef du département de recherche chez MixBytes et du projet SmartZpendant le Telegram Eventing a partagé des informations détaillées sur le projet de Pavel Durov TON.

Les données ont été obtenues après avoir étudié des informations classifiées sur l'état actuel du développement de TON et intéresseront non seulement les spécialistes, mais également un large éventail d'investisseurs potentiels.

Information publique

Le financement pour le développement du projet TON a étécollectés au cours de deux tours d’ICO fermés. Grâce à cela, il a été possible de collecter 1,7 milliard de dollars d'investissements, la taille minimale des parts était de 20 millions de dollars et environ 100 investisseurs ont participé à l'ICO, parmi lesquels Roman Abramovich.

Crypto-monnaie GRAM sur la chaîne de blocs TON (Telegram Open Network)

</ p>

L'ensemble du volume de la crypto-monnaie interne du projet sera publié immédiatement et s'élèvera à 5 milliards de pièces GRAM. Après le lancement du projet, les jetons ICO des investisseurs seront échangés contre des pièces dans un rapport de 1 à 1.

Caractéristiques techniques de la blockchain TON

Dans le réseau TON, le consensus est assuré par desnœuds de validation qui reçoivent une commission pour leurs services. Quelque chose de similaire est implémenté dans le protocole Ripple. L'authenticité de la transaction est confirmée à l'aide de l'algorithme BFT (tâche des généraux byzantins).

Crypto-monnaie GRAM sur la chaîne de blocs TON (Telegram Open Network)

</ p>

Les micropaiements ne sont pas affichés immédiatement dans la blockchain,seul leur hash est visible. Pour garantir la validité des microtransactions, chaque validateur doit disposer sur le compte d’un dépôt de garantie en pièces de monnaie GRAM, qui est fourni par les candidats.

Le validateur ne peut pas faire plus de transactions,qu'il est en mesure de fournir avec des pièces de garantie. En cas de paiement erroné, le validateur et le proposant transfèrent des pièces de monnaie sur les comptes des autres validateurs à partir de ce montant afin de couvrir les frais de leur transaction.

Chaque hôte est responsable de sa partblockchain, qui est divisé en petits morceaux - des tessons (shardes). Avec une augmentation significative de la charge du réseau, une partie des fragments peut être transférée aux nœuds de réseau voisins.

Les développeurs de TON ont appelé cette idée “Infinite Sharding”. La structure similaire de la blockchain permet non seulement de partager facilement des fragments, mais également de réparer automatiquement les zones endommagées.

Informations de recherche sur l'écosystème TON

Sergei Prilutsky a mené une profondeétude du projet TON, au cours de laquelle des caractéristiques intéressantes du nouveau projet ont fait surface. Ci-dessous, nous vous proposons de vous familiariser avec des informations détaillées sur la structure et les fonctionnalités de la plate-forme blockchain de Telegram Open Network (TON).

L'idée d'Infinite Sharding

Le concept principal de la plateforme TON est le message. L'utilisateur peut l'envoyer de l'extérieur de la blockchain à l'adresse de n'importe quel compte système. Une telle procédure entraîne la création d'un message pour les autres comptes du réseau. De plus, l’état d’un compte individuel peut être imaginé sous la forme de sa propre blockchain (accountchain). C'est en soi un référentiel de messages entrants et sortants.

De nombreux comptes Shard (shardes) fusionnentdans Shardchain, une blockchain desservie par un nœud de validation. La composition interne d'une telle chaîne de fragments peut changer de manière dynamique, en fonction de la charge sur un nœud de réseau particulier.

Beaucoup de shardchains s'unissent dans une chaîne de travail(Workchain), une autre structure blockchain, en raison du même préfixe dans son adresse. A leur tour, toutes les chaînes de travail forment une chaîne principale, qui est la blockchain générale du réseau TON. Laissez-nous nous arrêter plus en détail sur ces structures.

Masterchain

Masterchain est la chaîne principale,qui définit les règles pour toutes les chaînes de chaînes de blocs de niveau inférieur. Son rôle est de surveiller et de gérer l'état global de l'ensemble du réseau ouvert Telegram.

La particularité de la chaîne principale est qu’elle n’a pasramification et fusion de parties individuelles, c.-à-d. en cela, elle ressemble à une blockchain classique. Chaque bloc de la chaîne principale contient les hachages des derniers blocs de fragments organisés dans une arborescence binaire et stocke le statut des contrats intelligents du système, ainsi que leur code. Contrôle PoS, données sur les validateurs, les participants du réseau - tout cela est stocké dans la chaîne principale. Cependant, aucune information précise sur ce sujet n'a pu être trouvée, et celle qui est peu fiable et non définitive.

La gestion Masterchain est basée sur des contrats intelligents système contenant de tels paramètres globaux:

  • Le nombre total et les autres caractéristiques de la pièce GRAM.
  • Liste des nœuds du validateur, paramètres de leur part, adresse du contrat par lequel une sélection mensuelle de nouveaux validateurs est effectuée.
  • Paramètres TVM (TON Virtual Machine), sa version, les prix minimaux et maximaux de l'essence - similaires à Ethereum.
  • Contrats intelligents de jetons supplémentaires et de leur statut.

Il est important que tous les changements dans les paramètres TON globaux soient acceptés par consensus de plus des 2/3 de tous les validateurs conformément à l'algorithme BFT.

Chaîne de travail

La chaîne de travail est une blockchain conditionnelle qui combine le même type de chardchain. Son identifiant est un préfixe pour le numéro d'identification des fragments, il est nécessaire pour le routage exact des messages.

TON a beaucoup de place pourde nombreuses chaînes de travail (2 ^ 32, ce qui correspond à environ 4,3 milliards de chaînes de travail) et dans chacune d’elles, vous pouvez organiser votre propre logique de message. Par exemple, un atelier peut servir des contrats Ethereum, et l'autre peut implémenter des UTXO anonymes (pièces non dépensées), comme dans ZCash.

Shardchain

Shardchayn est la principale unité de travail deRéseau TON. Shardchain est une chaîne séparée de blocs qui envoie et reçoit des messages d’autres fragments, c.-à-d. c'est une blockchain servant ses comptes.

Chaque validateur contient une liste complèteleurs tessons et seulement une partie des pâtés de maisons des voisins. Le validateur produit de nouveaux blocs dans son shardchyn, envoyant et recevant des messages d'autres fragments. A ce niveau, il est déjà possible de séparer et de fusionner des chaînes de blocs de chaînes de fragments. Schématiquement, cela ressemble à un DAG (graphe acyclique dirigé), où chaque bloc a plusieurs parents, qui sont les derniers blocs des chaînes partagées.

Blocs éclatés

Chaque bloc de partition doit contenir un certain ensemble de données requis, appelé partie indivisible. Il comprend:

  • Le hachage du bloc précédent, et éventuellement les hachages des parents en cas de fusion des shardchains.
  • Signatures du validateur pour les blocs déjà acceptés.
  • Numéro de la dernière chaîne de bloc maître connue.
  • Hachage de l'état initial et final du fragment pour ce bloc.
  • Une file d'attente de messages sortants sous la forme d'une liste de messages envoyés à d'autres fragments.

Accountchain

Une chaîne de compte est une blockchain TON d'entrée de gamme. Chaque identifiant de compte est un identifiant clé + chaîne de travail de 256 bits. Par exemple, l'adresse d'un contrat intelligent ressemblerait à ceci:

1: 81525a3672b55678d4139b993b542c5c9735ac41b653d963a42855c9834b6921a4.

Et l'adresse du compte d'utilisateur est comme ceci:

Ef + BVndfdQ45nUdlsfsmv68KBHGSgBJsfsv58dG2SE4oPMgs4.

Le compte lui-même reçoit et reçoit des messages (naturellement, ce ne sont pas des messages de Telegram). Ils peuvent contenir des jetons GRAM, être des appels de contrat intelligents, représenter toute autre donnée, etc.

Tous les messages sont traités uniquement lorsqueils sont livrés au bon fragment. Dans ce cas, ils peuvent se déplacer librement à travers des éclats intermédiaires. Les messages peuvent également provenir de l'extérieur de la blockchain TON, c'est-à-dire être "des messages de nulle part."

Compte

Tout compte est un contrat intelligent, peut-être même avec un code vide. Chaque compte paie des frais pour le stockage des données, c'est-à-dire son équilibre diminue avec le temps.

Le compte contient des informations sur le soldeJetons GRAM, code de contrat ou hachage, temps passé sur le réseau, à commencer par l'apparition de la cellule racine, statistiques sur l'utilisation de l'entrepôt de données (par exemple, au moment du dernier paiement du stockage), une description formelle de l'interface.

Stockage de bas niveau, cellules

Toutes les données sont stockées dans la blockchain TON dansstructures appelées cellules. Il s'agit de l'unité de base pour mesurer la taille de tous les éléments du réseau: messages, code de contrat, une grande variété de données.

Chaque cellule contient 1023 bits d'informations et jusqu'à4 liaisons avec les cellules voisines. Il existe 256 types de cellules différents, qui diffèrent par la façon dont ils sont mis en œuvre et par le nombre de liens vers d'autres cellules. Tous sont combinés dans une arborescence avec le nombre de liens pour chaque élément de 0 à 4. Les cellules sont utilisées pour le stockage unifié et le fonctionnement déterministe dans le stockage de la blockchain.

Algorithmes TON internes

Nous avons déjà rencontré la structure de la blockchain TON et ses principaux éléments. C’est maintenant le tour des principes de leur travail et de leurs concepts fondamentaux.

Temps logique

Comme nous l'avons appris précédemment, la structure des données dans TONIl s'agit d'un DAG, comme, en principe, dans 90% des autres crypto-monnaies, y compris le bitcoin. Pour corriger le fait de la livraison d'un message ou d'un événement dans la blockchain, un compteur monotone est utilisé lors des opérations avec eux, et chaque message contient son propre temps.

En raison du manque de serveurs centrauxla synchronisation de l'heure, l'utilisation du temps absolu au sein du réseau peut conduire à diverses erreurs. C'est pourquoi les systèmes de messagerie ont décidé de s'arrêter à un moment logique.

Message

Qu'est-ce qu'un message? C'est absolument n'importe quelle opération entre les fragments. Tout bloc de fragments doit avoir un message entrant provenant d'un message sortant d'un autre bloc de fragments existant et valide. Pour confirmer la véracité du message, seuls quelques blocs de la chaîne de l'expéditeur sont autorisés à être stockés; le stockage de sa partie indivisible est obligatoire.

Il est également interdit de traiter un message entrant,jusqu'à ce que la preuve de la livraison des messages sortants précédents d'au moins le fragment suivant soit reçue. Cette approche oblige les validateurs à prioriser l'envoi des messages d'abord, puis leur réception.

Routage instantané d'hypercube

Comme il est maintenant clair, chaque fragment est en fait une file d'attente de messages entrants et sortants. Pour rechercher le compte souhaité et le chemin le plus court vers celui-ci, une version accélérée de l'algorithme "hypercube" est utilisée.

Cela conduit au fait que si la destination est spécifiéevotre fragment, la transaction est transférée vers le compte souhaité et les nouveaux messages générés par celui-ci sont placés dans la file d'attente des messages sortants. Dans le cas où le destinataire est le fragment de quelqu'un d'autre, alors, selon les règles de routage déterministes, le message est transféré vers les messages entrants du fragment suivant.

L'activation de Message Queuing dans les blocs est nouvellesolution en technologie blockchain. Grâce à cette approche, l'état du message peut être immédiatement suivi sur la blockchain. Globalement, l'ensemble des messages envoyés entre les fragments est un graphe acyclique dirigé multidimensionnel complexe (DAG). Cependant, pour le moment, le fonctionnement des garanties de livraison de messages au destinataire dans un tel DAG n'est pas encore clair.

Contrats intelligents

Dans TON, la création d'un contrat ou d'un compte intelligent est la même chose. Dans le cas de l'envoi de jetons GRAM à une adresse inexistante, il est créé comme un contrat vide avec un solde différent de 0.

Comme mentionné précédemment, tout compte, quelque chosele stockage dans la blockchain, paie une commission pour le stockage. Par conséquent, lors de la création d'un contrat intelligent, vous devez lui fournir un solde dans GRAM pour payer l'espace de stockage, ou même d'abord assurer un équilibre, puis placer le code de contrat intelligent.

Crypto-monnaie GRAM sur la chaîne de blocs TON (Telegram Open Network)

</ p>

Il existe également des bibliothèques de contrats intelligents prêtes à l'emploi dans la chaîne principale. Chaque contrat a les propriétés suivantes:

  • Le contrat peut créer un nouveau contrat.
  • Vous pouvez placer le hachage à partir du code de contrat intelligent et ensuite le démontrer.
  • Le code du contrat intelligent peut être modifié, mais cela devrait être prévu dans le code du contrat intelligent d'origine.
  • Vous ne pouvez pas stocker le code de contrat intelligent dans la blockchain, mais seuls les messages entrants seront disponibles pour le compte. Le code et les données seront stockés en dehors de la blockchain.
  • Code et état du contrat intelligent "mourant"(dont le solde est proche de 0) est remplacé par un hachage de son code. À l'aide d'un hachage, un contrat intelligent peut toujours être restauré sous réserve d'un rééquilibrage du solde, sinon le hachage sera également supprimé après quelques mois.

En général, nous pouvons conclure que le comportement et les propriétés des comptes dans TON sont similaires en même temps que Bitcoin et Ethereum.

TVM (TON Virtual Machine)

TON Virtual Machine présente une nouvelledéveloppement dans le domaine des contrats intelligents. Il est déterministe et empilable. Par conséquent, il est facilement évolutif et fait un excellent travail d'emballage des données dans les cellules. Sur TVM, il est pratique de garder une trace des dépenses GRAM pour l'exécution des contrats intelligents et il est très simple de restaurer les contrats intelligents.

Le modèle de contrainte dans TVM est construit sur le gaz et la cryptographie elliptique est implémentée sur la courbe protégée ed25519.

Langage de contrat intelligent

TON utilise de bas niveau et extrêmementlangage déterministe Fift, dont le prototype était le langage FORTH (c'est probablement pourquoi ils ont choisi le nom Fift). Il s'agit d'un langage concaténé et empilable pour les microcontrôleurs. Malheureusement, pour écrire des contrats intelligents avec un déterminisme et une rentabilité maximale, seules deux options ont été inventées: EVM (Ethereum Virtual Machine) et WASM (WebAssembly).

Fift est fortement typé; il y a une douzaine et demi de types, y compris des types complexes (Tuple, List, Odject).

L'idée de cette langue est construite autour«Mots» des opérateurs: il existe de nombreux mots différents pour manipuler la pile, les fonctions, les blocs logiques, les variables - tout cela est soumis au concept central d'un opérateur «mot».

Par exemple, voici à quoi ressemble le code de sortie de deux nombres de Fibonacci de grands 1000:

{ 1 0 rot { -rot over + swap rot 2dup &gt;= } jusqu'à chute } : fib-gtr

1000 fib-gtr

Ici:

  • dop (xx x), duplique la valeur du haut de la pile. Si la pile est vide, elle renvoie une erreur d'exception.
  • goutte (x), supprime la valeur du haut de la pile.
  • échange (xyyx)permute les deux valeurs les plus proches du haut de la pile.
  • pourriture (xyzyzx), fait pivoter les trois valeurs les plus proches du haut de la pile.
  • -rot (xyzzxy), inverse les trois valeurs les plus proches du haut de la pile dans la direction opposée. Equivalent à la pourriture.
  • plus (xyxyx), crée une copie de la deuxième valeur sur la pile et la place au-dessus de la pile.
  • repli (xyyxy), équivalent à swap over.
  • pincement (xyy), supprime la deuxième valeur du haut de la pile. Équivaut à swap drop.
  • 2dup (xy-xyxy), équivalent à plus de plus.

Il convient de noter que de nombreux développeurs sont choqués par cette syntaxe et avant d'étudier la documentation sur Fift, il est recommandé d'en étudier une sur FORTH.

Pourquoi les développeurs ont-ils choisicomme langue pour les contrats intelligents est Fift? Peut-être parce que sous cette forme, il est idéal pour la vérification formelle et plus résistant aux erreurs, ce qui nécessite que les développeurs d'applications comprennent parfaitement la séquence d'exécution de toutes les opérations.

TON Impressions générales

En général, la construction de l'écosystème TON fait bonne impression. Parmi les avantages à noter:

  • Une nouvelle mise en œuvre rentable du stockage de données. Cela indique une approche sérieuse du problème de la taille de la blockchain.
  • Un système de messagerie primitif similaire à celui utilisé dans GO.
  • En traitant une chaîne de messages, un pool de mémoire sur la blockchain, presque toutes les informations de transaction sont extraites de la blockchain et non de sources externes.
  • Chaîne de travail pour fourches dures ou changements radicauxen consensus, cryptographie, machine virtuelle pour les contrats intelligents. Cela vous permet de lier théoriquement les chaînes de blocs Bitcoin, Ethereum ou EOS à TON en tant que nouvelle chaîne de travail.

La gestion de TON avec des contrats intelligents est une méthode bien établie. Par exemple, dans Ethereum, EOS, Polkadot, etc.

Du point de vue du développeur, le nœud TON est constitué de quelques chaînes de blocs: chaîne principale, chaîne de travail, chaîne de fragments.

Les interfaces de contrat intelligent sont stockées à côté des contrats intelligents, ce qui est très pratique pour dApp, car fournit l'interaction la plus simple avec eux.

Toutes les ressources de la blockchain sont honnêtement payées, jusqu'à et y compris la location de l'entrepôt de données. Il n'y a pas de rabais pour les grands détenteurs ou validateurs de GRAM.

La seule chose que je voudrais changer, c'est la disponibilité d'un mécanisme plus compréhensible pour la mise en œuvre d'une preuve formelle de remise des messages. Surtout compte tenu de la variété des options de topologie du réseau.

Conclusion

Le projet WhitePaper donne l'impression queles développeurs ont pris les meilleurs modèles de travail de nombreux projets modernes, et pour chacun d'eux, quelque chose de différent. Ici, il y a des parties qui fonctionnent comme UTXO bitcoin (messages, comptes), il y a comme EVM (contrats intelligents, gestion), il y a de nouveaux développements individuels (fragments, routage), et il y a une adaptation d'anciennes solutions à votre projet (langage des contrats intelligents, cellules stockage).

En général, on peut dire que la TON provoqueun grand nombre de développeurs et d'utilisateurs sont naturellement intéressés. Malheureusement, jusqu'à présent, à part TVM, des exemples de code de contrat intelligent et un nœud de test, qui est très probablement au moins partiellement une émulation, il n'y a rien de plus. Un lancement complet de TON ne peut qu'attendre avec impatience.

</ p>