Les Amis d’Ethereum France #9.2 — “Supporting a P2P rental system in a game" Vincent le Gallic

Les Amis d'Ethereum France · 8 Feb 2023 · 23:28

At Les Amis d'Ethereum France #9.2, Vincent le Gallic discusses supporting a peer-to-peer rental system in a game, together with co-speaker Justin Glibert. The talk considers the mechanics of letting players rent out in-game assets to one another rather than assigning them permanently.

Speakers

Topics

From Les Amis d'Ethereum France, hosted by Ethereum France.

Transcript

[Musique] bonsoir à tous moi je vais vous parler de rental de NFT et je vais essayer de vous faire un retour d'expérience on a bu des deux protocoles alors c'est c'est je vais essayer de pas trop rentrer dans la technique et de vous donner quelques clés si jamais vous buildez un jeu sur la blockchain et souhaitez ajouter du rental je vais essayer de vous donner quelques astuces utiles pour quelques mots sur commettre on a fait deux jeux un premier auquel vous avez déjà peut-être joué qui était un jeu qui était complètement une chaîne avec une économie qui était en chaîne des

déplacements qui étaient en chaîne et en ce moment on a un nouveau jeu un battle card game qui est Live vous pouvez tester elle c'est très cool on a aussi une activité B2B pour les entreprises on les aide à construire leur projet web 3 pour ça on construit des outils des indexeurs des relayeurs on travaille beaucoup sur les rôles en ce moment et on écrit des protocoles comme le rental qui vont être utilisés par d'autres projets bientôt alors comme je suis un petit peu flemmard quand Jérôme Madison tu veux pas faire le Talk sur les le rental je suis juste une minute de disgrisation à propos de chat GPT par curiosité j'ai demandé à chat GPD ouais est-ce que tu peux essayer de décrire

un protocole de NFC renting et bon en fait je me trouvais malin je vais gagner du temps pour faire un slides bon en fait la réponse est vraiment très très bien et en fait je me suis dit bon en fait le tal que je vais devoir un peu ajusté le fait de faire un tolk un peu généraliste sur c'est quoi le renting de FT parce qu'en fait chaque GPT fait ça mieux que moi et je vais devoir me concentrer sur des choses peut-être un peu plus techniques je me suis dit bon si c'est pour finalement faire que du copier-coller de chat GPT ça sert à rien de faire un peu que surtout que vu qu'on est développeur on peut croire que finalement l'IA va pas nous remplacer sur la partie

développement je vais me poser la question de savoir si vous pouvez me donner quelques pistes sur comment on implémente un protocole de rental et en fait là aussi chat GPT est très pertinent donc ça invite à lire la réponse si vous voulez mais en fait je ferai pas mieux que chat GPT sur la partie théorique donc en fait je vais me concentrer sur un retour d'expérience parce que sur la partie théorique malheureusement je peux vous faire 20 minutes de pour quand en théorie c'est bien de faire un protocole de renting mais posez juste la question à chat GPT et vous allez voir franchement impossible de faire mieux donc il y a plusieurs façons de faire il y a

plusieurs façons de faire il y a différentes EP qui coexistent aujourd'hui il y a pas vraiment un standard comme le RC1 ou 721 pour pour le rendre pour le rental de NFC les différentes approches qui existent c'est un contrat ou en fait le propriétaire d'un FFT et le locataire vont juste se registrer en disant ok j'ai loué ce enfin un tel possède ce NFT c'est la première version qu'on avait fait d'ailleurs petit bonjour à Tanguy qui est dans la salle qui avait écrit la première version du protocole qui était basée sur cette idée de plus en plus on voit émerger des smart toilettes avec des permissions ou en fait on met le NFC dans un smartphone et ensuite on donne à des droits d'usage

du NFC donc la personne peut par exemple jouer avec le NFT mais elle peut pas le transférer elle peut pas le vendre et nous on a tenté une autre approche une approche on fait des carbone copies ou des clones des NFC et je vais un peu vous détailler comment on fait ça et pourquoi on a fait comme ça je voulais aussi signaler deux sociétés avec qui on échange beaucoup qui eux sont vraiment spécialisés dans dans écrire un protocole de rental et donc on échange beaucoup sur les différentes approches si vous voulez voir une autre approche que celle que je vous présente ce soir c'est deux sociétés ont fait des aussi un protocole qui a une approche différente et qui est aussi intéressante alors pourquoi on est légitime pour parler de ça parce que on a plus de 10 000 NFC qui ont été loués grâce aux

