Con bitcoind se puede hacer, sin que se necesite Armory, con un comando se crea la dirección a partir de las llaves públicas de los escrows, cuando alguien gane el premio con otro comando alguien crea la transacción del premio, y con otro comando cada escrow la firma hasta completar las 3 firmas necesarias, y con otro comando alguien la envía a la red. En cuanto a los participantes no tienen que hacer nada raro, se deposita como en cualquier otra dirección Bitcoin, todo el trabajo "raro" lo hacen los 5 escrows.
Algo así (me corrigen si me equivoco en algo por favor):
Un escrow usa la dirección de cada escrow para crear la dirección multifirma (3 firmas de 5):
addmultisigaddress 3 '["1escrow1blablablablablablabla","1escrow2blablablablablablabla","1escrow3blablablablablablabla","1escrow4blablablablablablabla","1escrow5blablablablablablabla"]'
resultado: 3multifirmablablablablablablabla
Los demás escrows (o cualquier usuario) ejecutan también el comando para comprobar que ese es el resultado correcto.
Cuando el sorteo tenga un ganador, uno de los escrow (digamos "escrow1") recolecta las id de las transacciones de depósito y crea una transacción que transfiera el premio a la dirección del ganador:
createrawtransaction '[{"txid":"txiddeposito1blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito2blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito3blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito4blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito5blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito6blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito7blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito8blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito9blablablablablablablablablablablablablablablablablabla","vout":0}, {"txid":"txiddeposito10blablablablablablablablablablablablablablablablablabl","vout":0}]' '{"1ganadorblablablablablablabla":0.9995}'
resultado: resultado1rawblablablablablablablablablablablablablablablablablablablablablabla
blablablablablablablablablablablablablablablablablablablablablablablablablablab
lablablablablablablablabla
escrow1 la firma:
signrawtransaction resultado1rawblablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla
resultado: resultado1firmadoblablablablablablablablablablablablablablablablablablablablabl
ablablablablablablablablablablablablablablablablablablablablablablablablablabla
blablablablablablablablablablablablablablablablablablablablablablablablablablab
lablabla
escrow1 publica el resultado en el foro.
Entonces escrow2 comprueba que la transacción esté bien:
decoderawtransaction resultado1firmadoblablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla
El resultado es el JSON de la transacción, escrow2 comprueba que todo esté bien (que la dirección de destino sea la del ganador, que las txid sean todos los depósitos, y que el valor sea la suma correcta de todos los depósitos menos la comisión para mineros), si todo está bien entonces la firma:
signrawtransaction resultado1firmadoblablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla
resultado: resultado2firmadoblablablablablablablablablablablablablablablablablablablablabl
ablablablablablablablablablablablablablablablablablablablablablablablablablabla
blablablablablablablablablablablablablablablablablablablablablablablablablablab
lablabla
escrow2 publica el resultado en el foro.
escrow3 comprueba que la transacción esté bien:
decoderawtransaction resultado2firmadoblablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla
Entonces la firma:
signrawtransaction resultado2firmadoblablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla
resultado: resultado3firmadoblablablablablablablablablablablablablablablablablablablablabl
ablablablablablablablablablablablablablablablablablablablablablablablablablabla
blablablablablablablablablablablablablablablablablablablablablablablablablablab
lablabla
escrow3 publica el resultado en el foro.
Con las tres firmas necesarias, alguien envía la transacción a la red:
sendrawtransaction resultado3firmadoblablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla
Sería bueno hacer una prueba con algunos céntimos, o en testnet, para no pecar de novatos...