Desarrolladores

Vista Previa para Desarrolladores: Confidential Tokens en Stellar

Author

Maryam Mazraei

Publishing date

Nota del editor: Las Vistas Previas para Desarrolladores de Stellar ponen nuevas herramientas de desarrollo y capacidades del protocolo en manos de los desarrolladores antes de que estén listas para producción. Aunque aún no están aprobadas para mainnet, el contrato de Token Confidencial ya está activo en testnet. Anticípate y pruébalas ahora mientras se realizan las auditorías del contrato y del verificador.

Hoy presentamos nuestra última función de privacidad: Tokens Confidenciales, un conjunto de contratos de OpenZeppelin, conectado a un verificador UltraHonk implementado por Nethermind, que agrega saldos privados y montos de transferencia privados a cualquier token SEP-41.

Confidencial, no anónimo

La privacidad en una blockchain pública no es una sola cosa. Diferentes casos de uso necesitan propiedades distintas, y la arquitectura que elijas al inicio decide lo que podrás hacer después.

Los Tokens Confidenciales tienen un alcance deliberado: ocultan los saldos y los montos de transferencia mientras mantienen visibles las direcciones del remitente y del destinatario. Para desarrolladores que ya transaccionan onchain, donde los montos y saldos son públicos por defecto, eso es un avance significativo. Casos de uso adecuados incluyen gestión de tesorería, nómina y liquidación institucional, entre otros.

En comparación, la otra opción en la pila de privacidad de Stellar—implementaciones de pools de privacidad como Stellar Private Payments (SPP)—protege tanto a las partes como a los montos. Esta publicación se centra en el caso de uso de Token Confidencial: contrapartes conocidas, montos ocultos.

Cómo funciona: un contenedor (wrapper) sobre tokens existentes

A nivel de arquitectura, un Token Confidencial es un contrato contenedor (wrapper). Un usuario toma cualquier token SEP-41—USDC emitido a través del Stellar Asset Contract, un token nativo de contrato, cualquier cosa que implemente el estándar— y lo deposita en un contrato de token confidencial.

Dentro del contenedor, el saldo se codifica como un compromiso de Pedersen—oculto a la vista pública, pero totalmente verificable por la red. Las transferencias entre cuentas dentro del contenedor mueven fondos sin revelar valores. Para salir, un usuario retira de vuelta al token SEP-41 subyacente.

El libro mayor base permanece abierto y auditable. La privacidad vive completamente en la capa de aplicación, en el contrato contenedor. Este aislamiento es intencional: si alguna vez se encontrara un error en un circuito de token confidencial, solo podría afectar a los tokens dentro de ese contenedor. Por diseño, cualquier vulnerabilidad queda contenida a los token(s) dentro de ese contenedor, sin afectar al activo subyacente ni a la red en general.

Las pruebas se escriben en Noir y se verifican onchain mediante el verificador UltraHonk, usando las funciones criptográficas del host introducidas en Protocolo 25 (X-Ray). Esta es una implementación funcional en testnet con la que puedes desarrollar hoy.

Qué incluye esta versión

Esta vista previa incluye primitivas diseñadas para brindar soporte a flujos de trabajo orientados al cumplimiento:

  • Clave de visualización del auditor. Un rol de auditor designado puede ver los montos de transacción y los saldos de cuenta de los activos en el contenedor.
  • Divulgación selectiva. Los titulares de cuentas pueden probar a una parte específica que ocurrió una transacción concreta sin exponer el resto de su actividad.
  • Congelación a nivel de cuenta. Se hereda de los controles existentes del Stellar Asset Contract (SAC).
  • Motor de políticas de cumplimiento configurable. Te permite conectar contratos de políticas que actúan como registros de identidad de listas de permitidos o de bloqueados.

La documentación completa de extensiones de cumplimiento recorre en detalle el diseño de congelación, el passthrough de SAC y los hooks de políticas. Estas extensiones de cumplimiento son open-source y se están iterando activamente.

Pruébalo tú mismo

