Edit sharedmaterial in runtime but without override the material asset

I understand the parameter renderer.material is just for that renderer and sharedMaterials for all the renderers that have this material.

I need to use sharedMaterials because I have a map with thousands of tiles and all of them have a border, which is a line of one same material. I want to fade in / fade out the material to ALL of them at the same time.

So I find obvious that I have to use sharedMaterials… BUT, why it has to modify and override the original material asset every time I run the game? Theres not a way to avoid this? I want to be able to modify them all at once but I dont want to modify the material itself.

Thanks a lot in advance!

Please, I tried my best to explain the problem, add right tags and choose a correct title for the question if someone sees something wrong on the way I asked let me know.
I’m new on this forum.
Thanks in advance.