La firma de un Tx que tiene varios UTXOs

El uso de Ir idioma, estoy tratando de crear un BTC transacción, utilizando múltiples UTXOs.

  1. Voy a añadir la UTXOs haciendo esto: Tx.AddTxIn(TxIn)
  2. la creación de la TXOuts uno para la cantidad a enviar y otro para el cambio de ser devuelto al remitente.
  3. El cálculo de la sigScript y cada uno de los TxIn del SignatureScript se establece en sigScript.
  4. El cálculo de la sourcePkScript, _ := txscript.PayToAddrScript(sourceAddress.AddressPubKeyHash())
  5. Para cada uno de los TxIn, cuando hago:
 vm, err := txscript.NewEngine(sourcePkScript, Tx, índice, banderas, nil, nil, netAmount) //netAmout es la cantidad a transferir al destinatario
 si err := vm.Execute(); err != nil {
 fmt.Println("vm.Ejecutar call produjo un error de índice", indice)
fmt.Println(err)
 Transacción de devolución{}, err
}

Para el primer UTXO, la vm.Execute() pasa pero para la 2ª UTXO, la vm.Exeucte() se produce el error de error: vm.Ejecutar call produjo un error de índice 1 la firma de vacío en el error de checksig

Incluso para el 3er UTXO, se produce un error con el mismo mensaje de error.

Todos los pensamientos, sugerencias son muy apreciados.

Gracias

+407
Universalcat 9 ene. 2015 5:24:36
29 respuestas

El mejor método en mi humilde opinión es restaurar la cartera en otra (fiel) del dispositivo, consultar el saldo, pasar una pequeña cantidad de uBTC y verificar la dirección que tiene el dinero. A continuación, eliminar de forma segura la prueba de la cartera. Una máquina virtual, en este caso, es muy práctico.

El paso clave es realmente pasar y probar todo sale como se espera. Si usted no lo hace usted no puede nunca estar 100% seguro de que la copia de seguridad va a trabajar

La comprobación de que usted tiene el derecho de equilibrio no es suficiente ya que la comprobación de sí mismo no necesita que el cliente conoce la clave privada

+942
er4z0r 03 февр. '09 в 4:24

En el Bitcoin red, todos los nodos son los validadores. Cada nodo de verificación de cada bloque recibe para asegurarse de que la prueba de trabajo es válido, las transacciones partido de la merkle raíz, las operaciones en sí son válidas, el bloque de tiempo/tamaño son válidas, entre otras consenso de normas.

No bloquear el proceso de validación de gastar demasiada energía?

En comparación con la minería, el bloque de validación es bastante mas barato. Sin embargo, esto no es gratis, y muy grandes bloques puede tomar un tiempo relativamente largo para validar. Esta es una de las razones por las 20.000 MAX_SIGOPS límite por bloque.

Redes como la de etereum utilizar el concepto de Max Gas para limitar la cantidad de trabajo necesario para validar un bloque, ya que la gasolina que se consume es aproximadamente proporcional al esfuerzo computacional necesario para validar un bloque.

En los protocolos que utilizan PoW y PoS/Opd (Bitcoin, Etereum, Cardano, EOS...), una vez que el bloque ha sido construido utilizando uno de los métodos de consenso y se incluye en la cadena, será siempre estar involucrado en este "segundo" de validación para el resto de los nodos en particular, que el blockchain de la red?

Sí, en cada red, cada nodo debe ser la validación de cada bloque recibe, independientemente del método de construcción.

¿qué pasaría si un nodo de inicio para que rechaza los nuevos bloques (él/ella considera que no son válidos), pero el resto de los nodos dice que es correcto?

En Bitcoin, un nodo que proporciona datos falsos será suspendido por las malas acciones de los pares de la lista de el nodo facilitado datos falsos para.

+937
Nathan Subscription 6 jul. 2015 2:55:42

