Cover photo

Aztec Network: Privacidad Escalable en Ethereum

Introducción

Sin lugar a dudas Ethereum ha sido una de las tecnologías blockchain más destacadas e influyentes de los últimos años. Esta permite interactuar en la red garantizando una alta disponibilidad e integridad, sin la necesidad de la intervención de un tercero. Como cualquier otra tecnología, Ethereum también tiene sus contras. La más criticada en la actualidad es la falta de escalabilidad. En respuesta a esto, han surgido varias alternativas bajo un concepto llamado capa 2 (L2). Esta es una cadena de bloques por separado que busca solucionar la escalabilidad sobre la red principal de Ethereum, también llamada capa 1 (L1). La alternativa más prominente en la actualidad es conocida como “rollups”. Estas agrupan cientos de transacciones de la L2 en una única transacción en la L1. Asimismo, al tratarse de una blockchain pública, hay quienes cuestionan la falta de privacidad. Aztec Network es una rollup que busca solucionar ambos problemas.

Aztec fue fundado en el año 2017 en Londres, Inglaterra por Thomas Pocock, Joe Andrews y Zachary Williamson. La organización ha ido creciendo desde entonces y actualmente posee alrededor de 50 empleados. Cuenta con una comunidad activa en Discord, Twitter, Telegram, blogs, entre otras.

Se trata de la primera ZK-Rollup (Zero Knowledge rollup) sobre Ethereum centrada en la privacidad, lo que se ve reflejado en su lema “Privacy first. Privacy second”. Asimismo, busca brindar escalabilidad y accesibilidad a sus usuarios. Esto lo logran validando sus transacciones mediante pruebas de conocimiento cero en Ethereum, reduciendo el costo de las transacciones hasta cien veces. Esta rollup utiliza su propio mecanismo para la generación de pruebas de validez llamado PLONK.

Fundadores de Aztec.
Fundadores de Aztec.

Productos

Zk.money

Zk.Money fue el primer producto creado por Aztec. Este consiste en un protocolo de transferencia privado construido sobre la red de Aztec. Desde su lanzamiento, cuenta con 75.000 usuarios registrados y más de 225.000 transacciones. Además, estiman un monto acumulado superior a $80 millones de dólares, incluso siendo un 96% más barato que otros protocolos privados de transporte en la actualidad.

Aztec Connect

Aztec Connect es el primer puente privado hacia el ecosistema de finanzas descentralizadas de Ethereum. Le permite a sus usuarios acceder a servicios DeFi de clase mundial abaratando costos hasta cien veces, asegurando las garantías de privacidad propuestas por el protocolo.

¿Cómo funciona Aztec?

Como se mencionó anteriormente, Aztec es la primera rollup “zero knowledge” (conocimiento cero) centrada en privacidad, construida sobre Ethereum. Debido a esto, la arquitectura de la red tiene como foco principal la privacidad de sus transacciones.

Una analogía interesante para entender su funcionamiento, es pensar a la plataforma como una ciudad amurallada. Lo único que puede ver un observador externo es que las personas ingresan y egresan a través de sus puertas.

Dentro de la ciudad, los usuarios pueden intercambiar sus bienes de forma privada. Además, quienes se encuentren en la red, no podrán identificar las partes involucradas en una transacción, ni el monto asociado.

Una vez dentro del sistema de Aztec, los usuarios pueden enviar transacciones en lotes de vuelta hacia la L1 para intercambiar, prestar fondos, realizar inversiones, votar en DAOs o comprar NFTs. Las transacciones internas y por lotes con la capa 1 de Ethereum, aumentan la privacidad en gran medida, haciendo que sea mucho más difícil rastrear movimientos de una cuenta.

post image

¿Qué es una prueba de conocimiento cero?

