Is there blockchain crypto-currency protocols which allows to implement a free of charge transaction between users?
Is it possible or not and why?
I think 'blockchain' is the non-fitting word here.
It is possible to create (and implement) free of charge systems. There are quite a few out already. But not with a blockchain.
Currencies which have such a 'feature' would be IOTA or ByteBall (where there are tx fees for byteball) for example. They both are utilizing DAG (Direct Acyclic Graph, just google it).
In IOTA's case you have to solve/confirm 2 other transactions to be able to push 1 TX. But im not completely sure on that.
Such a system is definetly possible, as already proven by IOTA. But IMO its not really necessary to have a system with zero fee. I'm fine with paying a small fee when sending stuff around.