Excepto este tipo de ataques: https://en.bitcoin.it/wiki/Double-spending
Por ejemplo, ¿puede simplemente crear un nuevo bloque que incluya algunas transacciones inventadas que roban dinero de una dirección real? ¿Sin poseer las claves privadas de esas direcciones?
Solo en la parte superior de mi cabeza, aquí hay algunas cosas que un minero deshonesto puede hacer:
OP_CHECKSIG
código de OP_CHECKMULTISIG
operación, entonces el minero puede cambiar cualquier cosa en la transacción. por ejemplo, supongamos que alguien crea una transacción con un script de salida OP_1 OP_EQUAL
y luego la transmite a un minero para incluirla en la cadena de bloques. el minero puede completar fácilmente el rompecabezas y apropiarse de estos fondos creando otra transacción con un script de entrada OP_1
. (para verificar estos scripts, simplemente ponga txin y txout en secuencia OP_1 OP_1 OP_EQUAL
-1==1
). y lo más importante aquí es que, dado que no hay firma, cualquiera puede modificar el script de salida en la transacción de gasto, por lo que el minero puede dirigir los fondos a la dirección de una clave privada que posee.0x02
byte aquí corresponde a SIGHASH_NONE
lo que significa que todos los scripts de salida se ignoran con fines de validación. Entonces, si alguien envía una transacción como esta, un minero puede simplemente poner su propia dirección en todos los txouts e incluir esa transacción modificada en un bloque, enviándose fondos a sí mismo. sin embargo, el software de billetera no establece firmas de esta manera, por lo que alguien tendría que ser deliberadamente tonto para perder fondos para un minero de esta manera.OP_DROP
luego, cualquier valor de pila anterior (establecido al final de scriptsig) se ignora y, por lo tanto, un minero puede modificarlo sin alterar la funcionalidad de la transacción. dado que los hash de transacción incluyen scriptsig, esto alterará el hash de transacción. cualquier otra transacción que esperaba gastar de ese hash se frustrará temporalmente y tendrá que averiguar el nuevo valor de hash para gastar (siguiendo el rastro de la transacción en la cadena de bloques).No, no puede crear ninguna "transacción inventada" en nombre de otra persona sin poseer la clave privada de ese otro nodo para esa transacción. Esta es quizás una pregunta similar.
muro