Bitcoins invertido

Me preguntaba, ¿hay bitcoins que no recibe a través de la confirmación? ¿Qué se necesita para blockchain para cancelar la transacción. Hay hackeado bitcoins o ¿cómo funciona?

+837
Vikas Bhushan 17 ene. 2011 6:24:09
37 respuestas

Importar una clave privada puede conducir a la no-intuitiva del comportamiento, y que puede ser explotada por un atacante.

Imagina que yo estoy mal. Te doy un papel cartera con 1 mBTC en él. Estás feliz y la importación. Puedo guardar la clave privada y esperar. Dependiendo del cliente/usuario, tal vez algún día te voy a poner algo de dinero real en hay como cambiar/recibido los fondos. Entonces me puede deslizar el dedo de ellos a la derecha de ustedes. Si no se toman la molestia de mover el dinero original fuera la clave, también puedo robar de nuevo.

Si no, entonces por lo menos me puede engañar a usted la próxima vez que piense que fueron pagados por el envío de los fondos a esa dirección. Entonces puedo robar a la derecha de nuevo.

La importación también tiende a romper las copias de seguridad, especialmente determinista clave en los esquemas. Armería le da una línea de texto para todas sus teclas y, a continuación, 1 línea por cada clave importada. Cada vez que se importa, tendrás que volver a realizar todas las copias de seguridad.

Debido a que la mayoría de los usuarios no entienden de estas implicaciones, carteras tienden a desalentar la importación, y en lugar de ofrecer barrido (mover los fondos a una dirección que se ha generado por la cartera de sí mismo). Soporta el 90% de los casos de uso con ninguno de los problemas.

+988
Trying2FigureItOut2 03 февр. '09 в 4:24

Descargo de responsabilidad: yo voy a asumir que usted no está completamente desorientado y que sabe lo que es una matriz, a contar desde 0, y cómo coinciden con los corchetes, las comillas y los dos puntos, de modo que usted puede leer los datos con el formato JSON. Si usted no sabe cómo hacer las cosas, entonces por favor google antes de leer este post.

También, este post va a ser muy larga, y muy técnico. Simplemente no hay términos sencillos forma de explicar esto, pero puede ser explicado a ser muy fácil de seguir asumiendo que usted sabe las cosas que he dicho antes. Las cosas que están en negrita son las cosas que usted debe recordar como voy a utilizar los términos más adelante en el post.

Por último, estas instrucciones son para las transacciones que "pasar de" Bitcoin direcciones que comienzan con 1. "El gasto de" la otra dirección Bitcoin tipo hace que este proceso sea más complicado.


La transacción

Voy a estar usando una transacción diferente de aquel en su pregunta debido a que la transacción es demasiado grande para explicar fácilmente. En su lugar, voy a estar usando ff8766ec873ff55cc0ac17dee7b379a4efa2a5c83dabdd9a30287c7761ad55d5 que es mucho menor.

Blockchain.info no se proporciona información suficiente para construir fácilmente el hash. En lugar de eso voy a estar usando la salida de la getrawtransaction comando de Bitcoin Core que rompe la transacción en formato JSON:

{
 "hex": "0100000003b0c03779c38ddabc044947b164adbcffde8e0ddb3678494f4e8b83f13b37629d010000006b483045022100f3c0f555cd39198caf77f6756256801fc57bcabe4892601b9def52259698f40a0220230262841bff151eb617f7d4cdda6bf06d6fa791230c152e47f68bcdd0e6f64a01210204b3506d8903ca601c97a4abab6548e91004c535a5a45e21299a494b146859caffffffff060eeae54b70d12caddcc15f8897ebc2b6c3011c9a600aba74d49b969991cab3000000006b4830450221009dbeb64ddd4646e1118503c87feaa95c531b5178c6e543be782f6ecb05e8fbe602203945570f8dc56c145617f0283fa4032e0b7895a9cf2a81c7b65665b8ac608cb00121026602a5dc59c30f485b2c457ac8e2f617e27b10a1d2ae76f3231f9b01dff08964ffffffff7f715ba408db0289118f9b8578e54e721f1aee10d09844510793b8b20c87903e010000006b48304502210095e300886ec4df78e39d6d0cf5e5e531ded8f42f00e5730c371d8951867dad5b02203c55f9403f6c2aac444213161a93a86661e7367d4007be74ffb3981387cc1c790121023f0aadfeb71a4964c5087fec8b052c8236051dae838d4747543330c6b266ce6effffffff02d5781100000000001976a914342ab422c9e3ef285efe9882ae54269ed9713dd688ac20a10700000000001976a91488d924f51033b74a895863a5fb57fd545529df7d88ac00000000",
 "txid": "ff8766ec873ff55cc0ac17dee7b379a4efa2a5c83dabdd9a30287c7761ad55d5",
 "hash": "ff8766ec873ff55cc0ac17dee7b379a4efa2a5c83dabdd9a30287c7761ad55d5",
 "versión": 1,
 "tamaño": 522,
 "vsize": 522,
 "locktime": 0,
 "vin": [
{
 "txid": "9d62373bf1838b4e4f497836db0d8edeffbcad64b1474904bcda8dc37937c0b0",
 "vsal": 1,
 "scriptSig": {
 "asm": "3045022100f3c0f555cd39198caf77f6756256801fc57bcabe4892601b9def52259698f40a0220230262841bff151eb617f7d4cdda6bf06d6fa791230c152e47f68bcdd0e6f64a[ALL] 0204b3506d8903ca601c97a4abab6548e91004c535a5a45e21299a494b146859ca",
 "hex": "483045022100f3c0f555cd39198caf77f6756256801fc57bcabe4892601b9def52259698f40a0220230262841bff151eb617f7d4cdda6bf06d6fa791230c152e47f68bcdd0e6f64a01210204b3506d8903ca601c97a4abab6548e91004c535a5a45e21299a494b146859ca"
},
 "secuencia": 4294967295
},
{
 "txid": "b3ca9199969bd474ba0a609a1c01c3b6c2eb97885fc1dcad2cd1704be5ea0e06",
 "vsal": 0,
 "scriptSig": {
 "asm": "30450221009dbeb64ddd4646e1118503c87feaa95c531b5178c6e543be782f6ecb05e8fbe602203945570f8dc56c145617f0283fa4032e0b7895a9cf2a81c7b65665b8ac608cb0[ALL] 026602a5dc59c30f485b2c457ac8e2f617e27b10a1d2ae76f3231f9b01dff08964",
 "hex": "4830450221009dbeb64ddd4646e1118503c87feaa95c531b5178c6e543be782f6ecb05e8fbe602203945570f8dc56c145617f0283fa4032e0b7895a9cf2a81c7b65665b8ac608cb00121026602a5dc59c30f485b2c457ac8e2f617e27b10a1d2ae76f3231f9b01dff08964"
},
 "secuencia": 4294967295
},
{
 "txid": "3e90870cb2b89307514498d010ee1a1f724ee578859b8f118902db08a45b717f",
 "vsal": 1,
 "scriptSig": {
 "asm": "304502210095e300886ec4df78e39d6d0cf5e5e531ded8f42f00e5730c371d8951867dad5b02203c55f9403f6c2aac444213161a93a86661e7367d4007be74ffb3981387cc1c79[ALL] 023f0aadfeb71a4964c5087fec8b052c8236051dae838d4747543330c6b266ce6e",
 "hex": "48304502210095e300886ec4df78e39d6d0cf5e5e531ded8f42f00e5730c371d8951867dad5b02203c55f9403f6c2aac444213161a93a86661e7367d4007be74ffb3981387cc1c790121023f0aadfeb71a4964c5087fec8b052c8236051dae838d4747543330c6b266ce6e"
},
 "secuencia": 4294967295
}
],
 "vsal": [
{
 "valor": 0.01145045,
 "n": 0,
 "scriptPubKey": {
 "asm": "OP_DUP OP_HASH160 342ab422c9e3ef285efe9882ae54269ed9713dd6 OP_EQUALVERIFY OP_CHECKSIG",
 "hex": "76a914342ab422c9e3ef285efe9882ae54269ed9713dd688ac",
 "reqSigs": 1,
 "tipo": "pubkeyhash",
 "direcciones": [
"15kqJ5UinhstuG1KVCSJDagaUcFJLvhynx"
]
}
},
{
 "valor": 0.005,
 "n": 1,
 "scriptPubKey": {
 "asm": "OP_DUP OP_HASH160 88d924f51033b74a895863a5fb57fd545529df7d OP_EQUALVERIFY OP_CHECKSIG",
 "hex": "76a91488d924f51033b74a895863a5fb57fd545529df7d88ac",
 "reqSigs": 1,
 "tipo": "pubkeyhash",
 "direcciones": [
"1DUb2YYbQA1jjaNYzVXLZ7ZioEhLXtbUru"
]
}
}
],
 "blockhash": "000000000000000000c93a1c73452d4221f8c88a1721072966c38d590b1b34af",
 "confirmaciones": 1,
 "el tiempo": 1502353841,
 "blocktime": 1502353841
}

