Me gustaría saber si hay transacciones que solo se pueden realizar en algún momento predefinido. En principio, debería ser posible usar el parámetro nLockTime para esperar un número de bloque en particular:
https://en.bitcoin.it/wiki/Protocol_specification#tx
Esto podría ser útil en ciertos contratos, pero el reemplazo aún no es compatible:
¿Por qué no se admite el reemplazo de transacciones?
En cualquier caso, parece que aún puede, en principio, crear una transacción simple e irremplazable con un tiempo de espera.
¿Hay algún ejemplo de tal transacción en la cadena de bloques? De no ser así, ¿sería aceptado por el cliente estándar o sería necesario convencer a un minero para que lo incluyera en uno de sus bloques?
ACTUALIZACIÓN: abrió una discusión en https://bitcointalk.org/index.php?topic=131443.0 para profundizar más.
Resuelto. Puedes preparar transacciones con un tiempo de espera y el cliente estándar las aceptará.
Puede consultar algunos detalles en: https://bitcointalk.org/index.php?topic=131443.0
Esencialmente, pude crear una transacción sin procesar https://en.bitcoin.it/wiki/Raw_Transactions usando bitcoind. Luego, antes de firmar, podría reemplazar manualmente los bytes por el número de secuencia y el tiempo de bloqueo. Tuve un tiempo difícil con locktime. Primero establece la marca de tiempo de UNIX que desea, luego convierte a hexadecimal, invierte los bytes (little endian) y reemplaza los últimos bytes de la transacción hexadecimal. https://en.bitcoin.it/wiki/Protocol_specification#tx le dice cuáles son los bytes relevantes. Más tarde puede firmar la nueva transacción y enviarla.
He estado usando la guía en: https://people.xiph.org/~greg/signdemo.txt
Hice todo en la red de prueba. En mis primeros intentos no tuve cuidado con mi cambio y terminé gastando toda mi billetera en tarifas. Debes tener cuidado si intentas esto con bitcoins reales.
ESTÁ BIEN. Esto se puso interesante rápidamente. Construí un explorador de bloques pequeños y encontré 5 transacciones con valores altos de nLockTime en bloques:
http://blockexplorer.com/rawblock/000000000000036a546044e094db778e1c146f051cd5d0e52fb0e6c43e63ea8c
http://blockexplorer.com/rawblock/000000000000049bd7c8aebf91efc907c880a35c05b7861b4eab3fc09655bb05
http://blockexplorer.com/rawblock/00000000000005f229df518de50c53616f4f2f895deca078dce1d74d5b79e39c
http://blockexplorer.com/rawblock/000000000000026e8536f6ffe741feeb30d7123e6435b3ad7db141833969b5bf
http://blockexplorer.com/rawblock/00000000000001d985839442aac0179713fc7f6e5b109d524a272d3d55600d7a
Hay uno en cada bloque con valores de tiempo de bloqueo 198370, 199000, 199000, 207150 y 207167. Ninguno de ellos ha caducado todavía.
Responderé mi propia pregunta y comenzaré una publicación en bitcointalk para ver esto con más profundidad (cómo llegaron las transacciones allí, qué les sucede si los clientes cambian, etc.).
usuario8792