¿Alguien puede explicar cómo esta persona hackeó bitcoin?

¡Estoy tratando de llenar algunos vacíos en mi comprensión de cómo sucedió esta transacción!

Todo comenzó con este artículo .

En resumen, algún justiciero/minero pudo recoger todo el BCH que se encuentra en direcciones segwit (es decir, aquellas para las que los propietarios revelaron las claves públicas gastando BTC desde las mismas direcciones).

Ver esta transacción que se creó, minero Bitcoin Cash Block Explorer

Desglose paso a paso

  1. El minero extrae la clave pública de esta dirección 3P9dyU9ga3aJorHAUqKBFCX2NdyuHEVgx1 (esta es una dirección P2SH P2WPKH, consulte este explorador de bloques de bitcoin )

    Pregunta: ¿cuál es esa clave pública? ¿Ves alguna llave? ("3" es una dirección multisig y requiere 3 direcciones, por lo que debe haber 3 claves públicas, ¿verdad?)

  2. El artículo no explicó cómo y qué transacción sin procesar creó usando solo claves públicas.

  3. Esta es la parte más frustrante. El artículo afirma que el minero creó un nodo segwit y extrajo además de eso.

    ¿Cómo es eso posible? (Bcash no tiene segwit activado. Sin embargo, incluso si extrajo usando su nodo segwit, su nodo no le permitirá crear una transacción válida porque segwit requiere un testigo o firmar con clave privada o clave pública de dirección 3P9dyU9ga3aJorHAUqKBFCX2NdyuHEVgx1).


Sin embargo, este artículo afirma

  1. El minero acaba de crear un scriptsig (el artículo no explica qué significa "aplicar un hash particular").

  2. Ahora es fácil, el minero solo tiene que asignar una salida BCH (dirección que comienza con 1)

  3. se vuelve aún más estúpido. El artículo dice que después de hacer esa transacción en bruto, la extrajo ... sin transmitirla. ¿Cómo funciona?

    3.1 Si no lo estás transmitiendo, ¿cuál es el punto? ¿Cómo pasará esa transacción a la nueva dirección/cartera creada por el minero (en este caso, 1C4TafndKYFoGkeoHfQAWkZzEYLum31txf)?

    3.2 Si el minero está minando su propio bloque y luego no lo transmite, ¿no quedaría huérfano? Entonces, ¿qué está pasando aquí?

Es una buena pregunta (aunque sería más fácil de leer con oraciones en mayúsculas, ortografía correcta y menos marcas ?). Sin embargo, el último párrafo está fuera de tema: este sitio no es el lugar para reclutar personas para sus proyectos.
Estoy de acuerdo, sin embargo, quiero aprender... segwit es tan confuso intentar buscar durante 25 días... ya tenía 46 pestañas y 4 ventanas abiertas en mi navegador

Respuestas (2)

Pregunta: ¿cuál es esa clave pública? ¿Ves alguna llave? ("3" es una dirección multisig y requiere 3 direcciones, entonces debe haber 3 claves públicas, ¿verdad?)

No. Una dirección que comienza con a 3es una dirección P2SH. Esto no significa que sea una dirección multisig o que requiera una cantidad de claves para firmar la transacción. Más bien, solo significa que hay algún script (puede ser cualquier script, no necesariamente un script multisig) que debe incluirse en la entrada que gasta la salida P2SH. Ese script dictará los otros elementos en la entrada.

Para una salida Segwit anidada P2SH (P2SH-P2WPKH y P2SH-P2WSH), el script al que hace referencia la dirección (conocido como script de canje) tiene el formato OP_0 <20 byte hash>o OP_0 <32 byte hash>. Cuando un nodo segwit ve este script en una salida o como un script de canje, sabe que debe buscar en el testigo recién definido de una transacción para obtener el resto de los datos que necesita para verificar la transacción.

Sin embargo, para un nodo sin segwit, marcarán la transacción como válida (pero no estándar) porque para un nodo sin segwit, esos scripts de canje no especifican que se necesita una firma. Esto hace que estas salidas cualquiera pueda gastarlas en nodos que no sean segwit.

Dado que Bitcoin Cash no implementa segwit, todos sus nodos son nodos que no son segwit. Por lo tanto, para gastar de las salidas de segwit anidadas de P2SH, solo necesita proporcionar el script de canje. Sin embargo, los scripts de canje están protegidos por un hash; dado solo una salida P2SH, no puede descifrar el script de canje a menos que ya lo sepa. Los scripts de canje se revelan cuando se gasta la salida.

Lo que hizo el minero aquí fue que encontraron tantos scripts de canje como pudieron. Los scripts de canje de las salidas de P2SH utilizados fueron todos los scripts de canje que se revelaron en la red de Bitcoin porque se usaron como entrada en una transacción. Entonces, el minero tomó todos esos scripts de canje revelados y verificó cuáles tenían salidas correspondientes en la red Bitcoin Cash. Los que lo hicieran podrían ser gastados por el minero, ya que el minero conocía el guión de canje.

se pone aun mas estúpido ????????????????????? El artículo dice que después de hacer esa transacción en bruto, la extrajo ... sin transmitirla ?????? qué

No es necesario transmitir una transacción antes de extraerla. Un minero puede incluir cualquier transacción que desee, y eso incluye transacciones que no se transmiten al público. Una vez que se extrae el bloque, la transacción se transmitirá con el bloque.

"Una vez que se extrae el bloque, la transacción se transmitirá con el bloque". 1. ¡un minero puede incluir tx que no se hayan transmitido antes! ¿No va eso en contra de las reglas del consenso? 2. ¿Qué sucederá si un minero no transmite ese tx después de que se haya extraído el bloque? ¿Ese bloque va a ser rechazado por otros compañeros?
No, no va en contra de las reglas de consenso incluir una transacción que no se transmitió. Es imposible que un nodo sepa si una transacción se transmitió realmente a la red porque es posible que no la hayan recibido si se transmitió. La transacción en sí no necesita ser transmitida; se incluirá en un bloque y ese bloque se transmitirá. Si el bloque que se transmite no incluye la transacción, pero cuando se extrajo sí lo hizo, entonces el bloque transmitido no será válido.
sería mucho más fácil si bitcoin.org hubiera explicado cómo funciona la minería con segwit... Si el bloque incluye ese tx y lo elimina después de ser minado, cambiará el nonce + la creación de hash automáticamente no es válida... eso es lo que debe hacer estás tratando de decir ¿verdad?
Sí. Sin embargo, no tiene nada que ver con segwit. Esa es una regla de consenso que siempre ha existido.
Entonces, ¿por qué no lo transmitió como una persona normal... en lugar de minarlo? tal vez porque tenía miedo de que otros mineros tomaran esa transacción y la reemplazaran con la dirección en la sección de salida, supongo... jajaja :) al igual que el juego de tronos
gracias por la explicación ... sin embargo, ¿qué tiene que ver el script de canje con la clave pública y el "hash particular" de scriptsig de lo que hablan estos artículos?
La transacción no se transmitió porque no es estándar. Esto significa que es válido por consenso, pero los nodos no lo transmitirán. Las cosas de "hash particular" y scriptsig se deben a que el script de canje se coloca en scriptsig y debe generar un hash especificado por la salida P2SH desde la que se gasta.
espera... ¿a qué te refieres con no estándar? también el primer artículo dice que el minero estaba usando un nodo segwit en la cadena bcash para extraer este Tx... ¿tiene sentido para ti?
Bitcoin y las monedas relacionadas (incluyendo bcash) tienen un conjunto de reglas llamadas reglas de estandarización. Estas reglas están por encima de las reglas de consenso. Una transacción puede cumplir con las reglas de consenso, pero no con las reglas de estandarización. Eso solo significa que es válido pero los nodos no lo transmitirán. Tales transacciones se denominan no estándar. No tiene ningún sentido usar un nodo segwit en bcash porque bcash no tiene segwit.
¡Jesucristo! (corríjame si me equivoco) 1. El minero usó el nodo bitcoin-abc normal para extraer su tx, 2. El bloque que contiene el tx se transmitirá a otro minero y será aceptado como un bloque válido 3. Sin embargo, la vigilancia no puede transmitir este tx específico ya que no es estándar ... el minero recolecta monedas en su billetera (esas prev_out no se transmiten sino que se extraen) ¿listo para gastar en cualquier lugar? (sí, transmitirá cuando pague a "bob" más tarde), entonces, ¿cuál es el propósito de transmitir un tx como una persona normal desde la billetera?
No, no hay "recolectar monedas en su billetera" o "prev_out no se transmiten sino que se extraen". No es así como funcionan Bitcoin o bcash. No hay monedas para cobrar, solo salidas y las entradas que gastan las salidas. El minero simplemente crea una transacción que gasta los productos y la incluye en un bloque que extrae, luego transmite el bloque. El propósito de transmitir un tx es que los mineros puedan incluirlos en un bloque. Los mineros no necesitan transmitir sus transacciones para que alguien las incluya en un bloque, pero hacerlo aumentará las posibilidades de que se incluya antes.
gracias, es una persona realmente genial, Sr. chow... había marcado su respuesta como... respondida
lo siento, estaba preguntando sobre el propósito de no transmitir un tx para guardar una salida... si un minero no transmitió un tx... otros mineros lo recogerán e incluirán en su versión del bloque... entonces, ¿cómo lo hicieron? guardar este 100 bch tx? twitter.com/khannib/status/931448049125249024
No, si una transacción no se transmite, otros mineros no la conocerán y no la aceptarán. En ese caso de 100 BCH, btc.com creó una transacción y no la transmitió.
estoy de acuerdo, sin embargo, en ese caso especial, el remitente ya transmitió TX y solicitó a los grupos que no lo transmitieran ... porque bch encontró una solución: si envía bch a btc, comuníquese con el minero para que no lo transmita ... mi pregunta - se propagará a través de todos los nodos - luego mempool - que minero... incluso si un minero lo ignora... ¿otro lo recogerá? entonces, ¿cómo funciona la solución bch aquí?
No, no es así como funciona. No se transmite ninguna transacción; si se transmite una transacción, incluso si un nodo (es decir, el de un minero) la ignora, el resto de la red (incluidos los demás mineros) la escuchará y puede incluirla en sus bloques. Lo que está pasando con btc.com es que los usuarios hablan directamente con btc.com. No están creando una transacción y transmitiéndola.
bien, btc.com es solo un grupo, hay muchos otros... ¿y ellos? o tal vez asumo que todo es monopolio
Otros pools de minería o mineros podrían ofrecer un servicio similar si tienen los conocimientos suficientes. Independientemente de si los mineros ofrecen dicho servicio o no, cualquier minero puede gastar de las salidas de segwit como describí anteriormente, siempre que conozca el script de canje (ya sea que lo hayan descubierto ellos mismos o se lo haya dicho la persona que realmente posee la dirección en el Bitcoin). red).