El total bruto de la transacción en sí es el campo en el hex. Las entradas que queremos firmar para que se de una matriz en el vin de campo (la matriz es entre corchetes [ ]). Cada entrada está encerrado entre llaves ({ }).

El general hash preimagen

El hash preimagen el dato de que en realidad es un algoritmo hash. El algoritmo para producir este preimagen es conocido como el sighashing algoritmo. El sighashing algoritmo para cada entrada va de esta manera: tome la transacción y hacer todos los scriptSigs vacío. Luego de la entrada que se firma, el lugar de la scriptPubKey de la salida que se gasta, anexar la sighash tipo, y el hash de todo, con sha256d.

La firma de las entradas

Aquí voy a entrar en los detalles.

La primera cosa que quiero hacer es hacer que todos los scriptSigs de la transacción vacío. La manera más fácil de hacer esto es tomar cruda de transacción y hacer una búsqueda para el hexagonal de la scriptSigs para cada una de las entradas de la transacción, y reemplácelo con 00. A continuación, retire los dos personajes antes de lo que usted acaba de reemplazar

Para la primera entrada, el scriptSig es

483045022100f3c0f555cd39198caf77f6756256801fc57bcabe4892601b9def52259698f40a0220230262841bff151eb617f7d4cdda6bf06d6fa791230c152e47f68bcdd0e6f64a01210204b3506d8903ca601c97a4abab6548e91004c535a5a45e21299a494b146859ca

Para la segunda entrada, el scriptSig es

4830450221009dbeb64ddd4646e1118503c87feaa95c531b5178c6e543be782f6ecb05e8fbe602203945570f8dc56c145617f0283fa4032e0b7895a9cf2a81c7b65665b8ac608cb00121026602a5dc59c30f485b2c457ac8e2f617e27b10a1d2ae76f3231f9b01dff08964

Para la tercera entrada, el scriptSig es

48304502210095e300886ec4df78e39d6d0cf5e5e531ded8f42f00e5730c371d8951867dad5b02203c55f9403f6c2aac444213161a93a86661e7367d4007be74ffb3981387cc1c790121023f0aadfeb71a4964c5087fec8b052c8236051dae838d4747543330c6b266ce6e

Después de realizar el buscar y reemplazar, el unsigned transacción es

0100000003b0c03779c38ddabc044947b164adbcffde8e0ddb3678494f4e8b83f13b37629d0100000000ffffffff060eeae54b70d12caddcc15f8897ebc2b6c3011c9a600aba74d49b969991cab30000000000ffffffff7f715ba408db0289118f9b8578e54e721f1aee10d09844510793b8b20c87903e0100000000ffffffff02d5781100000000001976a914342ab422c9e3ef285efe9882ae54269ed9713dd688ac20a10700000000001976a91488d924f51033b74a895863a5fb57fd545529df7d88ac00000000

Usted debe también mentalmente nota de la posición de cada uno de estos reemplazos; tendrá las posiciones más adelante.

Ahora anexar 01000000 para el unsigned transacción de modo que ahora tenemos:

0100000003b0c03779c38ddabc044947b164adbcffde8e0ddb3678494f4e8b83f13b37629d0100000000ffffffff060eeae54b70d12caddcc15f8897ebc2b6c3011c9a600aba74d49b969991cab30000000000ffffffff7f715ba408db0289118f9b8578e54e721f1aee10d09844510793b8b20c87903e0100000000ffffffff02d5781100000000001976a914342ab422c9e3ef285efe9882ae54269ed9713dd688ac20a10700000000001976a91488d924f51033b74a895863a5fb57fd545529df7d88ac0000000001000000

Mantener esta original, sin modificaciones sin signo de transacciones en algún lugar, nos hará falta más adelante.

La primera entrada

La primera entrada es el primer elemento en el vin de la matriz de la transacción de salida JSON:

{
 "txid": "9d62373bf1838b4e4f497836db0d8edeffbcad64b1474904bcda8dc37937c0b0",
 "vsal": 1,
 "scriptSig": {
 "asm": "3045022100f3c0f555cd39198caf77f6756256801fc57bcabe4892601b9def52259698f40a0220230262841bff151eb617f7d4cdda6bf06d6fa791230c152e47f68bcdd0e6f64a[ALL] 0204b3506d8903ca601c97a4abab6548e91004c535a5a45e21299a494b146859ca",
 "hex": "483045022100f3c0f555cd39198caf77f6756256801fc57bcabe4892601b9def52259698f40a0220230262841bff151eb617f7d4cdda6bf06d6fa791230c152e47f68bcdd0e6f64a01210204b3506d8903ca601c97a4abab6548e91004c535a5a45e21299a494b146859ca"
},
 "secuencia": 4294967295
},

Ahora necesitamos conocer algunos datos de la transacción anterior salida. Así que a buscar el txid que esta entrada gastado, 9d62373bf1838b4e4f497836db0d8edeffbcad64b1474904bcda8dc37937c0b0, y obtener su formato JSON romper:

{
 "hex": "[eliminado por el espacio]",
 "txid": "9d62373bf1838b4e4f497836db0d8edeffbcad64b1474904bcda8dc37937c0b0",
 "hash": "9d62373bf1838b4e4f497836db0d8edeffbcad64b1474904bcda8dc37937c0b0",
 "versión": 1,
 "tamaño": 373,
 "vsize": 373,
 "locktime": 0,
 "vin": [
{
 "txid": "86efe44adc45a486c51a641cc83612159dc18f31a14da140a24fb4c5623e511a",
 "vsal": 1,
 "scriptSig": {
 "asm": "3045022100cf76ad139adc38ae90fd14e6d29ff9bde62e7b3c3ef9880bc41098775100a1d502205a7dfb6aeacd9c58481f317334d5a6edaf2e734053555409550f6d463d9bf5f0[ALL] 030888863fcb4cdf5b7d33b40e613af35df8f39d576e7972238b0d396cd3fcc3f2",
 "hex": "483045022100cf76ad139adc38ae90fd14e6d29ff9bde62e7b3c3ef9880bc41098775100a1d502205a7dfb6aeacd9c58481f317334d5a6edaf2e734053555409550f6d463d9bf5f00121030888863fcb4cdf5b7d33b40e613af35df8f39d576e7972238b0d396cd3fcc3f2"
},
 "secuencia": 4294967295
},
{
 "txid": "897817de401d7245912e7add2da98e6d885a50104e147b785116b3a2a295f386",
 "vsal": 0,
 "scriptSig": {
 "asm": "30440220633666024ceb08c4e6d076bc158a0dd013be14238afd8157f2b73b5a00aece6d02202a1da4a6def17cba4ae835c07af2b1ebff87bce0c56d21d6d2458cd234d766f6[ALL] 0395aa52bfe17fa8a06cc6b3216210c7ff3254a2095db322250bd2d9148e5b44cd",
 "hex": "4730440220633666024ceb08c4e6d076bc158a0dd013be14238afd8157f2b73b5a00aece6d02202a1da4a6def17cba4ae835c07af2b1ebff87bce0c56d21d6d2458cd234d766f601210395aa52bfe17fa8a06cc6b3216210c7ff3254a2095db322250bd2d9148e5b44cd"
},
 "secuencia": 4294967295
}
],
 "vsal": [
{
 "valor": 0.005,
 "n": 0,
 "scriptPubKey": {
 "asm": "OP_DUP OP_HASH160 52fbbe93faca2c57c6d7ccad877e0da4876ce0c8 OP_EQUALVERIFY OP_CHECKSIG",
 "hex": "76a91452fbbe93faca2c57c6d7ccad877e0da4876ce0c888ac",
 "reqSigs": 1,
 "tipo": "pubkeyhash",
 "direcciones": [
"18ZmzEy6fzx9afy2LjWhNjttoh2VBpRq84"
]
}
},
{
 "valor": 0.01001452,
 "n": 1,
 "scriptPubKey": {
 "asm": "OP_DUP OP_HASH160 2c418ec354a1ab688a656d86b16c02abe8f592e9 OP_EQUALVERIFY OP_CHECKSIG",
 "hex": "76a9142c418ec354a1ab688a656d86b16c02abe8f592e988ac",
 "reqSigs": 1,
 "tipo": "pubkeyhash",
 "direcciones": [
"1531GU6Ypf66HJ8c9ZyF2rwHyRWUxKSXhb"
]
}
}
],
 "blockhash": "00000000000000000083cb57936842737b6b9da889fed3d9beb9661fe9ad458e",
 "confirmaciones": 8,
 "el tiempo": 1502353082,
 "blocktime": 1502353082
}

