A medida que la tecnología blockchain evoluciona, se necesitan sistemas mejorados a través de los cuales los usuarios operen e interactúen. Ya se están produciendo muchas mejoras, especialmente a medida que la blockchain empresarial continúa volviendose más popular. Entre los últimos desarrollos en el entorno blockchain que cambia constantemente se encuentra DAML.

¿Qué es DAML?

La popularidad de blockchain, más genéricamente llamada tecnología de registro distribuido (DLT), se deriva de una serie de cosas, una de ellas es el hecho de que la información almacenada en el registro público es una prueba futura y que es inmutable. Desde los albores de internet, la inmutabilidad de datos es una propiedad que eludió a muchos desarrolladores. Como tal, los malos actores dentro del ecosistema en línea aprovecharon la capacidad de alterar los datos para cometer varios delitos. Sin embargo, blockchain demostró ser más importante cuando los desarrolladores demostraron la capacidad de llevar a cabo transacciones en un entorno sin un jugador central como sucede en el mundo financiero heredado.

Además de estos registros públicos, también ha despegado un gran mercado para registros privados autorizados. Ya sea controlado por una parte central legalmente autorizada o un consorcio de actores que desconfían mutuamente y que tienen un objetivo común, los registros privados brindan la misma protección e inmutabilidad a futuro que los registros públicos con la capacidad adicional de mantener la privacidad de los datos.

Ya sea que un registro dado sea público o privado, respaldar la capacidad de los pares en un ecosistema de blockchain para interactuar con las garantías de privacidad es la clase de aplicación que generalmente se conoce como contratos inteligentes. Este artículo discutirá más adelante en detalle qué son los contratos inteligentes y su importancia en el contexto de DAML. Esencialmente, DAML es un lenguaje de contrato inteligente que permite a los desarrolladores codificar con precisión los acuerdos de múltiples partes para una variedad de arquitecturas de bases de datos estándar, DLT o blockchain.

DAML: el lenguaje de código abierto para contratos inteligentes originado por Digital Asset le da una nueva vida a este género de aplicación (contratos inteligentes) que permite a los pares realizar transacciones en un entorno de confianza. Básicamente, este es un lenguaje de programación que se inspira en Haskell y que facilita la creación de contratos inteligentes para flujos de trabajo comerciales distribuidos. En particular, el lenguaje permite a los desarrolladores reducir la cantidad de tiempo dedicado a lidiar con los aspectos básicos del cifrado y blockchain. En cambio, los desarrolladores centran su tiempo en desarrollar soluciones de programación para procesos comerciales.

DAML – Lenguaje para Contratos Inteligentes Explicación Simple

DAML EXPLICACIÓN

Propiedades de DAML

  • Proporciona un medio para escribir contratos

Al igual que otros lenguajes que los programadores usan para escribir contratos inteligentes, DAML les permite a las partes hacer y cumplir acuerdos. En particular, el lenguaje describe el proceso de formación de un contrato, las partes clave del acuerdo y las partes con derechos delegados al contrato. Además de definir el proceso de formación de un contrato, el lenguaje se encarga de codificar ideas como contratos, derechos, partes, autorización y obligaciones en el sentido de que el desarrollador solo tiene que lidiar con la lógica de su negocio; cualquier trabajo pesado relacionado con cosas como hashing, criptografía y protocolos de consenso son abstraídos y manejados por el tiempo de ejecución. Esta expresión directa de los elementos del contrato como características del lenguaje nativo implica que la arquitectura DAML puede verificar el código del sistema para detectar problemas automáticamente y al principio del ciclo de desarrollo. Además, el sistema tiene la capacidad de razonar por sí mismo sobre la lógica de negocios.

  • Es de código abierto

