¿Cómo equipamos la blockchain?

Hace unos meses, quería descubrir de qué se trataba todo este bombo: bitcoin, tokens, contratos inteligentes, ICO. Con Bitcoin, todo era relativamente simple, porque hay un maravilloso bitcoinbook .


Con contratos inteligentes, las cosas eran más complicadas. Al final resultó que, la razón no es el mejor nombre. Cuando escuchamos la palabra "contrato", nos viene a la mente el significado legal del término: un contrato entre dos o más partes. Y tal comprensión de los contratos inteligentes tiene derecho a existir, pero la esencia del fenómeno es mucho más amplia, y el contrato no es el caso más interesante e importante.


A raíz de la popularidad de las ICO, estamos hablando de la regulación gubernamental. No soy fanático ni del estado ni de la regulación, pero debo admitir que el estado es una de las instituciones más importantes y no se puede prescindir de él. Sin embargo, me parece que la comunidad ha centrado sus esfuerzos en un caso particular del problema, y ​​no en el más importante. La tecnología en consideración, cuando se usa correctamente, puede cambiar irreconociblemente muchas áreas de la vida. En lugar de considerar un caso aislado de ICO y llegar a una regulación "por analogía" con IPO, debe abordar el asunto de manera más sistemática.


Cuando aparece una nueva tecnología, y no está claro cómo aplicarla, es tentador enfocarse en modelos antiguos. Así fue con los teléfonos inteligentes: las primeras versiones de teléfonos inteligentes en Windows Mobile intentaron ajustar la interfaz del sistema operativo de escritorio en una pantalla pequeña; con iconos, mouse y botón de inicio. Tales teléfonos inteligentes podrían usarse, pero la verdadera revolución sucedió cuando los desarrolladores se dieron cuenta de que el teléfono inteligente no es una computadora pequeña, sino algo fundamentalmente diferente, y la interacción del usuario debe construirse en modelos completamente diferentes.


Continuando con la analogía con un teléfono inteligente: los contratos inteligentes no son "contratos autocumplidos". Para comprender cómo encajarán en nuestras vidas, debe descubrir cuáles son todos iguales y luego pensar cuidadosamente cómo se pueden utilizar sus propiedades en su beneficio.


Inmediatamente haga una reserva que no pretendo ser un experto en este campo. El propósito de este texto es exponer mi visión y estimular el diálogo. Bien puede resultar que en algún lugar dije tonterías o me perdí algo muy importante. En ese caso, bienvenido a comentar.


La segunda advertencia se relaciona con las características técnicas de los sistemas blockchain. Para simplificar, sugiero que todas las garantías declaradas de estos sistemas son realmente válidas. Consideramos los problemas conceptuales de la aplicación, por lo que las vulnerabilidades, deficiencias y debilidades de implementaciones específicas permanecen fuera de los corchetes; este es un tema para una discusión separada, en la que no estoy calificado para participar. Además, cuando uso palabras como "imposible", en realidad significan "muy caro en términos de tiempo y recursos". Las garantías de blockchain son de naturaleza probabilística, por lo tanto, son "garantías" en el sentido práctico, no lógico de la palabra.


La computadora de Dios


Para comenzar, quiero ofrecerme olvidar la palabra "contrato" y mirar el fenómeno desde una distancia respetuosa.


Imagina que tienes una computadora. Funciona igual que las computadoras habituales. En él puedes ejecutar programas escritos en lenguajes de programación especiales. Sin embargo, tiene varias características importantes:


  • no puede ser detenido o destruido
  • garantiza que las instrucciones del programa se ejecutarán exactamente como las escribió el desarrollador
  • cualquier persona con acceso a internet puede usarlo
  • cada programa sabe exactamente qué usuario está accediendo a él, es decir, ningún usuario puede hacerse pasar por otro
  • los programas pueden interactuar con otros programas de la misma manera que los usuarios

En la mayoría de las implementaciones existentes, hay una propiedad más: cada usuario ve lo que está sucediendo "dentro" de los programas, es decir, la computadora no puede ocultar información privada. Sin embargo, este no es un principio fundamental, por lo que lo coloqué fuera de la lista principal.


