Explainations about chaining of transactions I'm reading through Satoshi's paper, and in Section 2. Transactions, he starts by saying:
We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership.
Then there is a good diagram that shows this in the paper

So, effectively if BTC0 is the previous transaction, the new transaction is:

Kp(Owner1)
hash := H(BTC0,Kp(Owner1))
S(hash,Ks(Owner0))

where

Kp(Owner1) is the public key fo the recipient (Owner1)

hash := H(BTC0,Kp(Owner1)) is the Hash of the prev transaction together with the pub key of the recipient


and

S(hash,Ks(Owner0)) is the previously computed hash, signed with the private key sender (Owner0)

I have a  couple of questions:
Here I've indicated the 'previous transaction' is BTC0- is this the previous transaction for that Coin, or the previous transaction on the chain? Danielle Drainville suggests it is &quot;the previous transaction in which this coin was used is hashed together with the recipient's public key&quot; in her paper (An Analysis of the Bitcoin Electronic Cash System)
If so, there must be some kind of search for the previous transaction first?
And, if I understand correctly, there are no 'Coins' in your wallet...the wallet stores the Block Chain, that is, the Transactions log, and your pub/pri key(s). When you're wallet displays to you, the number of bitcoins 'in' it, its actually the result of a search of the Block Chain?
I don't fully understand your question, first a reaction on your assumption.

It is indeed so that your wallet does not hold actual coins. However, consider the distinction between the terms wallet and client. This is not an official distinction, but it is useful to understand the two different principles.

A Bitcoin client, stores the complete block chain. When you request information about an address or a transaction, it can inspect the block chain and retrieve the requested information. So indeed balances are retrieves by a query to the block chain. Most clients keep an index of all transaction of your addresses so that these queries can be achieved very efficiently.

A wallet often refers to the set of private keys of your own addresses. For the default Bitcoin client, this is the wallet.dat file. It contains a list of the addresses you own and the corresponding private keys you need to make transactions with your addresses.

However the term wallet is also often used for a Bitcoin client, f.e. on the Bitcoin homepage. A caveat here is that some of those wallet indeed do not store the complete block chain but have other techniques to implicitly query the block chain in another way. This sort of clients are called lightweight clients.



Now, what a transaction is, in principle, is just a handing over the control over a certain value in the block chain to another address.

For each address there are zero or more transactions that have the address as output. When you did not send them over to someone else, the are called unspent bitcoins or unspent transaction outputs. The sum of those make up the balance of the address.

When you want to send these coins, or a part of them (note that there is no notion of a coin, but just some value of currency that you send which can be any decimal number up to satoshi precision), you make a transaction in which you claim some of the unspent outputs for your address (as inputs for your transaction) and distribute the value they have over other addresses (which are the outputs for your transaction). So the unspent outputs for an address can be used as inputs for a transaction.

When you sign the transaction and it gets verified in a block, the unspent outputs are now spent and new unspent outputs have been assigned to the addresses you specified in the transaction outputs for the transaction.