DAML es bastante nuevo. El 4 de abril de 2019, Digital Asset, la firma detrás de DAML anunció que el código fuente del programa estaría disponible gratuitamente para todos los desarrolladores. Esta fuente abierta del proyecto significó que las instituciones financieras, los proveedores de atención médica, los minoristas y otros usuarios del lenguaje, podrían usar DAML para modelar y ejecutar contratos a través de la tecnología blockchain sin temor al bloqueo de los proveedores. Según el anuncio, los desarrolladores y otras partes interesadas podrán acceder al lenguaje DAML, el código fuente, el Kit de desarrollo de software (SDK) y el tiempo de ejecución bajo la muy permisiva licencia Apache 2.0.

  • Utilizable en un entorno de ejecución privado.

Una deficiencia de los registros distribuidos públicos es que cada nodo en la plataforma puede ver los datos que están presentes en los contratos inteligentes. Como tal, las partes que necesitan mantener privados los detalles de su acuerdo encuentran imposible realizar transacciones a través de una red pública de blockchain. En particular, este es uno de los principales obstáculos que impide una adopción completa de blockchain empresarial. Es por eso que, como se mencionó anteriormente, los DLT privados se han disparado en popularidad.

La combinación de DAML y una plataforma DLT privada proporciona un remedio para este caso. En particular, el equipo detrás de este lenguaje expresivo optimizó DAML para que funcione perfectamente en un entorno de ejecución privado. Esto quiere decir que la información contenida en los contratos se mantiene privada de modo que solo las partes autorizadas puedan acceder a ella.

  • Legible por humanos y máquinas

DAML es revolucionario en más que un sentido. En particular, el diseño del sistema es de manera que las máquinas y los humanos puedan comprender la información incluida en el contrato. La implicación de esta capacidad es enorme. Los profesionales involucrados en la formación de un contrato tendrán un momento fácil para sortear los detalles porque DAML es muy amigable con los humanos. Por ejemplo, un abogado puede entender fácilmente el significado de un contrato leyendo y evaluando la codificación DAML de ese contrato. Al mismo tiempo, DAML proporciona el grado correcto de especificidad para que los desarrolladores calculen aspectos importantes de un contrato, como el flujo de caja, los perfiles de los clientes y la exposición al riesgo.

Cómo funciona

DAML funciona más o menos como todos los demás lenguajes de escritura de contratos inteligentes. En particular, el lenguaje funciona en dos niveles principales donde está el lenguaje en sí y el tiempo de ejecución. El lenguaje es como la parte principal de la tecnología. Esto es lo que permite a los desarrolladores hacer todo el trabajo que necesitan hacer en términos de redactar acuerdos y facilitar las transacciones.

Debido a que hay API’s muy limpias y abstractas entre el lenguaje y el tiempo de ejecución, el tiempo de ejecución se puede adaptar para ejecutarse en una variedad de blockchain, DLT y otras plataformas. Esto proporciona la flexibilidad para que las aplicaciones DAML se pase a través de plataformas que brindan soporte para DAML. Esto es análogo a una JVM(Java Virtual Machine) que permite que las aplicaciones Java se ejecuten sin cambios en cualquier plataforma que admita la JVM.

Después de la instalación del Kit de desarrollo de software (SDK), los desarrolladores solo necesitan ejecutar algunos archivos específicos para que el dispositivo pueda estar en condiciones de soportar las operaciones.

  • Modelado de datos

Una de las tareas principales y más importantes que uno debe realizar al escribir un contrato inteligente es el modelado de datos que se utilizarán con ese contrato. Normalmente, la función de modelado de datos es complicada y puede conducir a estructuras de datos muy complejas, dependiendo de cuán complicados sean los contratos y cuántas partes estén involucradas.

A diferencia de otros lenguajes de contratos inteligentes, DAML permite a los desarrolladores especificar su esquema de datos sobre la marcha, incrustándolo directamente en el lenguaje de ejecución del contrato. Esto simplifica enormemente la tarea de modelado de datos y reduce la posibilidad de que se introduzcan errores debido a errores de coincidencia entre el esquema de datos y la lógica de la aplicación.

  • Estructura de esquema de plantilla

El desarrollador de DAML especifica un contrato a través de una estructura simple y bien definida llamada “plantilla”, que contiene tanto el modelo de datos como los parámetros del contrato.