¿Cómo se ve el programa que se ejecuta en una computadora así? El programa tiene dos partes: datos y las reglas para cambiarlos. La computadora garantiza que los datos no se cambiarán, a menos que haya una regla que lo permita.


Para una persona que no está familiarizada con la programación, lo anterior probablemente traerá poca claridad, así que consideremos un ejemplo elemental.


Falsificación


Usted es un fabricante de bolsos premium. Todos saben que el mayor dolor de cabeza de tales compañías y sus clientes son las falsificaciones. Bueno, tenemos una solución.


Ejecutamos un programa en nuestra computadora que se parece a esto:


# :  :  &         : 349587 :     :     #  1:   ""   ,       "". 

¿Qué pasa después? Luego, nosotros, el fabricante, transferimos la bolsa al almacén mayorista, cambiando el propietario a "Almacén mayorista". Un representante de la tienda llega al almacén mayorista, y el almacén vende la bolsa a la tienda y cambia al propietario en un certificado electrónico para "Almacenar bolsas excesivamente caras".


Un cliente llega a la tienda en busca de una bolsa. Queriendo protegerse de las falsificaciones y otras sorpresas desagradables, revisa su computadora y ve lo siguiente:


 # : :      :  &         : 349587 :     #  1:   ""   ,       "". 

El cliente ve el número 349587 estampado en la bolsa. La compañía fabricante realmente anunció que había lanzado una bolsa con ese número de serie, porque nadie más puede hacerse pasar por Horns and Hooves. Y, lo más importante, existe una cadena continua de transferencia de mercancías, desde el fabricante de bolsas hasta la tienda.


El cliente no confía en la tienda. Existe la sospecha de que es más rentable para el dueño de la tienda vender una copia convincente cosida por las manos de trabajadores privados de sus derechos en algún tipo de país cálido. Pero el cliente confía en el fabricante y el sistema lo garantiza.


Uno puede argumentar: ¿por qué no coser una falsificación con el número de serie 349587 ? Puede hacer esto, pero para venderlo más tarde, debe ser el propietario actual de una bolsa genuina, lo que no tiene sentido económico si intercambia bolsas.


Entonces, el cliente ahora sabe que la bolsa es genuina y no ha sido robada.


A pesar de que este ejemplo es un juguete, demuestra una de las características más importantes de los contratos inteligentes: registrar la propiedad y transferirla de forma segura entre los propietarios.


Los sistemas Blockchain a menudo se denominan sin confianza, es decir, permiten a los usuarios interactuar sin confiar entre sí. Esto es cierto en algunos casos especiales (bitcoin), pero en la mayoría de las situaciones, aún se requiere confianza. En el ejemplo falsificado, debemos confiar en el fabricante. El sistema le permite extender esta confianza más abajo en la cadena.


Dinero digital


En el ejemplo anterior, se producen dos procesos paralelos. El derecho de propiedad se mueve del productor al consumidor final, y el dinero se mueve en la dirección opuesta. Sería conveniente combinar estos dos componentes.


Imagine que hubo un banco valiente que desarrolló y lanzó un contrato tan inteligente:


 #  :  "" :    : 1000000   : 900000  : 500000  : 100000  : 0 #  1:    ""        . 2:            . 3:  ""           ( )   11. 

Para garantizar el funcionamiento de dicho contrato, el banco debería poder cargar y retirar dinero libremente de las cuentas de los usuarios, tal como es ahora cuando transfiere efectivo a una cuenta virtual. Es decir, los usuarios deben confiar en el banco. Sin embargo, las transacciones son iniciadas por los usuarios y son realizadas por el sistema; lo único que hace el banco es garantizar el intercambio de tokens por dinero fiduciario a una tasa fija.


También en el contrato puedes ver algo extraño. La bolsa también tiene su propia cuenta bancaria. Un poco más tarde quedará claro por qué esto es necesario, pero por ahora recordamos que los programas pueden interactuar con los programas, es decir, el contrato es, de alguna manera, un usuario igual del sistema. Por lo tanto, nada impide que el certificado tenga su propia cuenta. Por supuesto, el certificado no puede venir al banco y recibir efectivo o depositar efectivo en la cuenta, pero esto no es necesario.


