Traducción al español de “Babel fees - denominating transaction costs in native tokens”
Publicado por Prof. Aggelos Kiayias, Científico en Jefe de Investigación Académica de IOHK, el 24 de febrero de 2021
Presentando un novedoso mecanismo que permite el pago de tarifas de transacción en tokens definidos por el usuario en Cardano
En el clásico libro de Douglas Adams,“Guía del viajero intergaláctico”, un pez de Babel es una criatura que le permite a usted escuchar cualquier idioma traducido al suyo. Esta fantasía de traducción universal asegura una significativa interacción a pesar de la gran cantidad de idiomas diferentes en la galaxia.
En el espacio de las criptomonedas, las plataformas de contratos inteligentes permiten el desarrollo de innumerables tokens personalizados. ¿Es posible interactuar con la plataforma utilizando su token preferido? Si solo hubiera un mecanismo de “tarifas de Babel” para traducir el token que usted usa al que la plataforma requiere para publicar una transacción.
La sabiduría común en los sistemas blockchain sugiere que la publicación de una transacción válida debe generar un costo para el remitente. El argumento es que, sin tal restricción, no hay nada que le impida a nadie sobrecargar el sistema con transacciones triviales que saturen e inutilicen su capacidad. Dado el principio anterior, una conclusión a la que se llega con frecuencia es que, en cualquier sistema de cadena de bloques donde se admiten tokens definidos por el usuario, debería estar prohibido pagar tarifas de transacción en dichos tokens. En cambio, las transacciones deben tener una tarifa en el token nativo de la plataforma que todos los participantes aceptan como valiosa. Podría decirse que tal restricción es indeseable. Pero, ¿cómo es posible eludir la vulnerabilidad resultante y aparentemente inevitable?
El arte de lo posible
Se sabe que la criptografía y la teoría de juegos hacen posible lo que parecía imposible. Ejemplos célebres incluyen el intercambio de claves a través de un canal público, los Merkle’s puzzles** [Puzles de Merkle] y las subastas en las que ser sincero es lo más racional, como las Subastas de Vickrey***. Y así también resulta en este caso.
Primero, recordemos cómo funcionan los activos nativos en Cardano: los tokens se pueden crear de acuerdo con una política de acuñación y se tratan de forma nativa en el libro mayor junto con ada. El libro mayor de Cardano adopta el modelo Extendido UTXO (EUTXO) y la emisión de una transacción válida requiere consumir una o más UTXO [Unspent Transaction Output, “monedas no gastadas”]. Un UTXO en Cardano puede llevar no solo ada, de hecho, un paquete de tokens puede contener varios tokens diferentes, tanto fungibles como no fungibles. De esta forma es posible escribir transacciones que transfieran múltiples tokens diferentes con un solo UTXO.
Las tarifas de transacción en el libro mayor se denominan en ada según una función fijada como un parámetro del libro mayor. Una poderosa característica del modelo EUTXO de Cardano es que las tarifas requeridas para una transacción válida se pueden predecir con precisión antes de publicarla. Es esta una característica única que no disfrutan otros sistemas de contabilidad (como el modelo basado en cuentas utilizado de Ethereum). De hecho, en este último caso, las tarifas necesarias para una transacción pueden cambiar durante el tiempo que tarda la transacción en liquidarse, ya que otras transacciones [en el ínterin] pueden afectar el estado del libro mayor e influir en el costo requerido para procesar la transacción.
Un experimento mental
Consideremos el siguiente experimento mental para ayudarnos a acercarnos a nuestro objetivo de tarifas de Babel. Imagine por un momento que es posible emitir una transacción que declara un pasivo denominado en ada igual al importe de las tarifas que, el emisor de la transacción, debe pagar. Tal transacción no sería admisible en el libro mayor. Sin embargo, puede percibirse como una oferta abierta que pide que se cubra la responsabilidad. ¿Por qué alguien respondería a tal oferta? Para atraer una respuesta, asumiendo que el concepto de paquete de tokens ya está presente en Cardano, la transacción puede ofrecer una cierta cantidad de token(s) a quien cubra la responsabilidad. Esto sugiere un comercio al contado entre ada y los tokens ofrecidos a un cierto tipo de cambio. Considere ahora un productor de bloques que ve tal transacción.
Al extender adecuadamente las reglas del libro mayor, la transacción con el pasivo, así como su transacción de contrapartida, se vuelven admisibles para el libro mayor como grupo. Debido a la absorción del pasivo, el conjunto de dos transacciones se cotiza correctamente en ada como un todo y, por lo tanto, no infringe las reglas de contabilidad de los libros mayores en términos de tarifas de ada. Como resultado, la transacción con el pasivo se liquida y ya hemos logrado nuestro objetivo. Los usuarios pueden enviar transacciones valoradas en cualquier token que posean y, siempre que un productor de bloques esté dispuesto a aceptarlas en el comercio al contado, ¡puede hacer que se liquiden en el libro mayor como transacciones regulares!
Un ejemplo específico
Por supuesto, el mecanismo está condicionado a la presencia de proveedores de liquidez que posean ADA y estén dispuestos a emitir transacciones de contrapartida. De hecho, el mecanismo crea un mercado para esos proveedores de liquidez. Digamos que, un Operador de Stake Pool (SPO) [Stake Pool Operator], puede publicar tipos de cambio para tokens específicos que consideren aceptables. Ejemplo de ello sería que, un SPO declare que aceptará el tokenX con un tipo de cambio de 3:1 sobre ada. De ello se deduce que, si una transacción cuesta, digamos ₳ 0,16, la transacción puede declarar un pasivo de ₳ 0,16 y ofrecer 0,48 de tokenX. En el modelo de activos nativos de Cardano, esto se puede implementar como un único UTXO que lleva un paquete de tokens con la siguiente especificación (Ada → -0.16, tokenX → 0.48). Tenga en cuenta el signo negativo que significa responsabilidad.
Supongamos ahora que el SPO está a punto de producir un bloque. Él recupera la transacción de pasivo del mempool y emite una transacción de contrapartida consumiendo el UTXO con el pasivo. La transacción coincidente transfiere 0.48 del tokenX a una nueva salida que es propiedad del SPO. El bloque resultante contiene las dos transacciones en secuencia. La transacción de contrapartida proporciona el 0,16 ₳ faltante además de las tarifas que se necesitan para sí misma. De hecho, se pueden agrupar varias transacciones y sus tarifas se cubren con una sola transacción coincidente.
Figura. Alice envía una cantidad de 9 tokens de tipo X a Bob con la ayuda de Stacy, una SPO, que cubre la responsabilidad de transacción de Alice y recibe tokens de tipo X a cambio. El tipo de cambio implícito entre X y Ada es 3:1.
Nuevas medidas de valor
El proceso anterior es totalmente opcional para los SPOs. Cada uno puede determinar su propia política y tipo de cambio, así como decidir cambiar el tipo de cambio para los distintos tokens que aceptan en el acto. Además, no hay necesidad de un acuerdo entre los SPOs sobre el valor de un token específico. De hecho, diferentes SPOs pueden proporcionar diferentes tipos de cambio para el mismo token y un usuario que emite una transacción de responsabilidad puede ofrecer una cantidad de tokens correspondiente al mínimo, promedio o incluso máximo de los tipos de cambio publicados en la red. De esta forma, surge una compensación natural entre el tiempo de liquidación de las transacciones de responsabilidad y el valor de mercado de los tokens que ofrecen.
Esto ilustra cómo los activos nativos, el modelo EUTXO y el simple, pero poderoso ajuste de introducir pasivos en forma de valores negativos en paquetes de tokens puede adaptarse a las tarifas de Babel, lo que permite a los usuarios valorar las transacciones en cualquier token compatible de forma nativa con el sistema. También muestra la ventaja única de ser un SPO en dicho sistema. Cabe señalar que los SPOs no tienen por qué ser las únicas entidades de la red que ofrecen cubrir las responsabilidades. De hecho, un SPO puede asociarse fácilmente, si lo desea, con un proveedor de liquidez externo que emitirá las transacciones de contrapartida. Además, los proveedores externos también pueden actuar en la red de forma independiente y emitir transacciones de contrapartida. Sin embargo, el beneficio permanecerá con los productores de bloques; los SPOs siempre pueden ejecutar transacciones de contrapartida y sustituirlas por las suyas si así lo desean.
El mecanismo de cantidades negativas en paquetes de tokens se puede implementar en las reglas básicas del libro mayor de Cardano en algún momento después de la introducción de activos nativos con Hard Fork Mary. Más allá de las tarifas de Babel, el mecanismo permite una variedad de otras aplicaciones interesantes, como intercambios atómicos para operaciones al contado, que cubriremos en una futura publicación en el blog. Es otra ilustración más del poder del enfoque de Cardano y su capacidad para apoyar a una comunidad diversa y emprendedora de usuarios y Operadores de Grupos de Interés [SPOs].
[N del A.]
Agradezco a Manuel Chakravarty, Michael Peyton Jones, Nikos Karagiannidis, Chad Nester y Polina Vinogradova por las útiles discusiones, sugerencias y comentarios relacionados con el concepto de tarifas de Babel y su implementación en el libro mayor de Cardano.
N. del T.
** En criptografía, el método de los puzles de Merkle (del inglés, Merkle’s puzzles ) constituye un protocolo de intercambio de claves, es decir, un protocolo para intercambiar claves criptográficas de manera segura.
Se basa en la elaboración de «puzles», problemas computacionales de complejidad moderada, que dificultan que un tercero que intercepte la comunicación obtenga la clave.
***Una Subasta de Vickrey es un tipo de subasta de oferta sellada. Los postores presentan ofertas por escrito sin conocer la oferta de las otras personas en la subasta. El mejor postor gana, pero el precio pagado es la segunda oferta más alta. Este tipo de subasta es estratégicamente similar a una subasta en inglés y ofrece a los postores un incentivo para ofertar su valor real.