Al Robot: Creando mi cadena de bloque
Por Edgar Tercero
Creando mi cadena de bloque
En México como en el resto del mundo se ha empezado una transformación digital muy fuerte, ya sea como detonante de lo acontecido con la pandemia o por la visión de empresarios mexicanos que han apuntado a la utilización de nuevas tecnologías. Tal es el caso de Blockchain, la cual esta recibiendo una mayor aceptación en varios sectores dentro de nuestro país.
En México se encuentra una de las wallets más famosas con uso nacional y relevancia internacional como lo es Bitso, la cual ofrece un servicio para la compra y protección de nuestros activos digitales. Creciendo a pasos agigantados sin importar si se trataba de una pyme hace un par de años.
Este es solo un ejemplo de tantos que se vienen en el futuro, las llamadas Fintech han sido de las empresas con mayor crecimiento durante la pandemia. Solo hay que poner atención a los grandes de todo el mundo, como Tesla que al parecer vale más por sus inversiones en criptomonedas que en la venta o renta de sus autos.
Debemos abrir bien los ojos y poner atención a lo que se esta logrando con esta tecnología, simplemente China, un país donde ya pueden pagar utilizando sus celulares sin la necesidad de cargar efectivo o tarjetas de crédito. Recientemente sacaron su criptomoneda “yuan digital” (DCEP o cripto yuan) para uso nacional, que amenaza el poderío del dólar, al menos hasta ahora no se vislumbra la desaparición de esta última divisa como estándar internacional, habrá que revisar con el tiempo que deciden los actores mundiales, y cual moneda les ofrece beneficios más atractivos.
En México algunos sectores han empezado a utilizar esta tecnología para validar sus contratos, tal es el caso del Tecnológico de Monterrey que otorga sus diplomas y certificados aprovechando un blockchain propio (Revisar el artículo de Cadenas donde explico de que se trata el blockchin).
¿Cuánto tiempo nos tomaría crear una solución con blockchain?
Mucho del trabajo ya este hecho, desde que saliera en el año 2009 el documento de Satoshi Nakamoto explicando el funcionamiento de blockchain, se han logrado avanzar, mejorar la encriptación y hacer uso de otras tecnologías que comiencen a darle mayor seguridad, inclusive poder llegar a tener cierta autonomía.
La popularidad de internet, el cómputo y almacenamiento distribuido, la llegada de la nube, la apertura en la criptografía, entre otras tecnologías ha permitido establecer los puntos críticos para poder hacer una copia del libro mayor, el blockchain público, conectar diferentes computadoras en todos los países, para crear una solución propia al alcance de las empresas y personas.
Para ello comparto algunos pasos para tener una solución de blockchain que se puede aplicar en las empresas mexicanas, esto lo comparte Rohas Nagpal en Forbes: #8 Steps to Build a Blockchain Solution. Muchos creen que se deben tener mucho dinero, así como grandes máquinas para lograrlo, hoy gracias a la nube esto ya no debe significar una barrera, así como los servicios que ofrecen varias empresas en la actualidad.
Paso 1: ¿Para qué la vamos a utilizar?
Es común que se tiene la idea de que, al llegar una tecnología nueva, esta nos va a solucionar todos los problemas, sin embargo, debemos entender cuál es el objetivo o fin que se persigue, además de entender si esa tecnología nos podrá ayudar a resolverlo (recuerden el hype cycle).
Hay 3 cosas que blockchain puede hacer muy bien:
1. Autenticación y verificación de datos: esto incluye almacenamiento inmutable, firmas digitales y cifrado. Los datos en casi cualquier formato se pueden almacenar en la cadena de bloques. Las cadenas de bloques pueden crear pares de claves público-privadas y también se pueden utilizar para generar y verificar firmas digitales.
2. Gestión inteligente de activos: esto incluye emisión, pago, cambio, depósito en garantía y retiro. Un activo inteligente / criptográfico es la versión tokenizada de un activo del mundo real, por ejemplo: oro, plata, petróleo, tierra.
3. Contratos inteligentes: este es un término que a menudo se entiende mal: Acuñado por el científico informático Nick Szabo en 1994, el término "contrato inteligente" es algo engañoso. “Un 'contrato inteligente' es un código informático que, a diferencia de la mayoría, no se instala en una computadora personal ni en un servidor. El código está registrado en una cadena de bloques, por lo que no se puede borrar ni editar. Por lo tanto, podrían a llegar a ser muy rígidos, así que el uso deberá destinarse a un contrato que no pueda alterarse bajo ningún argumento o circunstancia.
Paso 2: Identificar el mecanismo de consenso más adecuado
El mecanismo con el que vamos a comprobar nuestras transacciones, por ejemplo: la cadena de bloques original, que impulsa la criptomoneda bitcoin, utilizó la prueba de trabajo como mecanismo de consenso.
Sin embargo, hoy en día existen múltiples sistemas de contabilidad distribuida que ofrecen una serie de mecanismos de consenso como prueba de participación, tolerancia a fallas bizantinas, consenso basado en depósitos, acuerdo bizantino federado, prueba de tiempo transcurrido, PBFT derivado, tolerancia a fallas bizantinas redundantes, tolerancia a fallas bizantinas simplificada , consenso federado, Round Robin y prueba de participación delegada.
Dependiendo de su caso de uso, debe elegir el mecanismo de consenso que tenga más sentido.
Paso 3: identificar la plataforma más adecuada
Hoy en día existen muchas plataformas blockchain y la mayoría de ellas son gratuitas y de código abierto. Dependiendo del mecanismo de consenso que eligió en el paso 2, debe seleccionar la plataforma blockchain más adecuada.
Algunas de las plataformas más conocidas son:
* BigChainDB
* Chain Core
* Corda
* Ethereum
* HydraChain
* Quorum
Estos son apenas un par de ejemplos, es tarea de ustedes investigar cual es la que mejor se adapta al objetivo que cada uno tenga.
Paso 4: diseñar los nodos
Las soluciones de cadena de bloques pueden tener permiso, por ejemplo, un registro de tierras administrado por el gobierno o sin permiso, Bitcoin, donde cualquiera puede convertirse en minero.
Las soluciones de blockchain pueden ser privadas por ejemplo: un sistema de gestión de contratos implementado en una empresa farmacéutica públicas una criptomoneda respaldada por activos (como la moneda china) o híbridas.
Otro factor para considerar en esta etapa es si los nodos se ejecutarán en la nube, en las instalaciones o en ambos.
Luego vienen los problemas de configuración de hardware como procesadores, memoria y tamaño del disco. También debe decidir los sistemas operativos base, generalmente Ubuntu, CentOS, Debian, Fedora, Red Hat o Windows.
Paso 5: Diseñe la instancia de Blockchain
La mayoría de las plataformas blockchain necesitan una configuración planificada muy cuidadosa para los siguientes elementos:
1. Permisos
2. Emisión de activos
3. Reemisión de activos
4. Gestión de claves
5. Firmas múltiples
6. Parámetros
7. Activos nativos
8. Formatos de dirección
9. Bloquear firmas
10. Apretón de manos (handshake)
Paso 6: Creación de las API
Algunas plataformas blockchain vienen con API prefabricadas, mientras que otras no. Las principales categorías de API que necesitaría son para:
* Generación de direcciones y pares de claves
* Realización de funciones relacionadas con la auditoría
* Autenticación de datos mediante firmas digitales y hashes
* Extracción y recuperación de datos
* Gestión inteligente del ciclo de vida de los activos: emisión, pago, intercambio y retiro
* Contratos inteligentes
Paso 7: Diseñe la interfaz de usuario y administrador
En esta etapa, deberá elegir el front-end y los lenguajes de programación (por ejemplo, HTML5, CSS, PHP, C #, Java, Javascript, Python, Ruby, Golang, Solidity, Angular JS Nodejs).
También necesitaría elegir bases de datos externas (por ejemplo, MySQL, MongoDB) así como servidores (incluidos servidores web, servidores FTP, servidores de correo).
Finalmente, esto no se mantiene estático, por lo tanto, se irán incorporando nuevas tecnologías para robustecer a nuestra cadena de bloque.
La complejidad de las transacciones abarca varios campos y áreas de conocimiento, nuevamente hago hincapié, en no delegar estas actividades a una sola área, quien esta almacenando todo el poder tecnológico, pero no así, ofreciendo soluciones reales, lo que lleva a la poca adopción de las áreas. Recordemos que la máquina hará lo que le enseñemos a hacer, si no les damos el conocimiento adecuado solo verán 0s y 1s.
“El científico debe trabajar de la mano con el negocio”
Commentaires