Funcionaría más o menos así:
Primero, preparás una cuenta de Bitcoin a la que, inicialmente, tienes acceso tú, y otra, a la que tendrá acceso plenamente tu hij@.
Segundo, le dejás en el dispositivo de tu hij@ un conjunto grande de transacciones ya firmadas, que requieren además la firma de un oráculo, pero que aún no se han mandado a la red Bitcoin, es decir, transacciones off-chain. Estas transacciones contendrían varias opciones para el valor en BTC/satoshi que se pasaría a la cuenta del hijo, según el valor BTC/USD en este momento, y un valor nLockTime que determina que no se pueden confirmar antes de una fecha X. El último paso permite crear varias fechas de entrega, por ejemplo una a los 14, una a los 16, una a los 18 años y una a los 21.
Ahora cada vez que tu hijo quiera mandar una transacción a la red Bitcoin, necesita primero contactarse con el oráculo, y éste solamente provee la firma digital para el valor que corresponde.
Ya que creo que suena complicado, un ejemplo:
- Quiero que mi hij@ reciba el equivalente de aproximadamente $1000 a los 14, 16 y 18 años, y todo el resto, a los 21.
- El Bitcoin oscilaría probablemente entre $100000 y $1000000.
- Se crean entonces las siguientes transacciones, para las tres primeras fechas (14, 16 y 18 años):
a) 0.01 BTC para un valor BTC/USD hasta 150000,
b) 0.005 BTC para un valor entre 150 y 250K,
c) 0.002 BTC para un valor entre 250K y 750K,
d) 0.001 BTC para un valor entre 750K y 1,5 millón,
e) 0.0005 BTC para un valor mayor a 1,5 millón.
Cada una de estas transacciones valdrán aproximadamente entre 500 y 2000 $, con la excepción de la primera y la última que pueden valer mucho más o mucho menos. Se pueden, obviamente, usar valores más exactos, por ejemplo entre $1000 y $100 millones, en total las transacciones no ocupan mucho espacio en disco.
Ahora las transacciones contienen además el requisito de una firma adicional, diferente para cada rango de valores, cuya clave pública ya debe ser conocida de antemano. Es decir, firma A para hasta 150000, firma B hasta 250K etc.
De esto se ocupa nuestro oráculo: por ejemplo, cuando el precio esté en 145000$, nos provee firma A, y cuando esté en 233K firma B., etcera.
Ahora para el último paso (para traspasar todo el resto del dinero a los 21), se puede crear una gran cantidad de transacciones off-chain con todos los valores posibles, dependiendo de las combinaciones entre las transacciones anteriores. Para este caso no hace falta el oráculo, ya que quiero que la máxima cantidad de BTC posible pase a la cartera de mi hij@, y por lo tanto puede intentar enviarlas todas a los mempools empezando con la de mayor valor (importante!), y la primera que sea válida, le transferirá el resto del dinero.
Esta última transacción también asegura que la fortuna pase a las arcas de mi hij@ si el oráculo llega a dejar de funcionar.
O bien se puede pasar a los 21 años la clave privada de la primera cuenta - pero entonces se pierde la ventaja clave de este contrato: que también funcione si me llego a morir antes de que termine. Este aspecto creo que sería la principal motivación para usar un contrato tan complicado en vez de simple transferir el dinero manualmente. Igual obviamente lo mejor sería que haya soluciones tecnológicas que escondan esta complejidad (algo que también me parece muy importante para la solución "herencia con locktime" que ya mencionó Silberman).