La forma más rápida de hacerte una idea de los Tokens Confidenciales es ejecutar la demo de OpenZeppelin en local y hacer una transferencia confidencial en testnet.

La demo en Stellar Testnet recorre tres roles: titular de la cuenta, receptor de divulgación, y auditor. Para probarla en el navegador, conecta tu billetera—recomendamos Freighter en Stellar Testnet. Ve a Stellar Lab y selecciona "Fund account" para obtener XLM de prueba.

Para ejecutar en local:

  1. Clona stellar-confidential-token-demo
  2. Revisa README para uso básico y más avanzado
  3. Elige los módulos relevantes de la lib
  4. Envía issues durante la ventana de testnet.

Damos la bienvenida a socios de diseño y contribuciones de la comunidad—Si estás creando soluciones de privacidad enfocadas en cumplimiento en Stellar, eres miembro de una cohorte de SCF o te uniste a nuestro reciente Stellar Hacks: Real-World ZK hackathon—comparte en qué estás trabajando en nuestro Discord para Desarrolladores.

Vista Previa para Desarrolladores con OpenZeppelin

Nos entusiasma contar con Boyan Barakov (Senior OSS Developer, OpenZeppelin) se una a Alessandro Voto (Senior PM, Stellar) para presentar los Tokens Confidenciales y el trabajo con OpenZeppelin que impulsa la privacidad onchain.

Conéctate 2 de jul @ 4:00 PM UTC para ver la transmisión en @BuildOnStellar

Los Tokens Confidenciales son parte de una pila de privacidad más amplia en Stellar. Para contexto sobre las mejoras que lo hicieron posible, consulta: stellar.org/privacy, la documentación para desarrolladores de Stellar sobre privacidad, y la taxonomía en el Apéndice a continuación.

Apéndice: Privacidad en Stellar (una taxonomía en desarrollo)

Una forma sencilla de entender las soluciones de privacidad onchain es preguntar:

¿Qué ve la red y qué permanece oculto?

Solución

Público

Privado

Token Confidencial

Direcciones de remitente y destinatario; montos de depósito y retiro

Saldos; montos de transferencia

Implementaciones de pools de privacidad (p. ej., SPP)

Las direcciones de depósito y retiro son públicas

Direcciones de remitente y destinatario, saldos y montos de transferencia dentro del pool

Tokens SEP-41 estándar

Todo (direcciones, montos, saldos)

Nada

Por qué existen ambas vías. Los Tokens Confidenciales están diseñados para flujos con contrapartes conocidas donde los montos no deberían ser públicos (p. ej., nómina, gestión de tesorería, liquidación B2B). Podrías tener dos bancos liquidando entre sí en USDC, donde cada parte ya sabe con quién está transaccionando, pero los montos de liquidación (y los saldos resultantes dentro del contenedor) permanecen razonablemente ocultos para el resto de la red.

Jerarquía de capas de privacidad de Stellar

Capa de aplicación: Contratos inteligentes de Stellar que implementan comportamientos específicos de privacidad. Estos incluyen Tokens Confidenciales e implementaciones de pools de privacidad como Stellar Private Payments (SPP).

Capa de verificación: Un verificador en cadena es un contrato inteligente que acepta una prueba ZK compacta y confirma su validez sin volver a ejecutar el cómputo original. Ejemplos incluyen UltraHonk Verifier de Nethermind (usado por el contrato Confidential Token) y el Verifier de RISC Zero (Groth16). La versión original del verificador fue desarrollada por un miembro de la comunidad, @yugocabrio. Nethermind asumió la titularidad y lo actualizó para usar las funciones host del Protocolo 25/26 de Stellar, haciéndolo más eficiente y práctico para la evaluación en testnet.

Funciones host criptográficas: Integradas en el protocolo de Stellar en la capa base: operaciones de curvas elípticas sobre las curvas BN254 y BLS12-381, y la función hash Poseidon/Poseidon2. Introducidas en las actualizaciones X-Ray (Protocolo 25) y Yardstick (Protocolo 26).

Libro mayor base (público): La privacidad vive en las capas superiores, nunca en la base.