Livre blanc

Joy Tokens - le jeu sur la blockchain

Résumé

La technologie de Joy Gaming offre une solution novatrice pour rapprocher les petits développeurs, les éditeurs de logiciels, les grands casinos et les joueurs. Elle a conçu un écosystème de jeu permettant à la fois aux joueurs, aux développeurs et aux casinos de diminuer les risques.

Le manque de confiance et de transparence est un sujet de préoccupation pour l’industrie du jeu en ligne. Les joueurs ont tendance à utiliser les casinos renommés au lieu de sites moins connus, même si ces derniers offrent plus de « jeux intéressants ». Les joueurs sont en effet naturellement attirés par les marques de casino en qui ils ont confiance. La technologie de Joy Gaming est un système transparent basé sur la blockchain qui contribuera à améliorer la confiance dans le secteur du jeu. La technologie de Joy Gaming permet aux utilisateurs de jouer dans un environnement transparent et régi par le code. Cela permet aux joueurs et aux développeurs d’avoir confiance dans l’équité des jeux. Grâce à un générateur RNG innovant, les joueurs auront l'esprit tranquille et sauront que les jeux sur lesquels ils jouent sont équitables et sûrs. Les développeurs, les casinos et les entreprises bénéficieront d’un écosystème qui assure le partage de la liquidité et une rémunération équitable. En associant les développeurs et les casinos, notre objectif est une solution optimale au profit de tous les participants de Joy Gaming.

Introduction

Le marché actuel du jeu

Le marché actuel du jeu est principalement axé sur la réputation : une réputation développée grâce à l'augmentation de la publicité. Pour acquérir et fidéliser les joueurs, les casinos sont obligés de dépenser de grosses sommes pour développer la confiance et la réputation par le biais du développement de la notoriété de leur marque. En outre, les grands casinos contrôlent le développement du jeu. Les joueurs sont obligés de faire confiance à ces casinos car le manque de transparence implique que les joueurs ne puissent pas suivre leurs mises et ne sont ainsi pas en mesure d’évaluer la légitimité de chaque pari.

Les développeurs plus petits souffrent également de cette situation. Ils ne sont payés qu'un pourcentage minime des recettes des jeux et font face à certaines difficultés pour publier un nouveau jeu tels que le manque de revenu immédiat et un accès aux grandes plates-formes de jeux.

La solution Joy Gaming

La solution de Joy Gaming est basée sur la blockchain et permet aux développeurs de créer des jeux qui seront exécutés sur son backend, par le biais d'un contrat intelligent, plutôt que directement sur la blockchain. Comme tous les résultats sont enregistrés sur la blockchain, la fraude est significativement plus faible. Ainsi, les joueurs peuvent vérifier que les développeurs proposent les jeux exactement comme décrit sur la blockchain. De plus, les développeurs de jeux et les éditeurs de logiciels peuvent s'intégrer et se mettre en contact avec des fournisseurs de liquidités, tels que des casinos, pour donner un accès direct à leurs jeux. Les casinos, comme les développeurs bénéficieront des revenus supplémentaires et de l'augmentation de l'innovation de jeu. Le manque de notoriété d’un site spécifique peut être compensé par le fait que les règles et l'infrastructure sous-jacente des jeux soient enregistrées sur la blockchain (en plus du système d’approbation avant que les jeux ne soient autorisés sur le réseau Joy Gaming).

Technologie

Contrats Intelligents

Le réseau Joy Gaming s’appuie sur des contrats intelligents décentralisés pour garantir et tout enregistrer sur la blockchain. Grâce à la blockchain, nous serons en mesure de contrôler tout ce qui se passera sur Joy Gaming. Les utilisateurs qui jouent sur les jeux pourront visualiser, en temps réel, les résultats et les récompenses du réseau. Contrairement aux casinos traditionnels où les dépôts sont effectués sur le compte du casino, les utilisateurs auront toujours le contrôle sur leur portefeuille de JoyToken (et les retraits seront plus simples et réalisés plus rapidement).

Notre plateforme utilisera le réseau Ethereum comme écosystème basé sur la Blockchain. Le réseau Ethereum est bien établi, accepté et utilisé par la communauté avec une capacité complète de langage de Turing. Même s'il existe certains problèmes de latence, une solution décentralisée intermédiaire permet de réduire considérablement cette latence.

