-snip-
Honestly the last justification I want to resort to is that my friend did something dishonest.
To be fair, if your friend is innocent, he will indeed see 0.004BTC incoming to his Electrum wallet from his perspective.
However, if the "
hacker" sent 0.004 to your friend to trick that he have received short amount.
That hacker should at least know your deal's situation because otherwise, no hacker would send some of his "
income" to the intended receiver.
For now, check your previous conversation to know who's to blame regarding the missing funds.
If the address
bc1qcj3f0kllhwctsvgud4k9zv5gxqf574fm2qlj5t was given by him, then it's his fault.
If he's given you the address
bc1qfg0a4ns3z4ud2d90t8hfgc2a2x6j65y7j3rnsa instead, it's your fault.
And I've also read the replies in the Reddit thread.
Take note that even if blockexplorers say that it's "
change address" it doesn't mean that it's true because the tag is only based from guesswork.
For example, in the txn between the two addresses in the OP, the sent amount is 0.004 which is a "
round amount" while the other received 0.01005506 which is an "
exact amount".
Most blockexplorers will tag the one that received the exact amount as the change because wallets usually send the change up to the last satoshi while the receiver usually receives round amount.