I am interested in the native support for secure communications for ethereum, which I discovered on reddit while trying to find support for my own project. I have a few questions before I give you all my Bitcoins.reddit.com/r/CryptoCurrency/comments/1uyvif/textcoin_development_thread_secure_communication/
I'm not sure I understand about contracts. Is it correct that they are added to the blockchain, and miners execute the code they contain if a transaction is sent to the contract address? It seems that for lots of contract programs, you would need to send data inputs in addition to the balance transferred and the sender address. Does this mean that it will be possible to send data as part of an transaction?
If so, it should be very simple to add the ability to send messages to other users as part of a transaction that is added to the blockchain. As the wallet addresses are not the entire public key, is there a list of addresses with their public keys in the blockchain? I think this would be required to encrypt with someone's private key so that only they can read a message that has been sent to them.
This would also make it possible to publish or securely store data in the blockchain.
I also have some questions about fees. They all scale with x, which depends on the difficulty, which appears to be the overall PoW difficulty, and depends only on the network hashrate. It seems that some of them should have additional modifiers based on their apparent rationale.
I'll look at each of them in turn here. Sorry if I'm missing the point, and please forgive my presumptuousness.TXFEE (100x) - fee for sending a transaction
This could be proportional to the amount of data added to the blockchain, to disincentive storage and network bloat.NEWCONTRACTFEE (100x) - fee for creating a new contract, not including the memory fee for each item in script code
This could also be proportional to the contract filesize. Modifying the contract should incur the same fee.STEPFEE (x) - fee for every computational step after than first sixteen in contract execution
No problems here.MEMORYFEE (100x) - fee for adding a new item to a contract's memory, including when first creating a contract. The memory fee is the only fee that is not paid to a miner, and is refunded when memory from a contract is removed.
Wouldn't it make sense to make the memory fee for a contract proportional to the amount of memory the contract takes up when loaded (+ a constant)?
Is memory allocated for all contracts for all miners, or just when the contract is activated by a transaction? In the latter case, I don't see why the fee should be refunded.DATAFEE (20x) - fee for accessing or setting a contract's memory from inside that contract
Is contract memory data stored on the blockchain in the miner's hard drive? If it's the local miner instance, they will be accessing their own memory, and I believe this will need to be done for every computational step from the contract code.EXTROFEE (40x) - fee for accessing memory from another contract inside a contract
Same as above. If this is looking up data from the blockchain, it shouldn't matter which contract is being read from, and I don't see why the fee should be higher.CRYPTOFEE (20x) - fee for using any of the cryptographic operations
No problems here.
I'm going to write about some ideas for contracts/templates I have now.
Exciting stuff, there's so much potential here.