Conozca ¿Qué son los Cryptokitties? La guía más completa escrita

¿Qué son los Cryptokitties? Crash Course. Durante el último año, las DAPP, también conocidas como aplicaciones descentralizadas, han ganado poco a poco un gran impulso.

Como probablemente sepa, un DAPP no es propiedad de ninguna organización central y representa un cambio de paradigma muy necesario en un mundo cada vez más centralizado.

Sin embargo, para que los DAPP obtengan la exposición general adecuada que se merecen, uno de ellos tuvo que abrirse paso y triunfar. (Sí, técnicamente hablando, bitcoin también es un DAPP, pero no estamos hablando de almacenamiento de valor aquí). Claro, ha habido varios DAPP antes que obtuvieron algo de exposición, pero algo tenía que ser grande y capturar la imaginación del público.

Ingrese Cryptokitties.

¿Qué son los Cryptokitties?

Cryptokitties es un juego virtual basado en blockchain que permite a los jugadores adoptar, criar e intercambiar gatos virtuales. El juego fue creado por la empresa de blockchain Axiom Zen, con sede en Vancouver. Sin embargo, lo que es realmente importante recordar es que esta es la primera aplicación conocida de DAPP para el esparcimiento y la recreación.

Las ventas de Cryptokitties se han disparado. La gente ha gastado más de doce millones de dólares comprando estos criptokitties. ¡Incluso hay informes de personas que han ganado más dinero intercambiando cyptokitties que invirtiendo en su IRA!

Veamos cuántas ventas se han realizado por día:

Se han escrito varios artículos sobre el “fenómeno de los gatos” y también han recibido una exposición significativa en la corriente principal. De hecho, ¡incluso Vitalik se ha involucrado en el acto!

¿Qué es el algoritmo genético?

El algoritmo genético es una técnica de optimización utilizada para resolver problemas de optimización no lineal. Funciona de forma muy similar a la de la genética biológica. Comienza con una generación inicial de soluciones candidatas que se han probado con la función objetivo. Luego, el algoritmo genera soluciones posteriores a partir de estas soluciones originales utilizando operadores bioinspirados como selección, cruce y mutación.

Mientras que los genes dentro de nuestro cuerpo consisten en proteínas y varios otros elementos, en GA se representan mediante números. Así que echemos un vistazo a cómo funciona la evolución utilizando un algoritmo genético. Solo usaremos casos binarios, es decir, casos en los que los genes se pueden representar como unos y ceros.

Selección: La selección básicamente significa retener a los padres con mejor desempeño de una generación a la siguiente. Estos padres de buen desempeño son los preferidos para la reproducción. Entonces, por ejemplo. los dos padres elegidos a través de la selección son: Padre 1: 1010011000 Padre 2: 1001001010.

Crossover: A continuación tenemos un crossover. Lo que sucede aquí es que elegimos las variables comunes de los dos padres y las retenemos en la solución secundaria. Entonces, usando nuestro ejemplo: Padre 1: 1010011000 Padre 2: 1001001010 Niño: 1000011010 Esto también funciona igual en la vida real. Así es como un niño conserva ciertos rasgos del padre y de la madre.

  • Mutación: La mutación es cuando tomamos a un padre y mutamos aleatoriamente algunas de sus variables para crear un hijo. Esto se hace para asegurarse de que el sistema pueda explorar otras posibilidades de soluciones óptimas. Padre: 1010011000 Niño: 0101010001
  • Cryptokitties usa el algoritmo genético para crear un nuevo gatito. Utiliza el mecanismo de cruce para “engendrar” un genoma hijo usando dos gatitos parentales. Este genoma infantil se utiliza para generar un nuevo gatito.

Entonces, ahora que hemos visto cómo funciona el algoritmo genético, profundicemos aún más y echemos un vistazo a su contrato inteligente.

El contrato inteligente de CryptoKitty.

Puedes leer el código fuente principal aquí.

Antes de comenzar, un gran agradecimiento al artículo de James Martin Duffy por la explicación.

El código completo se divide en varios contratos más pequeños. Esto se hace porque de lo contrario, el enorme cuerpo del código haría imposible la administración del código.

El árbol de herencia de los contratos se ve así:

contrato KittyAccessControl

contrato KittyBase es KittyAccessControl

contrato KittyOwnership es KittyBase, ERC721

contrato KittyLa cría es KittyPropiedad

