Más fuerte vs el más largo de la cadena y huérfanos de los bloques

Satoshi escribe en la parte inferior de la página 3 de su libro blanco que "Si dos nodos de difusión de las diferentes versiones de la siguiente bloque simultáneamente, algunos nodos pueden recibir uno o el otro en primer lugar. En ese caso, que trabajo en la primera de ellas habían recibido, pero guardar la otra rama en el caso de que se convierte en más". Parece aquí que la correcta cadena es el más largo, aunque tal vez satoshi sólo estaba siendo un poco descuidada con el fraseo.

Sin embargo, he leído en otros lugares que los nodos de elegir la correcta de la cadena en Bitcoin mediante la selección de la cadena que representa a la mayoría del trabajo (o, en otras palabras, la cadena que iba a ser más difícil de deshacer). Voy a llamar a este el más fuerte de la cadena. Esta no es necesariamente la misma como la más larga de la cadena ya que, por ejemplo, es concebible para tener un bloque que tomó a muchos más hash para encontrar una válida nonce que los otros dos bloques con un nivel de dificultad más fácil. Este intercambio de la pila es un lugar que he leído esto.

Pregunta 1: Cual es el método correcto que utilizan los nodos para determinar la correcta cadena más larga de cadena o de los más fuertes de la cadena?

Mi segunda pregunta es más relevante si la respuesta a la pregunta 1 es la correcta de la cadena es el más fuerte de la cadena. Se refiere a los huérfanos de los bloques.

Si la cadena es el que representa la mayor parte del trabajo entonces, ¿por qué son huérfanos de bloques de un problema? Parece como si un nodo resuelve un bloque y lo transmite, a continuación, todo el mundo sabe acerca de ella en cuestión de segundos y, a continuación, puede iniciar la minería en el nuevo bloque sin ningún tipo de pérdida de trabajo. Incluso si 2 mineros resolver un bloque (cerca de) al mismo tiempo, la mayoría de los bloques va a ver a los dos nuevos bloques y elegir el que con la parte inferior del encabezado de hash (porque es más difícil encontrar inferior de hashes). Parece que los nodos deben llegar a un consenso en una cuestión de segundos, a continuación, si la cadena es el elegido por el más fuerte (en lugar de más larga) de la cadena. La única vez que un minero podría pasar a trabajar en el malo de la cadena sería el tiempo dedicado a la minería entre la recepción de un resueltos bloque que es poco después de la sustituye por una diferente resuelto bloque con un poco menos de hash. Cuánto tiempo podría ser eso, 10 seg?

Pregunta 2: Son huérfanos de bloques de un gran problema para los mineros? Si el bloque de generación de tiempo de 1 minuto, en cambio, se huérfanos bloques de ser un problema mucho más grande?

+631
jmsu 23 mar. 2012 4:06:33
22 respuestas

Soy un poco nuevo en Bitcoin.

Acabo de descargar un Bitcoin wallet "bitcoin core". Y me he descargado todos los nodos (una gran cantidad de datos, creo que es el sistema completo).

Cuando hago clic en el "Recibir", puedo solicitar el dinero.

Pero me di cuenta de que cada solicitud, estoy asignado una dirección diferente. Entonces me di cuenta de que es una recomendación oficial por el software.

¿Hay alguna razón para que? Cuántas direcciones puedo tener? ¿Qué necesito para estar preparado por si tengo un montón de dirección? (por ejemplo, copia de seguridad de algo)

+996
tjhotrod 03 февр. '09 в 4:24

Pasar un NULL contexto para secp256k1_ecdsa_verify resultados en un fallo de segmentación (véase el código adjunto). Tengo la sensación de que este comportamiento no es intencionado como el secp256k1 biblioteca parece ser sistemático en la evaluación de NULL punteros. Sin embargo, no estoy seguro de porque 1. usted necesita un contexto para llamar a la función de devolución de llamada (por lo que no puede hacerlo aquí), y 2. la biblioteca no aceptar en silencio NULL contexto cuando no importa (así que tal vez no tiene una política deliberada de no probar NULL contexto).

#include "secp256k1.h"
#include <assert.h>

