use Multisignature Application in 1-of-2 method..
This is just as good as giving the other person your private key right now.
Well, look at the responsibility of involved people in both solutions. in multisignature you could engage your attorney in the process and he/she never could spend your money with his/her secondary account without your permission on contract. if you give the other person your only private key, you will lose the advantages of non-repudiation that comes with asymmetric encryption.
I think you are thinking of 2-of-2 multisig, not 1-of-2.
1-of-2 means that either of the keys can unlock the funds.
1-of-n multisig transactions are equivalent to sharing your private key with n people, as anyone can spend it.
2-of-2 multisig wouldn't work here though, unless you want to not be able to spend your coins without your attorney's permission.
There are many ways if he rely on trusted people or 3rd party which already mentioned by others.
Otherwise, the closest things that i could think is using P2SH transaction/bitcoin script where the receiver only can claim the Bitcoin after
n days/blocks. To prevent claim abuse while he's still alive, he could remake the script with different timelock before current timelock is "expired".
The rough code should look like this (i'm still learning bitcoin script, so most likely it's inaccurate) :
OP_IF
OP_CHECKSIG
OP_ELSE
<90 days> OP_CSV OP_CHECKSIG
OP_ENDIF
Or you could just create the transaction with timelock as said above and it won't be included in the block until that time is up.
Creating non-standard transactions is risky, as they are not always accepted by miners.
If you have a standard solution and timelock is as simple as it gets, since every transaction already contains this value, then it is probably better to use it that way.
That's it. Now he only needs to create a "switch" to spend his coins to the address A whenever he dies. A button on his phone when he's on his deathbed, or something.
I don't know why you are insisting for there to be some live program running when there is such a simple solution already stated with timelocks. There is absolutely no need to create any new programs or servers for this.
Bitcoin was already designed from the beginning supporting these things.
Timelock value exist in every transaction, they are just set to 0 by default in most wallets.