Los parámetros incluyen, por ejemplo, los firmantes de un contrato determinado (aquellos participantes que deben autorizar acciones en el contrato) y los observadores (aquellos participantes dentro del acuerdo que están allí para ver el contrato y lo que hace pero no están autorizados para tomar acciones). Otro aspecto de la estructura de la plantilla incluye el acuerdo, que es básicamente el detalle del acuerdo y una representación de lo que trata el contrato.

Las plantillas pueden especificar una o más condiciones previas que garantizan que el contrato se cree solo si el creador del contrato alcanza un cierto umbral. El último elemento de la estructura del esquema de la plantilla son las “elecciones”. Esto define el rango de opciones que el ejecutor del contrato puede ejercer.

  • Estructura de elección

Una estructura principal dentro de la plantilla es la estructura de elección, que detalla las opciones que las partes contratantes pueden elegir en términos de la naturaleza de la plantilla. La estructura de elección identifica al controlador, o la parte responsable de ejercer la elección. Otros elementos de esta estructura incluyen consumibilidad, un nombre, un tipo de retorno, argumentos de elección y un cuerpo de elección.

Comparación de DAML y los Contratos Inteligentes

  • Comprendiendo los contratos inteligentes

Como se explicó anteriormente, los contratos inteligentes son un componente vital de la tecnología de registro distribuido (DLT). En las blockchains públicas, dos partes anónimas pueden crear un contrato inteligente para facilitar una determinada transacción, pero los datos permanecen almacenados en el registro público. Esto quiere decir que todos los participantes en la red pueden ver los detalles del acuerdo para determinar su autenticidad. Como tal, la aplicación de la confianza es posible.

En las DLT privadas o autorizadas, todas las partes son conocidas, pero solo las partes involucradas en una transacción dada tienen acceso a los datos de esa transacción. La confianza aún se mantiene a través de mecanismos que permiten a los participantes validar todas las transacciones a las que tienen acceso.

Los contratos inteligentes tienen características distintivas que también los hacen revolucionarios. Por ejemplo, los contratos inteligentes pueden tener un mecanismo autoejecutable que se pone en marcha siguiendo las fechas límite establecidas (también llamados eventos desencadenantes). En las redes públicas, cualquier parte interesada puede analizar la actividad de los contratos inteligentes de manera que se pueda identificar cualquier anomalía. Además, los comerciantes pueden usar contratos inteligentes para obtener el pulso del mercado. Esto incluye la capacidad de predecir tendencias e incertidumbres en el mercado.

Los contratos inteligentes tienen una serie de beneficios que incluyen la inmutabilidad de los datos. En términos básicos, la inmutabilidad se refiere a la imposibilidad de alteración de datos desde su estado original. Esto quiere decir que los datos no se pueden borrar ni alterar de ninguna manera concebible. La inmutabilidad de los datos hace que los contratos inteligentes sean siempre precisos. Tercero, en algunos casos, los contratos inteligentes permiten a los pares realizar transacciones directamente sin la necesidad de un intermediario. Por lo tanto, tales transacciones son muy baratas, a veces no cuestan un centavo.

Propiedades de los contratos inteligentes

  • Prueba de obligaciones y derechos

Una característica crítica que deben tener los contratos inteligentes es que uno no tiene que realizar transacciones sin sentirse cómodo con todo el proceso. En esencia, aceptar un contrato es completamente voluntario, pero las consecuencias son obligatorias. Por lo tanto, el usuario debe considerar de manera confiable y hábil las implicaciones futuras del contrato al que se suscribe. El contrato inteligente debe garantizar que este sea siempre el caso, algo que puede ser muy difícil de resolver.

  • Verificación de la validez de la transacción

Como se discutió anteriormente, la información relativa a los detalles del contrato es fácilmente rastreable desde el registro. Por lo tanto, esto cumple el requisito de contratos mediante los cuales uno puede verificar su autenticidad y validez.

  • Comparación con DAML

