Que versión fija CVE-2010-5141 (atacante puede pasar cualquier moneda)

Este post by Mike Hearn se relaciona un poco de interés de la historia:

Cuando Bitcoin fue lanzado por primera vez, contenía dos completamente fatales errores que hicieron que todo el sistema de valor. Afortunadamente, se encontró y corrigió antes de Bitcoin en realidad tenía serias valor.

El primer error fue que los scripts se concatenan antes de que se ejecute en lugar de sólo el uso de la pila. Esto significa que cualquier persona puede escribir un scriptSig que siempre se evalúa a verdadero y reclamar a nadie más monedas. Fijo aquí en v0.3.2:

https://github.com/bitcoin/bitcoin/commit/73aa262647ff9948eaf95e83236ec323347e95d0

Sin embargo, en el enlace que aparece a punto para la 0.3.7 actualización.

Mirando el diff, esta actualización no aparece para cambiar el intérprete de comandos en la manera en que Mike descritos.

Una búsqueda resultó muy poco en la 0.3.7 actualización. Un éxito fue esta pregunta, que no genera respuestas:

Me di cuenta de que 0.3.7 es publicado en el sitio web, pero después de buscar en los foros no puedo encontrar ninguna información sobre los cambios que están. No importa que los cambios de versión debe ser empaquetado con la descarga....

cualquier persona de atención a la idea de mí en esto?

El CVE página, sin embargo, hace esta afirmación:

El 28 de julio de 2010, dos errores fueron descubiertos y lo demostró en la red de prueba. Uno aprovechara un error en la transacción de manejo de código y permite a un atacante gastar las monedas que no poseían. Esto nunca fue explotado en la red principal, y fue fijado por Bitcoin versión 0.3.5.

Así, dependiendo de la fuente que uso, la liberación que se ha solucionado el error fue 0.3.2, 0.3.5, o 0.3.7.

Dado que este fue uno de los peores errores en Bitcoin de la historia, parece que la documentación debe ser más consistente. Puede que alguien me apunte a otras fuentes que podrían ayudar a aclarar las cosas?

+79
Ravi Verma 28 nov. 2013 8:03:03
25 respuestas

Así que usted quiere hacer una transacción de una cartera a otra, y para que alguien se moleste mina que la transacción se debe de obtener el pago de esa pequeña cuota.

+881
TheWizard 03 февр. '09 в 4:24

Estás muy cerca.

bip32_ckd devuelve un BIP-32 extendido de clave pública, sin embargo pubtoaddr espera como entrada un "normal" no-extendido de clave pública, ya sea en crudo o hexadecimal codificado en forma (y no comprueba si la clave pública parece válida). Aquí es lo que usted desea:

./pybtctools bip32_ckd $xpub 0
> $xpub0

./pybtctools bip32_ckd $xpub0 0
> $xpub00

./pybtctools bip32_extract_key $xpub00
> $pub00

./pybtctools pubtoaddr $pub00
> $addr
+846
Murathan1 28 ago. 2013 15:33:49

Si alguien está tratando de esto en 2017, openssl ha incumplido el uso de SHA256 en lugar de MD5 asumido en los mayores respuestas. Agregue "-md md5" (sin las comillas) para su openssl cadena de línea de comandos.

https://superuser.com/questions/1245384/openssl-bad-decrypt-between-0-9-8o-and-1-1-0f

Por ejemplo, originalmente sin que MD5 opción que estaba viendo:

$openssl enc -d -aes-256-cbc -a-en bitcoin-la cartera de copia de seguridad-2017-09-28 -fuera descifrada
introduzca aes-256-cbc contraseña de descifrado: ******
mala descifrar
140031244338432:error:06065064:digital envolvente rutinas:EVP_DecryptFinal_ex:mala descifrar:../crypto/evp/evp_enc.c:535:

Pero luego, con la opción MD5:

$openssl enc -d -aes-256-cbc -a-en bitcoin-la cartera de copia de seguridad-2017-09-28 -fuera descifrada -md md5
introduzca aes-256-cbc contraseña de descifrado: ******

Se ejecuta con éxito y crea un archivo llamado "descifrado", que es principalmente de datos binarios, pero comienza con ^Vorg.bitcoin.la producción de^R y contiene 12 palabra mnemotécnica como texto cerca de la parte superior del archivo.

+828
Tali Weinstein 9 mar. 2019 18:12:30

Esto se explica en la actual Beta de la Guía:

Zcash tiene dos tipos de dirección: un z-addr es completamente una dirección privada que utiliza el conocimiento cero demostrando sistema de escudo de una transacción y el equilibrio de privacidad. Un t-addr (también conocido como "transparente" dirección) es similar a una dirección Bitcoin.