Supongamos que cuando se lanzó la bolsa, cada uno de los cuatro participantes del proceso ya había intercambiado una cierta cantidad de moneda nacional por una virtual.


En su forma original, un certificado de contrato le permite tener una bolsa y transferir la propiedad. Agregémoslo para que la bolsa se pueda vender por dinero virtual, y el vendedor y el comprador no deben confiar el uno en el otro, sino solo en el banco y el fabricante.


 # : :      :  &         : 349587 :     : () : () #  1:   ""   ,       "". 2:      ""    . 3:      ""    . 4:    ""  ""   4.1:         ,   ,     ,     .  ""  ""  . 4.2:            ,        "". 

Resulta que ahora la transferencia de derechos está vinculada a la transferencia de dinero virtual. Ocurren simultáneamente o no ocurren en absoluto. El vendedor no tiene motivos para temer que transferirá la propiedad al comprador, y el banco cancelará la transacción. El comprador sabe que si paga la cantidad requerida, se le transferirá el derecho o se le devolverá el dinero. Por supuesto, dicho contacto no puede garantizar la transferencia de un objeto físico de una mano a otra, pero hablaremos de esto a continuación.


El servicio publico principal


Desafortunadamente, en la vida real, no todo es tan simple. Por supuesto, nuestra computadora no identifica directamente a los usuarios (personas). Para la identificación, se necesitan claves de cifrado especiales.


Se llaman la "clave privada" (debe mantenerse en secreto) y la "clave pública": es el identificador del usuario en el sistema, como un inicio de sesión en un sitio tradicional. Las claves públicas y privadas están relacionadas matemáticamente de tal manera que solo el propietario de la clave privada puede probar que él es este usuario, y para esto no hay necesidad de revelar la clave privada. Resulta que el acceso del usuario al sistema es proporcionado por el acceso físico del usuario a la clave privada, que generalmente se almacena en algún tipo de medio de almacenamiento.


Se supone que quien tiene acceso a la clave de la empresa "Horns and Hooves" es su representante y actúa en su interés. Lo cual, por supuesto, no siempre es el caso.


La llave se puede perder o ser robada. Puede obligar al propietario a realizar las acciones necesarias para el atacante. En nuestro ejemplo, el precio de tal vulnerabilidad es de varios cientos de dólares. Pero imagine que no vendemos bolsas, sino, por ejemplo, bienes inmuebles o acciones en el negocio.


Aquí es donde entra el estado. A pesar del dudoso deseo de llenar más y más nuevas esferas de la vida, el estado tiene varias propiedades útiles: es impersonal, tiene el monopolio de la violencia y un amplio margen de confianza. Cualquiera que haya encontrado el trabajo de la máquina de estado puede sonreír con amargura ante la última declaración, pero esto es un hecho. Las funciones específicas del estado o sus representantes pueden perder su confianza, pero, si lo mira detenidamente, resulta que todos confiamos en los documentos y certificados emitidos por el estado (pasaporte de un ciudadano, licencia de conducir, certificado de propiedad). Al concluir las transacciones, asumimos que son reconocidas por el estado y que nuestros intereses están protegidos por él.


A veces se dice que blockchain nos llevará a la anarquía digital, pero esto no es más que sueños. La criptografía astuta no nos salva de los problemas de seguridad física.


¿Cómo podría ser el papel del estado?


John Locke con esteroides


El problema más obvio que debe resolverse es el acceso físico del usuario a la clave y la identificación. El sistema debe construirse de tal manera que cuando se pierde una clave, una persona no pierda el acceso a sus contratos. Para hacer esto, necesitamos alguna entidad que esté controlada por la clave especificada, pero el estado puede reemplazar la clave a solicitud de un ciudadano.


Es decir, en todos los ejemplos anteriores, debemos reemplazar a los usuarios (propietarios clave) con un contrato especial que simboliza una entidad que puede realizar acciones legalmente significativas (persona física o jurídica).


