Holochain Forum

Is all the hApps source code exposed?

Hi All,
Great work, Amazing platform! My mind is blown!
Just wondering. Is all source code necessarily exposed and are all apps ‘copyable’ by others?
Is there a way to hide some of the code (for non-malicious purposes)?

  1. I guess I read somewhere that the WASM code that makes up a DNA is reversible anyway (though my guess is that it requires some highly sophisticated hex-reader of sorts)… Would love to hear someone clarify this…

  2. Yes, all (h)apps are ‘copyable’. You just need to change a UUID field in the DNA, and the DNA hash becomes entirely different (thanks to the way hashing works), and hence you create yourself an entirely new network space where your DNA lives, talks, and persists.

  3. That would destroy the whole point of going distributed with p2p! Anyway, for the sake of the question, I think it’s like asking if there’s a way to hide HTML code from the browser; what good is a browser if it can’t read, parse and execute the instructions that the HTML script tells it to? Heck, even .exe binaries can to some extent be understood (as said earlier, would require sophisticated tools to do so). If any code/program is to be run at some device, the device has to know what to do with it. That said, binaries are surely very compressed to the point that perfectly reversing them is impossible! However, I doubt that’s the case with WASM binaries; they can be decompiled to human-readable code (at least the debug information), sadly… [https://github.com/WebAssembly/design/issues/1293] I guess that answers the third question.

Does that mean storing some private-key, or some encryption seed within the very DNA? Don’t ever risk your dear life doing something like that! Even a kindergarten kid would be able to reverse that in no time!


Anyways, welcome to Holochain!

Hi.
Thank you very much for the thoughtful response!

I was just looking at one of the hApps. I think it was called b-hive and noticed that I was required to pay a membership fee to use it (plus it wasn’t available in my area).
Then I thought that this isn’t really a good fit for the holochain. Since anyone can just copy the app, open it up, and remove the subscription.

I’m all for open source, but I can’t help it fee a little bad for the developer who, even if everything works out, probably won’t be compensated for his work.

In my case, I have a prototype for a super-killer app which I believe would be a great fit for the holochain platform… but the implications of exposing all the source code at once might be too perplexing to consider ATM.

Do you think there’s any way that the chain could one day support hidden assets? (Something resembling what enigma / secret society is implementing on ETH?)

Was following The Enigma Project for quite a long time (the team was absolutely great) until I felt there was something inherently wrong about the monolithic Blockchain! Great guys, those were, indeed…

Anyways,

I don’t think so. It’s theoretically impossible, given the way Holochain works. (I’m not an official team-member, so take my opinions with a grain of salt)

However, this thread here explores an alterative:


Yeah, Holochain kinda requires rethinking your whole business-model entirely, and the developer almost always happens to find himself to be on the less negotiable side of things in the new methodology… Looks like the golden days of developers are gone now (thanks to the distributed computing paradigm shift)… So sad… [rest in peace, app-devs]

AS previously stated, the DNA is in WASM so it is exposed no matter what.
However you can still make a desktop happ with compiled (non-exposed) code that handles the UI and more advanced logic based on the DNA.

2 Likes

Thanks. That might work…
Can you maybe share some more details about how and where compiled code would fit into the grand scheme of things?