Zen + IPFS => ZenBox?


I want to ask you about an idea i had today. This idea is to create a full distributed and private file box using ZenCash and IPFS.

Ipfs is a protocol to share files in a p2p method. A file added on the network is directly adressable by everyone using the hash of the file. I like to compare IPFS as huge hashMap, accessible from every node of the network, where the key is the hash of a file and the value is the file content.

The idea is to use the memo field of z_transaction to store a hash of the file you want to add in the ZenBox.

The idea needs 2 keys to operate:

  • a shared key: you share this key to everyone you want to give access to the zenBox. You can simply keep it secret if you want a personal zenBox.
  • an owner key: to let the owner of the zenBox update the content.

The shared key is in fact the private key of the z_address.
The first transaction of this z_address is the public key of the owner key. ie: the owner starts the system by publishing the owner public key through a transaction to the z_adress.
As the owner, you can send a new transaction to the z_address with a memo field containing the IPFS hash of the file you want to add.
(the file is encrypted with the shared key before going to IPFS)
Also the owner adds a type (NEW, UPDATE, DELETE for instance). Finally the owner signs the memo field with the private key of the owner key.

Everyone could send a transaction to the z_address but only the signed ones (where the public key is stored in the first transaction) would really matter. The owner can alter the state of a file on its box using the different type (new, update, delete) and send other transactions.
People knowing the shared key could access the wallet, visualize the signed transaction (verification will be done using the public key on the first transaction). Then, they can download a file through IPFS and decipher it using the shared key

What do you think about it ?
thank you,


Interestingly enough, utilizing IPFS is already on the road map. Its called ZenPub, heres the cut out from the white paper. A lot of what you are talking about could be called protocol design which is on the road map for 2018. I’m not familiar with the members on the ZenPub project but there is a channel on the ZenCash Discord for it if you wanted to reach out to any developers.

Zen + IPFS => ZenPub

5.4 Zen Pub
Zen has the ability to publish documents to the IPFS or GNUnet. This is done by publishing
a IPFS or GNUnet address in the text field of a z address. The preferred document
publishing system at this time is GNUnet, because it provides the required infrastructure
for anonymous publishing and maintains an active database of documents. The system is
similarly extensible to IPFS or any other future distributing archival system. By creating
an anonymous messaging layer in conjunction with an anonymous publishing layer, ZenPub
allows for the creation of truly anonymous publications which can be rapidly distributed
to interested readers.


Thank you for your reply !
Indeed it’s like the ZenPub. When i heard about IPFS, the advantage to secretly store some hashes was obvious.
But maybe the part where i describe the idea to designate an owner could be used for applications similar to a file box than a publishing zone.