Cryptomonnaie

Cracking Bitcoin avec Google AutoML Tables & Tensorflow

Cracking Bitcoin avec Google AutoML Tables & Tensorflow


Google a mis au point plusieurs produits destinés à automatiser et à améliorer la formation et le provisioning Machine Learning disponibles sur leur plate-forme en nuage. La dernière en date, AutoML Tables, vise à «créer et déployer automatiquement des modèles d’apprentissage automatique de pointe sur des données structurées».

Jamais fan de Machine Learning et de l’automatisation de tout ce que je pensais, je le prendrais pour un tour et l’affligerais contre une autre technologie qui fait la une des journaux, Bitcoin.

L’idée est simple: l’extraction minière en Bitcoin consiste à essayer de deviner la bonne combinaison de chaînes qui, une fois hachées, généreront un bloc valide. Le sous-produit est le traitement des transactions, et la récompense est un trésor de Bitcoins.

Alors, pourquoi appliquer le Machine Learning à cela? Eh bien, la méthode d’extraction actuelle consiste essentiellement à «forcer brutalement» les calculs intensifs, en essayant de deviner les bonnes entrées de l’algorithme. Cependant, l'une des principales caractéristiques de Bitcoin est la Blockchain - un enregistrement complet de chaque bloc extrait à ce jour, avec les paramètres d'entrée utilisés pour l'exploiter.

En fait, la Blockchain contient un demi-million d’exemples du «problème», ainsi que de la solution. Dans le monde de l'apprentissage automatique, ils appellent cela «un ensemble de données de formation» :)

La Blockchain - Préparation des données d'entraînement

Tableaux AutoML permet à l'utilisateur de télécharger un grand jeu de données organisé dans une table - un jeu de données BigTables ou même plus simple - un fichier .csv.

Comme indiqué précédemment, l'extraction d'un bloc Bitcoin consiste à appliquer un algorithme de hachage (deux fois) à un ensemble de paramètres d'entrée. Ces paramètres, une fois hachés, constituent une partie de «l'en-tête de bloc», qui doit commencer par un nombre de zéros non significatifs, déterminés par la difficulté. Une fois que le hachage résultant est valide, il est stocké dans la Blockchain afin que tous puissent le voir (et le valider). C'est une chaîne de 80 octets composée des éléments suivants (cliquez sur l'image pour en savoir plus):

Ajouter une description

Hormis la version, les bits (cible) et les hashPrevBlock sont fixes, les autres paramètres sont à la discrétion des mineurs et à leur incrémentation lors du hachage. Cependant, lorsque vous exploitez en coopération avec d’autres sociétés, Time et MerkleRoot sont également définis par le pool d’exploitation minière et il ne nous reste plus qu’à incrémenter et à deviner le Nonce. Par conséquent, il servira de cible et de sortie pour notre modèle d’apprentissage automatique, ce qui est formidable car les tables AutoML ne peuvent avoir qu’une seule colonne définie comme cible.

Pour enregistrer ces données dans un fichier .csv, j'ai lancé un nœud Bitcoin complet et, après avoir attendu sa synchronisation avec le réseau (et l'attente et l'attente ..), j'ai lancé `bitcoin-cli getblock `, A découpé et sauvegardé dans un fichier, puis l'a réexécuté avec l'entrée previousHash et a ainsi réitéré la Blockchain. Le résultat ressemble à ceci:

Ajouter une description

Il est important d'ajouter la ligne d'en-tête pour les tables AutoML afin de récupérer les noms de colonne.

Tableaux AutoML Google Cloud

La première étape consiste à importer nos données de formation dans des tables AutoML. Une fois cela fait, l’écran «Schéma» s’affiche, dans lequel nous sélectionnons la «cible» de notre modèle ML: le champ qu’il affichera.

Ajouter une description

AutoML peut également vous aider à extraire un jeu de validation à partir des données, à appliquer une colonne pondérée et même à gérer des données chronologiques.

