馃嚜馃嚫 Cardano es el primer proyecto de cadena de bloques de misi贸n cr铆tica

:es: Traducci贸n al espa帽ol de Cardano is the first mission-critical blockchain project

Publicado por Cardanians en su blog de Medium, el 4 de Diciembre de 2019.


En las aeronaves se utiliza un software de misi贸n cr铆tica.

Cardano es el primer proyecto que apuesta por el desarrollo de m茅todos formales, y el equipo lo construye como un proyecto de misi贸n cr铆tica. Se necesitan mucho tiempo y esfuerzo para construir un proyecto de este tipo. El equipo investig贸 cuidadosamente otros proyectos existentes y realiz贸 todos los estudios pertinentes, sin tener miedo de experimentar y buscar el mejor enfoque para el entorno del mundo real. El equipo de IOHK ten铆a que encontrar a los mejores expertos en los campos dados, y cooperar con ellos. El equipo debi贸 investigar, escribir algunos estudios, pedir revisiones cr铆ticas de los estudios que ha escrito a personas competentes, escribir un software siguiendo las especificaciones y probarlo. A veces puede ocurrir que sea necesario descartar alg煤n trabajo o al menos realizar correcciones, aprender de los errores o empezar desde el principio de una manera diferente. Y eso no puede hacerse en un a帽o o dos.

La cadena de bloques no es Facebook

Estamos acostumbrados a estar siempre online en internet, y en todos los servicios que utilizamos a diario, por ejemplo, los servicios ofrecidos por Facebook, Amazon o Google. La mayor铆a de los servicios funcionan bien y si no, empiezan a funcionar en unas pocas horas. Todos estos servicios est谩n centralizados, y hay administradores responsables que son capaces de solucionar los problemas r谩pidamente y hacer que los servicios vuelvan a estar disponibles para el usuario. Los servicios son propiedad de empresas que toman decisiones sobre la incorporaci贸n de nuevas funciones. Equipos dedicados implementan las caracter铆sticas y actualizan el c贸digo fuente seg煤n lo dicten los l铆deres, o seg煤n estudios de mercado. El modelo econ贸mico es simple. Los propietarios de las empresas disponen de infraestructuras de servidores, departamentos de I+D, marketing y ventas. Para pagar por todo, los servicios deben ser rentables. No creas que, porque no pagues por servicios que se prestan a trav茅s de internet, dichos servicios son gratuitos. Los servicios no son gratuitos en absoluto. Estas empresas recopilan toneladas de informaci贸n sobre nosotros y luego la capitalizan.


El modelo de negocio de los gigantes de IT es simple.

Cadena de bloques es la denominaci贸n para una red p煤blica globalmente distribuida y consensuada, donde existen diferencias significativas en comparaci贸n con los servicios tradicionales proporcionados por famosos gigantes de la tecnolog铆a de la informaci贸n. Echemos un vistazo a algunos de ellos:

  • La cadena de bloques es una red p煤blica. Esto significa que todo el mundo puede ejecutar un nodo y esperar una recompensa. Por lo tanto, es preciso implicar a modelos econ贸micos viables. Un n煤mero suficiente de personas deben estar dispuestas a utilizar el protocolo, y pagar por 茅l, para recompensar a los propietarios de los nodos. Cuantos m谩s usuarios existan, menores ser谩n las tarifas de transacci贸n o el uso de los servicios.
  • La cadena de bloques debe estar disponible para los usuarios las 24 horas del d铆a, los 7 d铆as de la semana, sin excepci贸n. Si se trata de una computadora financiera global, entonces debe ser 100% confiable. El mundo no puede detenerse debido a un fallo en una red financiera.
  • La cadena de bloques debe ser 100% segura. En la cadena de bloques se guarda informaci贸n sobre la propiedad de monedas valiosas, o activos tokenizados. S贸lo el propietario puede crear una transacci贸n v谩lida y transferir la propiedad. Existen requisitos de privacidad, por lo que el sistema no puede ser f谩cilmente pirateado.
  • La cadena de bloques debe ser (siempre) resistente a los ataques de la red, ser capaz de llegar a un consenso, y procesar todas las transacciones de una manera resistente a la censura.
  • La cadena de bloques debe ser descentralizada, con el foco puesto en mantenerla en un alto nivel de descentralizaci贸n. La descentralizaci贸n tiene que ver con un protocolo, y tambi茅n con la gobernanza. La gobernabilidad es m谩s importante a煤n, ya que si algo sale mal, la comunidad debe decidir c贸mo solucionarlo. No somos capaces de crear un protocolo totalmente aut贸nomo que se mantenga por s铆 solo. Necesitamos desarrolladores que sigan los preceptos de la comunidad a trav茅s de una votaci贸n democr谩tica y participativa. La comunidad es la 煤nica que puede decidir sobre la adici贸n de nuevas caracter铆sticas.
  • Si se supone que la cadena de bloques es una red global, entonces debe necesariamente escalar. No se adoptar谩 una red mundial que s贸lo pueda servir al 1% de la poblaci贸n. Somos capaces de enviar un correo electr贸nico en segundos. Tambi茅n debemos ser capaces de enviar valor r谩pidamente, y debe ser muy econ贸mico hacerlo. Las personas de pa铆ses pobres no pueden gastar 1 d贸lar por una comisi贸n por transacci贸n.
  • Una cadena de bloques es software, por lo que debe ser actualizada peri贸dicamente. No es tan obvio c贸mo hacerlo de forma descentralizada y segura. Las actualizaciones son necesarias para implementar los cambios, y a veces puede ocurrir que existan incompatibilidades entre las versiones antiguas y nuevas del software.
  • Una cadena de bloques no es algo que podamos desarrollar de una vez y luego olvidarla. El trabajo de corregir errores y mejoras es interminable. El software debe estar abierto a los cambios, pero idealmente cerrado a la introducci贸n de nuevos errores durante las actualizaciones.