Una dirección puede ser creado usando:

zcash-cli getnewaddress # t-addr, o
zcash-cli z_getnewaddress # z-addr

t-addr es de 36 caracteres cadena que comienza con t.

z-addr tiene 96 caracteres y empieza con z.

+794
Jon Travens 11 jul. 2013 8:06:21

En la primera versión pública, ui.cpp ha este código en las líneas en el tema:

void CSendingDialog::OnReply3(CDataStream& vRecv)
{
 int nRet;
trate de
{
 vRecv >> nRet;
 si (nRet > 0)
{
 Error("El pago fue enviado, pero el destinatario era 
 no se puede comprobar que.\n"
 "La transacción es registrada y se de crédito a 
 el destinatario, si es válido,\n"
 "pero sin la información de comentarios.");
de retorno;
}
}
 catch (...)
{
 / / / / ¿qué queremos hacer?
 Error("el Pago fue enviado, pero no válida se ha recibido respuesta");
de retorno;
}

El try catch declaración en la parte inferior se muestra el error como forma de pago enviado pero no se ha recibido respuesta. En este caso, ¿significa esto que el enviar BTC se perdería para siempre como en esta pregunta o ¿significa esto que la transacción sería parte de algunos huérfanos de bloque (como aquí).

Bono, fue algo hecho para abordar el comentario en el código?

+727
Aiba Adachy 28 jun. 2018 6:04:51

Yo no soy un experto con BTC o de otros cryptocurrencies pero fue una agradable manera de hacer algo de micro transacciones y a lidiar con algunos proveedores.

Mi pregunta es, ¿por qué demonios una Tasa media es de alrededor de 20% de la transacción? ESTO ES ENORME.

Es alguien sigue utilizando BTC? Tal vez estoy haciendo algo mal aquí, pero después de algunos controles sobre https://bitcoinfees.21.co/ y blockchain parece que esos son los verdaderos cargos y personas que siguen pagando. Por qué?

Captura de pantalla: http://take.ms/muElO

+693
Dasha555 25 oct. 2013 13:35:21

Un Bitcoin minería ASIC:

  • no intento de completar una sola hash, más bien fragmentos de dos SHA256 compresión de rondas que se compara con un objetivo, el resultado nunca es devuelto
  • no puede aceptar arbitraria de información que no está en la forma de un parcial SHA256 compresión de ronda

Así que en términos de competitividad, una CPU puede completar con un valor de hash SHA256, un minero ASIC no se puede, que supongo que lo pone por delante en este arbitraria de la carrera.

+675
Vahn 21 ene. 2017 21:10:05

Las preguntas no responder a la pregunta. Aunque puede que no tenga sentido para lograr un mil conexiones, he aquí cómo hacerlo en Debian. Usted quiere hacer algunos leves cambios en el código y compilar bitcoind:

Obtener los paquetes necesarios para compilar:

$ aptitude install git hacer build-essential libssl-dev libboost-todos-dev libdb-dev libdb++-dev libminiupnpc-dev

Clonar el repositorio git (asegúrese de que la versión es la más reciente de rama):

$ cd /usr/src
$ sudo git clone -b 0.8.4 https://github.com/bitcoin/bitcoin
$ cd bitcoin/src

Editar el net.cpp archivo:

@@ -27,7 +27,7 @@
 using namespace std;
 el uso de espacio de nombres impulso;

-static const int MAX_OUTBOUND_CONNECTIONS = 8;
+static const int MAX_OUTBOUND_CONNECTIONS = 1000;

 bool OpenNetworkConnection(const CAddress& addrConnect, CSemaphoreGrant *grantOutbound = NULL, const char *strDest = NULL, bool fOneShot = false);

@@ -1533,7 +1533,7 @@
 OpenNetworkConnection(CAddress(vserv[i % vserv.size ()]), y subvenciones);
MilliSleep(500);
}
- MilliSleep(120000); // Reintentar cada 2 minutos
+ MilliSleep(5000); // Reintentar cada 5 segundos
}
}

1.) Cambiando MAX_OUTBOUND_CONNECTIONS, el cliente se vaya a conectar hasta que llega a 1000, proactivo conexiones.

2.) Cambiando el sueño de tiempo de espera de las nuevas conexiones se trató con más frecuencia.

Compilar e instalar bitcoind:

$ sudo make -f makefile.unix
$ sudo mv bitcoind /usr/bin

No olvides poner el maxconnections en bitcoin.conf:

maxconnections=1000

Inicio bitcoind y su hecho. El cliente va a hacer un montón de conexiones muy rápido.

Descargo de responsabilidad: Como Pieter Wuille señaló, puede dañar la red para ejecutar una versión modificada de cliente como este. Por favor, utilice esta solución únicamente para fines de investigación y no como una solución permanente.

+663
Lukovka1981 16 mar. 2017 16:47:16

Hola A Todos :)

Me gustaría nominar a mi mismo para esta posición.

Para ser honesto, estoy aprendiendo mi camino a través de bitcoin, pero todavía quiere ayudar a aquellos que están empezando sus pasos en este.

Vine a saber acerca de Bitcoin antes de 2013 y fue en 2013 tuve mi primer Bitcoin Transacción.

A partir de ese momento, yo estaba realmente fascinado acerca de esto, y era un ávido usuario de esta tecnología.

No tengo gran reputación, pero he estado tratando de hacer mi mejor esfuerzo para pasar tiempo de calidad para este StackExchange cada día.

Si me dará esta oportunidad, voy a intentar mi mejor esfuerzo con mis conocimientos para ayudar a este foro y a sus usuarios.

Que tengan un gran día!

Haga clic aquí para ver el Cuestionario de Respuesta

+649
Katerina St 6 jun. 2017 17:07:52

Si el control tanto de origen (BTC) y receptor (BCC), billeteras, usted puede recuperar el dinero por la restauración de la clave privada a partir de la CCO cartera en una nueva cartera creada en el BTC BlockChain. Por desgracia, en este caso parece que han enviado dinero a un BitCoin en Efectivo de la cartera que no se controla.

Si usted no control de la dirección de recepción, el envío de un Bitcoin pago a un Bitcoin Efectivo de la dirección es casi seguro que resultará en la pérdida total del dinero enviado a la Bitcoin Efectivo de la dirección. Al enviar Bitcoin, se envíe a otra dirección en el Bitcoin BlockChain. No hay ningún método integrado de envío de Bitcoin a Bitcoin en Efectivo directamente; debe convertir el Bitcoin en la moneda, luego de la compra de Bitcoin en Efectivo con moneda, normalmente a través de un intercambio.

Si usted no propias de la recepción de la cartera, la única manera de recuperar ese dinero sería en el altamente improbable caso de que usted lo envió a una dirección que hay en el BlockChain de Bitcoin, y la persona que posee esa dirección Bitcoin decide a ser agradable, y enviar el dinero a usted.

Como siempre, vale la pena entender cómo una moneda funciona mediante el uso de una pequeña cantidad de dinero al principio. A usted no le dé a su hijo de 4 años de edad $1.500 a jugar con el, lo haría?

+613
cadl 6 mar. 2010 0:16:14

Un ataque como este es posible, es solo una forma de sacar beneficio de un 51% de ataque. Sin embargo, usted debe recordar varias cosas:

  • si un minero controles de menos de 51% de la hashpower, entonces lo más probable es que no será capaz de coger de nuevo a la red después de la minería de la malicioso tx, por lo que el honesto de la red será la que prevalecerá como la más larga de la cadena de

  • si un minero intenta el ataque, pero no tienen éxito, se habrá perdido una gran cantidad de recursos (costo de oportunidad). Compare esto con un mayor beneficio garantizado de no ser malicioso

  • si un ataque como este éxito y los usuarios notado, me dolía la seguridad de la red, y por lo tanto la moneda de los precios se debe esperar a que se caiga. Por lo que el minero ha socavado su propia inversión.

Si usted caza a su alrededor en línea, he visto una simple fórmula para determinar el valor de transacción vs el número de bloque de confirmaciones para esperar antes de considerar el tx 'final'. Su línea de razonamiento es correcto: para grandes transferencias de valor, el período de espera debe ser más largo, por lo que la recompensa potencial de comportamientos malintencionados se ve compensado por la recompensa de honesto de minería de datos.

+580
Heart Tropix 6 oct. 2019 21:04:18

Esta pregunta es acerca de la Ondulación, pero espero que todavía está bien hacer esta pregunta en Bitcoin StackExchange:

Estoy dispuesto a poner mi Ondulación en un papel de la cartera, y de la búsqueda de la web me encontré con Rippley.de la ue (https://ripply.eu/).

Me preguntaba si alguien ha hecho un código de verificación de este sitio web, y se puede comprobar que es seguro de usar para la generación de papel carteras para Ondulación de almacenamiento?

+566
MacMac 12 ene. 2019 10:51:26

Segregada Testigo era ya una gran colección de los cambios que impactó a varias partes de Bitcoin (P2P, validación, con cargo a la estimación, sighashing, ejecución de scripts, ...).

Muchas pequeñas mejoras que fácilmente podría haber sido añadido a la propuesta (incluyendo la firma de codificación, lo superfluo de la pila pop en OP_CHECKMULTISIG, el algoritmo de firma, varias extensiones de secuencia de comandos, nueva sighash banderas, ...). Sin embargo, hemos querido evitar que el ámbito de aplicación crecer demasiado grande, para evitar el bikeshedding y revisión de la carga. En su lugar, una secuencia de comandos de sistema de control de versiones se introdujo que haría posible la posterior bastante activar la adición de cualquier otro cambio como un softfork).

Así que la respuesta es que DER todavía está en uso en P2WPKH simplemente porque estaba en el uso en P2PKH y no cambio. Sin embargo, espero que las futuras propuestas se espera que llegue pronto a cambiar a puro 64-byte firmas.

+512
ikarikunshinji 7 jun. 2014 14:09:15

De acuerdo a coinbase

Monedero es un usuario custodied digital de la moneda de la cartera y DApp navegador. Esto significa que con la Cartera, las llaves privadas (que representan la propiedad de la cryptocurrency) se almacenan directamente en el dispositivo y no con un sistema centralizado de intercambio como Coinbase Consumidor. Usted no necesita un Coinbase Consumidor cuenta para el uso de la Billetera y se puede descargar de Cartera desde cualquier parte del mundo.

Usted no puede recuperar el control sobre el dinero en un usuario custodied monedero utilizando sólo un Bitcoin-dirección y un ID de Transacción.

Si de alguna manera ha perdido su cartera (por ejemplo, teléfono cayó en el océano) - sin la recuperación de la frase o algún otro equivalente especie de copia de seguridad, su dinero se ha ido para siempre.


Si por "Coinbase Wallet" en realidad significa "Coinbase Consumidor" - que es una de custodia-wallet (o equivalente) y su única manera posible de recuperar el control sobre su dinero es para comunicarse con la mesa de ayuda de Coinbase.

+495
Ali Nabeel Ahmed 15 nov. 2010 7:36:18

Usted debe evitar la reutilización de direcciones. Bitcoin funciona en un UTXO modelo donde cada pago es uno UTXO. 100 pagos a 100 direcciones diferentes produce 100 UTXOs, como hace 100 pagos a la 1 de la dirección. No es diferente en UTXO consolidación con la reutilización de la misma dirección.

El uso de diferentes direcciones proporciona mayor privacidad, y, potencialmente, más seguridad. Usted no debe ser la reutilización de direcciones y en lugar de generar una nueva para todos y cada uno de los pagos que usted recibe. Moderna de carteras de darle una nueva dirección cuando usted haga clic en "recibir" en toda la cartera (por lo general hay un recibir botón) tan sólo utilizar las direcciones que se le da en lugar de la reutilización de la misma.

+456
user174021 21 dic. 2015 6:22:55

El problema parece estar en el Precio. Esto funcionó:

APIMain.El Comercio(BtcePair.BtcUsd, TradeType.Comprar, decimal.Piso(myBidP),decimal.Ronda(myBidQ,4));

Puede alguien confirmar que el precio debe ser redondeado al entero más cercano?

Bonne chance de comercio de todo el mundo......

+444
Ulhas Mandrawadkar 23 jul. 2016 3:03:25

¿Cuál es el propósito de la ejecución de la Armería a través de Tor? Es sólo útil una vez que llegues al punto donde se inicia el envío de Bitcoins?

+416
khagesh 14 ene. 2017 6:34:51

Primero usted debe aprender cómo crear una aplicación para android que si usted no sabe cómo hacerlo ya. Hay un montón de recursos disponibles para ello, y los mejores lugares para hacer preguntas que el bitcoin stackexchange.

A continuación, una vez que usted se sienta cómodo con que la mayoría de los android carteras construidas con bitcoinj. Yo no conozco a ningún buen paso-por-paso. Aquí está un ejemplo de github del proyecto para bitcoin, que debe dar un buen punto de partida. https://github.com/thinkmobiles/BitcoinJ-Wallet-Sample-Android. No sé nada acerca de su moneda, pero obviamente se necesita para hacer algunas bastante crítico cambios.

+275
jasonleonhard 22 jul. 2011 18:10:38

No se preocupe compañero, una vez que el blockchain sincroniza, verás la transacción. Recuerde, que fue de 24 semanas, así que probablemente un par de días hasta las 24 semanas de sincronización y, a continuación, vas a ver la suya.

