¿Se podría duplicar cualquier transacción con tarifa estándar usando una tarifa más alta?

Me doy cuenta de que si alguien realiza una transacción sin ningún cargo y aún no ha habido ninguna confirmación, entonces la transacción podría gastarse el doble simplemente gastando las mismas entradas en una dirección diferente, pero con un cargo estándar.

Mi pregunta es, si alguien envía una transacción con una tarifa estándar y aún no ha habido ninguna confirmación, ¿podría anularse esa transacción con la misma facilidad reescribiéndola, pero con una tarifa más alta? Si es así, ¿cuáles serían las implicaciones para una parte que acepta transacciones de confirmación cero como BitPay?

Respuestas (2)

El diseño original asume un comportamiento común de procesamiento de la transacción entrante sobre la base de FIFO . Eso significa que la primera transacción recibida por un minero gana y todas las transacciones en conflicto recibidas después serán ignoradas (sin importar si la primera ya está confirmada o no).

Si bien este comportamiento estándar es beneficioso para la Red en su conjunto, algunos mineros "inteligentes" pueden emplear un enfoque un poco diferente: al construir un bloque, siempre tome la transacción con la tarifa más alta, sin importar el orden en que se recibió.

Puede parecer que esto es solo un mal uso marginal del protocolo y no habrá suficientes mineros deshonestos haciendo esto, por lo que no importa. Bueno, desafortunadamente, ya hay (al menos) un grupo minero que intenta construir su negocio explotando esta idea. Si prevalece, los servicios que aceptan transacciones de confirmación cero deberán reconsiderar su política.

Gran respuesta, excepto por una cosa: no se necesitan muchos 'mineros deshonestos' para que esto se convierta en un problema. Incluso si solo lo hace el 5% de los mineros, esto podría hacer imposible aceptar transacciones de confirmación cero. Así es como funcionaría: gasto 100 mBTC en una cena en una transacción regular que el restaurante acepta sin confirmaciones. Envío otra transacción devolviéndome 90 mBTC de las entradas y pagando 10 mBTC como tarifa de minero. ¡No hay riesgo para mí! En el peor de los casos, pagué por lo que gasté de todos modos. ¡Pero con x% de posibilidades, solo tengo que pagar el 10% de la cena!
Claro, la frase "suficientes mineros deshonestos" de ninguna manera fue pensada como una mayoría, sino más bien como "suficientes para que la oportunidad sea notable". 5% ya es un gran número. De todos modos, solo resalta el riesgo de aceptar transacciones de confirmación cero si no puede reclamar el servicio IRL. En su ejemplo con el restaurante, esto podría considerarse como irse sin pagar, lo que ya es un riesgo de todos modos, y hay algunas formas de lidiar con esto (incluida la policía). Por lo tanto, asegúrese de considerar todo el aspecto social al evaluar su riesgo.
Por lo que leí, hemos llegado al punto en que la confirmación cero ya no es viable. Si todavía está al tanto del tema, tal vez podría actualizar su excelente respuesta. :)
¿Está seguro? No estoy al tanto de ningún cambio de situación significativo en los últimos años; Todavía es posible aceptar pagos inmediatamente cuando se detecta la transacción, especialmente con algunos servicios en línea reclamables y puede estar bien siempre que se tenga en cuenta y se implementen medidas para garantizar que la transacción se confirme correctamente.

Si un nodo recibe una transacción, la guarda. Si ahora envía otra transacción con la misma entrada, la rechaza porque ya hay una transacción. Así que no puedes gastar el doble de esta manera.

Si enviara la segunda transacción con tarifas a un minero que no recibió su primera transacción, tal vez la incluiría más rápido y, por lo tanto, anularía las primeras transacciones, aún así las primeras transacciones no se pueden incluir en un nuevo bloque porque la salida fue ya usado.

Si un comerciante acepta transacciones de confirmación 0, debe aceptar que la transacción se puede revertir. Entonces solo debería hacer eso si confía en usted por más de la cantidad que le transfirió.