Desde el punto de vista tecnol贸gico, es mucho m谩s dif铆cil desarrollar una cadena de bloques que un protocolo cliente-servidor com煤n. Las razones son obvias. Sabemos muy bien c贸mo dise帽ar y crear protocolos cliente-servidor ya que lo hacemos desde hace varias d茅cadas. Por ejemplo, el conocido protocolo de correo SMTP se cre贸 en los a帽os setenta. Adem谩s, en la mayor铆a de los casos no hay ning煤n problema con la escalabilidad ni con la necesidad de descentralizaci贸n. Crear un nuevo servicio global es un problema m谩s social que t茅cnico, y las nuevas empresas se est谩s esforzando mucho en su adopci贸n.

Puedes leer nuestro art铆culo donde describimos las diferencias entre las bases de datos tradicionales y la cadena de bloques.

La cadena de bloques recientemente celebr贸 su primera d茅cada de existencia, y no recibi贸 mucha atenci贸n al principio. No tenemos muchas experiencias en la construcci贸n de redes similares durante el pasado. Por supuesto, tenemos algunas redes distribuidas funcionales. Sin embargo, no existe una red global distribuida y consensuada, con un modelo econ贸mico que sea utilizado por las masas.

En este momento, podemos decir que la cadena de bloques atrae la atenci贸n, pero no est谩 lista para servir a la gente debido a la inmadurez de su tecnolog铆a. Si tienes una mirada cr铆tica sobre el cripto-verso ver谩s redes PoW que fueron atacadas con 茅xito por famosos ataques del 51%. Las redes PoW son, en su mayor铆a, lentas y no escalan casi nada. S贸lo Bitcoin puede considerarse como una red segura, pero es criticada por algunas personas por sus problemas relacionados con la descentralizaci贸n. Tambi茅n tenemos redes que utilizan algoritmos de consenso DPoS. Tenemos algunos proyectos que se escalan mucho mejor, pero su descentralizaci贸n es limitada debido a que s贸lo un n煤mero determinado de nodos validadores pueden participar en la creaci贸n de nuevos bloques. Estamos en el comienzo de la era de las cadenas de bloques. Necesitamos construir una cadena de bloques descentralizada, segura y escalable, y debemos verla funcionando durante varios a帽os sin problemas. Adem谩s, no se trata s贸lo de la cadena de bloques en s铆, sino tambi茅n de funciones 煤tiles y de resolver problemas reales. La gente no adoptar谩 un cadena de bloques s贸lo por el hecho de que existe. La gente adoptar谩 la funcionalidad o los servicios, no la tecnolog铆a que los sustenta.

3
驴Podemos hacerlo en forma digital? Entonces la gente los usar谩. Los contratos inteligentes son el futuro.

Cardano est谩 construido como un sistema de misi贸n cr铆tica

Cardano es el primer proyecto de cadena de bloques que tom贸 completa dimensi贸n de la complejidad en la creaci贸n de una cadena de bloques. Es por ello que el proyecto se desarrolla a partir de una filosof铆a cient铆fica. Cardano est谩 dise帽ado y construido por un equipo global de acad茅micos e ingenieros l铆deres en la materia. Adem谩s, se han dedicado al proyecto el pensamiento y el cuidado de algunos de los principales expertos en sus campos. El rigor cient铆fico aplicado a sistemas de misi贸n cr铆tica, como los aeroespaciales y bancarios, ha sido utilizado para construir Cardano, con una implementaci贸n de alta seguridad.