Esencialmente, es obvio de lo anterior que DAML produce un subconjunto de contratos inteligentes en el que uno puede corregir las deficiencias de los idiomas existentes. Como se mencionó anteriormente, el hecho de que los contratos inteligentes en las redes públicas almacenen sus datos en registros públicos hace que los contratos inteligentes no sean atractivos para las transacciones confidenciales. Sin embargo, DAML, cuando se usa junto con redes privadas, garantiza que solo aquellas partes que autorizan el contrato, junto con aquellas con permiso delegado para ver los detalles, puedan tener acceso a la información del contrato. Esta es una razón por la cual los observadores expertos creen que este lenguaje es la función asesina para las instituciones financieras y otras que requieren confidencialidad de la transacción.

No obstante, DAML como lenguaje para contratos inteligentes difiere de los contratos inteligentes tradicionales cuando se trata de compartir los acuerdos escritos. Los lenguajes de contratos inteligentes como Solidity comparten la información públicamente, por lo tanto, toda la red tiene acceso a los detalles. Por el contrario, los acuerdos escritos en DAML solo están disponibles en base a la necesidad de conocer. Esto quiere decir que terceros indeseables no tienen acceso a los detalles. En particular, el lenguaje utiliza una capa adicional de seguridad por la cual los datos ni siquiera están disponibles para terceros indeseables.

Beneficios de DAML

  • Código abierto

La plataforma blockchain puede tener solo 10 años, pero está creciendo rápidamente. Hoy, la tecnología está revolucionando las industrias a tasas sin precedentes. La razón de este rápido crecimiento es el hecho de que blockchain es de código abierto y cualquier desarrollador puede jugar con ella para encontrar la mejor solución para un problema determinado. Curiosamente, DAML también es de código abierto desde el 4 de abril de 2019. Esto quiere decir que los desarrolladores tienen la libertad de modificar el código de DAML para crear las soluciones más innovadoras en lo que respecta a los contratos inteligentes y el ecosistema blockchain en general.

  • Permite transacciones privadas

Los idiomas tradicionales de contratos inteligentes no contienen características nativas con restricciones robustas donde los acuerdos pueden hacerse privados. En esencia, la información contenida en los acuerdos es accesible para todos los participantes, incluidos terceros indeseables. Sin embargo, como se discutió anteriormente, DAML incorpora una capa adicional de seguridad donde dicha información solo es accesible para las partes autorizadas.

  • Acelera la adopción de blockchain empresarial

A medida que blockchain transiciona a los casos de uso empresariales, uno de los problemas que frena la tecnología es la naturaleza distribuida de la información. En particular, como se discutió anteriormente, ya hay esfuerzos como la creación de plataformas blockchain privadas donde todos los participantes deben obtener permiso antes de ingresar. Sin embargo, las empresas aún enfrentan la amenaza de que los competidores vean su estrategia. Sin embargo, la entrada de DAML es una posible solución a ese problema. En particular, el idioma restringe los datos del acuerdo solo a aquellos nodos autorizados para acceder a él, y la información sobre los acuerdos no está disponible para otros usuarios. Como tal, las empresas no tienen excusa para subirse a bordo y explotar el potencial de blockchain empresarial.

  • Soporte integrado para validar la corrección del modelo.

Dada la naturaleza incipiente de blockchain, la mayoría de las operaciones y modelos son experimentales y novedosos. Por lo tanto, existe la necesidad de una validación constante de la corrección de los modelos. Afortunadamente, DAML viene con soporte incorporado donde la validación de la corrección de los modelos es automática.

  • Abstracción de almacenamiento

El tiempo de ejecución DAML es robusto y realiza operaciones vitales para hacer que el lenguaje sea superior a las alternativas existentes. Por ejemplo, el tiempo de ejecución resume los detalles del registro en el sentido de que el desarrollador puede centrarse en la lógica del contrato.

Comparación de DAML con otros lenguajes de contrato inteligente alternativos

El ecosistema blockchain aún está creciendo y eso implica que no hay sistemas estándar de operaciones. Esto también significa que no existe un lenguaje único que domine la escritura de contratos inteligentes. Como tal, hay muchas otras alternativas además de DAML. Este artículo discutirá algunas de estas alternativas.

  • Solidity

