Analyse de la blockchain, ou pourquoi le mélangeur s'est-il cassé?

D'après mon rapport à la conférence sur la transformation numérique à Moscou le 16 avril 2018


Je me demande comment fonctionne la blockchain. Non seulement les algorithmes, la cryptographie, les plateformes et les crypto-monnaies sont là. Pour moi, la blockchain n'est pas seulement une technologie, mais aussi un nouveau genre de vie, un nouvel univers. En cas de doute, regardez ce nombre de ventes de jetons Aragon:



Toutes ces adresses, contrats intelligents, jetons interagissent constamment les uns avec les autres, et derrière eux se trouvent les actions de personnes, d'organisations et de robots. Sans cette interaction, la blockchain et les crypto-monnaies n'auraient ni sens ni valeur.


Comment fonctionnent les entreprises de la blockchain, que font les gens et les robots là-bas - ces questions m'ont fait étudier la blockchain.


Problème et solutions


Le réseau de blockchain, et nous parlons spécifiquement des réseaux publics de blockchain, en fait, est complètement ouvert. Vous pouvez lire absolument toutes les informations sur les blocs, les adresses et les transactions. Pour les programmeurs, il existe des API pour cela (par exemple, Web3 [1]), et pour les simples mortels - les chercheurs de la blockchain, par exemple Etherscan [2]. De plus, tout nœud de chaîne de blocs complet télécharge tous les blocs depuis le début des temps avec des informations complètes à l'intérieur sur un disque local, car cela est nécessaire pour vérifier l'exactitude des transactions, et Dieu ne plaise pas, l'extraction. Autrement dit, tout nœud de chaîne de blocs est sa copie complète, et même avec des interfaces d'accès et une documentation détaillée.


Il semble qu'il y ait tout à analyser, mais ça y était. Blockchain vs. Rappelez-vous ce que ce mot blockchain signifie en russe: une chaîne de blocs. Les blocs stockent les enregistrements de transaction et les méta-informations pour garantir l'intégrité et la connectivité. Afin de trouver quelque chose dans la blockchain, vous devez connaître le numéro de bloc ou le hachage de la transaction, ou dans le pire des cas, une adresse. Il n'y a pas d'index autres que ceux répertoriés sur le nœud.


Etherscan est également légèrement meilleur. Il montre le même qui est disponible via l'API, uniquement sous la forme de pages Web. Et aussi, pour trouver quelque chose, vous devez connaître à l'avance soit l'adresse, soit le hachage de la transaction, soit le numéro de bloc. Vous voyez la blockchain à travers une fenêtre étroite limitée à ces entités. C'est ainsi que l'on étudie l'univers au microscope, les outils existants sont totalement inadaptés à l'analyse «en grand».


Pour philosopher, j'ai même dessiné un schéma où l'essence du problème est visible:



Avec les crypto-monnaies, cela devient de moins en moins clair; pour leurs analyses, des méthodes et des outils d'échange de devises connus depuis longtemps sont utilisés. Vous pouvez obtenir des informations fiables et objectives sur tous les paramètres de la crypto-monnaie sur de nombreux sites sur Internet.


Cela ne peut pas être dit à propos de la blockchain. Informations dans le plan principal ou purement technique pour ceux qui comprennent (comme «Etherscan»), ou fiction sur les projets ICO [3], DAO [4], qui a un biais subjectif explicite et n'est pas vérifié par des méthodes mathématiques.


La blockchain est généralement opaque, bien que toutes les informations soient largement disponibles, nous allons donc y travailler!


Matériel d'analyse Blockchain


Tout d'abord, nous comprendrons l'étendue du problème. Il existe de nombreux réseaux de chaînes de blocs, ainsi que de nombreuses plates-formes différentes sur lesquelles ils sont construits. Vous devez commencer quelque part et j'ai choisi le réseau de la Fondation Ethereum pour plusieurs raisons:


  1. De nombreux participants
  2. La capitalisation de toutes les devises du réseau, y compris les jetons, est probablement la plus importante de toutes
  3. Contrats intelligents [5] et DAO [4], élargissant l'analyse possible et la rendant beaucoup plus significative et utile

Même en choisissant un réseau, nous obtenons beaucoup de données (au 15 juin 2018):


Nombre de transferts de crypto-monnaie, total267 millions
Transferts de crypto-monnaie par jour, en moyenne750 mille
Nombre d'adresses valides44 millions
Nombre de contrats intelligents6,8 millions
Nombre de jetons émis48 mille
Appels contractuels intelligents par jour, moyenne690 mille
Quantité approximative de données compressées pour un nœud complet117 Go

Initialement, on souhaitait que l'analyse se rapproche le plus possible de l'état réel du réseau, c'est-à-dire en temps réel. Cela comporte deux aspects techniques:


  1. Les informations de la blockchain doivent entrer dans la base de données le plus rapidement possible, dès qu'un nouveau bloc est créé. Nous voulons voir les informations actuelles, pas une archive;
  2. Nous voulons recevoir des rapports rapidement, dans une seconde ou plus rapidement, afin de ne pas perdre d'intérêt à poser beaucoup de questions.

