Es mi entendimiento de locktime correcta?

He estado tratando de entender locktimes y los números de secuencia. Estoy poco a poco la construcción de una imagen en mi cabeza basadas en código, el código de comentarios y la información en la web. En vez de pedir un montón de preguntas, voy a describir mi comprensión de cómo locktime y los números de secuencia de trabajo. Por favor, ¿podría alguien decirme si es correcto, y si no, entonces por favor especificar exactamente qué bits son incorrectos, el uso de ejemplos o me apunta al código fuente.

Criterios de minería de datos

Todas las transacciones entradas tienen su propio número de secuencia, y hay una locktime para toda la transacción. Una transacción puede ser hecho "final" por:

  • ajuste de la locktime a 0, o
  • ajuste de la locktime a ser menor que la altura de bloque, o
  • ajuste de la locktime a ser menos de la hora actual (pero todavía por encima de un umbral, de modo que no es confundido por un bloque de altura), o
  • configuración de TODOS los txin números de secuencia a 0xffffffff.

Cualquiera de estas condiciones es suficiente para que una transacción se considera "definitiva". Si todas las condiciones de falla, la transacción no es "definitiva". Sólo el "final" de las transacciones de obtener extrae en bloques, no a la final de transacciones de no llegar nunca a la blockchain. Tenga en cuenta que la única manera de que una transacción en la blockchain puede contener un locktime con un futuro la marca de tiempo o futuro número de bloque es si todos los números de secuencia se establece en 0xffffffff.

El bloqueo de los fondos

Decir que en la actualidad, la altura de bloque es 377199. Si quería enviar dinero a alguien, pero sólo ellos han de recibir en algún momento en el futuro, entonces yo podría hacer una transacción, su dirección, establecer el locktime a 400000 y el conjunto de todos los números de secuencia de la transacción a 0xffffffff. Esta transacción será obtener extraen en bloque 377200 o tal vez 377201. También sería necesaria la minería de tarifa. Esta tarifa será parte de la coinbase fondos y se deduce inmediatamente de la transacción anterior está gastado (es decir. el minero no tiene que esperar hasta que el locktime para poner los fondos en la coinbase).

Todos txin scripts en mi locktime=400000 transacción con éxito debe validar con su correspondiente txout secuencias de comandos en la transacción(s) que se gasta. Una vez que el locktime=400000 transacción ha sido extraído en un bloque (dicen bloque=377200), a continuación, un bloque construido en la parte superior del bloque=377200 no doble pasar la txouts que mi locktime=400000 transacción ya se ha gastado. Tan pronto como el locktime=400000 transacción se extrae en un bloque esto hace que el UTXOs que hace referencia a ser retirado inmediatamente de la piscina, incluso a pesar de que los fondos están encerrados por un período hasta el locktime es alcanzado.

Gasto de los fondos bloqueados

No todas las transacciones de las salidas que se han extraído en un bloque pueden ser utilizados inmediatamente, o incluso en absoluto. Para una cosa, si Una transacción es gastado por transacción B, entonces la txout secuencias de comandos en la transacción B son no verificado para la sintaxis de los mineros (aunque la txout scripts son verificados). Si el txout secuencias de comandos en B son tonterías, a continuación, los fondos que directa será para siempre unspendable.

Pero en caso de que el scriptsig y scriptpubkey hacer validar, los mineros sólo permitirá una transacción en la blockchain si satisface los locktime criterios. Supongamos que alguien desea pasar la locktime=400000 los fondos de la transacción (ya se extraen en bloque) - se construiría una transacción de su propio que utiliza la txouts de la locktime=400000 transacción, y la emisión a la red. Los mineros que iba a realizar todas las pruebas estándar en esta nueva transacción, y las comprobaciones específicas relativas a la locktime sería:

  • que la transacción es "final", como se ha discutido antes
  • que este último bloque se va a crear es 400000 o mayor

Si este último bloque no es 400000, a continuación, la transacción no puede ser extraído en el bloque. Y de hecho, si un pícaro minero no ir y poner los gastos de transacción en un bloque antes de que el bloque de 400000 luego de este bloque serán rechazados por otros mineros en la red para que contenga una transacción que no se valida.

