Question about mutable storage

It looks like every request to update the data does not cause block chain level transaction to take place as is mentioned in the BlockStack paper for the case of mutable storage. Since such a request is not written as a transaction on the block chain, so how is it possible for a third party to actually verify that the update indeed took place? My understanding was that every action results in a transaction on the block chain because the block chain represents the global state of the system.

Misunderstood your question for a bit. Of course you can sign the mutable stuff with your private key so that it’s verified to be yours.

However, your question is about knowing/verifying that an update took or has taken place. My understanding is that this isn’t a feature of the protocol. With mutable storage, you won’t know whether the mutable part has changed. You can only know that it was updated by the person controlling the ID.

If you need to have a immutable history, you should use immutable storage.

Technically a third party can check by polling the mutable storage points, and checking when it changes. But it’s not an inherit feature.

Did I misunderstand?

You understood it correctly. Thanks for the clarification!

@odinho Thanks for the clarification!

@muqeet As Odin said: [quote=“odinho, post:2, topic:704”]
With mutable storage, you won’t know whether the mutable part has changed. You can only know that it was updated by the person controlling the ID.
[/quote]

The state of mutable storage is not included in the global state that Blockstack tracks. This way you can write data to mutable storage endpoints without worrying about broadcasting state changes on the (low bandwidth and high latency) blockchain channel. Since data is signed by the owner of the domain name, you can still verify that you’re getting data from the current owner. You just don’t know if it’s the latest copy of the data or not but there are some work around to giving you information about revision history as well and we can discuss them separately.

For immutable storage, whenever data is updated the state changes are reported to the global system. You issue a new transaction on the underlying blockchain that updates the hash of the immutable data. The state of data in immutable storage is included in the global state that Blockstack tracks and you do have the guarantee that you’re viewing the latest copy of the data associated with a name. Writes to immutable storage are, of course, limited by the bandwidth/latency of the underlying blockchain.