Encontrar un bloque válido es el arduo trabajo que realizan los mineros de bitcoin cuando extraen. BlockChains tiene lo que se llama una dificultad , que es esencialmente una configuración arbitraria que determina qué tan difícil es crear bloques. De ahí viene todo el valor. Si alguien pudiera crear bloques y lanzarlos en la string, no habría ningún valor allí y las redes nunca se pondrían de acuerdo sobre qué bloque debería ir en la string.
Haber creado un bloque significa que los mineros deben haber hecho mucho trabajo. Eso es lo que significa prueba de trabajo . Al encontrar un bloque que sea válido, se prueba que se ha realizado un trabajo. Para strings de bloques como Bitcoin y Ethereum, el nivel de dificultad puede cambiar para garantizar que los bloques se creen a intervalos regulares.
- Un bloque solo se define como válido si el valor hash (el valor hash es un número) de todo el bloque está por debajo de otro número de umbral .
- Ese umbral lo marca la dificultad. Tome el bloque y triture todo. Cuando se realiza el hashing, se obtiene una firma única para todos los datos que contiene.
- Si se hace algún cambio en los datos, necesariamente cambia el hash .
- Para determinar si un bloque es válido, simplemente pregunte si el hash del bloque está por debajo del umbral de dificultad.
- Cuanto mayor sea la dificultad, menor deberá ser el número de salida de hash para que el bloque sea válido. Dado que los valores hash son efectivamente aleatorios, los valores más bajos son más difíciles de encontrar. Es como tirar un dado.
Uno solo puede cambiar los datos del bloque y ver si se obtiene un hash válido, y hacerlo una y otra vez. Pero, ¿qué datos puedes cambiar en tu bloque?
- Contiene datos de transacciones importantes que uno no puede alterar. Bueno, aquí es donde entra el nonce .
- El nonce está ahí solo para que los mineros tengan un dato con el que esencialmente puedan jugar. Pueden cambiarlo aleatoriamente para cambiar el hash de salida del bloque hasta que tengan suerte y encuentren uno que esté por debajo del umbral de dificultad requerido.
- Una vez que han encontrado un nonce que hace que el hash de su bloque esté por debajo del umbral de dificultad, el bloque finalmente se considera válido y puede transmitirse a la red y ese minero recibe una recompensa por su esfuerzo.
- Este proceso se basa puramente en el azar. Los mineros simplemente intentan una y otra vez cambiar el nonce y repetir el bloque con la esperanza de tener suerte y encontrar un hash por debajo del número de umbral.
A continuación se muestra un diagrama simple de un bloque:
Problema al recalcular hash en blockchain
La parte crítica de incluir un bloque en una string de bloques es la inclusión de un hash criptográfico . Una función hash criptográfica es un algoritmo que acepta una cantidad arbitraria de datos como entrada y crea un valor hash, que es una salida de tamaño fijo de texto cifrado del bloque anterior.
- De esta manera, los bloques se vinculan hasta el primer bloque de origen/fuente y se verifican mediante hashes. Debido a que cada bloque contiene el hash anterior y eso se convierte en hash dentro del siguiente bloque, en cierto sentido, todos los hash anteriores se incluyen en todos los hash de bloque futuros.
- Aquí es donde entra la inmutabilidad absoluta . Todos los bloques están conectados a través de las interrelaciones de todos sus hashes.
- Si algo cambia en un bloque en cualquier parte de la string, hay un efecto dominó que invalida todos los bloques que vienen después.
Ejemplo: ahora, supongamos que una persona malintencionada, Alex, estaba tratando de alterar las transacciones en la string. Como se sabe, uno no puede simplemente cambiar los datos porque eso creará un nuevo hash que crearía un bloque no válido.
- Alex tendría que volver a minar ese bloque y encontrar un nonce que produzca un valor hash por debajo de la dificultad objetivo.
- Dado que todos los bloques deben contener el hash de los bloques anteriores, todos los bloques siguientes también se invalidarían. Solo si Alex tuviera una cantidad de poder de cómputo increíble, casi imposible, sería capaz de reconstruir toda la string para incluir sus transacciones fraudulentas, y Alex no tiene tanto poder de cómputo.
- Como resultado, la solidez de la string de bloques distribuida es su fortaleza y es por eso que se considera incorruptible.
Se puede concluir que es casi imposible cambiar registros en bloques ya que todos los bloques están vinculados a través de las interrelaciones de todos sus hashes, y cualquier modificación en un bloque en cualquier parte de la string invalida todos los bloques posteriores.
Publicación traducida automáticamente
Artículo escrito por ayushrajrock99 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA