La tecnología Blockchain sigue siendo una tecnología relativamente nueva. Sin embargo, se ha convertido en un fenómeno generalizado a través del auge de las criptomonedas, como Bitcoin. Pero a pesar de que es fácil asociar blockchain con Bitcoin, esta está lejos de ser la única área donde se puede utilizar esta tecnología. Sin embargo, para comprender cómo se puede usar blockchain en diferentes industrias, primero debemos comprender qué es la programación de blockchain y qué problemas resuelve.
¿Por qué la programación Blockchain?
Para comprender el advenimiento de la programación blockchain y las soluciones blockchain, es necesario comprender de dónde viene. En los negocios, la máxima prioridad es ganar dinero. Sin embargo, esto puede, en algunos casos, ser perjudicial para el consumidor final. La codicia se ha convertido en una gran parte del negocio en los últimos años. Además, los proveedores de servicios lo aprovechan al máximo y cobran tarifas elevadas por los servicios esenciales.
Las personas que más sufren por esta codicia y costos exorbitantes son los consumidores y las personas menos afortunadas de la sociedad. Un ejemplo de esto se puede ver en los grandes bancos, que cobran comisiones masivas por operaciones financieras que son esenciales para la sociedad. Dado que estos intermediarios actúan únicamente por interés propio y codicia, una solución a este problema sería eliminar al intermediario.
Naturalmente, la distribución más eficiente de servicios de ofertas sería conectar directamente productores y consumidores, sin fricciones entre ellos. Lamentablemente, los productores no siempre cuentan con los recursos para distribuir sus productos o servicios directamente a los consumidores, lo que hace necesario recurrir a intermediarios. Esto significa que el intermediario a menudo aporta algo de valor a la cadena de suministro, pero tiene un costo, ya que actúa por puro interés propio. Y las personas que pagan por esto son los consumidores. Pero, ¿es posible eliminar por completo al intermediario? Hace diez años, muchos dirían que esto era imposible. No obstante, con la ayuda de blockchain, ahora podemos reemplazar al intermediario con tecnología. Específicamente, tecnología blockchain.
Lo más significativo es que tener una computadora como puente entre los productores y los consumidores es que una computadora no funciona por interés propio o codicia. No busca beneficiarse a sí mismo a expensas del consumidor. En pocas palabras, la red no requiere el pago del cliente, como un banco tradicional. Esto significa que ahora podemos distribuir algo a los consumidores sin tener que tratar con un intermediario codicioso.
¿Cómo se usa la programación Blockchain en la actualidad?
Es difícil hablar de blockchain sin mencionar primero a Bitcoin, que es quizás el ejemplo más famoso de blockchain y programación de blockchain en uso en la actualidad. Bitcoin vio la luz por primera vez en 2008. Además de los mitos que rodean a este codiciado “oro digital”, el creador de esta ilustre criptomoneda es el misterioso Satoshi Nakamoto, cuya identidad aún se desconoce. Algunos especulan que el nombre Satoshi Nakamoto es solo un seudónimo, y la naturaleza misteriosa del creador de Bitcoin también significa que solo podemos especular qué razonamiento personal tenía detrás de la invención de Bitcoin. Sin embargo, el famoso libro blanco de Bitcoin enumera claramente los beneficios de los sistemas de efectivo electrónico peer-to-peer. El hecho de que las computadoras no estén impulsadas por el interés propio está en el centro mismo de Bitcoin, otras criptomonedas y toda la programación de blockchain.
Bitcoin es un excelente ejemplo de cuándo se usa blockchain para eliminar a un intermediario. El dinero existe desde hace siglos y, al mismo tiempo, evoluciona continuamente. El uso de oro era el estándar en la época en que las monedas se usaban como moneda.
Eso cambió más tarde cuando se introdujo el papel moneda y reemplazó al del oro. Esto se hizo porque el papel pesa mucho menos que el oro y otros metales. Esto luego se convirtió en lo que vemos cada vez más hoy en día, un sistema monetario sin efectivo físico.
Sin embargo, los sistemas antiguos y los que se utilizan hoy en día requieren bancos por diseño. Además, son los bancos los que actúan como intermediarios en este escenario. Los bancos pueden aprovechar esto cobrando tarifas de transacción, entre otras cosas, y esto fue algo que Bitcoin, y en extensión la programación de blockchain, revolucionó.
Los bancos también son vulnerables por su propia naturaleza, ya que utilizan sistemas centralizados para almacenar dinero, tanto digital como físicamente. Esto significa que un banco es propenso a la piratería y mantener toda la información / registros en un solo lugar presenta un riesgo de fraude financiero.
¿Qué hace Bitcoin de manera diferente?
Algunos de los problemas que tenían las monedas fiduciarias, es decir, las precursoras de las criptomonedas, eran que toda la información se almacenaba en un solo lugar, que los sistemas no eran lo suficientemente seguros y que no había nada que garantizara a las personas su privacidad.
Esto significaba que un nuevo sistema derivado de la programación blockchain tendría que descentralizarse, ser seguro y garantizar la privacidad. Entonces, ¿cómo ha hecho esto Bitcoin?
Descentralización
Para resolver el problema de la centralización, Nakamoto introdujo un sistema P2P (P2P) impulsado por blockchain que nos permitiría almacenar información en partes en diferentes ubicaciones.
El sistema que utiliza Bitcoin es similar al de los torrents. Sin embargo, en lugar de descargar información de un servidor central, como cuando se usa un torrent, uno se conecta a una red de personas y descarga la información de alguien que ya la tiene.
Blockchain funciona con estos mismos principios, donde diferentes personas tienen información diferente. Esto significa que ninguna persona o empresa posee todos los datos, lo que significa que no pueden controlarlos por sí mismos. Además, esto básicamente significa que ningún actor puede controlar el sistema, al igual que ninguna entidad puede controlar la red Bitcoin, ya que más actores se conectan a ella.
Criptografía
La criptografía se ocupa del segundo problema con los intermediarios heredados, que es la seguridad. Esto también le permite firmar un mensaje o una transacción en línea. Esto usa un mensaje simple, una clave privada y una clave pública.
La clave privada actúa más o menos como una contraseña; mientras tanto, la clave pública se puede comparar con un nombre de usuario. Estas dos teclas constan de una larga secuencia de números, letras y signos y se conectan entre sí.
Cuando el mensaje y las claves entran en el algoritmo, aparece otra secuencia de letras, signos y números, y esta es la firma de la transacción. Una vez que creamos un mensaje, podemos verificarlo usando un algoritmo criptográfico donde usamos ambas claves. Al hacer esto, confirmará que fue, de hecho, el propietario de la clave privada que firmó.
Dado que estas claves y firmas constan de muchas letras y números, se vuelven extremadamente difíciles de piratear. De hecho, se necesitarían más de mil años para descifrar un mensaje utilizando la tecnología actual.
Intimidad
La privacidad también está en el corazón de las criptomonedas y es importante para la gran mayoría de quienes compran Bitcoin. Al decidir comprar Bitcoin, lo primero que debe hacer un usuario es crear una billetera. La billetera es su clave pública y privada. Estos no tienen ningún vínculo con la verdadera identidad del usuario, por lo que a menos que este decida decirle a alguien con precisión cuáles son sus claves, es imposible saber a quién pertenecen.
Este concepto permite mucha privacidad. En teoría, incluso los gobiernos no tendrían idea de a quién está comerciando y enviando dinero una persona. Sin embargo, esto tiene un efecto negativo, ya que es más fácil realizar intercambios para actividades ilegales.
Entonces, ¿qué es la programación Blockchain?
Naturalmente, la programación de cadenas de bloques es el núcleo de las cadenas de bloques. Como su nombre podría sugerir, la tecnología blockchain encierra información en cadenas de bloques. Podría decirse que el ejemplo más conocido de blockchain es el blockchain de Bitcoin. La cadena de bloques de Bitcoin crea nuevos bloques de transacciones aproximadamente cada 10 minutos. Cuando se forma un nuevo bloque, este bloque contiene varias transacciones. El bloque también incluye una firma criptográfica conocida como hash del bloque anterior, lo que significa que un bloque verifica el bloque anterior.
A través del proceso de validación de transacciones, los validadores reciben Bitcoins. Este proceso es lo que comúnmente se conoce como minería o cripto minería. El proceso de minería criptográfica gira esencialmente en torno a la resolución de acertijos criptográficos. A medida que se resuelven más y más acertijos, la dificultad de los acertijos aumenta y, en algún momento, se volverán irresolubles. Esto significa que existe un límite en la cantidad de Bitcoins que existirán alrededor de 21 millones de BTC. Además, la tasa de minería de Bitcoin disminuye a través de “eventos de reducción a la mitad”, que hacen que el nuevo Bitcoin sea cada vez más escaso.
Picadillo
Una de las partes principales de una cadena de bloques es su firma digital. Eso es lo que llamamos un “hash”. Desde la perspectiva de un programador o codificador de blockchain, un hash puede verse como una función que devolverá una cadena que alguien escribe y luego la devolverá en una cadena fija.
Una vez que ingresamos una cadena en la función para el hash, resultará en una cadena larga de números y letras. Una vez que recibimos un hash, nunca podremos cambiarlo; por tanto, es irreversible. La función hash está diseñada de manera que dos hash nunca tengan el mismo valor. Esto significa que cada hash es único y ninguna firma digital puede ser igual. Si los datos subyacentes cambian incluso una pizca, el hash cambiará por completo.
Entonces, ¿por qué es tan importante el hachís?
Como se mencionó anteriormente, el hash es un componente crucial en la programación de blockchain. Esto se debe a que cuando se crea un nuevo bloque dentro de la cadena, contendrá el hash del bloque anterior.
Para aclarar, esto puede verse como [aaa, “X pagó $ 50 a Y”, bbb].
En este caso, “aaa” es igual al hash del bloque anterior, “X pagó $ 50 a Y” es la transacción que tuvo lugar y “bbb” es el hash del bloque actual. Entonces, cuando el siguiente bloque forme “aaa” en el bloque 2 será igual a “bbb” en el bloque 1.
Este ejemplo, naturalmente, es solo una versión simplificada de cómo se verá en la práctica. Por ejemplo, “aaa” y “bbb” serán más largos y complejos de lo que aparecen arriba. La lista de transacciones también puede ser mucho más larga; puede, por ejemplo, contener varias transacciones. Esto significa que un bloque puede contener más de una transacción, pero, no obstante, mostrará con precisión las transacciones que se han realizado.
Ethereum y contratos inteligentes en la programación Blockchain
Como mencionamos en el apartado “¿Por qué Blockchain?”, El intermediario se puede eliminar mediante la programación inteligente. La programación blockchain que sustenta Bitcoin presenta una gran innovación de muchas maneras, pero carece de un área; autonomía.
Esta potencial “falta de autonomía” con Bitcoin llevó en parte al desarrollo de otra criptomoneda; Ethereum. Vitalik Buterin es el creador de esta criptomoneda, y una de las diferencias entre Ethereum y Bitcoin es a través de algo conocido como “contratos inteligentes”. Estos contratos inteligentes contienen esencialmente un fragmento de código que se ejecuta cada vez que algo interactúa con éxito con el código.
Los contratos inteligentes generalmente contienen ciertas condiciones, y cuando se cumplen, se activa el código que contiene el contrato. Muchos argumentan que esta es una ventaja clara, ya que los contratos inteligentes hacen que el sistema sea más autónomo. Si alguien va a vender algo en línea, un contrato inteligente podría, por ejemplo, ayudar a las personas a subir una lista del artículo.
Sin embargo, aunque los contratos inteligentes son un gran complemento, todavía son algo tontos. Algunos de los contratos no solo pueden ejecutarse mediante una computadora; en algunos casos, un ser humano también necesita interactuar. También puede resultar difícil utilizar esta tecnología en el mundo real.
Cómo programar contratos inteligentes con Solidity
Ethereum se ejecuta en un lenguaje de programación blockchain llamado Solidity (entre otros programas). La solidez es el lenguaje más popular para los contratos inteligentes.
Ejemplo:
Digamos que estamos tratando de crear un contrato inteligente que almacenará el salario de alguien durante un mes y donde el empleado puede recuperar esta información. Al crear un contrato inteligente para este escenario, necesitamos dos cosas; en primer lugar, necesitamos el nombre del empleado. En segundo lugar, necesitamos el salario de la misma persona.
Antes de codificar esta información, debemos notificar al compilador qué versión de Solidity se está ejecutando. Un compilador es un programa que básicamente traduce código de un lenguaje de programación a otro.
Una vez que esto esté completo, podemos comenzar a codificar los nombres y el salario. Lo primero que debe hacer es crear una matriz de cadenas de los nombres, y después de esto, podemos crear otra matriz de cadenas que funcione junto con la matriz de nombres.
Una vez que las matrices están completas, podemos programar los contratos para enviarlos a los empleados. Los nombres de los estudiantes se convertirán en argumentos y luego se almacenarán en la matriz para los nombres. Cuando terminemos con esto, podemos crear una función donde podamos asignar a los empleados sus salarios. Para asegurarnos de que el empleado recibirá su salario correcto, también debemos crear una función que asegure que el empleado es el correcto.
Después de esto, la función para darle a un empleado sus salarios necesitará dos argumentos. La función requiere el nombre y el salario de ese empleado. Además, la función para verificar el nombre del empleado solo se ejecutará si alguien escribe el nombre correcto.
El último paso sería crear una función para los empleados. Esta función debería permitir a los empleados adquirir su salario. Esta función solo aceptará el nombre del empleado como argumento y, a cambio, dará el salario.
Gas
Una vez que alguien escribe el código y todo funciona, debemos implementarlo en la cadena de bloques. Al implementar el contrato en la cadena de bloques, esto le costará gasolina. Y esto es para “pagar” a otras personas que le permiten usar el poder de sus computadoras.
Si está creando su cadena de bloques privada, no es necesario pagar por el combustible. Pero si se hiciera público en la cadena de bloques Ethereum, un pago de gas es un requisito.
Si desea obtener más información sobre qué es la programación de blockchain, cómo codificar contratos inteligentes y blockchain en general, no dude en registrarse en la academia de blockchain en línea Ivan en Tech Academy para una gran selección de cursos de blockchain.