¿Cuál es el conjunto máximo de anonimato de una transacción CoinJoin?

Descubrí que el único factor limitante es el tamaño de transacción estándar máximo, que es 100k bytes.
Las transacciones más comunes que nos preocupan son 1 input, 2 outputsy las segundas más comunes son 2 inputs 2 outputstransacciones be y los tamaños de estas transacciones son aproximadamente 220 bytey 360 byte.
por lo tanto, el conjunto de anonimato máximo alcanzable iría de 270a 450 (100k/360=270, 100k/220=450).

  1. ¿Estoy en lo correcto hasta ahora?
  2. ¿Hay más factores limitantes?
  3. ¿SegWit eleva el tamaño de la firma fuera del cálculo del tamaño de transacción estándar máximo, lo que da como resultado 30%más conjuntos de anonimato? (Las firmas son 71 bytesen promedio). Entonces, en este caso, 351a 468.
Para referencia futura, meta es solo para preguntas sobre Bitcoin StackExchange en sí.
Culpa mía. Esto explica por qué no pude agregar las etiquetas adecuadas.

Respuestas (2)

Independientemente del tamaño máximo de una sola transacción, un conjunto de anonimato de CJ se puede hacer arbitrariamente grande (limitado, por supuesto, por los participantes) mediante la creación de una red de conmutación de múltiples etapas a partir de uniones.

Esto se describió en la publicación original de coinjoin :

En particular, si puede crear transacciones con m participantes por transacción, puede crear una secuencia de m*3 transacciones que forman una red de conmutación de tres etapas que permite que cualquiera de los m^2 resultados finales provenga de cualquiera de los m^2 originales. entradas (por ejemplo, usando tres etapas de 32 transacciones con 32 entradas cada 1024 usuarios pueden unirse con un total de 96 transacciones). Esto permite que el conjunto de anonimato sea de cualquier tamaño, limitado solo por la participación.

No se requiere atomicidad entre estas transacciones, aparte de que si algunos usuarios abandonan, el conjunto de anonimato será menor de lo esperado.

Asumió que las entradas y las salidas eran del mismo tamaño, que no lo son. Una entrada típica es de 148 bytes, una salida es de 34. Por lo tanto, el conjunto de anonimato máximo es de 549 entradas a 549 salidas.

No hice los cálculos para las salidas de tipo SW, pero permitirían un conjunto de anonimato más grande, suponiendo que se respeten otros límites como sig ops (operaciones de firma) y operaciones hash.

> Asumiste que las entradas y salidas eran del mismo tamaño que yo no asumí, simplemente no importan. Simplemente opté por una estimación de tx de 1in2out de 220 bytes y de 2in2out de 360 ​​bytes. Su estimación es 1in1out. Lo que probablemente nunca sucederá en una transacción CJ, porque las transacciones CJ deben tener una denominación de salida común, por lo tanto, una salida de cambio es inevitable en casi todos los casos.
Pero usar transacciones pequeñas como base tampoco es correcto, ya que hay una sobrecarga fija de 10 bytes por transacción, sin importar el número de participantes.
De hecho, eso daría como resultado un aumento del conjunto de anonimato del 5% (en el caso de 220 bytes tx) y del 2,5% (en el caso de 360 ​​bytes tx).