Contratos Inteligentes - Token-Economy-Book/2ndEdition-Spanish GitHub Wiki
Un contrato inteligente es una pieza de software procesada por un registro distribuido. Es una herramienta de gestión de derechos que puede formalizar y ejecutar acuerdos en Internet entre partes que no se confían, y trae incluido en sí el cumplimiento normativo y el control. Los contratos inteligentes pueden reducir los costos de formalización y cumplimiento de un contrato simple entre dos partes, los estatutos de una organización, o crear diferentes tipos de tokens.
¿Firmarías un contrato con alguien que nunca conociste, y por ende no conoces y no confías? ¿Te convertirías en inversor de una pequeña empresa en un país extranjero? ¿Le prestarías dinero a un desconocido, como un granjero en Guatemala, un maestro en China o un cajero en el Reino Unido? ¿Configurarías un contrato vinculante por una compra de 1 € en Internet, como comprar una canción a un artista? La respuesta en todos los casos mencionados es probablemente no, dado que el costo de crear un contrato legalmente válido para asegurar tu transacción es muy alto. Como opción, podrías usar intermediarios de confianza para hacer los contratos, pagándoles a ellos una comisión por sus servicios. Los modelos de negocio de muchos gigantes de la Web2 como Amazon, eBay, Airbnb y Uber son consecuencia de la ausencia tanto de una capa confiable y nativa que permita hacer pagos en valor, como de un sistema de identidad centrado en el usuario. Los contratos inteligentes combinados con sistema de identidad centrados en el usuario pueden solucionar el problema. Pueden formalizar relaciones entre personas e instituciones y sobre los activos que poseen, totalmente en forma P2P, sin necesidad de recurrir a intermediarios de confianza.
Si bien el concepto de contrato inteligente no es nuevo, las redes de blockchain parecen ser el catalizador para la implementación de los contratos inteligentes. Una forma mucho más primitiva de contrato inteligente es la máquina expendedora. Las reglas para una transacción son programadas en la máquina. Seleccionas el producto apretando el número que corresponde al producto que querés e insertas dinero. Si insertas suficiente dinero, la máquina está programada para expulsar el producto. Si no lo haces, no te entregará el producto, o si se quedó sin producto, te devolverá el dinero. Las expendedoras automáticas volvieron obsoletos a ciertos vendedores callejeros, pero también expandieron el servicio, ofreciendo disponibilidad 24/7 en lugar de horarios de atención limitada en tiendas operadas por personas.
Contratos auto-ejecutables
Un contrato inteligente es un contrato auto-ejecutable, formalizado como un software. El código contiene una serie de reglas con las que las partes del contrato inteligente acuerdan interactuar recíprocamente. Cuando y si se cumplen las reglas predefinidas, el contrato se cumple automáticamente por el consenso de la mayoría en una red de blockchain. Los contratos inteligentes ofrecen mecanismos para gestionar de manera eficiente activos tokenizados y derechos de acceso entre dos o más partes. Uno los puede imaginar como cajas criptográficas que sólo liberan valor o acceso, si y cuando ciertas condiciones específicas se cumplen. Por ello, los contratos inteligentes ofrecen una forma pública y verificable de embeber reglas de gobernanza y lógicas de negocio en pocas líneas de código, lo que puede ser auditado y cumplido por el consenso de una mayoría en una red P2P.
Un contrato inteligente puede ser invocado por entidades que están dentro (otros contratos inteligentes) o fuera (fuentes de datos externos) de una red de blockchain. Las fuentes de datos externos, llamados “oráculos”, insertan datos que son relevantes para un contrato inteligente y vienen desde el mundo analógico hacia el contrato inteligente. Pueden verificar el cumplimiento del contrato en tiempo real y así ahorrar costos, dado que el cumplimiento normativo y el control ocurren de manera inmediata. Los contratos inteligentes reducen los costos de transacción de la contratación. Específicamente, reducen los costos de (i) negociar y contrato, (ii) escribirlo, y (iii) cumplirlo. Si se implementan de manera adecuada, los contratos inteligentes podrían ofrecer seguridad transaccional superior a la de los contratos tradicionales, reduciendo los costos de coordinación de auditar y hacer cumplir los contratos. Los contratos inteligentes también esquivan el dilema del principal-agente[^1] en una organización, ofreciendo más transparencia y responsabilidad, y reduciendo la burocracia (leer más: Parte 2 - Economía Institucional de las DAOs).
El término “contrato inteligente” en sí mismo es poco feliz, dado que los contratos inteligentes no son particularmente listos ni reflejan contratos legalmente válidos: (i) un contrato inteligente sólo puede ser tan inteligente como lo sea la gente que lo codificó, teniendo en cuenta toda la información disponible al momento de codificarlo; (ii) si bien los contratos inteligentes pueden tener el potencial de hacer cumplir contratos legales si ciertas condiciones se cumplen, antes tenemos que resolver muchas inquietudes técnico-legales, que requerirán tiempo y diálogo interdisciplinario entre abogados y desarrolladores de software.
Aún más, la seguridad de los contratos inteligentes es aún un problema que debe ser resuelto a nivel técnico. Cláusulas contractuales más sofisticadas deben ser implementadas para que los contratos inteligentes cumplan la normativa de los contratos legales, incluyendo mecanismos descentralizados de resolución de disputas. Mientras dichos desarrollos tomarán tiempo en madurar, algunas soluciones interesantes de resolución de disputas ya están en desarrollo, ejemplos de las cuales son “Kleros”, “Openlaw”, o “Jur”. Seguramente veremos emerger una fusión de los contratos legales y los contratos inteligentes en los próximos años. Al mismo tiempo en que se escribe este libro, las mejores prácticas aún son poco frecuentes y requieren de un proceso colectivo de aprendizaje. La tecnología es aún embrionaria, y deberán adoptarse estándares legales.
Casos de Uso Industriales
Los casos de uso de contratos inteligentes van desde simples hasta complejos. Pueden ser usados para transacciones económicas simples como enviar dinero de A a B. Los contratos inteligentes también pueden ser usados para registrar cualquier clase de posesión y derechos de propiedad, como registros inmobiliarios y propiedad intelectual, o gestionar el control de accesos inteligentes para la economía colaborativa. Se encuentran casos de uso en banca, seguros, energía, gobierno digital, telecomunicaciones, música e industria del cine, bellas artes, movilidad, educación y muchos más. Cada contrato, proceso, tarea o pago puede ser gestionado colectivamente. Muchos intermediarios tradicionales, como abogados, brokers, y banqueros, o funcionarios públicos, y las plataformas de Internet podrían no ser más necesarios, o al menos algunos de sus servicios se volverán obsoletos: los autos podrían usar contratos inteligentes para pagar sus propias cuentas al cargar gasolina, o cargar energía en un punto de carga. Las facturas podrían pagarse al arribo del barco con la mercadería. Certificados inteligentes de acciones bajo forma de títulos valores tokenizados podrían ser programados para hacer pagos automáticos de dividendos (leer más: Parte 4: Tokens de Activos y Propiedad Fraccionada).
Los contratos inteligentes ofrecen una capa nativa para pagos para la economía colaborativa, actualmente intermediada y procesada por los operadores de plataformas de Internet. Los contratos inteligentes permiten pagos de naturaleza P2P que reducen costos de transacción, lo que significa que los micropagos podrían volverse económicamente más posibles que lo que lo son hoy.[^2] Controles de acceso inteligente entre dos pares que no se confían mutuamente podrían ofrecer una solución práctica para la economía colaborativa sin proveedores de plataformas centralizadas, los que actualmente poseen una parte desproporcionada de nuestros datos, y por ello también el valor económico creado. Esto podría permitir una economía colaborativa con esteroides: departamentos, autos, lavadoras de ropa, bicicletas, cortadoras de cesped -una vez que estos dispositivos sean marcados con sus propias direcciones en blockchain (o un DID) podrían ser gestionados por contratos inteligentes que actúan como un candado digital.
Un caso más complejo de un contrato inteligente es el caso de uso de un bosque auto gestionado, como es “Terra0”, donde un contrato inteligente en la red de Ethereum gestiona la tala y la venta de árboles de un bosque en Alemania. Drones y satélites gestionan el crecimiento del bosque y disparan eventos en el contrato inteligente, como subcontratar la tala de árboles y vender la madera.
Es más, los contratos inteligentes pueden ser usados para contratos mucho más complejos entre una multitud de actores, a lo largo de la cadena de suministro de bienes o servicios, o para gobernar a un grupo de personas que comparten intereses y objetivos, sin la necesidad de instituciones centralizadas tradicionales. Las Organizaciones Autónomas Descentralizadas (DAOs) son un ejemplo de ello y probablemente son la forma más común de complejos contratos inteligentes. En este caso el contrato inteligente formaliza las reglas de gobernanza de una organización - como sus estatutos, reglamentos de gestión, reglas de procedimiento- y reemplazan la gestión operacional diaria del management con código auto-ejecutable.
Los contratos inteligentes y las DAOs también pueden disruptar las redes sociales tal como las conocemos. Las redes sociales basadas en la Web2 lucran con los datos de los usuarios que monetizan. En la Web3, los contratos inteligentes pueden permitir ecosistemas guiados por un propósito, en los que los usuarios se benefician por sus actividades de vinculación siendo recompensados con tokens de la red. Un ejemplo de ello es “Steemit”, una red social descentralizada que está organizada como una DAO y que incentiva las contribuciones de los usuarios con tokens de la red (ver más: Parte 4 - Steemit).
Los contratos inteligentes y los registros distribuidos también pueden ser un catalizador de intercambios máquina-a-máquina en la “Internet de las Cosas”. Esto sin embargo requiere que todos los objetos en tal Internet de las Cosas tengan una identidad en blockchain, y que pueden ser unívocamente domiciliados. La capacidad de crear un domicilio para cada máquina o para otros objetos físicos debe ser resistente a la manipulación. Esto puede lograrse marcando o chipeando objetos con los llamados “cripto aceleradores”, también conocidos como gemelos digitales. Un cripto acelerador es un pequeño micro-controlador optimizado para poder procesar los más importantes algoritmos criptográficos. Puede tener el tamaño de una calcomanía en una fruta y por ende servir como una base para casos de uso como transparencia en la cadena de suministro. Con un gemelo digital, cualquier objeto físico puede enviar firmas digitales únicas, o enviar o recibir tokens. Al proyectar hacia el futuro la tasa actual de desarrollo de esta tecnología, y teniendo en cuenta la convergencia con otras tecnologías emergentes como IoT, Big Data e IA, podemos imaginar un mundo en el que los individuos, las organizaciones, y las máquinas puedan libremente interactuar entre sí con poca fricción y a una fracción de los costos actuales.
Los contratos inteligentes pueden además ser usados para crear y gestionar tokens criptográficos que representan cualquier activo o derechos de acceso, y hasta incentivar comportamientos. Los tokens podrían convertirse en una de las aplicaciones más importantes de los contratos inteligentes, potencialmente revolucionando la gestión de activos tal como la conocemos hoy. Esta es la razón por la cual las últimas dos partes de este libro están dedicadas completamente al tópico de los tokens.
Oráculos
Las redes de blockchain y los contratos inteligentes no pueden acceder a datos que estén fuera de su red. Para saber qué hacer, los contratos inteligentes frecuentemente necesitan acceso a información del mundo analógico que es relevante para el acuerdo contractual, bajo formas de alimentación de datos, conocidas como “oráculos”. Estos oráculos son servicios que alimentan al contrato inteligente con información externa que puede disparar acciones predefinidas en el contrato inteligente, lo que a su vez induce cambios de estado en el registro. Estos datos externos provienen del software (aplicaciones de Big Data) o del hardware (Internet de las Cosas).
Oráculos de software: entregan información que se origina en fuentes online, como la temperatura, el precio de acciones o commodities, horarios de arribo de vuelos o trenes, etc.
Oráculos de hardware: algunos contratos inteligentes necesitan información directamente desde el mundo físico, como por ejemplo un auto cruzando una barrera en la que sensores de movimiento deben detectar el vehículo y enviar los datos a un contrato inteligente, o a un sensor RFID en la industria de las cadenas de suministro.
Oráculos entrantes: entregan datos que vienen del mundo analógico.
Oráculos salientes: le otorgan a los contratos inteligentes la habilidad de enviar datos al mundo analógico.
Oráculos basados en el consenso: obtienen sus datos a través del consenso humano y mercados de predicciones como “Augur” o “Gnosis”. Sin embargo, usar sólo una fuente de información puede no ser confiable, dado que los mercados pueden ser manipulados; sistemas de rankeo de oráculos podrían ser necesarios. Una combinación de diferentes servicios de oráculos puede aumentar aún más la confiabilidad en los datos si, por ejemplo, tres de cinco oráculos pueden determinar el resultado de un evento.
El principal desafío con los oráculos es que la gente necesita confiar en estas fuentes externas de información, sea que vengan de un sitio de Internet o de un sensor. Como los oráculos son servicios prestados por terceros que no son parte del mecanismo de consenso de una blockchain, no están sujetos a los mecanismos subyacentes de seguridad que tienen estas infraestructuras públicas. Uno podría recrear ataques de tipo “hombre en el medio”[^3] situándose entre contratos y oráculos. Asegurar la robustez de esta “segunda capa” de la máxima importancia. Diferentes herramientas criptográficas confiables y técnicas de computación pueden ser usadas para resolver estos problemas. Si la seguridad del oráculo no está garantizada adecuadamente, será un freno para la implementación masiva de los contratos inteligentes.
Es importante resaltar que un contrato inteligente no espera que los datos de una fuente externa comiencen a fluir al sistema. El contrato debe ser invocado, lo que significa que uno tiene que gastar recursos de la red para traer los datos del mundo analógico. Esto genera costos de transacción de la red. En el caso de Ethereum, este es el costo del “Gas”.
Caso de Uso de Comprar un Auto Usado
Si dos personas, digamos Alicia y Roberto, no se conocen y no se confían mutuamente, usualmente necesitarán a un tercero de confianza como intermediario para verificar transacciones y hacerlas cumplir. Con los contratos inteligentes y las redes de blockchain, ya no se necesitan más esos intermediarios de confianza que liquidan o compensan las transacciones. Tómese como ejemplo el caso de comprar y vender un auto: si Alicia quiere hoy comprar un auto a Roberto, una serie de terceros de confianza son necesarios para verificar y autenticar la operación. El proceso varía de país a país pero siempre involucra al menos a un tercero de confianza pero generalmente a más: la autoridad que lleva el registro de automotores, junto con un escribano y/o una aseguradora. Puede ser un proceso lento y complicado, incluyendo sus tarifas. Si y cuando todas las autoridades y empresas involucradas usan registros distribuidos, se podría usar un contrato inteligente para formalizar todas las reglas de una compraventa válida de un auto, incluyendo pagos para servicios agregados como contratar un seguro automotor. Si Alicia quisiera comprarle el auto a Roberto usando un contrato inteligente, el proceso potencial se parecería al siguiente:
-
Roberto usará Internet para encontrar un servicio donde pueda publicar su auto usado y definir los términos de la venta, usando un contrato inteligente- en una versión descentralizada de eBay, por ejemplo. Este paso no es diferente al actual, pero los servicios basados en contratos inteligentes necesitan ser compatibles con la Web3, para comunicarse con la red de blockchain. Este servicio de contrato inteligente podría también incluir un garaje inteligente que también se comunica con la red de blockchain. Roberto deberá descargar un software que sea Web3 con una billetera incluida, lo que le dará una identidad única en blockchain -una dirección de blockchain con su respectivo par de llaves pública y privada (leer más: Parte 1 - Criptografía).
-
Alicia también usará Internet, como lo hace hoy. Buscará en Internet la versión descentralizada de eBay, donde Roberto publicó su auto. Alicia también tendrá que descargar un navegador compatible con la Web3.
*Si Alicia encuentra un auto que le guste y lo quiere comprar -digamos que es el auto de Roberto- ella hará click en “comprar”, y el servicio basado en un contrato inteligente usará una red de blockchain para chequear si Roberto es el dueño del auto, y si Alicia tiene los fondos suficientes. La información sobre ambos estados -la propiedad del auto que Roberto afirma vender y la cantidad de tokens que Alicia tiene- será grabada en el registro. Al presionar el botón “comprar”, el servicio de contrato inteligente también podría darle la opción a Alice de contratar un seguro, con aseguradoras seleccionadas que también están registradas en el registro y conectadas con el servicio de contrato inteligente ofreciendo este seguro (en tal escenario futuro, la cobertura del seguro se calcularía inmediatamente, y la prima se determinaría basándose en los datos del auto y en el historial de conducción de Alicia).
-
Si la red concuerda en que ambos estados son verdaderos -que Alicia tiene fondos suficientes y que Roberto es el dueño verdadero del auto- la red de blockchain registrará que Alicia es la nueva dueña del auto, y los saldos de sus fondos se actualizan automáticamente: Roberto ahora tiene 20.000 tokens más en su cuenta, mientras que Alicia tiene 20.000 tokens menos en su billetera. Alicia luego recibe un código de acceso para el candado inteligente del garage. Más aún, Alicia ya está registrada ante la aseguradora que haya elegido al momento de comprar el auto, disparando otro contrato inteligente.
-
Roberto ahora puede estacionar su auto en el garage. Su auto, que también tiene una identidad única en la blockchain, será ahora como estacionado en el garage, y Alicia recibirá una notificación sobre cuándo buscar el auto con su código de acceso.
-
Alicia ahora puede buscar el auto en el garage indicado, protegido por un candado inteligente conectado a la blockchain y gestionado por un contrato inteligente que tanto Roberto como Alicia usan. Ella puede abrir el candado del garage con su llave privada, que la identifica como la legítima dueña del auto. El auto es de ella, está registrado a su nombre, y tiene un seguro.
Usando contratos inteligentes, podemos ahora evitar la interferencia manual de ciertas instituciones como el registro automotor, las aseguradoras, y en algunos países, también a los escribanos, si y cuando los ambientes regulatorios lo permiten. Toda computadora corriendo en el protocolo de blockchain podrá chequear si alguien es el legítimo dueño de un auto o no. Robar autos no será tan fácil como lo es hoy una vez que los autos vengan equipados con llaves digitales que usan contratos inteligentes para controlar accesos. Algunos procesos automatizados también requerirán la convergencia de contratos inteligentes y fuentes de datos externas tanto de software como de hardware, como sería el caso de fotos tomadas en el garage para monitorear el estado del auto. Como dueño del auto, podrías incluso usar contratos inteligentes para autorizar a otras personas que lo conduzcan, registrando su identidad de blockchain en el contrato inteligente de tu auto.
La seguridad de los contratos inteligentes es un asunto importante para su adopción masiva en casos de uso: (i) seguridad de los Oráculos: asegurarse de que los datos que vienen de fuentes externas sean confiables; (ii) codificación segura y verificación formal: controles y testeos del código respecto a especificaciones de comportamiento que sean asistidos por computación; (iii) procedimientos de arreglo de disputas y de fallas de seguridad: mecanismos adicionales on-chain y off-chain para resolver conflictos o situaciones imprevistas que se generen por el uso de contratos inteligentes. Lenguajes de programación de contratos inteligentes alternativos a los que hoy se utilizan sería un aspecto interesante a abordar, tanto desde un punto de vista de la seguridad como de la adopción del mercado. La fusión entre contratos en sentido legal y contratos inteligentes es una cuestión importante que requerirá investigación y desarrollo transdisciplinar. Es más, los contratos inteligentes debieran ser diseñados de modo tal que los datos personalizados sólo sean revelados a aquellos actores involucrados en el proceso que necesitan conocer información explícita. Los contratos inteligentes deberán cumplir con las regulaciones que preservan la privacidad (privacidad por diseño).
Como se indicó arriba, muchos casos de uso de contratos inteligentes solo serán posibles jugando con otras tecnologías como aplicaciones de big data y la “Internet de las Cosas”. Tal juego de tecnologías puede abrir el camino a productos, servicios y clases de activos completamente nuevos en las próximas décadas. Sin embargo, podrían también aparecer muchas cuestiones socio-políticas. Una vez que todos los objetos sean marcados con una dirección única en blockchain (identidad), y puedan ser unívocamente referenciados en una red de blockchain, y si son controlados por un software más o menos inteligente, estos dispositivos podrían convertirse en agentes económicos autónomos en una economía de hombre-máquina. Sin embargo, la cuestiones de (i) cómo y cuándo vamos a transferir el poder desde los humanos a las máquinas, (ii) cuáles serían las implicancias socio-políticas de tales desarrollos, y (iii) cómo queremos regular tales fenómenos como sociedad, necesitan ser públicamente discutidas antes de diseñar tales sistemas.
Historia de los Contratos Inteligentes
Si bien el término “contrato inteligente” se puso de moda con el surgimiento primero de Bitcoin y luego de Ethereum, fue acuñado por Nick Szabo en 1996, y por ende es previo al desarrollo de las redes de blockchain. Fue en los primeros días de la Web cuando Szabo señaló que la revolución digital no sólo crearía nuevas instituciones sino que también podría formalizar relaciones económicas y sociales. Eso fue veinte años de que Ethereum vea la luz del día, y provocara a un renacimiento del término. Szabo justificaba el término “inteligente” con la funcionalidad que tienen los contratos digitales de ser automáticamente verificados y ejecutados: un registro digital de transacción que automáticamente ejecuta los términos de un contrato con el fin de cumplir los términos contractuales acordados. Gestión automática de relaciones y obligaciones de todas las partes involucradas, puramente en código de computadora.
A diferencia de los contratos tradicionales, que garantizan la seguridad contractual con procedimientos reactivos usando instrumentos del sistema legal existente, los contratos inteligentes - según Szabo- pueden proactivamente evitar esta seguridad “ex post facto” a través de mecanismos automatizados, haciendo que una potencial infracción contractual sea posible pero cara. Szabo resaltó que los procedimientos reactivos de los sistemas legales existentes podrían ser minimizados pero nunca eliminados totalmente. Para ofrecer ese nivel de seguridad proactiva, los contratos inteligentes debieran ser automáticos y (a) observables, (b) verificables, y (c) ejecutables. En cualquier caso, Szabo advirtió que (d) la privacidad de los datos debe ser garantizada sólo revelando los datos necesarios, y sólo a la parte contractual que tenga derecho a verlos.
Szabo fue muy específico en sus descripciones de cómo técnicamente formalizar estas relaciones, y listó una variedad de métodos criptográficos que podían ser usados, como la criptografía de llave pública y las firmas digitales, y en particular, las firmas ciegas[^4] y la criptografía de zero prueba de conocimiento.[^5] Algunos de estos métodos criptográficos descriptos por Szabo pueden encontrarse en la implementación de Bitcoin. Sin embargo, Szabo fue mucho más allá en su proceso de pensamiento que Satoshi y muchos otros desarrolladores tempranos de Bitcoin y redes alternativas de blockchain, como Ethereum. Mientras se refería a métodos de mayor preservación de privacidad como firmas ciegas y zero prueba de conocimiento ya en 1996, estos métodos están lentamente encontrando su camino en el mundo de blockchain. Tales técnicas de preservación de la privacidad también tienen el potencial de cumplir los requisitos de “Privacidad por Diseño” especificados en la Regulación General de Protección de Datos (GDPR) de la Unión Europea, de un modo mucho mejor que los actuales métodos criptográficos usados en la mayoría de las redes de blockchain (leer más: Parte 1 - Criptografía).
Szabo dijo que para que los contratos inteligentes “se embebieran en el mundo real en forma de código auto-ejecutable”, debían ser diseñados para ser confiables y resistentes a ataques, tanto contra ataques intencionales como contra vandalismo no intencional. Sin embargo, en aquél tiempo, Szabo no tenía ninguna idea de cómo descentralizar la confianza y hacer resistentes al sistema contra ataques de tipo sybil, y por ello describió la necesidad de un intermediario de confianza. Describió la función de utilidad económica de un potencial atacante y se refirió a conceptos de la ciencia de computación teórica y de la seguridad de la información al describir soluciones. En 1998, avanzó desarrollando sus ideas sobre contratos inteligentes en implementaciones de la vida real de transferencias de valor P2P. Se le ocurrió una idea de dinero electrónico que sería resistente a la inflación como el oro, al que llamó “Bit Gold”. Bit Gold nunca fue implementado porque Szabo no encontró la forma de reemplazar al intermediario de confianza con un sistema que resista ataques tipo sybil. Diez años después, la mayor innovación de Bitcoin fue resolver ese preciso problema mediante la “Prueba-de-Trabajo”.
Szabo imaginó un entrelazamiento de diferentes campos científicos para poder formalizar contratos inteligentes, como el derecho, la economía y la criptografía, pero criticó que estas disciplinas difícilmente se comunicaban entre ellas. Sin embargo, no fue el primero en pensar en automatización contractual. Dos años antes, Ian Grigg describió sus pensamientos sobre los Contratos Ricardianos, especificando cómo hacer que los contratos de la vida real fueran legibles y ejecutables por las máquinas. El quería crear un sistema que permitiese mantener la lectura humana de intenciones contractuales y de las acciones resultantes, antes de que un contrato fuera celebrado, y a la vez optimizar el procesamiento y la autenticación con máquinas a través de técnicas de encriptación, como las funciones de hashing y las firmas electrónicas. Su deseo era garantizar la vinculación y el procesamiento de documentos legales y materias relacionadas para ofrecer más transparencia y seguridad que los procedimientos legales tradicionales. La primera solución híbrida de contratos inteligentes y Contratos Ricardianos existe. “Openbazaar” es una plataforma P2P de comercio electrónico que ya está trabajando con Contratos Ricardianos.
Con el surgimiento del proyecto Ethereum, el término “contrato inteligente” ha renacido. Ethereum desacopló el concepto de programar contratos inteligentes de la red de blockchain subyacente que procesa los contratos. Opuesto a Bitcoin, el protocolo de Ethereum busca ofrecer una infraestructura que ahorre costos donde uno pueda codificar un contrato inteligente con solo pocas líneas de código. Ethereum inspiró muchos otros proyectos para trabajar en redes similares de blockchain para contratos inteligentes, como “EOS”, “Cardano”, o “Waves”, todos los cuales tienen grados variables de madurez técnica, escalabilidad, seguridad de la red y generalmente usan distinto lenguajes de programación de contratos inteligentes.
Resumen del Capítulo
Un contrato inteligente es una pieza de software que es procesada por un registro distribuido. Es una herramienta de gestión de derechos que puede formalizar y ejecutar contratos entre participantes no confiables en la Internet, y tiene incluido en sí el cumplimiento regulatorio y el control.
Los contratos inteligentes pueden reducir los costos de formalización y ejecución de un contrato simple entre dos partes, o del estatuto de una organización, o crear diferentes tipos de tokens.
El término “contrato inteligente” fue acuñado por primera vez por Nick Szabo en 1996 y es previo al desarrollo de las redes de blockchain. Eran aún los primeros días de la Web cuando Szabo señaló que la revolución digital no sólo crearía nuevas instituciones sino que también podría formalizar relaciones económicas y sociales.
Los casos de uso de contratos inteligentes van de simples a complejos. La forma más compleja de contrato inteligente es una organización autónoma descentralizada. Los contratos inteligentes pueden también ser usados para crear tokens.
Los contratos inteligentes tienen el potencial de disruptar muchas industrias. Casos de uso se encuentran en la banca, el seguro, la energía, el gobierno digital, las telecomunicaciones, en la industria de la música y el cine, las bellas artes, en movilidad, educación y en muchas más.
Los oráculos proveen datos externos necesarios para el contrato inteligente y para disparar el cumplimiento de contratos inteligentes cuando se cumplen ciertas condiciones preestablecidas. Los oráculos son servicios que encuentran y verifican acontecimientos del mundo analógico y envían información al contrato inteligente, disparando automáticamente cambios de estado en la blockchain. La primera tarea de los oráculos es entregar estos valores al contrato inteligente de una manera segura y confiable. Estos flujos de datos vienen desde el software (aplicaciones de Big Data) o desde el hardware (Internet de las Cosas).
Referencias del Capítulo & Lecturas Complementarias
- Blocher, Walter; “The next big thing: Blockchain – Bitcoin –Smart Contracts,”, AnwBl 2016, S. 615; 2016
- Buterin, Vitalik: “SchellingCoin: A Minimal-Trust Universal Data Feed”, March 28, 2014, https://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed/
- Glatz, Florian: “What are Smart Contracts? In search of a consensus”, Dec 12, 2014: https://medium.com/@heckerhut/whats-a-smart-contract-in-search-of-a-consensus-c268c830a8ad
- Greenspan, Gideon: “Why Many Smart Contract Use Cases Are Simply Impossible”, Apr 17, 2016: https://www.coindesk.com/three-smart-contract-misconceptions
- Grigg, Ian; “The Ricardian Contract”, In Proceedings of the First IEEE International Workshop on Electronic Contracting, pages 25-31. IEEE, 2004: http://iang.org/papers/ricardian_contract.html
- Internet of Agreements: http://internetofagreements.com/
- Nisan, Noam; Ronen, Amir; „Algorithmic mechanism design“, Proceedings of the 31st ACM Symposium on Theory of Computing (STOC ‚99), pp. 129–140, 1999
- N.N.: “Hardware Pythias: bridging the Real World to the Blockchain”, Ledger Blog, 31 Aug 08 2016: https://blog.ledger.co/2016/08/31/hardware-pythias-bridging-the-real-world-to-the-blockchain/#.2zeggzh6f
- N.N.: “Understanding oracles” Oraclize Blog, Feb 18, 2016: https://blog.oraclize.it/understanding-oracles-99055c9c9f7b
- N.N.: "1,749,693 blocks later" Provable Things, Sep 16, 2016: https://medium.com/provable/1-749-693-blocks-later-4225f55c68f1
- N.N.: "A Visit to the Oracle Smart contracts are poised to revolutionize the ways that humans, machines, and organizations create and enforce contractual relationships" ConsenSys, Jun 1, 2016: https://media.consensys.net/a-visit-to-the-oracle-de9097d38b2f#.97rovs1ho
- N.N.: "Hardware Oracles: bridging the Real World to the Blockchain," Ledger Blog. Retrieved Nov 2, 2016: https://blog.ledger.co/hardware-oracles-bridging-the-real-world-to-the-blockchain-ca97c2fc3e6c#.2zeggzh6f
- Szabo, Nick: “Smart Contracts: Building Blocks for Digital Markets”, 1996: http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/ szabo.best.vwh.net/smart_contracts_2.html
- Szabo, Nick: “Formalizing and Securing Relationships on Public Networks” First Monday, Volume 2, Number 9 - 1 September 1997d: http://journals.uic.edu/ojs/index.php/fm/article/view/548/469
- Voshmgir, Shermin: “Blockchain, Smart Contracts und das Dezentrale Web”, Technologiestiftung Berlin, 2017: https://www.technologiestiftung-berlin.de/de/blockchain/
- Voshmgir, Shermin: “Smart Contracts, Blockchains und automatisch ausführbare Protokolle”, in: Braegelmann/Kaulartz (Hg.): Rechtshandbuch Smart Contracts, CH Beck Verlag, p. 13-27.
- Zhang, F., Cecchetti, E., Croman, K., Juels, A., Shi, E.: “Town Crier: An Authenticated Data Feed for Smart Contracts”, Published by ACM 2016, Published in: Proceeding CCS ‚16 Proceedings of the 2016, ACM SIGSAC Conference on Computer and Communications Security Pages 270-282: https://eprint.iacr.org/2016/168.pdf
- Cardano: https://www.cardano.org/en/home/
- Bernstein: https://www.bernstein.io/
- EOS: https://eos.io/
- Kleros: https://kleros.io/
- Open Bazaar: https://openbazaar.org/
- OpenLaw: https://media.consensys.net/introducing-openlaw-7a2ea410138
- Jur: https://jur.io/
- Terra0: https://terra0.org/
- Waves: https://wavesplatform.com/
Notas al pie
[^1]: El problema de "Principal y Agente" ocurre cuando alguien (el agente) tiene el poder de tomar decisiones con impacto sobre otra persona o institución (el Principal), pero no lo realiza priorizado lo que resulta mejor para el interés de este último, tal como sucede con la relación entre políticos y votantes o administradores y accionistas.
[^2]: Al día de hoy el desafío con los micropagos está en que los fee cargados por los proveedores de estos servicios son muchas veces mayores al micropago en sí mismo.
[^3]: En seguridad informática, los “ataques del hombre del medio” refieren al incidente donde un atacante transmite, y posiblemente altera, la comunicación ente dos partes que creen están directa o secretamente comunicándose entre ellos.
[^4]: Las firmas ciegas son firmas digitales que disfrazan el contenido de un mensaje que ha sido firmado. Pueden ser verificadas contra el mensaje original como cualquier firma digital.
[^5]: La criptografía de zero prueba de conocimiento permite la validación de información sin revelar tal información al verificador de la información.