Solidity es uno de los primeros idiomas para escribir contratos inteligentes que ganó popularidad. Esta popularidad fue el resultado de que la plataforma Ethereum blockchain sea una red preferida para contratos inteligentes. Como lenguaje de programación, Solidity domina la plataforma Ethereum. Este lenguaje utiliza sintaxis de alto nivel y script similar a JavaScript. En particular, el lenguaje es vital en la mejora de Ethereum Virtual Machine/máquina virtual Ethereum (EVM). Varias otras blockchains privadas como Hyperledger Burrow y Monax usan el lenguaje para el desarrollo primario.

Además, los desarrolladores de Ethereum usaron Solidity para escribir la versión 0.4.0 del software. Lo bueno de este lenguaje es que no rompe la funcionalidad de la red blockchain. Además, el lenguaje es vital en la creación de contratos inteligentes que se ejecutan en la máquina virtual Ethereum. El lenguaje mejora la capacidad de las aplicaciones para reforzar la lógica empresarial que es inherente a los contratos inteligentes. Como resultado, las partes que realizan transacciones en el ecosistema Ethereum dejan un registro autorizado de sus transacciones para facilitar la verificabilidad.

A diferencia de DAML, cuyo lenguaje es similar al de Haskell, Solidity utiliza una sintaxis cercana a ECMAScript. Sin embargo, Solidity tiene capacidades adicionales como los tipos de retorno variable y la capacidad de tipeo estático. Además, los contratos escritos en Solidity admiten herencia múltiple que se facilita con la linealización C3.

  • Actulus Modeling Languag

Desde que blockchain comenzó a tomar una dirección empresarial, surgieron varios lenguajes específicos de dominio financiero para resolver algunos problemas identificados en los idiomas iniciales. Además de DAML y Solidity, apareció Actulus Modeling Language (AML) para ayudar a resolver problemas computacionales en los sectores de pensiones y seguros. En particular, AML es una empresa multipartidista que incorpora Edlund A / S y la Universidad IT de Copenhague.

A diferencia de lenguajes como Java y C / C ++, entre otros que generalmente son aplicables en varias configuraciones, AML es específico de dominio. Esto quiere decir que el lenguaje es útil para un propósito específico o puede crear aplicaciones que se ejecutan en una plataforma específica. Como tal, el lenguaje no puede crear programas, interfaces y aplicaciones independientes.

  • BOScoin contratos de confianza

Esta es otra solución alternativa que utiliza el lenguaje de ontología web (WOL) para crear contratos inteligentes. BOScoin siempre emplea Timed Automata Language (TAL) para mejorar la confianza y la solidez de los contratos. En particular, el lenguaje crea contratos de confianza que facilitan la creación de aplicaciones descentralizadas (DApps). Esencialmente, el contrato inteligente envalentona la naturaleza confiable de DApps.

Al igual que DAML, BOScoin no es Turing-Completa. En cambio, los idiomas son decidibles, lo que los diferencia de la naturaleza Turing-Completa de los contratos inteligentes de Ethereum. A diferencia de los contratos inteligentes de Ethereum, los contratos de confianza de BOScoin utilizan un lenguaje de ontología completo y más contenido. En particular, esto se debe a la necesidad de que el equipo cree una plataforma donde los desarrolladores puedan llegar a contratos confiables.

¿Qué le depara el futuro a DAML?

Tal como están las cosas, el entorno de blockchain está inundado de lenguajes de contrato inteligentes. Los muchos idiomas dificultan la interoperabilidad de las aplicaciones blockchain y, por lo tanto, retrasan la adopción masiva de blockchain. Curiosamente, la plataforma Hyperledger solo utiliza más de seis idiomas, incluido DAML, que crea contratos inteligentes en Hyperledger Sawtooth.