contrato KittyAuction es KittyBreeding

contrato KittyMinting es KittyAuction

contrato KittyCore es KittyMinting

Como dice la guía de solidez: “Cuando un contrato hereda de varios contratos, solo se crea un único contrato en la cadena de bloques y el código de todos los contratos base se copia en el contrato creado”.

Entonces, en este caso, KittyCore es el contrato que hereda todos los códigos de los contratos base. Definamos lo que hace cada uno de estos contratos.

1 Control de acceso de Cryptokitty

Puede consultar el contrato de KittyAccessControl aquí.

El contrato asigna roles especiales a los desarrolladores.

Este contrato establece el sistema de gestión de todo el contrato y no tiene nada que ver con la forma en que funciona el juego. Los roles especiales asignados por este contrato son:

  • CEO: el CEO puede reasignar otros roles y cambiar las direcciones de los contratos inteligentes dependientes. También pueden reanudar el contrato (más sobre esto en un momento).
  • CFO: Puede retirar fondos de KittyCore y los contratos de subasta.
  • COO: Puede lanzar gatitos gen0 para subastas y gatos promocionales de menta. (exploraremos esto más adelante en KittyAuction)

Este contrato también tiene una función de “pausa”:

Esto les da a los desarrolladores la oportunidad de pausar todo el contrato en caso de que hayan lidiado con un error o un hackeo o si están actualizando todo el sistema.

2 CryptokittyBase

KittyBase es el contrato más importante en lo que respecta a la “definición de gatito”. Aquí es donde establecemos las reglas básicas para la creación de gatitos.

Entonces, estos gatitos son en realidad una estructura con muchas variables.

Esta parte del contrato también realiza un seguimiento del propietario del gatito. Esto se hace mediante la siguiente línea de código:

mapeo (uint256 => dirección) public kittyIndexToOwner;

3 Propiedad de Cryptokitty

Así es como definen KittyOwnerShip en su contrato:

