as I imagine there are 2 options:
in pseudo language:


in the first case full nodes have to keep the data,
in the second case they have to keep only hashes,

or in other words the "level of immutability" of cryptograffiti.info and chainy.info is the same or not the same?

or I'm completely wrong with 1 and 2 and it works differently?


The value of the data field is definitely stored. Otherwise it would be impossible for nodes to replay/validate old transactions.


From the Yellow paper, the block header has a field named transactionsRoot.

transactionsRoot: The Keccak 256-bit hash of the root node of the trie structure populated with each transaction in the transactions list portion of the block; formally Ht.

The transaction data is indirectly part of the block header.

Repying to your question it is possible to create a cryptographic proof that certain data was included in a block. If you modify the data then the proof will flag it as invalid.

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