Puede un doble pasar el ataque ofuscado por la imitación de las transacciones antes de la horquilla?

Un atacante controla la mayoría de los hash de poder y quiere doble pasar sin levantar sospechas. Si son el fiel reflejo de que el público de la cadena, mientras que la actividad de generación de los privados de la horquilla y la horquilla es corto (digamos 10 cuadras), se puede detectar solamente el doble de pasar por la verificación de la cuadra los hash no se han modificado o darse cuenta de la doble pasar de transacción directamente?

+691
wexv 24 mar. 2010 19:36:50
16 respuestas

Es RonPaulCoin un clon de Bitcoin/Litecoin o hay diferencias más allá de las especificaciones, tales como límite de la moneda y la dificultad del algoritmo?

+983
Railto 03 февр. '09 в 4:24

Comience con una clave pública no válida

Bitcoin direcciones son las pubkeyhash (no clave pública), además de la versión y de la suma de la información, codificada en la base de 58.

Dirección Bitcoin = versión + RIPEMD-160(SHA-256( Clave Pública )) + suma de comprobación

Los pasos para la conversión de una clave pública a una dirección se puede encontrar aquí: https://en.bitcoin.it/wiki/Address

Desde la dirección utiliza el pubkeyhash no de la clave pública podemos aprovechar este por la mezcla de un inválido clave pública (que no puede existir) y, por tanto, producen una dirección válida de un inválido clave pública.

Así que para empezar nos encontramos con una clave pública no válida. Válidos todos los públicos claves de comenzar con 0x04 si sin comprimir y 0x02 o 0x03 si es comprimido. Una clave pública de comenzar con cualquier otro valor es indefinido y por lo tanto no es posible la firma que puede ser creado para satisfacer ese requisito clave. Dado que el gasto de monedas requiere la firma de la transacción con la clave privada correcta, una dirección que tiene que no se conoce la clave privada es unspendable. Mediante el uso de una clave pública que se sabe que no tiene una clave privada que otros pueden confirmar que no hay clave privada existe.

Válido Bitcoin clave pública (no de dirección):

04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f

Una clave pública no válida

0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Hay otras maneras de producir un conocido clave pública no válida. ECDSA claves deben ser exactamente 65 bytes si sin comprimir o 33 bytes si se comprime para una clave con una longitud diferente también será válido. Para comprimir las teclas el valor de y debe ser correctamente producidos a partir de que el valor de x. El punto también debe acostarse sobre la curva. Asimismo, no puede estar por encima del módulo para la curva. Así que hay un montón de maneras de producir seguramente no válido llaves, pero es mejor elegir uno que es obviamente válido. Este es probablemente el más simple, obviamente, no válido de clave pública.

0x00

Esta clave pública no es válido para un número de razones (no producidos por la clave privada multiplicado por el generador, no se encuentra en la curva, no es un punto válido, pero más simple aún no tiene un prefijo válido y no es la longitud correcta).

Lo importante es que esto no es sólo algunos, probablemente, la clave no válida es seguramente la clave no válida.

Usted debe probar su clave pública no válida contra el cliente de referencia para asegurarse de que el cliente informa de como válidas. La validez de las claves es un consenso problema así que esto no va a cambiar a corto de un tenedor.

Producir un válido (pero unspendable) la dirección de la clave pública no válida

Usted puede preguntarse por qué queremos que la dirección sea válida. Todos los clientes deben validar las direcciones dadas por los usuarios para evitar la pérdida accidental de los fondos. Así que una dirección no válida también unspendable pero la mayoría de los usuarios encontrarán imposible enviar los fondos a la dirección. Un P2PkH dirección es la pubkeyhash con la versión y la suma de comprobación de la información codificada en base58.

