Se bitcoins (o fracciones de bitcoins) etiquetados con IDs?

Muchas fuentes describen el doble problema de gasto diciendo algo así como "la gente no puede ser capaz de pasar el mismo bitcoin dos veces". [1][2][3] Así son los bitcoins, o la más pequeña permitida bitcoin fracciones, claramente etiquetados entidades? A mi entender fue que no lo son, y que el blockchain únicamente se registra información sobre la cantidad de bitcoins que tiene cada usuario.

También, si estoy en lo correcto, ¿qué sería de un doble gasto parecen realmente en el sistema bitcoin? Si puedo enviar una transacción a un minero diciendo: "yo te pago el usuario X 1 bitcoin" y otra transacción a otra minero diciendo: "yo te pago el usuario Y 1 bitcoin", entonces parece que no he doble gastado, sino sólo el pago de dos bitcoins en total, uno para cada usuario. A la derecha?

+863
Cherkes2000 30 dic. 2012 8:23:49
21 respuestas

Un montón de cryptocoin sitios y en particular de la minería de piscinas de uso del término "trabajador", pero no existe una definición clara. ¿Qué es un trabajador?

+961
maximum 03 февр. '09 в 4:24

Blockchain es una mera cadena de bloques y en este sentido es peor que la de cada base de datos en la tierra. Lo que hace que el público blockchain único es la prueba-de-trabajo que se asegura de que miles de copias de la blockchain son probabilísticamente idénticos en todo el mundo y sin discreta autoridad de confianza para su gestión. Un privado blockchain es un libro administrados por la autoridad, por lo que es una abstracción que puede ser aplicado con cualquier db tecnología

+866
badf00d 28 dic. 2016 21:14:33

Los impuestos a las mismas cosas exactamente como si la hubiera hecho esas cosas en Baht Tailandés o de Nigeria Dólares o Libras esterlinas. Si usted ve los anuncios, que los ingresos del estado. Si usted compra de oro, y se aprecia, que las ganancias de capital. Si usted compra un contrato de minería de datos, los ingresos menos la depreciación es ganancia de capital.

+865
Ha2121 1 mar. 2019 23:44:02

Los grifos como los que existen realmente y de trabajo, sin embargo, probablemente hay también algunas falsificaciones. No se puede hacer nada con una dirección Bitcoin, excepto para utilizarlo como una dirección de destinatario y/o ver los saldos y transacciones de la historia de la dirección.

Las direcciones de correo electrónico no están obligadas a enviar bitcoins. A menos que usted es capaz de discernir el otro de fiar razón de la necesidad de la dirección de correo electrónico, parece más probable que se están recopilando las direcciones de correo electrónico para otros fines, tales como la publicidad, los ataques de phishing, o para recoger las direcciones relativos a la cartera de servicios.

Me gustaría tener cuidado para comprobar si un grifo de servicio está conectado a algunos de fiar operación. Probablemente sería una buena idea utilizar una dirección de correo electrónico creado especialmente para que de un solo uso.

Además, ser conscientes de que hoy en día la mayoría de los grifos sólo dan las minúsculas cantidades de bitcoin, por lo general no vale la pena su tiempo y esfuerzo. Si usted puede encontrar un trabajo por el tiempo invertido en su lugar, probablemente, usted puede comprar un múltiplo de la bitcoins con el dinero ganado en su lugar.

+844
Mugambi 23 sept. 2016 5:09:13

Se me ha dado "Ver sólo la Dirección" por uno de mi amigo

Esto es una estafa a menudo utilizado por la línea de la con-hombres haciéndose pasar por su amigo.

Un reloj de direcciones sólo le permite ver un bitcoin wallet propiedad de alguien más. Pueden mover sus bitcoins de distancia en cualquier momento. No puedes gastar sus bitcoins.

Qué tenemos que pagar nada por el blockchain.info para la liberación de

No. Si tu "amigo" afirma haber antes establecido una billetera en línea para usted y que el servicio en línea ahora necesita pagar para liberar la clave privada - su "amigo" está mintiendo a usted con el fin de engañar a usted de su dinero.