Las pruebas de conocimiento cero o zero knowledge proofs son un protocolo criptográfico que le permiten a un “prover” demostrar la validez de una declaración sin revelar nada más que la veracidad de la misma ante un “verifier”. Por ejemplo, puedo demostrar que sé dónde está Waldo, sin revelar su ubicación. Esta tecnología es la base de rollups como Aztec, ya que permite agrupar cientos de transacciones desde la L2 y demostrar su veracidad en una única prueba. De esta forma se evita que sean reprocesadas en la L1, aumentando enormemente la escalabilidad de la red.

Privacidad

Anteriormente, se mencionaron algunas de las críticas principales hacia Ethereum, entre ellas la falta de escalabilidad y de privacidad. Para analizar el concepto de privacidad en Ethereum, hay que entender cómo funcionan las transacciones en la red.

Ethereum es una blockchain pública que mantiene un ”libro digital” (public ledger) donde se registran todas las transacciones. Estas consisten de dos elementos principales: cuentas y balances.

La transacción más básica que se puede realizar en la blockchain consiste en enviar Ether (ETH) de una cuenta a otra. Cuando finaliza la operación, la red incrementa el balance de una cuenta y decrementa el de la otra. Para entender mejor esta situación, veamos un ejemplo: supongamos que Lionel Messi quiere enviarle ETH a Cristiano Ronaldo.

post image

Inicialmente, Messi cuenta con 100 ETH y Ronaldo con un balance nulo. Lio, desea enviarle 20 ETH a Cristiano. De este modo, la red debitará 20 ETH a Messi, y le acreditará 20 ETH a Ronaldo. Una vez finalizada la operación, Messi contará con 80 ETH en su cuenta y Cristiano con 20 ETH.

post image

Dado que las transacciones son públicas, cualquier persona puede observar las acreditaciones y los débitos que se realizan sobre una cuenta. Esto puede observarse en sitios web como etherscan.io. A continuación, se puede observar el historial de transacciones más recientes para la cuenta cumbia420.eth:

post image

Del mismo modo, se pueden observar todas las transacciones que están siendo escritas en la blockchain:

post image

La fuente del problema está clara. No solo se pueden observar públicamente todas las transacciones de cualquier cuenta, sino que también se puede ver quién envía la transacción y quién la recibe. Este es uno de los principios de las blockchains públicas, que permite que sean auditables y verificables. El problema se hace aún mayor cuando la privacidad de una persona se ve comprometida. En muchos casos, se puede terminar conociendo el historial completo de transacciones de una cuenta. Es más, existen compañías dedicadas a asociar wallets, monitorear actividades y establecer relaciones sobre quién es el dueño de cada cuenta. Imaginate que por cada compra que realices se le muestra a todo el mundo el estado de tu cuenta bancaria. No estaría bueno.

La solución trivial: cuentas encriptadas

Una persona con conocimientos sobre criptografía podría pensar que la solución más intuitiva sería encriptar las cuentas, los balances y los montos. En caso de optar por este enfoque, se tendría lo siguiente:

post image

¿Cómo haría la red para chequear los balances de cada cuenta, asegurando que no existan problemas de doble gasto o transacciones fraudulentas?

Retomando el ejemplo de Messi y Ronaldo, analicemos qué pasos se deberían seguir para realizar la transacción en caso de que la información se encuentre encriptada y la red no sea capaz de chequear la validez de la misma.

  1. Messi le pide a Ronaldo el estado de su cuenta encriptada.

  2. Ronaldo le envía a Messi el estado de su cuenta.

  3. Messi desencripta la cuenta de Cristiano y confirma el balance de la misma antes de la transacción.

  4. Messi le envía el pago encriptado a Ronaldo.

  5. Ronaldo le envía el estado actualizado encriptado de su cuenta.

  6. Messi desencripta el nuevo estado de la cuenta de Ronaldo y confirma el nuevo balance, asegurando que Ronaldo haya recibido el monto enviado.

Este intercambio tiene los siguientes problemas: es caro, requiere de mucho tiempo y solo puede ser realizado con una persona a la vez, las cuales deben contar con acceso a internet al mismo tiempo. Aún peor, al finalizar la transacción, ninguno es capaz de convencer al resto sobre lo sucedido, ya que la transacción fue validada únicamente por ellos. Esta opción no es viable.