Las salidas de SegWit se parecen a las salidas de Cualquiera puede gastar en los nodos heredados (para mantenerlo como una bifurcación). Dado que Bitcoin Cash no tiene (y se opone estrictamente) SegWit, todos los mineros los ven como salidas de Cualquiera puede gastar y pueden canjearlo.

Esto no puede suceder en la red Bitcoin, porque los otros mineros rechazarían ese bloque.

Tal vez sea este tipo: https://www.reddit.com/r/btc/comments/7g6s9l/an_update_on_bch_segwit_recoveries/ ?

[Parte sin sentido eliminada]

sí, ese es el minero ... sin embargo, estos resultados fueron ignorados por otros mineros (los mineros no lo tomaron, mire la fecha en bch block explorer) y en realidad es después de que fue pirateado por ese bcnsegwit-miner
No, no es un truco. Otros mineros también podrían canjear estas salidas, pero no lo hicieron por alguna razón. (¿Ética?)
Sé que no es un truco... otros mineros no lo hicieron porque es muy complicado... incluso el minero admite: "Debido al gran esfuerzo que se requirió tanto para reclamar estos BCH como para verificar que cada persona es la persona que debería estar recibiendo el BCH, estaré tomando el 30% "
Ese artículo sobre SegWit es FUD sin sentido, ya que ignora por completo los nodos completos. Dado que casi todos los nodos en la red ahora hacen cumplir las reglas de consenso de SegWit, revertirlo para robar sus salidas requeriría que los nodos completos dejen de hacer cumplir primero. Eso es un tenedor duro.
@PieterWuille Gracias por revisar esta página... 1. ¿A qué artículo se refiere? 2. cita "Dado que casi todos los nodos de la red ahora aplican SegWit", ¿qué red? bcash o bitcoin
Me refiero al enlace de coingeek.
@PieterWuille, ¿qué opinas sobre la dirección de efectivo de bitcoin convencional? están cambiando el byte de la versión a 28 para direcciones p2pkh y 40 para direcciones p2sh... ¿Esto va a resolver esta situación para todos los usuarios a bordo?
BitPay está actuando por su cuenta allí. La gente de efectivo también tiene una propuesta para nuevas direcciones. Sí, deberían haberlo hecho desde el principio.