What Is Storj?

So essentially using good ole merkle trees. Vitalik provides a more mathematical and algorithmic breakdown of how it is done:

Many options, either on client, on chain, or off chain.

There was a bit of discussion on this forum about that exact blog post (erasure coding), you might want to check out: https://maidsafe.org/t/vitalik-praises-erasure-coding/1235

This has been my favorite conversation on Maidsafe.org yet.

2 Likes

Ok good then you have already taken a look at Vitalik’s solution then. So we have a good starting point. Essentially the verification nodes don’t have to have copy of the file or the challenges. We can deterministically generate them from a root seed, and well as their correct responses. We merge all this information to a merkle root.

So we only need to save the root seed, and the merkle root summary. We publish the tree minus the leaves. So using a seed a farmer can prove that challenge is in the merkle root.

I think there is a significantly better, safer and leak free solution. As different projects try different things to find the best then I suggest you follow this route and see what you find. I think I would caution you in many areas of potential failure here though, I won’t though as you may have thought a scheme through start to finish that works for you. I do not want to spoil any ideas with negative thoughts of failure, you need to try for yourself and figure it out.

If you read the blog post you will get an idea, but essentially all this merkle tree stuff is theoretically OK, for non mutating (or append only) data like the blockchain efforts to reduce the size there. If you look at the recompute when a part changes then it’s significant. If you then look at your data, it’s not static, you do not put up a file and leave it, some people will edit files.

Most people will want a directory structure (lots of fast changing files in the tree). I see issues and would love to see solutions to it. I do not for a minute suggest you cannot do this, but I do know there is a significant problem that does need addressed. If you can get it to work it will be a boost for all other projects. We have chosen a different path. Just think of very fast mutating data (directories and such) and then look at the merkle tree or blockchain logging etc. it has a lot of algorithms yet to find to make it work.

In your current scheme where you store location etc. inside a hash, then its not a hash. By definition it is non reversible, so there is a potential issue immediately, Never mind mutating data. I think some modelling would be a good idea, but in a fast prototyping language like python to test these assertions.

2 Likes

Cool…

It depends on what you’re investing in Filipe. I’m in it for the activism and getting these DEcentralization technologies into the hands of millions. SAFEcoin and SJCX is just icing on the cake. :sunny:

2 Likes