2

I don't understand what it means when people saying things such as "(Ethereum) applications can interact with each other on the blockchain, so a library of useful functionality will gradually build up". The second part is fine, but how will applications interact with each other. Does that just mean features from created applications can be integrated into new applications?

Also, it is my understanding that the code behind a dapp is open source? So anyone can see and copy what I've spent my time producing?

Is there a way to conceal code, while not interfering with the other functions of Ethereum?

I understand that all apps created on Ethereum are connected to its blockchain, how will it manage thousands of connections?

Does the degree of security of the Ethereum blockchain increase with connections?

That is, is the blockchain reliant on connections to be secure?

I thought it's security was based on some sort of cryptographic innovation (inspired by Satoshi's bitcoin whitepaper).

If this is correct, then why would I even need to build the dapp on ethereum's blockchain.

If a customizable blockchain code was released for free online in a pre-existing language which can be run, then if I could just copy it and modify it according to my interests, would that not have the same effect as creating and running an app on ethereum's blockchain.

Are the details of contracts on the blockchain public? Or just the creation of the contract.

If so, is it possible to conceal the details of contracts?

Also is it possible to have a private blockchain, where a central entity controls a party's connection to the blockchain?

closed as too broad by Joris Bontje, Waqar Lim, eth, Tjaden Hess, Robert Cartaino Feb 3 '16 at 19:21

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    Welcome to the Stack Exchange. In the future, possibly try making your title more informative, and consider separating questions, in order to make it easier for others to find answers. – Tjaden Hess Feb 3 '16 at 0:24
  • Please ask one question per thread. – Waqar Lim Feb 3 '16 at 8:48
  • @TjadenHess Instead of "in the future", the author (or users of this site) should edit to make this question better. Titles sit very prominently on the front page. They should clearly state what the question is actually about. Thanks. – Robert Cartaino Feb 3 '16 at 19:17
  • I agree. I have voted to close this question as too broad and edited the title. – Tjaden Hess Feb 3 '16 at 19:18
  • TabulaSmaragdina You asked a lot of questions and it will be difficult to vet which answers properly address your issues or not. Try doing a bit of research and come back to us with any specific questions you may have. There may be come good questions here, but I think they may be a bit too broad, scattered and unfocused for this site; not at least in one post. Sorry about the confusion. – Robert Cartaino Feb 3 '16 at 19:20
9

I'll address your questions one by one:

  1. Just like developers on the regular internet can use other people's APIs and libraries to add functionality to their own apps, Ethereum Distributed Applications (DApps) can interact with each other via their own ABIs (Application Binary Interfaces).
    • eg. You can use RANDAO to generate random numbers, or Oraclize.it to interact with web APIs.
  2. Smart contracts are not necesaraliy open source, although many people choose to make them so. In order to copy your code, a person would have to be able to disassemble it from machine code, just like on a normal computer.
  3. The blockchain is a peer-to-peer system, so it can handle as many connections as needed. The security of the chain is determined by the amount of computing power utilized by miners, as in order to break the system, one needs 51% of the computing power.
    • Thus, you can make your own chain, but it will be far easier to attack, and users will need to download a separate client.
  4. All of the storage and computations of a smart contract are public, but there are techniques that allow secret data to be used, such as obfuscation and ZK-SNARKs
  5. It is possible to have a "permissioned" or "consortium" chain, but these are only useful if you can trust all or most of the users.
    • Eris allows you to build custom blockchains.
  • Regarding point three, does this mean that it would suffice to pay miners to boost the security of my personal chain? – TabulaSmaragdina Feb 3 '16 at 1:24
  • Yes, that's how mining in Ethereum works as well. Miners are rewarded with 5 ETH for each block they mine. The question is, why would miners want a token on your private chain? If you exchange the token for something valuable, like fiat, then yes. The key is that the cost of getting 1/2 the mining power on the network must be more than breaking the network would pay an attacker. – Tjaden Hess Feb 3 '16 at 1:28

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