Una solución más práctica

Actualmente, Ethereum posee un modelo en el cual cada cuenta tiene un balance. Es decir, a partir de una cuenta se recupera su balance. Podría invertirse esta relación, y pensar que una cierta cantidad de dinero, escrita en una nota, tiene un dueño.

post image

Esta es la manera en la que funciona Bitcoin y es denominada UTXO (Unspent Transaction Output). Los UTXO’s pueden ser pensados como billetes. Manejar billetes es mucho más seguro y privado que un sistema de cuentas, ya que solo las personas que forman parte del intercambio tienen conocimiento del cambio de dueño. El resto no tiene idea sobre la operación.

Una transacción de billetes puede pensarse como el cambio de dueño de un objeto (la nota), mientras que una transacción entre cuentas estaría representada por el cambio en el estado de ambas cuentas.

post image

Cuando Aztec procesa una transacción, en vez de realizar un ajuste en el balance de una cuenta (incrementar o decrementar el balance), simplemente reasigna el dueño de una nota. ¿Por qué es útil esto? Resulta más fácil encriptar una nota, ya que solo se necesita saber cuánto vale y quién es su dueño. Cuando esta cambia de dueño, se cambia el nombre del dueño actual por el del nuevo dueño.

Transacciones en Aztec

Entonces, ¿cómo funciona la transacción de una nota? Analicemos nuevamente el intercambio entre Messi y Ronaldo. Supongamos que Messi tiene dos notas de 50 ETH cada una, dando un total de 100 ETH, y que Ronaldo no posee ninguna nota. Para enviarle 20 ETH a Ronaldo, Messi debería destruir sus dos notas de 50 ETH y crear dos nuevas: una de 80 ETH de la cual seguirá siendo dueño y otra de 20 ETH que será enviada a su nuevo dueño, Ronaldo.

Bajo este escenario, no es necesario revelar los valores de las notas. Desde luego, los involucrados en la transacción conocerán los valores, como sucede en cualquier intercambio de billetes, pero no tiene porque ser revelado a todo el mundo. Para proteger su privacidad, Messi publica la nota encriptada de forma tal que solo Ronaldo sea capaz de desencriptarla con su clave privada. Análogamente, podría pensarse a la transacción como el acto de guardar una nota dentro de un cofre con un candado. Ambos saben que dentro del cofre hay 20 ETH, por lo tanto, Messi deberá confiar en que Ronaldo no va a gritar por todos lados “Messi me envió 20 ETH!”. De esta manera, la nota a la que se le asignó un nuevo dueño volverá a una estructura de datos que contiene todas las notas existentes. Esta estructura se conoce como Merkle Tree Hash y será explicada más adelante.

post image

Así se vería el estado del sistema desde el punto de vista de un observador externo. Los valores y los dueños de cada nota están totalmente encriptados.

Un posible problema

Sabemos que Messi destruyó dos notas, creó dos nuevas y le envió una de las dos a Cristiano. ¿Cómo podemos asegurarnos que no se pongan de acuerdo y generen, por ejemplo, un doble gasto? ¿Qué sucedería si Messi destruye las dos notas con un valor total de 100 ETH y crea dos notas nuevas con un nuevo valor total de 200 ETH? O peor, un monto arbitrariamente grande.

Recordemos los pasos de la transacción:

  1. Messi destruye sus dos notas de 50 ETH y crea una nueva de 20 ETH y otra de 80 ETH.

  2. Messi le envía 20 ETH a Ronaldo.

