Pasar Varias direcciones en canjear p2sh script

Tengo el siguiente código

const script = este.app.env.bitcoin.secuencia de comandos.compilar([
hashOpcode,
Búfer.a partir de(secretHash, "hex"),
este.app.env.bitcoin.códigos de operación.OP_EQUALVERIFY,

 Búfer.a partir de(recipientPublicKey, "hex"),
este.app.env.bitcoin.códigos de operación.OP_EQUAL,
este.app.env.bitcoin.códigos de operación.OP_IF,

 Búfer.a partir de(recipientPublicKey, "hex"),
este.app.env.bitcoin.códigos de operación.OP_CHECKSIG
])

Pero quiero pasar a uno más de la dirección. Como este:

Búfer.a partir de(recipientPublicKey, "hex"),
este.app.env.bitcoin.códigos de operación.OP_EQUAL,
este.app.env.bitcoin.códigos de operación.OP_AND,
Búfer.a partir de(exchangePublicKey, "hex"),
este.app.env.bitcoin.códigos de operación.OP_EQUAL,
este.app.env.bitcoin.códigos de operación.OP_IF,

Búfer.a partir de(recipientPublicKey, "hex"),
este.app.env.bitcoin.códigos de operación.OP_CHECKMULTISIG,
este.app.env.bitcoin.códigos de operación.OP_AND,
Búfer.a partir de(exchangePublicKey, "hex"),
este.app.env.bitcoin.códigos de operación.OP_CHECKMULTISIG,
este.app.env.bitcoin.códigos de operación.OP_ELSE,

Pero no su trabajo y yo estoy solo en 1 en txout. cuál es la forma correcta de agregar otro multisig dirección ?

Sólo quiero seguir este patrón:

canjear guión: 2 <pubKey1> <pubKey2> <pubKey3> 3 OP_CHECKMULTISIG 

+958
Daniel James 11 jul. 2019 20:23:29
17 respuestas

