Capítulo 1. Conceptos fundamentales de Blockchain
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Es importante comprender que blockchain no es un concepto sencillo de entender para la mayoría sin una comprensión sólida de su origen, componentes básicos y arquitectura, así como de los debates que rodean a blockchain. Blockchain tiene muchas definiciones ligeramente distintas que suscitan algunas opiniones muy dogmáticas, y esto confunde a muchos cuando comienzan su andadura en blockchain. Esta confusión se debe a que la cadena de bloques no es algo tangible que se pueda tocar o ver, sino un concepto nacido de algoritmos, tecnología e ideas nuevas para el intercambio de valor económico.
En este capítulo, exploraremos los conceptos fundamentales de blockchain comenzando primero con una breve historia de su origen. Esta información de fondo te ayudará a entender por qué blockchain no tiene una única definición estandarizada y universalmente aceptada.
Tras nuestro debate sobre el origen de blockchain, examinaremos brevemente varios componentes básicos. Luego profundizaremos en su arquitectura, seguida de la tecnología y los conceptos de apoyo.
En nuestro análisis de los componentes básicos, empezamos por la red descentralizada. Luego cubriremos la criptografía. Puedes considerar la criptografía como la salsa secreta de la cadena de bloques, porque es lo que hace que ésta funcione. Sin criptografía, blockchain no tendría ninguna utilidad. A continuación, hablaremos de la implementación del libro mayor. El libro mayor representa el almacenamiento o base de datos en blockchain. Mantiene el estado creado como resultado de la última transacción comprometida, así como el historial desde el principio de la creación del libro mayor.
A continuación, hablaremos del consenso, un protocolo para encontrar un "acuerdo" entre los nodos, que es el corazón de blockchain. El consenso proporciona un medio seguro para completar las transacciones sin depender de los intermediarios tradicionales de los sistemas transaccionales comunes. Por último, hablamos de los contratos inteligentes. El poder de blockchain para realizar transacciones complejas es un resultado directo del empleo de contratos inteligentes. Puedes pensar en los contratos inteligentes como programas de software.
Este capítulo te ayudará a comprender lo siguiente:
-
La arquitectura y los componentes básicos del diseño de la cadena de bloques
-
Cómo funcionan las bases de datos del libro mayor y las bases de datos del estado mundial en blockchain
-
El papel de la criptografía (como las claves públicas/privadas o las funciones hash) en blockchain
-
Los algoritmos de consenso más utilizados en blockchain
-
Cómo funcionan los contratos inteligentes en un sistema blockchain
¿Qué es Blockchain?
En la definición generalmente aceptada, blockchain es un subconjunto de la tecnología de libro mayor distribuido (DLT). Desglosando DLT, obtenemos distribuida mediante la creación de una red peer-to-peer de nodos, que son ordenadores; juntos forman una red distribuida(Figura 1-1). Cada nodo procesa las transacciones enviadas por los clientes. Estas transacciones se convierten en registros comprometidos -llamados el libro mayor- de una base de datos replicada en todos los nodos. Este libro de contabilidad es inmutable, y los registros se agrupan en bloques.
Cada nodo mantiene una copia de este libro de contabilidad inmutable, normalmente implementado como un archivo o una base de datos de sólo anexos. Blockchain se basa en el empleo de firmas digitales y consenso para consignar registros. La mayoría de las DLT no utilizan el consenso; en su lugar, las DLT sólo requieren la presencia de firmas digitales para consignar los registros. No hay consenso, sólo transacciones firmadas digitalmente.
Los registros se consignan en el libro mayor inmutable . En esta base de datos de sólo apéndices, cada registro está ordenado en el tiempo, y cada bloque de registros está vinculado criptográficamente al bloque comprometido anterior. Cada bloque contiene metadatos adicionales junto con el código hash del bloque anterior y un conjunto de registros comprometidos. Los registros suelen representarse mediante un árbol hash conocido como árbol de Merkle(Figura 1-2).
Esto te da una idea general de lo que es blockchain. Pero podemos empezar a ganar en claridad cuando examinemos su origen, su arquitectura y sus componentes. El origen explica por qué las definiciones divergen. La arquitectura de blockchain es el aspecto más fácil de comprender porque es el más concreto de los temas y proporciona una visión holística. Los componentes son un conjunto de tecnologías heredadas y conceptos lógicos, cada uno de los cuales puede entenderse por separado. Examinando los componentes, podemos construir una base sólida para dominar las habilidades necesarias para desarrollar contratos inteligentes y aplicaciones blockchain. Comprende que la tecnología blockchain se basa en tecnologías heredadas como las firmas digitales, las redes entre iguales y décadas de trabajo previo.
De naturaleza sinérgica, blockchain surge cuando varias tecnologías heredadas se unen como un sistema único, complejo e integrado que realiza la tarea fundamental de ejecutar transacciones. Muchos, al hablar de blockchain, la ven como una base de datos. Otros la ven como un procesador de transacciones. Otros lo ven como una utopía descentralizada libre de cualquier control central y una forma de reestructurar la sociedad. Blockchain es todo esto y más. Por desgracia, este paradigma es la razón por la que puede resultar difícil comprender el concepto fundamental de blockchain.
Normalmente, las nuevas tecnologías o invenciones se definen por un único propósito o una solución bien entendida a un problema. Por ejemplo, el concepto de bases de datos NoSQL es fácil de entender. Incluso las redes definidas por software son fáciles de imaginar y definir.
Muchos intentan entender blockchain equiparándola a Bitcoin, la criptomoneda que emplea la tecnología blockchain. Esto ocurre porque la tecnología blockchain es el mecanismo subyacente que facilita el funcionamiento de Bitcoin, y por tanto se consideran uno. Debes entender que Bitcoin es una aplicación que utiliza la tecnología blockchain. El caso de uso de Bitcoin es un intercambio financiero entre iguales. Para entender la cadena de bloques, la desglosaremos en componentes discretos. Luego podrás combinarlos e imaginar soluciones a los problemas que quieras resolver.
Origen de Blockchain
La mayoría de la gente fecha el nacimiento de blockchain con el inicio de Bitcoin -más concretamente, con el documento Bitcoin escrito por Satoshi Nakamoto y publicado en 2008. ¿Quién es Satoshi Nakamoto? Nadie lo sabe, porque nunca se ha dado a conocer públicamente. Podría ser una persona, un grupo, una empresa o una agencia gubernamental, como la Agencia de Seguridad Nacional estadounidense (NSA). En cualquier caso, Nakamoto sigue siendo un misterio.
Hay quien afirma ser Nakamoto, pero nunca se ha presentado ninguna prueba concreta. Por lo tanto, Nakamoto sigue siendo una figura desconocida.
En el documento de Nakamoto, "Bitcoin: Un sistema de dinero electrónico entre iguales", no encontrarás el término cadena de bloques o cadena de bloques. Lo más parecido que encontrarás es cadena de bloques. Debes ir a la línea de código 596 en main.h para encontrar la primera instancia del término cadena de bloques.
Satoshi citó ocho artículos, entre ellos "How to Time-Stamp a Digital Document" de Stuart Haber y W. Scott Stornetta, que contiene la frase cadena de sellos de tiempo. Esto, sin duda, sirvió de inspiración sobre cómo enlazar bloques de transacciones en el diseño de Bitcoin. Otros documentos citados deben haber influido en el diseño. El primero fue "Protocols for Public Key Cryptosystems" de Ralph C. Merkle, famoso por el árbol de Merkle (ver Figura 1-2), una estructura de datos criptográfica en forma de árbol hash muy utilizada en blockchain. El otro artículo de gran influencia fue "b-money" de Wei Dai, en el que sin duda se pensó mientras se diseñaba Bitcoin para que fuera una criptomoneda digital para su uso como intercambio de valor entre iguales.
La revolución Blockchain
Bitcoin fue la chispa que encendió la revolución de la cadena de bloques, pero no su combustible. También generó una subcultura en torno a Bitcoin con fuertes creencias y sentido de la propiedad. Esta comunidad dispersa y federada, unida por la creencia común de que "blockchain sólo es sin permisos", se apropió inmediatamente de Bitcoin y lo reprodujo en cientos de encarnaciones. Algunas eran idénticas y otras divergentes, pero todas se unían en una tesis común que representaba la visión anarquista de un nuevo mundo posible con Bitcoin.
Blockchain 2.0
Antes de Bitcoin, Adam Back, conocido por Hashcash, escribió sobre un sistema de prueba de trabajo utilizado para evitar el spam de correo electrónico en 2002. Nick Szabo desarrolló los términos contratos inteligentes en 1997 y bit gold en 2005, que muchos consideran los precursores de Bitcoin. Ya en 1982, David Chaum, llamado el inventor del dinero digital e inventor de las firmas ciegas, trabajaba en el dinero electrónico. El concepto de blockchain tiene una rica historia y se desarrolló plenamente en 2013 en el "Ethereum Whitepaper" de Vitalik Buterin en lo que hoy consideramos Blockchain 2.0.
Antes del libro blanco de Ethereum, teníamos Blockchain 1.0, que impulsa Bitcoin y representa la tecnología blockchain sin el concepto de contrato inteligente. En Blockchain 2.0, tenemos la tecnología del contrato inteligente, que Buterin expresó en su libro blanco. Facilita transacciones ricas mucho más allá de la capacidad de Bitcoin, una plataforma para el simple intercambio de valor. Con la capacidad de los contratos inteligentes, es posible la ejecución inteligente de transacciones complejas. Es Blockchain 2.0 lo que inició la revolución de blockchain, la evolución de blockchain y la atracción de organizaciones empresariales como IBM, Intel, Oracle, Amazon, Microsoft y muchas otras, con una lista que se amplía exponencialmente cada día.
En 2015, después de que Ethereum se convirtiera en la primera plataforma de Blockchain 2.0 en implementar un libro mayor único, las empresas vieron el potencial de Blockchain 2.0. En diciembre de 2015, la Fundación Linux anunció la creación del proyecto Hyperledger.
Cubrimos el proyecto Hyperledger en la Parte II, que contiene dos capítulos. Uno cubre los proyectos y herramientas, y el otro la arquitectura y componentes de Hyperledger Fabric. Estos dos capítulos proporcionan los conocimientos que necesitarás para la Parte III, que cubre el desarrollo, la invocación, el mantenimiento y las pruebas de los contratos inteligentes. En la siguiente sección, tratamos, a alto nivel, los numerosos componentes de blockchain.
Componentes básicos de Blockchain
Blockchain no es una única compilación de código fuente. Puede tener un ejecutable común, pero tanto los componentes lógicos como los físicos trabajan juntos para formar una cadena de bloques que funcione. Esta separación de componentes lógicos y físicos puede contribuir a crear la confusión que se observa al hablar de la tecnología blockchain, junto con el hecho de que blockchain es más un concepto que una implementación. Las implementaciones del concepto están evolucionando rápidamente y seguirán cambiando y modificándose a medida que más y más tecnólogos y empresarios se adentren en el mundo de la cadena de bloques.
Los componentes comunes forman el concepto central de blockchain. El primero es la red descentralizada. El segundo es la criptografía. El tercero es un libro de contabilidad inmutable. El cuarto es el consenso. Y quinto son los contratos inteligentes. Estos cinco elementos forman los componentes básicos necesarios para crear el concepto de blockchain. La forma de implementarlos evolucionará a medida que se desarrollen nuevos métodos y algoritmos con el tiempo.
Los componentes que decidas utilizar darán forma a tu panorama blockchain y crearán un rico ecosistema de soluciones innovadoras a problemas nuevos y existentes. No hay reglas.
Red descentralizada
Una cadena de bloques emplea una red descentralizada (representada anteriormente en la Figura 1-1). Las cadenas de bloques públicas permiten participar a cualquiera, mientras que las cadenas de bloques privadas imponen la afiliación, y sólo las partes con una afiliación válida pueden participar en la cadena de bloques.
Hoy en día existen dos tipos de cadenas de bloques universalmente aceptadas : con permiso y sin permiso. Una blockchain con permiso requiere que una autoridad gestora de la blockchain inscriba y conceda la membresía para participar. La parte inscrita puede tener derechos de sólo lectura, o sólo escritura, o lectura y escritura. Hyperledger Fabric es una cadena de bloques privada con permiso.
Una blockchain sin permisos no tiene autoridad central, y cualquiera puede participar. Pueden leer y escribir en la cadena de bloques.
La red puede ser interna o externa, o una combinación de ambas. La red puede ser autónoma o abarcar todo el mundo. Hoy pensamos en redes descentralizadas formadas por nodos cuando consideramos la cadena de bloques. Cualquier debate, conferencia o presentación sobre blockchain te dirá que una blockchain debe tener una red descentralizada de nodos. Dependiendo del ponente y del público al que se dirija, el mensaje estará sesgado hacia redes abiertas, cerradas o híbridas, pero siempre son descentralizadas.
Criptografía
La criptografía es la sangre de la cadena de bloques. Es el arte de crear y guardar secretos. Desde la antigüedad, la gente ha necesitado crear secretos y enviar mensajes secretos. Hoy en día se utilizan complejos algoritmos matemáticos para crear secretos. Para enviar los mensajes secretos, se utilizan protocolos, que son reglas para conectar y comunicar los mensajes entre las partes. Sin criptografía, no existe blockchain ni DLT. El uso principal de la criptografía es para el cifrado, las claves, el hash, las firmas, la integridad, la prueba y la resistencia a la manipulación.
Firmas digitales
Las firmas digitales emplean criptografía asimétrica, que emplea una clave privada y otra pública. Las claves son cadenas de bits generadas de forma pseudoaleatoria. La clave privada nunca se revela y se mantiene secreta. La clave pública, sin embargo, se revela y se distribuye al público o a una parte designada. Los algoritmos de firma digital utilizan la clave privada para encriptar un texto. El texto cifrado sólo puede ser descifrado por la clave pública. Como las claves privada y pública son un par, funcionan juntas y facilitan la creación del concepto de firma digital.
Las firmas digitales tienen tres usos principales. El primero es para la autenticación. Cuando alguien firma una transacción de blockchain con una clave privada, el receptor puede autenticar a la parte que firmó la transacción utilizando la clave pública de dicha parte.
El segundo uso principal es la integridad. Cuando se firma un mensaje en , cualquier cambio en el mensaje invalidará la firma, y la parte receptora sabrá que el mensaje ha sido manipulado.
El tercer uso importante de es el no repudio. Cuando una parte firma una transacción y la envía, no puede intentar posteriormente alegar que no la envió, porque su firma puede verificarse en la transacción enviada. Sólo pueden alegar que les robaron la firma, pero esto también puede demostrarse que no es cierto empleando firmas adicionales que pertenezcan al dispositivo utilizado para enviar la transacción, incluida una marca de tiempo y posibles metadatos que designen la ubicación.
Funciones hash
Una función hash es una función criptográfica unidireccional . La función recibe datos como argumento, realiza una tarea criptográfica y, a continuación, produce una cadena única para los datos de entrada. Si cambia un bit de los datos de entrada, cambiará la cadena de salida. Si no cambia ningún bit, la función hash producirá siempre la misma cadena de salida.
Utilizar una función hash en blockchain significa que no puedes cambiar los datos, o el resultado no coincidirá con lo registrado. Al enlazar los resultados hash en un árbol de Merkle, se pueden enlazar grandes cantidades de registros y almacenarlos en un bloque. Los bloques se convierten en hash, y el hash del bloque anterior forma parte del bloque siguiente, creando la cadena inmutable de bloques.
El árbol de Merkle es una estructura de árbol hash en la que los nodos se juntan sucesivamente hasta que se crea un único nodo. Este único nodo proporciona la integridad de todo el árbol. Los nodos inferiores se pueden volver a hashear y verificar la integridad de los datos.
Existen varios algoritmos hash seguros, pero SHA-256 y SHA-3 son los principales utilizados en blockchain.
Cartera
Las claves privadas y públicas son muy utilizadas en las cadenas de bloques. Las claves privadas se utilizan para firmar transacciones y representan los secretos que quieres asegurar y proteger. Colocas tus claves en un monedero digital, igual que colocas tus tarjetas de crédito en tu monedero físico. Puedes tener un monedero para cada cadena de bloques, o monederos distintos para diferentes aplicaciones. Los monederos son contenedores de tus claves. Las aseguran, las gestionan y pueden facilitar la función de firmar.
La funcionalidad de los monederos está creciendo, y cada vez son más sofisticados. Hay monederos físicos que se conectan a tu USB y mantienen tus claves seguras en un enclave de hardware, y monederos de software que pueden existir en tus ordenadores o en la nube. A medida que pase el tiempo, las funciones y características de los monederos seguirán creciendo y ampliándose.
Consenso
El concepto de confianza es el corazón de blockchain. El consenso es el mecanismo que facilita el aspecto utópico de la cadena de bloques al proporcionar un medio para que partes dispares realicen transacciones sin la confianza necesaria que proporcionan los intermediarios que prevalecen en los sistemas transaccionales actuales.
Otra forma de pensar en el consenso es la siguiente: cada vez que utilizas tu tarjeta de crédito, intervienen varios intermediarios, cada uno de los cuales realiza una función específica y cobra una comisión, que tú estás pagando además del importe de tu compra. Puede que no veas las comisiones, pero están incorporadas a la transacción de forma implícita o explícita, y las estás pagando. En blockchain, el mecanismo de consenso realiza esta función de confianza, sin intermediarios.
El consenso tiene muchas implementaciones. Cada una está diseñada para proporcionar confianza basada en la probabilidad. Esta probabilidad es una función del acuerdo. El acuerdo completo es difícil de alcanzar y requiere mucho tiempo y recursos, mientras que el acuerdo parcial es más rápido y requiere menos recursos, pero es arriesgado. Cuánto riesgo es tolerable depende de la gobernanza de la cadena de bloques y determina los atributos del mecanismo de consenso utilizado para llegar a un acuerdo. Rara vez, o nunca, la probabilidad de acuerdo puede ser 1, o 100%, y a menudo menos del 100% es aceptable.
Existen muchos algoritmos de consenso, y continuamente se diseñan nuevos algoritmos. Debes comprender cuatro: prueba de trabajo, prueba de participación, tolerancia práctica bizantina a fallos y prueba de tiempo transcurrido.
PoW
La prueba detrabajo(PoW) es un algoritmo de consenso utilizado en Bitcoin y Ethereum (ten en cuenta que Ethereum está pasando a la prueba de participación). Este algoritmo de consenso se basa en la energía mediante la resolución de un puzzle criptográfico. La energía está representada por el hashrate, que es el número de hashes generados por segundo. Para generar un hash se necesita una cantidad finita de energía. Esta energía es la electricidad utilizada para producir un hash. Cuantos más hashes se produzcan, más energía se necesitará. El coste de la energía es crítico para el número de hashes que se pueden producir. El puzzle consiste en encontrar una entrada que produzca un número hash con un número determinado de ceros a la izquierda. La complejidad o el tiempo medio de resolución se controla designando el número de ceros a la izquierda.
Para Bitcoin, el número de ceros a la izquierda se ajusta para mantener el tiempo de resolución en torno a 10 minutos. Dependiendo de cuántos mineros estén haciendo hash, este número variará hacia arriba o hacia abajo. Este modelo de consenso depende de la energía, porque los mineros que gastan más energía tienen más posibilidades de encontrar la entrada ganadora y, por tanto, son recompensados con Bitcoin y consiguen confirmar el bloque actual.
PdS
La prueba de participación(PoS) es un algoritmo de consenso que depende tanto de la aleatoriedad como de la participación en la blockchain. Existen varios algoritmos de PoS, pero la mayoría emplean rutinas para generar un número aleatorio a partir de ciertos criterios, como la cantidad de monedas que se poseen o la antigüedad de las mismas. El número aleatorio generado más bajo o más alto gana y consigue comprometer el bloque actual y recibir una recompensa. Una vez que un participante gana, su criterio de apuesta vuelve a cero; esto le elimina de hecho para la siguiente ronda.
PBFT
La tolerancia a fallos bizantina práctica(PBFT) es un algoritmo de consenso que data de 1999. PBFT es un algoritmo sin bifurcaciones basado en líderes. Requiere que todos los nodos estén conectados a todos los demás nodos. Todos los nodos son conocidos, y el algoritmo no permite que nodos aleatorios se unan al grupo paritario. El algoritmo admite el fallo de hasta un tercio de los nodos. Mientras no falle más de un tercio de los nodos, se puede alcanzar el consenso.
Poeta
La prueba del tiempo transcurrido(PoET) es un algoritmo de consenso que utiliza un entorno de ejecución de confianza (TEE). En este algoritmo, se seleccionan pares aleatorios para ejecutar solicitudes a un ritmo predeterminado. Los pares seleccionados muestrean una variable aleatoria distribuida exponencialmente. Esperan a que pase un tiempo, determinado por la muestra, y el par con la muestra más pequeña gana la elección y consigue comprometer el bloque.
Contratos inteligentes
Las aplicaciones blockchain se segmentan en cliente, contrato inteligente y blockchain. El cliente es el frontend con el que interactúa un usuario, humano o máquina, para firmar y enviar transacciones. El envío va a un nodo designado, o peer, que acepta las transacciones y las envía al contrato inteligente. El contrato inteligente ejecuta la transacción conjuntamente con la cadena de bloques. Esta interacción entre el contrato inteligente y la blockchain incorpora una API que el contrato inteligente utiliza para realizar funciones específicas expuestas por la blockchain (por ejemplo, leer o insertar).
En realidad, un contrato inteligente no puede ejecutar muchas funciones contra la cadena de bloques porque ésta es un libro de contabilidad inmutable . Un contrato inteligente puede añadir o leer datos, pero actualizar datos es realmente una función de añadir datos que cambia el estado actual. No puede borrar datos, aunque pueda ejecutar una API para borrar datos. El borrado es un cambio de estado. Este borrado haría que una lectura no devolviera ningún dato, pero los datos están ahí.
Los datos pueden auditarse utilizando una aplicación especial llamada explorador de blockchain. Este programa especial lee el libro mayor inmutable en el nivel más bajo, rastreando efectivamente la estructura de datos de los bloques y leyendo los datos registrados. Un contrato inteligente también puede hacer esto, pero no sería un caso de uso típico.
Un contrato inteligente se utiliza mejor para leer el estado actual, realizar una lógica sobre el estado y actualizar (añadir) el estado. Recuerda que el libro mayor de la cadena de bloques es una lista enlazada inmutable de datos registrados. Esos datos representan el estado. Así que la cadena de bloques es en realidad un libro de contabilidad de transiciones de estado, un diario de registros inmutables. Esto es extremadamente potente. Los clientes del contrato inteligente suelen realizar la lógica a nivel de aplicación y presentar la UX. Los clientes no sólo actúan como interfaz del contrato inteligente, sino que, en muchos sentidos, representan la aplicación para el usuario.
Lo que hay que recordar sobre el contrato inteligente es que en realidad no es tan inteligente. Se sitúa entre el cliente y la cadena de bloques. En realidad, esto es bueno, porque no quieres que el contrato inteligente trabaje tanto.
No quieres hacer muchos viajes de ida y vuelta entre el cliente y el libro mayor; por ejemplo, mil lecturas para rellenar una lista. Quieres decirle al contrato inteligente que lea mil estados y los envíe a tu cliente. Esto ejecuta una única llamada al contrato inteligente, un recurso caro, y el contrato inteligente puede potencialmente hacer una lectura masiva en el libro mayor.
La interfaz típica es asíncrona, así que tenlo en cuenta y utiliza tus devoluciones de llamada de forma eficaz. Intenta dar al usuario la percepción de que se está realizando mucho trabajo, cuando en realidad, la blockchain es una tortuga, no un conejo como las bases de datos con las que crecimos. Utilizados sabiamente, los contratos inteligentes son instrumentos poderosos; pueden trabajar a tu favor o en tu contra, así que piensa en cómo los estás utilizando. Como desarrollador de contratos inteligentes, siempre debes tener en mente a tu cliente y apoyarle con la API más eficiente, basándote en lo que hemos discutido.
Arquitectura Blockchain
La arquitectura de una cadena de bloques consiste en una red descentralizada y distribuida de nodos. Cada nodo aloja una copia de , el libro mayor inmutable. El libro mayor inmutable es un conjunto criptográficamente vinculado de bloques que sólo se pueden añadir. Los nodos ejecutan transacciones y consensos para añadir bloques al libro mayor. Los clientes firman las transacciones y las envían a los nodos. Los nodos envían las transacciones validadas a los contratos inteligentes para su ejecución. Las transacciones ejecutadas se ordenan y se colocan en bloques. Los bloques se añaden a la cadena de bloques. El diseño básico de una cadena de bloques consiste en bloques, cadenas y una red.
Nodos
Los ordenadores se llaman nodos porque del papel que desempeñan en la creación de la red distribuida. Pueden ser máquinas virtuales en la nube alojadas en servidores físicos. Pueden ser ordenadores portátiles que participan en redes distribuidas. Pueden ser dispositivos del Internet de las Cosas que operan en redes industriales descentralizadas. Incluso pueden ser bombillas inteligentes. Nodo es un término general que representa un punto final en una red. La red puede ser alámbrica o inalámbrica. Otro nombre para un nodo es peer, como en las redes peer-to-peer, que están diseñadas para aplicaciones descentralizadas.
En la cadena de bloques Hyperledger Fabric , encontrarás ambos términos. En Hyperledger Fabric, el término peer representa un nodo informático que ejecuta la aprobación y el compromiso de las transacciones de y aloja un libro de contabilidad inmutable. En Bitcoin, los nodos son mineros y, al igual que los pares de Hyperledger Fabric, comprometen transacciones en el libro de contabilidad.
Bloquea
Los bloques contienen los registros de las transacciones enviadas y comprometidas. Cada bloque también contiene una cabecera, una marca de tiempo y el hash del bloque anterior. El primer bloque, llamado el bloque génesis, contiene información adicional que describe la cadena de bloques, como las políticas. Si se trata de una cadena de bloques con permisos, como Hyperledger Fabric, el bloque de génesis contendrá una lista de organizaciones miembro y sus certificados , así como información sobre la política que describe el número de organizaciones que deben avalar las transacciones. También contendrá la identidad del nodo ordenante responsable de ordenar la transacción y crear los bloques que los pares añaden a la cadena de bloques.
El bloque contiene datos adicionales que se utilizan para enlazar los bloques entre sí y proporcionar restricciones de integridad, impidiendo cualquier posibilidad de manipular los datos contenidos en el bloque. Los bloques se enlazan entre sí, y este enlace de bloques es el responsable del término blockchain.
La criptografía se utiliza para crear y mantener la estructura de datos y el enlace de la cadena de bloques. El bloque es a prueba de manipulaciones gracias al uso de la criptografía.
Los bloques juntos representan el libro de contabilidad inmutable , y muchos se refieren a ellos como la base de datos de la cadena de bloques. Los bloques se añaden al último bloque creado. Con el tiempo, este proceso de adición crea una gran estructura de datos que debe gestionarse. Se utilizan otras estructuras de datos, como los grafos, que no son lineales y crean estructuras de datos similares a redes. Los datos de una transacción no siempre se almacenan en el bloque y pueden alojarse en un almacén de datos tradicional, como archivos o la tecnología de bases de datos existente.
Cadenas
Las cadenas son una lista enlazada de bloques. Son inmutables y sólo se pueden añadir. Una arquitectura de cadena de bloques puede tener una o varias cadenas. Las cadenas pueden crecer hasta una longitud o número de bloques infinito. Esto puede evitarse o gestionarse mediante la poda, pero la poda tiene efectos secundarios que reducen la confianza en la red blockchain y eliminan la capacidad de explorar y auditar toda la cadena. Esto puede reducir la integridad de la cadena.
Canales
Cada cadena de bloques en Hyperledger Fabric se denomina canal, que es un consorcio de organizaciones que colaboran para ejecutar transacciones relacionadas con un propósito específico. Las organizaciones de Hyperledger Fabric pueden pertenecer a varios canales. Bitcoin y Ethereum utilizan una única blockchain principal y múltiples blockchains con fines de prueba.
Tecnología y conceptos de apoyo
Más allá de los componentes (red descentralizada, criptografía, libro mayor inmutable, consenso y contratos inteligentes), necesitas entender, o al menos conocer, muchos conceptos y tecnologías de apoyo para desarrollar una base sólida que te permita comprender blockchain. Vamos a presentar cada uno de estos conceptos y tecnologías de apoyo para que luego puedas profundizar en tu investigación y avanzar en tus conocimientos a lo largo de tu viaje por el blockchain.
DLT
La tecnología de libro mayor distribuido es la base de la cadena de bloques. Con DLT, sólo utilizas firmas digitales y no utilizas el consenso, porque quieres escala y alto rendimiento. Es el consenso lo que crea la alta latencia y los límites de escala en blockchain. Por eso las DLT como Corda son tan populares en los sectores financiero y de seguros. Cuando tienes semiconfianza entre los participantes, como en los seguros y la banca, puedes imponer la remediación basándote en firmas digitales; puedes utilizar DLT. Pero cuando necesitas un mecanismo de confianza para hacer cumplir la integridad entre los participantes, como en las cadenas de suministro, quieres blockchain porque el mecanismo de consenso proporciona este nivel de garantía y confianza.
Descentralización
Blockchain es una tecnología descentralizada. El libro de contabilidad está alojado en una red de nodos entre iguales que forman la red descentralizada. La eliminación de un punto de control central es lo que crea el concepto de descentralización. Es la capacidad de delegar el control en todos los nodos que colaboran, para ejecutar el objetivo de la red, lo que da poder a blockchain. Este control delegado y la colaboración proporcionan los medios para realizar el consenso sin que una autoridad central influya en el resultado.
Entre iguales
Las redes Blockchain son redes entre iguales. La red está diseñada para ser descentralizada. En una red descentralizada no existe ningún control central , y cada par (o nodo) está conectado a uno o más pares (o nodos) de la red. Los pares cooperan para enviar y reenviar mensajes en la red. El uso de protocolos amigables con los pares, como Gossip, permite la rápida replicación de mensajes entre numerosos pares de una red. Esto permite que millones de iguales reciban mensajes en cuestión de segundos. Una red descentralizada entre iguales facilita la capacidad de mantener copias de un libro de contabilidad blockchain.
Inmutabilidad
El concepto de inmutabilidad, que significa no modificable, o a prueba de manipulaciones, es fundamental para blockchain, porque es el principal atributo del libro de contabilidad. La confianza se crea a partir del concepto y la implementación de la inmutabilidad. Saber que las transacciones ordenadas en el tiempo son inmutables permite a las partes crear confianza y finalidad.
Identidad
La cadena de bloques y los contratos inteligentes necesitan identidades para funcionar. Las identidades representan a las entidades (humanos y máquinas) que participan en la ejecución de transacciones de contratos inteligentes y en la administración de la blockchain. Para las cadenas de bloques empresariales, las organizaciones que son miembros inscriben identidades para que las representen y realicen transacciones en nombre de la organización. A las identidades se les asignan claves privadas y públicas para la firma digital y el cifrado de datos. Las firmas digitales autentifican las identidades y las autorizan a realizar transacciones.
Cuentas
El concepto de cuentas en blockchain nos permite desempeñar diversos roles y ejecutar multitud de funciones para una única identidad. Una cuenta es un registro de atributos que definen derechos específicos de acceso y autorización para realizar transacciones en activos que pertenecen a la cuenta o son gestionados por ella. Los roles se crean y asignan a una cuenta. El rol define un conjunto de permisos asignados a una cuenta. A las identidades se les concede un rol, que permite a la identidad realizar acciones contra la cuenta permitidas por un rol. Esto significa que no necesitamos crear y gestionar una identidad para cada cuenta con permiso para ejecutar transacciones en una cadena de bloques. Las cuentas nos permiten dividir los roles y permisos disponibles para una o más identidades. Las cuentas pueden mantener varias formas de estado y realizar transacciones como una entidad de confianza en la cadena de bloques.
SDK
Un kit de desarrollo de software(SDK) se utiliza para integrar o desarrollar software para una cadena de bloques . La mayoría de los desarrolladores están familiarizados con este componente porque muchas aplicaciones proporcionan un SDK para desarrollar software para su aplicación. Blockchain no es diferente; la mayoría de las plataformas blockchain proporcionan uno o más SDK, cada uno dirigido a un lenguaje de programación y a un componente específico de la plataforma. Hay varios SDK disponibles para Hyperledger Fabric, como JavaScript, Java y Go, para desarrollar aplicaciones de cadena de bloques Fabric.
API
Una interfaz de programación de aplicaciones(API) es un contrato de software entre la aplicación y el cliente, expresado como una colección de métodos o funciones. La API puede implementarse con un SDK o como una interfaz RESTful. Define las funciones disponibles que puedes ejecutar. Algunas API tienen cientos de métodos o funciones a los que puedes llamar para ejecutar diversas transacciones. Otras pueden tener menos de una docena y dirigirse a un conjunto muy estrecho y específico de funciones de la aplicación.
La API es la interfaz intermediaria entre el cliente y la aplicación. Debe gestionarse bien y soportar la evolución continua del ciclo de vida de la aplicación. El control de versiones se utiliza a menudo para controlar y facilitar la migración a funciones nuevas o obsoletas.
Blockchain es una aplicación y tiene una API. Es la API que los contratos inteligentes incrustan y exponen a los clientes. La API incrustada y la API expuesta no son el mismo intermediario. La API expuesta está destinada a los clientes de la instalación de contratos inteligentes de la cadena de bloques, mientras que la API incrustada es un contrato interno entre la instalación de contratos inteligentes y el software central de la cadena de bloques responsable del funcionamiento del nodo, o peer. La instalación de contratos inteligentes puede estar alojada o no en el nodo o par.
Transacciones
Los clientes envían transacciones. Estas transacciones de son procesadas por los nodos, o pares, y, si se aceptan, se registran en un bloque que se añade a la cadena de bloques (o blockchain). Las transacciones pueden ser cualquier cosa, desde una actualización de datos sobre un activo hasta el pago de un servicio o la compra de un producto. Pueden ser simplemente el registro de información que representa un estado conocido o la ejecución de una acción. Las transacciones pueden proceder de clientes humanos o de clientes máquina. Las transacciones en blockchain siempre tienen un sello de tiempo y están ordenadas. Son inmutables y no pueden manipularse. Las transacciones se firman con una clave privada cuando se envían a para su procesamiento y pueden autenticarse en función del permiso de blockchain para el envío de transacciones.
Incentivos
Rara vez se habla de incentivos en blockchain, y esto dificulta el éxito de muchos proyectos de blockchain. Se necesita un incentivo fuerte para crear el comportamiento necesario para tener éxito en blockchain. Los mineros de Bitcoin saben lo que es un incentivo porque es lo que les impulsa a minar. Como resultado, ejecutan transacciones para los clientes y mantienen la blockchain inmutable y de confianza que facilita el intercambio de valor que los clientes pretenden realizar por una pequeña comisión. Su incentivo es una recompensa si consiguen resolver un enigma criptográfico. La recompensa es una cuantiosa subvención monetaria representada en Bitcoin.
Para las cadenas de bloques en la empresa, ha habido poco o ningún incentivo en la línea de Bitcoin o Ethereum. La ausencia de incentivos ha sido una de las principales razones del fracaso de muchos proyectos. Sin un incentivo fuerte, los socios externos tienen pocas razones para entusiasmarse con la idea de cambiar sus procesos empresariales maduros. Sólo ven costes y riesgos añadidos. El modelado financiero, si se hace, no es suficiente para convencerles de que es una forma mejor y más eficaz de ejecutar los procesos empresariales realizados.
Privacidad
Mantener en privado los datos y la identidad de los participantes en una transacción es una de las principales preocupaciones de blockchain. La capacidad de revelar selectivamente y operar con datos que no pueden exponerse es fundamental para el avance de blockchain. Cuando varias partes necesitan realizar transacciones e intercambiar información, deben respetar la privacidad de los datos. Del mismo modo, cuando partes específicas quieren datos necesarios para ejecutar su parte de una transacción compleja, esos datos deben mantenerse privados.
Hasta hace poco, un punto débil de la cadena de bloques era la incapacidad de mezclar distintos niveles de privacidad en transacciones complejas. Hyperledger Fabric v2 admite la capacidad de realizar transacciones con datos privados. Dentro de Hyperledger, se está trabajando en las pruebas de conocimiento cero (ZKP). Esta criptografía facilita la capacidad de probar hechos sin revelar el material fuente utilizado para determinar un hecho. Piensa en verificar una edad sin presentar la documentación que la prueba. Esto es poderoso porque permitirá transacciones que protejan la privacidad de las partes de la transacción. Como blockchain es un libro de contabilidad vinculado y las claves pueden representar partes o direcciones, es posible construir perfiles que revelen suficiente información como para que pueda reducir la privacidad que una parte cree poseer. Esto ocurre con Bitcoin y Ethereum.
Estado
Blockchain tiene historia, pero es el estado que más a menudo deseamos. Ser un libro de contabilidad inmutable de transiciones de estado a lo largo del tiempo es para lo que se ha construido blockchain. Pero cuando ponemos blockchain en uso, descubrimos que es el estado actual el que manifiesta su poder. Creemos en el estado porque sabemos que se ha ganado con esfuerzo, pasando por una serie de validaciones y pruebas criptográficas. Disfrutamos sabiendo que es a prueba de manipulaciones, lo que añade aún más valor al estado.
Pero el estado es , no la historia. La cadena de bloques tiene el historial, pero nos damos cuenta de que acceder a ese historial es caro y no es algo para lo que la cadena de bloques sea realmente buena, es decir, a escala. Porque a escala, se trata de capturar el estado, llegar a un consenso y comprometerlo. Hemos aprendido a mantener el estado fresco y en caché, y a guardar el historial en una base de datos tradicional. Si necesitamos probar la historia, podemos recorrer el libro mayor y probar la historia. Pero la historia es la historia. El estado es lo que importa. Tomas tu decisión basándote en el estado. El estado puede ser un registro continuo: por ejemplo, las ventas hasta la fecha. No necesitas ejecutar esos informes para obtener el estado.
Esto supone un cambio radical y un enorme impulso a la productividad. Blockchain cambiará el mundo porque el mundo conocerá el estado actual, ahora, no mañana, o al final de la semana o del trimestre. La capacidad de mantener un estado preciso y fiable es una poderosa herramienta que los desarrolladores de contratos inteligentes deben aprovechar y explotar para capacitar a los responsables de la toma de decisiones, ya sean humanos o máquinas.
Turing Completo
La adición del concepto de Turing completo a blockchain fue un punto de inflexión para la separación de blockchain de Bitcoin. Convirtió a blockchain en un motor transaccional inteligente para el siglo XXI. Los contratos inteligentes necesitan ser Turing completos y deterministas para alcanzar la finalidad. Ser deterministas les permite ser descentralizados y escalables. Las capacidades completas de Turing y deterministas permiten que los mecanismos de consenso realicen la función de intermediarios, proporcionando un medio para llegar a un acuerdo sobre el estado y la finalidad.
Gas
Ethereum emplea el concepto de gas. Esto significa que pagas por computar, y las tarifas por computar se calculan en en función de las instrucciones que ejecutas. Este concepto no es nuevo; los mainframes cobraban a los usuarios por computar, y calculaban las tarifas en función del tiempo de CPU. En el mundo de la web, es un coste explícito. Todos pagamos tasas por computar, pero no podemos cuantificarlas debido a las capas de acceso y recursos utilizados. Lo más cerca que podemos estar del modelo del gas es el servicio de computación en la nube de Amazon Web Services (AWS), que cobra por recurso y tiempo de uso. AWS es mucho más grosero que el modelo de costes granular de Ethereum.
La volatilidad del éter y de todas las criptomonedas es problemática para intentar presupuestar y lanzar aplicaciones en la plataforma Ethereum. Con AWS, la moneda son los dólares, por lo que tienes una expectativa razonable de tus costes a largo plazo para lanzar y presupuestar los recursos necesarios para hacer funcionar tu aplicación. Tus costes no varían de un día para otro, y mucho menos de un minuto para otro, como en Ethereum.
Además del coste del gas, estás utilizando un recurso compartido y, por tanto, compites directamente con otros que quieren ejecutar su aplicación y pagarán más por la oportunidad. Esto puede llevar a una situación en la que puede que nunca consigas que se ejecuten tus transacciones o que no lo consigas en el periodo de tiempo necesario para lograr tu objetivo.
Fichas
La mayoría equiparará los tokens a la criptodivisa , pero están evolucionando y seguirán evolucionando a medida que se alejen cada vez más de las comunidades Bitcoin y Altcoin. Un token es un vale digital que se puede intercambiar. Los tokens se pueden clasificar en tipos.
El primero es la criptomoneda, el primer token de blockchain. Ten en cuenta que los tokens criptográficos existen desde hace mucho tiempo y se han utilizado para diversos fines, como la identidad y los metadatos. El token más reciente, un derivado de la criptomoneda, se denomina moneda estable. Se llama moneda estable en porque su valor simbólico está diseñado para igualar el valor simbólico de otro token, moneda o activo que no muestre grandes fluctuaciones de valor. El término vinculado representa esta relación de valor entre la moneda estable y la otra ficha, moneda o activo, cuyo valor la ficha estable está diseñada para reflejar. Por ejemplo, las monedas estables vinculadas al dólar estadounidense se valoran en un dólar más o menos un cambio de valor muy pequeño del orden de centésimas o milésimas de dólar en cualquier momento. Las monedas estables fueron promovidas por Goldman Sachs y Circle para crear estabilidad en la criptomoneda y ofrecer un medio para que las empresas establecidas exploren la criptomoneda.
Los criptotokens, en el mundo de blockchain, se clasifican en criptodivisas, tokens de seguridad y tokens de utilidad. Encontrarás una variedad de otros nombres, pero debes centrarte en los tokens de seguridad y utilidad.
Los tokens de seguridad se venden a los inversores de a través de diversos medios, como las ofertas iniciales de monedas (ICO) y las ofertas de tokens de seguridad (STO). Los tokens de seguridad se consideran valores, que están regulados por la Comisión del Mercado de Valores de EE.UU. (SEC). Por lo tanto, no puedes venderlos (emitirlos) sin registrarte en la SEC. No se tratan de forma diferente a las acciones.
Los tokens de utilidad son como el gas de Ethereum. Son fichas que puedes vender, pero no tienen un aire de inversión que las rodee. La cadena de bloques utiliza tokens de utilidad como medio interno de funcionamiento. Crear e intentar vender tokens de utilidad es arriesgado. Debes hablar con profesionales jurídicos y solicitar una carta de no acción de la SEC. Para ello, debes presentar un plan detallado que explique cómo utilizarás los utility tokens. Algunas empresas han recibido una carta de no acción de la SEC y sirven de modelo para lo que la SEC considera tokens de utilidad. Los tokens de utilidad no se revalorizan y pueden perder valor, pero su compra no lleva asociada ninguna recompensa. Suelen equivaler a un dólar y pueden canjearse por un dólar. Una cuenta de custodia mantiene los fondos canjeados por el token de utilidad.
Los tokens son una oportunidad apasionante para la innovación en el desarrollo de contratos inteligentes y el uso de blockchain. Pueden ser inteligentes, tener valor y representar activos y derechos.
En cadena
Cuando ejecutamos trabajo en la cadena de bloques , esto se denomina en la cadena. O, cuando almacenamos datos en la cadena de bloques, se puede hablar de datos en la cadena. Sé prudente a la hora de decidir qué datos almacenas en la cadena, porque la cadena de bloques, tal y como existe hoy en día, no es adecuada como almacén de datos. Deberías almacenar los datos de las transacciones fuera de la cadena (se explica a continuación). Cuando quieras ejecutar rápidamente un gran número de transacciones, deberías estudiar la posibilidad de ejecutar las transacciones fuera de la cadena.
Fuera de la cadena
La capacidad de trasladar el trabajo de fuera de la cadena de bloques y realizarlo fuera de ella se conoce como fuera de la cadena. Una vez realizado el trabajo fuera de la cadena, el resultado se traslada de nuevo a la cadena para ser enviado por consenso a la cadena de bloques. Esto es razonable si quieres ejecutar 10.000 transacciones rápidas, agruparlas en una sola transacción, y luego trasladar esa única transacción de vuelta a la cadena para someterla a consenso y confirmarla en la cadena de bloques. Las transacciones fuera de la cadena pueden registrarse en lo que se conoce en como una cadena lateral y quizá a través de una DLT para una ejecución rápida. El árbol de Merkle de las transacciones (mostrado anteriormente en la Figura 1-1) se coloca en una única transacción y se coloca en la cadena para su consenso y compromiso con la cadena de bloques principal.
Escalabilidad
La escalabilidad es uno de los mayores problemas de blockchain. Blockchain emplea el consenso, y esto crea latencia en el procesamiento de las transacciones. Llegar a un acuerdo, que es de lo que trata el consenso, lleva tiempo. Tiempo es lo que necesitas eliminar si quieres escalar. No puedes alcanzar el consenso en masa. Se está investigando y diseñando mucho para resolver este problema.
Los sectores de las finanzas y los seguros han decidido utilizar únicamente DLT, que no utiliza el consenso, como se ha comentado antes. Pueden hacerlo porque sus sectores tienen un elemento de confianza incorporado debido a que son industrias muy reguladas. En sectores como la cadena de suministro, es necesario que exista confianza entre las partes. Esta confianza se ha conseguido mediante intermediarios. Emplear intermediarios conlleva un coste significativo, tanto en dólares como en eficiencia. La promesa y el atractivo de blockchain es eliminar o reducir en gran medida la necesidad de intermediarios empleando el consenso. La escalabilidad es un área de preocupación que todos los proyectos de blockchain deben prever en el diseño de sus aplicaciones.
Criptomoneda
Bitcoin es una criptomoneda, o activo digital, diseñado para ser utilizado como dinero. Existen cientos de criptodivisas en . Puedes pensar en las criptodivisas como dinero digital. Ésa fue la inspiración de su diseño, pero ese diseño no se ha manifestado. En lugar de eso, se ha convertido en un activo como el oro, con seguidores devotos y un mercado en el que se negocia diariamente a medida que fluctúa el precio.
Pocos vendedores aceptan la criptodivisa debido a su volatilidad. El dinero fiduciario, la moneda emitida por bancos centrales como la Reserva Federal, es estable en su mayor parte. También puede experimentar una gran variación, pero no es volátil como la criptomoneda.
La mayoría utiliza la criptomoneda como una inversión a largo plazo de alto riesgo, con la esperanza de que se revalorice, o como un vehículo de comercio que intenta sacar provecho de la volatilidad. En la actualidad, los bancos centrales están estudiando la posibilidad de emitir criptodivisas y adoptar el término de efectivo digital, porque tiene muchas ventajas para los pagos transfronterizos y la financiación del comercio.
La criptomoneda se apoya en la tecnología blockchain y DLT. Mediante el uso de la criptomoneda y la cadena de bloques, los bancos centrales y los gobiernos podrán ampliar y controlar el movimiento y el uso de la criptomoneda, lo que no pueden hacer con el dinero en efectivo.
Enclaves
Cuando necesites firmar una transacción, debes utilizar tu clave privada. Cada vez que accedes a tu clave privada, estás abierto a ataques y sucesos que pueden destruir, corromper o robar tu clave privada. Si algo le ocurre a tu clave privada, todo lo que la requiera para acceder a ella se perderá. Puede que no haya forma de que recuperes tu clave privada y, por tanto, el activo o el acceso concedido se pierda para siempre.
Almacenas tus claves y cualquier otra cosa digital en un enclave, que utilizas para realizar la firma de las transacciones por ti. Los enclaves tienen dos formas: hardware y software. Son como bóvedas privadas que no permiten la entrada sin una contraseña secreta o un elaborado ritual. Utilizar un enclave impide que la clave quede expuesta, protegiéndola y salvaguardándola. Los enclaves también pueden realizar sus propias transacciones, por lo que pueden utilizarse para ejecutar rutinas que quieras mantener en secreto.
La cadena de bloques Quorum de J.P. Morgan, un clon de Ethereum modificado por , utiliza un enclave para realizar sus funciones criptográficas, proporcionando un nivel de seguridad garantizado por una institución financiera regulada . La cadena de bloques Hyperledger Sawtooth utiliza las extensiones Intel Software Guard Extensions (SGX), que es un enclave de hardware. Sawtooth utiliza el enclave para ejecutar una versión segura de su algoritmo de consenso PoET.
Oráculos
Cuando una cadena de bloques necesita datos externos o la verificación de datos enviados o generados internamente, recurre a un oráculo. Se trata de una API, una interfaz o un sitio web que se puede rastrear para obtener información.
Un contrato inteligente que sea una aplicación de apuestas, una aplicación de futuros del oro o una aplicación de préstamos, por ejemplo, necesita conocer información externa. La aplicación de apuestas necesita saber quién ganó el partido anoche, así que consulta la página de deportes del USA Today o un sitio de pago que ofrezca resultados deportivos para conocer el resultado del partido. La aplicación de futuros del oro accede al Wall Street Journal o a un sitio de corretaje de pago para conocer el precio actual del oro. La aplicación de préstamos accede a un sitio que publica los tipos de interés actuales.
Los oráculos también pueden ser otros contratos inteligentes. La idea del oráculo es que es una fuente externa de información válida y de confianza.
DApps
Lasaplicaciones descentralizadas, o DApps, son aplicaciones basadas en contratos inteligentes que pretenden proporcionar el mismo tipo de aplicaciones que se encuentran en la web, desde juegos a aplicaciones financieras. Las DApps requieren el pago de una cuota para funcionar, a diferencia de las aplicaciones web. Aunque existen muchas DApps, pocas han alcanzado un gran éxito, excepto algunas utilizadas para comerciar con bienes virtuales. Las más populares son las DApp de juegos de azar, que no están permitidas en Estados Unidos. Las DApps sufren debido a la UX y a las tarifas necesarias para su funcionamiento.
Las DApps no han entrado en el espacio empresarial, pero pueden empezar a surgir y transformarse a medida que las empresas adopten la cadena de bloques y se lance y haga viral una cadena de bloques híbrida de uso general. Una cadena de bloques híbrida abarca el espacio empresarial y el público, y su arquitectura sigue un patrón de diseño federado. Actualmente no existe ninguna.
Máquina virtual
En blockchain, cuando hablamos de una máquina virtual(VM), estamos hablando de motores de contratos inteligentes. La primera máquina virtual de blockchain fue la Máquina Virtual de Ethereum (EVM), que estableció Blockchain 2.0. Desde entonces, ha sido clonada, ampliada y mejorada por otras blockchains. La máquina virtual ejecuta el contrato inteligente.
Horquilla
Cuando una cadena de bloques se divide por cualquier motivo , se crea una bifurcación, que es una cadena divergente de bloques, creando así dos versiones de la cadena de bloques. Esto puede considerarse un acontecimiento negativo o positivo. Si todos los participantes están de acuerdo con la bifurcación y ésta se gestiona, entonces es positiva. Esto puede ocurrir cuando se necesita una actualización, se encuentra un fallo grave en el software de la cadena de bloques o se ha producido un acontecimiento corruptor y es necesario corregirlo.
Gobernanza
La forma de gestionar y controlar una cadena de bloques viene determinada por el modelo o función de gobernanza. La gobernanza es importante para el funcionamiento de la cadena de bloques, y sin ella, una cadena de bloques no durará mucho. Necesita gobernanza para gestionar el ciclo de vida, que incluye actualizaciones, fallos, normas de los participantes y limitaciones operativas.
Clientes
Los clientes envían las transacciones a la cadena de bloques. Los clientes firmarán su transacción utilizando su clave (o claves) privada y enviarán las transacciones firmadas a un nodo de la cadena de bloques. A continuación, los nodos replican las transacciones recibidas enviándolas a nodos conocidos; finalmente, todos los nodos tienen una copia de las transacciones de los clientes. Los clientes pueden alojar carteras para almacenar sus claves y mantener los recibos de las transacciones comprometidas de forma segura.
Resumen
Este capítulo ha abarcado mucha información para ayudarte a empezar a entender el concepto de blockchain. Comenzamos con un debate sobre el origen de blockchain. Después hemos hablado de varios componentes generales de la cadena de bloques, seguidos de su arquitectura, el libro mayor compartido, la criptografía, el consenso y los componentes de los contratos inteligentes. Mantuvimos la discusión a un nivel alto para que pudieras asimilar los conceptos fundamentales y formular tu propia interpretación basada en los conocimientos que te proporcionamos. Esperamos que investigues cada punto con más detalle a medida que tu viaje por la cadena de bloques continúe y domines el desarrollo de contratos inteligentes.
En la Parte II, hablaremos del proyecto y las herramientas Hyperledger, seguidos de la arquitectura y los componentes de Hyperledger Fabric, para proporcionarte los conocimientos necesarios para la Parte III, donde cubriremos el desarrollo de contratos inteligentes con Hyperledger Fabric.
Get Desarrollo práctico de contratos inteligentes con Hyperledger Fabric V2 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.