Paper 2015/482

How to build time-lock encryption

Jia Liu, Tibor Jager, Saqib A. Kakvi, and Bogdan Warinschi


Time-lock encryption is a method to encrypt a message such that it can only be decrypted after a certain deadline has passed. We propose a novel time-lock encryption scheme, whose main advantage over prior constructions is that even receivers with relatively weak computational resources should immediately be able to decrypt after the deadline, without any interaction with the sender, other receivers, or a trusted third party. We build our time-lock encryption on top of the new concept of computational reference clocks and an extractable witness encryption scheme. We explain how to construct a computational reference clock based on Bitcoin. We show how to achieve constant level of multilinearity for witness encryption by using SNARKs. We propose a new construction of a witness encryption scheme which is of independent interest: our scheme, based on Subset-Sum, achieves extractable security without relying on obfuscation. The scheme employs multilinear maps of arbitrary order and is independent of the implementations of multilinear maps.

Note: This is a merged version of 2015/478 and 2015/482

Available format(s)
Publication info
Published elsewhere. Designs, Codes and Cryptography
Time-lock encryptionTimed-release encryptionBitcoinWitness encryptionSNARKsTime-lock puzzlesTimed commitments
Contact author(s)
jia kitoun liu @ gmail com
2018-06-14: last of 3 revisions
2015-05-21: received
See all versions
Short URL
Creative Commons Attribution


      author = {Jia Liu and Tibor Jager and Saqib A.  Kakvi and Bogdan Warinschi},
      title = {How to build time-lock encryption},
      howpublished = {Cryptology ePrint Archive, Paper 2015/482},
      year = {2015},
      doi = {10.1007/s10623-018-0461-x},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.