Reventa de entradas seguras usando web3 (Caso: NFTicket.la)

Stamping.io
Stamping.io
Published in
8 min readOct 22, 2022

Resumen

Se dice en muchos diarios peruanos, que más de 7,000 personas fueron afectadas con la millonaria estafa de reventas de una misma entrada en el concierto de Daddy Yankee realizado en octubre del 2022 en Perú. Me pregunto si es este el momento donde surge la siguiente interrogante:

¿Se pudo haber evitado?

La solución a este problema se resuelve de manera similar a como lo vienen desarrollando en NFTicket.la, creando un contrato dentro de una red Blockchain que permita tokenizar la entrada, este token es asignado a la billetera del comprador, si este poseedor desea revenderla tiene dos posibilidades:

  • Venderla directamente a través de una transferencia de billetera a billetera, funciona siempre que exista confianza entre el comprador y el vendedor o poseedor de la entrada.
  • Usar un contrato (smart contract) donde el poseedor deja en custodia la entrada y espera que el vendedor pague por la entrada para que luego esta sea asignada en forma automática al nuevo comprador y el dinero llegue a la billetera del vendedor.

En el caso que el poseedor actual ya no desee vender la entrada, puede solicitar su devolución con tan solo ejecutar una función de devolución en el contrato.

Esta solución puede mejorarse con la finalidad de recibir ofertas menores a lo que está pidiendo el poseedor actual, para lo cual cada ofertante deja en custodia dentro del contrato el pago, el poseedor tiene la potestad de aceptar la oferta si lo desea, en el momento que quiera y hasta que el ofertante decida retirarla.

Deben estar preguntándose ¿cómo se realiza el pago?, los contratos no aceptan dinero FIAT, por lo que se usa criptomonedas o dinero tokenizado, este último consiste en tokens que pueden ser emitidos por la plataforma de venta, previa recepción del importe en dinero FIAT.

Este artículo pretende explicar el problema tecnológico y la forma como pudo haberse evitado.

Términos básicos

Daré una breve explicación de algunas de sus características que vamos a mencionar en este artículo.

Blockchain
Entendámosla como una base de datos compartida, distribuida y descentralizada; compuesta por un conjunto de computadoras interconectadas entre sí (por lo general, usando la internet que todos conocemos) y que matemáticamente controlan la información ingresada.

Este colectivo de equipos interconectados tiene la función de validar y demostrar que la “información registrada” no pueda ser adulterada por nadie, ¡Sí, absolutamente por nadie! Sin que esto se entienda como que no pueda ser modificada, ya que sí existe la posibilidad de hacer cambios en la “propiedad de algo”, pero la trazabilidad (versioning) quedará registrada y se controlará (de manera criptográfica) que solo el propietario pueda hacerlo, sin posibilidad de repudio.

Activo
Son representaciones o anotaciones digitales, también conocidas como tokens (fichas) que representan “algo” para los usuarios del contrato, hay de dos tipos: Fungibles (fichas que pueden ser transferidas en forma parcial. Ejemplo: Puntos de lealtad o saldo para comprar productos en un concierto) y No fungibles (solo pueden ser transferidas en su totalidad. Ejemplo: Una entrada).

Cada uno de estos activos representa un valor para un grupo de usuarios, es por eso que se dice que la Blockchain es el internet del valor.

Smart contract
Son programas que se despliegan en las redes Blockchain con la finalidad de incluir reglas y funcionalidades para gestionar un determinado activo.