El vsal campo de esta entrada especifica que necesitamos la salida en el índice 1 en la matriz de salida de la transacción anterior. Es importante recordar que las matrices elemento de indexación comienza en 0. El primer elemento tiene un índice de (numeradas) 0, el segundo elemento es el índice 1, etc. Así, con un índice de salida de 1, tenemos el segundo resultado de esta transacción anterior, que es:

{
 "valor": 0.01001452,
 "n": 1,
 "scriptPubKey": {
 "asm": "OP_DUP OP_HASH160 2c418ec354a1ab688a656d86b16c02abe8f592e9 OP_EQUALVERIFY OP_CHECKSIG",
 "hex": "76a9142c418ec354a1ab688a656d86b16c02abe8f592e988ac",
 "reqSigs": 1,
 "tipo": "pubkeyhash",
 "direcciones": [
"1531GU6Ypf66HJ8c9ZyF2rwHyRWUxKSXhb"
]
}
}

La única cosa que necesitamos de este resultado es el hex de la scriptPubKey, que es

76a9142c418ec354a1ab688a656d86b16c02abe8f592e988ac

Tenemos que anteponer el número de la longitud de este hexagonal en bytes (la mitad del número de caracteres de la cadena). El número debe ser en hexadecimal, y es 19. Así que el scriptPubKey que vamos a usar es

1976a9142c418ec354a1ab688a656d86b16c02abe8f592e988ac

Ahora hacer una copia de la unsigned transacción que hemos hecho anteriormente, no vamos a modificar el original que vamos a necesitar para posteriores entradas. Ahora tome la copia sin firmar la transacción, y mueva el cursor hasta el 00 que hemos sustituido esta primera entrada del scriptSig con. Reemplazar 00 con la scriptPubKey que acabamos de modificar. Así que ahora nuestra copia sin firmar la transacción se parece a

0100000003b0c03779c38ddabc044947b164adbcffde8e0ddb3678494f4e8b83f13b37629d010000001976a9142c418ec354a1ab688a656d86b16c02abe8f592e988acffffffff060eeae54b70d12caddcc15f8897ebc2b6c3011c9a600aba74d49b969991cab30000000000ffffffff7f715ba408db0289118f9b8578e54e721f1aee10d09844510793b8b20c87903e0100000000ffffffff02d5781100000000001976a914342ab422c9e3ef285efe9882ae54269ed9713dd688ac20a10700000000001976a91488d924f51033b74a895863a5fb57fd545529df7d88ac0000000001000000

Este es nuestro hash preimagen. Ahora necesitamos hash como bytes. La herramienta que utilice para la mezcla de estos en línea es http://www.fileformat.info/tool/hash.htm. Copiar y pegar el hash preimagen en el cuadro de texto para los Hash Binario, con la etiqueta bytes Hexadecimales. Haga clic en Hash y desplácese hacia abajo. Copia la cadena junto a la SHA-256 de la etiqueta y pegar en el mismo cuadro de texto y haga clic en Hash de nuevo. Desplácese hacia abajo de nuevo y la cadena junto a SHA-256 es el hash que se firmó por primera entrada de nuestra transacción. Este hash es:

0ca51b9a67de27aa35aba665cedea31025f8d40c85669953952b8dcde4242960

La segunda entrada

La segunda entrada es el segundo elemento de la vin matriz. El JSON para esto es:

{
 "txid": "b3ca9199969bd474ba0a609a1c01c3b6c2eb97885fc1dcad2cd1704be5ea0e06",
 "vsal": 0,
 "scriptSig": {
 "asm": "30450221009dbeb64ddd4646e1118503c87feaa95c531b5178c6e543be782f6ecb05e8fbe602203945570f8dc56c145617f0283fa4032e0b7895a9cf2a81c7b65665b8ac608cb0[ALL] 026602a5dc59c30f485b2c457ac8e2f617e27b10a1d2ae76f3231f9b01dff08964",
 "hex": "4830450221009dbeb64ddd4646e1118503c87feaa95c531b5178c6e543be782f6ecb05e8fbe602203945570f8dc56c145617f0283fa4032e0b7895a9cf2a81c7b65665b8ac608cb00121026602a5dc59c30f485b2c457ac8e2f617e27b10a1d2ae76f3231f9b01dff08964"
},
 "secuencia": 4294967295
},

Vamos a necesitar la información de la transacción anterior salida, que es la salida en el índice 0 de la transacción b3ca9199969bd474ba0a609a1c01c3b6c2eb97885fc1dcad2cd1704be5ea0e06. Esta transacción la salida JSON es:

{
 "hex": "[eliminado por el espacio]",
 "txid": "b3ca9199969bd474ba0a609a1c01c3b6c2eb97885fc1dcad2cd1704be5ea0e06",
 "hash": "b3ca9199969bd474ba0a609a1c01c3b6c2eb97885fc1dcad2cd1704be5ea0e06",
 "versión": 1,
 "tamaño": 404,
 "vsize": 404,
 "locktime": 0,
 "vin": [
{
 "txid": "7195945cfe7d0d5b7e49b35dba8a844ee0ce1fd3b2afdc3e5bf0e3be409080ce",
 "vsal": 1,
 "scriptSig": {
 "asm": "30440220234ec20a17fced74c34b94b2c34e77bb1cc824a34916661fa164f4dd47ce4992022078176fe355ccee3675684af148d340c6bc5c039d9e60630b71f789f72edce327[ALL] 026602a5dc59c30f485b2c457ac8e2f617e27b10a1d2ae76f3231f9b01dff08964",
 "hex": "4730440220234ec20a17fced74c34b94b2c34e77bb1cc824a34916661fa164f4dd47ce4992022078176fe355ccee3675684af148d340c6bc5c039d9e60630b71f789f72edce3270121026602a5dc59c30f485b2c457ac8e2f617e27b10a1d2ae76f3231f9b01dff08964"
},
 "secuencia": 4294967295
},
{
 "txid": "9dfbb913f9e80d99ec162adce1f61662e99c7a864eb38943135f41b56693a17a",
 "vsal": 1,
 "scriptSig": {
 "asm": "3045022100d966ddb0d0ef2f5e09fe88f7a9629409e576f929b10cd33b11d5c2da0fd2bcae022014517f6b43b3c12da786bca5d96de39ab804cd134940815b40bfbf5df336880e[ALL] 026602a5dc59c30f485b2c457ac8e2f617e27b10a1d2ae76f3231f9b01dff08964",
 "hex": "483045022100d966ddb0d0ef2f5e09fe88f7a9629409e576f929b10cd33b11d5c2da0fd2bcae022014517f6b43b3c12da786bca5d96de39ab804cd134940815b40bfbf5df336880e0121026602a5dc59c30f485b2c457ac8e2f617e27b10a1d2ae76f3231f9b01dff08964"
},
 "secuencia": 4294967295
}
],
 "vsal": [
{
 "valor": 0.00439481,
 "n": 0,
 "scriptPubKey": {
 "asm": "OP_DUP OP_HASH160 58be4e12275e895c797c9bf7533452c5a41e4551 OP_EQUALVERIFY OP_CHECKSIG",
 "hex": "76a91458be4e12275e895c797c9bf7533452c5a41e455188ac",
 "reqSigs": 1,
 "tipo": "pubkeyhash",
 "direcciones": [
"196ESW77sq7iHzLfJub7KDgTGwvJMZwLs6"
]
}
},
{
 "valor": 0.00,
 "n": 1,
 "scriptPubKey": {
 "asm": "OP_RETURN 6f6d6e6900000000000000010000000011848ee0",
 "hex": "6a146f6d6e6900000000000000010000000011848ee0",
 "tipo": "nulldata"
}
},
{
 "valor": 0.0000273,
 "n": 2,
 "scriptPubKey": {
 "asm": "OP_DUP OP_HASH160 88d924f51033b74a895863a5fb57fd545529df7d OP_EQUALVERIFY OP_CHECKSIG",
 "hex": "76a91488d924f51033b74a895863a5fb57fd545529df7d88ac",
 "reqSigs": 1,
 "tipo": "pubkeyhash",
 "direcciones": [
"1DUb2YYbQA1jjaNYzVXLZ7ZioEhLXtbUru"
]
}
}
],
 "blockhash": "000000000000000000c0fd6a8fee9df17e59c7243c9fce359324ee0fffc70be3",
 "confirmaciones": 8,
 "el tiempo": 1502353358,
 "blocktime": 1502353358
}

Queremos que la primera salida en la vsal matriz de aquí, así que nuestra salida es:

{
 "valor": 0.00439481,
 "n": 0,
 "scriptPubKey": {
 "asm": "OP_DUP OP_HASH160 58be4e12275e895c797c9bf7533452c5a41e4551 OP_EQUALVERIFY OP_CHECKSIG",
 "hex": "76a91458be4e12275e895c797c9bf7533452c5a41e455188ac",
 "reqSigs": 1,
 "tipo": "pubkeyhash",
 "direcciones": [
"196ESW77sq7iHzLfJub7KDgTGwvJMZwLs6"
]
}
},

