0% encontró este documento útil (0 votos)
6 vistas6 páginas

Crear Blockchain con JavaScript

Blockchain con JavaScript permite crear cadenas de bloques de forma descentralizada para almacenar información de manera segura. Cada bloque contiene datos, un hash único y el hash del bloque anterior, lo que vincula de forma segura los bloques. Al modificar cualquier bloque, se rompe la cadena hash y la blockchain deja de ser válida. El documento muestra cómo crear una blockchain simple en JavaScript para entender su funcionamiento básico.

Cargado por

jsersan
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
6 vistas6 páginas

Crear Blockchain con JavaScript

Blockchain con JavaScript permite crear cadenas de bloques de forma descentralizada para almacenar información de manera segura. Cada bloque contiene datos, un hash único y el hash del bloque anterior, lo que vincula de forma segura los bloques. Al modificar cualquier bloque, se rompe la cadena hash y la blockchain deja de ser válida. El documento muestra cómo crear una blockchain simple en JavaScript para entender su funcionamiento básico.

Cargado por

jsersan
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

CONSTRUYENDO UN BLOCKCHAIN EN JAVASCRIPT

Intro: BlockChain con [Link]

Veremos paso a paso como crear desde cero una Blockchain simple para entender su
funcionamiento y arquitectura detrás de la tecnología sobre la que se funda Bitcoin,
Ethereum y todo el mundo Crypto.

Para ello vamos a utilizar JavaScript y el entorno de [Link].

En pocas palabras, BlockChain es un sistema de gestión de cadena de bloques que


contiene información. Este sistema fue creado en 1991 para marcar el tiempo de
creación de documentos y sellar la fecha de los documentos digitales de manera que no
sea posible manipular esta fecha.

Fue adoptado por Satoshi Nakamoto en 2009 para crear la criptomoneda Bitcoin.

La información de los bloques de la cadena una vez ha sido registrada, es muy difícil
cambiarla. Para ello cada bloque contiene tres partes:

- Data (Información): depende del tipo de bloque. Por ejemplo, en bitcoin


contiene la información del remitente, destinatario y cantidad de la transacción.
- Hash (codificación): comparable con una huella digital, sirve para identificar el
bloque. Esta huella se calcula en el momento de creación del bloque.
Si hay cambios en el bloque, esta huella cambia por lo que es muy útil para
detectar cambios en bloques.
- Hash del bloque previo: útil para crear una cadena.

Hash: 1Z8F Hash: 6BQ1 Hash: 3H4Q


Prev Hash: 0000 Prev Hash: 1Z8F Prev Hash: 6BQ1

El bloque 0000 es el bloque génesis. Si el hash del segundo bloque cambia debe
actualizar el hash del bloque previo del tercero En Bitcoin se mide en unos 10
minutos el recálculo del hash y añadirlo a un nuevo bloque de la cadena. La
modificación de un hash implica recalcular la prueba de trabajos de todos los
bloques siguientes.

Toda la seguridad de este sistema proviene del uso creativos de la técnica de


codificación (hash) y de la prueba de trabajo.

1
CONSTRUYENDO UN BLOCKCHAIN EN JAVASCRIPT

Esta técnica en vez de usar mecanismos centralizados en forma de estrella se


basa en el uso de redes P2P donde cualquiera puede unirse con las credenciales
oportunas. Cuando alguien se une, obtiene una copia completa del blockchain.

Si alguien crea un nuevo bloque éste es enviado a todos los miembros/nodos de


la red. Todos los nodos de la red crean un consenso para determinar qué bloque
son válidos.

Para validar qué se puede hacer con los bloques tenemos los “Smart contracts”
que son pequeños programas que se almacenan dentro de cada bloque que se
utilizan para intercambiar monedas bajo ciertas condiciones.

Esta tecnología se está extendiendo cada vez en más ámbitos de negocio como
los historiales médicos, documentos notariales, impuestos, etc.

2
CONSTRUYENDO UN BLOCKCHAIN EN JAVASCRIPT

1. Creación de un blockChain en JavaScript.


1.1. Backend.

En esta parte del tutorial aprenderemos como crear nuestra propia cadena de
bloques con JavaScript. Veremos los entresijos de una cadena de bloques usando
código simple.

No es una implementación completa, pero lo suficiente para entender cómo las


cadenas de bloques funcionan y cómo estas garantizan que los bloques en la cadena
nunca pueden ser cambiados.

Después de crear nuestra propia cadena de bloques (blockchain), intentaremos


manipularla y alterar uno de los bloques para demostrar como la cadena es capaz
de detectar el fraude.

Vamos a Visual Studio Code y creamos una clase Block en un fichero [Link]:

Vamos a crear un método para calcular el hash que utilizará sha-256 como una
función de hash que no está disponible por defecto en javascript por lo que es
necesario instalar la siguiente librería:

La tenemos en la carpeta de node_modules:

3
CONSTRUYENDO UN BLOCKCHAIN EN JAVASCRIPT

Una vez creada la función calculateHash, la invocamos en el contructor:

Creamos ahora una nueva clase para nuestro Blockchain:

Vamos a crear ahora unos métodos que nos permitan manejar la cadena:

Para probar esto debemos crear varios objetos de tipo Blockchain:

4
CONSTRUYENDO UN BLOCKCHAIN EN JAVASCRIPT

Ejecutamos en la consola:

Esta configuración no nos permite si el bloque actual es válido. Para ello creamos el
siguiente método isChainValid:

Vamos a probarlo introduciendo este código:

Resultado:

5
CONSTRUYENDO UN BLOCKCHAIN EN JAVASCRIPT

Si ahora cambiamos el contenido del bloque veremos qué cambia:

Probamos y vemos como ahora detecta que el blockchain no es válido por modificar la
data:

Si modificamos el hash:

Probamos:

Sigue siendo falso porque la relación con el bloque previo está rota. Los bloques no se
eliminan. Si hay algún problema con la cadena debemos retornarlos a un estado donde
se restauren los enlaces. Eso lo haremos en el siguiente apartado “Prueba de trabajo”.

También podría gustarte