Una mirada más profunda a las diversas plataformas de contratos inteligentes

Hola Habr! Le presento la traducción del artículo " Una mirada más profunda a las diferentes plataformas de contratos inteligentes ".

Vivimos en una era de contratos inteligentes. Si bien Bitcoin nos mostró que el sistema de pago puede existir en una red descentralizada de igual a igual, fue Ethereum quien abrió la caja de Pandora blockchain de segunda generación, y la gente finalmente vio el verdadero potencial de las aplicaciones distribuidas (Dapps) y los contratos inteligentes.

En este artículo veremos una de las nuevas plataformas de contrato inteligente de Cardano y veremos cuál es la diferencia.

Antes de hacer esto, hagámonos una pregunta.

¿Qué son los contratos inteligentes?


Los contratos inteligentes son contratos automatizados. Se ejecutan automáticamente con instrucciones específicas escritas en un lenguaje de programación que se ejecutan cuando se cumplen ciertas condiciones.

¿Qué propiedades de los contratos inteligentes satisfarán las condiciones de uso en los registros distribuidos?

Todo lo que funciona en la cadena de bloques no debe modificarse y debe poder funcionar en varios nodos sin comprometer la integridad del estado del sistema. Como resultado, la funcionalidad de un contrato inteligente debe ser tres cosas:

- determinismo
- Capacidad para completar a tiempo
- aislamiento

Característica # 1: determinismo


Un programa es determinista si cada vez da la misma salida a una entrada dada. Por ejemplo. Si 3 + 1 = 4, entonces 3 + 1 siempre será 4. Por lo tanto, cuando un programa produce el mismo conjunto de datos de entrada en diferentes computadoras, el programa se llama determinista.

Hay varios puntos cuando un programa puede operar de una manera no determinista:

- llamar a la función no determinista
- uso de datos no deterministas
- llamada dinámica, dado que la función o programa llamado se determina solo en tiempo de ejecución, la llamada en sí no es determinista.

Función # 2: capacidad de completar a tiempo


En lógica matemática, tenemos un error llamado "problema de apagado". Ella afirma que no hay forma de averiguar si un programa determinado puede cumplir su función durante un período de tiempo. En 1936, Alan Turing demostró usando el Problema Diagonal de Cantor que no hay forma de averiguar si un programa determinado puede terminar su trabajo a tiempo o no ...
Esto es obviamente un problema con los contratos inteligentes porque los contratos, por definición, deben poder completarse a tiempo. Hay varias formas de proporcionar una forma de finalizar un contrato desde el exterior y evitar entrar en un ciclo interminable de agotadores de recursos:

  • La incompletitud de Turing : la funcionalidad limitada no permitirá saltos y / o ciclos. En consecuencia, un contrato inteligente no podrá entrar en un bucle infinito.
  • Medición de pasos y costos : el programa simplemente puede rastrear el número de comandos completados y luego completar el trabajo después de completar un cierto recuento de pasos. Otro método es un contador. Aquí, los contratos son prepagos. Cada instrucción requiere una cierta cantidad. Si la tarifa pagada excede la tarifa prepaga, el contrato se rescinde.
  • Temporizador : si la ejecución del contrato no se ajusta dentro de un cierto período, entonces se termina por la fuerza.

Función No. 3: Aislamiento


En la cadena de bloques, cada participante puede cargar un contrato inteligente. Sin embargo, los contratos pueden, a sabiendas e inconscientemente, contener virus y errores.

Si el contrato no está aislado, esto puede interrumpir la operación de todo el sistema. Por lo tanto, es muy importante que el contrato esté aislado para salvar a todo el ecosistema de cualquier consecuencia negativa. Por lo general, los contratos inteligentes se ejecutan usando uno de dos sistemas:

  • Máquinas virtuales : (Ethereum y Neo)
  • Docker : (tela)

Comparemos estos dos y determinemos qué crea el mejor ecosistema. Para simplificar, vamos a comparar Ethereum (máquina virtual) con Fabric (Docker).

Máquinas virtualesDocker
Los contratos contienen funciones no deterministas y los datos se limitan a la información contenida en la cadena de bloques. Además, las llamadas dinámicas pueden ser de naturaleza no determinista. Los datos disponibles son deterministasDebido a las características de diseño de Docker, el sistema depende de los usuarios que crean contratos deterministas. No es la mejor solución
Ethereum usa el "Medidor de costos" para completar el contrato. Cada paso del contrato cuesta "gas" y tan pronto como el costo de ejecución excede el monto prepago, la ejecución se termina.La tela usa un temporizador. Dado que diferentes nodos pueden tener diferentes temporizadores debido a diferentes capacidades informáticas, existe el riesgo de romper el proceso de consenso.
Buenas propiedades aislantesEl aislamiento está determinado por el ecosistema acoplable (aislamiento insuficiente)

Por lo tanto, las máquinas virtuales proporcionan un mejor determinismo, finalización y aislamiento del entorno para contratos inteligentes.

Examinamos algunas características de la implementación de contratos inteligentes.

Debo decir que los contratos inteligentes se están convirtiendo en una parte integral y un componente necesario de las aplicaciones distribuidas modernas.

Estas son algunas plataformas de blockchain que proporcionan características de contrato inteligentes:

  • Ethereum
  • Eos
  • Estelar
  • Cardano
  • Neo
  • Tela Hyperledger
  • Ondulación
  • Olas
  • Plataforma Ergo

En los siguientes artículos, veremos más de cerca los mecanismos de contrato inteligente de algunas de estas plataformas.

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


All Articles