Yo estaba buscando en los diversos métodos que se pueden utilizar para generar el comprobante de la reserva y llegó a través de la versión en código abierto creado por blockstream para generar el comprobante de reserva( https://github.com/ElementsProject/reserves ).

Sin embargo, soy incapaz de usar la utilidad como es y necesitan alguna orientación sobre cómo utilizarlo. Según mi poco entendimiento que voy a tener que instalar un par de programas para ejecutar la utilidad. Alguien me puede ayudar? Perdón si es un error estúpido/pregunta ya que soy muy nuevo en bitcoin y estoy en un muy nivel muy básico.

+889
Nam San 1 sept. 2019 17:49:33

El uso de un OP_REUTRN de salida es prunable. Escribir los datos directamente en la salida del scriptPubKey no es prunable. La poda de salidas permite la UTXO conjunto para reducir y ser utilizados de manera eficiente, en donde, como no prunable salidas siempre va a crear la hinchazón y la desaceleración del conjunto de recorrido(por ejemplo, durante el bloque de verificación).

No se establece un precedente?

En mi opinión, el defecto de las normas básicas son el precedente de cómo fuera de los protocolos de elegir el uso de ellos. Ya se han ajustado un par de veces(por ejemplo, 40 bytes, de 80 bytes, prunable...).

+877
viptalkooo 28 feb. 2017 20:32:14

He leído mucho acerca de cómo bitcoin a los clientes a encontrar el uno al otro. Me gustaría hacer un fork de bitcoin y tengo una pregunta. Cómo mi red difieren de bitcoin? Cómo el cliente va a entender si este es bitcoin del cliente o en la mía?

+854
Yamaneko 8 jun. 2017 4:38:31

Suponiendo que los ordenadores cuánticos se implementan algún tiempo en la cerca-ish futuro, lo vulnerable que es Bitcoin para el descifrado a través de algoritmos cuánticos? Por ejemplo, el algoritmo de Shor permite que un ordenador cuántico para el primer factorizar en el polinomio de tiempo. Una variante de éste se puede romper ECDSA.

Sin embargo, Bitcoin se basa en un sistema de scripting, por lo que si las computadoras cuánticas son creados, probablemente uno apenas puede cambiar a un seguro de secuencia de comandos1

Es Bitcoin vulnerables a los ataques de los ordenadores cuánticos? Son estas vulnerabilidades pueden corregir2?

1. Entonces, de nuevo, hay límites a las secuencias de comandos y la computación cuántica puede hacer que sea imposible para cualquier secuencia de comandos para trabajar.

2. "Corregible" pueden ser del lado del cliente puede arreglar, donde todo el mundo acaba de ajustes de la secuencia de comandos que utiliza y transfiere todo su dinero a un juego limpio de direcciones (garantizando así a todos sus bitcoins con la nueva secuencia de comandos), o el protocolo de lado puede arreglar, donde el protocolo es ajustado y todo el mundo se descarga un nuevo cliente. El último es ni preferible, ya que el viejo bitcoins se perdería en el proceso.

+849
Heidi Larsen 7 feb. 2011 18:06:40

Suave horquillas no se puede dividir la red ya que se producen con el minero de consenso. Para que esto suceda, los mineros señal de que están listos y hacer cumplir las nuevas reglas después de que se activan mediante el establecimiento de ciertos bits en su bloque de números de versión. Una vez que suficientes bloques de la señal de preparación (con BIP 9, este es normalmente de 1916 de una 2016 bloque de reorientar período, por lo que el 95% de los bloques), las nuevas reglas se activa.

Una cadena de división no se produce porque, en teoría, ningún o pocos mineros se están ejecutando de edad nodos con el fin de producir bloques no válidos. Aquellos que se suelen actualizar rápidamente de todos modos.

Duro horquillas puede hacer algo similar para evitar que la cadena se divide, sin embargo, lo difícil horquillas, son incapaces de hacer es evitar viejo nodos (no-minería de datos) de bifurcado fuera de la red. La compatibilidad hacia atrás, de suave horquillas permite a los viejos nodos para permanecer en la red, después de la activación de la horquilla.

+843
Aguran 30 nov. 2014 23:59:23

tengo una pregunta en mi mente puedo capaces de recuperar mi cartera de coinbase con 12 copia de seguridad de la frase en monedero de blockchain será aceptarlo? y restaurar todo mi crypto de coinbase en el monedero de blockchain

+739
CjS 4 dic. 2017 11:21:24

Las transacciones de Bitcoin no caducan nunca. Debido a esto, cualquier usuario de la red puede almacenar su transacción y la retransmisión de ella en cualquier momento que quieran.

Bitcoin Core quitar sin confirmar las transacciones que han estado alrededor por más de 48 horas, pero cualquier usuario de la red puede volver a añadirlo.

Para responder a su segunda pregunta, puedes enviar otra transacción.

+720
user169543 13 dic. 2018 13:36:01

En PoW consenso, si un minero podría resolver el rompecabezas, no recibir alguna recompensa monetaria (algunas monedas) al incentivo de los mineros, ya que el proceso de extracción tiene un considerable costo monetario para los mineros incluyendo el suministro de hardware y energía/costo de la electricidad.

Sin embargo, en el punto de venta, la participación en operaciones de validación no tiene un significativo costo monetario para los validadores (es decir, de las partes interesadas) (espero que no me equivoco), y si es así, ¿hay algún tipo de incentivo para motivar a las partes interesadas para que participen en las operaciones de validación?

También, ¿cuál es la penalidad de un validador que ex. confirmar un doble-pasó de transacción?

Gracias

+704
Begaloum 27 feb. 2011 2:43:11

Una muy potente caso de uso para el rayo de la red son los millones de transacciones que se producen sobre una base diaria. Todavía hay una buena probabilidad de que la violación de los datos y hacks debido a la centralización. La posibilidad de centralización de los intercambios estafando a la gente, y muchos más...

Esta pregunta apunta a un detallado paso a paso la implementación de la Red de Rayos en un Binance como cryptocurrency de cambio.

+659
mef 8 mar. 2019 19:49:35

Sí, usted todavía va a recibir Bitcoin si alguien le envía a su antiguo direcciones.

Electrum utiliza mnemónico semillas para generar las claves privadas que corresponda a direcciones públicas (teclas) - el que usted necesita para proporcionar a alguien para enviar Bitcoin más para usted. Esto significa que cada una de las transacciones a las direcciones que se generan por su mnemónico semillas aún irá a su Electrum cartera, incluso cuando su dirección de recepción ahora ha cambiado.

Sólo en caso de que te preguntes por qué la dirección de recepción sigue cambiando de vez en cuando: las ideas de cambio de dirección pública cada vez que usted recibe algunos Bitcoins es para mantener el equilibrio info en privado con una dirección pública, ya que uno puede buscar y lista de todas las transacciones relacionadas con la utilización de Bitcoin exploradores tales como blockchain.info.

+595
gnuyoga 13 mar. 2018 22:23:33

Este es un error conocido en Bitcoin-QT.

+580
Manta 15 ago. 2016 17:05:01

Yo he utilizado un sitio llamado bit de comercio de australia para comprar y enviar bitcoins a una cartera en blockchain.info. Con éxito tres veces este mes, de confianza también.

Sin embargo, esta vez, después de recibir un correo electrónico de BTA, "sus monedas han sido transferidos" como normal) no es cero en la prueba blockchain.info de esta sucediendo. Mi cartera no ha cambiado. No bitcoins. De esto han pasado 13 horas desde que el correo electrónico. Y os aseguro, que esto nunca ha ocurrido a mí antes.

