Cryptos

Un outil de concours Twitter infalsifiable sur la Blockhain

0

Comment faire un outil de concours en ligne sur la blockchain qui soit inviolable ? Je me suis posé la question et j’essaie d’y répondre dans cet article.

Je ne suis pas un développeur blockchain et je ne connais pas en détails l’API de Twitter, je ne sais donc pas si tout ce que je dis dans cet article est réalisable. Cet article est avant tout une esquisse de réflexion pour donner les bases de réflexion d’un projet qui pourrait peut être voir le jour.

Néanmoins, cette idée est en libre service. Elle vous intéresse ? Développez la !

CONSULTEZ LE GLOSSAIRE !

Si vous êtes débutant dans le domaine des cryptomonnaies, j’ai rédigé un glossaire que je vous invite à consulter avant toute chose. Le trading nécessite des bases afin d’être rentable, ne vous lancez donc pas tête baissée dans le trading en pensant que vous allez devenir riche du jour au lendemain. Lisez, apprenez, tradez, et vous serez peut être riche un jour 😉

Le nom

Pour commencer ce projet, il faut savoir comment on va l’appeler. Déterminer assez tôt le nom du projet, une fois le pitch en tête, permet de donner une ligne directrice à ce projet et de réserver, suffisamment en amont, les handles dont nous aurons besoin sur différents services.

Tout d’abord, le nom de domaine. Il existe sur la blockchain un ensemble de services qui permettent de réserver un nom de domaine portant l’extension d’une blockchain spécifique mais le bémol, c’est que ceux-ci ne sont pas connus du grand public.

L’idée étant de mettre à disposition le service au plus grand nombre, partons donc plutôt sur un nom de domaine de premier niveau (TLD) avec une extension très utilisée en blockchain. Pour l’exemple, je nommerai ce projet : ContestChecker.io .

En vérifiant sur InstantDomainSearch, le nom de domaine est bien disponible en .io et sous d’autres extensions. Par sécurité, on achètera toutes les extensions généralistes sur les marchés visés (.fr .com) et tous ceux souvent utilisés dans les projets blockchains.

J’utilise ensuite NameChk pour vérifier que mon domaine est bien disponible avec la même écriture sur les réseaux sociaux que je souhaite utiliser, ici en l’occurrence Twitter. C’est dispo, on continue.

L'infrastructure

Pour continuer sur les bases, il faut ensuite savoir de quelle infrastructure nous aurions besoin pour réaliser un tel projet.

Ce projet repose sur l’utilisation de la blockchain, mais la blockchain ne permet pas aujourd’hui d’héberger convenablement un site Internet, avec un SLA ~100%, tout en le rendant accessible à tous. Nous utiliserons donc un hébergement de type VPS afin d’héberger le minimum de code et de contenu requis pour afficher le front du site.

Pourquoi un VPS ? Le front du site demandera un minimum de sécurité vu le domaine qu’il aborde, on s’assurera donc que le nom de domaine et le serveur d’hébergement sont suffisamment isolés et sécurisés contre les attaques les plus courantes (spoofing, redirections, injections de code, etc…).

L’algorithme qui déterminera la fiabilité du concours, lui, sera complètement hébergé sur la blockchain via un contrat intelligent. Ce contrat parent, audité, servira de référence à l’outil pour vérifier l’authenticité des concours qui seront postés via cet outil.

Le scénario d'usage

Maintenant que nous avons défini le contexte et l’environnement technique, passons au scénario d’usage principal, ce à quoi servira notre projet.

L’objectif du projet est que toute personne ayant un compte Twitter puisse lancer un concours infalsifiable avec l’aide de la blockchain. Notre persona est donc tout simplement un utilisateur de Twitter souhaitant réaliser un compte Twitter, et le scénario principal est la création d’un concours.

Les règles

Nous connaissons le nom de notre projet, son contexte technique, nos utilisateurs et notre scénario principal, passons aux détails du fonctionnement de l’outil.

Pour s’assurer que notre concours est infalsifiable, nous allons définir un ensemble de règles informatiques qui définiront deux choses : l’autorisation de l’accès à l’outil, et la validation du concours.

Voici les règles pour qu’un compte Twitter puisse ouvrir un concours :

  • Il doit être vérifié par Blue (layer de sécurité du paiement par carte)
  • Il doit exister depuis plus de 3 mois
  • Il doit avoir un minimum de 100 tweets dont le plus ancien doit dater d’il y a plus de 2 mois
  • Il doit être suivi par un minimum de 100 personnes
  • Il ne doit pas avoir d’autre concours en cours
  • Il ne doit pas être sur la blacklist du contrat

Afin de valider le tweet du concours, le front proposera un système qui s’assurera que le tweet du concours est unique et n’a pas été posté plusieurs fois, grâce au process suivant :

  1. L’utilisateur commence par définir son lot. Il saisit, dans une variable locale uniquement transmise sous forme hashée à la blockchain, le lot du concours. Pour des raisons évidentes d’utilisation, le lot pourra uniquement être un code alphanumérique (bon cadeau, bon d’achat, ou autre code permettant d’obtenir gratuitement un bien ou un service).
  2. Le front permet la saisie d’un tweet de 169 caractères afin de laisser la place pour une clé de 10 caractères + un espace, ce qui donne suffisamment de combinaisons possible pour générer des milliards de concours.
  3. Une fois le tweet saisit, on l’affiche à l’utilisateur pour relecture et validation, puis on le transmet au contrat pour le « signer » et l’inscrire dans la blockchain.
  4. C’est le front qui poste le tweet pour l’utilisateur afin d’y ajouter le hash de manière sûr

Le tirage

Une fois le concours posté, le contrat conserve l’information du lot secrète jusqu’à la date de tirage indiquée.

Pour participer au tirage, il suffit aux utilisateurs de répondre au tweet du concours en indiquant l’adresse d’un wallet de la même blockchain que celui du concours. Pourquoi ? Cela permettra aux contrat de tirer au sort un tweet, et donc un wallet, et de faire de ce wallet le nouveau propriétaire de l’information hashée, qu’il pourra donc décrypter à l’aide d’une signature.

Le tirage se fait de manière totalement automatisée par le contrat en étant déclenchée à l’heure prévue, sans aucune action d’aucun utilisateur. Une fois le concours créé, il est donc impossible de l’annuler.

Si le bon est révélé caduque, le propriétaire du wallet a la possibilité de déposer via le front un « signalement pour faux concours » qui inscrira l’ID du compte Twitter comme définitivement banni du service et rendra impossible la création de nouveau concours à l’aide de l’outil. Cette partie reste encore à clarifier afin de modérer les signalements. Quid d’une DAO pouvant voter l’exclusion d’un organisateur de concours ? 

Discutons-en

Cette idée de projet vous a plu ? Je serai ravi d’en discuter avec vous pour vous aider à la développer.

Comments

Comments are closed.