- Volver al menú
- Volver al menúPrecios
- Volver al menúInvestigación
- Volver al menúConsenso
- Volver al menú
- Volver al menú
- Volver al menú
- Volver al menúWebinars y Eventos
¿El código es ley? Aún no.
¿Debería el código ser ley? En este artículo de Opinión , Lukas Abegg argumenta que existen muchos obstáculos científicos que superar antes de que esto sea posible.
Después del fracaso del experimento DAO, se produjo un acalorado debate Regulación sobre cómo avanzar con el desarrollo de la cadena de bloques de Ethereum.
Las posiciones variaron desde aferrarse al paradigma de la inmutabilidad con "el código es ley" como la regla más importante a Síguenos, hasta un enfoque más Human de preguntar a los mineros y desarrolladores de Ethereum qué medidas se deberían tomar.
Sin embargo, se dedicó poco tiempo a la cuestión de qué es unacontrato inteligentees realmente capaz de actuar.
Pero creo que esta misma pregunta debería estar en el CORE del debate y la respuesta respectiva es la única base sensata sobre la que se puede construir una Regulación sólida para el desarrollo de blockchain y contratos inteligentes.
Ahora veamos más de cerca las capacidades de los contratos inteligentes.
Naturaleza de la información
La característica de un contrato inteligente es en su esencia misma el procesamiento de la información.
Si bien el concepto de información varía y no existe una definición universal, es útil comenzar con la formateoría de la informaciónse ocupa de la información, ya que la teoría de la información es parte del ADN de la informática actual.
Por lo tanto, es necesario dividir la información eninformación sintáctica y información semántica. El primero son las reglas sobre la relación entre los símbolos y el segundo es el significado atribuido a dichos símbolos (es decir: "intención"). La línea entre los dos es algo borrosa y distinguirlos a veces es difícil (lo que, como veremos más adelante, conduce al problema de las DAO en primer lugar), pero claramente existe una diferencia entre ellos.
Un artículo interesante sobre la dificultad de capturar la "intención" fueescrito recientementepor Vitalik Buterin.
La información sintáctica se puede analizar y medir (comoShannon y Tejedor se hizo en "Una teoría matemática de la comunicación") y está sujeta a demostración matemática. Sin embargo, la información semántica es lo que un ser Human atribuye a un símbolo. Puede representar cualquier cosa que un cerebro Human sea capaz de pensar.
Normalizar la información semántica y hacerla procesable es una tarea bastante difícil, por decirlo suavemente. La informática (en particular, los investigadores de inteligencia artificial)lucha muchoal intentar capturar información semántica, como el lenguaje natural, y representar su significado en software. Para empeorar las cosas, la información semántica puede ser cualquier cosa, desde bastante simple hasta muy compleja.
La información semántica bastante simple y formal, como una patente, por ejemplo, ya puede ser procesada por lenguaje informático. Piense en un archivo CAD de un widget patentado en un ordenador que permite que una impresora 3D imprima exactamente lo que contiene dicho archivo CAD.
La información semántica más compleja, como por ejemplo el concepto jurídico de «buena fe», aún no puede ser gestionada por la informática. Para ello, se requiere un gran avance en la investigación en inteligencia artificial.
Falta de gobernanza
Otra forma de hacer una distinción entre estos dos tipos de información sería referirse a ellos como"código seco" y "código húmedo", un concepto acuñado por el criptógrafo Nick Szabo.
Para ilustrar por qué es imperativo respetar esa naturaleza bilateral de la información, podemos observar a The DAO. El imperativo de "no hacer daño" (es decir: información semántica) solo se escribió en la página de inicio de The DAO y no en su código (que, en su mayor parte, procesaba solo información sintáctica).
Los partidarios de una doctrina estricta de "el código es ley" argumentaron que el hacker de The DAO podría, por lo tanto, KEEP con el ether drenado, ya que el imperativo de "no hacer daño" solo figuraba en las especificaciones de la página principal, pero no en el código en sí, y por lo tanto no era vinculante. Llevaron su argumento aún más lejos, aferrándose a la blockchain de Ethereum no bifurcada y creando... un entorno de Ethereum paralelo, Ethereum Classic, lo que produce algunos problemas bastante complicados para los usuarios y desarrolladores.
Si hubiera existido una herramienta de gobierno adecuada que hubiera manejado la información semántica (es decir: que hubiera asegurado que todos cumplieran con la regla de "no hacer daño" y hubiera brindado medios para lidiar con los infractores), tal división probablemente no hubiera sucedido.
Prueba matemática e inmutabilidad
Cuando Shannon trabajó en la teoría de la comunicación, tuvo mucho cuidado de que su investigación se limitara al ámbito de la información sintáctica. Eso le permitió demostrar matemáticamente sus hallazgos.
Eso no podría haberse hecho si hubiera estado involucrada información semántica. Para Shannon, la prueba matemática era importante para el avance de la ciencia.
Codificar un contrato inteligente no supone un avance científico real y, por lo tanto, ONE podría pensar que la demostración matemática no es importante. Sin embargo, en cuanto se añade inmutabilidad a un código mediante una implementación de blockchain, se eleva el listón de la corrección del código a un nivel increíblemente alto, si no completamente inalcanzable (cf.análisis más detallado).
Dado que su código es inmutable y no se puede modificar, debe estar absolutamente seguro de que no tiene fallas.
Por lo tanto, de repente la prueba matemática de su código parece una característica bastante importante.
Y, sin embargo, Solidity, tal como se usa en Ethereum para la implementación de contratos inteligentes, no es un lenguaje que permita la prueba matemática (es decir, no es referencialmente transparente). Permitió la implementación de información semántica, o dicho explícitamente, la intención de los desarrolladores. La llamada de recursión que llevó al hack de The DAO debería haberse utilizado de una manera específica, como lo pretendían los desarrolladores.
Obviamente, dicha intención no fue capturada por el código y por lo tanto no impidió que el hacker de The DAO drenara The DAO.
En conclusión: la inmutabilidad y la corrección del código son como los dos platillos de una balanza. Cuanto más se priorice la inmutabilidad, mayor será el cuidado que se debe tener con la corrección del código.
Necesidad de código verificable
Si casi todo su contrato inteligente se ejecuta de manera inmutable en la cadena de bloques (como algunos entusiastas de "el código es ley" imaginan que es la única forma de hacerlo), lo más probable es que no pueda poner suficiente "contrapeso" en la corrección de su código.
Todos estos hallazgos están lejos de ser noticia.
Ya en 2002, Nick Szabo escribió un artículo sobre unlenguaje formal para contratos, en el que señaló explícitamente que el uso del lenguaje informático procedimental puede ser tentador, pero causar más daño que beneficio. Esto T siquiera menciona todos los lenguajes de programación existentesque se utilizan en la industria financiera o nuevas formas de crear lenguajes de programación, que permiten la demostración formal (muestras)aquíy aquí (https://legalese.com/docs).
Incluso el propio desarrollador de Solidity, el Dr. Gavin Wood,imaginadoEn una etapa temprana de la concepción de Solidity, se está desarrollando un lenguaje que permite la prueba matemática y las investigaciones más recientes sugieren queTraducción de Solidez a F*Sería necesario llegar a un código verificable.
Sin embargo, ya parece claro que el estado deseado de legalidad, donde no se necesita ninguna intervención externa a un contrato inteligente, aún no se ha alcanzado. Y probablemente llevará bastante tiempo llegar allí, si es que se logra.
Llenando el vacío técnico
Sin embargo, esto no significa que el concepto de contratos inteligentes haya fracasado o sea inútil. Simplemente requiere una arquitectura que respete los límites de la Tecnología actual y una solución ingeniosa para las lagunas en el lenguaje de programación y la inteligencia artificial que aún deben subsanarse.
Una solución alternativa de este tipo podría residir en el sistema legal del espacio físico clásico, en particular en un área específica llamadaResolución alternativa de disputas(ADR).
Su propósito es brindar a dos o más partes litigantes los medios formales para resolver sus disputas en privado sin tener que recurrir a tribunales públicos estatales. Proporciona herramientas que le permiten establecer sus propias reglas, definir los procesos de cómo gestionar los conflictos y/o seleccionar a los jueces de su elección.
También tiene el atractivo de ser legalmente vinculante, incluso en el ámbito tradicional. Es un campo de juego formidable para explorar, por ejemplo:Ideas futárquicas como los Mercados de prediccióno nuevos conceptos de atribución de valor comoRetroalimentaciónpara elegir un árbitro. Y ni siquiera es muy difícil implementar dichas reglas de arbitraje en un contrato inteligente.
Simplemente asegúrese de que cada usuario de un servicio de contrato inteligente acepte estar sujeto a dichas reglas de arbitraje, al igual que usted está sujeto a reglas de arbitraje constituidas de manera privada (por ejemplo: las de la ICANN).Política Uniforme) al registrar un nombre de dominio.
Se puede encontrar cómo se vería ese LINK entre los contratos inteligentes y las reglas legales del espacio físico.aquí(Estas no son reglas ADR sino reglas de derecho contractual. Sin embargo, la implementación sería muy similar).
Avanzando hacia la alegalidad
Al principio, podría parecer extraño utilizar conceptos antiguos para avanzar hacia un área nueva.
Sin embargo, si se considera como estructuras de soporte —similares a las de un objeto recién impreso en 3D, que pueden retirarse gradualmente a medida que el nuevo objeto se mantiene en pie—, la singularidad desaparece. Es más, esta forma de avanzar podría incluso tener un componente heurístico, ya que ayuda a Aprende más sobre nuevos conceptos y herramientas de gobernanza que podrían reemplazar por completo las herramientas legales tradicionales en el futuro.
Para cerrar el círculo desde el principio, debemos respetar la naturaleza bilateral de la información y dejar que el código procese la información sintáctica e implementar herramientas de gobernanza para que los seres Human procesen la información semántica.
El uso de una herramienta de gobierno como las reglas de arbitraje específicas de los contratos inteligentes en combinación con el reconocimiento de que los contratos inteligentes no son ni inteligentes ni contratos sino simplemente código ejecutado verificablemente (VEC) puede proporcionar una forma de probar nueva Tecnología de una manera menos desastrosa que con The DAO y también puede brindar la certeza necesaria para que los contratos inteligentes sean interesantes para las empresas.
Al menos hasta que la ciencia se ponga al día con la visión de que “el código es ley” y un verdadero estado dealegalidadse puede alcanzar.
Imagen de golfvía Shutterstock
Note: The views expressed in this column are those of the author and do not necessarily reflect those of CoinDesk, Inc. or its owners and affiliates.