Time Release Secrets
Everything works on trust. To share or preserve a secret[1], one must trust someone or something. Ever thought of sharing or preserving a secret of yours without any trust? Is it possible for a technology service to preserves the secrets and reveal on time? This article provides insights of achieving a trustless[2] system(Zero Trust) to preserve secret until a defined time period with existing technologies.
Background
This article does not talk about creating a new protocol instead tries to discuss the possibility of creating a distributed application (DApp) to create a trustless (zero trust) system or service to preserve a secret for a defined period using existing technologies.
The purpose of this article is to discuss the possibility of building a trustless service to store/preserve a secret until a defined period. So, is it possible to build one? Considering an example: A person P who want to preserve a secret S in a trustless system TS for a defined time T. To achieve this, the system TS shall adhere to following principles, such as:
1. It must be decentralized system/service. Centralized system cannot be trustless.
2. Ensure the key to disclose secret is with owner but passed to trustless service in his/her absence. Legally termed as durable power of attorney.
3. Consensus mechanism to ensure the secret is revealed on time.
4. System/Service maintains anonymity of data (which data belongs to whom).
5. Always encrypted to preserve the confidentiality of the secret.
6. Distributed to preserve the integrity and availability of secret.
Based on the above principles, Let’s see if the trustless system could be achieved via current blockchain[3] and smart Contract[4] technologies. Let’s define the trustless service as multiple sub components to see if it can be achieved using existing blockchain technologies.
TS[1] — A service at the person P to encrypt the secret S using symmetric algorithm. This service is located at the person P. The output of the TS[1] forms to be encrypted secret EK(S) denoted by C, where K is the key.
TS[2] — Decentralized blockchain storage platform. There are many decentralized storage blockchain platforms. The person P can store the encrypted secret C and key K in such platforms not necessarily in single but different platforms for different data to prevent compromises.
TS[3] — After above mentioned 2 phases TS[1] & TS[2], person P will have 2 values i.e. references of files which are stored in blockchain. The person P shall prepare a smart contract with 2 references of C, K and define the timelines to release/send secrets to particular service such as TS[4].
TS[4] — The platform which reveals the secret S without the presence of person P.
TS = TS[1] + TS[2] + TS[3] + TS[4]
Challenges
TS[1]: This can be achieved and it is not challenging.
TS[2]: This can be achieved as there are many blockchain or IPSF storage platforms to store encrypted data.
TS[3]: Smart contract is a code written on the blockchain and runs based on an event. But the drawback here is the code which is written on blockchain is visible to world. This would violate the principle of confidentiality. Any person having access to blockchain can read file references and decrypt the Secret. So, here the requirement would be to have:
1. Encrypted smart contract platform. This platform will decrypt itself upon an event and send the secret to concerned parties. (or)
2. Encrypted smart contract platform or redundant digital vault like smart contract system which grants access to its encrypted content C and key K after a time period T to the system TS[4] by a predefined entity only such as smart contract itself.
Another challenge in system TS[3] is defining a time period T. Achieving the time period T is also challenging. One of the solutions could be based on block time computational. Predicting the time required to construct a future block number and which could only be performed after a time T. Solving a computational puzzle based on existing blockchain platforms such as Bitcoin[5] or Ethereum[6]. However, risks pertaining to tampering the block time computation needs to be addressed.
Existing platforms to Achieve
For storage TS[2], existing or work in progress(WIP) blockchain platforms like Storj can be used. TS[3] is a complicated platform, based on the research, below are the platforms that are identified which can do the job partially but not completely:
· Interstellar (WIP) — Encrypted smart contract technology such as Interstellar with the concept of Zero Knowledge Virtual Machine (ZkVM)
· Lightstreams — Lightstreams blockchain platform which offers kind of digital vault solution but this does not offer redundancy.
Can blockchain community can throw some light on achieving the TS[3] system here? Requesting for comments from community.
References
· [1] — https://www.merriam-webster.com/dictionary/secret
· [2] — https://medium.com/@preethikasireddy/eli5-what-do-we-mean-by-blockchains-are-trustless-aa420635d5f6
· [3] — https://blockgeeks.com/guides/what-is-blockchain-technology/
· [5] — https://bitcoin.org/en/
· [6] — https://www.ethereum.org/
· https://eprint.iacr.org/2018/1166.pdf
· https://interstellar.com/protocol