DAML- A linguagem para contratos inteligentes
Este artigo oferece uma visão abrangente da DAML – a linguagem de código aberto para contratos inteligentes. Você também aprenderá os benefícios do DAML e a comparação com outras línguas.
Conforme a tecnologia blockchain evolui, há uma necessidade de sistemas aprimorados por meio dos quais os usuários operam e interagem. Já existem muitas melhorias acontecendo, especialmente à medida que o blockchain empresarial continua a se tornar popular. Entre os mais recentes desenvolvimentos no ambiente de blockchain em rápida mudança está o DAML.
Desde o surgimento da Internet, a imutabilidade dos dados é uma propriedade que iludiu muitos desenvolvedores. Dessa forma, os agentes mal-intencionados dentro do ecossistema online aproveitaram a capacidade de alterar dados para cometer vários crimes.
No entanto, o blockchain provou ser mais importante quando os desenvolvedores demonstraram a capacidade de realizar transações em um ambiente sem um jogador central, como acontece no mundo financeiro legado.
Além desses livros-razão públicos, um grande mercado de livros-razão privados e permitidos também decolou. Seja controlado por um partido central legalmente autorizado ou por um consórcio de atores mutuamente desconfiados que têm um objetivo comum, os livros-razão privados fornecem a mesma proteção futura e imutabilidade que os livros-razão públicos com a capacidade adicional de manter a privacidade dos dados.
Quer um determinado livro-razão seja público ou privado, o que sustenta a capacidade dos pares em um ecossistema de blockchain de interagir com garantias de privacidade é a classe de aplicação geralmente referida como contratos inteligentes.
Este artigo irá discutir mais tarde em detalhes o que são contratos inteligentes e sua importância no contexto de DAML.
Inscreva-se agora: Curso de fundamentos de Enterprise Blockchains
O que é DAML?
Em termos técnicos, DAML significa Digital Asset Modeling Language (DAML full form) – uma linguagem de marcação para a Web Semântica. No entanto, o jargão técnico pode confundir. Então, para um significado mais simples de DAML, pense nisso como a linguagem de código aberto para contratos inteligentes.
Essencialmente, DAML é uma linguagem de contrato inteligente que permite aos desenvolvedores codificar com precisão contratos de várias partes para uma variedade de blockchain, DLT ou até mesmo arquiteturas de banco de dados padrão.
Originado pela Digital Asset, dá uma nova vida a esse gênero de aplicativo (contratos inteligentes), que permite que os pares façam transações em um ambiente de confiança. Basicamente, esta é uma linguagem de programação que se inspira em Haskell e que facilita a criação de contratos inteligentes para fluxos de trabalho de negócios distribuídos.
Notavelmente, a linguagem permite que os desenvolvedores reduzam a quantidade de tempo gasto lidando com as porcas e parafusos de criptografia e blockchain. Em vez disso, os desenvolvedores concentram seu tempo no desenvolvimento de soluções de programação para processos de negócios.
DAML – Linguagem para Contratos Inteligentes Simplesmente Explicado
Propriedades de DAML
Fornece um meio para escrever contratos
Como outras linguagens que os programadores usam para escrever contratos inteligentes, o DAML permite que os colegas façam e honrem acordos. Notavelmente, a linguagem descreve o processo de formação de um contrato, as principais partes no acordo e as partes com direitos delegados ao contrato.
Além de definir o processo de formação de um contrato, a linguagem cuida da codificação de ideias como contratos, direitos, partes, autorizações e obrigações em que o desenvolvedor só tem que lidar com a lógica de seu negócio; qualquer trabalho pesado relacionado a coisas como hash na criptografia e algoritmos de consenso são abstraídos e tratados pelo tempo de execução.
Essa expressão direta de elementos de contrato como recursos de linguagem nativa implica que a arquitetura DAML pode verificar se há problemas no código do sistema automaticamente e mais cedo no ciclo de desenvolvimento. Além disso, o sistema tem a capacidade de raciocinar por conta própria sobre a lógica de negócios.
É Open Source
Em 4 de abril de 2019, a Digital Asset, a empresa por trás do DAML, anunciou que o código-fonte do programa estaria disponível gratuitamente para todos os desenvolvedores. Esse código aberto do projeto significava que diferentes partes seriam capazes de usar DAML para modelar e executar contratos por meio da tecnologia blockchain sem medo de dependência do fornecedor.
De acordo com o anúncio, os desenvolvedores e outras partes interessadas poderão acessar a linguagem DAML, o código-fonte, o Software Development Kit (SDK) e o tempo de execução sob a licença muito permissiva do Apache 2.0.
Utilizável em um ambiente de execução privada
Uma deficiência dos livros-razão distribuídos publicamente é que cada nó na plataforma pode visualizar os dados que estão presentes nos contratos inteligentes. Assim, os pares que precisam manter os detalhes de seu negócio em sigilo descobrem que é impossível fazer transações em uma rede pública de blockchain.
Em particular, este é um grande obstáculo que está impedindo a adoção completa do blockchain corporativo. É por isso que, como mencionado anteriormente, DLTs privados aumentaram em popularidade.
A combinação de DAML e uma plataforma DLT privada fornece uma solução para esse caso. Notavelmente, a equipe por trás dessa linguagem expressiva otimizou o DAML para que funcione perfeitamente em um ambiente de execução privado. Isso quer dizer que as informações contidas nos contratos permanecem privadas, de modo que apenas as partes autorizadas podem acessá-las.
Legível por humanos e máquinas
DAML é revolucionário em mais do que apenas um sentido. Notavelmente, o design do sistema é de uma forma que as máquinas e os humanos podem entender as informações incluídas no contrato.
A implicação dessa capacidade é enorme. Os profissionais envolvidos na formação de um contrato terão mais facilidade em contornar os detalhes, porque o DAML é muito amigável..
Por exemplo, um advogado pode compreender facilmente o significado de um contrato lendo e avaliando a codificação DAML desse contrato. Ao mesmo tempo, o DAML fornece o grau certo de especificidade para os desenvolvedores computarem aspectos importantes de um contrato, como fluxo de caixa, perfis de clientes e exposição ao risco.
Como funciona o DAML? Um Tutorial DAML Funcional Rápido
O DAML funciona muito bem como todas as outras linguagens de redação de contratos inteligentes. Em particular, a linguagem funciona em dois níveis principais, onde existe a linguagem em si e o tempo de execução.
A linguagem é como a parte principal da tecnologia. Isso é o que permite que os desenvolvedores façam todo o trabalho de que precisam em termos de redação de contratos e facilitação de transações.
Como existem APIs muito limpas e abstratas entre a linguagem e o tempo de execução, o tempo de execução pode ser adaptado para ser executado em uma variedade de blockchain, DLT e outras plataformas.
Isso fornece a flexibilidade para que os aplicativos DAML sejam portados entre plataformas que oferecem suporte para DAML. Isso é análogo a uma JVM que permite que aplicativos Java sejam executados inalterados em qualquer plataforma que suporte a JVM.
Após a instalação do Software Development Kit (SDK), os desenvolvedores precisam apenas executar alguns arquivos específicos para que o dispositivo possa estar em posição de oferecer suporte às operações.
Modelagem de dados
Uma das tarefas principais e mais importantes que se precisa realizar ao escrever um contrato inteligente é a modelagem dos dados a serem usados com esse contrato. Normalmente, a função de modelagem de dados é complicada e pode levar a estruturas de dados muito complexas, dependendo de quão complicados são os contratos e quantas partes estão envolvidas.
Ao contrário de outras linguagens de contrato inteligente, o DAML permite que os desenvolvedores especifiquem seu esquema de dados em tempo real, incorporando-o diretamente na linguagem de execução do contrato. Isso simplifica muito a tarefa de modelagem de dados e reduz a chance de erros serem introduzidos devido a incompatibilidades entre o esquema de dados e a lógica do aplicativo.
Consulte Mais informação: Tutorial DAML: Introdução ao DAML
Estrutura do esboço do modelo
O desenvolvedor DAML especifica um contrato por meio de uma estrutura simples e bem definida chamada de “modelo”, que contém o modelo de dados e os parâmetros do contrato.
Os parâmetros incluem, por exemplo, os signatários de um determinado contrato (os participantes que devem autorizar ações no contrato) e os observadores (os participantes do acordo que estão lá apenas para ver o contrato e o que ele faz, mas não estão autorizados para realizar ações). Outro aspecto da estrutura do modelo inclui o acordo, que é basicamente o detalhe do acordo e uma representação do que o contrato trata.
Os modelos podem especificar uma ou mais pré-condições que garantem que o contrato seja criado apenas se um determinado limite for alcançado pelo criador do contrato. O último elemento da estrutura de tópicos do modelo são as “escolhas”. Isso define a gama de escolhas que o executor do contrato pode exercer.
Estrutura de Escolha
Uma estrutura principal dentro do modelo é a estrutura de escolha, que detalha as escolhas que as partes do contrato podem escolher em termos da natureza do modelo.
A estrutura de escolha identifica o controlador ou responsável pelo exercício da escolha. Outros elementos dessa estrutura incluem consumibilidade, um nome, um tipo de retorno, argumentos de escolha e um corpo de escolha.
Consulte Mais informação: Tutorial de treinamento DAML
Comparando DAML vs Smart Contracts
Compreendendo os Contratos Inteligentes
Como explicado anteriormente, os contratos inteligentes são um componente vital da tecnologia de razão distribuída (DLT). Em blockchains públicos, duas partes anônimas podem criar um contrato inteligente para facilitar uma determinada transação, mas os dados permanecem armazenados no livro-razão público. Isso quer dizer que todos os participantes da rede podem visualizar os detalhes do negócio para verificar sua autenticidade. Como tal, a aplicação da confiança é possível.
Em DLTs privados ou com permissão, todas as partes são conhecidas, mas apenas as partes envolvidas em uma determinada transação têm acesso aos dados dessa transação. A confiança ainda é mantida por meio de mecanismos que permitem aos participantes validar todas as transações às quais eles têm acesso.
Os contratos inteligentes têm características distintas que também os tornam revolucionários.
Por exemplo, os contratos inteligentes podem ter um mecanismo de autoexecução que entra em ação na hora de definir os prazos (também chamados de eventos desencadeadores). Em redes públicas, qualquer parte interessada pode analisar a atividade dos contratos inteligentes de forma que qualquer anomalia possa ser identificada.
Além disso, os traders podem usar contratos inteligentes para obter o pulso do mercado. Isso inclui a capacidade de prever tendências e incertezas no mercado.
Os contratos inteligentes têm uma série de benefícios que incluem imutabilidade de dados. Em termos básicos, imutabilidade refere-se à impossibilidade de alteração dos dados de seu estado original. Isso quer dizer que os dados não podem ser apagados ou alterados de qualquer maneira concebível.
A imutabilidade dos dados torna os contratos inteligentes sempre precisos. Terceiro, em alguns casos, os contratos inteligentes permitem que os pares façam transações diretamente sem a necessidade de um intermediário. Portanto, essas transações são muito baratas, às vezes não custam um centavo.
Propriedades de Contratos Inteligentes
Prova de obrigações e direitos
Uma característica crítica que os contratos inteligentes devem possuir é que não é necessário realizar transações sem estar confortável com todo o processo. Em essência, concordar em entrar em um contrato é totalmente voluntário, mas as consequências são obrigatórias. Portanto, o usuário deve considerar de forma confiável e competente as implicações futuras do contrato que assina. O contrato inteligente deve garantir que este seja sempre o caso, algo que pode ser muito difícil de acertar.
Verificação da validade da transação
Como discutido anteriormente, as informações sobre os detalhes do contrato são facilmente rastreáveis no razão. Portanto, cumpre o requisito dos contratos em que se pode verificar a sua autenticidade e validade.
Consulte Mais informação: Casos de uso de contrato inteligente
Comparação com DAML
Essencialmente, é óbvio a partir do anterior que DAML produz um subconjunto de contratos inteligentes em que um é capaz de corrigir as deficiências das linguagens existentes. Como discutido anteriormente, o fato de que os contratos inteligentes em redes públicas armazenam seus dados em livros-razão torna os contratos inteligentes pouco atraentes para transações confidenciais.
No entanto, a DAML, quando usada em conjunto com redes privadas, garante que apenas as partes que autorizam o contrato, juntamente com aquelas com permissão delegada para visualizar os detalhes, possam ter acesso às informações do contrato. Esta é uma das razões pelas quais observadores experientes acreditam que esta linguagem é a função matadora para instituições financeiras e outras que exigem confidencialidade de transação.
No entanto, DAML como uma linguagem para contratos inteligentes difere dos contratos inteligentes tradicionais quando se trata de compartilhar os acordos escritos. Linguagens de contratos inteligentes como Solidity compartilham as informações publicamente, portanto, toda a rede tem acesso aos detalhes. É por isso que as pessoas debatem sobre DAML vs solidez.
Pelo contrário, os acordos escritos em DAML estão disponíveis apenas com base na necessidade de conhecimento. Isso quer dizer que terceiros indesejáveis não têm acesso aos detalhes. Em particular, a linguagem utiliza uma camada extra de segurança em que os dados não estão nem mesmo disponíveis para partes indesejáveis.
Benefícios do DAML
Código aberto
A plataforma blockchain pode ter apenas 10 anos, mas está crescendo rapidamente. Hoje, a tecnologia está revolucionando as indústrias a taxas sem precedentes. A razão para este rápido crescimento é o fato de que o blockchain é open source e qualquer desenvolvedor pode mexer com ele para encontrar a melhor solução para um determinado problema.
Curiosamente, DAML também é de código aberto desde 4 de abril de 2019. Isso quer dizer que os desenvolvedores têm a liberdade de modificar o código DAML para criar as soluções mais inovadoras quando se trata de contratos inteligentes e do ecossistema de blockchain em geral.
Consulte Mais informação: Blockchain é o futuro?
Permite transações privadas
As linguagens de contrato inteligente tradicionais não contêm recursos nativos com restrições robustas onde os acordos podem ser privados. Em essência, as informações nos acordos são acessíveis a todos os participantes, incluindo terceiros indesejáveis.
No entanto, conforme discutido anteriormente, o DAML incorpora uma camada extra de segurança onde tais informações são acessíveis apenas a partes autorizadas.
Acelera a adoção do Enterprise Blockchain
À medida que o blockchain faz a transição para casos de uso corporativos, um dos problemas que impede a tecnologia é a natureza distribuída das informações. Notavelmente, conforme discutido anteriormente, já existem esforços como a criação de plataformas de blockchain privadas, onde todos os participantes devem adquirir permissão antes de entrar.
No entanto, as empresas ainda enfrentam a ameaça de os concorrentes perceberem sua estratégia. No entanto, a entrada de DAML é uma solução potencial para esse problema. Em particular, o idioma restringe os dados do contrato apenas aos nós autorizados a acessá-lo, e as informações relacionadas aos contratos não estão disponíveis para outros usuários. Como tal, as empresas não têm desculpa a não ser embarcar e explorar o potencial do blockchain empresarial.
Consulte Mais informação: Empresas que implementam tecnologia Blockchain
Suporte integrado para validar a exatidão do modelo
Dada a natureza incipiente do blockchain, a maioria das operações e modelos são experimentais e novos. Portanto, há uma necessidade de validação constante da correção dos modelos. Felizmente, o DAML vem com suporte embutido, onde a validação da exatidão dos modelos é automática.
Abstração de armazenamento
O tempo de execução DAML é robusto e executa operações vitais para tornar a linguagem superior às alternativas existentes. Por exemplo, o tempo de execução abstrai os detalhes do livro-razão em que o desenvolvedor pode se concentrar na lógica do contrato.
Comparando DAML com outras linguagens de contrato inteligente alternativas
O ecossistema do blockchain ainda está crescendo e isso implica que não existem sistemas padrão de operações. Isso também significa que não há uma linguagem única que domine a redação de contratos inteligentes. Como tal, existem inúmeras outras alternativas além de DAML.
DAML vs Solidity
Solidity é uma das primeiras linguagens para escrever contratos inteligentes Ethereum que ganhou popularidade. Essa popularidade foi resultado da plataforma de blockchain da Ethereum ser uma rede preferencial para contratos inteligentes.
Como uma linguagem de programação, Solidity domina a plataforma Ethereum. Esta linguagem utiliza uma sintaxe de alto nível e um script semelhante ao JavaScript. Em particular, a linguagem é vital para o aprimoramento da Máquina Virtual Ethereum. Vários outros blockchains privados como Hyperledger Burrow e Monax usam a linguagem para o desenvolvimento primário.
Além disso, os desenvolvedores do Ethereum usaram o Solidity para escrever a versão 0.4.0 do software. A beleza dessa linguagem é que ela não quebra a funcionalidade da rede blockchain.
Além disso, a linguagem é vital na criação de contratos inteligentes que rodam na máquina virtual Ethereum (EVM). A linguagem aumenta a capacidade dos aplicativos de auto-reforço da lógica de negócios inerente aos contratos inteligentes. Como resultado, as partes em transações no ecossistema Ethereum deixam um registro oficial de suas transações para facilitar a verificação.
Ao contrário do DAML, cuja linguagem é semelhante à de Haskell, o Solidity utiliza uma sintaxe próxima ao ECMAScript. No entanto, o Solidity tem recursos extras, como tipos de retorno variáveis e a capacidade de digitação estática. Além disso, os contratos escritos no Solidity suportam várias heranças que são facilitadas com a linearização C3.
Linguagem de modelagem Actulus
Desde que o blockchain começou a tomar a direção da empresa, várias linguagens específicas do domínio financeiro surgiram para resolver alguns problemas identificados nas linguagens iniciais.
Além de DAML e Solidity, a Actulus Modeling Language (AML) surgiu para ajudar a resolver problemas computacionais nos setores de previdência e seguros. Em particular, AML é um empreendimento multipartidário que incorpora Edlund A / S e a IT University of Copenhagen.
Ao contrário de linguagens como Java e C / C ++, entre outras, que geralmente são aplicáveis em várias configurações, a AML é específica do domínio. Isso quer dizer que a linguagem é útil para um propósito específico ou pode criar aplicativos que rodam em uma plataforma específica. Como tal, a linguagem não pode criar programas, interfaces e aplicativos autônomos.
Contratos de confiança da BOScoin
Esta é outra solução alternativa que usa Web Ontology Language (WOL) para criar contratos inteligentes. A BOScoin sempre emprega Timed Automata Language (TAL) para aumentar a confiança e a robustez dos contratos. Em particular, a linguagem cria Contratos de Confiança que facilitam a criação de Aplicativos Descentralizados (DApps). Essencialmente, o contrato inteligente encoraja a natureza confiável dos DApps.
Saber mais: O que é dApp?
Semelhante ao DAML, o BOScoin não é Turing-Complete. Em vez disso, os idiomas são decidíveis, o que os diferencia da natureza Turing-Completa dos Contratos Inteligentes Ethereum. Ao contrário dos contratos inteligentes da Ethereum, os contratos de confiança da BOScoin usam uma linguagem de ontologia abrangente e mais contida. Em particular, isso se deve à necessidade da equipe criar uma plataforma onde os desenvolvedores possam criar contratos confiáveis.
O que o futuro reserva para DAML?
Do jeito que as coisas estão, o ambiente do blockchain está repleto de linguagens de contrato inteligentes. As muitas linguagens dificultam a interoperação de aplicativos de blockchain e, portanto, atrasam a adoção em massa de blockchain.
Curiosamente, a plataforma Hyperledger sozinha usa mais de seis idiomas, incluindo DAML, que cria contratos inteligentes no Hyperledger Sawtooth.
No entanto, a capacidade de abstração do tempo de execução DAML ajuda a resolver uma série de problemas de bug em contratos inteligentes criados em toda a linha. Ele também torna os aplicativos DAML portáteis para outras plataformas. Além da plataforma do Digital Asset, o suporte DAML foi anunciado para VMware Blockchain e Sawtooth, o que indica que outras plataformas podem adotá-lo.
Portanto, é provável que a linguagem DAML possa se tornar a linguagem universal dos contratos inteligentes nas próximas décadas.
Se você quiser aprender mais sobre tópicos fundamentais semelhantes relacionados à tecnologia de blockchain, certifique-se de verificar nosso curso de blockchain empresarial gratuito.