int main(){

 // clave válida
 const unsigned char *pubkey_bytes = "\x03"
"\xf0\x28\x89\x2b\xad\x7e\xd5\x7d\x2f\xb5\x7b\xf3 canon\x30\x81\xd5\xcf"
"\xcf\x6f\x9e\xd3\xd3\xd7\xf1\x59\xc2\xe2\xff\xf5\x79\xdc\x34\x1a";

 // firma válida
 const unsigned char *sig_bytes = 
"\x98\x62\x10\xb9\xdc\x0a\x2f\x21\xbc\xae\xc0\x96\xf4\xf5\x5f\xf4"
"\x48\x6f\xcc\x4e\x3a\xaf\xe7\xe0\xcb\xf6\x46\x92\x59\x6e\x99\x4a"
"\x0e\x5c\x6e\xc6\x54\x08\xd6\x5a\xae\x9e\x1c\xe8\xe9\x53\xc3\x1e"
"\xd0\x3f\x41\x79\x09\x1d\x20\xd1\x59\xda\xe4\x19\xe9\x0c\xa3\x63";

 const unsigned char *hash_bytes = 
"\x7f\x83\xb1\x65\x7f\xf1\xfc\x53\xb9\x2d\xc1\x81\x48\xa1\xd6\x5d"
"\xfc\x2d\x4b\x1f\xa3\xd6\x77\x28\x4a\xdd\xd2\x00\x12\x6d\x90\x69";

 int valor;
 secp256k1_context *ctx;
 secp256k1_pubkey pub;
 secp256k1_ecdsa_signature sig;


 ctx = secp256k1_context_create
 ( SECP256K1_CONTEXT_VERIFY 
 | SECP256K1_CONTEXT_SIGN
);

 // análisis de clave pública
 valor = secp256k1_ec_pubkey_parse(ctx, y el pub, pubkey_bytes, 33);
 assert(valor == 1);

 // análisis de la firma
 valor = secp256k1_ecdsa_signature_parse_compact(ctx, &sig, sig_bytes);
 assert(valor == 1);

 // verificar la firma 
 valor = secp256k1_ecdsa_verify(ctx, &sig, hash_bytes, y el pub);
 assert(valor == 1);

 // pasar el valor NULL contexto (segmentation FAULT)
 valor = secp256k1_ecdsa_verify(NULL, &sig, hash_bytes, y el pub);


secp256k1_context_destroy(ctx);

 return 0;

}
+962
user287827 24 feb. 2017 14:27:52

He estado corriendo un bitcoin aplicación en un servidor antiguo. Necesito mover todo a un nuevo servidor, pero mi pregunta es esta: ¿hay una manera que puedo transferir mi bitcoin wallet (bitcoin core) para el nuevo servidor con un paño limpio O/S instalación sin perder el tx de la historia de mi antiguo servidor de la cartera?

+873
user36042 4 nov. 2018 16:21:55

Dado BIP-11 (M de N Transacciones Estándar) no está claro por qué BIP-147 (que Trata con un maniquí de pila elemento maleabilidad) es necesario.

BIP-11 estados:

OP_CHECKMULTISIG las transacciones se redimió con un estándar de scriptSig:

OP_0 ...firmas...

(OP_0 es necesario debido a un fallo en OP_CHECKMULTISIG; aparece también muchos elementos de la pila de ejecución, por lo que un valor ficticio debe ser colocado en la pila).

Sin embargo, BIP-147 reclamos:

Un defecto de diseño en OP_CHECKMULTISIG y OP_CHECKMULTISIGVERIFY les hace consumir un extra de pila elemento ("dummy elemento") después de la validación de la firma. El maniquí elemento no es inspeccionado en cualquier manera, y podría ser reemplazado por cualquier valor sin invalidar la secuencia de comandos. ... [mi énfasis]

Esta afirmación parece contradecir BIP-11, en el que claramente se requiere OP_0 como la primera validación elemento de secuencia de comandos.

Se me ocurren dos razones para BIP-147:

  1. BIP-11 no exige explícitamente a la pila para ser revisado pero solo que un multisignature la validación de secuencia de comandos comienza con OP_0;
  2. BIP-11 no aplica en absoluto a OP_CHECKMULTISIGVERIFY.

Son estos, de hecho, las motivaciones para BIP-147, y hay otros?

+870
Greg Debicki 17 sept. 2016 20:41:06

Fácil. En el código fuente de añadir un condicional. Por ejemplo, si el protocolo se necesita ser cambiado para todas las verificaciones después del bloque de 200.000, a continuación, el pseudo código para que es:

Si el bloque <= 200,000: # Hacerlo de la manera antigua. Otra cosa: # Hacer de nuevo el camino.

El problema no es técnico, es político. Si ese cambio me causa dolor (p. ej., inflar la moneda a una tasa más alta), entonces no voy a querer a aceptar cualquier versión del código que hace algo que yo no quiero que suceda.

Por lo que cualquier cambio necesita obtener comprar en (consenso), a partir de los desarrolladores, los mineros y ... lo más importante, aquellos que aceptan bitcoins bajo las nuevas reglas a cambio de algo de valor.