Dicen que la persona que lleva el locktime=400000 los fondos de la transacción quiere que esto suceda tan pronto como bloque de 400000 es alcanzado. Si en la difusión de sus gastos de transacción demasiado temprano (por ejemplo, 377199), entonces puede conseguir rechazado como los mineros descartar la transacción para no validar. Si los mineros no son inteligentes (probablemente lo son, pero no he mirado el código para esto), entonces se verá que la transacción se convierten en disponibles en una fecha en el futuro, y se aferra a ella, así que se puede extraer en bloque 400000 y obtener las tarifas antes de todos los demás. Sin embargo, si la transacción está demasiado lejos en el futuro, los mineros pueden ejecutar fuera de la memoria para almacenar esta transacción y deséchelo. La persona que emite la transacción puede comprobar su propagación en blockchain.info y re-emisión antes de bloque de 400000 si la propagación es demasiado baja.

OP_CHECKLOCKTIMEVERIFY

Este código de operación puede ser utilizado en cualquiera de scriptpubkey o scriptsig (o ambos a la vez). Básicamente compara un elemento de la pila (sólo en el extremo derecho de 5 bytes en minimizadas formato) con la transacción locktime. Si la transacción locktime (marca de tiempo del momento por encima del umbral o número de bloque cuando por debajo del umbral) es mayor que el de la pila de tema, este opcode validará correctamente. Pero si la transacción locktime todavía no ha alcanzado la pila elemento de valor, a continuación, el código de operación fallará para validar y mineros no incluir esta operación en un bloque.

En el caso de que una secuencia de comandos contiene OP_CHECKLOCKTIMEVERIFY pero el número de secuencia para que la secuencia de comandos del txin es 0xffffff , entonces esto significa que el locktime está siendo ignorada. Por lo tanto OP_CHECKLOCKTIMEVERIFY fallará y la transacción no se extrae en un bloque.

OP_CHECKLOCKTIMEVERIFY también puede ser utilizado para asegurarse de que los fondos no se puede acceder hasta una fecha futura o bloque. Por ejemplo, para enviar fondos a la dirección de xyz, sino hacerlos accesibles en el bloque de 400000 o más tarde, las siguientes txout secuencia de comandos se puede utilizar:

OP_DUP OP_HASH160 OP_PUSHDATA xyz OP_EQUALVERIFY OP_CHECKSIG OP_PUSHDATA 400000 OP_CHECKLOCKTIMEVERIFY

Luego de pasar esta transacción, alguien tendrá que enviar una transacción que contiene locktime 400000 o mayor (pero todavía por debajo del umbral).

+166
Conor Henry 18 may. 2010 15:27:53
20 respuestas

Desde la salida se puede pasar sólo una vez, estoy confundido por las transacciones que contienen varios destinatarios. Por ejemplo, si Alice transferencias 5 BTC a Bob y 5 BTC a David en las mismas transacciones. En el futuro, Bob se refiere a la Alice de la transacción, también David se puede referir a la misma transacción. Entiendo que las salidas están numerados en el Alice de la transacción a Bob y Eva. Por lo tanto el número de salida y el id de transacción Tx id única que determina si es el doble de pasar ocurriendo o no.

Estoy en lo cierto? Es el UTXO asociados con salida y Tx id?

+933
vilaboa 03 февр. '09 в 4:24

Bitcoin-Qt tiene una característica llamada "keypool." Pre-genera 100 claves y los incluye en todas sus copias de seguridad. De esta manera, si usted hace una copia de seguridad, se incluyen también las teclas que se van a utilizar en el futuro.

En general, el envío de un pago consume una dirección, y recibir un pago consume una dirección.

Si usted hace una transacción de 1 mes, 100 teclas tendrá una duración de 8 años.

Sin embargo, si cambia su contraseña de la cartera, usted debe hacer una copia de seguridad nueva.

+927
jasonlfunk 21 feb. 2019 18:14:24

El problema es que usted tiene un número de cuenta distinto porque usted dijo que usted está usando direcciones comienza con 1 (estándar) para el Propósito de ruta de acceso es de 44 y Bitcoins de manera moneda ruta de acceso es correcta (0)

Usted tiene que comprobar que está utilizando el mismo índice de la cuenta mientras que la importación de la semilla.

En su semilla camino de tratar de aumentar el número de cuenta por uno y la importación de la semilla hasta que usted consiga sus monedas.

m/44'/0'/0'/0
m/44'/0'/1'/0
+919
Akshay Kulkarni 3 ago. 2015 20:26:53

Divulgación: soy un desarrollador senior en Factom.

Lo que está describiendo es esencialmente BitPay del ChainDB - criptográfico de la cadena de registros anclado en el blockchain de Bitcoin. Puesto que los sistemas como Factom o ChainDB ideal sería que sólo incluye un anclaje de transacciones por bloque en Bitcoin, su límite superior en cuanto a cuántas cadenas pueden co-existir es el límite de transacciones en el blockchain de Bitcoin.

Sin embargo, ya que estos sistemas deben proporcionar prueba criptográfica de los datos incluidos en los mismos, también se incluye en el blockchain de Bitcoin, no hay nada que te impida la creación de sub-cadenas ancladas en Factom o de otras cadenas, que son a su vez anclado en Bitcoin. La prueba criptográfica debe trabajar en la sub-cadenas, sub-sub-cadenas y así ad infinitum (a pesar de las pruebas sería conseguir que cada vez más tiempo). Esto significa que, en teoría, no hay límite en cuanto a cómo muchas de las cadenas que puede existir, siempre que usted esté de acuerdo con algunas de ellas pasaron a un nivel inferior.

+867
Stavropoulos Peggy 22 ene. 2013 20:05:04

No utilice un sha512 brainwallet generador como bitaddress.org para generar su brainwallet. Muchas personas han perdido su dinero por hacerlo.

En lugar de utilizar un seguro más salado scrypt como warpwallet.

Para Etereum, he hecho una warpwallet implementación de aquí, que está disponible como una versión de la web y como ejecutable. Para mayor seguridad, es necesario generar las direcciones sin conexión.

+803
Randy G Leak 30 ago. 2015 5:28:51

He estado tratando de enviar algunos de bitcoin de mi blockchain.info cuenta, pero se le pidió que diera mi clave privada ¿cómo puedo encontrar mi clave privada en el monedero de blockchain?

+762
Lina Sliva 8 ago. 2013 20:15:18

Un total de nodos es una copia completa de la blockchain y es capaz de verificar todas las transacciones desde el principio. Esto requiere alrededor de 140 gb de espacio en el disco (en la actualidad).

Una poda nodo es uno de los que se ha verificado todas las transacciones antes; sin embargo, se ha eliminado todos los bloques por debajo de un determinado requisito de espacio, pero todavía tiene una copia de la UXTO conjunto. Es casi inútil para la comunidad, pero requiere menos recursos del equipo (puede ser en virtud de 1GB de espacio en disco).

Un minero en el otro lado crea bloques en el blockchain que los nodos de mantener. Básicamente, el minero trabaja en las transacciones por venir para arriba con la mejor combinación (hash) para almacenar la información. Los mineros gastar alrededor de 10 minutos trabajando en un problema, pero los nodos de mantener ese resultado para siempre después de que en la base de datos y verificar con los demás. Los mineros no necesita saber antes de bloques (a excepción de la anterior) con muy pocas excepciones.

Así, un minero es completamente diferente de un nodo. No es la comparación de los mismos como cosas. Completa vs Luz es la comparación de dos cosas como frutas (manzana y naranja). Minero vs FullNode es la comparación de dos cosas completamente diferentes (apple y valla).

+567
Shahroz King 28 feb. 2019 7:11:56

el riesgo es, el Puerto 8333 se abre y permanece abierta. Es como una puerta Trasera abierta. Una Mala gguy podría simplemente revise todos los nodos que se puede ver en la earn.com Página ( y no son TODOS los Nodos en la lista) cómo proteger su Red. Digo, seguro de su casa de la red con una contraseña fuerte, no permiten a los huéspedes de entrada y si no uso la red de su casa simplemente cambiar de dont conjunto de Carpetas o Archivos de forma gratuita en la red, especialmente sensible. Y no copia de seguridad de su Cartera en el mismo equipo que ejecuta el nodo de, nunca, nunca.

+417
Shiv 29 nov. 2011 21:11:46

