¿Cómo se evita que los mineros hagan demasiado trabajo?

Entiendo que se pueden escribir scripts dentro de transacciones que hacen que los mineros hagan algún trabajo.

¿Cómo garantiza Bitcoin que se eviten los scripts que hacen que los mineros trabajen demasiado?

Respuestas (1)

Sí, un minero necesita cierta cantidad de trabajo computacional para "ejecutar" un script y verificar que permite que se gaste la transacción. De hecho, no solo los mineros, sino todos los nodos completos de la red Bitcoin tienen que ejecutar estos scripts. Sin embargo, existen medidas para limitar el costo de esto.

Los scripts de Bitcoin no tienen bucles , por lo que la cantidad de cómputo necesaria para ejecutar un script es aproximadamente proporcional a su longitud. A su vez, los mineros exigen tarifas de transacción que son aproximadamente proporcionales a la longitud de la transacción (o tamaño en bytes), por lo que una transacción larga y relativamente costosa será más costosa para el creador. Una transacción con un script largo generalmente no sería estándar y, por lo tanto, no se transmitiría a través de la red de igual a igual (aunque aún podría ser incluida en un bloque por un minero que la recibió de otra manera). Esto limita la cantidad de nodos que alguna vez verían la transacción y, por lo tanto, tendrían que verificar el script.

Hay un límite superior final : ninguna transacción individual puede ser más grande que el tamaño máximo de un bloque (actualmente 1 MB).

(Para aclarar un desacuerdo semántico con la respuesta de amaclin: en el caso de la minería de grupos, el operador del grupo puede realizar la verificación del script una vez en nombre de los mineros individuales que contribuyen al grupo; luego, los mineros individuales no tienen que hacerlo Mi respuesta aquí trata un grupo conceptualmente como un solo minero, ya que son funcionalmente equivalentes desde el punto de vista del protocolo Bitcoin).