El Blockchain.info sitio web tiene un enlace "Obtener una cartera". Si tu "amigo" que utiliza, que tiene una clave privada de forma gratuita. Tenga en cuenta que esta cartera pertenece a ellos, no a ti. Que se aplica incluso si parece contener dinero que le dio a su "amigo" o que se reivindica a ganado en su nombre por la minería o el comercio.

blockchain.info's términos de servicios en el párrafo 10.2 dice

Al crear una Cartera, los Servicios de generar y almacenar una criptográficos de clave privada y pública par que usted puede utilizar para enviar y recibir cualquier Moneda Virtual

Así que no hay ningún costo para la obtención de la clave privada cuando se crea un bolsillo gratis.

Ver estas cuestiones similares de otras víctimas de estafas:

+810
v74 19 jun. 2012 12:16:41

Buen día.

He creado 2 direcciones de la misma clave privada. Una dirección es, por supuesto, comprimido, mientras que el otro no lo es.

compressed_public_key = "025d9a1a0a5dab7e3e4a84c30a42ddc0d71b2da0fa1f3b99fbda9fc03eb8c75cd5" 
corresponding_address = "mfjRUvWr9QZadpiRnbRfHS4UDSxdR9FE75"

uncompressed_public_key = "045d9a1a0a5dab7e3e4a84c30a42ddc0d71b2da0fa1f3b99fbda9fc03eb8c75cd535a0b893f20338d37d20eebe2941859dfe53b175f0bb24a27bc77741f0bb8cac"
uncompressed_address = "mi4kMd3HcLUGJSouNdJZ87eUBbi7cNE6c3"

También he enviar algunas monedas para cada dirección.

utxo_to_compressed = "963baf6eb615a09afcb05ebcdbd3db05a163994dd2035002477c753ba3281eff"
utxo_to_uncompressed = "08a1286bb379f6eb5151828505b934c1b917201592bb76bd252a53b7a3009b17"

El uso de bitcore he creado la private_key a firmar las transacciones y la utxos como sigue:

privateKey = new bitcore.PrivateKey(BN, "testnet")

scriptSig = "76a914" + hashedPubKey + "88ac";

Y el hash de las claves públicas son:
1bf398bb044e55f1971e384cc1e6d861dca3adb9 para el sin comprimir 
025bafbac8a8a1fcbae04f9a6aa8b6f968c9d145 para el comprimido

utxo_compressed = new bitcore.Transacción.UnspentOutput({
 "txId": "08a1286bb379f6eb5151828505b934c1b917201592bb76bd252a53b7a3009b17",
 "outputIndex": 0,
 "address": "mi4kMd3HcLUGJSouNdJZ87eUBbi7cNE6c3",
 "script": scriptSig,
 "satoshis": 5000000000
});

utxo_uncompressed = new bitcore.Transacción.UnspentOutput({
 "txId": "963baf6eb615a09afcb05ebcdbd3db05a163994dd2035002477c753ba3281eff",
 "outputIndex": 0,
 "address": "mfjRUvWr9QZadpiRnbRfHS4UDSxdR9FE75",
 "script": scriptSig,
 "satoshis": 5000000000
});

La firma del comprimido utxo no es un problema. Pero una vez que estoy tratando de señal sin comprimir transacción de recibir un mensaje de error.

compressedTx = new bitcore.Transacción();
uncompressedTx = new bitcore.Transacción();
compressedTx.a partir de(utxo).para(algunas de salida).signo(privateKey); <-Este funciona bien
uncompressedTx.a partir de(utxo).para(algunas de salida).signo(privateKey); <-Esta falla
//Algunas entradas no han sido totalmente suscrito Uso//

En el pasado, he enviado y redimido a las transacciones sin comprimir de clave pública (yo lo hice manualmente, utilizando un simple código de python). Me parece que no puede encontrar ninguna razón por la que las entradas no estaban firmados.

Yo te agradezco mucho cualquier ayuda que usted podría tener que ofrecer

+793
Saidbek 17 may. 2018 9:30:33