Como en la primera entrada, sólo necesitamos el hexagonal de la scriptPubKey de esta salida con su longitud antepone a ella, así que vamos a la siguiente, como nuestro scriptPubKey:

1976a91458be4e12275e895c797c9bf7533452c5a41e455188ac

Ahora tomamos nuestro original, sin modificaciones sin signo de transacción, y la copia. Ahora ir a la posición donde nos quitan el scriptSig para la segunda entrada. Reemplace el 00 que nos había puesto allí con el scriptPubKey. Nuestra copia sin firmar la transacción debe verse así:

0100000003b0c03779c38ddabc044947b164adbcffde8e0ddb3678494f4e8b83f13b37629d0100000000ffffffff060eeae54b70d12caddcc15f8897ebc2b6c3011c9a600aba74d49b969991cab3000000001976a91458be4e12275e895c797c9bf7533452c5a41e455188acffffffff7f715ba408db0289118f9b8578e54e721f1aee10d09844510793b8b20c87903e0100000000ffffffff02d5781100000000001976a914342ab422c9e3ef285efe9882ae54269ed9713dd688ac20a10700000000001976a91488d924f51033b74a895863a5fb57fd545529df7d88ac0000000001000000

Este es nuestro hash preimagen. Tomar el hash preimagen y hash como se hizo para la primera entrada. Su hash resultante debe ser

46016caa2997dc453420a9af5090cd90c5109a93d525bbc3e9e12f8ec0112d58

La tercera entrada

La tercera entrada de la transacción es el tercer elemento de la vin matriz. Este es su formato JSON romper:

{
 "txid": "3e90870cb2b89307514498d010ee1a1f724ee578859b8f118902db08a45b717f",
 "vsal": 1,
 "scriptSig": {
 "asm": "304502210095e300886ec4df78e39d6d0cf5e5e531ded8f42f00e5730c371d8951867dad5b02203c55f9403f6c2aac444213161a93a86661e7367d4007be74ffb3981387cc1c79[ALL] 023f0aadfeb71a4964c5087fec8b052c8236051dae838d4747543330c6b266ce6e",
 "hex": "48304502210095e300886ec4df78e39d6d0cf5e5e531ded8f42f00e5730c371d8951867dad5b02203c55f9403f6c2aac444213161a93a86661e7367d4007be74ffb3981387cc1c790121023f0aadfeb71a4964c5087fec8b052c8236051dae838d4747543330c6b266ce6e"
},
 "secuencia": 4294967295
}

Ahora necesitamos la salida en un índice de 1 de 3e90870cb2b89307514498d010ee1a1f724ee578859b8f118902db08a45b717f. Que es la segunda salida de 3e90870cb2b89307514498d010ee1a1f724ee578859b8f118902db08a45b717f. El formato JSON romper de esa operación es la siguiente:

{
 "hex": "[eliminado por el espacio]",
 "txid": "3e90870cb2b89307514498d010ee1a1f724ee578859b8f118902db08a45b717f",
 "hash": "3e90870cb2b89307514498d010ee1a1f724ee578859b8f118902db08a45b717f",
 "versión": 1,
 "tamaño": 257,
 "vsize": 257,
 "locktime": 0,
 "vin": [
{
 "txid": "1037821442fe684bd87ad790b4f9fd6a07c3f56ac85478e98e6b06c665eda281",
 "vsal": 1,
 "scriptSig": {
 "asm": "3045022100ec9ab3692830627c4f76687d9f2e0fde9fba6f11b6a6025cc7f3c3708be8d8e1022076769507eeb04e867e98e543d54ec8a3c91e17eb4560ff7ab1dd2f40ca7b3d3d[ALL] 023f0aadfeb71a4964c5087fec8b052c8236051dae838d4747543330c6b266ce6e",
 "hex": "483045022100ec9ab3692830627c4f76687d9f2e0fde9fba6f11b6a6025cc7f3c3708be8d8e1022076769507eeb04e867e98e543d54ec8a3c91e17eb4560ff7ab1dd2f40ca7b3d3d0121023f0aadfeb71a4964c5087fec8b052c8236051dae838d4747543330c6b266ce6e"
},
 "secuencia": 4294967295
}
],
 "vsal": [
{
 "valor": 0.00,
 "n": 0,
 "scriptPubKey": {
 "asm": "OP_RETURN 6f6d6e6900000000000000030000000000004066",
 "hex": "6a146f6d6e6900000000000000030000000000004066",
 "tipo": "nulldata"
}
},
{
 "valor": 0.00458772,
 "n": 1,
 "scriptPubKey": {
 "asm": "OP_DUP OP_HASH160 a4c3d2d77c214b4e212cdcc0331d21b2fbd6f328 OP_EQUALVERIFY OP_CHECKSIG",
 "hex": "76a914a4c3d2d77c214b4e212cdcc0331d21b2fbd6f32888ac",
 "reqSigs": 1,
 "tipo": "pubkeyhash",
 "direcciones": [
"1G2CQXJdzzyyUaStUGcsaKLnN5GjD8Teqe"
]
}
},
{
 "valor": 0.0000273,
 "n": 2,
 "scriptPubKey": {
 "asm": "OP_DUP OP_HASH160 88d924f51033b74a895863a5fb57fd545529df7d OP_EQUALVERIFY OP_CHECKSIG",
 "hex": "76a91488d924f51033b74a895863a5fb57fd545529df7d88ac",
 "reqSigs": 1,
 "tipo": "pubkeyhash",
 "direcciones": [
"1DUb2YYbQA1jjaNYzVXLZ7ZioEhLXtbUru"
]
}
}
],
 "blockhash": "000000000000000000c0fd6a8fee9df17e59c7243c9fce359324ee0fffc70be3",
 "confirmaciones": 9,
 "el tiempo": 1502353358,
 "blocktime": 1502353358
}

El segundo resultado de esa operación es la siguiente:

{
 "valor": 0.00458772,
 "n": 1,
 "scriptPubKey": {
 "asm": "OP_DUP OP_HASH160 a4c3d2d77c214b4e212cdcc0331d21b2fbd6f328 OP_EQUALVERIFY OP_CHECKSIG",
 "hex": "76a914a4c3d2d77c214b4e212cdcc0331d21b2fbd6f32888ac",
 "reqSigs": 1,
 "tipo": "pubkeyhash",
 "direcciones": [
"1G2CQXJdzzyyUaStUGcsaKLnN5GjD8Teqe"
]
}
},

Como las anteriores entradas, necesitamos el hexagonal de la scriptPubKey con su longitud antepone a ella, por lo que nuestra scriptPubKey es

1976a914a4c3d2d77c214b4e212cdcc0331d21b2fbd6f32888ac

Ahora copia el original, sin modificaciones sin firma de la transacción. Ir a la posición donde se ha sustituido el scriptSig para esta entrada con 00. Reemplazar 00 con la scriptPubKey. Así que ahora tenemos una copia sin firmar transacciones que se parece a:

0100000003b0c03779c38ddabc044947b164adbcffde8e0ddb3678494f4e8b83f13b37629d0100000000ffffffff060eeae54b70d12caddcc15f8897ebc2b6c3011c9a600aba74d49b969991cab30000000000ffffffff7f715ba408db0289118f9b8578e54e721f1aee10d09844510793b8b20c87903e010000001976a914a4c3d2d77c214b4e212cdcc0331d21b2fbd6f32888acffffffff02d5781100000000001976a914342ab422c9e3ef285efe9882ae54269ed9713dd688ac20a10700000000001976a91488d924f51033b74a895863a5fb57fd545529df7d88ac0000000001000000

Hash de la preimagen a como se hizo para las entradas 1 y 2. El hash usted debe conseguir es

b85c3c3b91362e3c8047120152d5d9640a850e1db6d867393ada2e13a6ec079a

Conclusión

El hash que se firmó para cada entrada son como sigue:

  • Primera entrada: 0ca51b9a67de27aa35aba665cedea31025f8d40c85669953952b8dcde4242960
  • Segunda entrada: 46016caa2997dc453420a9af5090cd90c5109a93d525bbc3e9e12f8ec0112d58
  • Tercera entrada: b85c3c3b91362e3c8047120152d5d9640a850e1db6d867393ada2e13a6ec079a

He corrido tanto de estas transacciones a través de una versión modificada de Bitcoin Core que me da la sighashes.

Para d1cdb8c3828ee74c22677e705539937d039e6acef19e5f2ac0a2779846e4b6c1, el sighashes para cada entrada en orden son:

36537e9335b00b9627dd067515b85b2dddb3334e946677f5ca01cf07a8de4945
3b10e1e264162eb8fe3011196a756bfea8798775ee5e6c70a107282f74bfd599
fe269a8d6cc3cd801d5c0e0e41c44a32f6fecc0bb7e4909a905e85da43104cf0
166223356d627392d52cd7def6c45a9b7a18bb6cbc628cc1db0db7a1a6c51b19
b42809cd2075ad304fae2205648384b6ac8558dfb17bafc5e2de838af3f5e3bb
d311ba5115ffdce2c73a0e5007b28baa08885cad1a02e719938469fa0e497ccb
43d0509b98408323f6b7ea4ca07d66ad109c647cb9eee413f88464c400371733
6e22e0963dd860525602ad69ab0c9002054588d05c057f51349414ba11f185ab
07f08a0b60a5ebbbe4220e21d912af8c9cbe20f85cfae1cb21171fed8a4b9870
901832f68d7e10e72b57cc029ef161a4044c6fa2633cccf792eccfe34886f075
c5feb7830c2b2f7bd4a604ea3e7497fc8e3e122955c0bf8bd90b7683dc05eee6
f2e29915224de6eec85d7c5fb21e6333dd289b0bb7d07094f0846ca15cab62a1
6ae401edb4c25f7083e59cb0d6145c65d92e749ef93784214aef5e0eba4b38de
2aefa9852164cf75f7a89fd8b0466bb0f49ef2a3bb49243e951611deeafe556d
90698f761a0c6af1de93990e853cf05d760f2c4afce7bf8dc3fa52e8e5ccfa55
f2637c7489c901ce23e133ed252c8084131b8fbeeb604001fda3b2219ed30adc
8430eb0e3576e3a5e376083e7be45725c8a8f6ca3a5d39d97ab13298f82309cf
8da03f6b4f06fb5da308adbad2678f7c6b6ca1bd15bff9accf5dcb404084b214
a2c96c50371204843d9e97848a4afee884f26f3965940db1092bf860736edc11
7f341abb178bac950acd389ce9aa22c8b7bc9982402002f31a5fdbe10db2acff
a6c81aba4d4e08d19f12d02b2651622e5a288f9fac76cb57b930d990a5c18014
d2363eb97fa94ade230a725576a6af91df6c7da516c568195b54d6e3ab7ac97e
570ab2dbb4b4054162617c8c7f95f747a944f39959dc461ce5efce715cac782e
38f638c00eb4f044568ee4d116ebfa9f355cf81ee77237d909d9b0b519edf736
4861a778ad55393bc670e2b73461eedd52d7370b5f86dca2ff319be44bfcb9ea
ea75ff70f64e2a9b2f184c2408c7e28921ddd3c6952f99d193c56134d714839e
ddf948089894409dab74badfcd64055c79b4ba6511b1863eb42bad35bf22d82c
68d4fc82898fae0b41e26affff0fbf37d8c01ecdd416dad299d4fd6837bdddc5
6d5239c61aec375fcf3a13f6ff36660460ebbe49e1372b99cf0ca001381170c8
75bed4705d44d763b9ba59c4a843ba88cc2c58eca1f1c80a683cb02a45052b98
86a6c9a2f5da74825d930d1bf818a9d8bd3f871bc2cb0d71da27940d1d2130cc
9d9537ebb060d5c1bc6c36fd0695833085d753b2860ee3ba9ff65f977b5ab226
f397fea726ddc5a938544283e1dd265aac5ebb8b6856543df48e285f009b4375
120447a585f30f7bb9411f7888b6fcd96862d1cae34ddaadda6291bc46fa36ed
3760ddfd61b0e5f8902195e2b7285da42400446dfd4fcec1ea979ea78c4b32de
271a878980c9087f7004ed21330cd101dd19706513a629eea4cebae9e5e80a56
33c17e7530d3c184acb222165b49155c2a8283032a7ee96ede30546ee571966a
81de851b46bc42b419cdc9905609cc9a4fda206424cbba12626555bf788ba31a
ee864623021df5a2369174f3b8c90f20b6f3021d33f8c9a1ea75698168005626

Para ff8766ec873ff55cc0ac17dee7b379a4efa2a5c83dabdd9a30287c7761ad55d5, el sighashes son:

0ca51b9a67de27aa35aba665cedea31025f8d40c85669953952b8dcde4242960
46016caa2997dc453420a9af5090cd90c5109a93d525bbc3e9e12f8ec0112d58
b85c3c3b91362e3c8047120152d5d9640a850e1db6d867393ada2e13a6ec079a
+965
Bryden hudson 14 jun. 2016 1:19:00

Es absolutamente posible préstamo de dinero con Bitcoin. FairShareLoans es un subreddit donde el dinero es automáticamente prestado en ~20$ incrementos.

El cobro de los préstamos, por otro lado, es más difícil. https://www.reddit.com/r/FairShareLoans/comments/35vc5s/the_current_loansheet/ parece Que tienen una morosidad tasa de alrededor del diez por ciento.

+954
btinoco 3 nov. 2019 11:42:17

En bitcoin fuente, encontré una variable denominada NOMBRE_PAQUETE, ¿cómo funciona?

+953
RYS221 16 sept. 2018 19:19:18

1) La respuesta es 12! = 479,001,600 posible mnemotécnicos (menos si hay palabras repetidas). De estos sólo ~29,937,600 (1 a 16) producen una válida de la semilla. Este es sin duda bruta forcable.

2) No, si usted quiere hacer este uso más mnemónico (y asegúrese de que permutar en una verdadera forma aleatoria)

+935
Vivek Bharadwaj 16 nov. 2018 17:57:15

Usted puede utilizar blockonomics, es bastante rápido. También dispone de API para dar equilibrio de xpub.

Si usted no desea enviar su xpub a server, puede utilizar la https://github.com/dan-da/hd-wallet-addrs. Esto seleccionará al azar equilibrio de servicio API para cada dirección y hacer tutorial HD.

Añadido código de ejemplo utilizando blockr api, recoge los saldos de 20 direcciones a la vez, debe ser bastante rápido

importación pycoin.clave
import sys
importación os
os.environ["PYCOIN_NATIVE"]="openssl"
las solicitudes de importación
BATCH_SIZE = 20
BLOCKR_URL= "http://btc.blockr.io/api/v1/address/info"
def get_used_addresses(xpub, account_type):
 xpub_subkey = xpub.subclave(account_type)
 índice = 0
 addr_batch = []
 salida = []
 mientras que la Verdadera:
 addr = xpub_subkey.subclave(índice).bitcoin_address()
addr_batch.append(addr)
 si (index+1)%BATCH_SIZE==0:
 resultados = solicitudes.get("{}/{}".formato(BLOCKR_URL, ",".join(addr_batch))).json()
 addr_batch = []
 used_addrs = [x["direccion"] para x en resultados['data'] si no x["is_unknown"]] 
 si (used_addrs): 
de salida.extender(used_addrs)
 otra cosa: 
 romper 
 índice += 1
 devolver el resultado

def main():
 xpub = pycoin.clave.Clave.from_text(sys.argv[1])
 resultado = []
 resultado.extender(get_used_addresses(xpub, 0))
 resultado.extender(get_used_addresses(xpub, 1))
 resultado de impresión

si __name__ == "__main__":
main()
+934
Crystal Optics 6 dic. 2013 15:14:46

Algunas ligero carteras de la no verificación de las firmas, ya que la comprobación de la firma requiere de los datos de la transacción anterior. Sin embargo ligero carteras generalmente no tienen la transacción anterior para recuperar los datos de y por lo tanto son incapaces de verificar las firmas.

+924
Denis Yakovlev 19 jul. 2011 6:18:18

En realidad, se pierden si el "diff" está ajustado demasiado alto. El más alto es el "diff" más energía que el minero se tire y el más vatios que usted use.

Puesto que el valor de los días en que la ganancia es directamente proporcional al coste de la energía a la menta. El valor de la moneda vale más si más energía fue utilizada para crearlo.

+873
deRien 27 sept. 2019 8:15:58

Renlord comentó

las transacciones de bitcoin viene en los arroyos, su mejor uso ZMQ para esto. Leer doc/zmq.md en el repositorio de bitcoin

y

[los datos no es json pero] serializado hex, vas a tener que de-serializar. Hay funciones convenientes con bitcoin-cli para ello.

+860
glemme 20 nov. 2018 2:59:59

Cuando la cartera se inicializa, se generará un maestro de la clave privada para la que, como parte de la inicialización. Todos posteriormente genera pares de claves relacionadas con el maestro de clave privada, esto se llama un " Jerárquica Determinista de la Cartera (HD cartera).

Un HD cartera es agradable, ya que sólo se necesita la copia de seguridad de la semilla frase que genera su maestro de clave privada, en lugar de copias de seguridad de cada dirección individual.

