Direcciones ocultas en Ergo
En este artículo, repasaremos las direcciones sigilosas en la cadena de bloques de Ergo , por qué usarlas, qué son y su posible implementación. Las discusiones aún están en progreso en discord y la solicitud de extracción EIP-41 en GitHub , por lo que es posible que la implementación explicada aquí quede obsoleta, pero tal como están las cosas actualmente, parece que estamos cerca de llegar a un censo.
La implementación de direcciones sigilosas en Ergo se originó a partir de una discusión entre kushtiy scalahuben los foros, échale un vistazo aquí .
¿Qué es una dirección oculta?
Las direcciones sigilosas permiten realizar transacciones que preservan la privacidad. De forma predeterminada, todos los pagos realizados en Ergo (y la mayoría de las otras cadenas de bloques como Bitcoin) son visibles para cualquier persona que vea el libro mayor, por lo que si alguien conoce su dirección pública, puede rastrear todos los pagos que recibe. Hay cadenas de bloques como Monero, donde todas las transacciones se realizan de tal manera que la privacidad se preserva de forma predeterminada sin posibilidad de optar por no participar. El espíritu de Ergos es poner la elección en manos de los usuarios de la red.
Manifiesto Ergo :
La privacidad es la capacidad de crear barreras y erigir límites para crear un espacio para el individuo. Depende de cada uno qué fronteras y límites elige hacer.
¿Cuáles son algunos casos de uso potenciales para las direcciones sigilosas en Ergo?
Las direcciones sigilosas EIP-41 permiten a los usuarios recibir pagos de forma privada sin que las personas que controlan el libro mayor puedan vincular los pagos a la dirección pública de un usuario. Su naturaleza no interactiva significa que los usuarios pueden compartir sus direcciones ocultas libremente y recibir pagos sin necesidad de realizar ninguna otra acción.
Para demostrar esto con un ejemplo:
- Bob publica su dirección oculta en su biografía de Twitter
- Alice desea donar a Bob, por lo que envía ERG utilizando la dirección sigilosa que Bob publicó públicamente.
- Nadie puede vincular ningún pago realizado a Bob
¿En qué se diferencian las direcciones sigilosas de las soluciones existentes como ErgoMixer?
Como se mencionó, las direcciones sigilosas están destinadas a ocultar el recibo de un pago, esto es diferente a mezclar servicios que ofuscan los pagos.
Tome nuestro ejemplo de la sección anterior, al usar un mezclador, todos aún podrían ver que Bob recibió un pago, pero no podrían determinar el origen del pago.
¡Ambas opciones de privacidad tienen sus propios casos de uso únicos!
¿Cómo trabajan?
La solución se basa en el intercambio de claves Diffie Hellman no interactivo y es así:
- Bob genera una dirección pública para compartir, nada especial aquí, es como una dirección normal (actualmente estamos en conversaciones para agregar un nuevo tipo de dirección de pago a aplicación pública P2PA como parte del EIP para que las direcciones ocultas puedan ser manejadas perfectamente en carteras).
- Alice usa la dirección compartida públicamente para crear valores aleatorios que se usan en el contrato inteligente para proteger los fondos de Bob.
const g = this.ec.g;
const u = bobsPublicAddress;
const r = new BN(rand(32));
const y = new BN(rand(32));
const r4 = g.mul(r);
const r5 = g.mul(y);
const r6 = u.mul(r);
const r7 = u.mul(y);
{
// ===== Contract Information ===== //
// Name: EIP-0041 Stealth address contract
// Version: 1.0.0
val gr = SELF.R4[GroupElement].get
val gy = SELF.R5[GroupElement].get
val ur = SELF.R6[GroupElement].get
val uy = SELF.R7[GroupElement].get
proveDHTuple(gr,gy,ur,uy)
}
const gr = BOX.r4
const gy = BOX.r5
const ur = BOX.r6
const uy = BOX.r7
const bobsSecret = publicAddress.secretKey
const boxIsSpendable = ur.eq(gr.mul(bobsSecret)) && uy.eq(gy.mul(bobsSecret))
Ejemplo de código completo
También tengo un ejemplo de código completo aquí que ejecuta escenarios reales desde la perspectiva del remitente o del receptor si desea jugar con algún código.
Gracias por leer.

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































