Je ne sais pas si je poste ça au bon endroit. ^^
Voilà, j’ai enfin un peu de temps pour le projet de satoshidice like pour duniter dont j’avais parlé à certain d’entre vous.
Pour ceux qui ne savent pas ce qu’est satoshidice, c’est un paris sur la blockchain, en gros on faiit ça :
hash(TX + secretKey)
On extrait les 4 premiers digit, et on obtient un LuckNumber, qu’on compare au paris fait.
gagner ou perdu si plus petit.
L’idée est que ce soit vérifiable par tous car les infos (hash de la transaction) sont sur la blockchain. La secretKey est diffusé chaque jour suivant son utilisation sur le site par exemple, on pourrai aussi l’émettre sur la blockchain (en réflexion, mais je favorise une diffusion sur le site directement.)
Alors je pars sur une solution sans base de donnée, ma base de donnée sera la blockchain directement. ^^
Vous me direz aucun souci, avec l’aide des commentaires liés au TX il suffit de mettre dans chaque TX sortante le hash de la TX du paris en commentaire. (histoire de savoir si il a déjà été joué ou non)
Et bien je pars aussi sur la non-utilisation du champ commentaire qui est une aberration à mon sens. ^^
Alors avec cette problématique voici ce que j’ai :
Donc mon idée c’est d’utiliser le fait que l’UTXO soit ou non dépensé comme un statut pour le paris en cours, admettons que
Alice paris, elle envoie 10 June sur mon adresse.
Je vois cette entrée en piscine, je peux déjà simuler le résultat du paris (j’ai toute les infos) Affichées sur le site quasi instantanément. (statut en attente)
La TX est ajouté à un bloc, alors je peux procéder au paiement.
Si c’est perdu, je rapatrie les june sur mon adresse principale de sort à dépenser l’UTXO dans son intégralité.
Si c’est gagné, je fais alors 2 transactions, la premier comme le premier cas pour rapatrier les coins et une autre pour envoyer le gain au joueur.
Affichage des paris passé et en cours sur le site.
J’analyse la blockchain, si UTXO dépensé alors paris passé, je peux savoir si c’est gagné ou perdu via les UTXO (je pense à envoyer un lot de consolation, qui serai comme un marqueur pour savoir si c’est un paris perdu. ^^ )
Si en cours, via les informations disponible en piscine.
Coté vérification, je compte proposer aux joueurs un utilitaire, l’ID du paris sera le hash de la transaction associé. et le timeblock définira si c’est un paris au jour J ou au jour j+1.
La seule base de donnée que je maintiendrai sera donc la liste des secretKey associé au jour correspondant.
Je poste ça pour le soumettre à challenge, est ce que c’est suffisant ? Est ce que ça marche selon vous ? Une faille à laquelle je n’ai pas pensé ?
Merci pour votre attention.