I'm trying to go through the whitepaper to get a better understanding of bitcoin but I don't understand the block and subsequent blockchain model to create a transaction. The problems that bitcoin seems like it is trying to address is verifying if person A actually has the money to send to person B, and ensuring person B can't alter the amount person A sends.
I get that if A is trying to send money to B, A should sign the transaction with his private key as B wants to ensure A is who is sending the money. What I don't understand is the need for the hashing of B's public key and the previous transaction, and what exactly is being verified/signed.
I read a bit about the problem of "double-spending" but I don't think I understand it entirely because I don't see how the above solves it. Double-spending as I understand it is A giving money to one person, then making the transaction seem like it didn't happen or is invalid in order to spend the same money to someone else.
If transaction i - 1 is being hashed in transaction i, that means only transaction i - 1 is known. It says nothing about transaction i - 2, where the same money that is being spent in transaction i could have already been spent. It doesn't seem like transaction i - 1 or i keeps a list of all previous transactions, so there's no way of verifying where the buyer in i actually has the money.
What is the purpose of hashing the recipients public key and the previous transaction, and what is being verified in the picture above