SignRawTransaction - ¿Qué es scriptPubKey y redeemScript? [SOLUCIONADO]

Permítanme hablar acerca de cómo llegué a la situación que estoy ahora. Estoy utilizando PHP y JSON de la biblioteca para el control de bitcoind. Y hacerlo.....

He creado un multisignature dirección que requieren de 2 de 3 de las firmas con createmultisig.

Luego me envió fondos a la multisignature dirección y fue capaz de confirmar las transacciones que se envían a esta dirección con el uso de getrawtransaction y decoderawtransaction.

A continuación, me quería liberar los fondos a una dirección específica (debido a que tengo el control de todas las claves, esto es sólo una prueba de funcionamiento)

Así que he creado un raw de la transacción en la que he entrado en el ID de transacción que he utilizado para una de las transacciones para enviar fondos a la multisignature cartera. También he añadido la dirección deseada y cantidad. Después de esto, escupir un raw de transacción hex.

Mi siguiente paso es firmar el raw de la transacción. Esto es donde estoy atascado.

Los parámetros para signrawtransaction son confusas para mí, y necesito que me explicó como si yo tenía 5 años de edad.

hexstring - suponiendo que esto es la cadena hexadecimal que createrawtransaction escupir

id de transacción - es este el id de transacción de cuando me trasladé en la cantidad a la multisig cartera?

scriptPubKey - ni idea de qué es esto

redeemScript - ni idea de qué es esto

Me agarró de scriptPubKey y redeemScript de la transacción he utilizado para transferir fondos a la multisig la billetera, pero el resultado era exactamente el de entrada de la cadena hexadecimal, por lo que no es, obviamente, la firma correctamente. No estoy seguro de lo que estos 2 parámetros son.

Puede alguien por favor me ayude con esto. Necesito que me explicó como soy retrasado debido a que ninguna de las explicaciones que he leído en línea han ayudado.

Gracias.

EDITAR RE: Jonathan

Esto es lo que he hecho hasta ahora.

1) Crea un multisig dirección de uso público 3 claves que he generado. Tomé nota de las claves privadas, y las que salen como multisig dirección (ABC) y redeemScript (redeem1)

2) Envía las monedas para el multisig dirección y buscando a través de la blockchain encontró que las transacciones de existir. He tenido varios Identificadores de transacción, para enviar a esta dirección, pero me estoy centrando en la que yo estoy tratando de usar como salida. Vamos a llamar (txid1). En txid1, cuando me llamó getrawtransaction, también tenía un 46 bytes gafado clave pública adjunta a la salida, voy a llamar a ese (pubkey1)

3) a continuación, he creado un raw de la transacción, que incluye los parámetros;

txid1, vsal=0, la dirección (dirección para pasar a) y la cantidad (coincide con el mismo importe transferido a la multsig dirección con txid1) y escupe un hexstring, que voy a llamar (hex1)

4) SignRawTransaction - aquí es donde estoy atascado. Los parámetros que pide son;

[{"txid":txid,"vsal":n,"scriptPubKey":hex, "redeemScript":hex},...] [,...]