L’utilisation d’un agent autonome (c-à-d d'un contrat intelligent) instaure une relation de confiance dans le système car tout conflit d’intérêts entre le joueur et la plate-forme est géré et vérifié de manière décentralisée. Il n'est pas nécessaire qu'une tierce partie soit impliquée. Toutes les transactions sont faites par le biais d'un contrat intelligent, qui garantit à toutes les parties l'accès à tout moment et la possibilité de vérifier l'équité du jeu.

La pile Joy Gaming

Notre environnement technologique est essentiellement composé de trois éléments principaux : la couche Blockchain, les Applications de Jeu (back/front-end) et le Générateur de Nombres Aléatoires (RNG). Le back/front end des jeux fonctionnera sur des bases de données. Cependant, toutes les parties pouvant conduire à toute forme de contestation entre le joueur et la plate-forme seront décentralisées et vérifiées sur la Blockchain à l'aide de Contrats Intelligents.

La figure ci-dessus présente la communication entre les applications de jeux approuvées et le générateur de nombres aléatoires Joy Gaming.

La Couche Blockchain

La couche de Blockchain dispose de trois fonctions : la gestion des jetons, la gestion des résultats du jeu, et le contrôle du générateur de nombres aléatoires.

La Gestion des Jetons

Sur un casino en ligne traditionnel, les clients envoient de l’argent au casino pour jouer leurs parties. Ceci présente néanmoins la possibilité de fraudes potentielles. Joy Gaming résout ce problème en utilisant la technologie Blockchain. Tous les fonds des joueurs seront stockés sur le portefeuille JoyToken de chaque joueur. Lorsqu’un joueur place une mise, l’argent sera envoyé sur un contrat intelligent qui gérera le résultat du pari de manière décentralisée. Utiliser la Blockchain permet que le casino (c-à-d la plateforme Joy Gaming) n'exerce aucun contrôle sur l’argent du joueur à tout moment.

Pour résumer :

La Gestion des Résultats du Jeu

Un contrat intelligent sera utilisé pour la mise de chaque joueur. Le contrat intelligent gèrera les informations fournies par toutes les parties du système (code du jeu, RNG, données du joueur). Le contrat intelligent vérifiera ensuite le résultat du jeu et affectera automatiquement les fonds à la bonne personne selon les règles du contrat établi.

Le joueur A réalise par exemple un pari sur la roulette.

  1. Les fonds seront envoyés automatiquement sur le contrat de la roulette
  2. Le nombre aléatoire généré pour ce tour de la roulette sera copié et enregistré dans un contrat intelligent. (Remarque : tout élément critique du déroulement du jeu (RNG et historique du jeu) se produisant sera enregistré sur un contrat intelligent).
  3. En utilisant le nombre aléatoire généré, le code du jeu enverra les résultats au contrat intelligent
  4. Le gagnant sera alors crédité automatiquement. Si le joueur perd, l’argent sera divisé entre le développeur et les gestionnaires de la plate-forme. Cette division est négociée pendant la phase de développement et appliquée automatiquement lorsqu'un joueur perd.
  5. Enfin, le joueur peut décider de relancer le processus et de continuer à jouer ou de mettre fin à sa session de jeu

Code de démonstration pour l’enregistrement initial d’un jeu sur le réseau

Le code ci-dessous illustre l’enregistrement d’un jeu sur le réseau Joy Gaming. L’inscription se fait entièrement à travers le réseau Ethereum. Cela permet aux participants de vérifier facilement que le contrat ait été approuvé officiellement par le réseau. Par le biais de cette démonstration, nous voyons que l’enregistrement peut être appelé via la fonction GameRegistry() par laquelle le jeu sera enregistré sur le réseau Joy Gaming. (Remarque : Le montant à créditer au développeur peut également être spécifié, par le biais de setPlatformShare(uint256 newShare)).

    contract GameRegistry is Ownable {
        using SafeMath for uint256;
        address public tokenAddress;
        address[] public gameList;
        uint256 public decimals = 5;
        uint256 public platformShare = 5 * 10**(decimals.sub(2));
        address public controller;
        mapping(address => bool) public gameRegistered;
        event ControllerTransfer(address originalController, address currentController);
        event PlatformShareUpdate(uint256 originalShare, uint256 newShare);
        event GameRegistered(address game);
        event GameDelisted(address game);


        function GameRegistry(address _tokenAddress) {
            owner = msg.sender;
            controller = owner;
            tokenAddress = _tokenAddress;
        }

        function setController(address newController) public onlyOwner {
            require(newController != address(0) && newController != controller);
            ControllerTransfer(controller, newController);
            controller = newController;
        }

        function setPlatformShare(uint256 newShare) public onlyOwner {
            require(newShare < 10**decimals);
            PlatformShareUpdate(platformShare, newShare);
            platformShare = newShare;
        }

        function createGame(string _name, uint256 _payoutRate) public {
            address newGame = new Game(_name, msg.sender, this, tokenAddress, payoutRate);
            require(!gameRegistered[newGame]);
            gameList.push(newGame);
            gameRegistered[newGame] = true;
            GameRegistered(newGame);
        }

        function delistGame(address game) public onlyOwner {
            require(gameRegistered[game]);
            gameRegistered[game] = false;
            GameDelisted(game);
        }

        function registerGame(address game) public onlyOwner {
            Game g = Game(game);
            require(!gameRegistered[game]);
            gameRegistered[game] = true;
            gameList.push(game);
            GameRegistered(game);
        }

        function getGameRegistered(address game) public constant returns (bool registered) {
            return gameRegistered[game];
        }
    }
    

Vérifiabilité du Générateur de Nombres Aléatoires (RNG)

Un élément principal de l’industrie du jeu est la vérifiabilité d’un RNG. Dans le sens traditionnel du terme, les générateurs de RNG sont habituellement gérés par la société qui héberge les jeux. Cependant, dans notre cas, ils seront décentralisés et manifestement équitables car chaque jeu est lancé sur algorithme personnalisé intégré qui s’appuiera sur le générateur RNG lié au contrat intelligent du réseau Ethereum. Ce processus est décrit plus en détail dans la phase de conclusion et dans le processus de paiement.

Application de jeu (Gestion back & front end)

Les codes de l’application de jeu seront hébergés sur nos serveurs ou hébergés à travers le réseau IPFS/Sia/Storj. Le résultat du jeu sera ensuite communiqué au contrat intelligent. Les serveurs de jeu fourniront à leur tour l’état du jeu à la Blockchain en utilisant JSON RPC par l’intermédiaire de l'IPC. L’expérience utilisateur ne sera pas affectée par l’utilisation/la disponibilité de la Blockchain car tous les résultats du jeu sont immédiatement disponibles. Ceci assure que l’expérience utilisateur soit proche du jeu traditionnel, tout en s’assurant que le processus soit aussi totalement transparent et décentralisé. Chaque code de jeu sera accessible sur la Blockchain et assurera une vérificabilité complète sur le nombre aléatoire généré.

Caractère aléatoire basé sur les informations de la Blockchain

La clé consiste à trouver une technique de génération décentralisée RNG que nos jeux puisse utiliser et qui soit basée sur la blockchain. La solution courante est d'utiliser des informations de génération de bloc (notamment l'horodatage, le nonce, le hachage du bloc en cours et ainsi de suite) pour générer des nombres aléatoires. Bien que ces nombres soient générés par les mineurs, il est fortement improbable qu'un mineur puisse changer l’issue du jeu sur le réseau public Ethereum. Le mineur devrait pour cela posséder suffisamment de puissance minière pour exploiter le bloc plusieurs fois dans un environnement de compétition publique (environ 14 secondes), comme suit :

  1. Le mineur est en compétition dans le processus d’exploration de l’environnement public Blockchain d'Ethereum
  2. Le mineur obtient le nonce et est maintenant en mesure d’obtenir la récompense
  3. Le mineur vérifie les informations du nonce et des blocs générées par rapport à l’exigence de gain du jeu
  4. Si elles correspondent, le mineur remplit le résultat
  5. Dans le cas contraire, le mineur redémarre le processus d’exploration pour trouver un autre nonce adapté, oubliant la précédente récompense minière

Même si cette méthode est très fiable, nous l'avons rejeté car nous recherchions un modèle qui ne laisse aucune possibilité de manipulation potentielle.

RANDAO (une organisation autonome décentralisée qui vise à générer des nombres aléatoires entièrement décentralisés) est une approche très intéressante, mais qui n'est pas suffisamment mature pour être mise en œuvre à l'heure actuelle. Joy Gaming soutient le développement de nombres aléatoires entièrement décentralisés et nous consacrerons du temps à étudier RANDAO car, si la technologie devient mature et fiable, elle sera tout à fait conforme à notre plan de développement.

Génération de nombres RNG décentralisés - Approche Agile

Le générateur aléatoire doit relever les défis suivants :

La solution proposée :

Le caractère aléatoire des chiffres sera introduit au moyen d’un algorithme de générateur congruentiel capable de génèrer des pseudo séquences aléatoires de nombres qui vont changer en ajoutant l’entrée de données du monde extérieur (par ex. les mouvements du joueur sur la plate-forme, l'échange de données Forex et cryptomonnaies, etc.). Ces ensembles de données sont utilisés du fait de leur comportement inattendu. Ils sont aussi disponibles en permanence. Cette solution est conforme aux exigences relatives aux licences, en fournissant tous les nombres aléatoires requis dans un court laps de temps, le tout sans affecter l’expérience utilisateur. Afin de renforcer notre modèle RNG, nous amorcerons une double vérification en utilisant la technologie de la Blockchain en minant chaque numéro au cours d’une transaction. Il sera alors impossible pour Joy Gaming de manipuler les chiffres de quelque manière que ce soit.

Technologie Joytoken :

Opérations de Jeu

Bénéfices et structure de l'écosystème

En fonctionnant sur la blockchain, les utilisateurs peuvent facilement identifier où va leur argent et si les résultats sont générés de manière équitable. L’expérience utilisateur est notre priorité et nous vous offrirons une expérience variété de jeux, une sécurité renforcée et une fiabilité parfaite.

En plus des avantages pour l’utilisateur, les développeurs bénéficient d'une réserve importante de liquidités et de la réputation supplémentaire fournie par le réseau de Joy Gaming. Les développeurs seront en mesure de « prouver » facilement les jeux auxquels l’utilisateur joue dans la mesure où ils sont transparents et sont hébergés la blockchain. Le développeur se mettra en contact avec les casinos et percevra des commissions sur les jeux joués, tout en sachant qu’il dispose d'une possibilité de vérifiabilité efficace. Les développeurs sont essentiels dans l’industrie du jeu. Chez Joy Gaming, nous les comprenons et nous nous efforcerons de proposer la meilleure expérience en termes de juste récompense, une assistance complète lors du processus de commercialisation, et une plus grande capacité pour les joueurs.

Pour assurer le succès des jeux, Joy Gaming fournit une assistance aux développeurs au sein de l'écosystème Joy Gaming.

L'assistance aux développeurs est fourni sur :
Les développeurs doivent seulement s’occuper du développement de jeux, Joytokens fera le reste.

Trouver l'équilibre au sein de la blockchain

L'expérience utilisateur est cruciale pour travailler sur une initiative de jeu en ligne. Joy Gaming a travaillé dur pour trouver le juste équilibre entre la vitesse de l’expérience de jeu et la décentralisation qui vient avec l’utilisation d’une blockchain pour l’industrie du jeu en ligne.

Problèmes possibles auxquels Ethereum fait face dans son état actuel

L’Ethereum Blockchain n’est pas un système optimal pour traiter les données rapidement parce que le processus d’extraction de preuve de travail arrive toutes les 14 secondes. En outre, l'Ethereum n'est pas fait pour stocker des quantités considérables de données, étant donné que la Blockchain est copiée sur tous les nœuds participants du réseau. Par conséquent, un système entièrement décentralisé à chaque étape, du RNG au jeu lui-même, ne serait pas la meilleure option parce qu’il y aurait un délai important et les joueurs ne veulent pas patienter pendant des minutes avant d'obtenir les résultats du jeu. De plus, les contrats intelligents gérant de grandes quantités de données et traitant des logiques non linéaires sont chers.

Prix GAS

L’Ethereum a introduit le prix GAS afin d’éviter les « attaques de type DDoS », où une personne mal intentionnée pourrait créer un grand nombre de contrats pour influencer l’efficacité du réseau public lui-même. De cette façon, GAS change fréquemment son coût en vue d’une utilisation précise de la demande de contrat Smart.

Résumé :

La plateforme Joy Gaming est un équilibre réaliste entre la vitesse et la décentralisation pour fournir une expérience joueur optimal. Chaque jeu sur la plate-forme se conformera avec les exigences suivantes de décentralisation :

Bien que chaque jeu sera offert par les différents développeurs, il y aura un processus d’acceptation de jeu (voir la section 6.5) où l’équipe de Joy Gaming s'assurera que les développeurs répondent à nos exigences de vitesse et de décentralisation. Aucun jeu n’est renseigné sur la plate-forme si il ne respecte pas ces exigences. Nous pourrions inclure un processus joueur KYC supplémentaire, dans lequelle seulement les joueurs vérifiés Joy Gaming seraient autorisés à utiliser la plate-forme afin de nous assurer un niveau plus élevé de Fair-Play et de conformité juridique.

Architecture de l'intégration de la Blockchain et scénarios

Comme expliqué précédemment, les caractéristiques techniques de tous les jeux doivent répondre à deux besoins : minimiser les retards causés par l’utilisation de la Blockchain et utiliser sa décentralisation.

L’Architecture de jeu globale suivante correspond aux exigences de la plateforme Joy Gaming en termes de sécurité, de décentralisation et de vitesse. Il y a quatre composantes principales :

Le processus est divisé en plusieurs phases :

Phase de chargement

Notre objectif est d’éviter la vérification du temps de transaction sur chaque pari au cours de la phase de chargement car cela réduira au minimum les retards causés par la blockchain et aura un impact considérablement la vitesse de l’expérience utilisateur.

Afin de répondre à cette exigence, il sera demandé à l’utilisateur d’envoyer de l’argent pour le contrat intelligent du jeu sélectionné pendant que le jeu se charge et se configure

Ce processus nécessite quinze secondes pour charger le jeu et mettre en place le contrat intelligent Blockchain. Ce processus est permis si, et seulement si, l’utilisateur a été contrôlé et vérifié par le processus KYC. Il sera impossible pour les joueurs non vérifiés d'envoyer de l’argent au contrat intelligent, et un message d’erreur automatique les guidera à travers le processus de KYC (plus de détails à l’article 15).

Processus d’initiation jeu

Le montant de monnaie s’installe dans le contrat intelligent et se remplira sur le WS (portefeuille serveur) en tant que valeur du portefeuille du client initial. Le GS (serveur de jeu) peut être considérée comme un système de cache, où la valeur de l'argent de la plate-forme de l’acteur (développeur, plateforme, client) augmentera ou diminuera en fonction des résultats du jeu.

Chaque pari du client sera communiquée à au GS (serveur de jeu) pour déterminer les résultats.

  1. Le WS met en place les portefeuilles temporaires - le montant du portefeuille du client sera celui investi au cours de la phase de chargement. Un double contrôle est effectué sur le contrat intelligent pour s’assurer que le montant initial affecté au portefeuille du client soit bien celui investi au client pendant la phase de chargement.
  2. L’utilisateur place un pari (par exemple, 5 JoyTokens sont placés sur le rouge dans un jeu de roulette).
  3. Le pari sera communiqué au GS et transformé en utilisant le RNG (qui est vérifié au sein de la Blockchain). En fonction du résultat du jeu, les portefeuilles WS (Clients, Plateforme et Développeur) seront mis à jour.
  4. son processus sera répété tant que l'utilisateur dispose de fonds et ne souhaite pas arrêter de jouer.

Contrat intelligent de démonstration pour le fonctionnement d'un jeu sur le réseau

    function Game(string _name, address _owner, address _registryAddress, address _ tokenAddress, uint256 _payoutRate) {
            name = _name;
            owner = _owner;
            registryAddress = _registryAddress;
            registry = GameRegistry(registryAddress);
            tokenAddress = _tokenAddress;
            token = ERC20(tokenAddress);
            payoutRate = _payoutRate;
            isActive = true;
            decimals = registry.decimals();
        }
        function activate() public onlyOwner {
            isActive = true;
            GameActivated();
        }

        function deactivate() public onlyOwner {
            isActive = false;
            GameDeactivated();
        }

        function ownerDeposit(uint256 amount) public onlyOwner {
            require(amount > 0);
            require(token.transferFrom(owner, this, amount));
            ownerAvailableDeposit.add(amount);
        }

        function ownerWithdraw(uint256 amount) public onlyOwner {
            require(amount > 0 && amount <= ownerAvailableDeposit);
            ownerAvailableDeposit.sub(amount);
            require(token.transfer(owner, amount));
        }

        function playerJoin(uint256 initialDeposit) public whenActive {
            require(!playerInGame[msg.sender]);
            uint256 potentialPayout = getPayout(initialDeposit);
            require(potentialPayout.sub(initialDeposit) <= ownerAvailableDeposit);
            ownerAvailableDeposit = ownerAvailableDeposit.sub(potentialPayou sub(initialDeposit ));
            playerInGame[msg.sender] = true;

            if (initialDeposit > 0){
                playerCurrentGameDeposits[msg.sender] = initialDeposit;
                require(token.transferFrom(msg.sender, this, initialDeposit));
            }
            PlayerJoined(msg.sender);
        }

        function announceResult(address player, uint result) public onlyController {
            require(playerInGame[player]);
            require(result <= uint(GameResult.draw));
            playerInGame[player] = false;
            GameResult gameResult = GameResult(result);
            if (gameResult == GameResult.win) {
                require(resolvePlayerWin(player));
            } else if (gameResult == GameResult.loss) {
                require(resolvePlayerLoss(player));
            } else {
                require(resolveDraw(player));
            }
            GameResultAnnounced(player, result);
        }

        function resolvePlayerWin(address player) private returns (bool success) {
            uint256 payout = getPayout(playerCurrentGameDeposits[player]);
            playerCurrentGameDeposits[player] = 0;
            if (payout > 0)
                playerDeposits[player] = playerDeposits[player].add(payout);
            return true;
        }

        function resolvePlayerLoss(address player) private returns (bool success) {
            uint256 playerDeposit = playerCurrentGameDeposits[player];
            playerCurrentGameDeposits[player] = 0;
            uint256 payout = getPayout(playerDeposit);
            uint256 platformShare = playerDeposit.mul(registry.platformShare()).div(10**registry.decimals());
            require(platformShare < playerDeposit);
            if (platformShare > 0)
                platformDeposit = platformDeposit.add(platformShare);
            uint256 profit = playerDeposit.sub(platformShare);
            ownerAvailableDeposit = ownerAvailableDeposit.add(payout.sub(playerDeposit)).add(profit);
            return true;
        }

        function resolveDraw(address player) private returns (bool success) {
            uint256 playerDeposit = playerCurrentGameDeposits[player];
            playerCurrentGameDeposits[player] = 0;
            uint256 payout = getPayout(playerDeposit);
            if (playerDeposit > 0)
                playerDeposits[player] = playerDeposits[player].add(playerDeposit);
            ownerAvailableDeposit = ownerAvailableDeposit.add(payout.sub(playerDeposit));
            return true;
        }

        function playerWithdraw(uint256 amount) public {
            require(amount > 0 && amount <= playerDeposits[msg.sender]);
            playerDeposits[msg.sender] = playerDeposits[msg.sender].sub(amount);
            require(token.transfer(msg.sender, amount));
        }

        function platformWithdraw(uint256 amount) public {
            require(msg.sender == registry.owner());
            require(amount > 0 && amount <= platformDeposit);
            platformDeposit = platformDeposit.sub(amount);
            require(token.transfer(msg.sender, amount));
        }

        function getPayout(uint256 deposit) private constant returns (uint256 payout) {
            return deposit.mul(payoutRate).div(10**decimals);
        }
    }
    

Phase de conclusion et processus de paiement

L'utilisateur peut arrêter sa session de jeu et commencer la phase de conclusion à tout moment en utilisant un processus simple rendu facile par l'interface de jeu conviviale. Le processus de conclusion se compose de :

  1. La demande de l’utilisateur d’arrêter est renseignée sur le GS et sur le WS.
  2. Le GS créera un fichier historique de la session, le fichier sera alors haché.
  3. Le dernier montant actualisé des portefeuilles WS avec le hachage sera envoyé au contrat intelligent.
  4. Selon les informations transmises, le contrat intelligent changera son état et traitera le paiement sur la Blockchain.

Procédure d’acceptation de jeu

Nous pensons que notre approche va attirer un certain nombre de développeurs et de propositions de jeux.

Afin de rendre le processus d’acceptation de jeu efficace et pertinent pour notre plate-forme, toutes les nouvelles propositions de jeu seront traitées comme suit :

  1. Audit de code : nos experts s'assureront que tout correspond à nos exigences en matière de sécurité et légales.
  2. Tester le jeu basé sur diverses métriques : temps, sécurité, coûts, intégration de la blockchain, expérience utilisateur, etc. Si les résultats des étapes I et II sont réussis, le jeu proposé passera ensuite par le processus d’intégration.
  3. Développement du contrat intelligent.
  4. Vérification de test et de sécurité du contrat intelligent développé.
  5. Lancement du jeu sur la plate-forme.

Une fois que le jeu est au sein du réseau Joy Games, tout s’intégrera au sein du système. Si le développeur a besoin de liquidités supplémentaires, il/elle sera facilement en mesure d’accéder au groupes de casinos qui sont disposés à participer en offrant des jeux. S'il y a d'autres problèmes techniques, notre équipe apportera son assistance au développeur afin d'arriver rapidement à une solution.

Exemple de contrat intelligent de paiement

    uint256 playerDeposit = playerDeposits[player];
        playerDeposits[player] = 0;
        uint256 payout = getPayout(playerDeposit);
        uint256 platformShare = playerDeposit.mul(registry.platformShare()).div(10**registry.decimals());
        require(platformShare < playerDeposit);
        if (platformShare > 0)
            require(token.transfer(registry.owner(), platformShare));
        uint256 profit = playerDeposit.sub(platformShare);
        ownerAvailableDeposit = ownerAvailableDeposit.add(payout.sub(playerDeposit )).add(profit );
        return true;
    

Au sein de son contrat, le développeur peut choisir de recevoir un part des bénéfices réalisés sur l’exécution du jeu. Cela est spécifié dans la variable platformShare. Après chaque manche de jeu effectuée par le casino, le développeur recevra une petite partie des revenus. Tout cela est codé directement dans le contrat intelligent donc il n’y a pas d’attente entre le jeu joué et le paiement.

Exemple de processus d’intégration Blockchain : Icy Cash Splash

Alors que l’exemple de code est inclus dans le livre blanc pour démontrer les fonctionnalités et la mise en œuvre de Joytoken, notre référentiel officiel est accessible via notre lien de github ci-dessous : https://github.com/JoyPlatform/joy-contracts. Le code sera commenté pour offrir une visibilité et une compréhension totale de notre approche dans une perspective de développement. Si vous avez des questions, veuillez contacter notre équipe par le canal de communication à tout moment.

La technologie de la Blockchain au-delà d'Ethereum

Ethereum n’est pas immédiatement commercialisable pour la technologie du jeu parce qu’il y a encore des problèmes avec la vitesse et l’évolutivité qui doivent être résolus. Dans cette section, nous présenterons deux technologies complémentaires qui pourraient ajouter de la valeur à notre initiative et pourraient être intégrés à notre plan de développement.

IOTA: Décentralisation par l'intermédiaire de DAG (graphe orienté acyclique)

IOTA est une nouvelle approche décentralisée innovante. Ce n’est pas un écosystème de blockchain, il introduit plutôt le concept de tangle. Un tangle est littéralement une blockchain sans blocs et cela fait du consensus une partie intrinsèque du système.


Cette innovation présente des fonctionnalités de jeu révolutionnaires pour l’industrie des jeux de hasard :

Le point négatif pour le secteur des jeux en ligne serait le temps de validation de la transaction. Cependant, le temps de transaction est directement impacté par le nombre de participants actifs (puisque vous devez participer à deux autres validations afin de valider votre propre transaction). Par conséquent, un plus grand nombre d'utilisateurs réduira le temps de transaction (qui est actuellement entre 2 et 3 minutes). Il est à noter que le réseau IOTA est encore en version bêta et que la fonctionnalité de transaction gratuite attirera probablement un grand nombre d'utilisateurs, ce qui résoudra le temps de validation des transactions. Le potentiel de cet écosystème n'est pas limité, nous suivons son développement et nous espérons tester l'intégration des jeux en ligne dans un proche avenir. [1]

Décentralisation de stockage et d’hébergement

Le stockage décentralisé est un marché ouvert puisque la technologie de blockchain n’est pas faite pour stocker des données. Sia [2], IPFS [2], and Storj [3] sont les principaux concurrents sur ce marché. L’idée générale est de permettre aux utilisateurs de stocker des données ou de louer des capacités de stockage disponibles gérées dans un environnement décentralisé.

Par exemple, de nombreuses personnes dans le monde possèdent des capacités de stockage inutilisées. Les concurrents précités proposent de stocker des données avec un niveau élevé de sécurité sur un réseau des participants qui souhaitent être récompensés pour leur location de disque dur. Si une personne souhaite stocker un document de 1 gigabit, le document sera divisé en plusieurs éléments dont chacun sera chiffré. Ces éléments chiffrés seront ensuite copiés et répartis sur le disque dur de chaque participant.

La puissance de ce modèle est que la seule façon d’accéder au fichier est de posséder la clé privée du détenteur du document, puisqu'il est impossible de retrouver tous les éléments chiffrés de tous les participants du réseau. Ce modèle offre une forte sécurité pour un prix très attractif qui est juste un peu plus cher que les systèmes centralisés ordinaires. Cette technologie permet le stockage de données très sensibles sur l'ordinateur de tout utilisateur, car la gestion de toute activité entre le locataire et l'utilisateur s'effectue via un paiement de crypto-monnaie.

Comme cela est présenté dans la section 11.3, nous avons choisi de stocker un hachage de la session de jeu d'un client sur l'environnement blockchain pour rendre disponible une traçabilité complète du parcours de l'utilisateur. L'utilisation du stockage décentralisé dans notre modèle assurera la sécurité de l'historique et une grande fiabilité, le système n'ayant plus de point de défaillance central.

Joy Gaming étudie l'utilisation de cette solution en tant qu'intégration potentielle dans son développement ultérieur.

Engagement d’affiliation

Les nouveaux opérateurs de casino ont souvent des difficultés avec la liquidité des joueurs. De plus, les grandes sociétés affiliées ne veulent pas traiter avec les jeux des développeurs de petites startups car ils ont souvent des taux faibles de conversion et de rétention auprès des joueurs. Par conséquent, les grandes sociétés affiliées hésitent à traiter avec les petits développeurs jusqu'à ce qu'ils aient un historique commercial. Ces petits développeurs étant payés périodiquement et non en temps réel, ils souffrent donc souvent de problèmes de trésorerie. Joy Gaming résout facilement ces limitations grâce à son modèle de paiement par jeu. Chaque fois que les clients jouent un jeu, des paiements sont versés aux participants respectifs de ce jeu. Cela garantit un écosystème flexible avec une petite boucle de rétroaction qui encouragera encore davantage les opérations nouvelles et innovantes des développeurs.

L'ICO, la gestion KYC et les exigences

Afin de satisfaire notre conformité légale, nous devons associer chaque investissement à son investisseur. Tous les participants avec un montant d'achat d'au moins 10 000 USD devront passer par la procédure de vérification de base qui comprend une copie de leur document d'identification (carte d'identité gouvernementale, passeport ou permis de conduire). Ce processus sera géré par JUMIO, une société de gestion de confiance KYC.

L'accès au jeu, la gestion KYC et les exigences

KYC peut être mis en œuvre afin de se conformer aux organismes de réglementation. Dans ce cas, afin de pouvoir accéder au jeu, chaque client doit passer avec succès le processus KYC. Après chaque vérification KYC réussie, la clé publique du portefeuille du client sera ajoutée à notre système. Une fois la clé publique du client ajoutée, celui-ci peut alors utiliser notre écosystème. Les joueurs pourront donc facilement voir leur statut et revoir leur historique de jeu sur la blockchain publique.

Études de cas

La société de développement de logiciels

Avent est une société de développement de logiciels qui veut créer un jeu de hasard en ligne. Ils ont une idée incroyable qui transformera l'industrie. Cependant, les casinos ne sont pas prêts à embaucher Avent parce que le marché n'a pas encore été testé. Avent pourrait lancer son propre jeu privé en ligne, mais elle devra affronter plusieurs problèmes. Tout d'abord, Avent n'a pas le capital requis pour offrir ses propres jeux privés à hauts enjeux. Deuxièmement, les utilisateurs hésiteront à faire confiance à une société inconnue. En outre, les utilisateurs ne sont pas à l'aise avec l'idée de transmettre leurs informations de carte de crédit à une tierce partie qui aura accès à tous leurs fonds. Cela signifie qu'Avent aura d'énormes difficultés à réaliser un profit sur ses jeux de hasard innovants.

Joy Gaming résout ce problème de deux façons. Premièrement, si Avent utilisait le réseau Joy Gaming, elle serait exposée à un grand nombre de fournisseurs de liquidité (c'est-à-dire les casinos) et cela résoudrait tout problème de liquidité. Deuxièmement, la nature transparente et immuable des contrats intelligents et un algorithme de confiance générateur de nombres aléatoires (RNG) assureraient aux utilisateurs potentiels que les jeux qu'ils jouent sur Avent sont équitables. Enfin, toutes les transactions étant effectuées directement à partir du portefeuille de l'utilisateur, celui-ci a accès à tous ses fonds à tout moment et serait plus disposé à essayer Avent. Avent est maintenant en mesure d'atteindre plus de clients qu'auparavant et peut se concentrer davantage sur le développement de nouveaux jeux innovants.

L'utilisateur

Les utilisateurs en ont assez de devoir constamment naviguer entre différents casinos et salles de jeux, les obligeant ainsi à faire confiance à un nombre croissant de tiers. Joy Gaming assure la visibilité de toutes les transactions, l’immuabilité des règles dans la blockchain et la vérification de ses développeurs. Les utilisateurs peuvent donc jouer sur le réseau de Joy Gaming et être assurés que les jeux sont entièrement vérifiés et sécurisés. De plus, aucun montant ne quitte le portefeuille de l'utilisateur jusqu'à ce qu'un jeu soit lancé, l'utilisateur est donc assuré que ses fonds sont sûrs et sécurisés.

Les casinos

Les casinos sont toujours à la recherche de nouvelles façons d’attirer les utilisateurs et d'améliorer la qualité de leurs jeux. Les casinos ont également l'expertise, le capital et la liquidité nécessaires pour gérer des jeux de manière indépendante. Malheureusement, les casinos ne peuvent pas simplement ajouter des jeux aléatoires parce que les jeux nouvellement développés ne sont souvent pas acceptés par le marché de masse. Le réseau Joy Gaming fournit la solution. Les développeurs qui créent de nouveaux jeux passionnants et expérimentaux peuvent conclure des contrats directement avec les casinos. Dans ce cas, le casino est le fournisseur de liquidité dans le contrat intelligent, et paiera une commission au développeur à chaque fois qu'un utilisateur jouera à ce jeu. C'est un scénario gagnant pour tous.

Vente de jeton

Le jeton

Les jetons JoyTokens seront disponibles à la vente sur le réseau de l’Ethereum en tant que jetons ERC20. Le jeton ERC20 pose actuellement un problème : si vous envoyez votre jeton à un contrat intelligent, vous devez utiliser la fonction « approuver + formulaire de transfert » pour effectuer le transfert. Mais, si vous envoyez votre jeton à une adresse externe appartenant à un tiers, vous devez utiliser la fonction « transfert ». Malheureusement, si vous faites une erreur en utilisant ces fonctions, l’argent est perdu.


Exemple de code pour l'interface du jeton ERC20
    contract ERC20 is ERC20Basic {
      function allowance(address owner, address spender) public constant returns (uint256);
      function transferFrom(address from, address to, uint256 value) public returns (bool);
      function approve(address spender, uint256 value) public returns (bool);
      event Approval(address indexed owner, address indexed spender, uint256 value);
    }
    

Nous sommes conscients de ce problème et nous travaillons pour nous assurer que cela ne se produira pas pour nos clients. Nous prévoyons de passer à la nouvelle norme en développement ERC223 (après son développement complet). L'ERC223 a une nouvelle fonctionnalité qui se déclenche dans le cas d'un scénario expliqué ci-dessus, et l'argent est automatiquement renvoyé au client.

Utilité

Les jetons JoyTokens ont de nombreuses utilisations différentes. Tout d'abord, les jetons JoyTokens peuvent être utilisés par les joueurs pour jouer aux jeux sur le réseau Joy Gaming. Le réseau fournit un système de récompenses sans friction, des paiements garantis, l'attraction de sociétés affiliées autrement inaccessibles, en outre, il élimine la fraude potentielle et réduit les frais de traitement des paiements.

Dans le cas des casinos et des développeurs de jeux, les jetons peuvent être utilisés pour sécuriser le paiement des jeux en cours et pour recevoir le paiement des joueurs. Les casinos peuvent garantir des paiements d'affiliation en temps réel à tous les développeurs, offrant ainsi aux nouveaux opérateurs de casino les mêmes offres d'affiliation très lucratives qui sont actuellement disponibles uniquement pour les plus grandes marques.

En ce qui concerne les plus petits développeurs qui comptent sur les grands casinos pour « soutenir » les jeux, les jetons peuvent être utilisés pour recevoir les commissions des casinos qui fournissent la réputation et le fonds de roulement pour offrir ces jeux.

Toutes les parties légitimes bénéficient de la sécurité de savoir que des contrats intelligents immuables sont associés avec les jetons, éliminant ainsi toute fraude sur le réseau.

Dans l’ensemble, les jetons auront une valeur basée sur ce que les utilisateurs sont prêts à payer pour utiliser les services du réseau Joy Gaming.

Structure de la vente des jetons

Cryptomonnaie acceptée : ETH, BTC, virement bancaire

Plafonnement absolu : la vente de jetons JoyToken a un plafonnement absolu de 46 340 000 USD.

Seuil souple : la vente de jetons JoyToken a un seuil souple de 1 000 000 USD. Si le montant total recueilli est inférieur au seuil souple, l'offre sera considérée comme ayant échoué.

Calendrier : commençant approximativement le 20 mars 2018 et pouvant durer jusqu'à 31 jours ou moins si tous les jetons ont été distribués.

Sursouscription : si l'offre JoyToken recueille plus de 46 340 000 USD, la vente de jetons sera immédiatement clôturée. Une sursouscription est possible. Dans un tel cas, le montant excédentaire des fonds sera retourné dans les 15 jours suivant la clôture de la vente des jetons. Veuillez noter qu’aucun intérêt ne sera payé dans ce cas.

Échec : Si la vente de jetons n'atteint pas le seuil souple, l'offre sera considérée comme ayant échoué. L’offre prendra fin et tous les fonds envoyés seront retournés dans les 15 jours après la clôture de la vente de jetons. Veuillez noter qu’aucun intérêt ne sera payé dans ce cas.

Autres risques : la vente de jetons comporte un certain nombre d’autres risques qui sont expliqués dans le protocole de placement privé (PPM) accompagnant les documents de vente des jetons. Ces risques comprennent, sans s'y limiter, la position actuelle de la SEC selon laquelle les jetons similaires étaient considérés comme des titres et devaient être enregistrés ou exemptés, une perte potentielle de la valeur des jetons, l'impossibilité de revendre les jetons, l'échec du développement du réseau Joy Gaming et la viabilité des risques technologiques. Le lecteur est invité à lire le PPM pour une explication plus complète des risques et à obtenir des conseils appropriés avant de procéder à un investissement.

Distribution de jetons

Pré-vente 20 % 140 000 000
Vendus pendant la ICO* 30 % 210 000 000
Pool de récompenses (VIP, etc.) 10 % 70 000 000
Vendus sur la plateforme 23 % 161 000 000
Équipe fondatrice, investissement pendant 24 mois 12 % 84 000 000
Ambassadeurs, frais de collecte de fonds 3 % 21 000 000
Primes ICO 2 % 14 000 000
Total 100% 700 000 000

*Les jetons invendus seront verrouillés pendant un an.

Notre Équipe

Directeur général

Andrew MacDonald

20 ans d’expérience dans le secteur des jeux et de la vente au détail pour les principales entreprises du secteur. Application avec succès des techniques de rétention marketing sur le joueur individuel et des stratégies permettant de garantir des offres de jeu de qualité afin de promouvoir la croissance des entreprises. Un passionné de la recherche de solutions avec un fort accent sur les données.

Directeur marketing

Mike Leys

Plus de 34 ans d'expérience professionnelle, dont 30 ans dans le secteur du marketing. Responsable d'équipe et spécialiste marketing senior avec une connaissance et une implication éprouvée dans tous les domaines du marketing en ligne et hors ligne et du commerce électronique à travers le monde. Son expérience dans le secteur comprend l'iGaming, le divertissement, la téléphonie mobile, la vente au détail et les services financiers. Depuis 2005 dans le secteur de l'iGaming - lancement avec succès d'un certain nombre de sites de jeux en ligne avec l'objectif d'attirer des joueurs de qualité.

Directeur technique

Steve Giordano Imbroll

10 ans d'expérience en développement logiciel, 7 ans en Business Intelligence, dans le secteur bancaire et financier. Développeur de produits hautement qualifiés pour, a.o., Sony, Uber & PKR Technologies. Professionnel multidisciplines avec de multiples demandes de différents départements. Visionnaire vis-à-vis des subtilités de la performance de l'entreprise. Fascination récente pour le jeu et la sécurité.

Feuille de route

JUIN 2017
OP: 500 000 de financement initial
OCTOBRE 2017
OP: Des conseillers de l'industrie et de la blockchain
NOVEMBRE 2017
OP: Création de la fondation Joy Gaming
OUT: Présentation lors de la BlockChain Expo
DÉCEMBRE 2017
TECH: Machine à sous de démonstration utilisant des contrats intelligents
OP: Demande de licence de développeur de logiciel de paris
TECH: Lancement de la plateforme de développeurs de Joy Gaming
TECH: Audit du Code
MARCH 2018
OP: Vente de jetons
AVRIL 2018
OP: Audit de la vente de jetons
JUIN 2018
TECH: Jeux en direct sur Playcosmo
AOÛT 2018
TECH: Expansion aux jeux de table à probabilités fixes
OP: Intégration de plus de plateformes & d'opérateurs directs

Références

[1] https://iota.org/IOTA_Whitepaper.pdf

[2] https://www.sia.tech/whitepaper.pdf

[3] https://ipfs.io/ipfs/QmR7GSQM93Cx5eAg6a6yRzNde1FQv7uL6X1o4k7zrJa3LX/ipfs.draft3.pdf

[4] https://storj.io/storj.pdf

[5] https://bitcoin.org/bitcoin.pdf

[6] https://github.com/ethereum/wiki/wiki/White-Paper

Table des matières