+855
anvesh p 6 mar. 2017 22:25:03

Me pregunto si todos los mineros de bitcoin necesita ser completo nodos. O es posible que un minero se acaba de descargar todos los blockchain una vez, hacer todos los cálculos necesarios para iniciar la minería de datos y, a continuación, elimine la completa blockchain y sólo funcionan en el "último de los bloques". I. e puede minero de no ser un nodo?

Esta no es una pregunta duplicada.

+779
user271249 27 ene. 2013 5:57:15

Después de poner la systemd archivo en /etc/systemd/system, asegúrese de que su systemd archivo está configurado para trabajar con su instalación (ruta de acceso binario, datadir ruta, etc. son correctos). A continuación, ejecute sudo systemctl enable bitcoind.

Alternativamente, usted puede hacer editar el crontab con crontab-e y añadir la línea

@reboot bitcoind
+745
KevinTheChef 16 feb. 2019 0:26:14

El http de llamada a procedimiento remoto (RPC) de la interfaz impone "la autenticación de acceso básica". "Cookie" basado en la autenticación es engañoso, ya que en realidad no uso de cookies http. La historia corta es que en el inicio, si no de lo contrario, especifique las credenciales a través de rpcuser+rpcpassword, bitcoind va a escribir en un archivo llamado ".cookie" en el directorio de datos con el contenido de la "__cookie__:abc123", donde __cookie__ es la identificación básica nombre de usuario y abc123 es una contraseña generada aleatoriamente. En el cierre, bitcoind, se elimina el archivo.

+711
Ashish Gupta 20 oct. 2014 15:47:25

Que yo sepa, estándar ECDSA algoritmo de firma digital devuelve dos valores (según este artículo o Wikipedia), pero la transacción servicios de envío o Api, como este, requiere de una cadena como una firma. ¿Alguien puede explicar, ¿qué es la cadena, y ¿cómo puedo obtener con esos valores? Es posible que con OpenSSL? Muchas gracias!

+709
Jia Chee Tan 31 ago. 2019 2:29:42

Novato aquí!

Necesito confirmar algo: He comprado bitcoins y yo ya ven en el QT cliente que estoy utilizando. Ahora quiero enviar los bitcoins utilizando una dirección diferente a la que uso para recibirlos. ¿Tengo que enviar los bitcoins a otra dirección y sólo luego enviarlos de nuevo a su destino final? Gracias!

+671
plipfishy 1 ene. 2018 19:51:45

Blockchain.info es el envío de mi cartera copias de seguridad una y otra vez; es este alguien tratando de hackear mi billetera o algo más?

Yo no he hecho nada en mi cuenta, no cambiar la configuración de et cetera.

+657
user178449 16 jul. 2012 19:59:37

Aquí usted va recientemente he subido el blockchain de bitcoin a sourceforge.

Blockchain & Chainstate Fecha: 29 de octubre de 2013

Enlace de descarga: https://sourceforge.net/projects/bitcoinblockchain/files/29-10-2013/ Descargar Tamaño: 9 GB (Comprimido) - 13 GB (Descomprimido)

+628
friedpenguin 26 abr. 2015 2:27:29

Así, Se han vinculado también muchas cosas el uno al otro.

Depende de la web que usted está utilizando el comercio.

Hay muchas formas de seguimiento:

  • proporcionar su nombre o dirección de correo electrónico.
  • Su dirección IP.
  • Utilizando la misma dirección bitcoin.

Casi todos los sitios web de comercio obtiene su dirección IP, Correo electrónico, etc..

Moneda tranding y el intercambio es rastreable, independientemente del tipo de de la moneda.

El uso de su tarjeta de crédito es como tu son la compra de tus bitcoins de la agencia tributaria.

Que me sugieren para comprar bitcoin en efectivo y de una tienda local o por persona si se preocupan por ocultar su identidad.

Las transacciones de Bitcoin es anónima y casi difícil de ser fáciles de encontrar si usted está utilizando su propia web de la cartera y en la nueva dirección bitcoin para cada transacción.

+578
Arunachalam Thangachalam 28 sept. 2016 0:20:46

De acuerdo a MtGox, el hacker consiguió alrededor de 2000 BTC. Algunos clientes también parece que han comprado bitcoins en un artificialmente bajo precio durante el incidente, retirado, y se quedó con ellos. Esto es, con un importe estimado de menos de 650 BTC.

La información que se detalla en el enlace de arriba son:

~De Junio De 2011 Mt. Gox Incidente
Tiempo: 2011-06-19T18:00 ± 1 h (robo), los días subsiguientes (hacks y retiros)
Víctima: Mt. Gox (algunos dicen que también los clientes)
Estado: Ladrón no detectada
Cantidad:
Robado por el ladrón: 2000 BTC (estimación oficial)
Adicional retirado de la Mt. Gox: 643.27 BTC (límite inferior)
Total: límite Inferior 2643.27 BTC
Equivalente en USD: 46970.91 $ (pasado, el valor comercial real de los precios en el momento en que no era fiable)
Transacciones: ninguno lanzado oficialmente
El caso de la escala fue muy discutido; algunas reporte de un robo de casi 500000 BTC debido a la cuenta relacionada con la piratería. En este momento, estos informes parecen infundadas y una inspección más cercana pone las pérdidas en cerca de 2500 BTC. Algunos adicionales de dinero fue robado por los comerciantes, aprovechando la caída de precios y retirar dinero en el tiempo, incluso tostado de la bitcointalk.org foros. Mt. Gox dice que ha reembolsado los clientes de este robo.
+558
Ales34 8 jul. 2012 22:59:37

Como Esteban señala que obligaría a la gente a gastar monedas. La edad no es una medida adecuada de su perdición. Una recomendación común para las cuentas de ahorro es para ponerlos en la física de las copias de seguridad, tales como impresos los códigos QR que agregar que mientras la cuenta en sí mismo permanece sin conexión. La gente puede incluso sus Bitcoin ahorro para sus hijos. Para forzar a la gente a barajar estas monedas alrededor de vez en cuando para evitar que sean tomadas deshace una de las principales características de seguridad de Bitcoin. Es decir, que las transacciones no puede ser revertido, y sus cuentas no puede ser congelado o quitado de vosotros, por cualquier mecanismo.

También no hay ninguna razón. Toda la economía Bitcoin podría ser ejecutado en un solo bitcoin debido a su divisibilidad. Simplemente no hay razón para romper otros importantes Bitcoin características para recuperar esas monedas. Ni siquiera en realidad aumentar los mineros recompensas porque por cada moneda extra trajo de vuelta a la riqueza se distribuye a lo largo de más monedas de reducir el valor de cada moneda con la inflación. Un millón de dólares de valor de propagación más de 1000 bitcoins si hay 1000 bitcoins en circulación, es el mismo de un millón de dólares de valor, repartidas en 1 bitcoin si sólo hay 1 bitcoin en circulación.

+485
MuriloRM 29 jul. 2011 5:38:35

Tal y como yo lo entiendo, bloom se pueden definir filtros con algunos de destino hash y la tasa de falsos positivos. Cuando el filtrado de la blockchain, todo el destino de las transacciones están garantizados para ser encontrado, pero muchos falsos positivos, también le será devuelto al cliente por diseño.

Supongamos que un atacante es capaz de controlar muchos de bloom especificaciones del filtro enviado por un SPV cliente a sus compañeros. Será capaz de eliminar todos los falsos positivos mediante la realización de subconjunto de coincidencia en todas las transacciones de coincidencia de los filtros?

Como ejemplo, vamos a el conjunto de todas las transacciones sean los enteros de 1 a 100, y supongamos que un cliente está interesado en las transacciones de 4, 8 y 15. La primera vez que se conecta a la red, transmite una flor filtro de coincidencia (1, 4, 7, 8, 15, 27, 44, 73); la segunda vez, su filtro de los partidos (3, 4, 6, 8, 15, 27, 66). Un atacante podría ser capaz de minimizar los posibles transacciones (4, 8, 15, 27); después de varios más invocaciones, entonces, encontrar la respuesta correcta.

Soy un malentendido de cómo florecen los filtros (por ejemplo, los falsos positivos no cambie entre las conexiones), o se trata de un teórico o incluso preocupación práctica?

+482
Adam Micheal Fiorino 22 may. 2012 9:11:56

Hasta que Bitcoin se estabilice lo suficiente, los precios serán mencionados en moneda local y ser pagadero en una cantidad equivalente de Bitcoin, o si los precios serán listados en Bitcoin, este precio tendrá que ser actualizado constantemente.

I. e. el precio se cotiza en DÓLARES y la cantidad de XBT debido sería calculado justo antes de que el proyecto de ley.

+444
Karl Xu 9 ene. 2018 14:43:14