La pregunta está en el título. Cualquiera que jugó lo suficientemente larga, como en el de divisas entiende que las monedas son en gran parte impulsado por el sentimiento o manipulados en alguna que otra ocasión. Además, está el hecho de que el dinero no tiene valor intrínseco. Ha bitcoin superar cualquier deficiencia y los riesgos de las monedas convencionales ?

+781
Brian KE 22 jul. 2010 22:08:47

Estoy tratando de estudiar la locktime característica de las transacciones ( https://en.bitcoin.it/wiki/Protocol_specification#tx ). He creado algunos bruto transacciones en la testnet con diferentes locktimes, pero, cuando se los puedo mandar, que se confirmó como de costumbre. También he sido capaz de pasar la acaba de enviar monedas de inmediato. Cuando pongo el bloque, el locktime campo parece correcto.

¿Cómo es el locktime comprueba cuando se confirma una transacción? Puede alguien que me señale el trozo de código que hace la comprobación?

O estoy equivocado y locktime es que realmente no se implementa?

+750
sparkFinder 12 oct. 2019 1:20:10

He estado leyendo el código fuente de Electrum, y resulta que la razón por la que usted no puede encontrar cualquier cosa sobre esto es que no se trata de una Electrum error es un error generado por el cliente Bitcoin, y Electrum es simplemente pasar a lo largo.

Ahora, lo que causa el error?

Hay un montón de maneras en que puede suceder (como tratando de enviar un coinbase de la transacción), pero el número uno de la forma en que esto puede suceder es que si usted envía la misma operación dos veces. Desafortunadamente, la implementación actual de sendrawtransaction no da ninguna información acerca de por qué.

(Para aquellos que estén interesados, el error está en la línea 555 de rpcrawtransaction.cpp.

+705
Oralbai 10 feb. 2014 1:36:15

PREGUNTA: ¿Puede el bitcoin red de seleccionar al azar un subconjunto de los nodos existentes, para cada uno de los bloques, que luego compiten para resolver el hash?

No.

Piense en esto: si hubiera una manera justa y fiable " seleccionar un subconjunto de los mineros, entonces ¿por qué no seleccionar un solo minero, y les permiten crear el siguiente bloque sin ningún Prisionero de guerra el gasto de energía? La razón de que incluso tienen el proceso de minería en todo? Bueno... la respuesta es que es muy duro al azar para elegir a un compañero en una red distribuida, en un modo demostrable "justo" de forma que no es juego de poder. Y así hemos levemente artificial soluciones, como Bitcoin del PoW proceso.


Primero de todo, está el problema de cómo seleccionar aleatoriamente un subconjunto de nodos, en una forma que no es juego de poder. ¿Cuál es para que deje de sólo correr/suplantación de 1 millón de nodos? Detener sybil ataques no es trivial en una red como esta.

Además, ¿cuál es la definición de un 'nodo seleccionado'? Es una de minería de la piscina? Un verdadero nodo de la red? Un individuo? Una sola ASIC de minería de equipo? Incluso si te decides por una definición, ¿cómo en la tierra que cumplir? Tener algún tipo de registro es la antítesis de la Bitcoin del diseño. Algunas de las definiciones anteriores también puede crear una tendencia hacia minero de la centralización, que es malo para el mantenimiento de la censura de la resistencia.

Pero le acaba de imaginar que hay una solución técnica, que permite perfectamente a un proceso de selección justo que los mapas de nodos de 1:1 a los reales mineros. En ese caso, si mi nodo no fueron seleccionados para la minería de ronda, entonces yo todavía tiene un par de opciones: alquilar mi hash poder a un nodo que se ha seleccionado (como @Nate Eldridge sugerido), o simplemente continuar la minería, y si puedo encontrar una válida bloque, lo vendo a un nodo que se ha seleccionado, de modo que se puede publicar en la red. En ambos ejemplos, el uso de la energía no ha disminuido, sino que ha probabilidad mayor, debido al aumento de la fricción de la participación.

BENEFICIOS: Todavía hay un costo incurrido por cada participante sin el uso de la energía.

Desventaja: en realidad no resuelve el problema de una Sibila ataque, sólo hace un sybil ataque más caro para tirar de fuera, y en general, queremos evitar cualquier juego teórica situaciones que favorecen un usuario sobre otra extrínseca razones económicas.

El consumo de energía es ahora una fracción del total de la participación en la red para el proceso iterativo de hash de búsqueda.

Esto es falso, como se ha mencionado, debemos esperar racional de los mineros alquilar su hashpower a uno en el otro, etc.

Puede permitir que el nodo más participación por menos potentes ordenadores. Una computadora portátil de ser una desventaja, pero ahora está compitiendo contra 9,999 otros equipos en lugar de los hash de energía de toda la red.

Esto es falso, un ordenador portátil todavía sería inútil, sobre todo teniendo en cuenta la capacidad de los mineros para alquilar hashpower, etc.


Esta pregunta se parece a la madre de la narrativa que "Bitcoin minería de datos utiliza la energía y lo que es malo!", pero esta narrativa ignora el hecho de que los beneficios de Bitcoin son tal vez vale la pena el costo de funcionamiento del sistema. La seguridad no puede ser falsificado, y PoW ofrece lo que es tal vez el más eficiente y transparente el método de la creación de la seguridad de una red descentralizada en este sentido.

+672
ashirley 13 jul. 2015 9:50:21

Sí, es posible.

Pero, hay algunas cosas que usted shound saber:

1) Minning Bitcoin con la GPU está casi muerto, usted debe haber leído acerca de otras cripto monedas. En concreto, "scrypt" según los.

2) Nvidia no eficiente de la energía para la minería de... sería mejor si usted acaba de vender la nvidia y comprar un amd con el mismo precio. A menos que usted desea utilizar su tarjeta nvidia para gamming, edición de vídeo... no sé... no sólo para la minería.

