Ich fand, dass der einzige einschränkende Faktor die maximale Standardtransaktionsgröße ist, die 100k bytes
.
Die häufigsten Transaktionen, mit denen wir uns befassen, sind 1 input, 2 outputs
und die zweithäufigsten sind be 2 inputs 2 outputs
-Transaktionen, und die Größen dieser Transaktionen liegen bei etwa 220 byte
und 360 byte
.
daher würde der maximal erreichbare Anonymitätssatz von 270
bis gehen 450
(100k/360=270, 100k/220=450)
.
30%
mehr Anonymitätssätzen führt? (Unterschriften sind 71 bytes
im Durchschnitt.) Also in diesem Fall 351
bis 468
.Unabhängig von der maximalen Größe einer einzelnen Transaktion kann ein CJ-Anonymitätssatz beliebig groß gemacht werden (natürlich begrenzt durch Teilnehmer), indem ein mehrstufiges Vermittlungsnetzwerk aus Joins aufgebaut wird.
Dies wurde im ursprünglichen Coinjoin-Post beschrieben :
Insbesondere wenn Sie Transaktionen mit m Teilnehmern pro Transaktion erstellen können, können Sie eine Folge von m * 3 Transaktionen erstellen, die ein dreistufiges Vermittlungsnetzwerk bilden , das zulässt, dass alle m ^ 2 endgültigen Ausgaben von jedem von m ^ 2 Original stammen Eingaben (z. B. unter Verwendung von drei Stufen von 32 Transaktionen mit je 32 Eingaben können 1024 Benutzer mit insgesamt 96 Transaktionen verbunden werden). Dadurch kann der Anonymitätssatz beliebig groß sein und nur durch die Teilnahme begrenzt werden.
Zwischen diesen Transaktionen ist keine Atomizität erforderlich – außer wenn einige Benutzer ausfallen, ist die Anonymitätsmenge geringer als erwartet.
Sie sind davon ausgegangen, dass Ein- und Ausgänge die gleiche Größe haben, was nicht der Fall ist. Eine typische Eingabe beträgt 148 Bytes, eine Ausgabe 34. Daher beträgt die maximale Anonymitätsmenge 549 Eingaben zu 549 Ausgaben.
Ich habe die Berechnungen für SW-Ausgaben nicht durchgeführt, aber sie würden einen größeren Anonymitätssatz zulassen, vorausgesetzt, andere Grenzwerte wie Sig-Ops (Signaturoperationen) und Hash-Operationen werden eingehalten.
Nick Odell
nopara73