Si un cambio no deseado es empujado hacia adelante, sin ser ampliamente aceptada, un blockchain horquilla va a ocurrir, y el lado de la pérdida (generalmente el tenedor con las nuevas reglas) esencialmente se ignora como si no, incluso existe por el resto de la red.

Ha habido varios cambios en el protocolo, así como los cambios a la aplicación en el cliente. Algunos son bien planeado con anticipación (por ejemplo, BIP 16), y algunos son en respuesta a un problema (p. ej., Agosto de 2010 el valor de desbordamiento).

+816
Faad Grubnenork 17 abr. 2012 0:10:23

cuando alguien me envía BTCs reconozco que al ver a una transacción de salida es igual a mi dirección. Pero ¿cómo puedo estar seguro de que es realmente de mí y sólo de mí que puede pasar la salida?

Puedo comprobar, puedo desbloquear la salida. Pero considerar que soy un mal, vendo BTCs a alguien. Pero puedo crear un multisign-script que desbloquea la transacción de salida también por mi clave privada y cuando yo reciba $ puedo tomar mis BTCs espalda.

Hay una protección en contra de esto? Hacer carteras de verificación de la salida de los scripts de alguna manera antes de reclamar el equilibrio?

+789
user45185 3 ene. 2012 0:32:46

Hay algunos tutoriales por ahí, echa un vistazo:
https://bitcointalk.org/index.php?topic=225690.0

Si uno no es suficiente, hágamelo saber, y tal vez voy a escribir uno.

También hay una gran cantidad de monedas en github que se podría tenedor, crear su propia génesis bloquear, modificar parámetros (monedas por bloque, el número máximo de monedas, etc) y empezar a minería.
Un ejemplo es:
https://github.com/0xfff/VanCoin

+779
user1421486 24 nov. 2018 21:29:37

Puede comprobar si la transacción es entrante o resultante si usted marca "gastado" valor booleano:

{"spent":false,"tx_index":64117670,"type":0,"addr":"18TXxNNt5qQWiNsCb6vLhUud8wjqehHWyn","value":496364,"n":29,"script":"76a91451cd88fd726d2f2085e86fd242873c6ab6f5485d88ac"}, 
{"spent":true,"tx_index":64117670,"type":0,"addr":"1FvfNCiqGF9sCFoJqcNCExv34UM1KfpXiu","value":464214,"n":30,"script":"76a914a3b7d538dac93dd995e01069e44be13bdebd7baa88ac"}
+710
Jaggers 17 abr. 2019 10:57:05

Prueba a restaurar de nuevo. Para hacer eso tienes que crear una nueva cartera de archivos a través de archivo > nuevo o restaurar, escriba un nombre de archivo único y haga clic en siguiente. Luego de ser conscientes de las siguientes cosas:

  • En la semilla de paso de entrada haga clic en opciones y comprobar bip39. Preste atención al mensaje junto al botón opciones en este paso. Cuando dice bip39 suma de comprobación ACEPTAR usted puede continuar con el siguiente paso.

  • En el siguiente paso, introduzca una ruta de derivación de m/0' . Eso es un cero y una sola cita.

+658
dzhamamus 13 ene. 2016 16:31:13

Es posible que en el futuro, para reducir el tiempo de confirmación de las transacciones? Puede de alguna manera ser reducido a menos de 10 minutos? Puede ser de hecho más rápido?

+629
ekmz 4 nov. 2010 23:55:39

Las respuestas marcadas cubre la mayoría de las principales preocupaciones que me gustaría tener, pero no es la idea que he visto que tiene algunos méritos.

El quid del problema es que la descentralización de exchange requiere a confiar en alguien con su fiat.

En el Rizo y Bitcoin – Fundamentos de una Economía Descentralizada que describen un modelo que confiaría para pequeñas cantidades de fiat.

La idea básica es establecer líneas de crédito con personas de confianza.

Un escenario sencillo es cuando las dos personas con ganas de hacer una transacción que tiene una persona en común en los que confía. Resumen del artículo:

  • Mark y Brian son extraños que quieren hacer un cambio. La marca está dispuesto a vender 0.5 BTC a Brian en cambio de $50 (USD).
  • Brian ha establecido previamente una línea de crédito con su amigo Juan de hasta $100.
  • Y Juan pasa a vivir con el y ser amigos con la Marca y que también han accedido a confiar el uno en el otro para hasta 100 $de crédito.
  • Así que una vez que Juan ha sido notificado de que la transacción es válida, él saca su cartera y paga la Marca de los $50.
  • Brian ahora le debe a Juan $50 y puesto que confiar el uno en el otro, se puede ordenar que, cuando y como lo deseen.