Para asegurarse de que no pasa nada extraño en el paso 1, Messi debe probarle al sistema (Aztec) que las dos notas que quiere crear son equivalentes en valor a las dos notas que quiere destruir. Esto se conoce como una transacción “join-split”, basada en la equivalencia A + B = C + D. Para probar que (C + D) equivale a (A + B), Messi debe generar una prueba de conocimiento cero (Zero Knowledge Proof — ZKP) de manera local en su navegador. Esta prueba permite probar la equivalencia A + B = C + D sin revelar ninguna información sobre los valores de estos. Más tarde, Aztec valida la prueba y por la naturaleza criptográfica de las mismas asegura su veracidad. En este momento, el smart contract destruye las dos notas de entrada y encripta y almacena las nuevas notas de salida en su registro de notas.

¿Cómo se demuestra posesión?

Es importante discutir cómo se demuestra la posesión de notas en Aztec, lo cual tiene sus analogías con el mundo de Ethereum. ¿Cómo demuestro que tengo acceso a una cuenta en Ethereum? Firmando un mensaje con mi billetera virtual. ¿Cómo demuestro que soy dueño de ciertas notas en Aztec? Con una firma criptográfica avanzada llamada prueba de conocimiento cero que indica: “En alguna parte del estado de Aztec: a) existe una nota con cierto valor, y b) Yo soy el dueño.”. Pero… ¿Cómo guarda el estado del sistema Aztec? Para esto, utiliza dos Merkle Trees:

  • Un árbol de notas, que contiene todas las notas que han sido creadas.

  • Un árbol anulador, que contiene todas las notas que han sido destruidas.

Ser dueño de una nota implica que esta nota existe en el árbol de notas y que no existe ninguna nota que se corresponda con la misma en el árbol anulador. Al “destruir” una nota, esta es añadida al árbol anulador en vez de ser eliminada del árbol de notas.

post image

Para persistir nuevas transacciones se debe actualizar el estado del sistema cambiando los valores de las raíces de ambos árboles. Una vez hecho esto, son publicadas a la red principal de Ethereum y las transacciones son consideradas registradas.

¿Qué pasa cuando protejo un token?

Como se mencionó anteriormente, Aztec maneja una red aparte con una arquitectura de UTXO que funciona como dinero. Proteger un token significa depositarlo en el smart contract de Aztec en Ethereum, que se comunica con la red de Aztec para generar notas encriptadas con el valor transferido.

Cada vez que se deposita, retira o envía una nota con Aztec, se actualiza el árbol con el estado de la red. Las transacciones pueden ir en dos direcciones:

  1. Se envía zkETH/DAI a un usuario de zk.money. El receptor recibirá zkETH/DAI.

  2. Se envía zkETH/DAI a una cuenta de Ethereum afuera de zk.money. El receptor recibirá tokens ETH/DAI normales (exploradores de bloque como Ethrescan indicarán que los fondos fueron enviados desde el smart contract de Aztec, sin exponer al remitente).

¿Cómo se ven las “transacciones privadas” dentro Aztec?

Todas las transacciones realizadas en el rollup de Aztec están ocultas ante observadores externos y el proveedor de la rollup. Tanto la identidad del remitente como la del destinatario y el valor de la transacción se encuentran encriptadas.

post image

¿Cómo se ven los depósitos y retiros?

Al depositar dinero en la rollup de Aztec, todos pueden ver desde qué cuenta se hizo el depósito y cuál fue el monto. Sin embargo, no son capaces de obtener la identidad de la cuenta de Aztec a la cual se realizó la transacción.

Algo similar ocurre cuando se realiza el retiro a una cuenta de ETH, ya que la dirección a la que se envía el dinero aparece en el explorador de bloques. Utilizando esta información, se puede rastrear la cantidad retirada.

post image

Para evitar rastreos y mantener la privacidad, se recomienda que los retiros sean realizados a diferentes direcciones de Ethereum. Además, se sugiere emplear una cuenta distinta a la utilizada para registrar el usuario de zk.money. De todas maneras, la transacción no revela información sobre la dirección que envía el dinero. En exploradores como Etherscan aparecerá que los fondos fueron enviados desde “Aztec Contract / Private Rollup”, el smart contract de Aztec.

Alternativas de privacidad