3) CGMiner = AMD ; CUDAminer = Nvidia ... diferentes programas. no no si trabajan bien juntos... si lo hace, ellos que son buenos para ir :-)

espero que me había ayudarle.

+647
Fabio Good 9 dic. 2017 8:50:56

Un creador de mercado siempre coinciden con los pedidos. Debe de haber alguien que quiera comprar en el precio que usted desea vender, y viceversa. Si usted pone en un precio bajo para vender en, usted no está garantizado para vender a ese precio. Concedido, el creador de mercado puede llenar otros órdenes de compra que son más altos que lo que están pidiendo, pero, de nuevo, esto no está garantizado.

La clave de alto volumen de compra-venta de motores de búsqueda es mirar para el volumen. Más de volumen significa un mercado más grande y más oportunidades para comprar y vender. Hay un número de sitios web, como Cluedex.com, que el rango de los mercados y determinar las que son tendencias en cualquier momento dado, y también dar alguna indicación de impulso. Con estos datos, se puede determinar que los mercados son más probable que el comercio más rápidamente. Entonces, es sólo una cuestión de conseguir el precio bid/ask y vendiendo/comprando a esos precios.

+542
Gela 5 jul. 2013 0:15:47

Quiero iniciar un BTC mercado. Entiendo todas las maneras de ir sobre la creación de un sitio, es simplemente el pago de implementación que me confunde. Quiero multi-sig transacciones capaces entre mis usuarios en el sitio. Si entiendo correctamente, multi-sig direcciones son sólo especial billeteras de todos modos que requieren una cierta satisfacción (2 de las tres teclas, por ejemplo) para ir a través de.

Cómo puedo implementar un sistema como este para mis usuarios de mi servidor? Así que puede permitir a los usuarios el comercio sin el hombre de en medio si es posible, sin embargo, también tenemos la oportunidad de hacer un depósito a la moderación en el caso de que algo suceda? En el extremo de un pequeño porcentaje de mercado se puede cobrar?

Soy nuevo en el Bitcoin programación, pero estoy asumiendo que usted simplemente tiene su sitio web en aplicación de interactuar con el servidor de demonios que crear dinámicamente multi-sig direcciones en la demanda de sus usuarios y de alguna manera dar a cada uno una clave, y dejar una llave para custodia de moderación? Y que probablemente sería lo único que tendría que hacer?

+396
Jorge Henriquez 10 oct. 2012 10:25:55