IPFS
El Sistema de archivos interplanetario es un protocolo y una red diseñados para crear un método p2p direccionable por contenido para almacenar y compartir hipermedia en un sistema de archivos distribuido. (Tomado de https://es.wikipedia.org/wiki/Sistema_de_archivos_interplanetario)

Para entenderlo fácilmente, imagine un gran disco duro en todo el planeta que permite guardar cualquier tipo de información (documentos, imagen, videos o datos) con estas carácteristicas:

  • Inmutable: Nadie puede borrarlo.
  • Único: Un documento solo puede ingresar una vez, no se aceptan duplicados.
  • Persistente: Se encuentra distribuido en varios servidores.
  • Accesible: Puedes usar cualquier nodo de esta red y acceder a cualquiera de esos documentos.

Ejemplo:

Esta información de una entrada

{
"@context": [
"https://www.w3.org/2018/credentials/v1"
],
"id": "f899202d-f11e-4963-98c8-175cc47567bd",
"type": "VerifiableCredential",
"issuer": "0x5Ed4a09BAa906883c74889B7d242637ed6F8510c",
"issuanceDate": "2022-07-29T16:04:32.000Z",
"expirationDate": "2022-08-29T16:04:00.000Z",
"credentialSubject": {
"d": "12/08/2022",
"t": "Genera entrada",
"du": "12/08/2023",
"s": "0x1Dc825F0772ab99E083b6dcff2d4d294deeD2509@42220",
"dt": "eyJyb2xlIjoiZ2VuZXJhIGVudHJhZGEiLCAicHVlc3RvIjoiMSJ9",
"id": "0x1D2889D2694a10E995a25aF32e7D7baf27Ef4427"
},
"proof": [
{
"type": "serverSimple",
"value": "0xfceb967fcad261266fa410476008016f351e765624b3446dfb431ec3293af49a12848c02bd35beb9630171dea7e9e3a3afec2a8275eb608345e72731a858b4a31b"
}
}

Puede encontrarla con el identificador (CID): QmXnTc6be98wvT5SkYBfA5nbGqqZcPw7BRSmtPrKEr3LE8 en cualquier servidor del IPFS.

https://infura-ipfs.io/ipfs/QmXnTc6be98wvT5SkYBfA5nbGqqZcPw7BRSmtPrKEr3LE8

https://stamping.mypinata.cloud/ipfs/QmXnTc6be98wvT5SkYBfA5nbGqqZcPw7BRSmtPrKEr3LE8

Billeteras digitales
La forma que cada usuario puede transferir cualquier activo en la red Blockchain no se basa en un usuario y clave, esto es debido a que nadie tiene una base de datos donde se pueda autenticar esa información; por lo tanto, la forma que se realiza esta manifestación de voluntad, es usando un firmado digital que está basado en dos llaves criptográficas: una llave privada que solo debe poseer el usuario y una llave pública que luego de un proceso criptográfico representa la cuenta del usuario, también conocida como “address”.

La llave privada sirve para “firmar electrónicamente” una manifestación de voluntad para transferir el activo y al encontrarse matemáticamente vinculada a la cuenta del usuario (address) se puede comprobar que realmente el usuario tiene la intención de transferir algo, sin que tenga que divulgar su llave privada.

Las billeteras digitales han ido evolucionando y agregándoles muchas funcionalidades adicionales, pero su propósito especifico es permitir que un usuario pueda firmar una transacción y enviarla a la red Blockchain (o un contrato dentro de la red Blockchain) para transferir un activo.

Si desea saber cómo se crean estas billeteras, ingrese a 0xaddress.com

Problema

La reventa de una entrada es una realidad, hay muchas circunstancias lícitas que conlleva al poseedor de una entrada a un evento social, desear venderla debido a ciertas eventualidades, que muchas veces, no son motivadas en una especulación basada en obtener un beneficio económico.

Ante el hecho que una reventa de una entrada es una consecuencia natural que conlleva al poseedor a transferirla a un nuevo usuario, ya sea por una operación comercial o una donación, es responsabilidad del organizador del evento, contar con mecanismos seguros para que esa transferencia pueda ser realizada de forma segura.

Existen una serie de problemas que deben resolverse para realizar un ambiente tecnológico realmente seguro que proteja al organizador, al poseedor actual y al nuevo comprador, vamos a enumerar los principales:

  • El comprador necesita saber que la entrada es válida.
  • El comprador necesita saber que el vendedor realmente es el dueño de la entrada.
  • El comprador necesita saber que podría también revenderla.
  • El comprador necesita saber que esa entrada que está comprando no ha sido ni será revendida a otra persona.
  • El vendedor necesita estar seguro de que va a recibir el dinero antes de transferir la entrada; pero el comprador necesita recibir la entrada antes de transferir el dinero. ¿Se necesita un intermediario que garantice esta operación?
  • El organizador del evento desea que no se emitan más entradas que las que ha colocado como disponible.
  • El organizador del evento desea que una entrada no pueda ser usada más de una vez.

Señores, bienvenidos a la “transferencia de valor”.

La solución

Hay muchas plataformas que tratan de resolver este problema, pero dadas sus plataformas centralizadas, casi siempre, no lo solucionan del todo, conllevando a que muchos malechores aprovechen estos “Huecos de seguridad” para realizar fraudes basados en entradas falsas o reventas de la misma entrada a muchas personas.

La web3 tiene características interesantes que ayuda a resolver este problema, si no está familiarizado con algunos conceptos de la web3, para que pueda entender la solución les recomiendo que lea la sección de términos básicos.

Reventas seguras

Todos sabemos que un evento emite muchas entradas, pero como podemos controlar a que la entrada pueda ser revendida de manera segura, es decir evitando los problemas que mencionamos en el capítulo anterior.

Para solucionar este problema se deben tocar varios aspectos, desde la asignación de una cuenta a cada comprador, la venta de la entrada, la transferencia del valor a otra cuenta con consentimiento del poseedor, la prueba de propiedad (prueba ciega) y la prueba de asistencia a esa experiencia social (el uso).

Ejemplo

La solución que ha implementado NFTicket.pe (lo están migrando al dominio NFTicket.la) es la siguiente:

El evento

Todos los eventos se crean de la siguiente manera:

https://nfticket.pe/event/?QmRgYjZkP8PDYFwFXs32Z6rVbNGm7eFX6NMgqxATbL2QVJ

Registro de la metadata del evento en un servidor IPFS y el identificador (CID) de esa metadata se registra en un contrato dentro de una red Blockchain, en este ejemplo se encuentra en la red de Gnosis (DAI):

Registro del evento

Registro de metadata (Servidor IPFS)

Metadata del evento. CID: QmdLWRoyZKStkGGS4yzVYMX6pxsYDFvr3NwCDhuNFtVDBA

Este evento se registró en el IPFS: https://stamping.mypinata.cloud/ipfs/QmdLWRoyZKStkGGS4yzVYMX6pxsYDFvr3NwCDhuNFtVDBA

Si nos damos cuenta en el JSON de la metadata del evento, la imagen del flyer se encuentra en el atributo “image”, el cual también se encuentra registrado en un servidor IPFS.

Por lo tanto, ninguno de esos datos puede modificarse ya no existe una forma de hacerlo; además con saber cual es el identificador, todos pueden verlo desde cualquier servidor IPFS.

En esta lista puedes conocer los servidores IPFS que se encuentran disponibles para consultar cualquier CID: https://ipfs.github.io/public-gateway-checker/ (Todos pueden instalar un propio nodo con la finalidad de no confiar en un tercero)

Registro de propiedad de la entrada (Contrato NFT de la Blockchain)

Todas las entradas son públicas, pueden verse desde NFTicket.pe o desde el mismo contrato de la red Blockchain donde fueron creadas:

Entradas emitidias para el evento

Desde el contrato de la Blockchain, todos pueden revisar cada una de las transacciones: https://blockscout.com/xdai/mainnet/token/0xD93F82B0cbE1f3B573259d94C63D509deAFF276C/token-transfers

Contrato de NFTicket en la red blockchain de Gnosis

--

--

Stamping.io
Stamping.io

Stamping.io es una red de nodos Blockchain que permiten estampar evidencias digitales para demostrar su existencia en un momento del tiempo.