5

If I create a Distributed App, am I obligated to make that code open source? I fully appreciate open source is the preferred mode, just curious if I can keep my code proprietary. Does it matter if it is on a private or public blockchain?

5

You're not obligated to make your code open source. Publishing code is a good thing in regards to contribution to the Dapp community but keeping it private also has some advantages. For eg. The DAO attack might not have occurred if they hadn't published the source code.

Also, it doesn't matter if your app runs on a private/public blockchain. Through private blockchain, privacy is ensured to your data and you can have custom parameters, but this comes at a cost of trust and reliability i.e., you have to trust all the nodes in your private network.

  • 1
    But no one would have invested in the dao if the code was closed. Even if we let a bug live on the DAO, many people were able to check that it was coded to work "mainly" as advertised. – Nicolas Massart Jun 27 '16 at 16:38
  • True. But, is source code required to check/validate it's functionality? Can't this be accomplished through the published bytecode? It might be difficult, but is it impossible? I just want to know. – galahad Jun 27 '16 at 17:07
  • No, not impossible but hard to reach for a regular user. Reading source code is already reserved to developers, reading bytecode is reserved to hard core developers... however, without reading the code, you could create test cases and duplicate the contract on a local or testnet EVM and see how it runs given the inputs. But this wouldn't make you able to discover complex behaviors I think, especially those based on time or block number. – Nicolas Massart Jun 27 '16 at 17:11
  • You can have a look at this answer ethereum.stackexchange.com/a/238/405 – Nicolas Massart Jun 27 '16 at 22:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.