+258
Larry Jaspar 20 feb. 2019 5:47:04

Sin prueba de trabajo, cualquiera puede comenzar a partir de la génesis de bloque y crear una larga cadena de falsas transacciones. ¿Cómo se puede decidir que ledger es el correcto?

Esto es donde la prueba de trabajo entra en juego. Los nodos aceptar la cadena que llevó a la mayoría de trabajo para crear y rechazar todas las demás. Esta fuertemente incentivar a los mineros a construir a partir de lo establecido en cadena y también hace que sea difícil crear una falsa cadena. Para crear una falsa cadena de un adversario que se necesitan para trabajar más rápido y también se necesita para ponerse al resto de la red para obtener sus falsos cadena aceptado, que es prácticamente imposible establecido cryptocurrencies como Bitcoin.

+256
iaforek 17 ago. 2017 13:03:00

Cita de BIP 32:

Una debilidad que puede no ser inmediatamente obvio, es que el conocimiento de un padre de familia extendida de clave pública, además de cualquier no-endurecido clave privada descendente de la que es equivalente a saber el padre de familia extendida clave privada (y por tanto, cada clave privada y pública descendente a partir de él).

Cómo se hace esto?

+175
Ian Rocker 31 may. 2016 9:34:15

Intento abrir el bitcoin-qt cartera con bitcoinj, escribo este código:

private static final del Archivo WALLET_FILE = new File("C:\\Users\\Bapt\\AppData\\Roaming\\Bitcoin\\wallet.dat");

public static void main(String[] args) {
 NetworkParameters networkParameters = NetworkParameters.prodNet();

 Cartera billetera;
 try {
 cartera = Cartera.loadFromFile(WALLET_FILE);
 } catch (IOException e) {
 Sistema.a cabo.println("no se Pudo abrir la cartera:" + e);
de retorno;
}

 Sistema.a cabo.println("Saldo:" + cartera.getBalance());
}

Pero tengo un error:

No se puede abrir el monedero: com.google.protobuf.InvalidProtocolBufferException: Protocolo de mensaje contenía una etiqueta no válida (cero).

Así que tengo dos preguntas:

  • Es posible hacer lo que quiero ?
  • Si sí, ¿cuál crees que podría suceder aquí ?

Gracias por tu respuesta.

+129
Kroderia 19 may. 2013 19:04:37

Estoy usando el sistema operativo Mac. He descargado el Rayo de la Aplicación y Zap desde Github.

La cartera no puede ser sincronizado con la red, ¿cómo puedo sincronizar y puedo hacerlo sin tener que descargar todo el blockchain?

El rayo de la Aplicación me muestra el error de la red no puede ser sincronizado..., cuando ejecuto el Rayo de la Aplicación también muestra un error: la Sincronización de la cadena de ... bloque de altura: 0.

Cuando me lanzamiento Zap:

Uncaught Exception:
Error: Error De Conexión
 en ClientReadableStream._emitStatusIfDone (/Aplicaciones/Zap.app/Contents/Resources/app.asar/node_modules/grpc/src/cliente.js:255:19)
 en ClientReadableStream._readsDone (/Aplicaciones/Zap.app/Contents/Resources/app.asar/node_modules/grpc/src/cliente.js:221:8)
 en readCallback (/Aplicaciones/Zap.app/Contents/Resources/app.asar/node_modules/grpc/src/cliente.js:283:12)

Lo que me estoy perdiendo para obtener un Rayo a ejecutar?

+124
Henri Normak 2 dic. 2014 3:42:49

Sí, Coinbase ahora apoya el uso de la Testnet.

+35
Aenaon 17 ago. 2011 17:54:28

Me gustaría que mi simple aplicación de cartera para seleccionar automáticamente UTXOs de las entradas. Me doy cuenta de que no puede lograr esto con sólo bitcoinjs

Supongo que usted no es la creación de un FONDO de cartera. En este caso,

¿hay algo que puedo añadir para mantener el registro de unspents?

No. Usted tiene que comprobar si hay UTXOs en su dirección para ser gastado, incluso si los almacena en su aplicación. Debido a que estos UTXOs almacenada en su aplicación podría ser gastado por otra cartera.

es allí una manera de utilizar algún tipo de API para seleccionar automáticamente unspents?

Sí. Este sitio web ofrece algunas APIs para seleccionar UTXOs con diferentes cyptos( Bitcoin, Litecoin, Dogecoin, y Guión).

+23
Aditya Septadaya 19 mar. 2015 20:54:40

Mostrar preguntas con etiqueta