I'm studying the UC framework by Canetti. While I understand the basic idea, there are still a lot of details that I need to work through.
One thing that's puzzling me is how to achieve concurrency under the UC execution mode. For example, in many distributed algorithms, a machine may broadcast a message and then every receiver may do some computation on the message. The result of the computation may be broadcasted again.
The paper says
In order to simplify the process of determining the next ITI to be activated, we allow an ITI to execute at most a single external-write instruction per activation.
In that case, how does one capture a broadcast functionality, both as an ideal functionality as well as a real protocol?