I heard that it's possible to make a transaction off chain means it won't appear on the blockchain, it is possible? (simply) ?
It is, but it doesn't necessarily solve the anonymity problem, because the funds will appear on the blockchain eventually. Off-chain transactions work like this:
1) Alice lends some money to Bob. (Appears on the blockchain as an A1->B1 transaction.)
2) Clark lends some money to Bob. (Appears on the blockchain as a C1->B2 transaction.)
3) Clark owes some money to Alice. He tells Bob: "Please pay my debt to Alice from the money I gave you".
4) Bob tells Clark: "Sure thing, done, trust me". (Doesn't appear on the blockchain.)
5) Clark wants what is left of his money back and Bob pays him. (Appears on the blockchain as a B3->C2 transaction.)
6) Alice wants her money back and Bob pays her, plus the money Clark owes her. (Appears on the blockchaiin as a B4->A2 transaction.)
where C2 is C1 minus the money Clark owes to Alice and A2 is A1 plus the money Clark owes to Alice.
Another approach is to use a sidechain where one party provably "locks" a determined amount of BTC (provably owned by it) so that they cannot be spent and, based on that, creates an altcoin with its own blockchain which is pegged to this amount of BTC. At any time the operation can be reversed by "burning" the altcoins and unlocking the corresponding amount of BTC.
But this still doesn't solve the anonymity problem, because the altcoin's blockchain is also public, unless it is based on a completely different protocol, like Monero.
You might also look into "stealth addresses", although currently very few wallets support them.
Basically, the Bitcoin protocol suffers from what I once called "too anonymous yet not anonymous enough". All the BTC transactions are visible to everybody and are ultimately traceable, so it is not anonymous enough. But linking the transactions to a particular person is a nightmare and impossible most of the time (just look at the vain attempts to trace the Bitstamp hacker), so it is too anonymous. Basically, if you take a lot of precautions, you can't be traced - but it is too easy to slip and make a mistake. I really don't like this; I think a particular level of anonymity should be built into the protocol and not depend on whether the user is paying attention or not.