Así que yo soy la introducción de signrawtransaction(hex1, ["txid"=>txid1, "vsal"=>0, "scriptPubKey"=>pubkey1, "redeemScript"=>redeem1, array(oneofmyprivatekeys))

Pero el resultado es justo el hex1, sin un solo cambio. No estoy recibiendo los mensajes de error, solo un outputed cadena idéntica a hex1.

Me puedes dar una idea de lo que estoy haciendo mal? Muchas gracias!

+392
coolwithpie 4 ago. 2017 4:49:05
30 respuestas

Si he entendido bien, cuando tengo que crear una nueva transacción de mi billetera, tengo que firmar y cifrar. Mi cartera cifra el mensaje utilizando la clave pública del nodo está conectado, por lo que se puede descifrar el mensaje cuando se recibe y firma el mensaje con mi clave privada, por lo que el nodo sabe que fui yo quien envió el mensaje porque mi clave pública es enviada junto con el mensaje.

Lo que no entiendo es que cuando este mensaje se transmite a los otros nodos para la verificación, ¿cómo pueden descifrar si es que fue encriptado usando el nodo inicial de clave pública. Además, he leído que también los mineros deben verificar la validez de las transacciones que han recibido. ¿Cómo pueden descifrar las transacciones?

+885
Rezk Ahmed 03 февр. '09 в 4:24

Hay bibliotecas para deserializar transacciones por ahí.

pybitcointools - python

bitcoin-lib-php - php

libbitcoin - C++/C

No hay límites para ser muchos otros.

+875
CMerrill 11 jul. 2011 1:49:32

Yo soy relativamente nuevo en la tecnología blockchain, y mi único conocimiento es relativo a la forma en blockchain de bitcoin funciona. Sé que está basado en la minería y la transferencia de valor que escasea cada vez más obtener bitcoins minados.

Luego me metí en el blockchain de la tecnología como una tecnología independiente, lejos del ámbito de las finanzas de cryptocurrency. He encontrado acerca de la utilidad de la única fichas y cómo vincular los activos digitales a estas fichas.

Uno de los mayores añadir a blockchain es el inteligente de contactos que por mis conocimientos son contratos que no requieren de terceros como intermediarios.

El problema es que todavía no puedo entender cómo hacer estas inteligente de los contratos de integrar en la tecnología blockchain. Alguna ayuda? ¿hay algún ejemplo concreto puedo leer acerca de ?

Gracias !

+748
ncalmbeblpaicr0011 21 ene. 2016 15:34:07

Si usted mira los cambios realizados en el bitcoin implementación de referencia con la aplicación de la BIP 43 (ver este commit), verá que un cheque ha sido añadido a la función 'AcceptBlock'. Con este cambio, la función es ahora la validación de la altura contra el valor tomado de la coinbase secuencia de comandos de la entrada de bloque.

CScript esperar = CScript() << nHeight;
si (!std::igual(esperar.begin(), esperar.end(),vtx[0].vin[0].scriptSig.begin()))
 retorno DoS(100, error("AcceptBlock() : altura de bloque de desajuste en coinbase"));

Así, un bloque que contiene una incorrecta altura de bloque en el coinbase de transacciones en realidad iba a ser rechazado por los otros nodos en el bitcoin red (en la versión actual del código fuente, esta verificación es ahora en ContextualCheckBlock en validation.cpp). El valor de la altura a la que el coinbase secuencia de comandos de entrada es comparado se toma a la altura de la actual último bloque más uno, por lo que se calcula.

Por lo tanto las respuestas a tus preguntas son:

1) no, el bloque de altura que un nodo utiliza realmente es determinado con base en el actual último bloque

2) sí, ver el cheque en ContextualCheckBlock

3) probablemente sí, pero entonces los DoS mecanismo de protección de la red de kick y ban el nodo correspondiente - y, aparte de eso, la minería de poder que el minero ha invertido en el bloque con la incorrecta altura estaría perdido

+742
pixelomer 10 abr. 2011 4:12:18

Guardar el hash de cada una de las transacciones en el encabezado de bloque podría hacer que el bloque de encabezado mucho mayor de lo que actualmente es. Ahora toda la cabecera es de 80 bytes, y el tx merkle raíz es de 32 bytes de eso. Puede hash cualquier número de transacciones en un 32 bytes merkle raíz, por lo que funciona muy bien como un sistema de encriptación secure técnica de compresión.

No puedo pensar en un par de efectos de mayor bloque de encabezados:

  • SPV carteras sería más recursos para funcionar, se requeriría mucho más espacio de almacenamiento y ancho de banda. Creo que el cómputo de la merkle rama es probablemente rara vez el hardware cuello de botella para ser considerado en el diseño de carteras.
  • Los mineros sería incentivar a las minas pequeñas de los bloques. Esto es debido a una mayor blockheader significaría un mayor valor de entrada para el algoritmo hash SHA-256 de la función, por lo que se necesitaría más tiempo para calcular el hash. Esto es importante: la forma más rápida hash del bloque minero podría calcular sería uno con ninguna de las transacciones en ella (aparte del coinbase).
  • Usted sería capaz de encajar menos transacciones en un bloque, ya que más de la blockspace sería utilizada por el encabezado. Una buena aplicación no cambiar el número de transacciones que podría caber en un bloque, ver Pieter los comentarios de abajo.