protagon qu'on a écrit donc moi je suis plutôt fier de ça parce que il y a beaucoup de whitepaper il y a beaucoup de promesses beaucoup de ventes de nfft mais ça il y a pas beaucoup d'usage et on fait partie des rares projets où on a beaucoup d'usages et donc ce dont je vais vous parler ce soir c'est quelque chose qui a été battle testé en production puisque 10000 NFT loués grâce à ses protocoles c'est pas rien le bon point de vue je commence par maslate de conclusion ce que je vais vous présenter ses lives c'est Open Source ça a été audité et vous pouvez l'utiliser pour vos propres jeux alors quand on a commencé la conception du protocole on a regardé les différents éléments c'est bon bah il y a un jeu il y a des NFC il y a des propriétaires et

il y a des joueurs si déjà vous avez pas ces éléments là vous avez pas de NFC qui ont de la valeur vous avez pas de jeu vous avez pas de propriétaire et pas de joueurs entre guillemets bon bah faites pas un protocole de rental ça sert à rien dans la vraie vie on est dans ce cas là vous voulez louer quelque chose vous allez déposer une caution dans le monde du jeu vidéo c'est pas du tout comme ça désolé ma slide mais en fait ouais en fait les joueurs veulent jouer avec des assiettes qui ne possèdent pas et ils peuvent pas déposer un collatéral dans le principe de la caution c'est tout simple vous prenez la Lamborghini

vous la rendez pas et votre caution elle est elle est utilisée pour pour combler les pertes donc il faut qu'on trouve une solution pour faire un protocole de rental ou les joueurs ne peuvent pas déposer de collatéral ne peuvent pas déposer de caution alors on pourrait utiliser des sortes parties ça a pas mal de défauts ça peut partir avec la caisse ça peut utiliser votre argent pour faire d'autres choses et donc FTX en est encore et encore le la preuve que ça ça expose tous les partis un gros risque donc on fait ça en pire tout pire parce que c'est bon risqué ça a d'autres avantages

mais là encore une fois je vous renvoie à Wikipedia pour détailler tout tous ces avantages mais c'est assez évident ça on hérite de tous les avantages de la blockchain quand on fait durantale en chapitre alors une des conditions pour faire du rental de l'acheter c'est que il faut que vous Naft ils soient désirable et qu'ils aient de la valeur personne va vouloir louer un NFC au fil pique un truc qui sert à rien personne va vouloir qu'il faut créer un écosystème ou les gens ont envie de vous le louer ça paraît évident mais je suis obligé de le dire nous dans le comète pourquoi nos NFC se louent bien

c'est qu'on a créé une économie autour des NFC de leur rareté qui fait que un propriétaire s'il a pas le temps de jouer il peut mettre à disposition son vaisseau et un autre joueur va venir va lui passer du temps sur le jeu générer un revenu et il va y avoir du revenu shéring entre le propriétaire et le locataire plus le vaisseau est rare plus génère de revenus plus on peut jouer longtemps avec c'est un petit peu le concept de de moteur qui qui serait plus puissant sur les vaisseaux rares et donc on pourrait faire plus de parties avec et ensuite on peut imaginer qu'il y a un drill qui va mieux être plus performant et donc générer plus de ressources en cas de victoire donc il faut il faut vraiment si vous voulez faire du rental pensez

votre économie pour que vos NFC de la valeur et sinon ça peut pas prendre quand on écrit un protocole la question qu'on doit se poser c'est quels sont les avantages et les incitations à utiliser le protocole je reprends mon exemple de taxi parce que finalement c'est pas mal on peut avoir des gens qui ont des voitures et qui les mettent à disposition de conducteur je trouve que cet exemple il est parlant on peut avoir des propriétaires de voitures qui savent pas conduire et qui ont pas le temps ou en fait qui font ça vraiment par investissement sur quoi mettre on a pas mal de gens qui ont acheté des vaisseaux et qui avaient pas du tout l'intention de jouer avec les ont acheté dès le départ comme un investissement de l'autre côté on a des joueurs qui font du ski qui eux peuvent jouer pendant 20

heures par jour qui connaissent très bien le jeu qui sont passionnés qui va supprimer mécanique et donc il faut qu'on trouve un protocole qui réponde à toutes ces motivations alors pour les possesseurs de vaisseau on veut que y ait un peu comme un propriétaire d'appartement avec qui touche son loyer tous les mois sans rien faire on veut que puisse et là je vais en parler après le délégué par exemple en guilde je vais rentrer un peu dans les tailles après et il veut que sa position soit liquide ça veut dire que je peux très bien acheter un FFT le mettre en location avoir rentabilisé mon investissement et ensuite vouloir revendre ma position sans couper le contrat de location un petit peu

compliqué mais je vais vous expliquer comment on fait ça pour le locataire comme je vous ai dit tout à l'heure on veut pas être collatéral on n'est pas en train de faire un crédit avec du collatéral comme sur ave ce genre de protocole là on fait on emprunte à Naft sans déposer de collatéral on veut que ça puisse jouer une espèce de Marketplace ou je vois toutes les offres de rental disponibles que je puisse les comparer que je puisse les filtrer les chercher et souscrire immédiatement et jouer avec mon nouveau vaisseau encore une fois pour le cas des guilde je vais pouvoir le sous-louer et moi aussi je veux une position liquide c'est à dire que si je change d'avis je veux pouvoir transférer transférer mon droit sur le contrat du point de vue du jeu c'est assez

simple nous ce qu'on veut quand on met en place ce genre de protocole sur notre jeu on veut plus de revenus puisqu'on va prendre des fils à l'ouverture du contrat de rental et surtout on veut pas que les gens vendent les Naft du jeu donc on doit leur donner de l'utilité et souvent on a des gens qui achètent des vaisseaux qui ont pas le temps de jouer avec au bout d'un moment il regarde la Wallet ça fait 6 mois que ce truc n'a pas bougé je le vent et là grâce au Randall on leur dit non en fait pas ça mettez-le en location et en fait ça leur génère un revenu passif ça évite que les gens les vendent et donc ça maintient Flor Price qui est intéressant pour le projet le deuxième aspect qui est hyper important c'est qu'aujourd'hui nous nos vaisseaux il va assez cher

je crois que ça doit être entre 150 et 200 dollars le vaisseau le moins cher forcément quand on quand on a des nouveaux joueurs qui arrivent on peut pas leur demander de payer ça donc on les on lui renvoie vers les oeuvres de location en disant mais pour quelques euros vous allez pouvoir louer un vaisseau et commencer à jouer et tester les mécaniques du guilde vous pouvez voir comme comme des sélectionnés c'est-à-dire que leur valeur ajoutée aujourd'hui dans l'écosystème c'est d'identifier quels sont les joueurs les plus performants on pourrait même nous appeler guilde manager parce que Guild on imagine que c'est tout une organisation mais en généralement c'est une personne qui va être un intermédiaire qui va

louer à NFC et l'affecter un joueur surveiller ses performances et s'il est pas performant il va lui reprendre le vaisseau et l'affecter à quelqu'un d'autre donc sa valeur ajoutée elle est vraiment à dire ok je vais pas acheter j'ai pas de capital pour acheter une flotte de vaisseau je vais en fait moi j'ai juste à faire des offres de location et à gérer une base de player donc leur valeur ajoutée à l'écosystème ça a recruté et à manager une équipe de joueurs de haut niveau ultra compétitif pareil faire un protocole aujourd'hui qui n'adresse pas les guilds à mon avis ça serait énorme parce que finalement le plus gros du volume qu'on fait assez via des intermédiaires qui qui gère cette

partie là alors à quoi ça ressemble concrètement en termes d'interface quand en tant que propriétaire de vaisseau je veux créer une offre de location j'ai plusieurs paramètres à renseigner déjà je peux faire un bundle de vaisseau donc je vais louer en vaisseau violet mon vaisseau vert elle peut être public ou privé je peux réserver une offre et mettre une adresse pour que seul le destinataire de cette offre puisse y accéder il y a un coût d'entrée ce coût d'entrée et surtout pour lutter contre comme on peut dire le flow de le ouais voilà enfin que quand en gros quelqu'un nous mette toutes les annonces spam tout le système avec des annonces qui n'auraient pas de coup d'entrée par

exemple si je l'offre est gratuite j'ai presque intérêt à souscrire à l'offre et à ne pas jouer avec le vaisseau le fait de mettre un petit coup ça ça crée un une barrière pour la personne qui voudrait souscrire à toutes les offres sans jouer avec les vaisseaux une durée chaîne et une répartition des gains c'est-à-dire que tous les gains qui vont être générés grâce à ce vaisseau dans le jeu comète je peux en prendre 50% enfin en garder 50% pour moi la différence stratégie il y a des gens qui mettent des entrées très haut et qui donnent tout le revenu à la personne donc il faut un one shot et il y a des gens qui mettent un entrée un entrée le plus bas possible et qui par contre prennent une grosse part du revenu ça ça dépend la stratégie du locataire et du joueur ça dépend des moments ça

dépend de la philosophie de chacun sachant que une fois que la période est terminée tant que un des deux parties ne renonce pas enfin déclenche pas la fin du contrat le contrat continue alors ce qui se passe d'un point de vue un peu plus technique lorsque quelqu'un souscrit à l'offre de location le NFC original il est loqué dans un espèce de coffre-fort qui est un smart contract et le protocole génère de nouveau NFT un laine TFT et un Border donc le propriétaire il a l'antenne FT et le locataire il se trouve avec un bourreau

NFC qui sont des clones de l'original NFC donc ça donne ça si vous regardez votre toilette en fait vous vous retrouvez avec exactement le même vexo le vaisseau que vous alliez à que vous aviez avant pardon mais vous avez un Bordeaux qui vous dit que ce vaisseau est loué ou [Musique] représente votre droit en tant que

propriétaire et propriétaire il a droit sur le contrat à la fin de récupérer son NFC si vous achetez l'autre c'est plus gênant alors comme je vous disais en fait on n'a pas fait un protocole ou c'est un Wallet qui a des droits sur le protocole c'est vraiment le détenteur d'un NFT qui peut qui peut faire des choses sur ce contrat ça c'est ce qui rend la position liquide c'est si vous possédez le NT vous pouvez faire des choses sur le protocole si vous possédez le bourreau NFD vous pouvez faire vous avez d'autres droits sur le protocole par exemple le détenteur du Boro NFC peut le souder c'est exactement comme quand vous êtes dans votre appartement

imaginez que le propriétaire ne peut pas sous louer l'appartement alors que quelqu'un dedans par contre si vous vous êtes dedans à augmenter vous pouvez peut-être changer Airbnb on va vite c'est légal mais c'est juste pour vous donner l'image ça veut dire que c'est assez logique que ce soit celui qui est le bien en dernier bout de chaîne qui puisse faire ce genre d'opération justement en parlant de sous-location donc en tant que locataire je peux pas modifier le fils qui était pour le propriétaire mais je peux sur ma partie du gâteau la Russe plisser pour pour pouvoir l'affecter ensuite dans ce cas là au niveau du protocole c'est un peu de chiffres faut rester un peu connecté mais ce qu'on fait c'est

qu'on quand quelqu'un souscrit à une offre de sous-location il récupère le bourreau des NFC et on mine un nouveau NFC pour l'intermédiaire donc ça veut dire que dans le cas d'une ville la guilde se retrouve avec un Sublet NFT le joueur comme dans le cas donc c'est à dire le player en bout de chaîne a toujours le Boro Naft je vais expliquer après pourquoi c'est un intérêt on se retrouve avec trois NFC qui ont été limitées et toujours le NFC original qui est loc dans le Smart contracte un peu volts sur ce protocole ce qui est un peu difficile à comprendre quand il y a une sous-location c'est qu'il y a un transfert de NFC et finalement c'est cette technique nous

permet de faire pas mal de choses donc dans ce cas là dans le cas d'une sous-location les droits changent ça veut dire que la personne qui a le brodé peut absolument rien faire sur le protocole mais c'est vraiment le dernier mélange à part jouer enfin à part l'avoir dans son Wallet il peut pas interagir avec le protocole l'intermédiaire donc la guilde en l'occurrence peut toujours couper comme je disais tout à l'heure un joueur qui serait pas performant il peut en tant que intermédiaire coupez le se blette si le propriétaire et le manager sont d'accord pour arrêter le rentable ils peuvent le faire mais dans ce cas là on voit qu'il y a pas beaucoup d'opérations qui sont possibles le fait de faire ces matrices ensuite pour les développeurs c'est hyper pratique quand ils ont plus qu'à implémenter ces règles ça règle le son rien de technique finalement si vous

étiez agent immobilier quand vous demandez de rédiger le contrat entre deux parties vous devriez se poser ce genre de question vous devez vous poser genre de question donc je fais ma partie je suis dernier de la chaîne donc j'ai mon bureau NFT ce qui fait que quand j'arrive dans comète j'ai un vaisseau comme les autres je fais ma partie imaginons que je gagne le jeu va me donner des reward alors en tant que game on doit faire une modification dans le jeu avec ce système on doit supporter les bureaux d'anesthés alors quand on dit supporter les bords NFT aujourd'hui sans sous-location quand vous jouez à commettre on envoie les rewards si dans son Wallet la personne a un