Cuando usted proporciona una dirección a un cliente Bitcoin que decodifica la dirección de vuelta a la 'cruda' pubkeyhash. Para la producción de una dirección válida significa empezar con una válida pubkeyhash. Esto no es un problema porque el hash de cualquier cosa es válida hash. Los clientes no saben lo que pubkey es un algoritmo hash para producir el pubkeyhash en el fondo, la clave pública no es siempre y funciones hash son de una manera.

El Bitcoin red solo verifica si una dirección está en la forma, longitud, y tiene el derecho de suma de comprobación cuando "validar". La producción de una dirección de una clave pública está más allá del alcance de esta pregunta, pero no hay utilidades y el enlace de arriba proporciona los pasos. El resultado pubkeyhash y codificado dirección se considera como válido por la red y de cliente, pero requiere de un modo demostrable imposible clave privada para gastar los fondos enviados a esa dirección.

Ahora, con sólo la dirección (y decodificado pubkeyhash) un usuario no se puede comprobar que la clave pública no es válido, así que usted debe publicar la cruda clave pública junto con la dirección. Los usuarios pueden recrear la dirección utilizando cualquier cliente bitcoin o herramienta y producir la misma dirección que usted proporcione. Los usuarios tienen ahora una trustless manera de verificar que las monedas son, en efecto, unspendable. Cualquier monedas enviado a la dirección que no puede ser nunca pasó y que efectivamente son destruidos.

Colisión de Hash

Técnicamente es posible, pero improbable para más de una clave pública de a tienen la misma dirección Bitcoin. Esto se llama una colisión de hash. Si la clave pública de p1 y de clave pública p2 tanto hash a la misma dirección, y luego los soldados claves para cualquiera de estas claves públicas puede gastar los fondos. Sin embargo, la probabilidad de que esto ocurra es muy baja. A menos que RIPEMD algoritmo de hash que se rompe la probabilidad de encontrar dos claves públicas que generan el mismo hash (dirección Bitcoin) es de 1 en 2^160 que está más allá de nuestro poder computacional de localizar.

Un par de palabras sobre por qué usted debe utilizar un 'Nada en la Manga' número:

El uso de una "nada en la manga número" (como un solo cero, todos los ceros de una sola repetición de dígitos, números secuenciales, los dígitos de pi, etc) no se requiere ninguna clave pública no válida es igualmente unspendable pero se podría mejorar la confianza del público que todavía no ha encontrado una colisión (tan improbable como que es).

Si usted acaba de tomar una muestra aleatoria de la clave no válida como decir:

00000fdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f

Algunos preguntarán ¿por qué se eligió esta tecla. El miedo sería que usted elija esta clave no al azar, sino porque ha tropezado con una colisión entre esta clave y una clave válida. No hay manera de probar que la clave es aleatorio por lo tanto el miedo seguirá siendo siempre. Funciones de cifrado (como RIPEMD o SHA-256) a menudo usan "nada en la manga valores" para proporcionar la seguridad de que una constante no fue elegido para habilitar algunas de cifrado defecto o una "puerta trasera" en el algoritmo. Por ejemplo, SHA-256 utiliza constantes para los valores iniciales de los bloques de segmentos. Técnicamente estos pueden ser cualquier número al azar, sino que daría lugar a la preocupación de que el 'azar' número no es realmente aleatoria. Así que SHA-256 utiliza los 32 bits de la fracción de la raíz cúbica de los 8 primeros números primos. Esto permite la verificación cuando un pseudo random number es necesario. Es muy poco probable que haya alguna propiedad mágica entre la parte decimal de la raíz cúbica de secuencia de números primos que socava SHA-256.

http://en.wikipedia.org/wiki/Nothing_up_my_sleeve_number

Actualización (03/31/2015)

