Posted by q3it on martes, abril 20, 2021 in Blockchain, Ciberseguridad
Una cadena de bloques utiliza funciones de hash para crear un registro de los datos registrados en la cadena de bloques de modo que cualquier cambio en un solo dato sea fácilmente identificado.
¿Cómo hace esto una función de hash? Una función de hash es un mecanismo digital que se utiliza para comprimir datos en un formato específico de una longitud determinada. El algoritmo de hash utilizado por la cadena de bloques de Bitcoin es el SHA-256, que significa Secure Hashing Algorithm, con una longitud de hash de 256 bits. En este hash, los datos hash siempre tienen una longitud de 256 bits. La cadena de bloqueo Ethereum utiliza un algoritmo de hash llamado Ethash. Un hash creado usando Ethash se verá como:
0xb846300e188829d1b819389b31cef3b9cfaf335082ee66f830a875f1c1beb396
El hash de arriba es del bloque 5000171 minado el 30 de enero de 2018 a las 02:20:28 PM +UTC en la cadena del bloques Ethereum. Se pueden encontrar más datos sobre este bloque en Etherscan.
Si sólo se cambiara un bit en la entrada del hash anterior, se crearía una secuencia completamente diferente de números y letras. Cuando se escriben datos en un bloque, se hace un hash. Por lo tanto, si una parte de un solo dato dentro de un bloque se cambiara en otro momento, el hash cambiaría completamente. Este principio permite a los nodos que participan en la cadena de bloques detectar cualquier cambio en los datos.
Este hash de datos se utiliza para crear un vínculo entre cada bloque específico. Esto se logra escribiendo el hash de cada bloque anterior en el siguiente bloque de la cadena. Cuando se crea un bloque, se crea un hash de los datos dentro de él, y ese hash que se crea incluye el hash del bloque anterior. Si se cambia un dato en cualquier bloque anterior que forma parte de la cadena, cada hash siguiente cambiaría. El cambio se produce en cascada, lo que permite detectar el cambio en cualquier dato de la cadena comparando los hash de los bloques entre sí a través de los nodos de la red.
Esto evita que se produzcan cambios en la cadena de bloques después de que los bloques sean creados y aceptados por la red. Nos adentraríamos en las formas en que la cadena de bloques podría ser atacada para cambiar el registro, pero hacer este ataque es muy difícil. Por lo tanto, los datos escritos en la cadena de bloques se consideran permanentes. La permanencia de los datos escritos en la cadena de bloques es la razón por la que se oirá que una cadena de bloques es inmutable.
Además del hashing, el blockchain se basa en la criptografía de clave pública para reconocer la idea de propiedad en el blockchain. Específicamente, los participantes en la cadena de bloques tienen una clave privada que les permite acceder a su información que está codificada con su clave pública. La clave pública y la privada están relacionadas, pero un agente malintencionado no puede derivar la clave privada de la clave pública visible. Las claves privadas no están destinadas a ser compartidas, ya que una clave privada se utiliza para desbloquear su clave pública asociada. Estas llaves firman las transacciones en la cadena de bloques.
El hashing y la criptografía de clave pública trabajan de la mano para mantener el consenso en el sistema. Mediante el consenso, todo el sistema tiene un conocimiento común de lo que ocurre en la plataforma y cualquier acción se registra y se pone a disposición de la plataforma para su visualización. Esto resuelve la cuestión de un sistema sin confianza con intermediarios, porque ahora los participantes en la cadena de bloques tienen una verificación constante en la plataforma.
El proceso de los mineros que verifican las acciones en la cadena de bloques se conoce como prueba de trabajo. La minería asegura que el estado constante del libro de cuentas tiene transacciones que son todas verdaderas. Esto evita que los ataques y la información falsa se perpetúen dentro del sistema, asegurando una validez duradera.
Merkling in Ethereum de Vitalik Buterin, cofundador de Ethereum, muestra cómo las cadenas de bloques incorporan los árboles Merkle en su estructura. También muestra las diferencias en los modelos que la cadena de bloques del Ethereum en comparación con la que utiliza la cadena de bloques de Bitcoin, especialmente en lo que se refiere al concepto de estado del Ethereum.