Algunas personas optan por soluciones más simples como puede ser un mixer. Un mixer es una herramienta que permite a los usuarios mezclar sus monedas con las de otros para obtener un mejor nivel de privacidad y anonimato. De esta manera, se evita el rastreo de ciertas actividades que los usuarios hayan realizado con su dinero. Sin embargo, estos servicios cuentan con una pésima reputación, ya que en algunos casos son utilizados para esconder prácticas ilegales, robos y hackeo de fondos.

Al igual que los Mixers, Aztec provee la funcionalidad básica de depósito y retiro con el objetivo de evitar que se asocien balances y operaciones con cuentas, manteniendo el anonimato. Sin embargo, con zk.money se pueden realizar transferencias dentro de la red privada interna y Aztec Connect permite interactuar de manera privada con varios DeFi sobre Ethereum.

Supongamos que Aztec fuese un mixer sin transacciones internas y estemos intentando de anonimizar la red. Si alguien retirara 1 ETH, implicaría un depósito de al menos 1 ETH dentro del mixer. Como no existen las transacciones internas, sería imposible realizar múltiples depósitos y retirar la suma total de los mismos. Dicho esto, alcanzaría con analizar quienes depositaron al menos 1 ETH y luego la persona que realizó el retiro sería alguna de estas.

post image

Es decir, todas aquellas personas que se encuentran a la derecha de la línea punteada, son susceptibles de haber realizado el retiro.

Haciendo un análisis más profundo, es posible concluir también que es más probable que quien realice un retiro de 1 ETH haya realizado un depósito de ese valor, a que provenga de un depósito superior a 1 ETH. Esto se debe a que es molesto tener que obtener depósitos de 5, 10 o 30 ETH en retiros de 1 ETH. Es más simple realizar un único retiro de mayor valor.

post image

Esto es lo que tendría en cuenta un forense al momento de analizar el origen del retiro.

Recomendaciones para mantener la privacidad

Una forma obvia para que un forense logre identificar y asociar una cuenta, sería realizar un depósito grande y, poco tiempo después, retirar dicha suma. Si quisiera ser identificado de forma más fácil aún, podría depositar una cantidad única (ej: depositar 89,898989 ETH a Aztec, y luego retirar 89,898989 ETH).

Para favorecer el anonimato, zk.money sugiere realizar depósitos y retiros de números redondos. La idea es que la probabilidad de asociar cuentas a depósitos y retiros sea prácticamente nula.

En resumen:

post image

Otra cosa a considerar, es que es probable que el monto del retiro sea mayor al del depósito debido a la posibilidad de realizar transacciones internas dentro de la red.

Por último, se recomienda nunca retirar dinero de Aztec a la misma cuenta de Ethereum desde la que se hizo el depósito, ya que te estarías delatando diciendo “recuperé mi dinero”.

En definitiva, el nivel de anonimato dependerá de la cantidad de transacciones internas y depósitos en el sistema.

Escalabilidad

En el contexto de una blockchain, escalabilidad significa que el costo marginal de transacciones disminuye con cada nueva transacción. Cuanto más rápido caiga este costo, más escalable será el producto. La rollup de Aztec está diseñada para brindar transacciones en Ethereum totalmente privadas y accesibles, con un costo extremadamente menor al de la red principal.

Los protocolos de la capa 1 como Ethereum son anti-escalables. A medida que aumenta la cantidad de transacciones, aumenta el costo marginal de cada transacción. Para poder escalar la red de Ethereum y disminuir costos, existen dos protocolos de consenso: Optimistic Rollups y Zero Knowledge Rollups.

Optimistic Rollups (Rollups Optimistas — Orus)

En este protocolo los creadores de bloques publican una transacción en Ethereum con su estado raíz. El ecosistema, “optimistamente”, toma el estado como válido. Durante siete días, cualquiera puede probar la invalidez de la transición al nuevo estado. Para hacer esto, deben descargar el bloque de transacciones y comparar la raíz del Merkle tree del estado anterior con la del nuevo. Si encuentran que la transición del estado es inválida, pueden presentar una prueba de fraude, provocando que el creador de bloques sea sancionado y el estado de la blockchain sea restaurado al estado original.