En Etereum, el gas es una medida de esfuerzo computacional. Para cada operación, una cantidad fija de gas es asignado (por ejemplo, la adición de dos números de costos 3 de gas, el cálculo del hash de los costos de de los 30 gas, el envío de los costos de transacción 21000 gas [1]).

Ya que el cálculo es caro (la mente que tiene que ser hecho por cada nodo en la red), el excesivo consumo de gas debe ser desalentado. Por lo tanto, cada unidad de gas debe ser pagado (en Éter) por el remitente de la transacción que desencadenó el cálculo.

Por desgracia, a menudo no es fácil y, en general, incluso imposible saber de antemano la cantidad de gas que una transacción se necesita tiempo. Por lo tanto, las transacciones de un gas límite de campo para especificar la cantidad máxima de gas que el emisor está dispuesto a comprar. Si el gas utilizado excede este límite durante la ejecución, se detiene el procesamiento. El remitente todavía tiene que pagar para realizar el cálculo, pero que están protegidos de funcionamiento completamente fuera de los fondos.

La transacción de gas límite también protege completa de los nodos de los atacantes, que podría, sin gas límite, hacerlas ejecutar eficaz infinidad de bucles. Si una transacción de ese tipo llevaría más que un bloque de proceso, que nunca podría ser incluido en un bloque, y, por lo tanto, el atacante no tendría que pagar por ello. [2]

Además, los bloques, también, tienen un campo llamado gas límite. Se define la cantidad máxima de gas de todas las transacciones en todo el bloque combinado pueden consumir. Similar al tamaño máximo de bloque en Bitcoin (medido en bytes), su propósito es mantener el bloque de propagación y el tiempo de procesamiento de baja, lo que permite una suficiente red descentralizada. En contraste con Bitcoin, sin embargo, no es una constante. En cambio, los mineros tienen la opción de aumentar o disminuir cada bloque por un determinado factor. [3]

+388
mian salman 24 ago. 2012 9:12:35

Por fin he encontrado este uno. este era el único que estaba trabajando. He probado en algunas monedas y enviar de vuelta.

+325
Matthew Wright 9 abr. 2014 19:17:09

Estoy tratando de ejecutar bitcoin core v0.17.0 en Wayland en Fedora 29. Cuando ejecuto bitcoin-qt puedo recibir

Advertencia: si se ignoran XDG_SESSION_TYPE=wayland en Gnome. Uso QT_QPA_PLATFORM=wayland para ejecutarse en Wayland de todos modos.

Correr con QT_WPA_PLATFORM=wayland rendimientos

QSocketNotifier: sólo Puede ser utilizado con hilos comenzó con QThread

Hay un cambio de configuración que le permiten bitcoin core v0.17.0 a ejecutar sobre los nativos de wayland? O ¿cuál es la mejor manera de proporcionar un informe de error para el núcleo de desarrolladores con respecto a wayland problemas?

+267
peter 14 ene. 2013 22:03:48

Jugando con litecoin json-rpc que se ejecutan en windows (el API es el mismo como bitcoin, así que estoy utilizando bitcoin de referencias).

Mi litecoin.conf tiene los siguientes datos:

rpcuser=usuario
rpcpassword=pass
txindex=1

Basado en la documentación empecé la base para el cliente como .\litecoind.exe -servidor, y parece que funciona muy bien porque puedo ejecutar varios comandos de una ventana a otra (.\litecoin-cli.exe getblockcount y muchos otros funcionan como se esperaba).

Ahora yo quería hacer algunos json-rpc y traté de Ir a la biblioteca que bitcoin, los desarrolladores recomiendan. He utilizado el ejemplo de que la biblioteca de github y las únicas modificaciones que presenté fueron mi usuario y pass en la definición de la ConnConfig.

El código de falla durante la ejecución de cliente.GetBlockCount() con un error:

Post http://localhost:8332: dial tcp [::1]:8332: api connectex: No pudo establecer conexión ya que el equipo de destino denegó expresamente es.

Creo que el problema es con json-rpc server pero no tengo idea de cómo comprobar que funciona correctamente. ¿Alguna idea de cómo solucionarlo?

+240
DianeEKramer 28 sept. 2017 14:40:09

Me encuentro a mí mismo una víctima de mi pobre googlear habilidades, o la falta de detalle en el bitcoind docs.

