Artículo del Blog
Autor
Geoff Ramseyer
Fecha de publicación
SPEEDEX
Descentralizado
Escalabilidad
Un intercambio descentralizado (DEX) de alta calidad es una pieza crucial de infraestructura para una red de pagos global. Las remesas transnacionales dependen del intercambio de la moneda de un país por otra, pero las empresas de un país no pueden transaccionar con clientes de otro a menos que estos puedan cambiar su moneda por una que la empresa acepte. Sin embargo, las implementaciones actuales de intercambio, especialmente los intercambios centralizados, típicamente limitan quién puede acceder al intercambio y a menudo cobran altas tarifas de operación. Por lo tanto, la descentralización del intercambio alrededor del mundo es crucial para asegurar un acceso abierto y egalitario al sistema financiero mundial.
SPEEDEX – un intercambio distribuido escalable, paralelizable y económicamente eficiente – es un nuevo diseño para un intercambio descentralizado completamente en cadena que puede escalar a un rendimiento de transacciones arbitrariamente alto. Los intercambios descentralizados en cadena actuales son lentos, costosos e ineficientes. SPEEDEX, por el contrario, no es ninguno de estos; puede escalar su rendimiento utilizando efectivamente muchos núcleos de CPU y, al mismo tiempo, SPEEDEX elimina el front-running sin riesgo, ofrece a cada usuario la misma tasa de cambio justa y aumenta la liquidez entre pares de trading ilíquidos.
El DEX ideal debe: 1) cobrar las tarifas más bajas necesarias, 2) ser rápido y escalable, 3) ser fácil de usar, 4) tratar a los usuarios de manera justa, 5) ser igualmente accesible para todos los usuarios alrededor del mundo con conexiones a internet modestas, y 6) proporcionar mercados tan líquidos como sea posible directamente entre cada par de activos.
Desafortunadamente, los diseños actuales de DEX no se acercan a cumplir con estos criterios, por las siguientes razones:
SPEEDEX es un diseño novedoso para un intercambio distribuido completamente en cadena, y es el primer diseño de este tipo que simultáneamente:
SPEEDEX procesa comercios en lotes. Cada comercio dentro de un lote ocurre al mismo conjunto de tasas de cambio que cada otro comercio en ese lote, y un cálculo cuidadoso de las tasas de cambio deja sin oportunidades de arbitraje después de ejecutar un lote de comercios. Estas tasas de cambio eliminan la necesidad de pagos de ruta multi-salto — todos los caminos dan al usuario la exacta misma tasa de cambio, y cada mercado entre dos activos es al menos tan líquido como el camino más líquido.
Además, porque todos los comercios ocurren a las mismas tasas de cambio, los comercios no tienen dependencias de orden entre sí; es decir, SPEEDEX puede ejecutar los comercios en un lote en cualquier orden y obtener los mismos resultados, sin importar el orden. Esta propiedad simultáneamente bloquea el front-running y permite a SPEEDEX paralelizar efectivamente su operación y usar tantos núcleos de CPU como tenga disponibles. En otras palabras, cuantos más núcleos de CPU haya en una máquina ejecutando SPEEDEX, más comercios por segundo puede procesar SPEEDEX
El comercio en lotes se ajusta particularmente bien en un contexto de blockchain. Todas las transacciones en un bloque se finalizan al mismo tiempo, así que ¿por qué debería una de esas transacciones ejecutarse antes que otra en el mismo bloque?
El enfoque de SPEEDEX para el comercio en lotes es construir un "subastador" virtual. Los usuarios intercambian activos con el subastador y no directamente entre ellos. Para SPEEDEX, una oferta de comercio será una oferta para vender un activo a cambio de tanto de otro activo como sea posible, siempre que el precio del primer activo en relación con el segundo sea al menos un precio mínimo.
Dado un lote de comercios, el subastador calcula una "valoración" para cada activo. Estas valoraciones cuantifican el "valor" de un activo en relación con otro activo. Estas valoraciones relativas implican una tasa de cambio entre cada par de activos, que el subastador ofrece a cada solicitud de comercio. Las solicitudes de comercio miran las tasas de cambio ofrecidas y calculan si la tasa ofrecida es mayor que el precio límite mínimo de una oferta. Las ofertas de comercio que aceptan la tasa del subastador entonces venden sus activos al subastador y reciben la cantidad proporcional de otro activo a cambio del subastador.
Siempre existe un conjunto único (hasta reescalamiento, y algunas condiciones técnicas) de valoraciones que "despeja" el mercado (lo que se sigue del Teorema 1 de[Devanur, Garg, Végh], combinado con algunas condiciones técnicas). Un conjunto de valoraciones despeja el mercado si:
Dado que los precios de despeje del mercado son únicos y el subastador nunca obtiene ganancias ni pérdidas, el subastador no hace realmente una elección estratégica al "elegir" las valoraciones. En cambio, simplemente informa un conjunto de valores que son una propiedad inherente de un lote de comercios.
El desafío algorítmico central para SPEEDEX es calcular las valoraciones de despeje del mercado de manera eficiente. SPEEDEX se ejecuta una vez por bloque – integrado con Stellar, eso significa aproximadamente una vez cada cinco segundos, e idealmente en bien menos de un segundo.
Aquí trazo la tasa de transacción de mi implementación de investigación de SPEEDEX comerciando 20 activos distintos. Los números totales de transacción aquí deben tomarse con un gran grano de sal. Este no es código probado en batalla, y está funcionando en un entorno de desarrollo aislado con un simple protocolo de consenso de membresía cerrada. Incluyo el gráfico, sin embargo, para enfatizar dos puntos. Primero, permitir que SPEEDEX acceda a más núcleos de CPU (más hilos de trabajo) permite que SPEEDEX funcione más rápido. Segundo, el proceso de cálculo de precios, que debe ejecutarse en cada bloque, no se ralentiza significativamente a medida que aumenta el número de ofertas de comercio abiertas.
Casi toda la desaceleración asociada con un aumento en el número de ofertas abiertas es una fase de preprocesamiento del algoritmo. Mis máquinas de prueba desafortunadamente solo tenían discos duros relativamente lentos, y no siempre podían mantenerse al día con SPEEDEX.
SPEEDEX encaja naturalmente en la blockchain de Stellar, ya que funciona mejor en una máquina de estado replicada que está explícitamente construida para admitirlo. Los beneficios de escalabilidad dependen de un diseño que puede usar múltiples CPU, y los algoritmos de cálculo de precios son intensivos en memoria, funcionando mejor cuando se construyen directamente en la máquina de estado replicada. SPEEDEX también se beneficia de un diseño cuidadoso de los patrones de acceso a la memoria y una gestión cuidadosa de la caché de la CPU.
Este tipo de preocupaciones de rendimiento serían casi imposibles de manejar dentro de un contrato inteligente. Sería intensamente intensivo en gas ejecutar los algoritmos de cálculo de precios dentro de la Máquina Virtual de Ethereum, por ejemplo, o en casi cualquier lenguaje de contratación inteligente. Un lenguaje de contratación inteligente podría diseñar un conjunto de primitivas que interactúen con un módulo SPEEDEX distinto, pero ese módulo aún probablemente necesitaría ser implementado directamente dentro de la máquina de estado de la Capa-1. El cálculo de precios o la coincidencia de órdenes también podrían moverse fuera de la cadena (como con LoopRing o CoWSwap), pero entonces el DEX ya no sería una pieza de infraestructura verdaderamente descentralizada y replicada.
SPEEDEX permite que una blockchain de Capa 1 escale directamente, sin mover la mayor parte del cálculo interesante fuera de la cadena – pero eso requiere que la propia blockchain esté dispuesta a rediseñarse para admitir el paralelismo y la integración directa con SPEEDEX.
Finalmente, la semántica de transacción precisamente diseñada de Stellar simplifica sustancialmente una integración con SPEEDEX.
SPEEDEX se alinea estrechamente con la misión de Stellar de habilitar un futuro de pagos transnacionales de bajo costo y rápidos. Cualquier DEX que alimente un sistema global de pagos debe dar a cada usuario en todo el mundo acceso equitativo. Además, para admitir no solo los volúmenes de transacción de hoy sino los volúmenes de transacción de las próximas décadas, blockchains como Stellar necesitarán escalar mucho más allá de su rendimiento actual. Casi todos los demás sistemas informáticos relevantes ampliamente desplegados se escalan a sí mismos ejecutando más copias de sí mismos o paralelizando el manejo de solicitudes. SPEEDEX puede ayudar a la red de Stellar a escalar horizontalmente de la misma manera, y convertirse en una infraestructura de pagos verdaderamente global.
-----
Stellar ya ha realizado un trabajo increíble en la construcción de una red descentralizada para transacciones transnacionales y entre divisas. Pero Stellar necesitará escalar su rendimiento DEX en cadena a medida que más y más usuarios en todo el mundo realicen transacciones a través de la blockchain. Integrado en Stellar, SPEEDEX se basa en el trabajo de Stellar para crear un DEX que pueda escalar su rendimiento de transacciones para admitir los volúmenes de transacciones que veremos en las próximas décadas. SPEEDEX también proporciona una serie de propiedades económicamente útiles, incluyendo igualdad de acceso, eliminación de front-running sin riesgo y arbitraje interno, y liquidez directa entre pares de comercio ilíquidos.
Para saber más sobre SPEEDEX, consulta lo siguiente: