So do you make these transactions completely incompatible with the current bitcoin software or can the current software use date information within a condition using the bitcoin script? In other words you can program a transaction to be acceptable by the current bitcoin software with the date condition?
I thought the bitcoin scripting thing was more primitive but I don't actually understand it, so please put me on the right track!
But people don't want to wait a year and the bitcoins have to be resent to an address using a new secondary key, right? So each year the coins will have to go through the transaction process since the previous transaction no longer has the valid third party key component?
Hold on, how are the bitcoins that enter the joint wallet described onh te block chain so that clients understand that the verification is required by both parties, otherwise the consumers could send coinds with no third part signage and repeat it with the third party signage. The bitcoin client needs to know that the bitcoins require double signing (It doesn't technically it just needs to know the result of the double signing produces the right one,right?). How does the date thing come into this?
Of course the transactions should be recognized by the Bitcoin network, otherwise there's no point. I'm not completely sure of the existing and planned possibilities, but I think referring to time (or at least block #) being at least some value is a planned feature which opens a whole range of applications.
When everything is normal coins are spent by signing a transaction with both the server's and the client's key. Only in case the service provider goes belly up clients need to wait for its key to expire, and instead of "year" it can be any other time. But clients will need to make sure to extend the expiration (by moving to a new address with a different target time) when the target time is reached. The coins are still (relatively) safe even if the server's key expires, it only means transactions aren't instantly verified.
Every transaction output specifies a script to be executed in order to validate spending this output. Currently everyone just uses the script "supply a signature with a private key whose public key's hash it address X" - this is what the "OP_DUP OP_HASH160 2799cee55ec84f57ee76b27f4e0aa9e64cad533b OP_EQUALVERIFY OP_CHECKSIG" bit you can see in blockexplorer means. But they could just as easily specify "supply two signatures, one for address X and one for address Y". With OP_EVAL that's even simpler - everyone will just use the script "supply a script whose hash is address X, and data which makes it return true", and then when spending the coins the script that requires two signatures will be specified (though it has to be known a priori to come up with the address). With the date the supplied script will be "supply two signatures, or just one signature if time is > October 2012".