¿Cuál es la necesidad de los mineros y la minería? [duplicar]

Bitcoin está diseñado para tener una duración promedio de 10 minutos entre la extracción de bloques. Esto se mantiene por el atributo de dificultad y la complejidad de haskey. Pero la minería requiere mucho poder y también es un proceso manual.

¿Por qué simplemente no crea un bloque cada 10 minutos automáticamente?

Ahora bitcoin tiene 10 kb (no estoy seguro exactamente) reservados para transacciones prioritarias del grupo. Simplemente decidamos la prioridad por la misma funcionalidad y llenemos nuestro bloque con transacciones.

Los usuarios solo necesitan enviar la transacción al grupo, no se pierde energía y está automatizado. Los bloques seguirán teniendo sus códigos hash y se mantendrá toda la inmutabilidad. Solo el minero no necesita encontrarlo. Digamos que he codificado bitcoin así: 1. 5 min por cada bloque nuevo. 2. solo una transacción de una clave pública a la vez. Detendrá el gasto doble y no necesitará POW, y dentro de 5 minutos, los cambios se reflejarán en los nodos de conexión.

¿Por qué no se utilizan tales métodos? ¿Cuáles son los inconvenientes?

Gracias por la respuesta alcio. Digamos que he codificado bitcoin así: 1. 5 min por cada bloque nuevo. 2. solo una transacción de una clave pública a la vez. Detendrá el gasto doble y no necesitará POW, y dentro de 5 minutos, los cambios se reflejarán en los nodos de conexión. ¿Cuáles son los inconvenientes aquí?
El problema 2 no es trivial de resolver y, de hecho, se resuelve creando la cadena de bloques.

Respuestas (3)

Uno de los conceptos centrales de Bitcoin es que tiene un libro de transacciones descentralizado (la cadena de bloques de Bitcoin). Esto significa que cada nodo (completo) en la red tiene una copia de este libro mayor (a diferencia de VISA, por ejemplo, donde solo una parte centralizada tiene una copia del libro mayor de transacciones).

Cuando se deben agregar nuevas transacciones a la cadena de bloques, esto genera un problema. Los nodos de la red de Bitcoin deben ponerse de acuerdo (o llegar a un consenso ) sobre un nuevo estado de la cadena de bloques. El problema se reduce a "¿Qué bloque de transacciones agregaremos todos a nuestra cadena de bloques a continuación?" .

Ahora, digamos que todos los nodos completos tendrían su rutina de software propuesta que dice "Crearé un nuevo bloque de todas las transacciones de los últimos 10 minutos" .

El resultado será que diferentes nodos tendrán diferentes cadenas de bloques .

Las transacciones no se pueden propagar instantáneamente a través de toda la red de Bitcoin. Por lo tanto, una transacción dada podría caer dentro del lapso de tiempo de 10 minutos para algunos nodos, pero llegar tarde a otros nodos más distantes.

Los nodos ahora están en desacuerdo y no está seguro qué cadena de bloques es la verdadera cadena de bloques de la red.

Entonces, para evitar esto, se necesita un algoritmo de consenso, que permita que todos los nodos de la red se pongan de acuerdo sobre el siguiente bloque a agregar, por lo que solo hay una versión de la verdad . Un nodo deberá proponer el siguiente bloque que se agregará, y los otros nodos deberán poder verificar fácilmente que el bloque es válido.

PoW es solo un ejemplo de un algoritmo de consenso y, de hecho, se sabe que consume mucha energía. Existen otros algoritmos de consenso que son más eficientes energéticamente, por ejemplo, PoS (Prueba de participación), PoC (Prueba de capacidad), ...

Pero sin uno de estos algoritmos, no hay forma de mantener una y la misma cadena de bloques descentralizada.

No entiendo en el sentido de que si un nodo propone un bloque, implícitamente lo acepta. Si otros nodos rechazan el bloque, ¿tendrán una cadena de bloques diferente? ¿A menos que el nodo que propone el bloque deba esperar la respuesta de todos los demás nodos?

¿Quién crearía el bloque? ¿Qué pasa si dos personas crean diferentes bloques y no pueden ponerse de acuerdo? Si toda la red confiara en un grupo para crear el bloque una vez cada 10 minutos, se vuelve completamente centralizado. Bitcoin utiliza la carrera minera para descentralizar de forma segura la decisión de qué bloque es el bloque aceptado.

Agradezco la respuesta MeshCollider. ahora digamos que el bloque se crea solo, suponiendo que esté codificado solo así. No estará centralizado, ningún grupo está creando el bloque, sino el código en sí.
Pero si el código de todos crea un bloque basado en el orden en que ve las transacciones, ¿qué pasa si dos computadoras diferentes ven las transacciones en diferentes órdenes? ¿Cómo pueden llegar a un acuerdo? El punto es que todos deben estar de acuerdo.
No, no todo el mundo está haciendo bloques. Supongamos que la propia cadena de bloques crea un bloque cada 5 minutos, y solo una transacción de una clave pública en un bloque. Según la prioridad, los txns se agregan automáticamente al bloque. Detendrá el doble gasto y no necesitará POW, y dentro de 5 minutos, los cambios se reflejarán en los nodos de conexión.
Creo que no entiendes por completo qué es realmente la cadena de bloques. No hay código en la cadena de bloques en sí, no hay forma de que cree bloques por sí misma.
Agregando al argumento de Mesh, ¿cómo puede saber que su código mágico de blockchain no ha sido pirateado? El valor de tener tantos usuarios en la red es su seguridad. El objetivo de una cadena de bloques es que la base de datos o el libro mayor estén descentralizados. Si la máquina es la que lo ejecuta, no hay forma de saber con certeza que no está siendo manipulado.

El problema en una red de chismes entre pares es que no todos los pares tienen la misma información al mismo tiempo. Esto significa que "solo una transacción de una clave pública a la vez" no es un problema trivial de resolver. De hecho, esta es la invención principal de Bitcoin: la red de Bitcoin utiliza la cadena de bloques para determinar qué transacción debe considerarse "vista primero" .