Ethereum 2.0 vs Symbol -Parte 3

Al contrario de lo que defiende la mayoría de la gente, creo que la comparación saca lo mejor de ambas partes. Es una cuestión de perspectiva.
¿Qué son los contratos inteligentes de Ethereum?

Cuando Ethereum comenzó en 2015, se consideró Blockchain 2.0 con la introducción de Smart Contract.
¿Qué es un contrato inteligente en realidad? Según ethereum.org, “es un código de colección y datos que residen en una dirección específica en la cadena de bloques de Ethereum”. Una vez que se cumplan todos los criterios, el código se ejecutará solo.
Hay 2 tipos de cuentas en la plataforma Ethereum. Un tipo representa a un usuario y el otro representa un contrato inteligente. Ambos mantienen un saldo y pueden enviar transacciones a través de la red. Si bien la cuenta de usuario está controlada por el usuario que posee la clave privada, una cuenta de contrato inteligente no tiene una clave privada y se activa mediante una transacción enviada por una cuenta de usuario.
“En lugar de un libro mayor distribuido, Ethereum es una máquina de estado distribuida”. Para alterar el estado de una cuenta, es necesario enviar una transacción a la red, incluida la implementación de un contrato inteligente. Cualquiera puede codificar un contrato inteligente con Solidity o Vyper. La pregunta es: “¿Es a prueba de balas?”
Los desafíos de los contratos inteligentes
Según el Diccionario de Cambridge, “inteligente” tiene el significado de usar computadoras para hacer que algo funcione de manera independiente. Y “contrato” significa un documento legal que establece y explica un acuerdo formal entre dos (o más) personas o grupos diferentes. Los contratos inteligentes son todo lo anterior, excepto que no son 100% independientes y aún no se puede hacer exigible su cumplimiento por ley.
No son inteligentes. No son contratos. – David B. Black
Los contratos inteligentes en EVM (Ethereum Virtual Machine) pueden ejecutar arbitrariamente cualquier lógica, ya que EVM es Turing-complete. Con la implementación de un contrato inteligente, 2 o más partes pueden confiar entre sí sin utilizar un tercero de confianza. Esto reduce en gran medida el tiempo y el costo de ejecutar un contrato. Un ejemplo muy simple, Alice quiere tener acceso a un programa en línea de Bob. Normalmente, utilizarán un revendedor que se asegurará de que Alice paga y Bob cumple. Con un contrato inteligente, ambas partes no deben preocuparse si una de las partes no cumple, ya que el intercambio de propiedad se realiza automáticamente. (Por supuesto, la aplicación puede ser mucho más complicada que esto, pero aquí no vamos a discutir los casos de uso).
A veces, tu fuerza es tu debilidad. La solidez de Ethereum no es difícil de aprender, pero sí de dominar. Es difícil de dominar, en mi opinión, principalmente debido a la integridad de Turing de Ethereum, no a la solidez en sí.
1.Todos los cálculos de una DApp (aplicación descentralizada) ocurren en EVM. Una vez implementado, estará ahí para siempre mientras viva EVM. Como dice Ivan on Tech, “… dado que los contratos inteligentes se ejecutan automáticamente, es crucial encontrar sus riesgos de seguridad antes que un hacker”. Si se encuentra un error después de implementar el contrato inteligente, no hay forma de que lo rectifique. Para neutralizar los riesgos, podría costarle implementar otro contrato inteligente. (Puede leer aquí y aquí algunos ejemplos de errores).
2.Incluso si el contrato inteligente no tiene ningún error, no se permite una base ad hoc. En caso de que el programa de Bob tenga un problema y deba detenerse a la mitad, no hay forma de que Alice pueda detener el pago planeado.
3.Como EVM se ejecuta en una red distribuida, y sus códigos de contrato inteligente se ejecutan en EVM. Se ejecutará muchas veces en miles de computadoras y puede resultar costoso. Si los códigos se ejecutan en un bucle sin fin, el usuario que realizó la llamada de transacción al contrato inteligente encontrará que la cuenta se está agotando.
El problema 2 se puede mitigar utilizando solo un contrato inteligente para obtener resultados deterministas en los que cualquier “qué pasaría si” es insignificante o tiene una lógica más complicada. El problema 3 se puede minimizar limitando los fondos en una cuenta. En cuanto al número 1, los desarrolladores experimentados y los códigos de alta calidad son muy importantes y es por eso que Solidity es difícil de dominar.
Un buen contrato inteligente debe ser determinista, rescindible y aislado.
Además, un contrato inteligente es difícil de dominar debido al hecho de que blockchain en sí es un tema importante y bastante difícil de dominar. Al desarrollar una aplicación para blockchain, DApp o no, debemos tener en cuenta consideraciones adicionales sobre la estructura de datos, la seguridad, la transparencia, la facilidad de uso y el costo incurrido. Estos factores afectan a todas las cadenas de bloques. Para reducir el costo de transacción de llamar a un contrato inteligente, otra opción es tener una cadena fuera de la cadena o una cadena lateral para agregar transacciones antes de enviar el resultado a la cadena principal.
Complementos de Symbol
Symbol no es una cadena de bloques completa de Turing. Tiene las funciones que se implementan como contratos inteligentes en Ethereum cargadas como sus complementos.
Turing incompleto: una cadena de bloques Turing incompleta tendrá una funcionalidad limitada y no será capaz de realizar saltos y / o bucles. Por tanto, no pueden entrar en un bucle sin fin. – blockgeeks.com
A veces, lo que parece ser una debilidad puede convertirse en una fortaleza. Es debido a su “Turing incompleto” que Symbol no necesita preocuparse de que las transacciones caigan en bucles sin fin.
Funciones como firma múltiple, servicios de custodia, servicios de nombres, tokenización y muchas más están precargadas como complementos en Symbol. Esas funciones se han probado exhaustivamente por su seguridad.
Nuestro marco contractual hace que Symbol sea más resistente a los errores humanos y a los ataques a la red. Esto proporciona flexibilidad y elimina la complejidad, lo que acelera el desarrollo y el tiempo de incorporación. – symbolplatform.com
Los complementos precargados en Symbol cubren las funciones necesarias y comunes para crear una aplicación. Con esos complementos, podrá crear la mayoría de las aplicaciones necesarias. Para llamar a una función, solo necesita enviar una transacción asociada a ella. Si de alguna manera encuentra que faltan algunas funciones que necesitaba, puede crear su propio complemento e implementarlo en Symbol blockchain. Los nuevos complementos deberán aceptarse en la cadena de bloques de Symbol. Todos los nodos de la red que opten por no adoptar la actualización de la configuración se bifurcarán.
El enfoque del complemento permite a los desarrolladores introducir diferentes formas de alterar el estado de la cadena a través de transacciones sin modificar el motor central o interrumpir otras funciones. – symbolplatform.com
Un complemento debe estar escrito en C ++, el lenguaje en el que está escrito Symbol. Sin embargo, para usar los complementos disponibles, los usuarios solo necesitan enviar una transacción para llamar a los respectivos complementos. Se puede hacer únicamente a través de códigos y CLI o mediante una aplicación. Para integrar una aplicación con Symbol blockchain, la aplicación se puede escribir en cualquier idioma. La integración se realizará mediante llamadas a API. Esto reduce en gran medida el tiempo de desarrollo y prueba de la aplicación. Permite que las aplicaciones heredadas se integren con Symbol blockchain sin reconstruir las aplicaciones o volver a capacitar a los usuarios. Es posible que los usuarios ni siquiera se den cuenta de que Symbol blockchain se está ejecutando en segundo plano.
Aunque no es Turing completo, las acciones deterministas como el caso mencionado anteriormente entre Alice y Bob se pueden ejecutar de manera descentralizada con el complemento Transacción agregada de Symbol.
Los complementos de Symbol son deterministas, terminables y aislados.
¿Qué blockchain es mejor? Depende de lo que estés buscando. ¿Una aplicación completamente descentralizada o una más escalable y rentable?
¿Cliché? Tal vez. Elecciones. ¿No es esa la razón de la disponibilidad de diferentes cadenas de bloques?
Si bien el contrato inteligente de Ethereum es como Play-Doh, los complementos de Symbol son como Lego. Play-Doh puede hacer modelos en cualquier forma pero más frágiles, mientras que los modelos hechos por Lego son con bordes pero más resistentes. Básicamente, ambos pueden construir cualquier cosa.
“Tendemos a sobreestimar el efecto de una tecnología a corto plazo y subestimar el efecto a largo plazo”, Roy Amara.
Hay muchos más desarrollos que vale la pena esperar. ¡Mire este espacio y seamos testigos de la revolución juntos!
Un agradecimiento especial a Anthony y David por revisar este artículo.
Esta es una traducción al español del artículo original (en inglés) escrito por Ivy Fung en Medium . Traducido y editado por NEM en Español. Juntos estamos haciendo que NEM sea más fuerte y que Symbol sea más brillante.
Para más información y noticias sobre NEM, le invitamos a seguirnos en nuestras redes sociales: Facebook, Twitter e Instagram