Solución técnica Twitch

Solución técnica Twitch


Redactado por: David Jiménez, Technical Leader en Change The Block.

 

En la plataforma Change The Block se añadió una nueva modalidad de creación de contrato. Se trata de los contratos tipo Twitch, que al igual que el resto, consiste en crear un Smart Contract en la red Blockchain de Ethereum

 

El objetivo de estos contratos es cerrar acuerdos con diferentes influencers que utilizan la plataforma de Twitch para subir contenido digital a su canal con alguna publicidad.

Los Smart Contracts, como su nombre indica, son contratos inteligentes que son capaces de ejecutarse y hacerse cumplir por sí mismo, a partir de una serie de instrucciones en un lenguaje de programación. Son almacenados en la blockchain de manera inmutable, transparente y de forma segura. Esto último quiere decir que nadie podrá manipular datos relacionados con un contrato sin que salten las alarmas.

Dichos contratos son ejecutados en Ethereum, que es una plataforma digital descentralizada. Podemos entenderlo como un sistema operativo para poder ejecutar nuestras aplicaciones (smart contracts). Nos da la ventaja de realizar operaciones sin intermediarios ni comisiones.

 

Solidity es el lenguaje de programación utilizado para crear estos contratos inteligentes, y Geth es el cliente que utilizamos nosotros para comunicarnos con la red de Blockchain de Ethereum.

Dentro de Ethereum existen diferentes redes, que pueden ser para probar nuestras aplicaciones o para producción. En este caso, haremos uso de Rinkeby, la red de prueba para simular la ejecución de los contratos con criptomonedas ficticias.

Después de explicar brevemente el objetivo de la funcionalidad y los términos técnicos, explicaremos el proceso paso a paso hasta que el contrato esté cerrado/finalizado:

  1. Recoger los datos del usuario

    Desde la plataforma, el usuario tendrá que seleccionar el contrato e introducir los datos necesarios, fundamentalmente el canal del influencer, los hashtags que deben aparecer en el streaming y la fecha acordada para la subida del video. Estos datos son obligatorios, ya que son con los que el sistema validará el cumplimiento del mismo.

    La API de twitch nos permite obtener información muy variada incluyendo el número de visualizaciones, el juego al que se ha jugado, etc.

Para este experimento decidimos trabajar con el canal del influencer y el hashtag a utilizar replicando el modelo que se utiliza en las campañas de publicidad de RRSS.

      2. Creación Smart Contract

A través de la API, la información del contrato es recibida, y se procede a la creación del smart contract en Rinkeby. Se almacenarán los diferentes hashtags acordados en el contrato.

En este punto, hacemos uso de la librería javascript Web3js, que nos permite conectarnos a nuestra red de Ethereum e interactuar con ella (crear contratos, realizar transacciones… etc).

Pues bien, con esta librería creamos el contrato enviándole la información recopilada del usuario, que es almacenada en el mismo.

El ABI (Application Binary Interface) es el modo estándar para interactuar con los contratos en el ecosistema Ethereum. Es decir, se codifica el contrato para que la red trabaje con el contrato.

       3. Verificación de contratos

El sistema se encarga diariamente de revisar aquellos contratos con fecha del día anterior, y que estén firmados por todos los intervinientes para comenzar con la obtención de los datos publicados. Esto se diseñó así para evitar que un usuario suba un video a última hora del día y que el sistema no lo detecte.

Si el sistema encuentra algún contrato para verificar, consultará el canal del influencer y obtendrá todos los videos subidos en esa fecha. Una vez recopilados, se recogen todos los hashtags publicados en cada uno de ellos y se guardan en la base de datos.

Para obtener estos datos, consumimos la API de Twitch, que nos devuelve una serie de datos públicos de los usuarios y canales. Como requisito, nos piden una cuenta de twitch y la generación de un token para la conexión.  Posteriormente el Smart Contract contrasta los datos con las variables definidas dentro del mismo con el fin de determinar el cumplimiento del contrato

       4. Validar contrato

Cuando el sistema tiene toda la información recopilada del canal del influencer, la API llama al smart contract a través de la librería web3js, y éste es el encargado de comprobar que los hashtags acordados inicialmente se encuentren en la lista de hashtags publicados en Twitch. Finalmente, el contrato emitirá un evento con el resultado (cumplido / no cumplido), y se modifica una variable que indica que el contrato fue comprobado.

Como hemos comentado anteriormente, la API de twitch es mucho más completa que la de otras plataformas utilizadas habitualmente por influencers (Youtube, Facebook) y nos permite acceder a mucha información del streaming, tal como idioma del streaming, canal del usuario, etc. por lo que en un futuro, se podría aprovechar la misma para crear contratos mucho más complejos en los que se tengan en cuenta otras variantes como el número de usuarios activos o el juego que se está jugando e incluso diferenciar el contrato por región.

 

       5. Cierre del contrato

La API recibirá el evento proveniente del contrato con el resultado, y este será guardado en la base de datos. En la aplicación, en la sección de contratos, el usuario podrá ver si el contrato fue cumplido o no por parte del influencer.

Los datos que se podrían consultar en la red de Ethereum relacionados con un contrato son:

  • Estado del contrato. Si fue cerrado o no
  • Los hashtags que se acordaron para el video.

Para un futuro, se podría almacenar también otros datos relacionados con el propio canal de Twitch, que pueden ser de gran valor a la hora de firmar un contrato con agencias.

La ventaja de este tipo de contratos es que es fácilmente comprobable en la blockchain por lo que se facilita un control objetivo del cumplimiento de las cláusulas manteniendo en todo momento la privacidad de las partes involucradas.