In your response to this question, https://www.multichain.com/qa/9635/how-do-streams-work-under-the-hood, you stated that:
LevelDB stores indexes and transactions. But if the stream item data size is larger than 256 bytes, it is omitted from the LevelDB index, and replaced with a pointer to the data on disk (within the block). So large items are only stored once.
Does this mean that if someone were to find a way to edit data directly in levelDB, they could maliciously change the data that was stored in the database without having to change the blockchain, and mulitchain rpc calls would return this errant data?
For example, lets say I have a stream "myStream", and I publish to the key "foo" with the value "bar". An attacker decides the blockchain itself is too hard to attack, but they gain access to the levelDB instance, and replace the value for "foo" to be "attacker was here" instead of "bar". If I called "liststreamkeyitems foo". Would I get "bar", "attacker was here", or would there be some sort of error?
Thanks.