Cabe destacar que el costo de ejecutar transacciones en una rollup optimista es casi nulo, ya que requiere el cómputo de un único creador de bloques. De todas maneras, hay un costo variable que viene de publicar la información a Ethereum.

Zero Knowledge Rollups (Rollups de Conocimiento Zero — ZKRs)

En una rollup de conocimiento cero, el rollup tiene un costo fijo significativo. En lugar de tener que esperar las pruebas de fraude, las ZKRs generan constantemente pruebas de conocimiento cero para la capa 1 de Ethereum validando una serie de cómputos fuera de la red (llamadas “pruebas de validez”).

A pesar de la total seguridad y validez de las transacciones en la rollup debido a la naturaleza de las pruebas de conocimiento cero, tiene que haber una cantidad suficiente de transacciones para amortizar el costo de publicar la prueba a Ethereum.

Aztec es una zk rollup (en realidad se la conoce como una zk-rollup recursiva — una zk-zk-rollup), y por lo tanto posee el costo fijo de publicar la prueba de validez basada en SNARK a Ethereum. Asimismo, tiene la capacidad de ser altamente escalable.

En términos de costos, las rollups optimistas no tienen precio fijo, pero a medida que aumentan la cantidad de transacciones, las rollups de conocimiento cero superan la desventaja de su costo fijo, poniéndose por encima de las rollups optimistas debido a su mayor capacidad de compresión de datos. Por lo tanto, las rollups de conocimiento cero son más escalables.

Escalado de zkRollups

A continuación, se presenta una ecuación simple para entender los factores que intervienen en el escalado de Aztec y otras zkRollups:

post image

Por lo tanto, para reducir sus costos Aztec debe:

  • Reducir el costo de publicar un rollup (controlado por Aztec).

  • Aumentar la cantidad de transacciones por rollup (controlado por Aztec).

  • Disminuir el costo de call data por transacción (controlado por Ethereum).

Costo de publicar un rollup

En la actualidad, debido a una mejora en el sistema de pruebas de validez llamado UltraPlonk, el costo de publicar una prueba a Ethereum es de aproximadamente 500.000 gas. Esto resulta 30% más barato respecto al costo en versiones anteriores de Aztec. La empresa estima que podrían bajar los costos hasta aproximadamente 180.000 gas con nuevas versiones de su sistema de pruebas de validez.

Transacciones en el rollup

El sistema actual de Aztec, mejoró de 112 a 896 transacciones por rollup. Esto es, 8 veces más transacciones.

Antes de su mejora, Aztec funcionaba de la siguiente manera:

  1. Se generaba una prueba en el browser del cliente.

  2. Se agregaban 28 pruebas de clientes a una prueba “interna” de la rollup.

  3. Se agregaban 4 pruebas internas de la rollup a la prueba “externa” de la rollup.

La prueba externa es verificada en un circuito llamado “circuito raíz”, donde se establece la validez del estado de Aztec. Luego, esta prueba es persistida en la mainnet.

post image

Con el lanzamiento de Aztec Connect, aumentaron la capacidad de la rollup externa de 4 a 32 pruebas internas, brindando una cantidad de 28 * 32 = 896 transacciones por rollup. Esto fue logrado utilizando pruebas de validez recursivas, disminuyendo el costo de transacción por rollup de 750.000 / 112 = 6.700 gas a 550.000 / 896 = 614 gas.

Costo de call data por transacción

Se utiliza call data como almacenamiento ya que es la opción más barata ofrecida por Ethereum hoy en día. Esta información es vital, ya que permite reconstruir el estado de la rollup y probar su validez. Este almacenamiento representa la mayoría del costo de gas en Aztec. Con el paso del tiempo, a medida que el costo de las pruebas de validez baje y la rollup escale, pasará a representar el 100% del costo de transacción. En este punto, escalar Aztec implicaría escalar Ethereum. Debido a esto, Aztec está considerando utilizar otro tipo de opciones más económicas para persistir el estado de la rollup en el futuro.

