Sécurité
Qui peut changer quoi dans le projet, d’où vient l’aléa et quels risques demeurent. Le tableau du haut est lu directement depuis le réseau, il n’est pas rempli à la main.
Ce qui est actuellement inscrit sur le réseau
Lecture des données…
Code ouvert, anonymat et confidentialité
Code ouvert
Tout le projet (contrat, site, scripts de lancement, tests) est ouvert sous licence MIT. Le code peut être lu. La compilation du contrat avec la commande anchor build n’a pas encore été vérifiée (voir « État ») ; après le lancement, vous pourrez compiler vous-même le programme et le comparer à celui qui tourne sur le réseau. Comment le vérifier
Le lien vers le dépôt apparaîtra ici et en bas du site dès la publication.
Projet anonyme
Les noms et l’entité juridique ne sont pas divulgués, et les joueurs n’ont besoin ni de nom, ni d’e-mail, ni de téléphone, ni de passeport. Un portefeuille suffit. Les règles sont inscrites dans le contrat et peuvent être lues. Le revers de l’anonymat
Retrait sans documents
Le contrat transfère lui-même les jetons vers votre portefeuille avec une seule signature. D’après le code du contrat, il n’y a ni documents, ni formulaires, ni vérification d’identité (KYC), ni demandes, ni approbation manuelle. C’est une propriété du contrat, et non une autorisation d’enfreindre la loi de votre pays : son respect relève de votre responsabilité (conditions). Comment retirer
Un site transparent et anonyme : sans connexion ni compte, sans cookies, analytique, compteurs ni scripts publicitaires. Les polices et les scripts sont servis par le site lui-même, les réglages (thème, historique des tours sur cet appareil) ne sont conservés que dans votre navigateur, et le code du site est ouvert : tout cela peut donc être vérifié. Comparez l’adresse dans la barre du navigateur : si elle diffère ne serait-ce que d’une lettre, ce n’est pas le site officiel.
Ce que sait le site et qui voit vos actions
| Quoi | Comment cela fonctionne |
|---|---|
| Nom, e-mail, téléphone, documents | Rien de tout cela n’est requis ni demandé : ni à l’inscription, ni au retrait. |
| Cookies, analytique, compteurs, publicité | Non. Ils sont absents du code du site, et celui-ci ne charge ni scripts ni polices externes. |
| Ce qui est conservé dans votre navigateur | Le thème, le mode de la roue, le son et les effets (si vous les avez activés), l’historique des tours sur cet appareil, le portefeuille que vous avez connecté, l’adresse du compte technique d’aléa. Tout reste sur votre appareil et n’est envoyé nulle part. |
| Avec qui le site communique | Avec un nœud du réseau Solana (RPC) : il lit les données du jeu et accepte vos transactions. Le site ne parle jamais directement à l'oracle. Le nœud voit votre adresse IP et celle du portefeuille, comme tout nœud du réseau. |
| Ce qui est public sur la blockchain | Votre adresse, votre numéro de joueur, votre solde, vos tours, vos gains et vos retraits : n’importe qui peut les consulter. L’adresse reste un pseudonyme, l’anonymat n’est pas total. Si l’adresse est liée à votre identité (par exemple, si les SOL viennent d’une plateforme où vous avez passé une vérification d’identité), le lien peut être retracé. |
L’anonymat du projet et des joueurs n’est pas absolu et a un revers : le projet n’a pas d’entité juridique à laquelle adresser des réclamations. C’est décrit dans les « Risques ».
Les clés et ce qu’elles peuvent faire
| Clé | Ce qu’elle peut | Ce qu’elle ne peut pas |
|---|---|---|
| Autorité de mise à jour du programme | Charger une nouvelle version du code du contrat. | Elle ne peut pas prendre les jetons directement, mais une nouvelle version du code pourrait en principe le faire. C’est pourquoi, selon le plan de lancement, la clé est d’abord transférée à un multisig avec délai, puis révoquée ; l’état actuel figure dans ce tableau. |
| Émission du jeton (mint) | Rien : selon le plan de lancement, elle est révoquée aussitôt après l’émission. | Créer de nouveaux jetons. |
| Gel (freeze) | Rien : elle n’a jamais été attribuée. | Geler les jetons de quelqu’un. |
Administrateur (dev_authority) | Récupérer les 10 % accumulés sur les tours (claim_dev). | Changer les règles, prendre les soldes des joueurs, les prix, le jackpot ou le fonds d’activité. |
Promotion (promo_authority) | Payer depuis le fonds de promotion (promo_pay). | Tout le reste. |
1) au départ, elle appartient au déployeur ; 2) avant le lancement sur le réseau principal, elle est transférée à un multisig (Squads) avec un délai sur toute mise à jour, pour que les joueurs voient un changement à l’avance ; 3) une fois le projet stabilisé, l’autorité est révoquée pour toujours et le code est gelé. L’étape en cours est visible dans le tableau ci-dessus.
D’où vient l’aléa
Le contrat n'invente pas le nombre aléatoire et ne le reçoit pas du projet. Il utilise ORAO VRF : dans la transaction de mise, le contrat demande lui-même l'aléa, et le nombre est ensuite écrit par un quorum de nœuds indépendants ORAO avec des signatures cryptographiques vérifiées par leur programme. La graine de la demande découle sans ambiguïté de la clé du joueur et de son compteur : impossible de rejouer une ancienne demande ou de substituer le compte. Tant que les nœuds de l'oracle travaillent honnêtement et indépendamment, la valeur ne peut être ni choisie ni prédite à l'avance. La confiance envers les nœuds ORAO demeure : c'est une dépendance externe.
D'une seule valeur de 32 octets le contrat tire autant de nombres que nécessaire via sha256, et le joueur ne peut pas l'influencer. Le contrat n'accepte qu'un compte d'aléa appartenant au programme ORAO et dont l'adresse découle de la graine du joueur (sans ces vérifications, n'importe qui pourrait présenter son propre compte avec la valeur voulue).
Si l’oracle ne fonctionne pas, les tours s’arrêtent, et la mise d’un tour clôturé après 3 000 blocs n’est pas remboursée.
Ce que le contrat ne sait pas faire du tout
Changer les chances
Tous les nombres sont des constantes du code. De nouveaux nombres ne sont possibles qu’avec une nouvelle version du programme, visible par la transaction de mise à jour.
Prendre le solde de jeu
Il n’existe aucune instruction « prendre au joueur ». Le solde ne part que vers vous lors d’un retrait, et dans les mises lors des tours.
Émettre des jetons
Selon le plan de lancement, l’autorité d’émission est révoquée. Ensuite, l’offre totale de 100 Md ne peut que diminuer par le brûlage.
Payer deux fois
Un tour n’est clôturé qu’une seule fois. La conservation des jetons (la somme des pools et des soldes ne dépasse pas ce que contient le coffre) est vérifiée par des tests automatiques sur des scénarios avec de nombreux joueurs et des lots de 1000 tours.
Les risques qui demeurent
- Erreurs dans le code. Le contrat est couvert par des tests, mais aucun audit indépendant n’a été mené (voir « État du projet »). Une erreur passée inaperçue peut entraîner une perte de fonds.
- Mise à jour du programme. Tant que l’autorité de mise à jour n’est pas révoquée, l’administrateur (ou le multisig) peut en théorie publier une version avec d’autres règles. Surveillez le tableau ci-dessus.
- Oracle et réseau. Une panne des nœuds ORAO ou la congestion de Solana retarde les tours ; lors d'une longue panne (plus de ~20 minutes) la mise est perdue sans remboursement. L'absence de remboursement est voulue : sinon on pourrait regarder le résultat et renoncer à la perte.
- Jetons de l’administrateur hors contrat. Le marketing et la réserve (ensemble environ 30 % de l’offre) ne sont pas verrouillés dans le contrat ; la part du développeur (10 %) est en vesting dans un service externe. Vesting : lien non indiqué ; verrouillage de la liquidité : lien non indiqué ; multisig de l’administrateur : lien non indiqué. Si le lien n’est pas indiqué, considérez que cela ne peut pas encore être vérifié.
- Fonds de promotion. La clé
promo_authoritypeut envoyer ce qui s’est accumulé dans le fonds vers n’importe quelle adresse. Chaque paiement est public (événementPromoPaid), mais le contrat ne vérifie pas à quoi il est dépensé. - Tours gratuits et multicomptes. Le jeu n’a pas, et ne peut pas avoir, de vérification « c’est un humain » : une même personne peut enregistrer de nombreux portefeuilles et recevoir un tour gratuit avec chacun. La dépense est limitée par la taille du fonds d’activité, mais une part notable peut en être soutirée.
- Grosses cagnottes. Plus la cagnotte du jackpot est grande par rapport à la normale, plus le retour attendu par tour est élevé ; très grande, il peut dépasser 100 %. Tous les jackpots progressifs fonctionnent ainsi, et les joueurs expérimentés viennent pour les grosses cagnottes.
- Vitesse du réseau. Tous les tours passent par un même compte commun du contrat : en période de pointe, une file d’attente peut se former. Cela ralentit le jeu mais ne change pas les résultats.
- Le site n’est pas le contrat. L’adresse du site peut changer ou disparaître ; le contrat, lui, reste sur le réseau et on peut l’utiliser directement avec n’importe quel client compatible.
- Administrateur anonyme. Le nom et l’entité juridique ne sont pas divulgués : si quelque chose tourne mal, il est impossible de présenter une réclamation ou de récupérer son argent par la justice ou un service d’assistance. Seul protège ce qui est inscrit dans le contrat et que l’on vérifie soi-même.
- La loi. Les jeux d’argent sont limités ou interdits dans de nombreux pays. C’est votre responsabilité.
- C’est un jeu de hasard. En moyenne, le joueur perd une partie de ses mises.
Comment vérifier par vous-même
- Ouvrez l’adresse du programme dans un explorateur (Solscan, Solana Explorer) et trouvez le champ Upgrade Authority : s’il est vide, le code est gelé.
- Ouvrez le jeton : les champs Mint Authority et Freeze Authority doivent être vides.
- Ouvrez le compte config du programme et comparez avec la page « Économie » les montants des cagnottes, le nombre de tours et les jetons brûlés.
- Compilez le contrat à partir du code ouvert (
anchor build --verifiable) et comparez le hash avec celui du réseau (solana-verify).