Celo Core Talk #1: SPURT


Welcome to the first-ever Celo Core Talk! We will provide a summary of the discussion on SPURT (a research project) presented during the talk. SPURT focuses on the topic of randomness on the Celo platform, which is crucial for ensuring performance and security in various applications like phone number verification and consensus algorithms. The presentation aims to explore the origins of SPURT, its goals, and its potential contributions to the Celo community and the wider audience.

Getting Started with SPURT

SPURT is a distributed randomness beacon protocol that aims to emulate the functionality of an ideal trusted party that periodically generates fresh random strings and shares them with everyone. However, since there is no trusted party, SPURT utilizes a distributed protocol where multiple nodes collaborate to generate fresh random strings that can be accessed by clients. The protocol ensures that even if some nodes are corrupt, the randomness beacon remains secure and reliable.

Classifying Randomness Beacons

Randomness beacons can be classified based on various properties. One important aspect is the network model, which determines whether the protocol operates in an asynchronous network or requires synchronization. Fault tolerance is another consideration, indicating the level of tolerance to adversaries. Additionally, communication cost becomes crucial when dealing with large-scale networks, where the number of nodes can range from hundreds to thousands. Different protocols exist, such as Distributed Key Generation (DKG) and QSDH, each with its own advantages and considerations.

Threshold Secret Sharing

Threshold secret sharing is a fundamental primitive used in SPURT. It involves a dealer and multiple participants, where shares are encrypted and distributed to ensure secrecy. The protocol allows anyone, including external parties, to verify the correctness of the shares. Additive homomorphism of commitments is an important property utilized in threshold secret sharing.

Distributed Randomness Beacon Protocol

The SPURT protocol utilizes state machine replication and cryptographic multi-signature schemes. The protocol operates in epochs, where each node samples a random secret and computes shares for the secret. The leader node aggregates commitment and encryption vectors and computes aggregated values. Private messages are sent by the leader to each node, which performs necessary computations to decrypt shares. Once valid shares are received, the reconstructed message is multicast to all nodes. Additional steps ensure that all nodes eventually receive the required messages, even if the leader fails to send them initially.

Optimization and Evaluation

To optimize the protocol, techniques like pipelining and amortization are employed. The evaluation of SPURT includes throughput analysis and bandwidth comparison with other protocols like D-Rand and HydRand. The results show the effectiveness of SPURT in terms of communication and computation costs.

Future Developments

The SPURT team is actively working on improving the protocol. They are researching asynchronous data replication to remove the logarithmic factor from reliable broadcast and reduce the worst-case complexity. This development aims to further enhance the efficiency of the protocol.


The Celo Core Talk #1 provided valuable insights into the SPURT protocol and its potential applications. By leveraging distributed randomness beacon protocols like SPURT, the Celo community can enhance the security and performance of various processes, such as consensus algorithms and cryptographic operations. Stay tuned for more updates and developments from the SPURT team!