¿Cuánto cuestan las distintas transacciones?

  • Depósitos: 51.000 gas.

  • Transferencias internas: 17.000 gas.

  • Retiros: 5.000 gas a una EOA, 30.000 gas a un contrato.

¿Qué tan rápido se puede retirar el dinero de Aztec?

Hoy en día Aztec publica bloques de rollup cada 4 horas. Este tiempo se irá reduciendo a medida aumente el uso del sistema. Si se desea retirar el dinero de forma inmediata, se puede incrementar la tarifa de transacción para que el bloque de rollup se construya y publique inmediatamente. La publicación de un bloque en la mainet puede tardar aproximadamente 10 minutos. En caso de que no se complete el bloque dentro de las 4 horas, Aztec se encargará de subsidiar el resto de las tarifas para asegurar la publicación del bloque cada 6 horas.

Descentralización

La tecnología actual de la rollup de Aztec es mantenida por la empresa como único proveedor. Aztec espera la integración de nuevos proveedores este año, permitiendo descentralizar la red.

Cuentas

Las cuentas en Aztec consisten de dos partes principales: la cuenta (par de clave pública/privada) y los signers. La cuenta está asociada a una clave privada que se utilizará para desencriptar las notas. Los signers están asociados a claves de gasto o claves de firma que son utilizadas para mandar notas desde la cuenta.

Una cuenta es simplemente un par de claves pública/privada hasta que es registrada. Antes de ser registrada, se utiliza la clave privada para desencriptar y enviar notas de la cuenta. Una vez registrada, las notas recibidas por la cuenta pueden ser enviadas con la clave privada o la clave de firma. Aztec recomienda el segundo enfoque.

Tokens

¿Qué tokens soporta Aztec?

Actualmente, Aztec soporta ETH, DAI y renBTC. Una vez ingresados a la cuenta, son convertidos en tokens protegidos bajo el protocolo de la red. Por ejemplo, zkEtH es un token ETH con una capa zkSNARK encargada de proteger la información de la transacción. Un zkETH tiene el mismo comportamiento que un ETH. Los usuarios pueden enviarlo a cualquier dirección de Ethereum desde zk.money. El mismo concepto aplica a otros assets en la plataforma.

Tokens propios

Hoy en día Aztec no cuenta con un token propio. De todas maneras, no descartan la posibilidad de tenerlo en un futuro.

Competidores

Como ya se mencionó en reiteradas ocasiones, Aztec es la primera ZK-Rollup (Zero Knowledge rollup) sobre Ethereum centrada en la privacidad. Hasta el día de hoy no hay ninguna otra L2 sobre Ethereum con los beneficios que brinda Aztec. De todas maneras, existen alternativas L1 como Penumbra o Railgun.

Polémicas con la privacidad

Este año FTX, uno de los mayores exchanges del mundo, comenzó a congelar las cuentas de clientes que hayan utilizado los servicios de Aztec, alegando que es un mixer.

Esta situación se dio luego de la polémica prohibición por el gobierno estadounidense del mixer de Ethereum llamado Tornado Cash. En el mes de agosto, Estados Unidos sancionó al protocolo y varias direcciones de wallets asociadas, prohibiendo a los residentes y empresas estadounidenses el uso de la herramienta. La sanción tuvo grandes consecuencias en el área de las criptomonedas y ha hecho que empresas y proyectos tomen medidas preventivas, distanciándose de todas las herramientas que dificulten el seguimiento del origen de fondos.

Como respuesta Aztec indica que ha implementado cambios para disuadir el lavado de dinero, incluyendo la disminución de la tasa de depósitos y retiros, facilitando la identificación de las direcciones de riesgo. Sin embargo, la empresa ha dejado en claro que no pretende sacrificar la privacidad de los usuarios para evitar el uso ilícito de su servicio.

Agradecimientos hacia Beno y Josh.