Alguien puede elaborar en los demás aspectos de un Bitcoin miner configurar / plataforma necesidades, cosas tales como la cantidad de datos en MB por día se puede conseguir a través de la recepción y el envío, si su asimétrica conexión de banda ancha es suficiente.

+374
Krissy Clary 21 abr. 2016 12:51:25

Mi actual en tiempo real estimado a partir de https://github.com/ayeowch/bitnodes es de 8000 a 10000 nodos que son accesibles en cualquier momento con el churn de 300 a 500 nodos cada 5 minutos. El churn podría ser debido a varios factores, por ejemplo,

  • El nodo se fue sin conexión
  • Nodo alcanzado max. conexiones permitidas
  • La hora del día, por ejemplo, más nodos en línea de EE.UU. durante las horas de trabajo
  • Errores de red
+315
Coolwater 18 nov. 2014 1:24:21

No válido transacciones que nunca se incluye en la válida de bloques. Ellos pueden ser incluidos en un bloque, pero que el bloque podría ser rechazado como no válida (y no se clasifica como un huérfano de bloque).

+241
KAT 23 oct. 2010 12:42:53

Me acuerdo de algunas de estas transacciones y de los bidis.

P2SH fue introducido como un suave horquilla, que significa viejo nodos técnicamente no tiene que actualizar el soft de la horquilla podría ser llevado a cabo por un hashrate de la mayoría de los mineros.

OP_HASH160 [20 bytes hash] OP_EQUAL

Este es el P2SH scriptPubKey. Antes de que el soft de la horquilla, lo que significaba que cualquier persona que sabía el valor que aplica un algoritmo hash para [20 bytes hash] podría gastar las monedas.

Una nota rápida sobre el hashrate de la mayoría forzada suave-horquillas. Estos normalmente son invisibles para los clientes conscientes de ellos. La razón es que estos soft-horquillas normalmente sólo se prohíben ciertas cosas sucedan, en lugar de permitir que algo nuevo e inesperado suceda.

P2SH es uno de estos tipos, ya que añade nuevas normas para el fragmento anterior de Bitcoin secuencia de Comandos. La regla es, si el valor hash para [20 bytes hash], entonces se supone que es una cadena de bitcoin guión y verificarla. Todo esto hace es evitar que algunos pasan de los intentos de entrar en el blockchain - que podría no P2SH de validación.

A partir de una versión antigua del punto de vista, si hay algo que permita que nunca pasa de nuevo, no hay ninguna violación de la regla.

Así que, ¿por qué fue este bloque 'minado' 94 veces? Bien, en parte porque Blockchain.info utiliza confusa terminología. Ellos recibieron 94 bloques incluidos en esta transacción. Es una pena todos ellos eran huérfanos!

Este es un desafortunado caso de que el hashrate de la mayoría del soft-tenedor en realidad causó problemas a alguien. Que alguien estaba en la minoría ejecución de v0.6, y siguió corriendo la versión anterior del software (o se olvidaron de actualizar). Su software de una transacción con la validez de una pre-imagen para [20 bytes hash], y aceptado en el mempool. Se trató entonces el mío.

La mayoría, sin embargo, acababa de aceptar una regla en que tales transacciones son expuestos a la validación adicional, y considera que esta transacción no válida, por lo que se negó a construir en la parte superior de estos bloques.

Con respecto a P2SH direcciones, son muy útiles en estos días. Usted puede solicitar que alguien fondo de una complicada secuencia de comandos (como multisig, o un Rayo de canal) con un tamaño fijo de direcciones!

+216
Yuhao Tiger Huang 3 may. 2012 8:39:21

DHTs están construidos de modo que los nodos de mantener sólo una pequeña parte de otros nodos de direcciones en su tabla de enrutamiento (los más cercanos). Esto significa que cuando usted envía un mensaje a un DHT a poner("foo", "bar"), sólo determinados compañeros van a ver (de hecho, como poco como sea posible) y menos aún los que van a la tienda. Así que si usted quiere hacer "pares" búsqueda utilizando DHTs, no funcionaría porque los nodos no están programados para enviar mensajes a través de una ruta de acceso a todos los nodos.

También creo que puede ser confundido con BitTorrent de la DHT. Que tienda de IP abordado de sus compañeros de descarga de torrents como los valores de las claves en la DHT. Así que en ese sentido, que hace uso de la DHT a "la búsqueda de compañeros de" descarga de un determinado torrent. BitTorrent es un sistema diferente a Bitcoin, que no es un archivo de protocolo de transferencia, y por lo tanto no veo cómo un DHT puede ser útil para Bitcoin del diseño.

+178
zero umashi 6 may. 2014 5:19:42

Creo que esta es la mejor opción, no tienen restricciones https://www.coinlore.com/cryptocurrency-data-api

+148
Niels Boron 26 feb. 2019 0:55:22

Hace unos días he leído esto.

Para las personas que están demasiado ocupados voy a tratar de explicar lo que allí está escrito (este es mi entendimiento de que podría estar equivocado, así que si usted piensa que es incorrecto, por favor editar):

Debido a una gran cantidad de micro-pagos de satochidice, el blockchain ha alcanzado un tamaño razonable y piscinas, que están pensando acerca de la implementación de los honorarios de la transacción.

Es posible que en algún momento la gran minería piscinas deciden que no van a validar las transacciones si la cuota es de menos de algo y por lo tanto sería dictando sus reglas?

+120
Leolyn Gordon 28 jul. 2012 2:37:35

Sería deshabilitar Bitmain del ASIC ventaja con ASICboost, que en la actualidad todavía funciona en Bcash que Bitmain controles de un montón de.

Ver más detalles aquí:

https://medium.com/@WhalePanda/asicboost-the-reason-why-bitmain-blocked-segwit-901fd346ee9f

y:

https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-April/013996.html

Hace un mes me estaba explicando el ataque a Bitcoin del SHA2 hashcash que es explotada por ASICBOOST y los diferentes pasos que podrían ser se utiliza para bloquear en la red si se convierte en un problema.

Mientras que la mayoría de los debates de ASICBOOST se ha centrado en el acto hostil método de para su aplicación, también existe un encubierto método para usarlo.

Como me explicó uno de los enfoques para inhibir encubierta ASICBOOST yo se dio cuenta de que mis palabras fueron más o menos, también se describe el SegWit estructura de compromiso.

Los autores de la SegWit propuesta que hizo un esfuerzo específico a no ser incompatible con cualquier sistema de minería y, en particular, ha cambiado la diseño en un punto para dar cabida a la minería de chips de la obligación de pago las direcciones.

Había habido conciencia de la explotación de este ataque, un esfuerzo hubiera sido hecho para evitar la incompatibilidad-- simplemente para separar las preocupaciones. Pero los mejores métodos para poner en práctica el ataque encubierto son significativamente incompatible con casi cualquier método de extensión de Bitcoin transacciones de capacidades; con la notable excepción de bloques de extensión (que tienen sus propios problemas).

Una incompatibilidad sería recorrer un largo camino para explicar algunos de los más inexplicable comportamiento de algunas de las partes en la minería de los ecosistemas así que me comenzó a buscar la evidencia de apoyo.

Ingeniería inversa de un particular de la minería chip ha demostrado de manera concluyente que ASICBOOST ha sido implementado en hardware.

Sobre esa base, ofrezco las siguientes BIP borrador para la discusión. Este propuesta no impide el ataque en general, pero sólo inhibe formas encubiertas de lo que son incompatibles con las mejoras en la Bitcoin protocolo.

Tengo la esperanza de que incluso aquellos de nosotros que prefiera que ASICBOOST ser bloqueado completamente puede venir juntos para apoyar a una protectora medida que se separa de las preocupaciones por la inhibición de la encubierto uso de ella que potencialmente bloques de mejoras del protocolo.

La activación específica de la altura es algo que actualmente no tienen un opinión muy fuerte, así que lo he dejado sin especificar por el momento.

 BIP: TBD Capa: el Consenso Título: Inhibición de una encubierta
ataque en el Bitcoin función POW Autor: Greg Maxwell Estado: Proyecto Tipo: Normas Pista Creado:
2016-04-05 Licencia: PD 

