PurposeAlice wants to buy 30 LTC to Bob for 1BTC. They ask Trent to serve as Escrow, but do no want Trent can spend the coins
MethodologyStep 1Alice and Bob generate one LTC address and one BTC address. Only Alice and Bob know private keys:
(TxPubLTC, TxPrivLTC) and (TxPubBTC, TxPrivBTC)
Step 2Trent generate one LTC address and one BTC address. Only Trent knows private keys.
(TrentPubLTC, TrentPrivLTC) and (TrentPubBTC, TrentPrivBTC)
Step 3Trent calculates escrow addresses. Nobody knows private keys.
EscrowPubLTC = TxPubLTC +TrentPubLTC => EscrowPrivLTC = TxPrivLTC + TrentPrivLTC
EscrowPubBTC = TxPubBTC +TrentPubBTC => EscrowPrivBTC = TxPrivBTC + TrentPrivBTC
Step 4aAlice sends 1 BTC to EscrowPubBTC
Bob sends 30 LTC to EscrowPubLTC
Transaction done.
Trent sends TrentPrivLTC to Alice wich can calculate EscrowPrivLTC
Trent sends TrentPrivBTC to Bob wich can calculate EscrowPrivBTC
Step 4bTransaction canceled.
Trent sends TrentPrivLTC to Bob wich can calculate EscrowPrivLTC
Trent sends TrentPrivBTC to Alice wich can calculate EscrowPrivBTC
I started to develop an API in Python and a client in html/javascript. Both will be open source. I realy do not have much time and i can not predict when a v1 will be ready.
Thank you in advance for your comments, suggestions, criticisms and ideas. This idea has occurred to me while reading this post:
https://bitcointalksearch.org/topic/vanity-pool-vanity-address-generator-pool-84569first brick: https://github.com/JahPowerBit/CryptoAddress