Alguna idea? Gracias, Saludos.

+462
user211347 21 nov. 2015 19:58:39

Coral Bloques tiene un servicio gratuito que proporciona agregada de liquidez de Coinbase, Coinsetter, Okcoin y LakeBTC. Usted puede obtener los agregados libro en JSON a través del enlace:

http://www.coralblocks.com:45453/book/BTC-USD

{
 la última actualización": "20151015-21:01:27.551",
 "zona horaria": "America/New_York",
 "símbolo": "BTC a USD",
 "el intercambio": null,
 la "difusión": -0.90,
 "la mejor oferta" tamaño: 0.07000000,
 "el mejor precio de la oferta": 255.87,
 "mejor pregunte a su tamaño": 0.00090000,
 "mejor precio "ask": 254.97,

 "las ofertas": [

 [ "OKCN", 0.07000000, 255.87],
 [ "OKCN", 0.07000000, 255.84],
 [ "OKCN", 0.07000000, 255.81],
...
],

 "pregunta": [

 [ "El LAGO", 0.00090000, 254.97],
 [ "El LAGO", 0.06700000, 254.98],
 [ "El LAGO", 0.60000000, 254.99],
...
]
}

También puede obtener actualizaciones en tiempo real a través de TCP y CORREGIR. Más información acerca de la API de aquí:

http://www.coralblocks.com/index.php/2015/10/free-real-time-bitcoin-market-data/

Descargo de responsabilidad: yo soy un desarrollador en Bloques de Coral.

+455
Teeeeehe 8 feb. 2014 16:00:19

