Token Allowance una interesante función de los tokens ERC-veinte y ERC-setecientos setenta y siete de Ethereum, con la que podemos conceder permisos concretos de acceso y empleo de fondos a DApps y DEX a fin de que estos efectúen operaciones 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 bien “permisos de acceso a tokens” en una serie de factores descritos por la programación de una plataforma. Esta es una función bastante común en el planeta de los tokens y tiene como finalidad permitir la interacción automática de los smart contracts con el dinero que está preparado en una determinada dirección. Con esto se consigue que las DApps y DEX puedan hacer empleo de estos recursos y efectuar ciertas operaciones de forma autónoma con exactamente los mismos.

Los permisos de allowance o bien de acceso, dejan que un tercio tenga derecho a efectuar una transacción de una determinada cantidad de nuestros tokens, los que se hallan asociados a nuestra dirección. Todo ello sin dar la clave privada de tu dirección.

Pero ¿Por qué razón darle acceso a nuestro dinero a un smart contracts en vez de sostener el control sobre exactamente el mismo? Puesto que bien, acá aclararemos la utilidad de este género de funciones, y lo más esencial de qué forma esta función puede facilitar en buena medida nuestra interacción con los smart contracts.

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

En Ethereum, un token son monedas que no son más que unidades de cuenta en un smart contract guardado en la blockchain. El proyecto Ethereum, desde sus principios, ha sido extensamente usado para crear tokens de diferentes tipos, debido a su enorme flexibilidad para esta labor. Ante esa situación, los desarrolladores de Ethereum decidieron crear una especificación para crear estos tokens de una forma estandarizada, charlamos del token estándar ERC-veinte.

En este estándar se definía la estructura básica del smart contract, la manera y las funcionalidades de los tokens en Ethereum. Una de esas funciones es la función de allowance, la que deja a los tenedores de esos tokens, conceder permisos de empleo concreto a las Dapps, DEX y DeFi para los tokens contenidos en una dirección determinada.

De esta forma, el cómputo en tokens que una persona tiene en una dirección puede ser manejado por la Dapp bajo nuestro permiso. De esta forma, por poner un ejemplo, si deseamos efectuar un envío de tokens de manera automática utilizando una Dapp, la función allowance nos deja configurar estas acciones sin precisar estar activamente pendiente efectuando la acción.

Aquí es donde se diseñó la capacidad de que pudieses dar permiso a otras direcciones a desplazar tus tokens. Una dirección puede ser un smart contract o bien sencillamente una dirección controlada por una persona o bien máquina.

No obstante allowance se acostumbra a dar a smart contracts, quienes cumplen unas reglas por escrito, inalterables y trasparentes. Pudiéndonos fiar del buen comportamiento del mismo y que este no pueda hurtarnos.

Por otro lado, la función allowance deja acotar la cantidad justa y precisa que deseamos dejar libre para emplear por un smart contract. Esta es, indudablemente, otra medida de seguridad que deja supervisar la manera en como los smart contracts efectúan sus diferentes operaciones mientras que estamos interaccionando con ellos. Y lo mejor de todo, es que nos deja hacer esto de forma descentralizada sin que terceros de confianza deban intervenir en este proceso.

Tokens ERC-veinte y la llegada del Allowance

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

Para conseguir esto, los ERC-veinte, entre otros muchos smart contracts, tienen una función concreta famosa como “allowance” y que es definida de forma general de la próxima forma:

function allowance(address tokenOwner, address spender)

Básicamente la función lo que solicita es una serie de permisos de empleo. Estos permisos dejan que el contrato inteligente trasfiera desde nuestra dirección hasta una dirección definida por el smart contract una cierta cantidad de su token (llamada asignación). Esta trasferencia está limitada a solo una cantidad detallada y admitida por el usuario de la Dapp. En verdad, esta es una medida de seguridad que deja sostener controlado el gasto en el que puede incurrir el smart contract en todos y cada interacción y su totalidad.

Ejemplo de allowance

Un ejemplo de esta funcionalidad puede ser el siguiente:

Un usuario desea interaccionar con el smart contract de por poner un ejemplo, Compound para hacer una inversión en ciertos pools de este protocolo. Dicha interacción es controlada por los smart contracts de Compound y en ese punto, Compound le solicitará al usuario un acceso (allowance) a una determinada cantidad de tokens bajo su poder. Al admitir dicha interacción, Compound va a tomar los tokens va a hacer la inversión en el pool pertinente y de allá va a devolver el saldo bloqueado en tal pool, así como otros datos interés para el usuario.

En todo instante podemos ver que el proceso de “allowance” es un proceso a petición y el que precisa del permiso expreso del usuario. De esta forma, por servirnos de un ejemplo, si una Dapp solicita acceso no pedido a un saldo, va a deber rehusar ese acceso malicioso.

¿Cuánto sabes, criptonauta?

¿El allowance puede representar un peligro de seguridad para nuestros fondos?

Allowance en otros smart contacts

Por supuesto el ejemplo precedente aplicado a los ERC-veinte, asimismo aplica a otros smart contracts estandarizados o bien no. Un buen ejemplo es el token ERC-setecientos setenta y siete que tiene prevista esta funcionalidad para ofrecer funciones compatibles y más avanzadas que los populares tokens ERC-veinte. Mas asimismo, hay otros smart contracts donde este género de propiedades no existen.

Así por poner un ejemplo, existen diferentes plataformas que emplean smart contracts que usan allowance para interaccionar con los tokens de sus usuarios. Un smart contract que usa esto es 0x, sobre el que opera Bit2Me DEX.

Sin embargo, casos un tanto más elaborados pueden darse. Por poner un ejemplo, en CryptoKitties se utiliza allowance en el momento de adquirir los gatos digitales de la plataforma. Esto debido a que se precisa permiso para hacer el gasto de dinero para adquirirlos y sostenerlos. Mas los propios “gatitos digitales” no tienen esta propiedad, pues son tokens no fungibles o bien NFT, bajo el estándar ERC-setecientos veintiuno de Ethereum. Esencialmente siendo no fungibles y únicos, estos gatos no se pueden gastar o bien tener acceso de forma múltiple, con lo que carece de esta función.

Como vemos esta función es bastante útil como medio de fraccionar el acceso y la seguridad en los smart contracts y las aplicaciones descentralizadas (Dapp), lo que indudablemente prueba ser una solución eficaz para brindar alta seguridad en entornos de esta clase.