Sin embargo, la capacidad de abstracción del tiempo de ejecución del DAML ayuda a resolver una serie de problemas de errores en los contratos inteligentes creados en todos los ámbitos. También hace que las aplicaciones DAML sean trasladables a otras plataformas. Además de la plataforma de Digital Asset, se ha anunciado el soporte DAML para VMware Blockchain y Sawtooth, lo que indica que otras plataformas podrían adoptarlo. Por lo tanto, es probable que el lenguaje DAML se convierta en el lenguaje universal de contratos inteligentes en las próximas décadas.

Resumen / Observaciones finales

La tecnología Blockchain está claramente en camino a la madurez. Sin embargo, esto dependerá de la efectividad a través de la cual la tecnología ofrece soluciones que coinciden con su potencial. Especialmente en este período cuando la tecnología pasa de la exageración a la realidad, desarrollos como DAML son críticos.

Curiosamente, DAML lleva la redacción de contratos inteligentes al siguiente nivel. En particular, el lenguaje define una forma novedosa de redactar contratos donde solo las partes autorizadas y las personas con derechos delegados pueden ver los detalles de un contrato. Además, el lenguaje es de código abierto y uno debería esperar que su desarrollo y popularidad sean rápidos. Además, el lenguaje funciona de manera excelente en un entorno de ejecución privado. Por último, el lenguaje es legible por humanos y máquinas, lo que implica que profesionales y desarrolladores trabajarán juntos para desarrollar grandes soluciones en diversas industrias.

¿Qué es DAML?

  • Un lenguaje de contratos inteligentes específico de dominio que se inspira en Haskell

Propiedades

  • Proporciona medios para redactar contratos: automatiza algunas funciones para que los desarrolladores puedan detenerse en la lógica empresarial
  • Es de código abierto: los desarrolladores pueden modificar fácilmente el idioma y el SDK está disponible sin cargo
  • Utilizable en un entorno de ejecución privado: la información transportada por contratos escritos en DAML solo es accesible para las partes autorizadas
  • Legible por humanos y máquinas: brinda una oportunidad para soluciones novedosas

Modelado de datos usando DAML

  • El sistema está hecho de lenguaje y tiempo de ejecución.
  • El modelado sigue las siguientes estructuras
    • Estructura esquema de plantilla: define los firmantes, los observadores, el acuerdo, las condiciones previas y las opciones.
    • Estructura de elección: identifica el controlador, la consumibilidad, un nombre, un tipo de retorno, argumentos de elección y un cuerpo de elección.

Beneficios de DAML

  • Es de código abierto
  • Permite transacciones privadas
  • Restringe la visión de los acuerdos a las partes autorizadas, por lo tanto, fomenta la adopción de blockchain empresarial
  • Soporte integrado para validar la corrección del modelo
  • El tiempo de ejecución DAML permite la abstracción de almacenamiento

DAML vs Solidity vs AML vs BOScoin

DAML Solidity AML BOScoin
Naturaleza del lenguaje Dominio específico Dominio específico Dominio específico Dominio específico
Influencia Haskell C++, Python, PowerShell Python JavaScript y C++
Licencia Código abierto Con licencia Con licencia Con licencia
Tipo de contrato Privada Publica Publica Publica
Red Privada Ethereum Privada BOScoin

El lenguaje DAML enfrenta un futuro prometedor dado el potencial que tiene en términos de revolucionar el proceso de creación de contratos inteligentes. Teniendo en cuenta el creciente número de idiomas utilizados en la redacción de contratos, la industria necesitará un enfoque unificado y, en este caso, solo el idioma más sólido lo hara. En particular, DAML es superior cuando se trata de satisfacer la necesidad de que las empresas mantengan sus negocios privados. Además, la capacidad de abstracción ahorra tiempo a los desarrolladores, ya que pasarán la mayor parte de su tiempo mejorando la lógica comercial de los contratos. Además, está claro que muchas más plataformas probarán DAML después de que VMware Blockchain y Hyperledger Sawtooth anunciaron su incorporación en sus operaciones. Por lo tanto, es muy probable que DAML se convierta en el idioma principal para escribir contratos si su desarrollo sigue la trayectoria actual.