No es f谩cil construir una cadena de bloques, como tampoco puede desarrollarse con la calidad esperada a trav茅s de un equipo de programadores promedio. Es necesario reunir expertos en criptograf铆a, seguridad de software, redes distribuidas, modelado de amenazas, dise帽o de protocolos, teor铆a de juegos, sistemas operativos, econom铆a y, por supuesto, arquitectos y programadores de software. En el caso de Cardano, tambi茅n hay contratos inteligentes, por lo que se necesitan otros expertos para dise帽ar lenguajes de programaci贸n. Adem谩s, el enfoque de Cardano requiere expertos para el desarrollo de m茅todos formales y no hay mucha gente con tales conocimientos. Como puedes ver, se necesitan muchos expertos involucrados en el proyecto, y no olvides que el proyecto es global. Para que funcione tambi茅n se necesitan unos cuantos grandes l铆deres de equipo.


Cumbre 2019 de IOHK

驴Qu茅 es un sistema de misi贸n cr铆tica?

En t茅rminos generales, un sistema de misi贸n cr铆tica es un sistema que es esencial para la supervivencia de una empresa u organizaci贸n. Cuando un sistema de misi贸n cr铆tica falla o se interrumpe, las operaciones se ven afectadas significativamente.

Cuando hay un servicio esencial necesario para las operaciones normales, sol铆amos llamarlo un sistema de misi贸n cr铆tica. Depende del contexto de uso del software de misi贸n cr铆tica para decidir qu茅 es lo que est谩 potencialmente en peligro. Un sistema de misi贸n cr铆tica puede ser un sistema de navegaci贸n para aviones en los que la vida humana est谩 en peligro. En el contexto de los sistemas bancarios, podemos hablar de posibles p茅rdidas financieras, por lo que a menudo lo llamamos sistema cr铆tico para el negocio.

Para los gigantes de la tecnolog铆a de la informaci贸n, sus bases de datos y servidores pueden ser considerados como sistemas de misi贸n cr铆tica. As铆 construyen infraestructuras que son capaces de seguir operando sin interrupciones en los casos en que la red est谩 siendo atacada, algunos servidores se caen, la base de datos se da帽a, hay escasez de energ铆a o alg煤n problema de hardware. Normalmente en estas infraestructuras los servidores y bases de datos se encuentran en diferentes sitios. Entonces cuando alg煤n sitio queda completamente aislado por cualquier raz贸n, otro puede hacerse cargo del servicio. Y los usuarios no notar谩n nada.

En el contexto de la cadena de bloques, hablamos de una red p煤blica para personas mantenidas por personas. Las criptomonedas quieren sustituir gradualmente al sistema financiero actual, dar libertad a las personas, y permitirles que dependan de las tecnolog铆as de cadenas de bloques. Si una cadena de bloques fallara, y algunos datos se perdieran permanentemente, algunas personas podr铆an perderlo todo. En muchos casos, las personas depositan su confianza en una cadena de bloques, y si sus posesiones se mantienen en dicha cadena, entonces se puede considerar como un sistema de misi贸n cr铆tica.

Por lo tanto, la cadena de bloques p煤blica no puede interrumpirse bajo ninguna circunstancia, y debe ser capaz de llegar a un consenso a intervalos regulares. Cualquier interrupci贸n puede resultar en situaciones en las que la gente no pueda pagar por algo, probar algo, llegar a alguna parte, realizar algo, etc.

Cardano ser谩 un sistema operativo financiero mundial, por lo que merece ser construido como un sistema de misi贸n cr铆tica desde cero. El proyecto apunta a mil millones de usuarios, por lo que debe ser fiable desde el principio. No tiene sentido crear una cadena de bloques r谩pidamente, esperar a su adopci贸n, para luego intentar mejorar el protocolo.

Desarrollo de m茅todos formales

El desarrollo de m茅todos formales es una forma procedimental de construir software poniendo foco en su confiabilidad. Es un m茅todo que ayuda a construir sistemas de misi贸n cr铆tica. El uso del m茅todo formal no es habitual en los negocios de hoy en d铆a, ya que el desarrollo de estos sistemas es muy lento en comparaci贸n con el enfoque habitual aplicado por las empresas comerciales de IT. A menudo necesitan entregar algo, probarlo y despu茅s mejorarlo. Esto se debe principalmente a la alta competencia en el mercado.

El enfoque de los m茅todos formales tambi茅n es muy costoso. No s贸lo por el tiempo necesario para la entrega, sino tambi茅n por la naturaleza cient铆fica y matem谩tica que requiere la contrataci贸n de expertos con la formaci贸n o experiencia adecuada. Adem谩s, se carece de herramientas de apoyo para el desarrollo y la verificaci贸n de m茅todos formales.