Tengo un walletNotify secuencia de comandos que se ejecuta en un completo nodo que cada vez que una transacción a / desde mi billetera llega, realiza una getRawTransaction(txid, 1) en el pasado IDENTIFICADOR de transacción.

Ahora, si cualquiera de mis direcciones aparece en el interior de la vsal matriz, sé que la transacción es un depósito. Lo que me gustaría comprobar, es que de hecho puedo gastar los bitcoins.

He leído acerca de la no-estándar de transacciones (específicamente, unspendable transacciones) y un poco de pánico, por lo que mis preguntas son:

  1. ¿ Bitcoind realizar cualquier tipo de verificación en el "spendability" de la llegada bitcoins?
  2. Hay alguna fácil manera de verificar esto por mí mismo? es allí cualquier no-necesariamente-fácil manera?

Muchas gracias de antemano!

+235
Connieandgil Bynum 13 nov. 2013 21:35:04

Sin detallada de los archivos de registro sólo puedo imaginar la razón exacta por la que puede ver este comportamiento. Dos cosas vienen a mi mente:

1.) El nodo puede enrutar pagos más pequeños. Por lo que en caso de tener saliente de la capacidad de un canal de entrada y de otro alguien podría haber utilizado que para vencer a un pago. que se mueve algunos satoshi de un canal a otro

2.) Si usted abre los canales que usted es responsable de pagar los cargos en el caso de una fuerza de cierre. Estos cargos sean retirados de la cantidad de satoshis que tiene en su canal. Cada vez que hacer un canal de actualización (por ejemplo, con una hoja de ruta attampt - incluso si el enrutamiento no fue exitoso), la cuota estimador de tu nodo y sus compañeros tratan de estimar el onchain tarifas que el nodo tendría que pagar en caso de un cierre.

Desde su nodo parece ser bastante nuevo y desde el onchain tasas fluctúan mucho últimamente estoy casi seguro de que mi segundo supongo que es la razón de la conducta que haya observado.

+215
Sina Nasiri 12 jun. 2014 16:42:50

Es este considera lo suficientemente seguro?

Nada es "bastante seguro" si no sabemos el costo.

OK, si tienes 100 mil dólares en bitcoins de 12 palabras, la frase es lo suficientemente seguro.

Si el 12-palabras de la frase es la semilla para el "Método de destruir el Universo" yo recomendaría agregar al menos 11 bits de entropía y el uso de 13 palabras.

+204
Kukulika 15 sept. 2015 19:14:50

¿Localbitcoins.com? 231 países de soporte, puede cumplir la gente cara a cara de este sitio web en el país donde vaya y cambiar tus bitcoins por dinero en efectivo en el local de la moneda fiat.

+188
Donald richard 16 ene. 2019 18:44:08

Todas las marcas de tiempo están en formato UNIX, que es: el número de segundos desde el 1 de enero de 1970, 0:00 UTC.

+150
hugomg 9 ene. 2014 8:50:28
Recoge las preguntas acerca de los formatos de dirección de diferentes secuencias de comandos, las diferencias entre los formatos de dirección, y cómo convertir entre ellos.
+108
user59645 9 feb. 2015 0:42:16

Como un early adopter de BNB y ventilador de Binance reciente de la dominación del mundo, una cosa que siempre me hizo curioso fue acerca de cómo Binance ofertas con estos enormes entradas de pedidos en la suya motor comercial/sitio web.

Es el sistema de comercio y cryptocurrency carteras totalmente desarrollado y diseñado en la casa o que tienen la asistencia de algún proveedor de terceros? Si tienen alguna tercera parte de la tecnología, ¿sabes cuál?

Pregunto esto, ya que el reciente surgimiento de una gran cantidad de empresas prestadoras de servicios de marca blanca para digital intercambios de bienes.

Gracias de antemano!

Obs: Binance es sólo un ejemplo, otros intercambios con alto volumen y de múltiples monedas muestran también responde la duda!

+96
Christophe Trille 17 mar. 2015 9:32:31

Sí, es una estafa. Usted no quiere dar la clave privada de su cartera a nadie. No tratar con esta persona.

+57
Piero Alberto 17 mar. 2010 13:55:04

Mostrar preguntas con etiqueta