Probablemente hay más, no dude en ampliar esta lista.

+723
Ken Woytisek 12 ene. 2016 16:10:15

La mejor manera de conseguir el cambio de dirección es a la verificación de la transacción correspondiente a la "conocida" de la dirección de su cartera de donde se origina la transacción. Blockchain no mantener un registro de las direcciones que genera para el cambio de BTC para el bolsillo de los usuarios. También el monedero de blockchain es BIP44 compatible que es, básicamente, una más de nomenclatura estándar para BIP32 y BIP39. Después de ese formato que usted sería capaz de obtener las claves privadas.

+721
Rica Mae Nueva Sumallo 27 jun. 2010 11:04:10

Así como tenemos la génesis de bloque que es el bloque 0, hay un nombre especial para el bloque actualmente a la cabeza de la cadena? Obviamente este bloque sería observador dependiente y nunca absoluta, pero estoy curioso de la misma.

+714
abbas12 25 jun. 2017 23:47:31

Yo estaba bajo la impresión de que un individuo podría, si se realiza la prueba de trabajo en primer lugar, la causa de la adición del bloque de la blockchain? Lo que me estoy perdiendo aquí?

Que podría ocurrir que los 2 bloques se encuentran en el mismo tiempo. Lo que generalmente hace que la red se dividió en dos cadenas, ( Una parte de la red va a construir o encontrar un nuevo hash basado en bloque y, y la otra parte de la red está tratando de encontrar un nuevo válida hash basado en el bloque X.).

Quien quiera que se encuentre el Bloque Z, primero se crea el más largo de la cadena y así invalidar el más corto. ( Mineros que construir en bloque Y encuentra el lote Z así que ahora el bloque X ( que es la más corta de la cadena) obtiene huérfanos )= ahora no válido.

El mismo principio se aplica a un 51% de ataque, ya que tiene la mayoría hashpower siempre (hipotéticamente) encontrar un hash válido más rápido que los otros de la cadena, que cuenta con 49% hashpower.

En ese caso, no individual ( a menos que el individuo posee el 51% de la hashpower) va a ser capaz de "mina" de un bloque/(o más bien, - obtener un bloque añadido a la más larga/cadena válida).

Su título es algo más, entonces su pregunta,

Hacer varios mineros contribuir a la minería en el mismo bloque, incluso si no están en el mismo grupo

Bueno, sí, si sólo hay 1 cadena, cada minero se va a construir sobre esa cadena, lo que significa que todos ellos estarán buscando un bloque ( o más bien un hash) que va a ser válida en esa cadena ( básicamente el siguiente bloque?)

Yo no lo uso contribuyen a pesar de que no comparten sus hashpower, pero que de hecho comparten el mismo objetivo. -> Encontrar un bloque con un hash válido que es válida en la cadena actual.

+701
Brown4Barber 1 ene. 2010 14:44:52

Usted puede ser capaz de ejecutar chrome en un ASIC. Pero si lo hizo, lo que las minas en una ficha que no van a hacer uso de la ASIC de hardware.

En primer lugar, de un ASIC no es un equipo de propósito general, no solo puede ejecutar cualquier software que usted quiera en ella. Tiene un pequeño equipo de propósito general para la gestión de la ASIC de hardware, pero que es un equipo de baja potencia. Esta baja potencia equipo tiene una CPU que podría compilar una versión de Chrome y copiar los archivos binarios a ella. A continuación, usted podría comenzar un servidor X para obtener una interfaz gráfica de usuario a través de la red y verlo en otro equipo.

Sin embargo, esto no sería útil para usted en todo. Chrome no sería capaz de utilizar el ASIC de hardware. Sólo se puede usar el propósito general de la CPU, que, en este caso, es super baja potencia. No sería la mina más monedas de un equipo regular, de hecho, es lo más definitivamente mina mucho menos, si es que alguno.

+571
Dave MacLean 10 nov. 2016 17:01:11

La mayoría de las altcoins han hecho muy mal. Usted puede ver la lista de relativamente exitosos aquí. No hay un país de la moneda que tiene una capitalización de mercado de más de un millón. Yo diría que no ha sido una historia de éxito.

