Existe-t-il un moyen de générer un nombre pseudo-aléatoire à l'intérieur d'un contrat de liquidité?
-
-
Bien sûr,vouspouvez lefaire.Vouspouvezparexemplemettreen œuvre directement unprng simple dans Michelson/Liquidity ou utiliser lesinstructions de hachage (Blake2b/Crypto.Blake2b,etc.).Mais vousne devriezprobablementpas ...pourquoi voulez-vouspseudorandomness?Of course you can do it. You can for example directly implement some simple PRNG in Michelson/Liquidity, or use the hash instructions (BLAKE2B/Crypto.blake2b etc). But you probably shouldn't... Why do you want pseudorandomness?
- 1
- 2019-02-07
- Tom
-
Jene prévoispas de l'utiliser à desfins de sécurité,je vaisprobablement créermonpropre "unpeu-PRNG".Monbesoinprincipal était degoûter des chaînes uniques d'unexemple d'espace aléatoirepour servir de valeurs d'identificationet je cherchais une solutionpossiblepour cela.Y a-t-il un autremoyen degénérer des uids «à la recherche aléatoire»?I am not planning to use it for security purposes so probably I will create my own "somewhat-PRNG". My main need was to sample unique strings from a random sample space to serve as ID values and I was looking for a possible solution for that. Is there another way to generate UIDs that are 'random looking'?
- 0
- 2019-02-07
- pathfinder
-
Pouvez-vousexpliquerpourquoi vous avezbesoin de cesidentifiantset de ce que vousessayez defaire aveceux?Il y aprobablement unemeilleurefaçon.Can you explain why you need these IDs and what you are trying to do with them? There likely is a better way.
- 0
- 2019-02-07
- Arthur B
-
1 réponses
- votes
-
- 2019-02-07
Si ce que vous voulez dire,c'est une source de hasardnonprévisible,non,iln'yen apas.Touteinformationpouvant être utiliséepour celapourrait êtreprévisiblepar un utilisateur outempérépar unboulangermalveillant.
Vous devriezprobablement utiliser une source de randomneurexterne,car l'oracleprésenté dans ici .
Une amélioration de ce serait d'utiliser desengagements,c'est-à-dire que l'Oraclepousserait un hachage dans le contrat avant lematchet envoie lenombre aléatoire (et unenonce) après lematch,le contrat vérifiant que le hachageet le hasardnuméro correspondant (avec lanonce).Lesengagementsempêchent les oracles de changer lenombre aléatoirependant lejeu ...
If what you mean is a non-predictable source of randomness, no, there is none. Any information that could be used for that could either be predictable by a user, or tempered by a malicious baker.
You should probably use an external source of randomness, as the oracle presented in here.
An improvement of that would be to use commitments, i.e. the oracle would push a hash in the contract before the game, and send the random number (and a nonce) after the game, the contract checking that the hash and the random number match (with the nonce). Commitments prevent oracles from changing the random number during the game...
Sij'aibesoin d'unnombrepseudo-aléatoire (PRN) dans lefonctionnementinterne d'unefonction dans la liquidité,existe-t-il unmoyen de lefaire?Y a-t-il un à Michelson? Je connais déjà sur la voie d'envoyer un appel PRN via RPC,maisje cherche quelque chose quipeut être appliqué à l'intérieur d'unefonction.