“Esto proporciona los métodos necesarios para las transacciones básicas de tokens no fungibles, siguiendo el borrador de la especificación ERC-721 (https://github.com/ethereum/EIPs/issues/721)”.

¿Qué es la fungibilidad? Investopedia define la fungibilidad de la siguiente manera:

“La fungibilidad es la intercambiabilidad de un bien o activo con otros bienes o activos individuales del mismo tipo”.

Entonces, qué es fungible y qué no fungible.

Suponga que le pidió prestados $ 20 a un amigo. Si le devuelve el dinero con OTRO billete de $ 20, está perfectamente bien. De hecho, incluso puede devolverles el dinero en forma de 1 billete de $ 10 y 2 billetes de $ 5. Todavía está bien. El dólar tiene propiedades fungibles (aunque no todo el tiempo).

Sin embargo, si tomara prestado el automóvil de alguien para el fin de semana y regresara y le diera otro automóvil a cambio, esa persona probablemente le dará un puñetazo en la cara. De hecho, si te fuiste con un Impala rojo y regresaste con otro Impala rojo, ni siquiera eso es un trato hecho. Los automóviles, en este ejemplo, son un activo no fungible.

Los gatitos en CryptoKitties no son fungibles porque cada gatito no se crea por igual. No puedes simplemente intercambiar un gatito por otro. Los tokens de CryptoKitties siguen la fórmula ERC721 que puede consultar aquí.

4 Crianza de CryptoKitty

Este es el contrato en el que establecemos las funciones necesarias para que dos gatitos se reproduzcan y produzcan un nuevo gatito.

Hay un proceso de reproducción y luego hay un proceso de nacimiento.

Veamos cómo funcionan ambos.

Bien, entonces, ¿qué está sucediendo en este fragmento de código?

En primer lugar, las identificaciones de los gatitos de la madre y el padre se toman por matronId y sireId y el “siring withId” de la madre se cambia por la identificación del padre. (Recuerde: el número de hijos con ID de una madre no embarazada es 0, mientras que el de la madre embarazada, el número de hijos con ID es el ID del padre).

Junto con eso, el número de gatitos preñadas en el sistema aumenta 1.

Ahora, veamos cómo funciona el proceso de parto.

En primer lugar, la función comprueba si la madre está lista para dar a luz. Si la madre está lista para dar a luz, el parentGen, también conocido como la generación del padre, se establece en la generación de la madre o la generación del padre, según quién sea más joven.

Después de eso, los genes del niño se crean llamando a la función geneScience.mixGenes (). El algoritmo de reproducción es “sooper-sekret” y es manejado por un contrato que implementa GeneScienceInterface. El algoritmo es de código cerrado y no está abierto al público.

Una vez que la madre da a luz suceden tres cosas:

El número de gatitos preñadas se reduce en 1 (gatitos preñadas -).
La propiedad del gatito recién nacido va al dueño de la gatita madre.
La función luego llama a la función “createKitty ()” que fue elaborada en KittyBase.

5 subastas de CryptoKitty

Aquí tenemos los métodos públicos para subastar o pujar por gatos o servicios de cría. La funcionalidad real de la subasta se maneja en dos contratos hermanos (uno para ventas y otro para engendrar), mientras que la creación y licitación de la subasta están principalmente mediadas a través de esta faceta del contrato principal.

En este contrato, los desarrolladores han establecido varios métodos públicos para subastar gatos o para servicios de engendrar. La funcionalidad principal de la subasta se ha dividido en dos contratos hermanos:

setSaleAuctionAddress ().
setSiringAuctionAddress ()

Estas funciones solo pueden ser invocadas por el CEO.

La razón por la que los desarrolladores establecieron contratos de dos hermanos es que, según ellos:

“Su lógica es algo compleja y siempre existe el riesgo de errores sutiles. Al mantenerlos en sus propios contratos, podemos actualizarlos sin interrumpir el contrato principal que rastrea la propiedad del gatito “.

6 acuñación de CryptoKitty

¿Recuerdas que dijimos antes que el director de operaciones tiene el poder de crear gatos promocionales y gatos gen 0?

Este es el contrato que les permite hacerlo.

Hay un límite en la cantidad de gatos de promoción y Gen 0 que se pueden crear. Ya ha estado presente en el propio código:

  • uint256 constante pública PROMO_CREATION_LIMIT = 5000;
  • uint256 constante pública GEN0_CREATION_LIMIT = 45000;

Echemos un vistazo a este contrato:

Examinemos la función createPromoKitty ().

Entonces, en una inspección más cercana, ciertas cosas son obvias:

El director de operaciones puede crear cualquier gatito Promo que quiera con los genes que quiera.
El director de operaciones puede enviar el gatito promocional a quien quiera.
Al verificar la función createGen0Auction (), lo siguiente es evidente:

El director de operaciones tiene pleno poder sobre qué gatito gen 0 quiere crear.
Sin embargo, una vez que se crea el gatito, va directamente a subasta.

7 CryptoKitty Core

Este es el contrato principal que se ejecuta en Ethereum Blockchain.

Este contrato hereda todas las funciones de los contratos anteriores Y también define un método propio:

Esta función básicamente devuelve todos los de un gatito específico de la cadena de bloques.

Entonces, ahora que sabemos lo que sucede detrás de escena, veamos cómo funciona la interfaz en la vida real.

¿Cómo comprar CryptoKitties?

Antes de comenzar con cualquier cosa, hay tres cosas que necesita:

  • Navegador Chrome o Firefox.
  • La billetera Metamask.
  • Éter en su billetera Metamask.
  • Eso es realmente todo lo que necesitas para empezar.

Una vez que haya resuelto estas cosas, comprar los gatitos es muy sencillo.

  • Vaya al mercado de Cryptokitties.
  • Una vez que esté dentro, esto es lo que verá:

Después de eso, es una simple cuestión de comprar el gatito.

Suponga que no le gusta ninguno de los gatitos que ve, entonces puede simplemente buscar un gatito Gen 0. Estos gatitos están en la pestaña “Gen 0”.

Bien, ahora que sabes cómo comprar gatitos, veamos cómo puedes engendrar a tus gatitos.

  • En primer lugar, vaya a la pestaña “siring” del mercado.
  • Después de eso, verá todos los gatitos que se han preparado para engendrar.
  • Después de eso, es una simple cuestión de elegir el gatito que desea mamar con su gatito.

Consumo de gas de CryptoKitties.

Ahora veremos uno de los puntos de discusión que ha surgido debido a los criptokitties. La cantidad de gas que ha consumido y la forma en que ha obstruido la cadena de bloques Ethereum.

En el momento de escribir este artículo, es el tercer contrato inteligente que más gas consume en Ethereum.

La gran popularidad de los gatitos le ha hecho a la cadena de bloques Ethereum algunas preguntas serias. Debido a la creciente demanda de gatitos, la cantidad de transacciones no confirmadas en la cadena de bloques aumentó exponencialmente.

Debido a esto, Axiom, también conocida como la compañía detrás de cryptokitties, se vio obligada a aumentar sus tarifas de parto. Esto es lo que dijeron en su artículo mediano:

“¡La emoción y la adopción que hemos visto esta semana ha sido abrumadora y no podríamos estar más felices! Sin embargo, la red Ethereum está completamente llena. La única forma de evitar que CryptoKitties se quede atrás es aumentar los precios del gas para que todas las transacciones puedan completarse rápidamente. Sabemos que el aumento de los precios significará que algunos de ustedes tendrán que ralentizar su régimen de reproducción, y eso nos decepciona muchísimo. ¿Pero quién sabe? Tal vez esta desaceleración solo signifique que amarás mucho más a los Kitties que ya tienes “

Todos aprendimos una lección muy valiosa de todo este episodio.

Si bien Ethereum definitivamente tendrá un papel que desempeñar en un futuro descentralizado, en este momento simplemente no tiene los medios para hacer frente al aumento de las demandas de la corriente principal. Definitivamente necesitan trabajar más en su escalabilidad para poder avanzar.

El ciclo económico de los criptokitties

Nos encontramos con este fascinante artículo de Jaz Liu en medium. Documenta todo el ciclo económico de Cryptokitties. Vamos a tomar datos de sus artículos para esta sección en particular.

¿Cómo funciona cualquier juego que se base en “coleccionar cosas raras”? Trabaja sobre el simple concepto de “escasez”.

Los usuarios están interesados ​​en coleccionar coleccionables tan raros como sea posible. Pero entonces, esto plantea la pregunta, ¿quién decide realmente qué rasgos son raros y deseables?

Esto es lo que Arthur Camara, un ingeniero de software del equipo de CryptoKitty en Vancouver, dijo al respecto:

“Mira, no hemos dicho que los gatitos del 1 al 100 sean raros. Esa es la perspectiva de la gente sobre la escasez. La gente simplemente piensa que son más importantes por alguna razón, tal vez sea por su apariencia. La forma en que funciona el juego es que los gatitos que más se reproducen harán que esos rasgos sean más populares. Entonces, si crías muchos gatitos con ojos verdes, eso será menos escaso. Las personas controlan esa escasez de alguna manera y crean ese valor por sí mismas. Son los usuarios los que crean esa idea de escasez con los genes y con sus gatitos “.

Entonces, teniendo eso en cuenta, veamos cómo se desarrollará la economía de CryptoKitty en un ciclo comercial típico.

Etapa # 1: Crecimiento

Esto representa la primera etapa de la economía de los criptokitty. El costo promedio de un gatito inicial fue de $ 4, sin embargo, en una semana subió a $ 8.

Etapa # 2: pico

Esta es la segunda etapa de la economía cuando la demanda supera todas las expectativas y el DAPP se convierte en la corriente principal. La demanda fue tanta que atascó Ethereum Blockchain.

Etapa # 3 Recesión

Y, después del crecimiento, llega la inevitable recesión.

Como puede ver en el gráfico, la cantidad de gatitos comprados definitivamente ha disminuido en los últimos días.

Etapa # 4 Depresión

¿Los gatitos tocarán fondo absoluto antes de recuperarse?

Eso no está claro. Sin embargo, una cosa es definitivamente evidente. Con su popularidad, es algo difícil de imaginar.

Conclusión

No es una exageración decir que los criptokitties han tomado al mundo por asalto. Lo que hemos visto aquí es la primera aplicación popular de blockchain en una forma puramente recreativa. Más que crear aplicaciones de servicios públicos, este es el tipo que en realidad puede convertirse en algo muy común.

Sin embargo, esa no es la única lección que nos han enseñado. Todos sabemos ahora que definitivamente es necesario trabajar en la escalabilidad. Si Ethereum puede abordar estos problemas en el futuro (con el uso de fragmentación, plasma, etc.), los DAPP realmente pueden avanzar y convertirse en una parte esencial del zeitgeist.

CriptoMundo

CriptoMundo.com es un medio digital independiente que difunde noticias y contenido sobre criptomonedas y tendencias emergentes de tecnologías financieras. Ofrece noticias, guías, artículos de opinión y gráficos en tiempo real.

Monedas

Bitcoin

Ethereum