ISSN: 0016-7975
Revisión/Review/Revisão
César Paulino Pérez Silva
Ing°Electron°, MSc. Profesor. Universidad Tecnológica del Centro (UNITEC). e-mail: perez777@gmail.com
Recibido: 27-1-18; Aprobado: 24-2-18
Blockchain is the database where transactions are written by users in a crypto-currency, a transaction carried out by a user is converted into one or more blocks that join the global chain "blockchain", a block chain generated by a user is formed by several layers where we can identify a header (HASH) which is a highly complex and random mathematical function.
Blockchain é o banco de dados onde se escrevem as transações que fazem os usuários em criptomoeda, uma transação efetuada por um usuário se converte em um ou vários blocos que se unem à corrente global blockchain, uma corrente de blocos gerada por um usuário está formado por várias capas onde podemos identificar um encabeçado (HASH) a qual é uma função matemática altamente complexa e aleatória.
Blockchain, crypto-currency, criptomoeda, criptomoneda, petro, natural resources, recursos naturais, recursos naturales.
Citar así/Cite like this/Citação assim: Pérez (2018) o (Pérez, 2018).
Referenciar así/Reference like this/Referência como esta:
Pérez S., C. P. (2018, abril). Recursos naturales, “criptomonedas”, aproximación al blockchain. Geominas 46(75). 9-16.
Para explicar cómo opera el blockchain, será necesario explicar algunos detalles técnicos, usando un lenguaje adecuado tratando de esta manera sea entendible por la mayoría de los lectores, sin pretender involucrar un lenguaje propio de desarrolladores y expertos en sistemas informáticos y de información
Imaginemos que tenemos tres usuarios que llamaremos A, B y C, supongamos que se hacen transacciones donde ocurre lo siguiente:
· El usuario A en el bloque 1 cuenta con 10 criptomonedas.
· El usuario A envía 5 criptomonedas al usuario B, a través del bloque 2.
· El usuario B envía 4 criptomonedas al usuario C, a través del bloque 3.
· El usuario C envía 3 criptomonedas al usuario A, a través del bloque 4, y
· El usuario B envía 1 criptomoneda al usuario A, a través del bloque 5.
Esquemáticamente, las transacciones originadas desde el usuario A se pueden representar como una cadena de bloques enlazados uno primero y luego el otro hasta completar la transacción final que culmina en el bloque 5, como se muestra en la figura 1, cada bloque está en el orden correlativo que le corresponde.
Figura 1.
Figura 2.
Por aritmética simple, es claro ver el orden de desarrollo de la transacción, y es fácil obtener el balance final para cada usuario, el cual sería el siguiente:
· Usuario A=10-5+3+1=9 criptomonedas.
· Usuario B=5-4-1=0 criptomonedas.
· Usuario C=4-3=1 criptomonedas.
Si trato de modificar la cadena, por ejemplo, intercambiando el bloque 2 por el bloque 3 y el bloque 3 por el bloque 2, se pierde el balance de la transacción porque el usuario B envía al usuario C sin tener un saldo previo originado en el bloque anterior, se puede apreciar que el HASH previo del bloque 2 ahora no corresponde al HASH del bloque anterior, por tanto se rompe la cadena y la transacción sería inválida, por esto la cadena tiene un orden. (Ver figura 2).
Si fuese dinero que está en banco, la base de datos que permite hacer cada operación estaría bien resguardada en ese banco o en el servidor del banco matriz conectado en línea con el banco local, y el banco como entidad sería el garante de supervisar a cada
usuario en su base de datos y tener vigente el balance correspondiente, impidiendo, por ejemplo, que el usuario B pueda hacer una próxima transacción que supere la cantidad de una unidad, debido a que ese es su balance instantáneo, el usuario A contaría con 9 unidades para nuevas transacciones y el usuario C no podría emitir ninguna transacción por tener balance cero.
Sabiendo que uno de los postulados es que el blockchain opera al margen de bases de datos de bancos, ni supervisión de éstos, ni de superintendencias bancarias, ni de Estado alguno, entonces nacen algunas interrogantes que menciono y doy respuesta a las mismas:
Respuesta, la cadena de bloques se escriben en una red de usuarios especiales llamados “mineros”, que están interconectados en una red o malla los unos con los otros, (vía internet y pueden ser miles o millones en todo el mundo, o una red local con menor cantidad de mineros, por ejemplo), un nodo en el entramado de la malla es un minero específico, o un usuario específico que posee el libro contable de todas las cadena de bloques de todas las transacciones, para el ejemplo anterior donde hay tres usuarios y se generaron cinco transacciones, es equivalente a decir que el libro contable tiene cinco páginas adicionales, donde cada página corresponde a un bloque específico, por tanto en el libro contable deberá haber cinco bloques nuevos, por tanto, cada minero cuenta con una copia actualizada del libro contable de las transacciones de la cadena de bloques.
En la figura 3 se muestra una estructura formada por cinco nodos o mineros o también usuarios interconectados en una red, donde cada uno, tiene una copia del libro contable generado y actualizado, es decir, todos tienen la misma copia del mismo libro contable; en la figura 4 se muestra la red de internet con miles o millones de mineros.
Figura 3. Pequeña red blockchain.
Figura 5. Pequeña red blockchain donde falta un minero quedando cuatro de ellos operativos
Figura 4. Red blockchain por internet.
Figura 6. Red blockchain por internet donde faltan de los miles millones de mineros una cantidad representativa quedando siempre una cantidad vigente.
Si por alguna causa falta o no está presente alguno de los mineros, la información siempre la tendrá el resto de mineros existentes, si la red está en internet como es lógico pensar, habrá copia en miles o millones de computadoras, por tanto, a pesar que un minero se salga de la red temporalmente, al momento de incorporarse nuevamente a la red, obtendrá la copia actualizada del libro contable de transacciones o blockchain. (Ver figuras 5 y 6).
Respuesta, en primer lugar, un equipo computacional de reciente generación, con capacidad de realizar procesos matemáticos a altas velocidades actuando como un servidor dedicado al proceso de blockchain, un software apropiado relacionado a blockchain, por ejemplo, Genesis Mining y una conexión a internet de alta velocidad, que en nuestro país es bien limitada.
1) El HASH es una palabra encriptada que representa la huella dactilar o ADN único de ese bloque, haciendo comparaciones en la red social Twitter existe el denominado HASHTAG representado por el símbolo # seguido por el nombre de una tendencia única que se presenta en un momento dado. Para el caso que trato para dar esta explicación, el HASH es el resultado de aplicar una función matemática aleatoria y compleja al contenido vigente en el bloque, la función generatriz del HASH se denomina en el lenguaje de los desarrolladores como SHA256, consiste de un algoritmo de encriptación en una sola vía, es decir, se genera pero no existe mecanismo o fórmula que una vez creado lo pueda desencriptar, la única forma sería haciendo tanteos aleatorios, por lo que es una secuencia única de caracteres unos y ceros con una longitud de 256 bits del sistema numérico binario a nivel del hardware del sistema que lo procesa y almacena por una parte y por la otra a la vista, usando el mismo software lo convierte en una cadena de caracteres alfanuméricos con una longitud de 64 bits que corresponde al sistema numérico hexadecimal.
Una palabra (byte) del sistema hexadecimal está formado por una estructura de derecha a izquierda de cuatro bits de unos y ceros del sistema binario, las posibles combinaciones de caracteres alfanuméricos de un byte en el sistema hexadecimal son 24=16, esto se muestra en la tabla 1.
Tabla 1.
Figura 7
Figura 8
Figura 9
Figura 10
Figura 11
Validé el bloque 2, pero tengo que minar todos los demás bloques en rojo. La dificultad de modificar bloques crece exponencialmente cuando los bloques están distribuidos y una copia está en miles o millones de nodos en todo el mundo, resulta imposible alterar esas miles o millones de nodos, lo que hace que la red blockchain sea exponencialmente segura.
4) Distributed Blockchain, consiste una vez construidos los bloques con las transacciones las paso a la red, donde llega una copia con la misma información a cada nodo de la misma ahora llamada PEER. La figura 15 muestra la copia que le llegó en particular a dos PEER distintos, pero esa copia, si está en la red de internet le llega a miles o millones de PEERs distribuidos en todo el mundo.
5) Tokens, muestra las distintas transacciones validadas, efectuadas por el usuario y distribuidas en la red, con copia a los distintos PEERs que se encuentran en ese momento monitoreando la validez de las mismas. (Ver figura 16).
6) Coinbase Transactions, muestra el origen del dinero bien sea en dólares como es el caso mostrado en la siguiente gráfica, como también puede ser Euros, Yuanes, o cualquier moneda de uso cotidiano en los distintos países, como también pueden ser bitcoins o cualquier otro tipo de criptomoneda (ver figura 17) en nuestro caso país el PETRO, en cada caso el sistema que genera dicha moneda sería la responsable de garantizar que una operación efectuada en esa moneda sea válida y transparente, es decir, el sistema Bitcoin sería el garante que quien transa operaciones con bitcoins tenga realmente bitcoins para respaldar la transacción efectuada, aquí equivale a retomar el tema de la criptomoneda Petro promovida por el Estado venezolano, en tal sentido tiene un origen: el Estado venezolano y éste sería el responsable y garante que las transacciones efectuadas en esa criptomoneda sean válidas debido al respaldo que el Estado ofrece a quien las posea.
En todo caso, se puede apreciar que siempre el bloque 1, por no provenir de una operación anterior, en la casilla del hash previo siempre la encontraremos rellenada con 64 ceros, significa que es el sistema garantiza que el usuario llamado Anders dispone de 100 dólares provistos inicialmente del sistema para sus distintas transacciones. Si fuesen petros, el sistema sería el Estado venezolano que otorgaría a Anders la cantidad de 100 petros para las distintas transacciones que haga Anders.
Ahora bien, como hay una red de mineros distribuidos en todo el planeta a través de internet, nace la interrogante ¿qué motiva a un minero a hacer un gasto de equipos sofisticados, pago de electricidad, gastos por servicios de internet, para monitorear la red y validar las transacciones que se efectúan en cada instante en todo el planeta? (Ver figura 18).
(Si el sistema que paga es el Estado venezolano, ¿cuánto es el valor que recibe el minero y convertido a su valor en dólares?, ¿cuánto recibiría en dicha moneda?).
Por extensión una palabra criptográfica de longitud 256 bits en el sistema binario corresponde a una palabra criptográfica de longitud 64 bytes en el sistema hexadecimal, lo que produce la siguiente cantidad de posibilidades a saber: 264, esta cantidad al meterla en una calculadora reproduce la siguiente cifra de posibilidades:
264=1,84467440737069x1019
¡Wow!, es decir un número formado por 20 dígitos, la calculadora que utilicé (Texas Instrument) arroja los 20 dígitos, y puedo leer el siguiente valor:
18.446.744.073.709.551.616
Se trata de dieciocho quintillones cuatrocientos cuarenta y seis cuatrillones setecientos cuarenta y cuatro trillones setenta y tres billones setecientos nueve millones quinientos cincuenta y un mil seiscientos dieciséis, como puede observarse, se escapa del lenguaje cotidiano de cualquier persona.
Veamos varios ejemplos de función SHA256 que genera los distintos hashes.
Datos en blanco en un bloque. (Ver figura 7).
Al modificar el contenido, se genera un nuevo hash distinto al primero, veamos, solo al presionar una letra cualquiera, en este caso la letra “h”, el hash generado es distinto al anterior y así sucesivamente. (Ver figura 8).
Se observa claramente que el nuevo hash generado es totalmente distinto al primero.
2) Bloque (Block) como tal contiene cuatro elementos:
a. Block #: o número de bloque, que lo identifica.
b. Nonce: que es un número único asignado a ese bloque como una respuesta a la incógnita de dónde sale el número HASH.
c. Data: que corresponde al contenido del bloque, es decir, las transacciones que se hacen a través de dicho bloque, y por último
d. HASH: explicado anteriormente.
El contenido de los primeros tres elementos genera el hash. (Ver figura 9).
Si se modifica alguno de los elementos, por ejemplo, el contenido, se produce un nuevo hash distinto al anterior, lo que origina un nuevo bloque con contenido inválido, la pantalla cambia a rojo. (Ver figura 10).
Para hacerlo un bloque válido, se debe hacer el proceso de minado, que consiste en encontrar el NONCE correcto para que su hash corresponda. (Ver figura 11).
La escritura gggggg produce un nuevo hash que corresponde al nuevo nonce 177993, se puede observar que cualquier cambio, cambiar un punto, una coma, un carácter, un número produce un cambio instantáneo en el hash y a la vez en el nonce, se hace cada vez más complicado corromper algún registro una vez esté en la red.
3) Blockchain, es una secuencia de bloques con las características mencionadas en el ítem 2, en la que se adiciona una celda adicional llamada previo. (Ver figura 12).
Figura 12
El bloque 1 como no tiene un bloque anterior, en tal caso, es el bloque génesis donde se origina la cadena de bloques de una transacción, por esa razón su hash se rellena de ceros en la casilla Prev.
El bloque 2 tiene un hash previo que es el hash del bloque 1 y su propio hash, respectivamente y así sucesivamente con los bloques 3, 4, 5, etc.
Si trato de modificar la información de una copia de la cadena de bloques, por ejemplo del bloque 2, se invalidan ese bloque modificado y los subsiguientes, porque los hashes a partir de ahí no corresponden, se nota que el nuevo hash del bloque 2 modificado no empieza con cuatro ceros, para validarlo se tendría que minar todos los bloques subsiguientes uno por uno a partir del bloque 2, esto produce una alta seguridad en la cadena de bloques porque no puedo modificar un bloque y minar sin minar todos los bloques subsecuentes. (Ver figuras 13 y 14).
Figura 13
Figura 14
Figura 15
Figura 16
Figura 17
Figura 18
Respuesta: Para explicar la interrogante, es necesario saber cómo funciona el mecanismo de tarjeta de débito de un banco con respecto a sus usuarios, para que un usuario pueda tener una tarjeta de débito, el mismo debe contar con una cuenta que en Venezuela se caracteriza por 20 dígitos a la vez para afiliar la tarjeta para dar uso, se debe tener una clave personal (única), si quiero transferir una cantidad de mi cuenta a la cuenta de otra persona, esa persona me suministra los datos de su cuenta y yo con mi cuenta y activando con mi clave particular realizo la operación abalada por el mi banco personal. La otra persona con su clave personal verifica en su cuenta la transacción y da conformidad de la misma. Para blockchain se maneja un concepto similar donde cada usuario del sistema posee dos claves una privada, secreta y única para ese usuario y otra clave que es pública equivalente en comparación al número de cuenta de un banco. Entonces, para poder hacer una transacción entre el usuario A hacia el usuario B, el usuario A debe disponer de la clave pública suministrada por el usuario B, el usuario A con su clave modifica el contenido de la data, por ejemplo, 10 unidades son enviadas del usuario A al usuario B, valida la transacción y envía a la red.
El usuario B, con su clave secreta ingresa a su casilla de clave pública y confirma que desde el usuario A está recibiendo una transacción, que ya está validada en la red por todos los mineros que tienen copia del blockchain de las transacciones efectuadas. Un tercer usuario se ve imposibilitado de ver el contenido de la transacción debido a que su clave privada no puede abrir la clave pública del usuario B, por lo que se asegura que es imposible por todas las partes donde se mire hacer algún tipo de trampa en una transacción una vez esté colocada en el sistema. Esquemáticamente, se muestra en la figura 19.
Figura 19
The author(s) declare(s) that she/he/they has/have no conflict of interest related to hers/his/their publication(s), furthermore, the research reported in the article was carried out following ethical standards, likewise, the data used in the studies can be requested from the author(s), in the same way, all authors have contributed equally to this work, finally, we have read and understood the Declaration of Ethics and Malpractices.