Transacciones Zcash t-addr + z-addr

¿Es posible "romper" la trazabilidad de la cadena de bloques enviando ZEC entre z-addr y t-addr?

@renlord Las preguntas sobre "una criptomoneda o tecnología derivada directamente de Bitcoin como Namecoin o Litecoin" o sobre "criptomonedas distribuidas que no se derivan directamente de Bitcoin como Ripple, Ethereum o NXT" están explícitamente en la parte superior de este sitio. Fuente de las citas: bitcoin.stackexchange.com/help/on-topic
Está bien. Voy a rescindir mi voto cerrado.

Respuestas (1)

tl;dr Debe usar valores redondeados de ZEC al desproteger, e incluso entonces tendrá menos privacidad que si solo usa z-addrs.


Abordamos esta pregunta exacta en esta publicación de blog (imágenes que reproduzco a continuación).

Las transacciones que utilizan las direcciones t heredadas de Bitcoin son obviamente rastreables. Sin embargo, la propiedad de conocimiento cero asociada con el uso de direcciones z significa que cuando envía ZEC a una dirección z (creando una "nota", el equivalente privado de un TXO), y luego usa esa nota en una transacción posterior , las dos transacciones no están directamente vinculadas en la cadena de bloques (es decir, la segunda transacción no contiene un prevoutcampo que haga referencia a la primera, como sucedería con las direcciones t).

Esto significa que si envía ZEC desde una dirección t a una dirección z (una transacción de "protección") y luego desde la dirección z a una dirección t diferente , termina con la cadena de transacción (b) a continuación:

Las direcciones protegidas pueden desvincular direcciones transparentes

Esto "rompe" el vínculo entre las direcciones t de Alice y Carol (para esta transacción, otros pagos transparentes aún podrían vincular esas direcciones, por lo que se debe tener el mismo cuidado que con Bitcoin). Considerado de manera más amplia, puede imaginar "islas" de actividad de direcciones t, separadas entre sí por turbios "mares" de transacciones de direcciones z (consulte esta publicación de blog para una discusión relacionada con el ecosistema).

Ahora para la advertencia! La dirección z oculta todos los detalles (destinatarios, valores y campos memo) de las notas de salida en la transacción de protección y las propiedades correspondientes de las notas de entrada en la transacción de desprotección. ¡ Pero los valores ZEC siguen siendo públicos, porque son visibles en las mitades transparentes de las transacciones! Esto significa que puede tener problemas cuando envía el saldo completo de una dirección t sin cambios :

Una dirección protegida podría no proteger contra la vinculación de valor en algunos casos

El valor completo es visible en la primera transacción, y luego aparece una segunda transacción con un valor de salida igual al valor de entrada original menos dos tarifas de transacción. Los datos de tiempo también están disponibles (porque las transacciones están ordenadas de forma inherente y tienen marca de tiempo en la cadena de bloques), lo que significa que es posible vincular estadísticamente las dos transacciones basándose únicamente en esos valores [0].

La solución a esto es bastante simple : use cantidades "redondeadas" al desproteger (con el cambio volviendo a la dirección z). De esa manera, no existe un vínculo de valor entre las transacciones de protección y desprotección.

EDITAR: ¡Tenga en cuenta que la estrategia de redondeo particular que usa puede filtrar información! Por ejemplo, si usted siempre redondea hacia abajo al ZEC entero más cercano, y alguien más siempre redondea hacia abajo al ZEC 10 más cercano, con el tiempo, sus transacciones sin blindaje se verán marcadamente diferentes a las de ellos, y alguien que está buscando patrones en el bloque cadena puede comenzar a separar sus transacciones de desprotección del resto. En general, cuanto más grandes y estándar sean los cubos que utilice, menos información se filtrará; además, ¡quieres que todos los demás usen los mismos cubos que tú también!

El resultado es que, si desea minimizar la cantidad de información que filtra, la forma más sencilla de hacerlo es minimizar el uso de t-addrs.

[0] Es un poco más complejo que esto. La parte protegida de una transacción sin blindaje aún tiene las mismas dos notas de salida que cualquier otra parte de transacción protegida (solo contienen notas ficticias para una transacción z->t), y esas partes podrían completarse (es decir, usar una dirección z para pagar tanto las direcciones z como las direcciones t). Entonces, si bien la coincidencia de valores es un vínculo sólido, no es un vínculo definitivo y, de hecho, las billeteras pueden subvertirlo intencionalmente al elegir vpub_newvalores para sus transacciones sin blindaje del conjunto de vpub_oldvalores que se han visto en la cadena de bloques. Redondear los valores es efectivamente un mecanismo de consenso social para lograrlo.

Wooohoo, ¡bienvenido @str4d! :)