Is there any protection against receiver's address masquerading attack? How does one verify that the address of, say “Foodmart”, which the sales person is telling me to send the payment to is actually the address of “Foodmart” not that of that salesman himself? To be specific, how does the blockchain prevent address masquerading attacks?
Bitcoin provides no protection against such attacks.  It is up to each user to verify that an address belongs to the person they really want to send money to.