dependiendo de lo que usted está pidiendo, es posible que desee incluir todos los hash hecho en todos los nodos, como parte de la validación de la transacción así.

+406
Lorri Landolt Camilleri 27 jun. 2013 6:19:34

Estoy buscando una API que literalmente intercambios de DÓLARES de Bitcoin, no sólo de valor.

He estado buscando por todas partes para un intercambio que acepta USD en su API.

He encontrado de toneladas, lo que va a hacer de criptografía => Crypto, pero ninguno que se haría USD => Crypto.

Alguien puede compartir un servicio que hace que? O es que hay otra forma de cambio de USD a Crypto mediante programación?

+389
muhamad muhamad 13 oct. 2018 22:27:47

Depende de cómo se defina "estafa". IMO, no es más que una estafa que el sistema de reserva fraccional, utilizado en la economía mundial como un siglo ya.

Ellos toman sus bitcoins y multiplicar el uso de un sistema de reserva fraccional, la celebración de el real de las monedas, y dando Pagarés del lugar. Es una idea vieja y diferentes tipos de bancos como instituciones han estado haciendo, incluso con el oro, ya que básicamente siempre.

Esto permite la existencia de más dinero, entonces hay que originalmente fue - que podría ser una buena cosa, o podría ser una mala cosa, dependiendo de lo bien que la inflación es usted... Pero de cualquier manera, seguramente no puede terminar bien.

+370
gennady84 22 abr. 2016 2:56:26

Respuesta parcial (no una nueva solución que yo simplemente adaptar el micropago protocolo de canal): si permiten pública de intercambio de claves, una solución que me parece:

  • t1: origen de los fondos de una dirección controlada por la fuente y custodia
  • t2: fuente parcialmente signos de transacción T gastando a destino. Entonces ella envía esta parcialmente firmado transacción de custodia.

ahora es el momento en fideicomiso para firmar y difusión de T, de modo que el destino recibe el fondo. De custodia no puede gastar los fondos de manera diferente (es decir, robar), ya que obligaría a la fuente para que sirva de fiador.

(Problema: Fideicomiso podría decidir no firmar y "bloque de los fondos" (que s ¿por qué Reembolso de las transacciones se incluyen en canales de pago). Resueltos por tener Custodia parcialmente firmar y enviar a la fuente de una transacción R envío de hte los fondos de Un regreso a la fuente en t0. S ahora a la fuente que envía a sí a los fondos de la espalda. Esto es un problema? No se realmente si tienes transacción R "timelocked")

Parece más difícil encontrar una solución sin la clave pública de exchange... pero es un poco extraño para prohibir la clave pública de exchange.

+343
Frunk 24 ene. 2015 19:18:40

En primer lugar, se trata de su cartera. Sé que es una pregunta tonta pero siempre tengo que preguntar. También, fue esta cartera "cifrado"? ¿Qué versión de la cartera se utiliza y fue esta cartera basada en la misma aplicación que está usando ahora.

Por ejemplo, Bitcoin Wallet Qt, usted tiene que coincidir con el mismo producto. He notado que por ejemplo si yo traté de mi cartera de importación no funciona en otros Bitcoin wallet aplicaciones, incluso si tengo la contraseña para el cifrado correcto.

Esto realmente debe ser contestada por el desarrollador de dicha cartera y ya no sé que monedero se está usando, no te puedo ayudar en el momento actual en este sentido.

+333
Ayhan Mentes 5 mar. 2017 15:51:12

Tengo un par de miles de dólares en una cuenta de ahorros. Me estoy poniendo de casi no retorno desde las cuentas bancarias de las tasas de interés son muy bajos.

Yo no sé nada sobre el mercado de valores, por lo que invertir, no es en la parte superior de mi lista. Si yo pongo el dinero en un bitcoin wallet, teóricamente, ¿no es ganando valor más rápido que el de la cuenta de ahorros? Incluso con cualquier cargo involucrado, podría ser un buen lugar para celebrar mi dinero.

También si las cosas van mal aquí en los estados UNIDOS, me gustaría tener un poco de dinero seguro.

+310
Athena Balantac 12 ago. 2019 7:16:57

Cuando creé mi ondulación de la cartera, he seleccionado el equipo local. Ahora quiero ser capaz de acceder a mi cartera desde cualquier ordenador. ¿Cómo puedo mover mi ondulación de la cartera para el servidor?

O supongamos que quiero eliminar mi cartera de la Ondulación del servidor (¿por qué iba yo a querer hacer esto?), ¿cuál es el enfoque correcto?

+239
Mazofaker 10 jun. 2012 8:35:08

No entiendo diferentes entre listaddressgroupings y getnewaddress

Por ejemplo, yo tengo un local de blockchain ( regtest ), con 0 Bloque. Creo 101 bloque (generar 101) Puedo ver con listaddressgroupings esta salida

[
[
[
"mvAH7VsxifvQdEZ46Rdt2oN3nB5BzaPqs8",
50.00000000
]
]
]

¿Qué dirección es? Si volcado de la priv clave dumpprivkey mvAH7VsxifvQdEZ46Rdt2oN3nB5BzaPqs8

Tengo este resultado MVA_PRIVATEKEY

ok, Si puedo buscar este privkey en dumpwallet test.txt que clave en asociar a esta dirección

MVA_PRIVATEKEY 2019-01-19T10:26:19Z cambio=1 # addr=2NAoHv7kDBhHND7YHcQKuDS8wCbEz87xlrv hdkeypath=m/0'/0'/0'

¿Por qué no mvAH7VsxifvQdEZ46Rdt2oN3nB5BzaPqs8 ?

Ahora quiero crear una nueva dirección getnewaddress => 2NCGuG2v4RbaAKsZp1RQJ2ZpDM6WtW79mu3

¿Por qué esta dirección de comenzar con 2 y no con m o n ? su pk es diferente de mvAH7VsxifvQdEZ46Rdt2oN3nB5BzaPqs8

Si puedo crear otro 101 bloque, tengo una nueva dirección en listaddressgroupings

en cualquier momento puedo crear un nuevo bloque, tengo una nueva dirección en listaddressgroupings

+233
Mark J 2 feb. 2018 0:06:13

Si todos los seres humanos utilizan bitcoins ahora (Enero de 2013) para la mayoría de sus transacciones, luego de un dólar sería de valor acerca de una milmillonésima parte de un bitcoin (1/10 Satoshi).

Si bitcoins tienen diez años para coger en pleno, y que aumenta la población, tan sólo un poco en el mundo de la productividad se duplica, entonces usted podría comprar 5 barras de dulces para un Satoshi (1/10^8 BTC).

Una casa hoy en día, motor de arranque en casa puede ser un valor de 10 000 bitcoins o así. El pago de un préstamo a 30 años pago en Bitcoins requeriría un pago de mil millones de dólares al mes en algún punto.

Así que no veo cómo se puede tener viable préstamos en bitcoins hasta que el sistema se ha establecido al menos 30 años a partir de ahora.

Y si tiene 1 bitcoin hoy en día, podría convertirse en un valor de 100 millones de dólares de poder adquisitivo en 10 a 20 años. Uno barato de la moneda vale una hora de trabajo.

Así, el sistema tiene un potencial enorme recompensa por el acaparamiento--mucho más allá de trabajar para vivir, o de cualquier forma remota normal éxito de la inversión.

Cómo es el acaparamiento de ser prevenida?

Y creo que este sistema es aún más imprudente de dinero fiat, aunque en una dirección muy diferente. Pero ES probable que conduzca a una mejora sustancial de dinero en el largo plazo.

+210
Pavel Voronin 3 feb. 2012 14:33:10

No tenemos que esperar hasta que el bloque está lleno, en lugar de los bloques se crean en un proceso aleatorio. Cada vez que uno se encuentra, los mineros directamente trate de encontrar la siguiente. Esto toma aproximadamente diez minutos, independientemente del número de transacciones que están a la espera de ser confirmado.

Así, todos estaremos a la espera para el nuevo bloque.

+160
Md Akther Hossain Khan 8 may. 2013 4:38:19

Una vez encontré un programa que era capaz de crear direcciones Bitcoin con palabras específicas en ellos, pero no lo encuentro ahora. Hay un programa de confianza, en los repositorios de Ubuntu por ejemplo, que pueden generar estos 'vanidad' direcciones?

+129
qwertyprogger 20 may. 2011 9:17:05

Ahora, dicen los mineros C,D creado dos bloques diferentes T_3 y T_3' dentro de A 10 minutos. A continuación, Un anexa estos dos bloques el bloque actual cadena y guardarlas por separado. Después de la anterior notación de estos dos cadenas son (...,T_0,T_1,T_2,T_3) y (...,T_0,T_1,T_2,T_3').

