Um olhar mais profundo sobre as várias plataformas de contratos inteligentes

Olá Habr! Apresento a você a tradução do artigo " Um olhar mais profundo sobre diferentes plataformas de contratos inteligentes ".

Vivemos uma era de contratos inteligentes. Enquanto o Bitcoin nos mostrou que o sistema de pagamento pode existir em uma rede ponto a ponto descentralizada, foi a Ethereum quem abriu a caixa de Pandora da segunda geração do blockchain, e as pessoas finalmente viram o verdadeiro potencial de aplicativos distribuídos (Dapps) e contratos inteligentes.

Neste artigo, examinaremos uma das novas plataformas de contratos inteligentes da Cardano e veremos qual é a sua diferença.

Antes de fazer isso, vamos nos fazer uma pergunta.

O que são contratos inteligentes?


Contratos inteligentes são contratos automatizados. Eles são auto-executáveis ​​com instruções específicas escritas em uma linguagem de programação que são executadas quando determinadas condições são atendidas.

Quais propriedades dos contratos inteligentes atenderão às condições de uso em registros distribuídos?

Tudo o que funciona na blockchain deve ser inalterado e capaz de funcionar em vários nós sem comprometer a integridade do estado do sistema. Como resultado, a funcionalidade de um contrato inteligente deve ser de três coisas:

- Determinismo
- Capacidade de concluir a tempo
- isolamento

Recurso # 1: Determinismo


Um programa é determinístico se, sempre que der a mesma saída para uma determinada entrada. Por exemplo, Se 3 + 1 = 4, 3 + 1 será sempre 4. Portanto, quando um programa produz o mesmo conjunto de dados de entrada em computadores diferentes, o programa é chamado determinístico.

Existem vários pontos em que um programa pode operar de maneira não determinística:

- chamar função não determinística
- uso de dados não determinísticos
- chamada dinâmica, uma vez que a função ou programa chamado é determinado apenas em tempo de execução, a chamada em si é não determinística.

Função # 2: capacidade de concluir a tempo


Na lógica matemática, temos um erro chamado "problema de desligamento". Ela afirma que não há como descobrir se um determinado programa pode cumprir sua função por um período de tempo. Em 1936, Alan Turing provou, usando o Problema Diagonal da Cantor, que não há como descobrir se um determinado programa pode terminar seu trabalho a tempo ou não ...
Obviamente, isso é um problema com contratos inteligentes, porque os contratos, por definição, devem poder ser concluídos no prazo. Existem várias maneiras de fornecer um meio de rescindir um contrato de fora e evitar entrar em um ciclo interminável de contratos que esgotam os recursos:

  • Turing incompletude : funcionalidade limitada não permitirá saltos e / ou ciclos. Consequentemente, um contrato inteligente não poderá inserir um loop infinito.
  • Etapas de medição e custo : o programa pode simplesmente rastrear o número de comandos concluídos e, em seguida, concluir o trabalho após concluir uma certa contagem de etapas. Outro método é um contador. Aqui, os contratos são pré-pagos. Cada instrução requer uma certa quantidade. Se a taxa paga exceder a taxa pré-paga, o contrato é rescindido.
  • Temporizador : se a execução do contrato não se enquadrar dentro de um determinado período, será encerrada à força.

Função No. 3: Isolamento


No blockchain, cada participante pode fazer upload de um contrato inteligente. No entanto, os contratos podem, consciente e inconscientemente, conter vírus e erros.

Se o contrato não for isolado, isso pode atrapalhar a operação de todo o sistema. Portanto, é muito importante que o contrato seja isolado para salvar todo o ecossistema de quaisquer consequências negativas. Normalmente, contratos inteligentes são executados usando um dos dois sistemas:

  • Máquinas virtuais : (Ethereum e Neo)
  • Docker : (tecido)

Vamos comparar esses dois e determinar o que cria o melhor ecossistema. Para simplificar, vamos comparar o Ethereum (máquina virtual) com o Fabric (Docker).

Máquinas virtuaisDocker
Os contratos contêm funções não determinísticas e os dados são limitados às informações contidas na blockchain. Além disso, as chamadas dinâmicas podem ser de natureza não determinística. Os dados disponíveis são determinísticosDevido aos recursos de design do Docker, o sistema depende de usuários que criam contratos determinísticos. Não é a melhor solução
A Ethereum usa o "Medidor de custo" para concluir o contrato. Cada etapa do contrato custa “gás” e, assim que o custo de execução excede o valor pago antecipadamente, a execução é encerrada.O tecido usa um timer. Como nós diferentes podem ter cronômetros diferentes devido a diferentes capacidades de computação, existe o risco de interromper o processo de consenso.
Boas propriedades isolantesO isolamento é determinado pelo ecossistema docker (isolamento insuficiente)

Assim, as máquinas virtuais fornecem melhor determinismo, conclusão e isolamento do ambiente para contratos inteligentes.

Examinamos alguns recursos da implementação de contratos inteligentes.

Devo dizer que os contratos inteligentes estão se tornando parte integrante e um componente necessário dos aplicativos distribuídos modernos.

Aqui estão algumas plataformas de blockchain que fornecem recursos inteligentes de contrato:

  • Ethereum
  • Eos
  • Stellar
  • Cardano
  • Neo
  • Tecido Hyperledger
  • Ripple
  • Ondas
  • Plataforma Ergo

Nos artigos a seguir, examinaremos mais de perto os mecanismos de contratos inteligentes de algumas dessas plataformas.

Source: https://habr.com/ru/post/pt412803/


All Articles