Paper 2022/1220

Permissionless Clock Synchronization with Public Setup

Juan Garay, Texas A&M University
Aggelos Kiayias, University of Edinburgh and IOHK
Yu Shen, University of Edinburgh

The permissionless clock synchronization problem asks how it is possible for a population of parties to maintain a system-wide synchronized clock, while their participation rate fluctuates --- possibly very widely --- over time. The underlying assumption is that parties experience the passage of time with roughly the same speed, but however they may disengage and engage with the protocol following arbitrary (and even chosen adversarially) participation patterns. This (classical) problem has received renewed attention due to the advent of blockchain protocols, and recently it has been solved in the setting of proof of stake, i.e., when parties are assumed to have access to a trusted PKI setup [Badertscher et al., Eurocrypt ’21]. In this work, we present the first proof-of-work (PoW)-based permissionless clock synchronization protocol. Our construction assumes a public setup (e.g., a CRS) and relies on an honest majority of computational power that, for the first time, is described in a fine-grain timing model that does not utilize a global clock that exports the current time to all parties. As a secondary result of independent interest, our protocol gives rise to the first PoW-based ledger consensus protocol that does not rely on an external clock for the time-stamping of transactions and adjustment of the PoW difficulty.

Available format(s)
Cryptographic protocols
Publication info
Blockchain Clock Synchronization
Contact author(s)
garay @ cse tamu edu
aggelos kiayias @ ed ac uk
yu shen @ ed ac uk
2022-09-26: revised
2022-09-14: received
See all versions
Short URL
Creative Commons Attribution


      author = {Juan Garay and Aggelos Kiayias and Yu Shen},
      title = {Permissionless Clock Synchronization with Public Setup},
      howpublished = {Cryptology ePrint Archive, Paper 2022/1220},
      year = {2022},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.