Imaginemos que almacena tokens en el banco Trust. La cuenta está vinculada a una clave privada. Si pierde una clave, perderá para siempre el acceso a los tokens. ¿Qué sucederá si la cuenta no está vinculada a una clave, sino a un contrato que es un avatar de un individuo?


 #  :  :   :   2398457325034205873245 #  1:    . 2:         . 

Ahora, en caso de perder la clave, puede ir al estado y pedirle una nueva clave, cambiando el propietario de su avatar. Para bloquear inmediatamente todas las acciones de este contrato, puede tener un administrador que tenga esa oportunidad.


Dado que el estado tiene nuestra confianza exclusiva en la identificación de personas, es difícil prescindir de ella. ¿La cadena de bloques nos prohíbe usar contratos inteligentes de alguna otra manera, por ejemplo, alternar tokens directamente a una clave, sin pasar por un certificado emitido por el estado? En realidad, no lo prohíbe, pero el estado regula esta esfera, no en el sentido de "decirle a todos cómo vivir". En este caso, esto significa que el estado declara: solo los contratos inteligentes que cumplen con la forma establecida están bajo mi protección . Si realiza transacciones que no están en la forma establecida y sucede algo inesperado, estos son sus problemas.


Reemplazamos al usuario con un individuo. Pero un contrato individual tiene un emisor, y esta es otra entidad importante: el estado. Esta entidad también deberá presentarse en forma de contrato inteligente, por los mismos motivos: seguridad. Si un ciudadano en caso de circunstancias imprevistas puede acudir al estado en busca de ayuda, el estado no tiene a dónde recurrir. No consideraré los detalles de la implementación de dicho contrato aquí; este es un tema para un artículo separado. Lo más probable es que el estado deba ser controlado por varias claves, que, al votar, pueden excluir alguna clave si se ve comprometido.


El estado del contrato simboliza la jurisdicción, el contrato soberano y social, como lo desee. Aún no se ha acuñado un término para él, pero me gustó la palabra imperios . En general, tomar prestada terminología de la antigua ley romana me parece una buena idea: los términos no se intersectarán, por lo que cuando se discuta, no tendrá que indicar de qué tipo de ciudadanía estamos hablando: un ciudadano real o un contrato.


Próximos pasos


Por supuesto, omití muchos detalles para explicar el concepto en términos generales. El esquema es el siguiente: transferimos entidades legales a contratos inteligentes, describiendo las reglas por las cuales interactúan. Los elementos básicos del esquema son el estado, los individuos, el dinero y la propiedad, y es a partir de ellos que uno debe comenzar.


Es probable que la información sobre el dinero se almacene en un contacto, y el estado otorgará a los bancos autorizados el derecho de cambiar monedas nacionales por fichas.


¿Qué otras entidades legales se transferirán a los contactos inteligentes?


  • entidades legales: IP, LLC, AO
  • impuestos
  • propiedad de varios objetos: bienes raíces, automóviles
  • préstamo garantizado, con transferencia automática de propiedad en caso de incumplimiento de las condiciones del préstamo
  • varias licencias
  • estado civil: un individuo puede ser legalmente incompetente, legalmente incompetente, vivo, muerto, casado o en otras relaciones civiles
  • testamento y herencia automática
  • Votación y nombramiento: una persona elegida puede ser "nombrada" automáticamente para un puesto, con los derechos para ocupar un puesto de contrato, y el titular del puesto cambiará de acuerdo con las reglas

Todos los modelos de negocios que he conocido hasta la fecha están relacionados con la transferencia de procesos antiguos a los rieles de los contratos inteligentes. Escuchamos una promesa de salvarnos de los intermediarios, mientras que muchas nuevas empresas que aparecieron aparecieron tratando de mediar usando blockchain. Vemos los mismos sistemas de pago y plataformas de negociación. Espero que pronto aparezcan otras compañías que concentren sus esfuerzos en proporcionar una interfaz conveniente para el sistema general de intercambio descentralizado y extraer información comercialmente útil de la cadena de bloques.

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


All Articles