Es más fácil hacerlo ahora mediante el uso de un OP_RETURN (datos null (nulo) de salida y no aumentar en exceso el UTXO con las salidas que no puede ser gastado, pero la red no es consciente de que no puede ser gastado. Todos los fondos enviados a una salida que contiene OP_RETURN seguramente son unspendable y la red va a caer la salida de la UTXO. El UTXO (no utilizados tx conjunto de salida) es una crítica de los recursos que es necesario para la validación de nuevas transacciones y bloques, de modo que la destrucción de/la quema de monedas con UTXO es un uso más responsable de este recurso compartido.

+944
lu1s 20 sept. 2012 0:45:23

No estoy seguro de si va a intentar responder a tu pregunta, o para convencerse de que esto es una mala idea[1].

Generadas por computadora de papel carteras estarán más seguros (aleatoriedad/entropía), pero si al introducir el código es prohibitivo, entonces usted podría considerar la posibilidad de un cerebro wallet, que permite derivar el público/privado par de claves a partir de una contraseña.

La frase podría ser un personal saludo navideño. Es discutible si el saludo habría suficiente entropía para evitar que sea adivinado -- las consecuencias del uso de una contraseña débil están bien documentados [2]. El cerebro de la cartera debe ser generada en forma segura (sin conexión, cualquier cosa que uno escriba en un formulario web es potencialmente guardado/en caché). Enlace[3].

Su destinatario continuación, deberá introducir la contraseña en brainwallet.org (o su equivalente) para obtener la clave privada correspondiente. Lo que realmente debe hacerlo fuera de línea también, así que hay menos posibilidades de que la clave o la clave privada que se interceptan. Entonces ellos necesitan para importar la clave privada en una cartera de cliente o web de la cartera.

Como para la transferencia de fondos, enviar bitcoin (suponiendo que usted es dueño de algunas de bitcoin) a la dirección pública que ha generado para sus destinatarios -- la generación de un público/privado par de ellos no incluyen la financiación con bitcoin. Si hay alguna posibilidad de que sus destinatarios técnicamente no son lo suficientemente inteligentes como para hacer las traducciones y de importación, entonces usted probablemente no quiere enviar BTC y huérfanos. Pero esa es su llamada.

No he cubierto todo de ellos, pero hay muchas otras razones por las que esto podría ser una mala idea, estoy tentado a abandonar esta respuesta, pero ahora he invertido mucho tiempo en responder. Caveat emptor, YMMV, IANAL.

[1] Mala idea por muchas razones, pero ante todo, las claves privadas deben mantenerse en privado. El envío de ellos significa que podría ser interceptada, posiblemente copiado, y usted y el destinatario nunca se sabe.

[2] http://www.reddit.com/r/Bitcoin/comments/1nbmet/somebody_stole_over_13_btc_from_my_brainwallet_wtf/

[3] http://minetopics.blogspot.com/2013/02/super-easy-offline-bitcoin-wallets.html

+932
jimtut 4 ene. 2019 8:24:47

Supongo que el problema aquí es que la Prueba de la interfaz se carga dos veces, primero cuando el contrato está siendo analizado para las clases internas a la carga, a continuación, indirectamente, cuando el TestImpl clase se carga y que está causando el "intento de duplicar definición de la clase nombre: "com/jelurida/ardor/contratos/TestContract$Prueba de error".

Seguramente es algo que se puede arreglar para la próxima versión.

+910
COLOMBUS43 27 ago. 2015 19:23:00

No creo que se me entiende perfectamente la "dificultad" tema en blockchain, y por lo tanto no entiendo cómo el proceso de minería de cerca de 10 minutos.

Si tengo el valor de "Destino" (algunos de valor de hash, que cada uno de los bloques de valor debe ser menor o igual a este Objetivo), ¿por Qué tarda 10 minutos para encontrar el valor de hash para el bloque? Tal vez cuando el Nonce=2 el valor de la cuadra será <= Destino, tal vez cuando el Nonce = 100000000 el valor de <= de Destino.

Pero si Nonce = 2 , entonces el tiempo de la minería de datos es par de segundos, y si el Nonce = 100000000 , el tiempo de minería de datos es par de minutos..

Así que es una cuestión de suerte o algo, pero el tiempo de la minería de datos puede cambiar.. Entonces, ¿cuál es el principio en el blockchain \ ¿Qué hacer mineros, con el fin de hacer el proceso de minería en 10 minutos promedio?

Soy nuevo en esto de la tecnología así que agradecería respuestas simples Gracias de antemano

+809
Sergio Feo 12 mar. 2019 11:59:04

Uno es el número mínimo. [Este espacio se dejó intencionalmente unblank.]

+631
Penfound 31 ago. 2010 2:38:40

INRBTC le permite comprar/vender bitcoins en Moneda India el uso de la única plataforma de negociación.

Lugar los detalles de su pedido y enviar. se le pedirá un depósito del 10% del valor del pedido en Bitcoins, después de que el depósito sea enviado, el pedido será confirmado.

Tan pronto como su pedido es de concordancia, de un comercio se ejecutarán y se le enviarán los detalles de la operación.

Si la otra parte no respeta el Comercio, se le pagará el 5% del valor del pedido como compensación de la contra-partes de depósito.

Después de la finalización con éxito del comercio, el depósito será devuelto después de la deducción de comisión.

Más información acerca de la plataforma de Trading está disponible en INRBTC Info.

Opiniones de los usuarios sobre el uso de esta plataforma está disponible en los Comentarios.

+480
AMONRA 13 abr. 2019 20:17:29

Color de las monedas de la segunda capa redes que ejecutar otro protocolo en la parte superior de la Bitcoin (o en otro) blockchain. Mientras que transmitan la completa información de la transacción dentro de su red, no hacen uso de sus propios blockchain. Más bien, se anclan sus transacciones en OP_RETURNs en el transportador de cadena para la confirmación. En lugar de gastar un OP_RETURN directamente, el destinatario puede diseñar otra OP_RETURN que las referencias anteriores salidas de pago y acredite la autorización para gastar.

Los nodos de la moneda coloreada de la red de entender tanto el color de la moneda de la red de mensajes y consumir el blockchain de Bitcoin para inferir el estado de la red. Cuando el destinatario de tal color de la moneda de la transacción quiere gastar sus fondos, que codifican otro mensaje en un OP_RETURN. Color monedas se pueden utilizar para representar otros activos tales como acciones o bienes.

Un ejemplo actual de esta red es Omni Capa que negociar con correa de Sujeción. Omni Capa se extiende su red mediante Omni Núcleo, de una extendida variante de Bitcoin Core.

+458
Samir Elmaz 23 dic. 2014 4:26:03

Las primitivas criptográficas utilizadas en Bitcoin son SHA-256 y ECDSA.

Para ECDSA: http://www.secg.org/collateral/sec2_final.pdf

Para SHA-256: http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf

+439
Bacyla 28 oct. 2012 12:29:56

Estoy interesado en la transferencia de Bitcoins entre diferentes carteras: mi Mt.Gox cuenta, mi cliente Bitcoin wallet, y mi monedero de Blockchain. Soy consciente de las dos principales formas de transferencia de fondos entre dos de cualquiera de estos:

  1. Realizar una transacción desde una dirección vinculada a una cartera a una dirección asociada con el resto de la cartera de servicios, o

  2. Exportar clave privada de una cartera y la importación de los mismos en la cartera deseo efectiva de transferencia.

Me preguntaba ¿qué pros y contras que hay para estos dos métodos diferentes y si es evidente que existe una manera "correcta" de hacerlo? Otros métodos, ideas o consejos relativos a la transferencia de Bitcoins entre estos cartera de servicios también sería apreciada. Mi preocupación principal es el mantenimiento de la seguridad, sin embargo la facilidad de uso le creo, obviamente, ser un buen beneficio.

+351
muzz 20 abr. 2017 8:06:39

La "carrera hacia el fondo" es todavía continua en el mercado de la minería y que esperemos continúe. Si cualquiera de los mineros ajustes transcation inclusión como usted sugiere que los haría menos competitivos en este mercado.

Los mineros tienen casi ningún poder para hacer cumplir transcation tasas mientras que el mercado está funcionando como se esperaba, por lo que tu pregunta es algo discutible. Si los mineros se apodera de la red de rehenes que sería un signo de que el cartel se ha formado y la minería/cuota de mercado se ha roto.

Si eso sucede, puede ser que los usuarios y los desarrolladores pueden aumentar el protocolo de que los mineros son una vez más 'rehén' por las fuerzas del mercado.

La dificultad de la evolución es a menudo descrito como "la dificultad de la siguiente manera precio", este no es el modelo el abaratamiento del hardware, sino de lo contrario, se describen las fuerzas de mercado bastante bien (suponiendo que el bloque de recompensas y tasas no van a cambiar rápidamente).

+291
Ian Barnett 15 jun. 2016 22:38:26

Estoy usando bitcoin Qt la versión v0.7.0-beta y cuando traté de enviar una transacción (1.5 bitcoins) he recibido un mensaje

la transacción no se pudo crear

¿cuál puede ser la razón? Hace unos minutos he enviado 0.1 bitcoins y fue aceptado. Tres horas me envió 0.3 bitcoins y fue aceptado y recibido en el otro lado.

He probado a reiniciar el monedero, pero esto aún sucede.

P. S. tengo más de 1,5 bitcoins cuando estoy tratando de enviar.

Sólo un par de observaciones. Traté de enviar un 0,3 y un 0,5 bitcoins, una vez más y se trabaja con dos de ellos.

Sólo intentó una vez más a la transferencia de algunos bitcoins a otra cuenta en BitCoin Qt (versión v0.8.3-beta - la más reciente en el momento de la escritura).

Esta vez estoy recibiendo algún mensaje de error adicional, que todavía no es útil.

Transacción demasiado grande

y justo después de otro

Error: la Transacción no se pudo crear!

P. S. tan sólo hace unos días que he actualizado el cliente a v0.8.5-beta , pero el problema todavía existe. Realmente quiero pasar mis bitcoins, pero no puede hacer esto. También traté de diferentes direcciones.

+279
Shanthanu 5 jul. 2018 12:51:45

Con FPGAs y más aún con ASICs, el costo de la electricidad es sólo una fracción de los costos de la minería.

Así, mientras que la GPU de los mineros tenían un incentivo para operar durante las horas del día cuando fue la más rentable, y el poder durante otros momentos del día, el único enfoque con FPGAs y ASICs es para ponerlos en funcionamiento 24x7.

Esto puede cambiar en un año o tres, donde el costo de la electricidad se convierte en un factor importante en la minería una vez más, pero espero que para entonces los costos de transacción son una parte mayor de los ingresos de minería. Aquellos que actúan como una auto-corrección mecanismo. Si la capacidad de las gotas de modo que sólo tres bloques en que se extraen por hora, el bloque de recompensa subsidio (25 BTC por bloques, comenzando por el bloque de 210.000) es el mismo, pero la cuota de los ingresos será mayor en cada bloque de base, dando así los incentivos para mantener la minería.

+179
ulquiorra4espada4 30 may. 2012 15:00:59

Así, un nodo que crea una transacción necesita para que se propagan. Se conectan a otros nodos. Normalmente a un número razonable de 8 nodos (por favor, consulte getpeerinfo en el cliente).

Como un ejercicio mental: Si el 8 nodos (que yo seleccionados al azar de la red) pertenecen a la misma persona, esa persona tendrá la posibilidad de capturar el 100% de mi tráfico. Mi dirección IP será conocido, pero también podría tratarse de un ataque selectivo que impide que mi transacción de ser transmitido (es decir, él/ella decide dejar se basa en el envío de mi dirección bitcoin).

El más nodos en los que el atacante haya, más posibilidades de tener todas las conexiones salientes de las víctimas además de la posibilidad de hacer análisis de datos. También más probabilidad de abandonar (o seleccionadas al azar) de las transacciones.

No sé, la economía detrás de un ataque de esta naturaleza. La compra de 5000 mv para ejecutar nodos podría costar mucho.

Ejemplos hay que pedir bitcoin para configurar completa de los nodos, como https://classic-cloud.net/ [1]. como 2016-04-01 han 810 nodos de ejecución. Así que usted puede imaginar que podría ser capaz de rastrear algunas transacciones a IPaddress.

Edición: [1] como de 2019-05-17 esto no es más que una página que ha estadísticas acerca de los nodos, sino un blog.

+171
Zazik123 24 mar. 2019 14:07:19

+1 para la solución de problemas de su propia pregunta. Hay una muy buena de "referencia" aquí:

http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html
https://en.bitcoin.it/wiki/Protocol_specification#tx 
http://bitcoin.stackexchange.com/questions/3374/how-to-redeem-a-basic-tx

El 47 al principio es la longitud de la cadena siguiente (en hexadecimal), aquí está una explicación de este ASN.1 estructura:

# ASN.1 ESTRUCTURA DE LA CLAVE PRIVADA:
# 30 <-- declara el inicio de un ASN.1 secuencia
# 74 <-- longitud de la secuencia siguiente 
# 02 <-- declara el inicio de un entero
# 01 <-- longitud de número entero de bytes (1 byte)
# 01 <-- valor de número entero (1)
# 04 <-- declara el inicio de un "octeto de cuerda"
# 20 <-- la longitud de la cadena a seguir (32 bytes)
# 7d 86 0c 9a 9b 19 47 9b 19 1f 99 23 a7 12 ... df f9 43 43 58 f2 26 23 bc 
# \----------------------------------------------------------------------/
# esta es la clave privada 
# a0 <-- declara el inicio de un contexto específico etiqueta 0
# 07 <-- longitud de un contexto específico de la etiqueta 
# 06 <-- declara el inicio de un IDENTIFICADOR de objeto
# 05 <-- longitud de ID de objeto a seguir 
# 2b 81 04 00 0a <-- el ID de objeto de la curva de secp256k1
# a1 <-- declara el inicio de un contexto específico de la etiqueta 1
# 44 <-- declara la longitud de contexto-sepcifc etiqueta (68 bytes)
# 03 <-- declara el inicio de una cadena de bits
# 42 <-- longitud de cadena de bits a seguir (66 bytes)
# 00 <-- ??
# 04 f1 f0 44 cc 00 80 af d2 b7 3f 13 37 6c ... 05 49 cd 83 f4 58 56 1e
# \-------------------------------------------------------------------/
# esta es la clave pública
+151
Soboo 15 abr. 2017 22:46:06

Bien, me pregunto ¿qué está pasando aquí. Recientemente he sincronizado mi billetera después de comprar algunos bitcoins, pero nunca he recibido de ellos. El hombre que los envió a mí, me envió el blockchain dirección. Así que, no creo que haya estafado a mí, pero aquí está la cosa:

Buscando en la transacción, en el lado de envío (a la izquierda) es su dirección y en el lado de recepción (el derecho) es el mío, sino también su dirección de nuevo en virtud de la cual se dice que "pasó". ¿Significa eso que ha pasado las monedas antes de que he recibido de ellos y no voy a obtener? O qué significa, que debe ser de mí y de mi cliente es defectuoso? Yo no estaba seguro, así que he des-instalado el cliente y reinstalado, luego importar el archivo de copia de seguridad. Supongo que pronto voy a saber, si era un fallo de mi cliente bitcoin o algún otro problema. Sin embargo, dijo que está conectado antes, pero nunca he recibido los bitcoins, así que no sé. ¿Qué crees que pudo haber sucedido?

+111
Agulesin 5 sept. 2010 15:21:26

Mostrar preguntas con etiqueta