que depende de la locktime que está configurado para sus canales. tomado de c relámpago (c.f.: https://github.com/ElementsProject/lightning/blob/97118c558e84e0b3a12a8cbe60528ad5cfcb2fd6/doc/lightningd-config.5.txt )

watchtime-bloques='BLOQUES':: Cuánto tiempo necesitaremos para detectar una anticuada cerca de intento: la apertura de un canal de les decimos a nuestros compañeros que este es el tiempo que vas a tener que esperar si se realizan unilateral cerrar.

max-locktime-bloques='BLOQUES':: El más largo de nuestros fondos pueden retrasarse (es decir. el más largo watchtime-bloques nuestros compañeros pueden pedir, y también el más largo HTLC tiempo de espera vamos a aceptar). Si nuestros pares pide más tiempo, vamos a rechazar la creación de un canal, y si un HTLC pide más tiempo, vamos a rechazar.

Creo que la norma debería ser 144 bloques que estadísticamente debe ser de 24 horas. por supuesto, usted debería considerar la posibilidad de una ventana de seguridad para ser capaz de obtener su incumplimiento remedio tx extraído en caso de una unilateral de cerrar.

+911
albertochua 03 февр. '09 в 4:24

Tengo un BigInteger que representa una clave privada. Cómo puedo obtener la clave privada como un base58 cadena codificada? El siguiente pseudo código no funciona correctamente:

base58.codificar(bigInt.toByteArray) 
// se obtiene un string que difiere de la dada bigInt de la clave privada

ACTUALIZACIÓN

def fullDoubleSha(bytes: ArrayOfByte) = {
 val digestSha = MessageDigest getInstance "SHA-256"
 digestSha digerir digestSha.digest(bytes)
}

def getPrivBytes(clave: BigInteger) = clave.toByteArray partido { case keyBytes =>
 val res = si (keyBytes.cabeza == 0) keyBytes caída de 1 más keyBytes
 new Array(32 - res.de longitud) ++ res
}

def privBytesToWif(vs: ArrayOfByte) = {
 val rawPrivKey = Array(0x80.toByte) ++ vs
 rawPrivKey ++ fullDoubleSha(rawPrivKey).tomar(4)
}
+844
user18279 20 may. 2015 10:14:18

Estoy construyendo un bitcoin rayo de la red utilizando la lnd en un equipo independiente

este equipo tiene menos de 200G disponible y el real blockchain es más de 220 G, así que voy a necesitar usar encorsetado mod y comenzó la descarga de la cadena a partir de marzo de 2018 como recquired por lnd,

mi cuestión es que el cliente bitcoin es capaz de hacer eso y cómo configurarlo para este procedimiento ?

+821
Rahav 2 ene. 2015 9:20:04

Se parece a mí como cada entrada a una transacción bitcoin tiene un índice que especifica sólo una salida desde la entrada de su gasto. Es allí una manera de especificar más de un índice de salida, o usted tiene que crear una segunda línea de entrada que contiene el mismo ID de entrada con un índice diferente? Parece que la segunda forma es un desperdicio de blockchain espacio - yo hubiera pensado que habría una manera de simplemente especificar varios índices. Es allí una manera de hacer eso?

+681
Kairat Akhmetov 20 abr. 2015 8:47:09

3-4 días, me transferir bitcoins de Virwox a mi Electrum la billetera, pero este bitcoins no llegó, ¿qué puedo hacer?
1JPSVx7hjcu7rR2Vr6nyz7z8mok3yryGz

+667
Dimreval 10 mar. 2018 7:30:12

He seguido el tutorial proporcionado en esta respuesta:

¿Cómo puedo acceder a la información sobre blockexplorer.com o blockchain.info sin emitir solicitudes a esos sitios?

Pero no hay instrucciones sobre cómo obtener y ejecutar bitcoind primero como Abe requiere la génesis de los bloques.

Además, recibo el siguiente mensaje de error al intentar sincronizar:

$ python -m Abe.abe --config=abe-sqlite.conf --commit-bytes 100000 --no-servir

no se pudo cargar /home/bitcoin/.bitcoin/bitcoin.conf: [Errno 2] No existe el fichero o directorio: u'/home/bitcoin/.bitcoin/bitcoin.conf'
catch_up_rpc: abortar

He bitcoind instalado en mi servidor ubuntu:

$ sudo apt-get update
$ sudo apt-get install bitcoind
$ bitcoind

¿Qué debo poner en mi archivo de configuración? ¿Qué otra cosa Abe requieren de bitcoind?

+564
Michael Blanza 9 mar. 2013 2:58:03

Este es el encabezado de bloque #300000

02 00 00 00 7E F0 55 E1 │ 67 4D 2E 65 51 DB A4 1C
D2 14 DE BB EE 34 AE B5 │ 44 C7 CE 67 00 00 00 00
00 00 00 00 D3 99 89 63 │ F8 0C 5B AB 43 FE 8C 26
22 8E 98 D0 30 ED F4 CC │ 48 A6 66 F5 C3 9E 2D
7A 88 5C 91 02 C8 6D 53 │ 6C 89 00 19 59 3A 47 0D

Número de versión 2 (el primer dígito), pero se han codificado a 1

header_hex = ("01000000" +

+523
hbv1960 17 mar. 2011 13:15:57

En el punto de la horquilla, las dos cadenas son idénticas, y por lo tanto todos los UTXOs son idénticos. Todo pasa de esas salidas son totalmente públicos como siempre, en el blockchain. Así que a tu pregunta, en realidad, se reduce a si se puede ocultar que UTXOs vas a pasar en una transacción dada, con o sin la horquilla. La única manera que sé cómo hacerlo es a través de la mezcla. Si usted envía sus transacciones en cada cadena a una mezcla de servicio, usted terminará para arriba con diferentes salidas en cada cadena. El untraceability de la mezcla es entonces dependiente de cosas como cuántas otras transacciones están siendo mezcladas en el mismo momento (en una nueva bifurcación, puede haber menos gente envío de monedas), o si el valor de la salida está gastando es de identificación personal que entra y sale de la mezcla.

+513
morningstar 21 mar. 2014 15:49:04

Me gustaría saber donde puedo publicar Lo que pienso y tener una discusión sobre Bitcoin problemas en lugar de preguntar/contestar preguntas, o es sólo una pregunta y la respuesta?

+491
user45184 17 ene. 2012 23:34:08

No. Y eso sería aún más confuso. Usted tendría que sincronizar la división, y para precios históricos, necesita saber si eran viejos BTC o BTC después de la primera división, segunda división, etc... Solo uso mBTC, uBTC, satoshi, o incluso fracciones de la unidad más pequeña en caso de necesidad.

+311
AndrewSmiley 22 feb. 2018 9:21:06

Una blockchain no puede ser fraudulento. El blockchain que es "el blockchain" es la cadena con más trabajo. Si hay una cadena que incluye una transacción que fue el doble de gastos de la transacción, pero no el original, y que la cadena había más trabajo que una cadena diferentes, luego de que la cadena es "el blockchain" y es la correcta.

Si una blockchain contiene dos transacciones que entre en conflicto el uno con el otro (es decir, el original y el doble gasto, tanto en la cadena), luego de que blockcahin es completamente válido y nadie aceptaría a menos que específicamente modificado su software para aceptarlo.

Si un usuario es defraudado porque alguien ha realizado este tipo de ataque (emisión de un doble gasto de transacción y el doble pasar confirmado), el usuario no tiene manera de decirle a la red ni a la atención de la red si tal ataque se produjo. Lo que sucedió fue completamente válido para la red siempre y cuando sólo uno de los dos transacciones (ya sea el original o el doble gasto) está incluido en el blockchain. Este riesgo es por eso que se recomienda que espere que la transacción sea confirmada y tienen múltiples confirmaciones antes de aceptar un pago. La cadena que contiene el doble de pasar no es fraudulento.

+251
Thomas Robison 19 oct. 2016 3:49:54

Un minero, que sin duda puede hacer eso, y algunos mineros hacer (bien de minería de piscinas en realidad). Algunos de minería de piscinas como ViaBTC y BTC.com ofrecemos servicios donde se dará prioridad a una transacción de pago (pagado fuera de banda). También ha habido muchos casos donde un minero va a realizar una transacción, el pago de una 0 cuota, y la mina de la transacción en sí.

Así que puede que el programa de instalación como de 6 o más máquinas de minería

El número de máquinas de minería o de los nodos no tiene nada que ver con esto. Usted puede hacer esto con una sola máquina y un nodo. Sin embargo, en orden a la realidad de manera rentable de la mina y tener una oportunidad de encontrar un bloque, se necesita un gran número de mineros ASIC, mucho más que sólo 6 de las máquinas, más como algo que en los cientos o incluso miles de mineros ASIC.

+249
Benoit Tremblay 3 ene. 2015 19:06:27

Usted pagó alrededor de $15 USD para las cuotas, la corriente promedio de la tarifa de transacción de hoy es de 41 USD. La transacción se llevara bastante tiempo o se necesita una tasa más elevada.

+246
KT88 11 sept. 2010 11:52:50

En primer lugar, blockchain el espacio es una prima, ya que cada nodo tiene para almacenar toda la cosa para siempre. Así que en general es mejor no almacenar información redundante en el bloque de la cadena, y dejar que cada nodo de cómputo en su lugar.

Segundo, el "equilibrio" en una dirección puede ser afectada por múltiples transacciones que no son necesariamente ordenado con respecto a la otra. Supongamos que la dirección de 123abc inicialmente no tiene transacciones entrantes, por lo que su saldo es 0. Ahora supongamos que Alice decide enviar 1 BTC a la dirección. Por su lógica, su transacción debe mostrar el "balance final" de la dirección de 1 BTC. Simultáneamente, y sin conocimiento de lo que Alice está haciendo, Bob envía 2 BTC a la dirección, y así, naturalmente, su transacción se muestra el balance final como 2 BTC. Pero el "verdadero" final de equilibrio es de 3 BTC, por lo tanto de sus declaraciones en cuanto a la final de equilibrio están equivocados. Así que cualquiera que quiera conocer el verdadero final de equilibrio para calcular ellos mismos de todos modos, y no se puede confiar en los números de la transacción.

Para hacer este trabajo a todos, necesitaría algún tipo de regla que usted no puede enviar más monedas a una dirección hasta que la transacción anterior tiene algún número de confirmaciones. Esto sería totalmente inviable para las direcciones que se supone que reciben gran cantidad de transacciones entrantes (creo que de una donación de dirección en un popular sitio web). También significaría que un atacante que conozca su dirección podría impedir que usted reciba una importante transacción mediante el envío de un montón de pequeñas transacciones a las que habría que confirmar uno por uno.

+224
fabrizioM 20 ago. 2014 1:57:04

Además de Bolton respuesta: las Transacciones en un bloque puede estar en cualquier orden, dado que si una transacción pasa otro de salida, el padre de la transacción debe venir antes de que el niño tx y el coinbase de la transacción (la recogida de la manzana recompensa) viene primero.

+117
Karma Dolma 3 nov. 2014 18:20:59

Si puedo transferir dinero a mi cuenta de Blockchain después de recibir mi Json cartera de copia de seguridad por correo electrónico, sería restaurar añadido recientemente fondos?

+94
Raph Thaut 16 mar. 2010 1:13:08

El Finney ataque es una variación de un doble pasar ataque. El atacante crea dos de las transacciones de un abono a la víctima y un abono a sí mismos. Mantienen la primera transacción por ahora y proceder a tratar de minería de la segunda en un bloque. Cuando tienen éxito (esto puede tardar un rato), rápidamente se hace una compra con la primera transacción, obtener los bienes que compraron, y, a continuación, suelte el pre-minadas bloque. De esta manera la primera transacción será invalidado, incluso si se propaga a través de toda la red.

Esta variante de la doble pasar ataque es más difícil de ejecutar (minería de datos de un bloque por uno mismo no ha sido fácil para un largo tiempo), pero es indetectable hasta que haya sido completamente ejecutado. La única forma de protegerse contra este tipo de ataque es para exigir al menos una confirmación de la transacción antes de dar bienes adquiridos, y que requieren de más confirmaciones de transacciones por un valor de más.

+83
Brian Duddy 20 feb. 2017 2:49:04

Mostrar preguntas con etiqueta