Le choix s'est porté sur la base de données Clickhouse [6], un projet open source de Yandex. Avant cela, je n'avais pas utilisé ce système, et les gars d'Altinity [7] m'ont aidé à comprendre, pour lequel je les remercie séparément.


La structure générale du système est la suivante:



Les données source sont lues à partir de l'ensemble du nœud du réseau Ethereum par le processus ETL (Extract - Transform - Load), qui analyse les données à l'intérieur du bloc et les écrit dans plusieurs tables de la base de données Clickhouse. Le processus démarre dès qu'un nouveau bloc arrive au nœud du réseau et s'exécute en continu.


Sur le côté droit du graphique, les utilisateurs de données, actuellement:


  1. Outil d'analyse SuperSet [8]. Avec lui, vous pouvez créer des graphiques sympas et combiner rapidement des requêtes pour obtenir des réponses aux questions d'analyse;
  2. Python Jupiter [9] pour une analyse plus complète des outils d'apprentissage automatique et l'application d'algorithmes statistiques;
  3. Site Web et API Bloxy [10] pour une utilisation publique des informations.

L'indexation de la base de données Ethereum a pris du temps, après tout, il y a déjà près de 6 millions de blocs, et chacun d'entre eux doit être lu à partir du nœud et traité, mais ce travail est derrière nous, et nous pouvons enfin profiter de toute la puissance de la base de données analytique, d'autant plus que les données ne sont que m euh, quel délicieux!


Jetons


Commençons par les jetons, car c'est l'application la plus populaire des contrats intelligents sur le réseau Ethereum, nous pouvons dire le but et le sens de sa création. Les jetons sont des crypto-monnaies que n'importe qui peut émettre en utilisant un certain type de contrat intelligent. La norme principale du jeton est ERC20 [11], mais comme nous le verrons maintenant, tout ne s'y limite pas.


Maintenant, ayant une base pour l'analyse et le SuperSet, nous pouvons voir quels jetons sont émis, comment ils sont utilisés et ce qui est maintenant populaire:



Les données concernent toute la durée de vie d'Ethereum. Le graphique circulaire montre que les jetons ERC20 sont écrasants par rapport aux autres types. Le graphique du nombre de jetons activement utilisés dans les transferts n'a cessé de croître jusqu'à présent, ce qui signifie que l'enthousiasme de l'ICO ne faiblit pas, mais même vice versa. En fait, parfois plusieurs centaines de nouveaux jetons sont créés le jour même, lisent des crypto-monnaies, mais ne tombent pas tous sur ce graphique, mais seulement ceux qui sont activement utilisés.


Le graphique ci-dessous ne montre pas une croissance aussi rapide au fil du temps, c'est le nombre de transactions de transfert de jetons par jour. Quelque part au printemps 2018, il s'est à peu près arrêté au niveau de 400 mille transactions par jour et ne progresse pas. En substance, cela signifie que les nouveaux jetons représentent beaucoup moins de transferts qu'auparavant.


Il y a deux anomalies dans ce graphique: le pic des transferts de jetons ERC20 en novembre 2017 et la «bosse» moins prononcée de la croissance des transferts de jetons ERC721 en décembre.


Le pic de novembre est associé au token InsPromo, qui était dispersé par près d'un million d'adresses «juste comme ça», c'était un type de promotion parachutiste [12]. Cette méthode d'attirer des clients ICO a été utilisée plusieurs fois avant et après, mais l'ampleur de la propagation en 1 jour de «pièces» gratuites bat des records!


L'intérêt de décembre pour le jeton ERC721 est entièrement lié au jeu CryptoKitties, les gens sont très enthousiastes à l'idée d'acheter et de cultiver des chats numériques. Le graphique montre une augmentation rapide du chiffre d'affaires de Crypto Kitties et une diminution des transactions d'autres jetons, apparemment, les gens ont oublié qu'il existe d'autres jetons.


Crypto Beasts et plus


Les jetons ERC721 [14] sont apparus, en fait, à partir de l'apparition des crypto chats [13], bien que leur utilisation potentielle soit beaucoup plus large. Si la norme ERC20 permettait d'émettre des crypto-monnaies mesurées dans une certaine quantité pour tout le monde, alors ERC721 a donné à chacun l'opportunité de dénoter les droits de propriété de tout objet, virtuel, réel ou même intellectuel.


Techniquement, chaque jeton ERC721 stocke un identifiant unique dans un contrat intelligent. Cet identifiant peut signifier un chat crito, une épée d'or, un morceau de terre ou un brevet pour une invention. La propriété de l'identifiant est fixée dans la blockchain. Puisqu'il existe une norme pour l'échange de jetons ERC721, ils peuvent être vus dans le portefeuille, échanger sur l'échange et effectuer d'autres opérations générales.



