Paper 2020/504

Storing and Retrieving Secrets on a Blockchain

Vipul Goyal, Abhiram Kothapalli, Elisaweta Masserova, Bryan Parno, and Yifan Song


Multiple protocols implementing exciting cryptographic functionalities using blockchains such as time-lock encryption, one-time programs and fair multi-party computation assume the existence of a cryptographic primitive called extractable witness encryption. Unfortunately, there are no known efficient constructions (or even constructions based on any well studied assumptions) of extractable witness encryption. In this work, we propose a protocol that uses a blockchain itself to provide a functionality that is effectively the same as extractable witness encryption. By making small adjustments to the blockchain code, it is possible to easily implement applications that rely on extractable witness encryption and existed only as theoretical designs until now. There is also potential for new applications. As a key building block, our protocol uses a new and highly efficient batched dynamic proactive secret sharing scheme which may be of independent interest. We provide a proof-of-concept implementation of the extractable witness encryption construction and the underlying dynamic proactive secret sharing protocol.

Available format(s)
Publication info
Preprint. MINOR revision.
BlockchainExtractable Witness EncryptionDynamic Proactive Secret Sharing
Contact author(s)
goyal @ cs cmu edu
elisawem @ cs cmu edu
parno @ cmu edu
yifans2 @ andrew cmu edu
akothapa @ andrew cmu edu
2020-06-18: revised
2020-04-30: received
See all versions
Short URL
Creative Commons Attribution


      author = {Vipul Goyal and Abhiram Kothapalli and Elisaweta Masserova and Bryan Parno and Yifan Song},
      title = {Storing and Retrieving Secrets on a Blockchain},
      howpublished = {Cryptology ePrint Archive, Paper 2020/504},
      year = {2020},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.