- Permissionless Confidential Ring
- Custom Confidential Ring
- Custom Anonymous Ring
Billetera privada y usuario
Los usuarios mantienen su saldo cifrado en una billetera privada y firman transacciones privadas con su clave Ed25519 de Solana existente. Una integración de billetera privada agrega un par de claves blindado a tu sistema de gestión de claves. Puedes integrarlo tú mismo o usar la billetera privada integrada.Transacciones privadas
Las transferencias privadas son transacciones normales de Solana. El entorno de ejecución de Solana verifica las firmas e invoca el Programa de Privacidad de Solana, que verifica la prueba ZK sin revelar el estado cifrado. Una transferencia confidencial típica ocupa alrededor de 927 bytes, muy por debajo del límite de 4096 bytes de v1.Example Confidential Transfer
Example Confidential Transfer
Para el ejemplo de transferencia confidencial con 2 entradas y 3 salidas de la especificación.
Consulta el código fuente: Especificación · xtask/src/main.rsConsulta la estructura de transacciones v1 de Solana.
RPC
Una permite acceder al RPC de Solana, al indexador y a un generador de pruebas remoto.- RPC de Solana – Devuelve el saldo público y envía transacciones a la red de Solana.
- Indexador – El indexador proporciona el estado cifrado que una billetera necesita para consultar saldos y crear transacciones privadas. Cualquiera también puede ejecutar su propio indexador sin permisos como alternativa.
- Generador de pruebas – Las pruebas de conocimiento cero pueden generarse localmente o mediante un servidor de generación de pruebas en milisegundos, según la transacción y el hardware. Helius usa GPU para generar pruebas.
Privacidad y programas de Solana
El Programa de Privacidad de Solana (SPP) es el programa principal que verifica y ejecuta todas las transiciones de estado privado. Los programas de anillos personalizados y los programas ZK de Solana agregan lógica de cumplimiento o de aplicación y luego invocan SPP para actualizar el estado privado. Otros programas de Solana pueden interactuar con estos programas mediante CPI en la misma transacción, dentro de los límites de transacción de Solana, como el límite de profundidad de CPI de 5.ZK Program Transaction Flow
ZK Program Transaction Flow
- Permissionless Ring
- Custom Rings
- ZK Program alone
- ZK Program and additional Solana Program
Programa de Privacidad de Solana (SPP)
El Programa de Privacidad de Solana verifica pruebas de conocimiento cero y actualiza el estado privado. Úsalo para depositar tokens, transferir saldos privados y retirar tokens a cuentas públicas. Otros programas invocan SPP mediante CPI para ejecutar transiciones de estado privado.Programa de anillo personalizado
Un programa de anillo personalizado define los permisos de transferencia y cualquier autoridad adicional, de forma similar a Token-2022. Úsalo para configurar auditores, exigir un cofirmante o permitir que una autoridad congele saldos. Verifica una prueba ZK para aplicar su lógica de cumplimiento personalizada y luego invoca SPP para actualizar el estado privado.Programa ZK de Solana
Los programas de conocimiento cero (ZK) de Solana permiten crear depósitos en garantía privados en programas de Solana para aplicar lógica de aplicación sobre saldos privados. Puedes crear intercambios privados, staking, préstamos y mucho más con programas ZK de Solana. Por ejemplo, un intercambio confidencial puede hacer cumplir los montos y el precio acordados sin hacerlos públicos. El programa verifica una prueba ZK de su lógica de aplicación y luego invoca SPP, directamente o mediante un programa de anillo personalizado, para actualizar el estado privado.Árbol de Merkle de estado y Forester
El anillo predeterminado y todos los anillos personalizados almacenan el estado privado en una cuenta de árbol de Merkle de estado, mantenida por un nodo Forester. Las cuentas de árbol confirman el estado privado sin almacenarlo en cuentas de Solana separadas. Por lo tanto, debes consultar los saldos y el historial de transacciones con métodos RPC específicos del indexador, comogetShieldedTransactionsByTags, en lugar de usar métodos de cuentas de Solana como getAccountInfo. Consulta Leer un saldo privado y Leer el historial de transacciones privadas.
Rendimiento
El árbol se almacena en una cuenta de Solana con permisos de escritura. Las transferencias privadas que escriben en esta cuenta comparten el límite de bloqueo de escritura de 12 millones de CU por cuenta y por bloque de Solana. Se pueden gastar diferentes UTXO de forma independiente, pero las transacciones que escriben en el mismo árbol siguen compartiendo los bloqueos de cuenta y los límites de cómputo de Solana. Una transferencia confidencial consume aproximadamente 140 000 CU en la prueba de rendimiento de instrucciones. Por lo tanto, un árbol admite aproximadamente 86 transferencias privadas por bloque, o cerca de 215 transacciones por segundo con los tiempos de bloque actuales de Solana de unos 400 milisegundos. El protocolo puede agregar más árboles para aumentar el rendimiento. Cada árbol es una cuenta independiente con permisos de escritura y su propio presupuesto de cómputo por cuenta, por lo que las transacciones de árboles diferentes no compiten por el mismo presupuesto de bloqueo de escritura.Interfaz SPL
La interfaz SPL permite la interoperabilidad entre tokens mantenidos de forma pública y privada. Es un depósito en garantía por cada emisión de token, que puede crearse sin permisos, pero debe crearse una sola vez por emisión.- Al depositar activos SOL y SPL en un saldo privado, una PDA de interfaz propiedad del Programa de Privacidad de Solana mantiene los tokens en depósito y crea UTXO cuyo propietario es el usuario.
- Al retirar a un saldo público, los UTXO existentes se marcan como gastados y los tokens se liberan a las cuentas de tokens de Solana.
Más información
Overview
Anillos, garantías de privacidad y flujo de transacciones.
Private State and UTXOs
Cómo se almacenan y gastan los saldos privados.
Encryption and Privacy Guarantees
Cómo se cifran los activos y la función del par de claves blindado.
Custom Enterprise Rings
Aprende a configurar un anillo personalizado.
¿No encontraste lo que buscabas?
¡Contáctanos! Telegram | Correo electrónico | Contacto