In principle the DC-nets scales just as well, asymptotically, as non-anonymous multicast communication.
Consider a standard tree-based multicast protocol, where in every "communication round" the root node sends an L-bit message to its B immediate children, those children resend the message to their <=B immediate children, etc. Each node receives L bits and sends BL bits in one round.
Now consider how we could (in principle) implement DC-nets in the same tree, this time with a plaintext message originating anonymously at one of the N leaves of the tree. All N nodes create L-bit DC-net ciphertexts and send them up the tree. Each interior node obtains the <=B cipher texts from its children, XORs them together with its own L-bit ciphertext, and passes the result up the tree. The root gets the XOR of all N of the L-bit cipher texts, the (anonymous) sender's plaintext pops out, and the root broadcasts that plaintext down the tree exactly as for standard tree-based multicast. During the DC-nets phase each node receives <=B*L bits from its children and sends L bits to its parent, exactly equal to the bandwidth total cost of the (subsequent) downward multicast phase.
So in principle the fundamental cost of adding DC-nets anonymity to a tree-based multicast protocol, via this approach, is thus basically 2x over non-anonymous multicast. This applies equally to bandwidth, latency, and processing costs.
This is "in principle" of course, because there are many caveats: it's not so obvious how to make this theoretically scalable tree-based approach deal with churn or disruption, or do all the other things Dissent and other more practical systems have to deal with. Actually bringing this theoretically achievable level of scalability into practical reality is one of our goals but still very much "work-in-progress".
With a tree based multi-cast protocol you have to have 1 node act as an authority over all others, which defeats the point of the DC-Net, as that node can simply lie provided its corrupted? While you can claim the network is distributed provided the root node changes at a constant interval, there will the chance that [1/nodes] messages can be forged. (if it doesn't changed you don't have a distributed network).
You could reduce this chance by having multiple root nodes.
While this would increase traffic redundancy
roots * traffic
you would lower the probability of a forged message by
nodes ** roots
And still allow for each client to verify each root node's results with each other.
With as few as 3 root nodes and 15 nodes you'd be around <0.05% of forged messages. If you increase to ~100+ scale nodes only 2 root nodes are necessary.
Consider a standard tree-based multicast protocol, where in every "communication round" the root node sends an L-bit message to its B immediate children, those children resend the message to their <=B immediate children, etc. Each node receives L bits and sends BL bits in one round.
Now consider how we could (in principle) implement DC-nets in the same tree, this time with a plaintext message originating anonymously at one of the N leaves of the tree. All N nodes create L-bit DC-net ciphertexts and send them up the tree. Each interior node obtains the <=B cipher texts from its children, XORs them together with its own L-bit ciphertext, and passes the result up the tree. The root gets the XOR of all N of the L-bit cipher texts, the (anonymous) sender's plaintext pops out, and the root broadcasts that plaintext down the tree exactly as for standard tree-based multicast. During the DC-nets phase each node receives <=B*L bits from its children and sends L bits to its parent, exactly equal to the bandwidth total cost of the (subsequent) downward multicast phase.
So in principle the fundamental cost of adding DC-nets anonymity to a tree-based multicast protocol, via this approach, is thus basically 2x over non-anonymous multicast. This applies equally to bandwidth, latency, and processing costs.
This is "in principle" of course, because there are many caveats: it's not so obvious how to make this theoretically scalable tree-based approach deal with churn or disruption, or do all the other things Dissent and other more practical systems have to deal with. Actually bringing this theoretically achievable level of scalability into practical reality is one of our goals but still very much "work-in-progress".