Una imagen (fuente: Ripple) podría ayudar.

Exchange using a trusted friend in common

Esto puede ser fácilmente extendido a las cadenas de confianza para que una persona común no es necesario.

Todavía tengo un par de pequeñas preocupaciones con este modelo:

  • La recolección de grandes cantidades puede ser una carga y no muy oportuna, ya que sería la propagación a través de un gran número de sus amigos de confianza.
  • Existe algún riesgo con el total de la deuda a los amigos. Sería raro, pero si usted está de acuerdo para dar una línea de crédito de 100 amigos, cada uno por $50 y la mayoría de ellos necesitan basarse en que en la misma semana en que usted tendría que venir para arriba con algo parecido a $5000 en efectivo. El sistema debe incluir una "cantidad máxima por día / semana / mes" que estarían dispuestos a cubrir.
  • Persiguiendo a los amigos por el dinero que le deben a usted podría ser muy molesto. Tendría que ser automatizada de alguna manera para que sea práctico.

Pero parece que a la menor de las preocupaciones que tengo podría ser abordado en forma automatizada, así que creo que este modelo tiene algo de promesa. Ahora Ondulación sólo necesita terminar la descentralización de la todavía centralizada de los elementos de su red (el UNLs por ejemplo, como se explica en esta pregunta) y este modelo podría tener algún potencial. En total, en realidad yo confío en mis amigos mucho más de lo que confío en mi banco.

+621
emrobin 3 feb. 2019 16:05:44

PubNub MtGox API Ticker Repetir los Mensajes

La clave de pizarra de los Eventos son las Actualizaciones que se transmiten directamente a usted, que puede o no representar un cambio en el precio. Sin embargo, el ticker de las actualizaciones normalmente atado a un comercial de eventos que se producen en el canal de comercio.

Usted puede encontrar el comercio flujo de aquí: http://www.pubnub.com/console/?sub=sub-c-50d56e1e-2fd9-11e3-a041-02ee2ddab7fe&pub=demo&channel=dbf1dee9-4f2e-4a08-8cb7-748919a71b21&origin=pubsub.pubnub.com&ssl=true

Así, en lo que respecta a las actualizaciones puede recibir inmutable valor actualizaciones. Usted puede también considerar el mirar en valores históricos mediante el uso de la API de Historia: http://www.pubnub.com/how-it-works/storage-and-playback/

Compruebe también las relacionadas con la Stackoverflow artículo: https://stackoverflow.com/questions/20547815/convenient-way-to-extract-data-from-the-mtgox-pubnub-json-api/20553315#20553315

o

https://stackoverflow.com/questions/20495713/are-there-ready-made-java-classes-for-the-mtgox-pubnub-json-api/20500700#20500700

+608
Rocky Eric Holmes 11 may. 2017 15:03:43

bitcoinj utiliza una fecha de nacimiento de la cartera. Con esto evitar la lectura de la totalidad de la blockchain para restaurar la cartera

+517
user211722 17 mar. 2016 12:59:39

Decir, por ejemplo, si uno utiliza el bitcoin core como su cartera, mientras que el envío de la primera transacción, se su IP ser de alguna manera se reveló en esa instancia?

En teoría, es posible, pero en la práctica, no. Las direcciones IP no están en las transacciones o bloques de alguna manera.

¿Alguien ha probado a ejecutar bitcoin core en una VPN/TOR configuración o el medio ambiente?

Sí. Bitcoin Core tiene opciones para el uso de la TOR proxy SOCKS5 y que ha tenido esta capacidad para un largo tiempo.

+512
Janna Schroeder 27 mar. 2015 12:26:53

No DNSSec no es necesario con Namecoin. La asignación de nombres a direcciones IP no se puede falsificar.

Sin embargo, DNSSec requiere cambios en la resolución de las bibliotecas para los dominios en realidad son criptográficamente verificado.

Namecoin, para ser seguro, requiere cambios similares a los de las librerías de resolución porque no hay nada en la actual resolución de las bibliotecas en realidad comprueba la integridad de los resultados.

Cualquier persona puede ejecutar el software para comprobar que una tradicional (inseguro, no criptografía) de servidor de nombres que se resuelve .bits de direcciones en realidad direcciones de retorno correspondiente a la blockchain.

Así, namecoin servidores de nombre se puede asegurar que no "engañar a toda la gente todo el tiempo" por tener algunos de los servidores que revisar continuamente la integridad de los resultados producidos por la inseguridad, pero compatible servidor de nombres.

+468
user21133 30 mar. 2014 13:14:57