Le graphique supérieur montre le nombre de transactions de tous les jetons ERC721. En décembre 2017, il y avait une grosse augmentation, à 100% du jeu Crypto Kitties. L'intérêt pour le jeu a duré tout le mois de décembre, puis a peu à peu dormi.


Le graphique du bas montre le nombre de jetons différents de la norme ERC721 en circulation, lisez les projets utilisant cette technologie. En décembre, il n'y avait que des Crypto Kitties, et en février il y en avait déjà plusieurs dizaines. Les noms des jetons sont affichés à gauche, plus le nombre de transactions est important, plus la police est grande, toujours les chatons avec le symbole CK en premier lieu.


Pourquoi avons-nous besoin d'un mélangeur?


L'analyse de la blockchain dans son ensemble permet de trouver des modèles et des anomalies qui ne sont pas visibles au niveau micro des transactions, des adresses et des blocs. L'un des exemples les plus frappants est le «mélangeur» de milliers de bots fonctionnant sur le réseau Ethereum.


Commençons par rechercher les anomalies dans la répartition des adresses par le nombre de destinataires et d'expéditeurs de crypto-monnaie:



Sur l'axe horizontal - le nombre d'adresses à partir desquelles l'argent a été transféré à l'adresse, verticalement - le nombre d'adresses sur lesquelles l'argent a été transféré à partir de l'adresse. Taille du cercle - le nombre de ces adresses.


Le graphique de gauche est pris en décembre 2016, et le cercle maximum se situe sur les adresses ayant un destinataire et un expéditeur, un peu moins que les adresses sans destinataires et également un expéditeur. Cela est tout à fait compréhensible, la plupart des adresses reçoivent des devises d'une seule source et les dépensent au même endroit ou ne les dépensent pas du tout, mais les stockent.


Mais en décembre 2017, un cercle avec deux expéditeurs et trois destinataires a augmenté de façon anormale. Et il y a plusieurs millions de ces adresses! Pour comprendre la situation, sélectionnez l'une de ces adresses dans le cercle restreint et créez un graphique de traduction:



On peut voir que toutes ces adresses sont connectées à un mélangeur géant qui envoie de l'argent à l'intérieur de lui-même. Étant donné qu'en moyenne, chaque adresse a plus de destinataires que d'expéditeurs, un grand nombre de destinataires sont obtenus de l'expéditeur d'origine en quelques étapes. Bien sûr, cela n'est pas fait par des personnes, mais par des robots, car il existe plus de 4 millions d'adresses de ce type et elles fonctionnent en douceur et très rapidement, envoyant de l'argent en quelques minutes.


Nous avons estimé le volume de travail de cet énorme robot en séparant les transactions de ces adresses des autres transactions du réseau:



En termes de volume de transferts, le mélangeur (colonnes orange) dépasse en plusieurs mois de plusieurs fois tous les autres transferts du réseau (colonnes vertes). Bien sûr, il faut tenir compte du fait qu'il transfère la monnaie en lui-même et que son chiffre d'affaires externe n'est pas si important, pas plus de 17 millions d'éther (aujourd'hui 10 milliards de dollars).


Les transactions de mixage occupent une part importante de la bande passante du réseau Etehereum depuis de nombreux mois. Le maximum de son activité s'est produit début 2018, lorsque chaque quatrième transaction de transfert Ethereum a été initiée par ce robot, comme le montre le graphique bleu de la part des transactions du mélangeur au total:



Mais soudain, fin février 2018, il a cessé de travailler. Puisque nous ne connaissons pas les raisons de son utilisation, nous ne pouvons que deviner les causes de sa vie et de sa mort subite. Ou peut-être qu'il n'est pas mort, mais a changé l'algorithme et a simplement quitté nos radars?


Je crois en blockchain


Je crois à la blockchain. Les entreprises, les particuliers et les communautés bénéficient de son utilisation. Pour l'utiliser, vous devez comprendre comment cela fonctionne en tant que phénomène. Selon quelles lois il développe, quelles sont les anomalies internes, les tendances, les ralentissements et les hauts.


Une blockchain plus transparente permettra aux entreprises de mener des activités efficaces les yeux ouverts. Les utilisateurs ordinaires comprendront mieux ce qu'ils font exactement, ce à quoi ils participent, pour être plus en sécurité et heureux.


Après tout, la blockchain n'est pas tant les réseaux, les plateformes, les blocs et les transactions que les personnes et les communautés. Le succès du développement de cette technologie dépend entièrement de sa perception par la société, et la transparence est importante dans ce processus.


Littérature


[1] Web 3: une plateforme pour les applications décentralisées


[2] Etherscan


[3] ICO


[4] DAO


[5] Contrats intelligents Ethereum


[6] Yandex Clickhouse


[7] Altitude


[8] SuperSet


[9] Python Jupyter


[10] Bloxy


[11] ERC20


[12] WTF est un Airdrop? Un guide détaillé de la crypto-monnaie gratuite


[13] CryptoKitties


[14] Norme ERC721

Source: https://habr.com/ru/post/fr414707/


All Articles