En pocas palabras, el desarrollo de m茅todos formales es un tipo particular de t茅cnicas basadas en la matem谩tica para escribir la especificaci贸n, el desarrollo y la verificaci贸n del resultado: el software creado. La motivaci贸n para utilizar el m茅todo formal es la expectativa de que el an谩lisis o modelado matem谩tico puede contribuir significativamente a la fiabilidad y robustez de un dise帽o, y a las especificaciones que luego se utilizar谩n para escribir el software. En caso de que el dise帽o, basado en matem谩ticas y modelado, sea correcto y el software est茅 escrito siguiendo estrictamente el dise帽o, existe una alta probabilidad de que el software se comporte como es esperado por los autores y usuarios.

En otras palabras, se utilizan m茅todos formales para proporcionar una descripci贸n precisa y detallada del sistema que se va a desarrollar. La especificaci贸n o dise帽o es a menudo elaborado por investigadores o cient铆ficos, y es utilizada por arquitectos y programadores de software para guiar el desarrollo de software. Adem谩s, se utiliza para el proceso de verificaci贸n. Cuando se crea el software, debe ser verificable que cumple con todos los requisitos de forma completa y precisa. El dise帽o debe estar escrito de manera que los programadores puedan entenderlo, escribir el c贸digo y finalmente verificarlo. Para ello, se puede utilizar un lenguaje formal con una sintaxis y una sem谩ntica precisa e inequ铆vocamente definidas. Los cient铆ficos y los programadores deben entenderse entre s铆, y no puede haber mucho espacio para el ruido en su interacci贸n.


Ejemplo de la especificaci贸n formal del protocolo Ouroboros (s贸lo una simple funci贸n del helper del epoch).

De manera simplificada, hay tres pasos principales en el proceso:

  1. Preparar una especificaci贸n para desarrolladores, en su mayor铆a por investigadores, matem谩ticos y/o cient铆ficos. En este paso, se debe preparar una descripci贸n formal del sistema. Este paso tambi茅n debe contener una validaci贸n de la especificaci贸n. Una revisi贸n de otros expertos es muy bien recibida.
  2. Una vez que se prepara la especificaci贸n formal o el dise帽o, los programadores pueden tomarla, estudiarla y empezar a crear software siguiendo estrictamente la especificaci贸n.
  3. Una vez desarrollado el software, es el momento de verificar que realmente se comporta en todos los escenarios posibles, tal y como lo dicta la especificaci贸n formal. Se pueden usar muchos m茅todos diferentes para verificar eso. Sin embargo, el software deber铆a funcionar correctamente en el entorno real.

IOHK utiliza especificaciones formales que les permiten verificar que el c贸digo final se ajusta a lo que los investigadores preve铆an inicialmente en sus publicaciones. Al crear especificaciones independientes de la implementaci贸n, pueden construir componentes del sistema utilizando diferentes lenguajes y confiar en que trabajar谩n juntos.

Vale la pena mencionar que IOHK decidi贸 usar el lenguaje de programaci贸n funcional Haskell, lo que es una gran elecci贸n para el proyecto, regido por los m茅todos formales, ya que que el c贸digo se puede verificar f谩cilmente seg煤n las especificaciones.

En el pasado, IOHK public贸 muchas especificaciones de dise帽o o especificaciones formales. Por ejemplo:

Hay muchas otras especificaciones para cada parte del proyecto, por ejemplo, Ouroboros PoS, billetera, modelo UTxO, etc.

Resumen

La construcci贸n de un proyecto de misi贸n cr铆tica requiere tiempo, por lo que la cr铆tica por esperar demasiado tiempo para su entrega no es apropiada. Construir software de alta calidad toma tiempo, Cardano puso la vara a煤n m谩s alta, y el equipo de IOHK decidi贸 usar los m茅todos formales. Todo eso tuvo que ejecutarse desde cero, y en el camino Charles logr贸 encontrar muchos grandes cient铆ficos y expertos.

Cardano estar谩 listo para los negocios reales en 2020. Ser谩 seguro, descentralizado y mucho m谩s escalable que sus competidores. En 2021 podemos esperar una mejor escalabilidad (fase Basho) y una mejor gobernanza (fase Voltaire). Sin embargo, si todo va bien, no deber铆a haber necesidad de mejorar o arreglar lo que ya se ha entregado. Gracias a ello, Cardano puede tener una ventaja competitiva.


Considera la posibilidad de delegar tus monedas ADA en Cardanians.

Si te gustan nuestros art铆culos, puedes apoyarnos con una donaci贸n en ADA:

DdzFFzCqrhseNP1C9XEs1MA82rgnVZwNpeiNCbLxrJfRzwaceXB9VYqPFYyRrYegc67SERjcQ1xvwB6jryp5vgGUf1cvzbeZP2a92tQe