Por qué contratos inmutables [cerrado]

Soy un ingeniero experimentado, pero bastante nuevo en las tecnologías de cadena de bloques.

Estoy tratando de comprender el "por qué" y el "valor" real de los contratos inmutables.

Nunca vi ni escuché que se lanzaran y escribieran piezas de software perfectamente en el primer intento.

En mi opinión, una pieza de código/lógica que no puede evolucionar, no debería llamarse contrato "inteligente"...

Sé que puede tener un contrato que hace referencia a otro contrato y actualizar esa referencia a una nueva dirección de contrato le da un flujo de "actualización".

Pero, a la luz de los eventos recientes (explotación del contrato de DAO)... ¿Me equivoco al ver el concepto de piezas inmutables de lógica (contratos) defectuoso en su premisa?

¿Cómo pueden las organizaciones, los desarrolladores y sus usuarios confiar en la plataforma?

¿Puedes reescribir tu pregunta para que sea más neutral? Intente dejar su opinión personal en la puerta e intente cuestionar el problema central de la inmutabilidad.
@JorisBontje No es una opinión personal. Realmente no sé, vengo de un desarrollo de software tradicional, por lo tanto, busco ser educado. me parece perfectamente redactado
poner esto en espera está basado en opiniones. Estoy haciendo una pregunta válida aquí! Scr#w tú yvv tus sesgos

Respuestas (2)

Cuando hablamos de inmutabilidad, es porque una vez que se escribe un tx en la cadena de bloques, está allí de forma inmutable. En un segundo punto, los contratos inteligentes se pueden actualizar, pero primero debe agregar una función de actualización a su contrato. Tendrás que tener mucho cuidado con cómo actualizar tu contrato si no quieres terminar como el DAO. :)

Había 1000 líneas de código en el DAO... ¡tal vez era demasiado complejo! Y no hay herramientas para verificar todo esto. De todos modos, verifique y vuelva a verificar... Incluso probar una recompensa en la red de prueba podría ser una forma de verificar.

ese es mi punto. TX inmutable tiene sentido para mí. Pero para los contratos... Dada la naturaleza del desarrollo del software y la madurez, el lanzamiento y la llamada "actualización del contrato" parecen tan frágiles.

Los contratos inteligentes están destinados a describir y hacer cumplir un acuerdo.

Olvidemos por un momento las cosas malas que le sucedieron a The DAO y tomémoslo como ejemplo.

  1. El DAO es un programa informático que describe y ejecuta los estatutos de una organización.
  2. Todos pueden unirse a esta organización invirtiendo Ether . Los miembros pueden votar cómo usar los fondos de ether de una manera rentable o caritativa.

Si le pido que ejecute este programa de estatutos en su servidor, tendría cierto control de la organización. Tú podrías:

  1. Cerrar la organización
  2. Alterar el programa para que cambien los estatutos
  3. Revertir algunos votos en la base de datos

Esto difícilmente se puede hacer con programas inmutables que se ejecutan en la cadena de bloques de Ethereum. Es difícil pero no imposible: se puede hacer si la mayoría de los nodos de Ethereum están de acuerdo, por lo que requiere al menos un debate abierto como experimentamos ahora con el debate de la bifurcación dura de DAO .