Le chatbot comme interface de la Blockchain

Les assistants conversationnels sont utilisés dans de nombreux cas d’usages comme alternative aux applications mobile. Leur simplicité permet de répondre efficacement à un besoin de service client, de réservation, de conseiller, de coach, etc …

Dernièrement je me suis amusé à rajouter un connecteur blockchain à notre framework VISEO Bot Maker (aka SARAH v5). L’idée étant de masquer la complexité du sujet par une interface textuelle.

La Blockchain

Dans un premier temps il faut créer une blockchain, heureusement Microsoft fournit des templates permettant d’instancier le cluster de machines. Il suffit de suivre les étapes d’un tutorial: Getting started with Blockchain as a Service.

Attention ! ça coûte cher ! Comptez 130€/mois pour 3 machines A1 et la tuyauterie ! L’objectif est de représenter un consortium qui doit miner les transactions afin de valider les opérations.

Le Wallet

Pour valider que tout fonctionne bien, il faut aussi installer un client capable de manipuler de l’ether voir même des coins (qui représente une monnaie régie par un smart contract).

Dans mon cas j’ai installé Metamask, une extension Chrome qui fait très bien le job.

Les Smart Contract

Ce sont de petit bout de code développés ENCORE dans un nouveau langage Solidity (que je trouve vraiment pas sec) qui seront stockés dans la blockchain et serviront à stocker de l’information par exemple des transactions de monnaie, la traçabilité d’un produit, etc …

Dans mon cas j’utilise l’IDE web d’ethereum pour jouer avec un modèle de smart contract. Il y a très peu de ligne, mais beaucoup de subtilités. Il ne faut pas se rater car le contrat est ensuite gravé dans le marbre.

NodeJS

Pour notre connecteur de chatbot, j’ai utilisé EthJS qui est une surcouche serveur de web3js (plus bas niveau et utilisé plutôt dans le navigateur).

Le principe est très simple, un wallet (composé d’un clef privée/public) demande à exécuter la méthode Z d’un smart contract X enregistré à l’adresse X’ dans la blockchain. Une fois l’appel de méthode validé, une transaction Y est enregistrée à l’adresse Y’ dans la blockchain.

Dans le dernier exemple, le Wallet2 appel la méthode transfert du smart contract HumanStandardToken pour transférer au wallet1 (param1) 10 coins (param2)

Aller plus loin

L’ether est utilisé comme monnaie autorisant un utilisateur à agir sur le smart contract par exemple pour donner ou recevoir des coins. Les coins sont alors utilisés comme des points de fidélités ou des points cadeau pour effectuer des actions.

Vous avez du entendre parler d’ICO ? Et bien c’est ça ! En échange d’argent réel vous obtenez de la monnaie de singe régie par un contrat particulier et qui un jour aura de la valeur (ou pas).

Dans cet exemple le ChatBot va créer un compte à l’utilisateur, lui donner de l’Ether puis lui donner des VIZZ (le nom de mes coins). Cela permet de masquer totalement le concept auprès des utilisateurs modulo 2 limites:

  • Il faut attendre que la transaction N-1 soit validée pour enchaîner sur la transaction N
  • C’est le serveur de bot qui fait la transaction au nom de l’utilisateur. Les puristes argumenteraient que l’utilisateur doit faire sa transaction (comme Metamask). Mais c’est tellement peu ergonomique que seul les initiés le font

Bref un long article pour mélanger ChatBot et Blockchain en 1 week-end 🙂

Laisser un commentaire

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