Estoy corriendo Bitcoin Core y todavía tienen que sincronizar 15 semanas de transacciones con la red. Todavía era capaz de enviar a algunos bitcoins, y la transacción fue registrada en el blockchan inmediatamente.

Que es la transacción ha sido enviada a la red. En fue capaz de ver en https://blockchain.info.

Sin embargo, la transacción residía en no confirmados estado hasta que mi cliente estaba totalmente sincronizado con la red.

Respondiendo a la pregunta, sí es posible hacer una transferencia, pero no será confirmada hasta que la sincronización es más. Comprobar el estado en blockchain.info.

Tenga esto en cuenta si usted necesita la transferencia de procesar rápidamente.

+452
Rinoshka 22 oct. 2019 23:37:11

La orden nunca se confirmó, y dependiendo de lo que la cartera a su uso, debe ser reflejado como nunca haber sido confirmado y no se mostrará en el balance.

+398
Klajdi 25 abr. 2011 20:09:12

Bitcoin no hace un seguimiento de los saldos de la cuenta como de la contabilidad tradicional, que sólo mantiene un registro de donde BTC vino y que la dirección a la que se envía. Así, su dirección de recepción no técnicamente tiene un grabado en equilibrio, sólo un saldo calculado para todas las transacciones recibidas en esa dirección. Una vez que envíe Bitcoin, el saldo de transacciones de salida hace referencia a cuando el envío se convierte en pasado y el saldo calculado para que la dirección que usted recibió originalmente se convierte en cero.

Usted puede encontrar este video de ayuda:
Cómo Bitcoin Funciona Bajo el Capó

+322
pingo 1 feb. 2018 1:21:41

Esta es la razón por la que hay algunas jugosas oportunidades de arbitraje entre los intercambios cuando los precios son más volátiles-algunos comerciantes de mantener la cantidad de dinero inactivo en mercados diferentes, de modo que cuando el precio se eleva como el resultado de una ballena en Mt. Gox, las tasas de cambio en los otros intercambios podría ir hasta los nuevos fondos se transfieren o de los vendedores de despertador y reajustar sus órdenes para reflejar los nuevos niveles de precios en otros mercados).

Hay [Modificar:] fue siempre http://www.bitcoinica.com para el apalancamiento.

+298
ANIKA HUDSON 20 may. 2014 20:17:44

Existen soluciones que controlan el procesamiento de pagos para usted. Usted puede utilizar BTCPayServer que tiene una API que es similar a BitPay de la API.

+280
Sidharth J Dev 14 jun. 2019 9:35:07

Supongamos que un SPV cliente se queda sin conexión en el bloque de X (es decir que tiene el bloque encabezados hasta que el bloque X) y, a continuación, vuelve a la línea cuando el blockchain es en el bloque de Y. En ese punto, es necesario se volverá a sincronizar sus UTXO conjunto. Así, se hace lo siguiente: (1) obtener el bloque cabeceras de los bloques de X a Y; (2) construir una flor de filtro para sus direcciones y solicitar un nodo a enviar a todas las transacciones de la coincidencia de esta flor filtro de bloque de X a Y; (3) el total de nodos lo hace y si se encuentra una coincidencia, envía los datos de la transacción junto con un merkle prueba para la SPV cliente; (4) SPV cliente comprueba la prueba y si es correcto actualizaciones de su UTXO ajustar en consecuencia.

Es esta la forma en que las cosas realmente sucedan?

Si sí, entonces mi pregunta es, entonces, ¿por qué no puede el pleno del nodo, simplemente, hacer lo siguiente: (1) enviar su UTXO conjunto del SPV cliente; (2) SPV cliente, a continuación, los filtros de la UTXOs de su interés y poner esos UTXOs en su propio UTXO conjunto.

Este método es no seguir, puesto que no implica ninguna verificación de SPV cliente y esta completo nodo puede dar el SPV cliente totalmente equivocado UTXO conjunto?

+202
Mon The House Cook 4 ago. 2014 16:49:50

Las transacciones de utilizar al menos una entrada y una salida. Con la excepción de la Coinbase transacción que crea dinero nuevo y no tiene una entrada.

Mientras que varias de las claves públicas de hash a la misma dirección, todavía hay 2^160 distintas direcciones posibles. Por lo tanto, la probabilidad de que dos personas que generar una clave privada que se resuelve en la misma dirección es insignificante.

Usted no puede detener a nadie en el envío de bitcoins. Recibir bitcoins es totalmente pasivo. La única manera de rechazar una transacción es devolverlo al remitente.

