Alice creates funding tx and doesnt broadcast this until she is satisfied that the refund tx (and phased tx) are all valid.
Bob changes the funding txid (even if it is not Bob's transaction). This can happen even after the transaction has been broadcast, but not included in a block. This problem doesn't make this kind of scheme unusable, but a little risky, similar to accepting a 0 confirmation payment.
I only watched a Youtube video about this some time ago, so I don't have all the technical details. There might even be a fix to this later this year.
Please tell me how Bob can change the funding txid?
If he has a node, and the transaction goes through that node and gets included in a block.
https://en.bitcoin.it/wiki/Transaction_Malleability
"Thus, while uncommon, it is possible for a node on the network to change a transaction you send in such a way that the hash is invalidated."
"it is not safe to accept a chain of unconfirmed transactions under any circumstance because the later transactions will depend on the hashes of the previous transactions"
That is why I wait for the funding transaction to be CONFIRMED, meaning Alice sent it to the network and it is in the blockchain unmolested. At this point I am not aware of any way for the txid of a confirmed transaction to be changed unless there is a blockchain reorg.
Bob doesnt do anything commital until the funding transaction is confirmed. Once it is confirmed, its txid cant change under any but some significant blockchain event and if bob worries about such things he can wait for 3 or 6 confirmations.
So I repeat, please find specific issues with my protocol:
1. Alice sends txid of funding tx to Bob
2. Bob signs a 2of2 multisig transaction timelocked into the future refunding Alice
3. Alice signs and broadcasts the funding tx into the blockchain after verifying refund tx is proper
4. Bob waits until it is CONFIRMED (and therefore not malleable anymore)
5. Bob spends the funds revealing the pubkey that allows Alice to approve the NXT phased tx
If all stops after 1, nothing happens
If all stops after 2, nothing happens
After 3:
Either Bob spends the funds or he doesnt. In the former case, we go to 5. If he doesnt then Alice waits until the timelock is over and submits the refund tx.
Please tell me specifically how the malleability of the fundingtx, refundtx or bobs spendtx can affect the protocol. It is no so complex a protocol, just 5 steps. Let us assume neither Alice nor Bob are mining BTC blocks and fiddling with the txids.
James