Mais attendez! nous pouvons déjà détecter un problème - AutoML détecte automatiquement les types de données de colonne et a sélectionné plusieurs champs comme «catégoriques». C’est formidable, mais dans notre cas, les valeurs étant uniques, il y aura autant de catégories que de rangées d’entraînement, et les données réelles ne correspondront jamais à aucune catégorie!

Et si nous passons à la page Analyse, nous pouvons voir que trop de catégories ont été ramassées (le gâteau est la page 1 sur 4 ..)

Ajouter une description

C'est en fait une fonctionnalité intéressante des tables AutoML: elle nous permet de détecter les problèmes avec nos données avant même de commencer à nous entraîner. Nous pouvons voir que nous avons beaucoup de valeurs distinctes (pas de lignes en double), et la corrélation de chaque champ avec notre cible, qui dans notre cas est faible et donnera des résultats médiocres.

En raison de la faible corrélation des domaines importants, lorsque nous passons à la phase d’entraînement, nous choisissons d’omettre les colonnes plus statiques afin que notre modèle puisse se concentrer sur les éléments importants:

Ajouter une description

Je procède à la formation du modèle et les résultats sont conformes aux attentes - erreur moyenne moyenne incroyablement élevée, ce qui signifie que notre modèle ne produira aucun résultat significatif.

Deuxième tentative - octet par octet

À la lumière de ce qui précède, je tente de modifier les données d'apprentissage en valeurs non catégoriques. Cela nous permettra également de former localement un modèle en utilisant Tensorflow + Keras à des fins de comparaison.

Tensorflow s'attend à ce que les entrées soient sous la forme d'un Bytearray - valeurs comprises entre 0 et 255. Je scissionne le champ de la Blockchain, octet par octet, et le résultat est le suivant:

Ajouter une description

Nos données ont maintenant 76 champs, chacun représentant 1 octet de l'en-tête de bloc, les quatre derniers octets étant le dernier champ numérique - notre cible, Nonce.

Importez à nouveau les données dans les tables AutoML, et le piquetage est effectué sous forme numérique:

Ajouter une description

Cela semble prometteur et la corrélation par rapport à la cible est répartie uniformément sur toutes les colonnes. Malheureusement, l'entraînement donne encore une fois de piètres résultats:

Ajouter une description

Taux d'erreur élevé, pourcentage d'erreur moyen moyen élevé (plus bas est le meilleur).

Vérifier - Utilisation de Tensorflow

Les résultats médiocres sont-ils une faute dans les tableaux AutoML ou simplement la complexité des données d'apprentissage qui ne peuvent pas être apprises par un IA? Pour vérifier, je me tourne vers le bon vieux Tensorflow & Keras pour suivre une formation locale.

Tensorflow décrit les données sous la forme d'un Bytearray, comme nous l'avons fait lors de la deuxième tentative. Voici comment cela a été préparé -

Ajouter une description

Nous formons un réseau de neurones entièrement connecté produisant 4 octets que nous concaténerons pour former notre réseau -

Ajouter une description

La production de quelques époques d’entraînement raconte déjà la même histoire:

Ajouter une description

Notez que même si l'erreur absolue moyenne n'est pas aussi élevée que dans les tableaux AutoML, la précision est «bloquée» à 0,2757.

Ce n'est pas une coïncidence. Comme nous produisons exactement 4 octets, ce score de précision ne peut que signifier que le NN est incapable d’apprendre et de prédire correctement.

La cause? soit le réseau n'est pas assez grand - ce qui est peu probable car nous aurions au moins vu une certaine amélioration entre les époques,

Ou les données ne contiennent aucune corrélation détectable entre les entrées et la cible.

Je suppose que c’est ça! C'est assez étonnant de voir comment un simple SHA256 avec suffisamment de «sel» peut produire assez d'entropie pour rendre la Blockchain vraiment robuste et insoluble!

Au moins jusqu'à ce que nous sortions les gros canons… Restez à l'écoute pour le tour 2 - Craquer des bitcoins avec Fujitsu Quantum Annealer!

Dror Gensler

Show More

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Related Articles

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Close
Close