==Abstract==

Esta propuesta inhibe la explotación encubierta de un conocido vulnerabilidad en Bitcoin Prueba de la función de Trabajo.

Las palabras clave "DEBE", "NO DEBE", "REQUERIDO", "DEBERÁ", "NO", "DEBERÍA", "NO DEBE", "RECOMENDADA", "MAYO", y "OPCIONAL" en este el documento se han de interpretar como se describe en el RFC 2119.

==Motivación==

Debido a una supervisión de diseño el Bitcoin prueba de función de trabajo tiene un potencial de ataque que puede permitir a un atacante minero para ahorrar hasta 30% de sus costos de energía (a pesar de que cerca de 20% es más probable debido a la aplicación de los gastos generales).

Timo Hanke y Sergio Demian Lerner pretendemos tener una patente sobre este el ataque, que hasta ahora no licencia libre y abierto de uso por el público. Ellos han sido la comercialización de sus licencias de patentes en virtud de la nombre comercial ASICBOOST. El documento no toma posición sobre la validez o aplicabilidad de la patente.

Hay dos formas principales de la explotación de la vulnerabilidad subyacente: Una manera obvia, que es muy detectable y no está en uso en la la red de hoy en día y de una manera disimulada que ha interacción significativa y posibles interferencias con el protocolo Bitcoin. La encubierto el mecanismo no es fácil de detectar, excepto a través de su interferencia con en el protocolo.

En particular, el protocolo de las interacciones de la encubierto método puede bloquear la aplicación de virtuoso de mejoras tales como segregados testigo.

La explotación de esta vulnerabilidad podría provocar que la rentabilidad de como mucho como $100 millones de DÓLARES por año en el momento en que esto fue escrito (Suponiendo que en El 50% de hash-el poder minero fue ganando un 30% de energía en beneficio propio y de la minería era lo contrario, en beneficio de equilibrio). Esto podría tener un fenomenal la centralización de efecto empujando la minería de rentabilidad para todos otros participantes, y los ingresos de secreto con este optimización podría ser objeto de abuso para distorsionar significativamente el Bitcoin de los ecosistemas, a fin de preservar la ventaja.

Ingeniería inversa de un minero ASIC de una de las principales fabricación se ha reveló que contiene un indocumentado, no revelado capacidad para hacer el uso de este ataque. (Las partes que afirman mantener una patente sobre este la técnica eran completamente inconscientes de este uso).

En base a lo anterior el potencial para la explotación encubierta de este la vulnerabilidad y el resultado de la desigualdad en el proceso de minería y interferencia con mejoras útiles presenta un claro y presente peligro para el Bitcoin sistema que requiere una respuesta.

==Background==

La idea general de este ataque es que SHA2-256 es un merkle damgard la función de hash que consume 64 bytes de datos en un tiempo dado.

El proceso de minería de Bitcoin repetidamente hash de un 80-byte de cabecera de bloque' mientras incriminatorias de 32 bits nonce que se encuentra al final de este encabezado de datos. Esto significa que el procesamiento de la cabecera consiste en dos carreras de la función de compresión de ejecutar-- que consume los primeros 64 bytes de la cabecera y una segunda, que los procesos de los restantes 16 bytes y de relleno.

La inicial 'mensaje de la expansión de las operaciones en cada paso de la SHA2-256 de la función de operar exclusivamente en que el paso de 64 bytes de entrada sin la influencia de los anteriores datos ingresados en el hash.

Debido a esto, si un minero es capaz de preparar un bloque de encabezado con varios distintos de primeros 64 bytes trozos, pero idénticos, de 16 bytes segundo trozos de poder volver a usar el cálculo de la fase de expansión inicial para múltiples ensayos. Esto reduce el consumo de energía.

Hay dos grandes maneras de hacer uso de este ataque. La manera obvia es tratar a los candidatos con diferentes números de versión. Más allá molesto los suaves-el tenedor de la lógica de detección en Bitcoin nodos esto tiene poco el efecto negativo, pero es altamente visible y fácilmente bloqueado.