+146
ValerieWestwick 2 mar. 2010 19:25:04

Su transacción ha 0x51 (sólo OP_1) en su scriptsig, el OP_IF consume el 1, y OP_SHA256 , a continuación, funciona en una pila vacía, causando este error.

+132
filmancco 24 ene. 2018 10:17:52

El bloque actual límite de tamaño es de 1 mb, pero es probable que ser cambiado en el futuro.

Las transacciones se acerca 500B, por lo que el límite actual es de 2000 transacciones por bloque, o alrededor de un 3 por segundo.

+104
Drew Neilson 1 jun. 2019 12:26:33

Algunas personas están preocupadas acerca de la escalabilidad de Bitcoin. El blockchain ya ha alcanzado casi 1 GB para descargar y almacenar, que no es exactamente en el espíritu de un moderno thin client, especialmente en lo que respecta a los dispositivos móviles.

Ahora en la consulta de la Satoshi Papel, parece que ya se le ocurrió una solución:

7. Recuperar Espacio En Disco

Una vez que la última transacción en una moneda que está enterrado debajo de los bloques, el pasado transacciones antes de que puede ser descartado para ahorrar espacio en disco. Para facilitar esto sin romper el bloque del hash, las transacciones se hash en un Árbol Merkle [...], solo con el root incluido en el bloque de hash. Viejos bloques pueden luego ser compactado por el aplastamiento del off las ramas del árbol. El interior hashes no necesita ser almacenado.

Un bloque de encabezado con transacciones no sería de alrededor de 80 bytes. Si nos supongamos que los bloques se generan cada 10 minutos, el 80 bytes * 6 * 24 * 365 = 4.2 MB por año. Con los sistemas informáticos suelen vender con 2GB de RAM a partir de 2008, y la Ley de Moore, la predicción de crecimiento actual de 1.2 GB por año, el almacenamiento no debería ser un problema, incluso si el bloque de los encabezados deben ser guardados en la memoria.

Es que esto ya se ha aplicado para la versión actual? "4.2 MB por año", sugiere que no. Es ya en la hoja de ruta? Pida a los desarrolladores encontrado obstáculos imprevistos? Se que la solución sea tan efectiva como se prometió?

+93
mheathershaw 6 jun. 2012 4:04:27

Un 44 bytes de encabezado cointaining:

  • magia: 0xfa, 0xbe, 'm', 'm' (sólo si más de 20 bytes pasado el inicio de la secuencia de comandos; de otra manera opcional)
  • block_hash: Hash de la Namecoin bloque de encabezado
  • merkle_size: Número de entradas en aux trabajo merkle árbol.
  • merkle_nonce: Nonce utilizado para calcular los índices de aux de trabajo merkle árbol; bien puedes dejar esta opción en cero

se incluye en la scriptSig de la coinbase de transacciones en el Bitcoin bloque y enviados a la de la red Bitcoin. Tenga en cuenta que sólo se envía el Bitcoin red si se cumple la red de dificultad de Bitcoin. Si sólo se cumple con la dificultad de Namecoin, es enviado solo a la Namecoin de la red.

Fuente: https://en.bitcoin.it/wiki/Merged_mining_specification

+88
Collins Kiptoo 19 may. 2012 14:57:05

' He entrado en la https://bitcoincore.org sitio, efectuada la descarga y se instala en mi cartera, que estaba trabajando, pero no de vuelta. Él dio un problema en mi PC y tuve que formatear la unidad. Puedo volver a descargar y ahora estoy usando la nueva URI Bitcoin número .¿Cómo puedo acceder a mi cuenta sólo la contraseña y el anterior Bitcoin URI número?

+85
Alejandro Camus 22 jun. 2019 8:46:27

Sé que la clave privada se genera de forma aleatoria por la cartera. Es posible que la cartera de generar la misma dirección que se utiliza en Bitcoin?

En otras palabras: Dadas dos claves privadas kun ≠ kb, es posible que generan la misma dirección Bitcoin?

+48
iMan Biglari 11 jul. 2013 5:01:23

A mi entender, los mineros no lo acepte no estándar de secuencias de comandos. Entonces ¿por qué hay varios códigos de operación que no puede ser utilizada en secuencias de comandos personalizadas porque no son estándar?

+28
Hristina Cakonceva 6 mar. 2015 0:26:57

Mostrar preguntas con etiqueta