Esta situación cuando hay varias cadenas de la misma longitud, simultáneamente, co-existe se llama un tenedor. El trabajo de investigación en http://homepages.gsd.inesc-id.pt/~ler/docencia/rcs1213/papers/P2P2013_041.pdf muestra que la probabilidad de horquilla depende de

  1. el retardo de propagación de un bloque en la red que implícitamente depende del tamaño del bloque(1 Mb en bitcoin(sin segwit2)) que los efectos de
  2. se espera que la duración de las sucesivas bloque de generación de tiempo(10 min en bitcoin).

También se muestra la probabilidad de horquilla proporcional a (avg. bloque de tiempo de generación)/(avg. retardo de propagación). Teniendo en cuenta el número de bitcoin, la probabilidad de que la longitud de la horquilla yo.e n valor, en este caso, se reducirá de manera exponencial.

En este caso, si E quiere enviar algunos bitcoins a F, tiene que hacer una transacción todo de nuevo?

Agregar a @Andrew chow de la respuesta, si la txn de E a F se propaga a suficiente fracción de los mineros que la ampliación de la cadena (...,T_0,T_1,T_2,T_3,T_4,...,T_n), entonces es probable que se incluyen la txn(E -> F) en la cadena como es que aún no utilizados.

Suponga que la transacción de que el Correo enviado F algunos bitcoins no fue incluido en cualquier otro de los bloques, excepto el bloque T_3.

Además, la principal razón para que un txn no llegar incluidos en el bloque son
1. No se propaga a lo suficientemente muchos de los mineros.
2. Desde un bloque es limitado en tamaño, y la inclusión de txn depende puramente de el minero de minería de la cuadra, un minero puede preferir un txn con mayor txn cuota por encima de cualquier otro.

+104
horlon 25 mar. 2016 10:48:37

El comercio de cryptocurrencies para otros cryptocurrencies no está regulado en los Estados unidos en virtud de la FinCEN la orientación o el IRS orientación, como de 12 de agosto de 2014

Cryptocurrencies son designados como de propiedad bajo el IRS orientación, y la propiedad en general goza de igual a igual tratamiento para aplazar ganancias de capital hasta que los bienes se intercambian en Dólares (u otra moneda fiat) y se mantienen en Dólares de los EE.UU. por un período de tiempo determinado. Estos son los reglamentos de propiedad y una consecuencia de la designación de cryptocurrency como propiedad.

Como tal, un "pagado" grifo no sería de transmisión de dinero, o incurrir en un evento fiscal. Y no hay otras prohibiciones en cryptocurrencies en los Estados unidos (desde un punto de vista federal, los gobiernos estatales y municipales pueden tener margen de maniobra para hacer otra cosa).

Gratis un grifo, por otro lado, puede incurrir en un evento fiscal de algún tipo de renta (?), pero la cantidad es generalmente muy pequeña y sanciones contra las cantidades que los pequeños son una ocurrencia tardía.

No consejos.

+99
Napster 20 ago. 2019 18:50:43

Idealmente, también me gustaría ver los gráficos que indican cómo de cerca estamos a segwit de la adopción y el número mínimo de bloques estamos lejos de la real segwit adopción.

+94
Gaurav Ingalkar 9 oct. 2015 9:05:36

Clave para las importaciones por sí mismo (de una fuente de confianza de teclas, como su propio almacenamiento en frío o copias de seguridad) no es una cosa peligrosa. Sin embargo, el gran número de maneras en que uno puede causar problemas por sí mismos a través de la importación de llave conduce a estas advertencias.

Muchas de estas advertencias parecen responder a situaciones más complejas, más allá de bitcoind del ámbito de aplicación. En este caso, puede haber muchas situaciones en las que un débil clave (por ejemplo, de una brainwallet con contraseña incorrecta), o perdida de la clave (origen sospechoso, o generado por alguien más) podría ser importados en bitcoind.

Por ejemplo, el siguiente puede ocurrir (con la muestra de las llaves, por supuesto):

  1. 5KVFiYbW5qbFfuDwrhPdsA3ALH3PmrEdqnqrpdwrqpygncbppy4 se genera inseguro en algún lugar de (utilizados en física de la moneda, o de lo contrario, mala origen), se traduce en dirección 1CD2nyv22gAGs8GAsdNa1rW3KinkCHgTfd.
  2. Las importaciones de usuarios 5KVFiYbW5qbFfuDwrhPdsA3ALH3PmrEdqnqrpdwrqpygncbppy4 y la utiliza en su cartera, como 1CD2nyv22gAGs8GAsdNa1rW3KinkCHgTfd en la interfaz de usuario.
  3. Contenedor de buzo desentierra mal borrados de disco duro propiedad de FooPhysicalCoinForge, desentierra 5KVFiYbW5qbFfuDwrhPdsA3ALH3PmrEdqnqrpdwrqpygncbppy4 y lo arrastra. Incluso si la dirección ha 1 BTC en original y recibió 20BTC más, el atacante ahora tiene acceso a todos los fondos recibidos y actualmente disponibles.
+47
Golden Eagle Trader 31 mar. 2010 15:20:37

Mostrar preguntas con etiqueta

$200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil $200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil blue chew viagra scam buy viagra buy viagra online buy viagra online canada pharmacy buy viagra online without script canada pharmacy viagra generic canadian pharcharmy online viagra canadian viagra canadian viagra without a doctor prescription cheap viagra cialis vs viagra cost of viagra female viagra female viagra pills free viagra free viagra samples generic viagra generic viagra 100mg generic viagra available generic viagra canada price generic viagra online pharmacy generic viagra sildenafil citrate generic viagra without a doctor prescription herbal viagra how does viagra work how long does viagra last how much does viagra cost how to take viagra for maximum effect i took viagra mom levitra vs viagra mom gives son viagra natural viagra natural viagra alternatives that work natural viagra substitute nizagara 100 mg vs viagra online viagra online viagra without subscription over the counter viagra real life viagra demonstration revatio vs viagra side effects of viagra sildenafil sildenafil 100mg sildenafil 20 mg sildenafil 20 mg tablet sildenafil 20 mg tablet vs viagra sildenafil citrate sildenafil citrate 100mg sildenafil citrate 20 mg sildenafil coupons sildenafil dosage sildenafil dosage recommendations sildenafil generic sildenafil side effects sophia viagra sophia viagra bikini sophia viagra hot stendra vs viagra stepmom gives son viagra viagra viagra 100mg viagra before after photo actual viagra boner viagra canada online pharmacy viagra coupon viagra coupons viagra coupons from pfizer viagra dosage viagra dosage recommendations viagra erection viagra erection after ejaculation viagra for men viagra for sale viagra for sale on amazon viagra for women viagra generic viagra generic availability viagra generic release date viagra in action viagra on line viagra online viagra online canada pharmacy viagra online pharmacy viagra patent expiration viagra pill viagra pills viagra porn viagra prank viagra prices viagra samples viagra sex viagra side effects viagra substitute viagra vs cialis viagra without a doctor prescription viagra without doctor prescription what is viagra when will generic viagra be available blue chew viagra scam buy viagra buy viagra online buy viagra online canada pharmacy buy viagra online without script canada pharmacy viagra generic canadian pharcharmy online viagra canadian viagra canadian viagra without a doctor prescription cheap viagra cialis vs viagra cost of viagra female viagra female viagra pills free viagra free viagra samples generic viagra generic viagra 100mg generic viagra available generic viagra canada price generic viagra online pharmacy generic viagra sildenafil citrate generic viagra without a doctor prescription herbal viagra how does viagra work how long does viagra last how much does viagra cost how to take viagra for maximum effect i took viagra mom levitra vs viagra mom gives son viagra natural viagra natural viagra alternatives that work natural viagra substitute nizagara 100 mg vs viagra online viagra online viagra without subscription over the counter viagra real life viagra demonstration revatio vs viagra side effects of viagra sildenafil sildenafil 100mg sildenafil 20 mg sildenafil 20 mg tablet sildenafil 20 mg tablet vs viagra sildenafil citrate sildenafil citrate 100mg sildenafil citrate 20 mg sildenafil coupons sildenafil dosage sildenafil dosage recommendations sildenafil generic sildenafil side effects sophia viagra sophia viagra bikini sophia viagra hot stendra vs viagra stepmom gives son viagra viagra viagra 100mg viagra before after photo actual viagra boner viagra canada online pharmacy viagra coupon viagra coupons viagra coupons from pfizer viagra dosage viagra dosage recommendations viagra erection viagra erection after ejaculation viagra for men viagra for sale viagra for sale on amazon viagra for women viagra generic viagra generic availability viagra generic release date viagra in action viagra on line viagra online viagra online canada pharmacy viagra online pharmacy viagra patent expiration viagra pill viagra pills viagra porn viagra prank viagra prices viagra samples viagra sex viagra side effects viagra substitute viagra vs cialis viagra without a doctor prescription viagra without doctor prescription what is viagra when will generic viagra be available $200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil