Apprenez que sont les cryptokitties? Le guide le plus complet écrit

Que sont les cryptokitties? Cours accéléré: au cours de la dernière année, les DAPP, alias les applications décentralisées, ont lentement gagné beaucoup de vitesse.

Comme vous le savez probablement, un DAPP n’appartient à aucune organisation centrale et représente un changement de paradigme indispensable dans un monde de plus en plus centralisé.

Cependant, pour que les DAPP obtiennent la bonne exposition grand public qu’ils méritent, l’un d’entre eux a dû percer et réussir. (Oui, techniquement parlant, le bitcoin est également un DAPP, mais nous ne parlons pas ici de réserve de valeur). Bien sûr, il y a eu plusieurs DAPP avant qui ont obtenu une certaine visibilité, mais quelque chose devait faire grandir et captiver l’imagination du public.

Entrez Cryptokitties.

Que sont les cryptokitties? Cours intensif

Crédit d’image: Cryptokitties

Que sont les cryptokitties?

#Crypto ExchangeBenefits

1

Binance
Best exchange


VISIT SITE
  • ? The worlds biggest bitcoin exchange and altcoin crypto exchange in the world by volume.
  • Binance provides a crypto wallet for its traders, where they can store their electronic funds.

2

Coinbase
Ideal for newbies


Visit SITE
  • Coinbase is the largest U.S.-based cryptocurrency exchange, trading more than 30 cryptocurrencies.
  • Very high liquidity
  • Extremely simple user interface

3

eToro
Crypto + Trading

VISIT SITE
  • Multi-Asset Platform. Stocks, crypto, indices
  • eToro is the world’s leading social trading platform, with thousands of options for traders and investors.

Cryptokitties est un jeu virtuel basé sur la blockchain qui permet aux joueurs d’adopter, d’élever et d’échanger des chats virtuels. Le jeu a été créé par Axiom Zen, société de blockchain basée à Vancouver. Cependant, il est vraiment important de se rappeler qu’il s’agit de la première application connue de DAPP pour les loisirs et les loisirs..

Les ventes de Cryptokitties ont explosé. Les gens ont dépensé plus de douze millions de dollars pour acheter ces crypto-monnaies. Il y a même des rapports de personnes qui ont fait plus de cyptokitties de trading d’argent que d’investir dans leur IRA!

Voyons combien de ventes ont été réalisées par jour:

Que sont les cryptokitties? Cours intensif

#CRYPTO BROKERSBenefits

1

eToro
Best Crypto Broker

VISIT SITE
  • Multi-Asset Platform. Stocks, crypto, indices
  • eToro is the world’s leading social trading platform, with thousands of options for traders and investors.

2

Binance
Cryptocurrency Trading


VISIT SITE
  • ? Your new Favorite App for Cryptocurrency Trading. Buy, sell and trade cryptocurrency on the go
  • Binance provides a crypto wallet for its traders, where they can store their electronic funds.

#BITCOIN CASINOBenefits

1

Bitstarz
Best Crypto Casino

VISIT SITE
  • 2 BTC + 180 free spins First deposit bonus is 152% up to 2 BTC
  • Accepts both fiat currencies and cryptocurrencies

2

Bitcoincasino.io
Fast money transfers


VISIT SITE
  • Six supported cryptocurrencies.
  • 100% up to 0.1 BTC for the first
  • 50% up to 0.1 BTC for the second

Crédit d’image: KittyExplorer

Plusieurs articles ont été écrits sur le «phénomène des chatons» et ils ont également reçu une importante exposition grand public. En fait, même Vitalik s’est mis à l’acte!

Que sont les cryptokitties? Cours intensif

Crédit d’image: Vitalik Buterin Twitter

Chaque minou a son propre code génomique unique de 256 bits. Qui est transmis à tous ses chatons descendants via l’utilisation de l’algorithme génétique.

Qu’est-ce que l’algorithme génétique?

L’algorithme génétique est une technique d’optimisation utilisée pour résoudre des problèmes d’optimisation non linéaire. Cela fonctionne à peu près comme la génétique biologique fonctionne. Cela commence par une génération initiale de solutions candidates qui ont été testées par rapport à la fonction objectif. L’algorithme génère ensuite des solutions ultérieures à partir de ces solutions mères à l’aide d’opérateurs bio-inspirés tels que la sélection, le croisement et la mutation..

Alors que les gènes à l’intérieur de notre corps sont constitués de protéines et de divers autres éléments, en GA, ils sont représentés par des nombres. Voyons donc comment l’évolution fonctionne à l’aide d’un algorithme génétique. Nous n’utiliserons que des cas binaires, c’est-à-dire des cas où les gènes peuvent être représentés par des 1 et des 0.

  • Sélection: La sélection signifie essentiellement retenir les parents les plus performants d’une génération à l’autre. Ces parents performants sont ceux qui sont préférés pour la reproduction. Donc par exemple. les deux parents choisis par sélection sont: Parent 1: 1010011000 Parent 2: 1001001010.

  • Crossover: Ensuite, nous avons un croisement. Ce qui se passe ici, c’est que nous choisissons les variables communes des deux parents et que nous conservons celles de la solution enfant. Donc, en utilisant notre exemple: Parent 1: 1010011000Parent 2: 1001001010Enfant: 1000011010Cela fonctionne à peu près de la même manière dans la vraie vie. C’est ainsi qu’un enfant conserve certaines caractéristiques du père et de la mère.

  • Mutation: La mutation est lorsque nous prenons un parent et muter aléatoirement certaines de ses variables pour créer un enfant. Ceci est fait pour s’assurer que le système peut explorer d’autres possibilités pour des solutions optimales.Parent: 1010011000Enfant: 0101010001

Cryptokitties utilise l’algorithme génétique pour créer un nouveau minou. Il utilise le mécanisme de croisement pour «engendrer» un génome enfant en utilisant deux chatons parents. Ce génome enfant est utilisé pour générer un nouveau minou.

Alors, maintenant que nous avons examiné le fonctionnement de l’algorithme génétique, allons encore plus loin et examinons leur contrat intelligent.

Former pour devenir un développeur Blockchain

Commencez votre essai gratuit aujourd’hui!

Le contrat intelligent CryptoKitty.

Vous pouvez lire le code source principal Ici.

Avant de commencer, un énorme cri à Article de James Martin Duffy pour l’explication.

L’ensemble du code est divisé en plusieurs contrats plus petits. Ceci est fait parce que sinon, le corps de code énorme rendrait la gestion du code impossible.

L’arbre d’héritage des contrats ressemble à ceci:

contrat KittyAccessControl

contrat KittyBase est KittyAccessControl

contrat KittyOwnership est KittyBase, ERC721

contrat KittyBreeding est KittyOwnership

contrat KittyAuction est KittyBreeding

contrat KittyMinting est KittyAuction

contrat KittyCore est KittyMinting

Comme le guide de solidité déclare: «Lorsqu’un contrat hérite de plusieurs contrats, un seul contrat est créé sur la blockchain et le code de tous les contrats de base est copié dans le contrat créé.»

Donc, dans ce cas, KittyCore est le contrat qui hérite de tous les codes des contrats de base. Définissons ce que font chacun de ces contrats.

# 1 Contrôle d’accès Cryptokitty

Vous pouvez consulter le Contrat KittyAccessControl ici.

Le contrat attribue des rôles spéciaux aux développeurs.

Ce contrat définit le système de gestion de l’ensemble du contrat et n’a rien à voir avec le fonctionnement du jeu. Les rôles spéciaux attribués par ce contrat sont:

  • PDG: le PDG peut réaffecter d’autres rôles et modifier les adresses des contrats intelligents dépendants. Ils peuvent également réactiver le contrat (plus à ce sujet dans un instant).
  • CFO: peut retirer des fonds de KittyCore et des contrats d’enchères.
  • COO: Peut libérer des chatons gen0 pour les enchères et les chats promotionnels à la menthe. (nous explorerons cela plus tard dans KittyAuction)

Ce contrat a également une fonction «pause»:

Ce contrat a également une fonction «pause»:

function pause () public onlyCLevel whenNotPaused {

en pause = vrai;

}

Cela donne aux développeurs l’occasion de suspendre l’intégralité du contrat s’ils ont affaire à un bug ou à un piratage ou s’ils mettent à niveau l’ensemble du système.

# 2 CryptokittyBase

KittyBase est le contrat le plus important en ce qui concerne la «définition du minou». C’est ici que nous définissons les règles de base pour la création de chatons.

Donc, ces minous sont en fait une structure avec beaucoup de variables.

struct Kitty

{

gènes uint256;

uint64 birthTime;

uint64 cooldownEndBlock;

uint32 matronId;

uint32 sireId;

uint32 siringWithId;

uint16 cooldownIndex;

génération uint16;

}

Voyons ce que sont chacune de ces variables.

Que sont les cryptokitties? Cours intensif

Cette partie du contrat assure également le suivi du propriétaire du chat. Cela se fait par la ligne de code suivante:

mappage (uint256 => address) public kittyIndexToOwner;

# 3 Propriétaire Cryptokitty

Voici comment ils définissent KittyOwnerShip dans leur contrat:

«Cela fournit les méthodes requises pour les transactions de jetons non fongibles de base, conformément au projet de spécification ERC-721 (https://github.com/ethereum/EIPs/issues/721).”

Qu’est-ce que la fongibilité? Investopedia définit la fongibilité comme suit:

“La fongibilité est l’interchangeabilité d’un bien ou d’un actif avec d’autres biens ou actifs individuels du même type.”

Alors, qu’est-ce qui est fongible et ce qui est non fongible.

Supposons que vous ayez emprunté 20 $ à un ami. Si vous lui retournez l’argent avec UN AUTRE billet de 20 $, tout va bien. En fait, vous pouvez même leur rendre l’argent sous forme de 1 billet de 10 $ et 2 billets de 5 $. C’est toujours bien. Le dollar a des propriétés fongibles (pas tout le temps cependant).

Cependant, si vous empruntez la voiture de quelqu’un pour le week-end et revenez lui donner une autre voiture en retour, alors cette personne va probablement frapper au visage. En fait, si vous êtes parti avec une Impala rouge et que vous êtes revenu avec une autre Impala rouge, même ce n’est pas chose faite. Les voitures, dans cet exemple, sont un actif non fongible.

Les chatons dans CryptoKitties ne sont pas fongibles car chaque chat n’est pas créé de la même manière. Vous ne pouvez pas simplement échanger un chat avec un autre. Les jetons CryptoKitties suivent la formule ERC721 que vous pouvez Vérifiez ici.

# 4 Élevage CryptoKitty

C’est le contrat où nous définissons les fonctions requises pour que deux chatons se reproduisent et produisent un nouveau chat.

Il y a un processus de reproduction et puis il y a un processus de naissance.

Voyons comment les deux fonctionnent.

function _breedWith (uint256 _matronId, uint256 _sireId) interne

{

Sire de stockage de chatons = chatons [_sireId];

Matrone de stockage de chatons = chatons [_matronId];

matron.siringWithId = uint32 (_sireId);

_triggerCooldown (père);

_triggerCooldown (matrone);

supprimer sireAllowedToAddress [_matronId];

supprimer sireAllowedToAddress [_sireId];

enceintesKitties ++;

Enceinte (kittyIndexToOwner [_matronId], _matronId, _sireId, matron.cooldownEndBlock);

}

Ok, alors que se passe-t-il dans ce morceau de code?

Premièrement, les identifiants des chatons mère et père sont pris pour matronId et sireId et le «siring withId» de la mère est remplacé par l’identifiant du père. (Rappelez-vous: le père d’une mère non enceinte avec ID est 0 tandis que celui de la mère enceinte, le père avec ID est l’ID du père.)

Parallèlement à cela, le nombre de chatons enceintes dans le système est augmenté 1.

Voyons maintenant comment fonctionne le processus d’accouchement.

function giveBirth (uint256 _matronId)

externe

whenNotPaused

renvoie (uint256)

{

Matrone de stockage de chatons = chatons [_matronId];

require (matron.birthTime! = 0);

require (_isReadyToGiveBirth (matrone));

uint256 sireId = matron.siringWithId

Kitty storage sire = kitties [sireId];

uint16 parentGen = matron.generation;

if (sire.generation > matron.generation) {

parentGen = sire.generation;

}

uint256 childGenes = geneScience.mixGenes (matron.genes, sire.genes, matron.cooldownEndBlock – 1);

propriétaire de l’adresse = kittyIndexToOwner [_matronId];

uint256 kittenId = _createKitty (_matronId, matron.siringWithId, parentGen + 1, childGenes, propriétaire);

supprimer matron.siringWithId;

enceintesKitties–;

msg.sender.send (autoBirthFee);

return kittenId;

}

Premièrement, la fonction vérifie si la mère est prête à accoucher. Si la mère est prête à accoucher, alors le parentGen aka la génération du parent est défini sur la génération de la mère ou la génération du père, selon qui est le plus jeune.

Après cela, les gènes de l’enfant sont créés en appelant la fonction geneScience.mixGenes (). L’algorithme de sélection est «sooper-sekret» et est géré par un contrat qui implémente GeneScienceInterface. L’algorithme est à source fermée et n’est pas ouvert au public.

Une fois que la mère accouche, trois choses se produisent:

  • Le nombre de chatons enceintes diminue de 1 (chatons enceintes -).
  • La propriété du nouveau minou enfant revient au propriétaire du minou mère.
  • La fonction appelle ensuite la fonction «createKitty ()» qui a été élaborée dans KittyBase.

# 5 Enchères CryptoKitty

Ici, nous avons les méthodes publiques de vente aux enchères ou d’enchères sur les chats ou les services de reproduction. La fonctionnalité d’enchères proprement dite est gérée dans deux contrats frères (un pour les ventes et un pour le recrutement), tandis que la création et les enchères d’enchères sont principalement négociées via cette facette du contrat principal.

Dans ce contrat, les développeurs ont défini diverses méthodes publiques pour la vente aux enchères de chats ou pour les services de reproduction. La principale fonctionnalité d’enchères a été divisée en deux contrats frères:

Ces fonctions ne peuvent être appelées que par le PDG.

La raison pour laquelle les développeurs ont mis en place deux contrats de frères et sœurs est que selon eux:

«Leur logique est quelque peu complexe et il y a toujours un risque de bugs subtils. En les conservant dans leurs propres contrats, nous pouvons les mettre à niveau sans interrompre le contrat principal qui suit la propriété des minous. »

# 6 CryptoKitty Frappe

Rappelez-vous comment nous avons dit plus tôt que le COO a le pouvoir de créer des chats promotionnels et des chats de génération 0?

C’est le contrat qui leur permet de le faire.

Il y a une limite au nombre de chats promotionnels et de génération 0 qui peuvent être créés. Il était déjà présent dans le code lui-même:

  • uint256 constante publique PROMO_CREATION_LIMIT = 5000;
  • uint256 constante publique GEN0_CREATION_LIMIT = 45000;

Jetons un œil à ce contrat:

function createPromoKitty (uint256 _genes, address _owner) externe uniquementCOO {

adresse kittyOwner = _owner;

if (kittyOwner == adresse (0)) {

kittyOwner = cooAddress;

}

require (promoCreatedCount < PROMO_CREATION_LIMIT);

promoCreatedCount ++;

_createKitty (0, 0, 0, _genes, kittyOwner);

}

function createGen0Auction (uint256 _genes) externe uniquementCOO {

require (gen0CreatedCount < GEN0_CREATION_LIMIT);

uint256 kittyId = _createKitty (0, 0, 0, _genes, adresse (ceci));

_approve (kittyId, saleAuction);

saleAuction.createAuction (

kittyId,

_computeNextGen0Price (),

0,

GEN0_AUCTION_DURATION,

adresse (ceci)

);

gen0CreatedCount ++;

}

Examinons la fonction createPromoKitty ().

Ainsi, en y regardant de plus près, certaines choses sont évidentes:

  • Le COO peut créer tout le chaton Promo qu’il veut avec les gènes qu’il veut.
  • Le COO peut envoyer le minou promotionnel à qui il veut.

En vérifiant la fonction createGen0Auction (), ce qui suit est évident:

  • Le COO a tout pouvoir sur ce que le chat de génération 0 il veut créer.
  • Cependant, une fois le minou créé, il est directement mis aux enchères.

# 7 CryptoKitty Core

C’est le contrat principal qui fonctionne sur la blockchain Ethereum.

Ce contrat hérite de toutes les fonctions des contrats précédents ET il définit également une méthode qui lui est propre:

fonction getKitty (uint256 _id)

externe

vue

Retour (

bool isGestating,

bool isReady,

Temps de recharge de uint256Index,

uint256 nextActionAt,

uint256 siringWithId,

uint256 birthTime,

uint256 matronId,

uint256 sireId,

génération uint256,

gènes uint256

)

{

Kit de stockage pour chatons = chatons [_id];

isGestating = (kit.siringWithId! = 0);

isReady = (kit.cooldownEndBlock <= numéro de bloc);

cooldownIndex = uint256 (kit.cooldownIndex);

nextActionAt = uint256 (kit.cooldownEndBlock);

siringWithId = uint256 (kit.siringWithId);

birthTime = uint256 (kit.birthTime);

matronId = uint256 (kit.matronId);

sireId = uint256 (kit.sireId);

generation = uint256 (kit.generation);

gènes = kit.genes;

}

Cette fonction renvoie essentiellement tous les pour un minou spécifique de la blockchain.

Alors, maintenant que nous savons ce qui se passe dans les coulisses, voyons comment l’interface fonctionne dans la vraie vie.

Comment acheter des CryptoKitties?

Avant de commencer quoi que ce soit, vous avez besoin de trois éléments:

  • Navigateur Chrome ou Firefox.
  • Le portefeuille Metamask.
  • Ether dans votre portefeuille Metamask.

C’est vraiment tout ce dont vous avez besoin pour commencer.

Une fois que vous avez réglé ces choses, acheter les chatons est très simple.

  • Aller aux Cryptokitties Marketplace.
  • Une fois que vous y êtes, voici ce que vous verrez:

    Que sont les cryptokitties? Cours intensifCrédit d’image: CryptokittiesLorsque vous voyez un minou que vous aimez, cliquez simplement dessus.

  • Après cela, c’est une simple question d’acheter le minou.

Supposons que vous n’aimiez aucun des chatons que vous voyez, alors vous pouvez simplement rechercher un chat de génération 0. Ces chatons sont sous l’onglet “Gen 0”.

Ok, maintenant que vous savez comment acheter des chatons, voyons comment vous pouvez engendrer vos chatons.

  • Tout d’abord, allez à la Onglet “siring” du marché.
  • Après cela, vous verrez tous les chatons qui ont été mis en ponte.Que sont les cryptokitties? Cours intensifCrédit d’image: Cryptokitties
  • Après cela, il suffit de choisir le chaton que vous voulez mater avec votre chaton.

Consommation de gaz de CryptoKitties.

Nous allons maintenant examiner l’un des points de discussion acharnés qui a été soulevé à cause des cryptokitties. La quantité de gaz qu’il a consommée et la façon dont il a obstrué la blockchain Ethereum.

Au moment de la rédaction, c’est le troisième contrat intelligent le plus gourmand en gaz d’Ethereum.

Que sont les cryptokitties? Cours intensif

Crédit d’image: Station-service ETH

La popularité des chatons a posé de sérieuses questions à la blockchain Ethereum. En raison de la demande croissante de chatons, le nombre de transactions non confirmées sur la blockchain a augmenté de façon exponentielle.

Que sont les cryptokitties? Cours intensif

Crédit d’image: Quartz

Pour cette raison, Axiom, alias la société à l’origine des cryptokitties, a été contrainte d’augmenter ses frais de naissance. Voici ce qu’ils ont dit dans leur article médiatique:

«L’enthousiasme et l’adoption que nous avons vu cette semaine ont été impressionnants et nous ne pourrions pas être plus heureux! Cependant, le réseau Ethereum est complètement complet. Le seul moyen d’empêcher CryptoKitties de rester à la traîne est d’augmenter les prix du gaz afin que toutes les transactions puissent se terminer rapidement. Nous savons que l’augmentation des prix signifiera que certains d’entre vous devront ralentir leur régime de reproduction, et nous en sommes extrêmement déçus. Mais qui sait? Peut-être que ce ralentissement signifiera simplement que vous allez adorer les chatons que vous avez déjà beaucoup plus »

Nous avons tous appris une leçon très précieuse de tout cet épisode.

Bien qu’Ethereum ait certainement un rôle à jouer dans un avenir décentralisé, pour le moment, il n’a tout simplement pas les moyens de faire face à une demande croissante du grand public. Ils doivent certainement travailler davantage sur leur évolutivité pour aller de l’avant.

Le cycle économique des cryptokitties

Nous sommes tombés sur cet article fascinant de Jaz Liu sur support. Il documente l’ensemble du cycle économique des cryptokitties. Nous allons prendre des données de ses articles pour cette section particulière.

Comment fonctionne un jeu basé sur la «collecte de choses rares»? Il fonctionne sur le simple concept de «rareté».

Les utilisateurs sont intéressés par la collecte d’objets de collection aussi rares que possible. Mais alors, cela soulève la question, qui décide réellement quels traits sont rares et souhaitables?

Voici ce qu’Arthur Camara, ingénieur logiciel de l’équipe CryptoKitty à Vancouver, avait à dire à ce sujet:

«Regardez, nous n’avons pas dit que les chatons 1 à 100 étaient rares. C’est le point de vue des gens sur la rareté. Les gens pensent simplement qu’ils sont plus importants pour une raison quelconque, c’est peut-être à quoi ils ressemblent. La façon dont le jeu fonctionne est que les chatons qui se reproduisent le plus rendront ces traits plus populaires. Donc, si vous élevez beaucoup de chatons aux yeux verts, ce sera moins rare. Les gens contrôlent cette rareté dans un chemin, et créer eux-mêmes cette valeur. Ce sont les utilisateurs qui créent cette idée de rareté avec les gènes et avec leurs chatons. “

Alors, gardant cela à l’esprit, voyons comment l’économie de CryptoKitty se déroulera dans un cycle économique typique.

Que sont les cryptokitties? Cours intensif

Crédit d’image: moyen

Étape # 1: Croissance

Cela représente la première étape de l’économie de la crypto-monnaie. Le coût moyen d’un chaton de départ était de 4 $ cependant, en une semaine, il est passé à 8 $.

Étape # 2: Pic

C’est la deuxième étape de l’économie où la demande dépasse toutes les attentes et le DAPP devient courant. La demande était telle qu’elle a obstrué la blockchain Ethereum.

Récession de l’étape 3

Que sont les cryptokitties? Cours intensif

Crédit d’image: Kitty Explorer

Et, après que la croissance arrive à l’inévitable récession.

Comme vous pouvez le voir sur le graphique, le nombre de chatons achetés a définitivement diminué au cours des derniers jours.

Dépression au stade 4

Les chatons toucheront-ils un fond absolu avant de récupérer??

Ce n’est pas clair. Cependant, une chose est clairement apparente. Avec leur popularité, c’est une chose difficile à envisager.

Conclusion

Il n’est pas exagéré de dire que les cryptokitties ont pris d’assaut le monde. Ce que nous avons vu ici est la première application populaire de la blockchain sous une forme purement récréative. Plus que de créer des applications utilitaires, c’est le genre qui peut devenir super grand public.

Cependant, ce n’est pas la seule leçon qu’ils nous ont enseignée. Nous savons tous maintenant que l’évolutivité doit absolument être travaillée. Si Ethereum peut résoudre ces problèmes à l’avenir (avec l’utilisation du sharding, du plasma, etc.), alors les DAPP peuvent vraiment percer et devenir une partie essentielle de l’air du temps..

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me