Bitnodes acaba de lanzar su programa de incentivos. Cada semana, se selecciona aleatoriamente un nodo de un grupo de elegibles nodos que recibe un pequeño incentivo (~10-30USD). Además de que no va a recibir Bitcoins sólo con un total de nodos.

+416
NeoNox 5 oct. 2017 12:22:18

De la OMI, como un principiante, papel cartera con 2-3 copias que suena mejor. Todos almacenados en lugares seguros! También me gusta el pulgar unidades, pero algunas de estas respuestas parece ridículo incluso para el geek conjunto, como "la utilización de este tutorial" 2 puestos de arriba.

+236
Rob Kam 14 may. 2015 14:30:32

Después de importar / restauración con 12 frase, el equilibrio era todavía 0.00, así como otros dijeron que me presiona "Configuración" > "Wallet" > "Más Opciones" > "Cartera de Direcciones" > "Escanear las direcciones de los fondos". Tengo 3 dirección, uno lo que estaba buscando. El Balance es todavía 0.00, pero yo podría copiar una clave. Es esta la clave de la clave privada? O la dirección de la cartera? ¿Cómo puedo recibir mi dinero con esta clave?

+226
nihylio 12 jun. 2019 11:52:02

He creado 2 diferentes carteras en el bloque de la cadena. El primero me dio una dirección para la recepción de btc. Yo que la dirección de una compra, sin embargo, ahora, cuando puedo iniciar sesión en mi cartera, ya no muestra esa dirección. Por suerte, he guardado, y se puede buscar por ella. Muestra los btc que he comprado, pero me obliga a introducir la clave privada antes de moverlos. Pensé que todo el discurso que envié para el btc se incluye la clave privada. También comprobé el otro monedero que he creado, y la dirección llegué por primera vez no está allí. Estos son sólo 2 carteras que he creado y sé que he recibido de la dirección original de uno de ellos. Sé que hay hackers que están por ahí, pero que no es a mí. Esta es MI cartera, y me pagó un montón de dinero para el btc, pero claramente yo la pata en algún punto. Esta es la dirección: 1593pt67xM8KRZ23Akxp2KwCj856fCfWsh

+163
RolandTumble 25 may. 2010 10:06:59

Soy capaz de crear nueva dirección bitcoin usando jsonrpc accediendo a la bitcoind cliente, donde soy capaz de conseguir sólo el nombre de la cuenta y la dirección, pero yo no podía conseguir privada o de clave pública. Es allí que cualquier otro enfoque para crear nueva dirección bitcoin con la clave privada y pública.

+139
aek971 23 sept. 2012 3:59:17

No es exactamente cierto. Bitcoin no existía hace diez años. La versión inicial fue lanzado en enero de 2009.

Pero es cierto que en los inicios de su historia, Bitcoin podría ser comprado muy barato, y estoy seguro de que hubo un tiempo cuando usted podría haber comprado 20 XBT por un dólar. (Hubo un famoso transacción en Mayo de 2010, cuando dos pizzas eran intercambiados por 10,000 XBT.) Y es verdad que el 20 XBT hoy podría ser vendido por más de $20,000.

No se debe interpretar esto como cualquier tipo de indicación de que invertir en Bitcoin hoy en día, o en cualquier otro cryptocurrency, es probable que para proporcionar el mismo tipo de devoluciones.

+105
intent remnant 4 nov. 2014 10:01:16

Las últimas versiones de la referencia Bitcoin aplicación tiene la 'dumpwallet' RPC comando, que vuelca una legibles lista de todas sus claves privadas.

El formato es simple: sólo un comentario-líneas (comenzando con #) o líneas que son la clave privada (más de metadatos acerca de la clave). Así que para combinar teclas de varias carteras sería:

  1. Vuelva a ejecutar el bitcoind/Bitcoin-Qt, dando la cartera=/ruta/a/opción de cartera
  2. dumpwallet la clave privada de acceso a un archivo (walletpassphrase en primer lugar, si la cartera tiene una frase de contraseña)
  3. Apagado
  4. concatenar los archivos juntos
  5. Vuelva a ejecutar y importwallet el archivo combinado

El último paso va a tomar un tiempo como el blockchain es escaneada para que las transacciones/de la importación de claves privadas (la concatenación de varios cartera de teclas en el paso 3, se ahorra tiempo, repetidamente dumping/importación).

Un php o python o un script de bash que hicieron todos los de la partida/parada/concatenar usando JSON/interfaz RPC o bitcoin-cli sería fantástico. Crédito adicional si ha notado que las carteras se bloquea y pide contraseña....

+27
Polly Israelsamuel 4 ago. 2013 8:33:50

Mostrar preguntas con etiqueta