bourreau NFT on lui affiche le vaisseau donc en fait on a une condition à gérer et je regarde si ce Wallet a des NFT de ce contrat là et si oui et qui gagne une partie au lieu d'envoyer les rewards directement au player on l'envoie aux Wallet on envoie au bureau des NFC et en fait c'est le bourreau des NFC qui contient la table de distribution et qui va appliquer tous les les clauses du contrat qui ont été fixées entre les différents partis et cette façon de faire va permettre de de ne pas venir polluer le jeu avec toutes les règles de rental on a voulu faire un protocole ou le jeu ou en tout cas il y a un minimum de

modifications dans le jeu on a pourtant un husky qui est quand même assez particulier il y a peut-être d'autres jeux qui fonctionnent pas du tout avec des transferts de RC1 à la fin mais en tout cas dans notre cas ça correspondait exactement à ce dont on avait besoin et au niveau du jeu on a dû rajouter deux lignes de code pour supporter le bourreau des NFC et ensuite pour ajouter une condition sur l'envoi des reward à la fin un dernier mot j'ai presque fini sur le retour d'expérience de cette écriture de protocole finalement on est à peu près 5 à avoir travaillé dessus sachant que il y a vraiment deux personnes qui ont écrit du code solidity et je voulais vous faire prendre conscience que écrire des des

protocoles tels que le rentage ou des protocoles qui permettent de faire des Marketplace ou du crafting que on a fait un protocole de crafting aussi cette année finalement il y a très peu de codes solidity on a pris pas mal de temps à revoir la conception a été ré- en gros jeter beaucoup de choses et à réécrire beaucoup de choses la doc je crois on l'a fait récemment c'est à dire que pendant un an le protocole était live il y a pas de doc et surtout les tests unitaires j'ai regardé vite fait les fichiers tout à l'heure il y a plus de 600 lignes en fait on a tous les cas de matrices que je vous ai montré précédemment il a fallu les tester et en fait ça prend beaucoup plus de temps d'écrire les tests que d'écrire le code solidité qui

finalement est très simple une fois que les matrices sont bien faites une fois que la conception est ok le code solidity il est assez naturel une sécrétion par contre le code coverage vous êtes obligé de le faire parce que si vous faites évoluer votre protocole et que vous n'avez pas sujet de sécurité vous êtes absolument certain d'introduire des régressions donc finalement le petit retour d'expérience intéressant c'est que sur l'écriture durantal protocole on a on a passé beaucoup plus de temps à écrire des tests qui a écrit du code solidité voilà ce que ça donne une offre de location petite parenthèse mais il y a aussi énormément de boulot sur sur la partie frontend c'est à dire que gérer ses interfaces là c'est au moins aussi

long que d'écrire le protocole même si l'expertise est pas la même pour faire ces interfaces en réac il faut des experts du fontaine ensuite il faut un layer entre la blockchain et le fontaine parce qu'en fait il y a beaucoup trop de données donc vous pouvez utiliser ce graphe nous on est arrivé aux limites de ce qu'on peut faire exographe on a dû développer nos propres outils pour pouvoir avoir ce genre d'interface qui répondent rapidement et qui soit jamais en décalage avec que j'ai jamais désynchronisation entre des outils comme the graphe et la réalité de la chaîne malheureusement parfois the graphe et en retard et en fait pour nos utilisateurs avoir une leur afficher une donnée qui n'est plus d'actualité ça peut donner des des gros problèmes et c'est à peu près tout ce que je

voulais vous dire j'espère que vous avez appris des choses sur le les protocoles de rental un dernier petit mot sur ce qu'on fait en ce moment il y a le jeu qui est live il y a alambic.tech où on commence à sortir tout ce qu'on a développé pour nous qui commençait à utiliser par d'autres personnes dont le rentage fait partie et il y a aussi boiler pour GG qui a un bot discord qui lui aussi utilise des des couches d'infrastructure qu'on a développé à la base pour battle et qui maintenant sont dans la tech donc c'est c'est des choses qui sont life que vous pouvez tester un mot sur boiler ça permet de faire ce que fait premint c'est-à-dire générer des white list sur des prérequis comme liker enfin des prérequis unchaine souvent vous voyez

des opérations de venait d'acheter comme par exemple je vais wait lister des gens pour mintémont un HT seulement si ils ont fait telle transaction sur tel réseau et seulement s'ils suivent tel compte Twitter on s'est amusé à abstraire toutes les interfaces à faire ça que depuis discord c'est gratuit donc si vous voulez tester n'hésitez pas et toutes les couches d'infrastructure sont développées par l'équipe comète donc n'hésitez pas à tester le battle qui est live qui est en train de fortement évoluer en ce moment il y a beaucoup de nouveautés qui sont arrivés donc n'hésitez pas à tester à nous donner du feedback merci beaucoup [Musique]