+545
Kevan Full 16 jun. 2016 8:18:18

Bitcoins entregado, pero algo no está bien con su cartera que puede ser que necesite restablecer el bloque de las cadenas y de los pares, dependiendo de su cartera de cliente de la aplicación.

+522
user185707 29 sept. 2015 22:37:33

El fracaso está sucediendo, porque hash160(30450221009b813cf658ec2c30e68fd23c369c348fd5f915f77b49581a945aa2f2f2d3c8aa022058f6a7eb78b2132d24cc260699fdc158fda6f3a0d10bc3c52bacccc03bb6b8cb) no es 023fb59ee7e5722a9c559d366f6ca114c73361108c04e27a18060cef7a727d58a9.

Hash160s son de 160 bits de largo, para terminar como hexadecimal de 40 caracteres. 023fb... encima es de 66 caracteres, por lo que no hash160 podría coincidir con ella. Investigar de dónde viene?


Me parece btcdeb https://github.com/kallewoof/btcdeb increíblemente útil para estos tipos de problemas: es una herramienta de línea de comandos para permitir la ejecución paso a paso de bitcoin secuencias de comandos. OP de la secuencia de comandos es: 30450221009b813cf658ec2c30e68fd23c369c348fd5f915f77b49581a945aa... | 02c800b27576a921023fb59ee7e5722a9c559d366f6ca114c73361108c04e27... | <<< scriptPubKey >>> | OP_HASH160 | ef3c5e4ee866b692245de650b178d83ca3d0fdbd | OP_EQUAL | <<< P2SH script >>> | c800 | OP_CHECKSEQUENCEVERIFY | OP_DROP | OP_DUP | OP_HASH160 | 023fb59ee7e5722a9c559d366f6ca114c73361108c04e27a18060cef7a727d58a9 | OP_EQUALVERIFY | OP_CHECKSIG | #0000

Y su pregunta aquí puede ser replicado, llamando al:

btcdeb --txin 02000000107c60fb7c4de7528b0693f189483996f62d04527a693b86ffd940fe21c2efe65a00000000484730440220521eae742c5587ea8d0947879de20f6ff07c30a3e6fc37f3472374d94d1c57b102207cdf2e65e9812adebe37f28279ac23c7f316c5cdd00104aa92396d2768724e0201feffffff15aeb7dae6d514d833e3f25ffc1a992cb2dbc633b30c09f314e726d22ab34c2f000000004847304402206669b4a43e22272d18dcdd99527fcbfbf97bb024ea808bd9ae1ee492da5ab361022045625e98f6f8ddfb3427d4d43f66722d799fbce338f1dd8cbf2ba8c4082756d901feffffffdb2b200941d79838f30139ffc8b1b23bae1cb298a5642a4b3242c74e3614308c0000000048473044022043cb6c47831ad4903c4f657031671fe5b3e8c3e8b4c12de3bc62af6cbda60b32022052c41f1a6e767ebe663b10a4e7350ad12555b4524c0d51ceb50a929466bef89101feffffffc676855c7880b9672531cf3b5bdf170e683ecf43881cb69ded2f469e1725de370000000048473044022057f71e9d946525338e4a504f9cf55065154de09a5f85a8c68d586648246bd99f02202322de86499f035a99d90861bda53d72eb5b8bbeb0349e472290e25db8d5843601feffffff34cdc4315cee2f6c754ac9d6aff58ce87d24d2ea9f1a7427274ecec7f33acc650000000048473044022039444c85f778fd8a95cfdf4afef47ba804425d2ca97907e86393af56406f472a022029de7c2617d2e7d8c1958bd84b775e1b8d4d1e22591529dc13ae050b0b96999001feffffffd6a7bf9cd512e454b7b1b33f2484a16cf5237d8a9e6ecf49294dd7931a5e88d600000000484730440220492bbaa48ca4ea7424412d6421e87f95f0f1b5beefc4c1c818bd2a94b9b5a00402207ef391cdc9f84e88d1ff2cc7d68edb5afacd7ad0be3a478df0911b1bb1973cf401feffffff89e1344e9d47932c19b24a88062ee6166cc9704d26820690c903e3a63924b924000000004847304402207fcd1b6818c875abe2148b1dfe1553c73c2eca561ec3ce1e99c6bbab3b6543830220562dfa7391a5823563fbecf3e41361e6b7a4b3f541b39f667ad0137c726c9de801feffffffe7092dda245a178b4e50dcda70cbc9fedef3fadfef94c6dbe5dc349d105cb94e0000000048473044022002fdc279d955d8d0e60c4705b170b700d934fbf5efa1d7c8b2443ab1587d80b9022000c8d135e6f81c664487ca8431c7e6eb89a3eb618f646b2bce28b5517dbff72a01feffffff8bf3c8734ee9682ffbce41e520a2e8a466c5d46654d98cbcd4ebfcf64a73939700000000484730440220629988e915cb34552abeef352b7a1a0ebd6792d0a0c91d8d906dd6065ee68a4902207646cc98da887dd19b3d26185d5bcae423fcba036c8c1082985ac8a260e7f54001feffffff4a3b666ad423ba3a2b7a14edef7d826cf7587a2774b9f3937e75aade5698d09c000000004847304402205644ed173a99869018434ea4a1a580a1a1815431f294f134dda6cb259613962f02201d6fe1aae7fe07a88c686bf31348b07927b5088bb321af9169ddf1b232b421e601feffffff75dd734653ba95042205708b007b448aaef21cf972e8e25d76485b66a8f6c5a0000000004847304402200b4301e24066c184a4014cddec046fb9990c08caf73130e780ff9b3959e510a402206e947ea7a81cdd2ed67ae88bca5ccad5db2b29cd86cb3f57755cae19121e74d801feffffff7c704726f11711d0b75f399272c697ee49bb10aeaf170372dd50480b2fe194d9000000004847304402202bd26868009c2fc5d94525eabb1197cef6aac5b235d1623c3a762fe61295c1ba022024b9c7ecb2c28a01ba8976bd4ab9779915d37b788dc6dcdec335f89e457a99d101feffffff0a6b94c0ded59df2a0ec996581af027e4116d915e5264fb14a6555f266bec285000000004847304402203997a2d145c8cef3879c5d5dccf7758081b95d3be05443c07053d9d352d4fc2802204f66e8ceadf3147118f430404cbfa8f3b4b99d3a410d69d2a831646c1a5c2f3b01feffffff2f04521db3ecbefd9cd14ef6a594572508cbb2d9c9f544700bde46363f573926000000004847304402200fa171a3d8e4c5105504b498d039d3c386e8325b672c558e97c2751aba8ab0ba022026ba230078fac40413b0d3abc43546d3b9a779eb7af0d08544ac39355475dd4301feffffffdad37c38f84fc6fddee6510ee88705719128b1b5b2dadbc4df7e2e61164e6989000000004847304402202e8751498d9bf91cba9935100dda9cb27f404c91b1531b5dc8904278bb25b0730220537b9a18d368466680fff9c2434788f616b6d99ed46ec04c775cd041d64fc14701feffffff519a0366daed0321fcb1cbb78dd6d5d65febd7e7ea2b100c73396a98a09c2ef50000000048473044022048e89845d80f216f291001fee37e8c7178e40b97af051d57679fc46707a426bf02203ae8c2e132b4c5dbbcd97c59584a0ea9cec6a78294fe7fbfdb86d6ebe13ffc7101feffffff01809698000000000017a914ef3c5e4ee866b692245de650b178d83ca3d0fdbd8782170000 --tx 02000000013db72755b71d95be7f6785448b5387b6273ca26fd5e42204390899154b111a5300000000754830450221009b813cf658ec2c30e68fd23c369c348fd5f915f77b49581a945aa2f2f2d3c8aa022058f6a7eb78b2132d24cc260699fdc158fda6f3a0d10bc3c52bacccc03bb6b8cb012b02c800b27576a921023fb59ee7e5722a9c559d366f6ca114c73361108c04e27a18060cef7a727d58a988acc800007f0100127a00000000001976a914fd337ad3bf81e086d96a68e1f8d6a0a510f8c24a88ac00000000