El otro método se basa en el hecho de que el merkle raíz de cometer las transacciones que se encuentra en los primeros 64 bytes, excepto para el últimos 4 bytes de la misma. Si el minero se encuentra varios candidato a raíz de valores que tienen el mismo final de 32 bits, puede utilizar el ataque.

Para encontrar múltiples raíces con el mismo tirados de 32 bits de la miner uso eficiente de la colisión mecanismo de determinación de los cuales se encuentra una coincidencia con tan poco como 2^16 candidato raíces de espera, 2^24 de operaciones para encontrar un 4-camino de éxito, a pesar de la baja de memoria enfoques requieren más procesamiento.

Una manera obvia de generar los diferentes candidatos a moler el coinbase extra-nonce pero para los no-vacío bloques de cada intento requieren 13 o así adicionales sha2 ejecuta el cual es muy ineficiente.

Esta ineficiencia puede ser evitado mediante el cálculo de una raíz cuadrada del número de los candidatos de la izquierda de la hash árbol (por ejemplo, la utilización de nonce molienda), a continuación, un adicional sqrt número de candidatos de la derecha lado del árbol mediante la transacción de permutación o la sustitución de un pequeño número de transacciones. Todas las combinaciones de la izquierda y la derecha lado se combinan con una sola operación de hash prácticamente la eliminación de todos los árboles relacionados con la sobrecarga.

Con este final de la optimización de la búsqueda de un 4-camino de colisión con un moderado cantidad de memoria que requiere ~2^24 hash operaciones en lugar de la

2^28 las operaciones que se requieren para la extra-nonce de molienda que ayudaría considerablemente a erosionar la ventaja del ataque.

Es este el final de optimización que esta propuesta de los bloques.

==Nueva regla del consenso==

Inicio bloque X y hasta el bloque Y la coinbase de transacción de cada bloque DEBE contener un BIP-141 segwit compromiso o una correcta WTXID compromiso con ID 0xaa21a9ef.

(Ver BIP-141 "estructura de Compromiso" para más detalles)

Existente segwit el uso de los mineros son automáticamente compatibles con este propuesta. No segwit mineros pueden ser compatibles con la simple inclusión una salida adicional de coincidencia de un defecto compromiso de valor devuelto como parte de getblocktemplate.

Los mineros NO DEBEN cancelar automáticamente el compromiso en la caducidad de altura.

==Discusión==

El compromiso en el lado izquierdo del árbol para todas las transacciones en el lado derecho impide totalmente el final sqrt speedup.

Una mayor inhibición del ataque encubierto en forma de exigir los bits menos significativos de la cuadra de la marca de tiempo igual a un hash de los primeros 64 bytes de la cabecera. Esto podría aumentar el colisión espacio de 32 a 40 o más bits. El valor de la raíz podría ser necesarios para cumplir un determinado prefijo hash requisito para aumentar el trabajo de cálculo necesaria para probar candidato raíces. Estos el cambio sería más perjudicial y no hay ninguna razón para creer que actualmente es necesario.

La regla propuesta automáticamente puestas de sol. Si es que ya no es necesario debido para la introducción de normas más fuertes, o de la aceptación de la la versión de molienda en forma, entonces no habría ninguna razón para continuar con con este requisito. Si todavía es útil en el momento de vencimiento de la la regla simplemente puede ser ampliado con un nuevo softfork que establece ya la fecha rangos.

Este sol-configuración evita la acumulación de deuda técnica debido a la retención de la aplicación de esta regla cuando ya no sea necesario, sin que requieren un duro tenedor para quitarlo.

== Ataque abierto ==

La no-forma encubierta puede ser trivialmente bloqueado por la necesidad de que el encabezado versión coincide con la coinbase transacción versión.

Esta propuesta no se incluyen en este bloque ya que este método puede estar disponible de manera general sin restricción en el futuro, ¿no generalmente interferir con las mejoras en el protocolo, y porque es tan fácil de detectar que podría ser bloqueado si se convierte en un problema en el futuro.

+86
Aditya Kumar Praharaj 15 jul. 2013 12:53:44

Mostrar preguntas con etiqueta