I'm trying to understand how an external app interacts with an Ethereum client (e.g. client written in Go or C++) in terms of what an external app will be able to read and write from/to the Ethereum platform.
As I understand from reading the whitepaper, in terms of READING data, an external app using an Ethereum client can only read an externally-owned account's current ether balance. I assume that it can't read an account's storage as storage is only relevant to a contract account, an account type an external app can't interact with directly. And in terms of WRITING data, an external app can only send a transaction. Is this correct?
I'm also wondering if this should be made more clear in the whitepaper perhaps with a diagram.