+515
James Messinger 8 oct. 2014 1:55:13

¿Cómo bitstamp, btc-e, bitfinex, lakebtc, btcchina, comparar en el comercio de tarifa, forma de depósitoy retiro de velocidad?

Que es el más cómodo para nosotros?

+496
Nika Babayeva 23 ago. 2017 11:50:36

Tal vez hacer:

1.) Mover a la actual cartera.dat a una ubicación diferente (se traducirá en la creación de un fresco de la cartera)

2.) Inicio bitcoind/qt con -keypool=1 (si desea evitar keypools)

3.) Llame getnewaddress

Usted también podría considerar el uso de un hardware de cartera.

+485
Keith Nicholas 25 ene. 2014 5:08:46

He enviado BTC a una dirección desconocida. El BTC se muestra como "sobrante" en una blockchain explorer. ¿Cómo puedo localizar o recuperar el BTC?

+472
Lulu Cheng 30 jun. 2017 7:56:21

El propósito de la dificultad es mantener a 10 minutos de retraso medio entre cada bloque y por la manera de asegurar el Bitcoin, la tasa de emisión.

La dificultad se ajusta cada 2016 Bloques (2 semanas) para compensar el aumento o la disminución de la red de potencia de cálculo.

Si la dificultad es tan baja que la red genera bloques en menos de 5 segundos, esto sería muy insegura, porque esto no iba a dejar que el tiempo para los bloques para ser compartidas en la red. El resultado sería un montón de huérfanos de bloques.

Algunos altcoins se iniciaron con 15 segundos bloques de destino. Muchos de ellos, como smallChange failled y no existe ya.

+465
Mo Pelzel 15 dic. 2015 6:38:47

Estoy pensando sobre el pedido de dos 63 GH/s Bitcoin minero de Anamurminers.com vea También: http://anamurminers.com/asic-miner. Puede que esta empresa es de confianza? Dicen que puede enviar de dos en el reino unido en seguida.

+453
Laret Poler 3 sept. 2017 10:21:09

Por supuesto que se beneficiaron, debido a que su valor de mercado justo incrementado en un 300%.

En tu caso:
Había 1BTC (un valor de $5000) el lunes.
Vender 1 BTC y comprar el 50 XYZ( 50 * $100 = $5000).
Luego viene el martes, ambos XYZ y BTC sube un 300%.
Ahora su 50 XYZ tiene un valor de $15000, que el intercambio de 50 XYZ por 1 BTC.
Usted ve, su valor total de mercado aumentó de $5000 a $15000.




+420
Clark Kent 27 ago. 2017 2:42:17

El sha256(sha256(encabezado)) es comúnmente llamado el hash en el mundo Bitcoin. Así que el hash rate es la tasa de sha256(sha256(encabezado)) las operaciones, no la tasa de un solo sha256 operaciones. De lo contrario, probablemente llamado sharate o algo similar :)

+369
Salamandr7532z 18 mar. 2015 23:13:13

El creador tomó el servicio después de venir bajo los ataques de DOS. Él se ofreció a código abierto el software para una recompensa, y que finalmente llevó a su oferta de precio de hasta un 50 Bitcoins. El mensaje con la oferta fue en el kradminer sitio web hasta hace un par de semanas, y sólo recientemente el sitio sido inaccesibles.

+364
Tone 10 oct. 2011 6:31:24

Estoy de minería de Bitcoin y Litecoin utilizando Gridseeds.

Como controlador/servidor estoy corriendo un Raspberry Pi con ArchLinuxARM.

Estoy usando el último Arco de la imagen y compilado cgminer desde este repositorio de github:

https://github.com/girnyau/cgminer-gc3355

Estoy corriendo 10 Gridseeds. De que están funcionando bien en el 3,6 MH/s Scrypt (10x 360kH/s @ 850 MHz) hasta un cierto punto cuando se va Oops:

[ 4565.377848] Incapaz de manejar núcleo de paginación solicitud a la dirección virtual 00002055
[ 4565.385255] pgd = c9df8000
[ 4565.393214] [00002055] *pgd=c9df8000, *pte=00000000, *ppte=00000000
[ 4565.404992] error Interno: Oops: 17 [#1] PREEMT BRAZO

Aquí está una captura de pantalla: kernel paging request

Por qué? Y cómo solucionar este problema?

+360
hichigari 11 nov. 2015 2:28:21

Estoy escribiendo una aplicacion web en PHP que necesita para generar Bitcoin direcciones de sus pmk.

Me han hecho con éxito para P2SH direcciones (comenzando con 1, con un xpub pmk) el uso de la BitWasp biblioteca de php, aproximadamente, usando el método descrito aquí.

Yo quería hacer lo mismo para P2SH-P2WSH direcciones (a partir de 3, con un ypub pmk) para hacer uso de SegWit, pero siempre me sale el mismo error, utilizando el mismo método (el uso de los 49' derivación ruta de acceso en lugar de 44'):

HD tecla magic bytes no coinciden con network magic bytes.

He comprobado y esta biblioteca puede generar P2SH-P2WSH direcciones, pero hasta ahora, sólo he sido capaz de generar a partir de la raw de clave pública (siguiente Bitwasp de ejemplos).

Así que me preguntaba, podría ser apuntado hacia un método para generar la P2SH-P2WSH direcciones de sus ypub usando PHP solo?

+345
frauvoropaeva 27 feb. 2010 14:28:54

Crear una semilla fuera de un hardware de cartera y, a continuación, importarlo en este último no tiene ningún sentido. Hardware carteras tienen una fuerte seguridad debido a que la semilla se genera por sí mismos y nunca reveló el exterior. Yo recomiendo esperar para su hardware cartera y, a continuación, generar y transferir sus monedas en él.

Si usted sabe que el riesgo y todavía quieren generar una cartera en el exterior, a continuación, puede importar el hardware carteras gracias a los 24 palabras de la semilla. Asegúrese de que el software implementa BIP39.

Estas son las normas implementadas por tanto Trezor y Contabilidad carteras:

  • BIP 16 : P2SH serializada de secuencia de comandos de direcciones
  • BIP 32 : jerárquica Determinista Carteras
  • BIP 39 : semilla mnemónico
  • BIP 44 : específicos de la estructura de la cartera
+331
juntapao 1 mar. 2015 12:32:09
Las preguntas relacionadas con el comercio de Bitcoin.
+209
David Hobs 12 feb. 2012 17:23:41
requieren de un 'ecdsa'

public_key_hex = '02a50eb66887d03fe186b608f477d99bc7631c56e64bb3af7dc97e71b917c5b364'
msghash1_hex = '01b125d18422cdfa7b153f5bcf5b01927cf59791d1d9810009c70cd37b14f4e6'
msghash2_hex = '339ff7b1ced3a45c988b3e4e239ea745db3b2b3fda6208134691bd2e4a37d6e1'
sig1_hex = '304402200861cce1da15fc2dd79f1164c4f7b3e6c1526e7e8d85716578689ca9a5dc349d02206cf26e2776f7c94cafcee05cc810471ddca16fa864d13d57bee1c06ce39a3188'
sig2_hex = '304402200861cce1da15fc2dd79f1164c4f7b3e6c1526e7e8d85716578689ca9a5dc349d02204ba75bdda43b3aab84b895cfd9ef13a477182657faaf286a7b0d25f0cb9a7de2'

grupo = ECDSA::Group::Secp256k1

def hex_to_binary(str)
str.scan(/../).mapa(&:hex).pack('C*')
final

public_key_str = hex_to_binary(public_key_hex)
clave_pública = ECDSA::Format::PointOctetString.decode(public_key_str, grupo)

pone "clave pública x: %#x' % clave_pública.x
pone "clave pública y: %#x' % clave_pública.y

msghash1 = hex_to_binary(msghash1_hex)
msghash2 = hex_to_binary(msghash2_hex)
sig1 = ECDSA::Format::SignatureDerString.decode(hex_to_binary(sig1_hex))
sig2 = ECDSA::Format::SignatureDerString.decode(hex_to_binary(sig2_hex))

aumentar la "R valores no son los mismos' si sig1.r != sig2.r

r = sig1.r
pone "sig r: %#x' % r
pone "sig1 s: %#x' % sig1.s
pone "sig2 s: %#x' % sig2.s

sig1_valid = ECDSA.valid_signature?(clave_pública, msghash1, sig1)
sig2_valid = ECDSA.valid_signature?(clave_pública, msghash2, sig2)
pone "sig1 válido: #{sig1_valid}"
pone "sig2 válido: #{sig2_valid}"

# Paso 1: k = (z1 - z2)/(s1 - s2)
campo = ECDSA::PrimeField.nuevo(del grupo.orden)
z1 = ECDSA::Format::IntegerOctetString.decode(msghash1)
z2 = ECDSA::Format::IntegerOctetString.decode(msghash2)

k_candidates = [
campo.mod((z1 - z2) * campo.inversa(sig1.s - sig2.s)),
campo.mod((z1 - z2) * campo.inversa(sig1.s + sig2.s)),
campo.mod((z1 - z2) * campo.inversa(-sig1.s - sig2.s)),
campo.mod((z1 - z2) * campo.inversa(-sig1.s + sig2.s)),
]

private_key = nil
k_candidates.hacer cada uno |k|
 siguiente, a menos que el grupo.new_point(k).x == r
 private_key_maybe = campo.mod(de campo.mod(sig1.s * k - z1) * campo.inversa(r))
 si clave_pública == grupo.new_point(private_key_maybe)
 private_key = private_key_maybe
final
final

pone "clave privada: %#x' % private_key

alguno a favor de convertir el código en python favor de La recuperación de la clave privada cuando alguien utiliza el mismo k dos veces en ECDSA firmas

+187
Ndfhm77 17 dic. 2011 9:59:50

Estoy pensando en un simple suma de la operación, lo que implica la iteración a través de un conjunto de números enteros y llamar a agregar para cada uno. Pero la operación de agregar podría ser implementado usando cosas complejas para el manejo de BigInts, etc., de modo que podría haber un montón de anidación de los llamados "contratos".

Lo que me pregunto es si hay alguna ejemplos de cómo el modelo de transacciones de arquitectura de computadores del nivel de instrucción, la ISA (instruction set architecture), y cómo se podría implementar sin un notable impacto en el rendimiento.

https://blockgeeks.com/guides/ethereum-gas-step-by-step-guide/

También me pregunto si, con el fin de gestionar este como un problema de rendimiento, si cualquier agregación de bloques se realiza. Esto disminuiría la cantidad de bloques creados.

+100
Adina Socol 18 dic. 2013 4:01:05

No puedo encontrar cualquier sitio web o servicio para comprar bitcoins con mi AMEX. www.bctquick.com no funciona aymore ? (página web inactivo)

algún consejo ?

+89
Teja Kumar Bethina 27 mar. 2018 20:14:42

Estoy tratando de resucitar mi simpleminer.py guión, basado en pyminer, para su uso con Bitcoin 0.13.2 pero los cambios en el código a lo largo de los últimos años son abrumadoras. Me enteré de cómo utilizar getblocktemplate usando la excelente Python ejemplos en la wiki (https://en.bitcoin.it/wiki/Getblocktemplate), pero eso no explica qué hacer con el "segwit" cosas, por ejemplo, el "default_witness_commitment" valor.

puede alguien me apunte a algún tipo de documentación que se ha mantenido al día con los cambios en el código? ahora parece que voy a tener para asimilar la fuente, y ni siquiera estoy seguro de que estoy hasta la tarea más.

+65
Laligam Mohan 25 mar. 2013 5:34:43

Usted encontrará el total de hashrate de la red en http://bitcoinwatch.com/ ( en Terahashs/s y en el PetaFLOPs/s ) y muchos otros ineresting bitcoin estadísticas en la misma página.

Acerca de "¿y la gente solo a la minería", seguro que no te entiendo, pero si quieres saber de su propia "solo minero" hashrate usted puede conseguir con el bitcoind comando :

bitcoind gethashespersec
+64
dazza5000 12 abr. 2017 12:46:20

Usted está buscando maneras de mejorar el cliente protecciones contra fallas?

He aquí una lista de sus actuales protecciones:

+13
Robbie97 28 abr. 2019 5:01:30

Mostrar preguntas con etiqueta