For EIP-4844, Ethereum needs four different Structured Reference Strings (SRS) each of different sizes. Each SRS has a secret associated with it. For security, the SRS's must be computed in such a way that no single person knows the secret associated with them. The solution is to have multiple people contribute to the secret. If all of these people collude, then they can recover the secret. If even one person does not collude, then the secret is unrecoverable.
The process of multiple people contributing to the secret is known as a ceremony. This document will outline the assumptions and decisions made when designing the ceremony.
As a corollary of the first goal, the algorithms needed for the coordinator and the verifier, may be significantly more complex than that for the contributor.
Note: For those verifying a ceremony after the fact, we do not have any explicit requirements.
As mentioned, we assume that the coordinator is honest. We should however be careful here as a coordinator can be hacked, so we trust but verify. We justify the use of this model by the fact that security of the ceremony relies on contributors claiming that they did indeed participate in the ceremony and that their contribution was included. If a coordinator behaves maliciously, then the contributor will simply not make any claims.
This model is powerful because it allows us to delay a lot of the verification to different stages in the ceremony. More importantly, to stages that are not time sensitive.
Since the contributor does not need to do a structure check, they will not need to implement pairings. This aligns with the first goal of having a simple implementation for developers.
It is standard in Ethereum to use JSON and so the decision has been made to serialise the SRS's in JSON form. This aligns with assumption 2, however it does not completely align with assumption 1 as JSON serialisation is not the most efficient serialisation strategy compared to a binary file.
This is justified by the fact that the file size is ~10MB. Given that 10 Megabytes is 10,000 Kilobytes. On a 8-16Kilobytes per second connection, it would take 10-20 minutes. Is this really acceptable?
Since we are conducting four separate ceremonies, it is possible to conduct these asynchronously. For simplicity, the decision was made to have a contributor contribute to all four ceremonies at once. The cryptography is implemented in terms of a single ceremony and we call the appropriate methods four times.
There are many different variations to the trusted setup. The most popular ones being based off of Groth16. Since we did not need a Groth16 setup, our setup resembles the Ignition setup by the Aztec Network which in turn follows the rationale laid out in this eprint. For more information, on the technical changes, once can look here