¿Cómo se puede firmar datos con una clave privada? [javascript]

El uso de BlockCypher la herramienta de firma (enlace), que yo pueda firmar los siguientes datos:

05de69f5d37f41340eed3230f03d2394dde5e497738a76f027b7d962a0cbdf39

con la clave privada:

2fd7cab0970c692b4151d77a6aeebcae2a3284556cbfc6f182c571eccfc2424f

para obtener el resultado:

30440220352f6d47bc33e2596600c6a297a0e3e84079a9b2f16d10cb9396993370365976022062a30c63adfeef315bcfc690e254dd3b6d4f14fe9919317e14ebb15c29325326

Sin embargo, estoy no soy capaz de replicar esta usando javascript usando el bitcoinjs-lib módulo. Mi intento es el que se muestra a continuación:

var bitcoin = require('bitcoinjs-lib")
var wif = require('wif')

var dataToSign = '05de69f5d37f41340eed3230f03d2394dde5e497738a76f027b7d962a0cbdf39'

var wifObj = wif.decode('KxpiD4T1QHFahGVyg9onfLXjbwBSf5Dyh3bpyy899uxqhn6gfnbz')
var claves = bitcoin.ECPair.fromPrivateKey(wifObj.privateKey)

var firmado = teclas.signo(Buffer.a partir de(dataToSign, 'hex'))
var signedHex = firmado.toString('hex')
+84
Silentbobscoins 23 abr. 2018 23:00:25
20 respuestas

Segwit nodo de convertir las transacciones y bloques "sobre la marcha", mientras que el envío de ellos a su no-nodo actualizado. Usted va a ver nadie-puede-pasar salidas y redime a partir de tales resultados. Usted no verá ningún parámetro adicional, el testimonio de datos y cualquier otro segwit cosas.

+999
loopernow 03 февр. '09 в 4:24

Estoy teniendo varios problemas de obtención de pruebas para ejecutar correctamente bajo mi tenedor (o vbuterin del pybitcointools, y estoy esperando que alguien con un combinado de Python / Bitcoin conocimiento puede proporcionar alguna información.

Aquí está el mensaje de error (tal como fue presentado a #145):

======================================================================
FAIL: test_all (__main__.TestTransaction)
----------------------------------------------------------------------
Traceback (la mayoría de llamada reciente pasado):
 Archivo "/private/var/mobile/Containers/Shared/AppGroup/AA78F2EC-3EE8-40F4-A318-8A9AB1BCB5FF/Pythonista3/Documents/pybitcointools-vbuterin/test.py"línea 179, en test_all
 auto.assertTrue(verify_tx_input(tx1, 0, mscript, sig1, pubs[1]), "Comprobación de Errores")
AssertionError: Error De Verificación De

======================================================================
FAIL: test_all (__main__.TestTransactionSignVerify)
----------------------------------------------------------------------
Traceback (la mayoría de llamada reciente pasado):
 Archivo "/private/var/mobile/Containers/Shared/AppGroup/AA78F2EC-3EE8-40F4-A318-8A9AB1BCB5FF/Pythonista3/Documents/pybitcointools-vbuterin/test.py", de la línea 133, en test_all
 "Comprobación de errores"
AssertionError: error de Verificación de

----------------------------------------------------------------------
Corrió 18 pruebas en 6.944 s

FALLA (fallas=2, errors=2)

Tengo una corazonada de que esto tiene que ver con la introducción de low_s (es decir, s = N-s si s>N//2 persona s) para la firma ECDSA, pero no puede ser cierto.

Puede alguien señalar donde las cosas van por mal camino?

+988
Atomika 5 oct. 2018 13:19:56

Otros han comentado sobre la posibilidad técnica de este, así que me ocuparé de la economía:

No creo que cualquier smart minero iba a hacer esto. Por qué? Porque destruiría la confianza en la red. Si los mineros estaban dispuestos y capaces de listas negras de las monedas almacenadas en Satoshi las direcciones, entonces ¿quién dice que ellos no hacen lo mismo con las monedas almacenados en cualquier otra dirección? El valor de la red está muy estrechamente ligada a su seguridad. Dar a los usuarios una razón para dudar de esto y van a huir, y los precios de choque.

+964
Joseph Zimmermann 10 ago. 2011 21:10:02

Primero de todo: no sé nada acerca de NEO, solo puedo darte lo que yo sé acerca de Etereum.

Hasta donde yo sé no es posible implementar una secuencia de comandos de python en el Etereum de la red. En Etereum sólo puede implementar de Etereum bytecode. Es compilado a partir de smart contratos escritos en la Solidez, la Serpiente, la liga de la leche o Vyper.

Otro código de Etereum bytecode nunca serán almacenados en el Etereum blockchain (al menos no en un archivo ejecutable manera).

Cuando se desea construir un dApp es necesario escribir la necesaria inteligente contrato y (si es necesario) en algún lugar de acogida de su python (o lo que sea) frontend y/o backend.

+954
carrino 19 jul. 2019 3:16:19

Sí, podría. No es muy probable, pero podría suceder.

Sin embargo, una cosa a tener en cuenta es que Bitcoin es increíblemente resistente a este tipo de problemas. Todos los que participan en el Bitcoin red tiene un incentivo para mantener esa red útil. Así que un nuevo cliente con una dificultad diferente algoritmo podría ser lanzado en un par de días y la red de la transición en menos de una semana si es necesario. La dificultad de ajuste puede cambiarse si es necesario.

Por un lado, el "6 confirmaciones de la regla" es una exageración. La gente podría compensar en la aceptación de 4 confirmaciones de transacciones por debajo de $10,000 o su equivalente.

Idealmente, la gente iba a ver este riesgo viene de varios meses de distancia y se puede implementar una solución antes de que se necesitaba. Si las circunstancias de alguna manera sugiere que esta era una posibilidad realista, incluso en la ausencia de un verdadero ataque de un consenso de la comunidad y plan de transición podría ser desarrollada e implementada. Alternativa dificultad algoritmos ya han sido propuestos e incluso aplicarse (en otro bloque de cadenas) que no tienen este problema.

Ahora, creo que ese cambio sería una mala idea. El problema es muy raro, y cualquier cambio de masa en la lógica de Bitcoin podría socavar la confianza en la estabilidad a largo plazo del sistema. La gente podría pensar "si se cambia la dificultad del algoritmo de hoy, tal vez van a cambiar el Bitcoin, la tasa de generación de mañana".

+925
Mark Rabinovich 19 abr. 2011 6:12:56

Moneropedia define el "anillo de firmas" como:

Anillo de firmas asegúrese de transacción individual salidas en el blockchain no pueden ser rastreadas. Un anillo de la firma es un grupo de firmas criptográficas con al menos un participante, pero no hay manera de decirle que en el grupo es el real, ya que todo parece válido, mientras que la clave de la imagen de evita doble gasta. Cuando el envío de una transacción, se selecciona una muestra aleatoria de transacción salidas en el blockchain y mezclar aquellas personas que tienen su propio "real de las monedas". La mezcla de monedas es forzada a través de la red, haciendo que todas las monedas de "igualdad". Debido a que cada transacción de salida tiene la capacidad de negación plausible en su estado (pasado o no utilizados), no hay fungibilidad de los problemas con monero

Para leer cómo Monero le da una privacidad por defecto (unlinkability), ver sigilo direcciones.

Un grupo de firmas criptográficas con al menos un participante, pero no hay manera de decirle que en el grupo es el real, ya que todo parece válido.

Suena como Moreo del anillo de firmas son, básicamente, una forma de construcción de la mezcla en el derecho. Así, es Monero efectivamente el mismo que Bitcoin+mezcladores?

+749
Rage Kage 30 jun. 2014 0:27:43

Si el P2SH salida ya está redimido, entonces la transacción que gastaron debe haber proporcionado la redeemscript con el scriptSig en el punto fuera para que P2SH de salida.

El último empujón de datos en el scriptSig contiene toda la redeemscript (https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki#Specification).

E. g. para una multi-firma el scriptSig que pasa la salida será de la forma:

scriptSig: 0 [signature1] ... [signatureM] {M [pubkey1] ... [pubkeyN] N OP_CHECKMULTISIG}

Donde todo dentro de {...} es un empujón de que redeemscript que usted sólo tenga que extraer.

+695
v8media 19 abr. 2018 15:28:42

En Las Tradicionales Agrupadas De Minería De Datos:

Para resolver el problema de la alta varianza, la minería de piscinas fueron creados. En un sistema tradicional, la minería de la piscina, muchas personas todos de acuerdo para combinar sus esfuerzos de minería y dividir las recompensas de acuerdo a sus aportaciones.

Basado en que:

Por ejemplo: Hay 500 mineros en la misma piscina. Como entiendo que todos tratando de diferentes nonce para llegar a una solución que es menos de la dificultad.

Basado en esta respuesta:

la minería está haciendo el trabajo de búsqueda de nonce para que sha256(sha256(datos+nonce)) < dificultad

[Q] en General, Hacer todos los mineros en la misma piscina crear soluciones con diferentes nonce entre uno y otro, o hay alguna posibilidad de que varios de los mineros puede crear la misma solución utilizando el mismo nonce no darse cuenta.

Si sí, Cómo los mineros en el mismo grupo de búsqueda no la superposición de conjuntos de nonce candidatos ya tratado por otros mineros para encontrar una solución?

+683
user1526510 31 dic. 2016 15:18:52

¿El bitcoin-core cliente tiene alguna RPC API para consultar la clave de la piscina? Tengo ciertas dirección bitcoin que quiero comprobar si la cartera tiene acceso a (ya sea a través de la clave privada o a través de HD-clave privada de la derivación).

Hay una manera de comprobar mediante programación esto? Yo iba a usar signmessage pero que necesita de mí para desbloquear el monedero con la primera frase de contraseña.

+626
Kennsington 30 nov. 2016 3:53:44

Es un Segwit de salida y por lo tanto no tiene la dirección asociada con ella. El bloqueo de un guión para un Segwit transacción incluye el testimonio de la versión (0 en este caso) y la canjear script (que es 43aac20a116e09ea4f7914be1c55e4c17aa600b7). Dado que la longitud de la canjear guión es de 20 bytes, este bloqueo de la dirección es de pago testigo clave pública hash (P2WPKH). De ahí la canjear script es hash160 de los comprimidos de clave pública.

Desde Segwit fue implementado con un suave horquilla, hay clientes que no han actualizado su software. Para estos clientes, el bloqueo de script en una manera que nadie puede pasar la salida. Pero para Segwit consciente de los clientes, se darían cuenta de que es un Segwit transacción con 0 como el testimonio de la versión.

Usted podría crear un pay-to-script-hash de la P2WPKH. Por eso me refiero a que podría incrustar el testimonio de una secuencia de comandos y generar una dirección. Lo que usted necesita hacer es tomar hash160 de (0x001443aac20a116e09ea4f7914be1c55e4c17aa600b7). El primer byte 00 es el testigo de la versión, el segundo byte (14) representa los bytes para empujar a la pila (20 bytes) y el resto es su testigo. A continuación, puede base58check codificar mediante un prefijo de '0x05'

En el futuro, se espera que la mayoría de los clientes de actualizar a Segwit. En ese momento, se propone que la dirección sea bloqueado será un base32encode de la secuencia de comandos (0 43aac20a116e09ea4f7914be1c55e4c17aa600b7). La dirección de empezar con la ac para mainnet, separados por 1 y, a continuación, la versión codificada incluyendo la suma de comprobación. Estas direcciones se denominan Bech-32 dirección.

Esta es la forma en que la dirección de la mirada. Consulte BIP-173 para más detalles.

Mainnet P2WPKH: bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4

Testnet P2WPKH: tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx

Mainnet P2WSH: bc1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3qccfmv3

Testnet P2WSH: tb1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q0sl5k7

+587
Michael Bissell 29 may. 2010 15:03:27

Estoy tratando de averiguar cómo los costos de transacción son distribuidos a los mineros.
Le pagamos a una muy alta cantidad de dinero para enviar bitcoins, pero, ¿a dónde iría a parar el dinero? Se comparten equitativamente entre todos los mineros? Mi primer pensamiento fue que el nodo que confirmar las transacciones se va a conseguir las tarifas, pero es todo un desenfoque.
Muchas gracias!

+554
Don Roszel 18 dic. 2013 3:06:26

Como otros han dicho, debido al miedo de ti pidiendo ser cargado a la espalda, casi ningún vendedor se va a aceptar una tarjeta de crédito/débito en el cambio de Bitcoins.

Si su banco le permite obtener dinero en efectivo como una especie de "transacción de tarjeta de crédito" (algunos lo hacen!) es posible que desee probar esa opción y, a continuación, pagar en efectivo - puede siempre encontrar gente con mucho gusto la venta a cambio de dinero, y todavía se puede pagar mensual (en fiat) a su banco:

https://localbitcoins.com/

+546
vera2003 24 feb. 2018 3:23:02

Por favor, hacer una sugerencia ¿por qué bitcoin precio fluctúa mucho casi todos los días. Es esta fluctuación artificial? ¿Cómo está organizado?

Que yo sepa, ya hay 12 millones de bitcoins. En bolsas de valores a los comerciantes vender o comprar bastante modestas sumas de dinero, de unos cientos o miles de monedas.

Cómo puede esta influencia (caída de los precios del 10% de un día) millones de bitcoins tanto?

+527
Chelle Ellis 20 dic. 2014 19:15:50

Estoy configurando una tienda online para vender productos digitales. Yo ideal sería sólo aceptan Bitcoin pagos, sin embargo en la mayoría de los usuarios no usan Bitcoins o no puede trabajar. Por lo tanto, tengo que aceptar tarjetas de crédito, Paypal, etc. para hacer un beneficio. Mi pregunta: ¿existe un servicio que proporciona todas estas pasarelas de pago, pero se pueden combinar cada servicio de un Bitcoin wallet?

Por ejemplo, Un cliente paga por Paypal, el cliente B con Skrill. Ambos pagos en una cuenta única, donde puedo retirar el dinero a un Bitcoin wallet.

Gracias!

+406
user96822 2 oct. 2017 12:40:42

Sin embargo, estas transacciones pueden contener información sensible (como los detalles de su cliente).

Las transacciones de Bitcoin simplemente no contienen información confidencial, que no necesita ninguna otra información aparte de la cantidad y el receptor, lo que significa que la publicidad de la misma es de menor preocupación. Todavía hay implícito de los problemas de privacidad en Bitcoin, pero evitar cualquier problema con la información personal se almacena en la cadena de simplemente no hacer nada que pueda causar esta información para ser incluidos.

+225
glucas350 17 jul. 2013 10:51:18

Donde el usuario de correo electrónico y contraseña se almacenan cuando el usuario registrado en la web de la cartera de sitios web como blockchain.com ?

Es el blockchain.com interactuar directamente con el blockchain de bitcoin y almacenar el correo electrónico y la contraseña en blockchain ??

Cómo la web cartera de obras ? Cómo se interactúa con el blockchain ?

Lo siento por la gran cantidad de preguntas en una , La principal cosa que quiero entender cómo el más seguro a la web cartera de interactuar con blockchain ?

+220
Toss Newsense 18 may. 2010 15:54:37

En primer lugar, usted puede validar la utxo establecido para la mayor parte, utilizando SPV pruebas. Esencialmente, eso significaría que usted necesita el 80 bytes de bloque de los encabezados de cada bloque (actualmente 410,000 o menos, lo que significa un 32 mb de la pena de encabezados) y cada una de las transacciones en el utxo conjunto puede llevar a un merkle prueba para el bloque que fue publicado en, que puede ayudar a validar el conjunto. Así que llegar a un UTXO establecer junto con el merkle pruebas para cada transacción serían por lo menos tener algo decente promesas de validez.

Segundo, es posible que el UTXO establece que a alguien más le da a usted puede ser que falta cierta UTXOs o ser de otra manera el envío pasó transacción salidas. De esa manera, es posible que otro usuario para engañar a usted acerca de la UTXO conjunto completo.

Tercero, el peligro en la obtención de una UTXO conjunto de alguien más que poner en peligro su propia privacidad. Esto está bien para un montón de gente (aquellos que utilizan SPV carteras, por ejemplo), pero no puede ser para usted.

+202
mashulka267523 10 ago. 2013 0:17:03

Hay algo como esta descrito en la wiki.

Actualización: Como Meni escribió en un comentario más abajo, esto es más flexible de lo que usted requiere, puesto que usted ya sabe que debe pagar, y cuánto.

Así podemos crear una única transacción, con 2 entradas, una de Alice y uno de Bob, y una sola salida para el destinatario del pago.

Alice y Bob necesidad de tener una entrada en su cartera de tamaño adecuado, así que no te preocupes sobre quién se queda con el cambio. Entonces Alice le dice a Bob lo que de entrada va a utilizar. Bob hace una transacción, incluyendo tanto la de Alice y Bob entrada, y firma su entrada con SIGHASH_ALL, lo que significa que su firma no es válida a menos que Alice también signos de su entrada. Él, a continuación, envía la transacción incompleta a Alice para ella el signo, firma su entrada, y envía el resultado a la red.

+176
TempUser 11 feb. 2014 9:38:52

Tengo un Bitcoin Core nodo en mi equipo y tener un Windows tablet. Mi cartera está en el equipo y quiero mantenerlo allí. Es allí una manera de tener mi tablet crear una nueva dirección Bitcoin para mi cartera diciéndole a mi nodo a hacerlo y me envía el resultado, por lo que mantiene mi privado llaves y la cartera de mi tablet?

+92
Surendra Bhalerao 4 jun. 2019 3:07:24

Grandes recursos aquí para ayudarle a elegir un monedero: https://bitcoin.org/en/choose-your-wallet

La verdad, tener tu propia cartera que funciona a través de Windows/Android/Chrome podría ser complicado para los principiantes. Si no te importa un web basado en cartera en donde es controlada por otra parte, me gustaría sugerir el uso de Coinbase, Xapo, o Círculo como la forma más fácil de obtener algo de la cruz-plataforma.

Con un web basado en la billetera, usted todavía puede mantener un grado de control por mantener a la mayoría de ustedes bitcoin en un hardware cartera, un dedicado equipo sin conexión que se ejecuta su propio bolsillo, o una billetera de papel y, a continuación, utilizar la web basada en cartera por montos menores.

+60
Ravi Tjk 19 may. 2016 15:17:26

Mostrar preguntas con etiqueta