¿Qué es Token Allowance?

Token Allowance una interesante función de los tokens ERC-20 y ERC-777 de Ethereum, con la cual podemos otorgar permisos específicos de acceso y uso de fondos a DApps y DEX para que estas operaciones se realicen de forma autónoma y segura.

Una de las funciones más interesantes de los tokens ERC-20 (y del token ERC-777) de Ethereum es el “allowance” o “permisos de acceso a tokens” dentro de una serie de parámetros descritos por la programación de una plataforma. Esta es una función bastante común en el mundo de los tokens y tiene como finalidad permitir la interacción automática de los contratos inteligentes con el dinero que está dispuesto en una dirección determinada. Con ello se logra que las DApps y DEX puedan hacer uso de estos recursos y realizar ciertas operaciones de forma autónoma con los mismos.

Los permisos de asignación o de acceso, permiten que una tercera parte tenga derecho a realizar una transacción de una determinada cantidad de nuestros tokens, los cuales se encuentran asociados a nuestra dirección. Todo ello sin entregar la clave privada de tu dirección.

Pero ¿Por qué darle acceso a nuestro dinero a un contrato inteligente en lugar de mantener el control sobre el mismo? Pues bien, aquí aclararemos la utilidad de este tipo de funciones, y lo más importante cómo esta función puede facilitar en gran medida nuestra interacción con los contratos inteligentes.

¿Por qué se crearon las funciones de asignación?

En Ethereum, un token son monedas que no son más que unidades de cuenta dentro de un contrato inteligente almacenado en la cadena de bloques. El proyecto Ethereum, desde sus inicios, ha sido ampliamente utilizado para crear tokens de distintos tipos, debido a su enorme flexibilidad para esta tarea. Ante esa situación, los desarrolladores de Ethereum decidieron crear una selección para crear estos tokens de una manera estandarizada, hablamos del token estándar ERC-20.

En este estándar se define la estructura básica del contrato inteligente, la forma y las funcionalidades de los tokens en Ethereum. Una de esas funciones es la función de allow, la cual permite a los tenedores de esos tokens, otorgar permisos de uso específico a las Dapps, DEX y DeFi para los tokens contenidos en una dirección determinada.

De esta forma, el balance en tokens que una persona tiene en una dirección puede ser manejado por la Dapp bajo nuestro consentimiento. Así, por ejemplo, si queremos realizar un envío de tokens de forma automática usando una Dapp, la función allow nos permite configurar estas acciones sin necesidad de estar activa pendiente realizando la acción.

Aquí es donde se desarrolló la capacidad de que pudieras dar permiso a otras direcciones a mover tus tokens. Una dirección puede ser un contrato inteligente o simplemente una dirección controlada por una persona o máquina.

No obstante, la asignación se suele dar a contratos inteligentes, quienes cumplen unas reglas por escrito, inmutables y transparentes. Pudiéndonos fiar del buen comportamiento del mismo y que éste no pueda robarnos.

Por otro lado, la función de asignación permite definir la cantidad justa y necesaria que queremos dejar disponible para usar por un contrato inteligente. Esta es, sin duda, otra medida de seguridad que permite controlar la forma en como los contratos inteligentes realizan sus distintas operaciones mientras estamos interactuando con ellos. Y lo mejor de todo, es que nos permite hacer esto de forma descentralizada sin que terceros de confianza tengan que intervenir en este proceso.

Tokens ERC-20 y la llegada del Allowance

La llegada del “allowance” al mundo cripto se puede decir vino con la llegada de los ERC-20 de Ethereum. Este estándar tiene previsto en su estructura una serie de funciones estándar que permiten facilitar el trabajo a los desarrolladores para la creación de smart contracts y Dapps que permitan una interacción descentralizada entre el usuario y la red Ethereum y sus tokens asociados.

Para lograr esto, los ERC-20, entre otros smart contracts, tienen una función específica conocida como “allowance” y que es definida de forma general de la siguiente forma:


function allowance(address tokenOwner, address spender)

Básicamente la función lo que pide es una serie de permisos de uso. Estos permisos permiten que el contrato inteligente transfiera desde nuestra dirección hasta una dirección definida por el smart contract una cierta cantidad de su token (llamada asignación). Esta transferencia está limitada a solo una cantidad especificada y aceptada por el usuario de la Dapp. De hecho, esta es una medida de seguridad que permite mantener controlado el gasto en el que puede incurrir el smart contract en cada interacción y su totalidad.

Ejemplo de allowance

Un ejemplo de esta funcionalidad puede ser el siguiente:

Un usuario quiere interactuar con el contrato inteligente de por ejemplo, Compound para hacer una inversión en alguno de los pools de este protocolo. Dicha interacción es controlada por los contratos inteligentes de Compound y en ese punto, Compound le pedirá al usuario un acceso (asignación) a una cantidad determinada de tokens bajo su poder. Al aceptar dicha interacción, Compound tomará los tokens hará la inversión en el pool correspondiente y de allí devolverá el saldo bloqueado en dicho pool, junto con otros datos de interés para el usuario.

En todo momento podemos ver que el proceso de “allowance” es un proceso a solicitud y el cual requiere el permiso expreso del usuario. Así, por ejemplo, si una Dapp pide acceso no solicitada a un saldo, usted deberá rechazar ese acceso malicioso.

Allowance en otros contactos inteligentes

Por supuesto, el ejemplo anterior aplicado a los ERC-20, también aplica a otros contratos inteligentes estandarizados o no. Un buen ejemplo es el token ERC-777 que tiene prevista esta funcionalidad para ofrecer funciones compatibles y más avanzadas que los populares tokens ERC-20. Pero también, existen otros contratos inteligentes donde este tipo de propiedades no existen. Así por ejemplo, existen distintas plataformas que hacen uso de contratos inteligentes que hacen uso de asignación para interactuar con los tokens de sus usuarios.

Sin embargo, los casos un poco más elaborados pueden darse cuenta. Por ejemplo, en CryptoKitties se usa la asignación a la hora de adquirir los gatitos digitales de la plataforma. Esto debido a que se necesita permiso para hacer el gasto de dinero para adquirirlos y mantenerlos. Pero los propios “gatitos digitales” no tienen esta propiedad, puesto que son tokens no fungibles o NFT, bajo el estándar ERC-721 de Ethereum. Básicamente al ser no fungibles y únicos, estos gatitos no se pueden gastar o tener acceso de forma múltiple, por lo que carece de esta función.

Como vemos esta función es bastante útil como medio de segmentar el acceso y la seguridad dentro de los contratos inteligentes y las aplicaciones descentralizadas (Dapp), lo que sin duda demuestra ser una solución efectiva para brindar alta seguridad en ambientes de este tipo.

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