Transaccionalidad de la transacción: últimos problemas de MtGox

Bitcoin Q&A: The mining process (Junio 2019).

Anonim

MtGox, un intercambio de Bitcoin que solía tener más del 90% del mercado en la industria y sigue siendo uno de los tres principales intercambios de Bitcoin hoy, anunció el viernes que suspendería los retiros de BTC como resultado de problemas técnicos internos no especificados, y prometió que tendrían una actualización para el lunes. El precio de Bitcoin cayó un 10% en parte como resultado de las noticias, y las teorías de conspiración abundaban sobre lo que estaba pasando dentro. Un usuario de Bitcoin viajó desde Australia para realizar una protesta frente a las oficinas de MtGox, e incluso tuvo una conversación con el CEO de MtGox, Mark Karpeles, una conversación cuyos detalles publicó en su publicación en Reddit. Hoy, MtGox anunció que el intercambio no volvería a abrir retiros, y lanzó un largo comunicado de prensa explicando sus razones. La noticia es solo la última en una serie de choques de casi un año para golpear el intercambio una vez aparentemente irrebatible. En abril, MtGox se vio obligado a cerrar durante más de un día después de que el software de la plataforma no pudo manejar el gran volumen de operaciones después de que el precio de Bitcoin se desplomó de más de $ 200 a alrededor de $ 60. En mayo, MtGox fue demandado por Coinlab, perdió su cuenta de Dwolla y tenía más de $ 3 millones de sus fondos confiscados por la FinCEN. En junio, el intercambio suspendió los retiros de USD durante dos semanas como resultado de problemas bancarios en Japón, y fue entonces cuando el intercambio comenzó a tener problemas. Los retiros se reanudaron dos semanas más tarde, pero se hizo muy difícil para los usuarios obtener su dinero con algunos retiros que tomaron semanas o incluso meses. El precio de Bitcoin en MtGox comenzó a ser consistentemente 10% más alto que en Bitstamp después de ese punto, no porque un Bitcoin en MtGox valga más, sino porque un dólar en MtGox valía menos, y algunas personas incluso se preocuparon de que no cada dólar depositado por el intercambio tenía ningún respaldo en absoluto. El statu quo anterior duraría los próximos siete meses, y a finales de enero el precio de Bitcoin en MtGox subió un 25% más que el precio en Bitstamp, o más bien, el valor de un dólar en MtGox valía un 20% menos que un dólar en el sistema bancario. En los últimos cinco días, sin embargo, hubo un cambio radical: el precio en MtGox cambió a ser un 5% más bajo que Bitstamp. El motivo no es que MtGox haya solucionado sus problemas de retirada; los dólares en MtGox todavía valen un 20% menos que dólares en BitStamp. Por el contrario, ahora que BTC y USD no pueden retirarse del intercambio, BTC en MtGox también valen un 20% menos. Esto no es una mera conjetura; es un hecho real, como lo muestra un hilo de Bitcointalk con personas que ofrecen su MtGox BTC para BTC real con un descuento del 25%. Entonces, ¿cuál es el problema con MtGox hoy? Básicamente, la raíz del problema radica en un concepto llamado "maleabilidad transaccional". Para comprender la raíz del problema, primero debemos entender dos conceptos clave.En primer lugar, Bitcoin se basa en la salida de las transacciones, no en la cuenta. Por ejemplo, si A envía la transacción X transfiriendo 10 BTC a B, y luego B hace una transacción Y enviando esos mismos 10 BTC a C, la transacción Y citaría el resultado de la transacción X como la fuente de sus fondos. La forma en que Y "cita" X es incluyendo la "ID de transacción" de X. El TXID de una transacción se basa en el hash de la transacción; es decir, tan pronto como uno construye una transacción, uno puede calcular cuál será su índice al aplicarle una función matemática, y diferentes transacciones terminarán teniendo diferentes TXID. En segundo lugar, debido a una implementación defectuosa en la forma en que Bitcoin verifica las firmas de transacciones, hay una forma de tomar una transacción y agregar ceros a los valores en la transacción, cambiando la representación sin cambiar el significado, para producir una transacción diferente, con un TXID diferente, que tiene el mismo efecto. Tenga en cuenta que esto no es un gasto doble; la nueva transacción tendrá los mismos resultados y las mismas entradas que la transacción anterior, y la única diferencia importante entre los dos es el TXID. Además, y de manera importante, a diferencia del gasto doble, no es necesario que seas el creador de la transacción original para tener la segunda transacción; la transacción de cualquier persona puede ser falsificada. El error que MtGox enfrentó es el siguiente. Primero, el usuario A solicita un retiro de MtGox y espera que MtGox envíe la transacción, digamos T1 con TXID H1 . Luego, A agrega un cero inicial a T1 para hacer la transacción equivalente, pero diferente, T2 con TXID H2 . A luego empuja rápidamente T2 a tantas agrupaciones de minería como sea posible, con la esperanza de que se incluya T2 . Mientras tanto, MtGox está mirando la cadena de bloques para ver si se incluye una transacción con TXID H1 ; por supuesto, ninguna transacción de ese tipo ocurre porque en su lugar se ingresa T2 . Entonces, MtGox termina pensando erróneamente que la retirada nunca llegó a su fin, y envía los bitcoins de nuevo al retractor. Según el comunicado de prensa, podría pensarse fácilmente que el error es una vulnerabilidad nueva e inesperada en Bitcoin, y el precio cayó aproximadamente un 20% como resultado de las noticias. Sin embargo, desde entonces el precio ha recuperado casi toda la caída, y por una buena razón: el error no es un nuevo error fatal de Bitcoin. Esta propiedad contraintuitiva de las transacciones de Bitcoin se conoce desde 2011, y la mayoría de las billeteras de Bitcoin ya se ocupan de ella al observar que cualquier transacción gaste los resultados de ciertas transacciones previas, en lugar de observar una transacción con una ID específica. MtGox, con su implementación personalizada de Bitcoin, no lo hace. El problema es, por tanto, completamente el resultado de fallas de programación en la parte de MtGox. Para MtGox, las cosas no se ven bien. Mientras que el precio en Bitstamp ahora vuelve a los $ 680 después de la caída de $ 700 a $ 530, el precio en MtGox solo se ha recuperado a $ 612, un 10% por debajo del precio en Bitstamp, un cambio marcado del 10% por encima de Bitstamp que el el intercambio se mantuvo durante los siete meses anteriores.¿Podrá MtGox volver a unir sus pies después de este incidente y reclamar su gloria como una de las instituciones principales de la economía de Bitcoin? Tendremos que esperar y ver para averiguarlo.