Vinay Gupta es un teórico de la infraestructura, ingeniero de software e inventor: http://re.silience.com

Al final de este artículo, entenderás la tecnología blockchain en general (y Ethereum, una plataforma blockchain de nueva generación, en particular) suficientemente bien como para decidir lo que significa en tu vida.

Mirad Skynet

Ethereum conlleva emociones fuertes. Algunos lo han comparado con SkyNet, la inteligencia artificial distribuida de las películas de Terminator. Otros han insinuado que todo es un sueño imposible. La red ha estado activa desde algunos meses, y no está mostrando signos de conciencia hostil — o de colapso total.

Pero si no tienes un perfil muy técnico, o tienes formación técnica en un ámbito diferente, es fácil ver todo esto y pensar “voy a intentar entenderlo más tarde” o decidir ignorarlo hasta que aparezca una buena utilidad (por ejemplo, lea el artículo “Imogen Heap: salvador de la industria música””).

Pero, realmente, no es tan difícil de entender Ethereum, la tecnología blockchain, Bitcoin y todo lo demás — al menos las implicaciones para la gente en su vida diaria. Incluso un programador que quiera una imagen clara, puede hacerse una idea de cómo todo encaja con bastante facilidad. Las explicaciones sobre las Blockchain suelen centrarse en algunos detalles muy técnicos como la minería, pero eso no ayuda a las personas (que no sean los desarrolladores core) a entender lo que está pasando. Mejor, veamos cómo las blockchains encajan en la historia general, sobre cómo los ordenadores tienen influencia en la sociedad.

Como suele suceder, para entender el presente, tenemos que empezar en el pasado: Las blockchains son el tercer acto de la obra, y estamos justo en el comienzo de ese tercer acto. Así que tenemos que recapitular.

SQL: La Mejor Idea del Ayer

La historia real de la Blockchain se inicia en la década de 1970 cuando la base de datos como actualmente la conocemos fue creada: el modelo relacional, SQL, grandes bastidores, unidades de cinta, todas esas herramientas. Si estás imaginando grandes salas blancas con caros monolitos de color beige vigilados por hombres de corbata, estás en el momento correcto de la historia. En la era del Big Iron, las grandes organizaciones pagaban mucho dinero a IBM y al resto por grandes bases de datos y colocaron todos sus activos de datos más preciados en estos sistemas: su memoria institucional y sus relaciones con los clientes. El lenguaje SQL que alimenta la gran mayoría de los sistemas de gestión de contenidos que circulan por la web, fue originalmente un lenguaje de comandos para unidades de cinta. Longitudes de campo fijos — un poco como el límite de 140 caracteres en los tweets — originalmente sirvieron para que los programas impacientes avanzaran rápido la cinta a una distancia precisa a super alta velocidad para poner el cabezal de la cinta exactamente donde comenzaba el siguiente registro. Todo esto sucedió alrededor de la época en la que nací. Es historia, pero aún no es historia antigua.

En un nivel más semántico y superior, se había adueñado una sutil distorsión en la forma en que percibimos la realidad: cosas que eran difíciles de representar en las bases de datos fueron sucesivamente devaluadas y fetichizadas. Pasaron los años mientras la gente luchaba para meter el mundo real en las bases de datos mediante la gestión del conocimiento, la web semántica, y muchas otras abstracciones. No todo se llegó a encajar, pero de todos modos nos encontramos con la sociedad utilizando estas herramientas. Las cosas que no encajaban bien en las bases de datos fueron desechadas, y la vida continuó. De vez en cuando una contracorriente técnica trataba de afianzarse y de replegar la tiranía de la base de datos, pero la tendencia general se mantuvo firme: si no cabe en la base de datos, no existe.

Es imposible pensar que no sabes de este mundo de las bases de datos, pero vives en él. Cada vez que veas un formulario de papel con los cuadrados que indica una letra por casilla, estás interactuando con una base de datos. Cada vez que utilizas un sitio web, hay una base de datos (o más probablemente todo un embrollo de ellas) que acechan bajo la superficie. Amazon, Facebook, todo ellos — son todos bases de datos. Cada vez que un servicio de atención al cliente se encoge de hombros y dice “el ordenador dice que no” o una organización actúa de una manera muy inflexible, con toda probabilidad hay una base de datos por detrás que tiene una visión limitada, rígida de la realidad y es simplemente demasiado caro arreglar el software para que la organización sea más inteligente. Vivimos en estas cajas, tan penetrante como el oxígeno, y tan inflexible como tarjetas perforadas.

Los Documentos y la World Wide Web

El segundo acto se inició con la llegada de Tim Berners-Lee y el advenimiento de la web. En realidad, se inicia sólo un poco antes de su llegada. A finales de 1980 y principios de 1990 las cosas se ponen serias con respecto a las redes de ordenadores. Protocolos como Telnet, Gopher, Usenet y Email proporcionan una interfaz de usuario para las primeras conexiones de Internet, pero no es hasta la década de 1990 que alcanzamos la adopción masiva de los ordenadores conectados en red, lo que lleva gradualmente a que yo escriba esto en Google Docs, y a que tú lo leas en un navegador web. Este proceso de unir los puntos — “la red es la computadora” (como Sun Microsystems solía decir) — fue rápido. A principios de 1990, ya existían un gran número de ordenadores, pero fueron en gran medida dispositivos independientes, o conectados a unos pocos cientos de ordenadores en un campus universitario con sólo una ventana hacia el mundo exterior. El software y hardware para la creación de redes en todas partes — Llevó mucho tiempo construir la red de redes, el Internet, a continuación, se extendió como un reguero de pólvora. Los pequeños trozos que quedaron dispersos se unieron a la red que hoy conocemos. Todavía estamos surfeando la ola tecnológica mientras la red se vuelve más inteligente, más pequeña, más barata y comienza a aparecer en elementos como nuestras bombillas bajo el nombre del “Internet de las Cosas”.

La Burocracia y las Máquinas

Sin embargo, las bases de datos y las redes nunca llegaron a entenderse. El Big Iron en las salas de máquinas y las diminutas e innumerables computadoras personales dispersas en Internet como el rocío sobre una telaraña, no encontraron un estándar común que les permitiera interoperar sin problemas. Interactuar con una sola base de datos es bastante fácil: a través de formularios y aplicaciones web como las que utilizas todos los días. Pero la dificultad es conseguir que las bases de datos trabajen juntas, de forma invisible, para nuestro beneficio, o conseguir que las bases de datos interactúen sin problemas con los procesos que se ejecutan en nuestros propios ordenadores portátiles.

Esos problemas técnicos son enmascarados por la burocracia, pero sentimos su impacto cada día en nuestras vidas. Es un trabajo endiablado conseguir que dos grandes organizaciones trabajen conjuntamente a tu favor, y en el fondo, es un problema de software. Tal vez quieras que tu aseguradora de coche tenga acceso a un informe de la policía sobre si tu coche ha sido forzado. Con toda probabilidad, tendrás que extraer los datos de la base de datos en forma de un puñado de listados, y luego enviarlos por correo a la compañía tú mismo: no hay conectividad real en los sistemas. No puedes gestionar el proceso desde tu ordenador portátil, excepto por el torpe proceso de cumplimentar los formularios. No tiene sentido utilizar los ordenadores para usarlos solamente como simuladores carísimos de papel. Aunque en teoría la información sólo pudiera fluir de una base de datos a otra con tu permiso, en la práctica, los costes técnicos de conectar las bases de datos son enormes, y el ordenador no almacena los datos para poder hacer todo ese trabajo por tí. En su lugar, sólo sirve para que rellenes formularios en él. ¿Por qué estamos infrautilizando todo este potencial?

La Filosofía de Datos

La respuesta, como siempre, está en nuestras mentes. Las conjeturas organizativas acerca del mundo que se cuecen en los sistemas informáticos son casi imposibles de traducir. Los factores humanos — las mentalidades que generan el software — no encajan. Cada empresa construye su sistema informático a su imagen y semejanza, sin aclarar lo que es importante y lo que no, y la verdad no fluye entre ellas fácilmente. Cuando necesitamos traducir un modelo de un mundo a otro, incluimos a los seres humanos en el proceso, y estamos volviendo a la fase de repetir rellenar formularios de papel, en lugar de auténtica cooperación digital. El resultado es un mundo en el que todas nuestras instituciones parecen estar hechas un lío, nunca en la misma sintonía, y las cosas que necesitamos en nuestras vidas ordinarias parecen seguir cayendo entre las grietas, cada proceso requiere la misma cumplimentación del maldito nombre y dirección, veinte veces al día, y más que aún si te estás mudando de casa. ¿Con qué frecuencia haces compras en Amazon en lugar de alguna tienda más especializada sólo porque saben donde vives?

Hay otra gran cantidad de otros factores que mantienen la brecha entre el potencial teórico de nuestros ordenadores y nuestro uso cotidiano de la aceleración tecnológica, el cambio constante, el gran coste de escribir código. Pero al final, todo se reduce a la forma de pensar. Aunque parece que sean unos y ceros, los “arquitectos” de software tratan con presupuestos que podrían utilizarse para construir un rascacielos, y cambiar un poco más tarde a un proyecto que tuviera costes similares a derribar el mismo edificio a medio hacer. Filas, filas y filas de costosos ingenieros tirando meses (o años) de trabajo: el software se congela, y el mundo se sigue moviendo. Todo está siempre ligeramente roto.

Una y otra vez, volvemos al papel y la sus metáforas porque no podemos obtener el software correcto, y el núcleo de ese problema es que conseguimos conectar los ordenadores en la década de los 90, pero nunca averiguamos cómo conectar realmente las bases de datos y hacerlas trabajar juntas.

Hay tres modelos clásicos de cómo la gente intenta conseguir que sus redes y bases de datos trabajen juntas con fluidez.

Primer Paradigma: El modelo de pares diversos

El primer enfoque es sólo conectar directamente las máquinas entre sí, y resolver los problemas sobre la marcha. Tomas la máquina A, la conecta a través de una red a la máquina B, y lanza las transacciones a través del cable. En teoría, la máquina B las atrapa, las escribe en su propia base de datos, y el trabajo es correcto. En la práctica, hay algunos problemas.

El problema epistemológico es bastante grave. Las bases de datos, como comúnmente desplegadas en nuestras organizaciones, almacenan hechos. Si la base de datos dice que el nivel de stock es de 31 unidades, esa es la verdad para el conjunto de la organización, excepto tal vez para el tipo que baja a la estantería y las cuenta, encontrando que la cuenta real es 29, introduciendo ese dato en la base de datos como corrección. La base de datos es la realidad institucional.

Pero cuando los datos dejan una base de datos y desembocan en otra, se cruza una frontera organizacional. Para la Organización A, el contenido de la base de datos A son la realidad operativa, verdadera hasta que se demuestre lo contrario. Pero para Organización B, el comunicado es una declaración de opinión. Considere un pedido: el pedido es una petición, pero no se convierte en un hecho confirmado hasta que el pago se acredite pasado el punto de una devolución de cargo. Una empresa puede creer que ha ocurrido un pedido, pero esto es una especulación sobre las intenciones de otra persona hasta que el dinero contante (o bitcoins) despeja todas las dudas. Hasta ese momento, una señal que dice “pedido en error” puede reiniciar el proceso entero. Una orden existe como una hipótesis hasta que un pago en efectivo lo borra de la memoria intermedia especulativa en que vive y la coloca firmemente en el pasado inmutable como una cuestión de expediente de hechos: este pedido existió, fue enviado, fue aceptado, y nos pagó por ello .

Pero hasta ese momento, ese pedido es sólo una especulación.

El significado cambiante de una simple solicitud de nuevos materiales fluyendo de una organización a otra, una declaración de intención a una declaración de hecho, no es algo que normalmente pensamos detenidamente. Pero cuando empezamos a considerar que el mundo, nuestras vidas, corre en sistemas que funcionan como esto — las cadenas de suministro de alimentos, redes eléctricas, impuestos, educación, sistemas médicos, es raro que estos sistemas no nos llamen la atención con más frecuencia.

De hecho, sólo prestamos atención cuando algo va mal.

El segundo problema con la conexión entre pares es la gran inestabilidad de cada conexión de pares. Un pequeño cambio en el software en un extremo o en otro, y tendremos bugs. Errores sutiles que tal vez no estarán visibles hasta que los datos transferidos se hayan colado en su camino profundo en los registros internos de la organización B. Un ejemplo típico: un pedido siempre fue registrado en lotes de 12, y se procesa como una caja. Pero por alguna razón, un día se hace un pedido de 13, y en algún momento dentro de la organización B, se corrompe la hoja de cálculo que maneja el stock. No hay manera de enviar 1.083 de una caja, y La Máquina se detiene.

Esta inestabilidad se suma otro factor: la necesidad de traducir los supuestos filosóficos — de hecho, la epistemología corporativa, el lenguaje interno privado de una organización a otra organización. Digamos que estamos hablando de reservar un hotel y alquilar un coche como una sola acción: el hotel quiere pensar en los clientes como números de tarjetas de crédito, pero la oficina de alquiler de coches quiere pensar en los clientes como el permiso de conducir. Un pequeño error puede provocar errores de identificación del cliente, una comedia ya que los clientes se les pide por error por su número del carnet de conducir para confirmar la reserva del hotel — pero todo lo que saben del error es “ordenador dice no” sin tener ni idea de que el ordenador ahora quiere otro input distinto.

Si crees que este es un ejemplo ridículo, el Mars Climate Orbiter se perdió por la NASA en 1999 porque un equipo estaba usando pulgadas, y el otro, centímetros. Estas cosas suceden todo el tiempo.

Pero a través del cable, entre dos organizaciones comerciales, no se puede simplemente mirar el código fuente de la otra persona para averiguar el error. Cada vez que dos organizaciones se encuentran y quieren automatizar sus conexiones de back-end, todos estos temas tienen que ser hechos a mano. Es difícil, caro, y tan propenso al error que en la práctica las empresas prefieren usar máquinas de fax. Esto es absurdo, pero así es como el mundo de hoy realmente funciona.

Por supuesto, hay intentos de aclarar este desorden — para introducir estándares y reutilización del código para ayudar a simplificar estas operaciones y hacer de la interoperabilidad empresarial un hecho. Puedes elegir entre EDI, XMI-EDI, JSON, SOAP, XML-RPC, JSON-RPC, WSDL y media docena de más estándares para asistir tus procesos de integración.

No hace falta decir que la razón por la que hay tantas normas es porque ninguno de ellos funciona correctamente.

Por último, existe el problema de la escalabilidad de la colaboración. Decir que dos de nosotros hemos pagado los costos iniciales de colaboración y hemos logrado la armonía técnica perfecta, y ahora un tercer socio se une a nuestra unión. Y ahora un cuarto y un quinto. Por cinco socios, tenemos 13 conexiones a depurar. Seis, siete … por diez el número es 45 conexiones. El costo de la colaboración sigue subiendo para cada nuevo socio que se une a nuestra red, y el resultado son pequeños grupos de colaboración, que simplemente no crecen.

Recuerda, esto no es sólo un problema abstracto — esto es el sistema bancario, esto son las finanzas, la medicina, las redes eléctricas, suministro de alimentos, y el gobierno.

Nuestras computadoras son un desorden.

Hub and Spoke: Conoce al Nuevo Jefe

Una respuesta común a este dilema es cortar a través de la exponencial (bueno, cuadrática) complejidad de escribir software para conectar directamente los pares, y simplemente poner a alguien a cargo. Hay básicamente dos enfoques para este problema.

La primera es que tomamos una organización — VISA sería típica — y todos coincidirán en que vamos a conectarnos con VISA utilizando su interfaz estándar. Cada organización tiene que llegar a un solo conector correcto, y VISA obtiene el 1% de comisión, y se asegura de que todo lo liquida correctamente.

Hay algunos problemas con este enfoque, pero se pueden resumir con el término “monopolio natural”. El negocio de ser un hub o una plataforma para otros es, literalmente, una licencia para imprimir dinero para cualquiera que logre dicho status. Poder político a la hora de establecer los términos de servicio y la negociación con los reguladores puede ser ejercida, pero sobre todo un acuerdo que podría haber comenzado con un esfuerzo para crear una columna vertebral neutral rápidamente se convierte en clientes de un gigante todopoderoso sin la cual uno simplemente no puede hacer negocios.

Este patrón se repite una y otra vez en diferentes industrias, en diferentes niveles de complejidad y escala, desde los ferrocarriles, la fibra óptica, la asignación de la pista en los aeropuertos hasta la gestión de liquidez en las instituciones financieras.

En el contexto de base de datos, hay una sutil forma de este problema: la plataforma de la economía. Si el modelo “hub and spoke” es que todo el mundo tenga Oracle o Windows Servers o algún otro sistema de este tipo, y luego dependan de estas cajas para conectarse entre sí sin problemas porque, después de todo son iguales, tenemos la misma proposición económica básica de antes: para ser un miembro de la red, confías en un intermediario que cobra lo que quiera por el privilegio de tu afiliación, con un impuesto disfrazado como coste técnico.

VISA obtiene 1% o más por una fracción muy importante de las transacciones en el mundo con este juego. Si te has preguntado cuál podría ser el propósito económico de la Blockchain, sólo piensa en lo grande que ese número es.

Protocolos — si puedes encontrarlos

El protocolo es el “unicornio” definitivo. No es una empresa que vale más de mil millones de dólares dos años después de su fundación, pero es una idea tan buena que invita a la gente a dejar de discutir sobre cómo hacer las cosas, simplemente siguen adelante y las hacen.

Internet se ejecuta con un puñado de estas cosas: estándares HTTP y HTML de Sir Tim Berners Lee han funcionado como magia, aunque, por supuesto, él simplemente encendió el fuego y un sinfín de tecnólogos nos dio el lío maravilloso que conocemos y amamos hoy. SMTP, POP e IMAP alimentan nuestro correo electrónico. BGP ordena a nuestros grandes routers. Hay unas pocas docenas más, cada vez más esotérica, que ejecuta la mayor parte de los sistemas abiertos que tenemos.

Una queja común acerca de herramientas como Gchat o Slack es que hacen trabajos que hacen perfectamente grandes protocolos abiertos en juego (IRC o XMPP), pero no hablan dichos protocolos. El resultado es que no hay forma de interoperar entre Slack e IRC o Skype o cualquier otra cosa, sin pasar por hackear conjuntamente pasarelas que intenten ofrecer un rendimiento sólido del sistema. El resultado es una degradación del ecosistema técnico en una serie de jardines amurallados, propiedad de diferentes empresas, y sujeto a los caprichos del mercado.

Imagínese cuánto apestaria WikiPedia si hubiera sido una startup para obtener beneficios económicos de su base de usuarios y devolver sus inversionistas su dinero de vuelta.

Pero cuando la estrategia inicial del protocolo funciona, lo que está creado es una enorme riqueza legítima — no dineraria, pero de riqueza real — ya que el mundo mejora por cosas que simplemente funcionan muy bien juntas. Por supuesto, SOAP y JSON-RPC y todo lo demás aspiran a apoyar la formación de protocolos, o incluso ser los protocolos, pero la definición semántica de cada campo de actividad tienden a crear una complejidad inherente que conduce de nuevo hacia el “hub and spoke” u otros modelos.

Blockchains — ¿un Cuarto Camino?

Habrás oído gente hablando de Bitcoin. Personas misioneras en los cafés absolutamente seguras de que algo fundamental ha cambiado, lanzando términos como “Banco Central de Internet” y discusiones sobre el fin de los Estados nación. Podcasts de mujeres elegantes hablando sobre el increíble futuro. ¿Pero qué hay en realidad debajo de todo esto? ¿Cuál es la tecnología, separada de la política y el futuro potencial?

Lo que hay debajo es una alternativa para obtener las bases de datos sincronizadas dependiendo de la impresión de fajos de papel. Pensemos en papel moneda por un momento: Llevar un fajo de papel a partir de un banco a otro, y el valor se mueve de una cuenta de un banco a otra — de un sistema informático — a otro. Computadoras como simulador de papel, una vez más. Bitcoin simplemente toma un proceso basado en papel, la representación fundamental de dinero en efectivo, y lo reemplaza con un sistema digital: dinero digital. En este sentido, se podría ver a Bitcoin como otro simulador de papel, pero no lo es.

Bitcoin se llevó el papel de ese sistema, y ​​lo reemplazó con un acuerdo estable (“consenso”) entre todos los equipos de la red Bitcoin sobre el valor actual de todas las cuentas implicadas en una transacción. Lo hizo con una solución genuina como protocolo: no hay comisión por intermediarios de rentas, ni la complejidad exponencial del sistema por un infinito número de diferentes conectores. La arquitectura blockchain es esencialmente un protocolo que funciona tan bien como hub-and-spoke para hacer las cosas, pero sin la responsabilidad de un tercero de confianza en el centro que podría optar por extraer rentas económicas. Esto es realmente una muy buena característica. El sistema tiene algunas propiedades mágicas — mismos datos aprobados por todos los nodos, eventualmente — que van más allá del papel y más allá de las bases de datos. Lo llamamos “consenso distribuido”, pero eso es sólo una forma elegante de decir que todo el mundo está de acuerdo, al final, de lo que la verdad (en tu saldo bancario, en tus contratos) hay.

Es en cierto modo algo importante.

De hecho, se rompe con 40 años de experiencia conectando ordenadores entre sí para trabajar. Como una técnica fundamental, las blockchains son nuevas. Y en esta rama de la tecnología, legítimamente las nuevas ideas mueven billones de dólares y establecen la dirección de la industria durante décadas. Son excepcionales.

Bitcoin te permite mover valor de una cuenta a otra sin tener que mover ya sea efectivo o realizar transferencias bancarias complejas porque la tecnología de base de datos subyacente es nueva, moderna y mejor: un mejor servicio a través de una mejor tecnología. Al igual que el dinero en efectivo es anónimo y descentralizado, Bitcoin genera con una política monetaria su propio dinero en efectivo: de un “Banco Descentralizado” a un “Banco Central de Internet”, si así quieres.

Ya que piensas en dinero en efectivo como una forma especial, y ​​de transacciones en efectivo como un papeleo para mover información en una bases de datos, es bastante fácil ver Bitcoin de una manera más clara.

No es una exageración decir que Bitcoin nos ha manifestado la manera de salir de un profundo agujero de 40 años creado por los límites de nuestra tecnología de base de datos. Si puede lograr un cambio real a un nivel fiscal aún está por verse.

Bien, así que ¿qué pasa con Ethereum?

Ethereum toma este enfoque “más allá de la metáfora del papel” para conseguir que las bases de datos trabajen entre sí, incluso más allá de Bitcoin. En lugar de reemplazar dinero en efectivo, Ethereum presenta un nuevo modelo, un cuarto camino. Empujando los datos en Ethereum, está confinado permanentemente en almacenamiento público (la Blockchain). Todas las organizaciones que necesitan acceder a esa información — de tu hermano a tu gobierno — pueden verlo. Ethereum busca reemplazar todos las instancias donde tienes que rellenar los formularios para conseguir ordenadores que trabajen en armonía. Esto puede parecer un poco extraño al principio — después de todo, no deseas que tu historia clínica esté en un sistema de este tipo — y eso es justo, no lo quieres. Si se va a almacenar las historias clínicas en línea, necesitas protegerlas con una capa adicional de cifrado para asegurar que no se puedan leer — aunque deberíamos estar haciendo esto actualmente de todos modos. No es una práctica común cifrar los datos privados, y es por eso que se habla tanto de estos enormes hacks y filtraciones.

Entonces, ¿qué tipo de información te gustaría que fueran datos públicos? Vamos a empezar con algunos obvios: tus nombres de dominio. Eres dueño de un nombre de dominio para tu negocio, y la gente necesita saber que tu empresa es propietaria de ese nombre de dominio — no otra persona. Este sistema único de nombres es como navegamos por Internet en su conjunto: eso es un claro ejemplo de algo que queremos en una base de datos pública permanente. También nos gustaría que los gobiernos no siguieran modificando los archivos públicos y tumbando dominios basándose en sus leyes locales: si Internet es un bien público global, es molesto tener a gobiernos constantemente censurando en Internet lo que no les guste.

Crowdfunding como banco de pruebas

Otro buen ejemplo es el crowdfunding para proyectos, como se hace en plataformas como KickStarter, IndieGoGo y compañía. En estos sistemas, alguien pone un proyecto online y recoge fondos, y hay un registro público de la cantidad que ha recaudado. Si alcanzan una cierta cantidad, el proyecto se financia — siendo interesante que documentaran qué hacen con el dinero. Este es un paso muy importante: queremos que sean responsables de los fondos que hayan recibido, y si los fondos no son suficientes, queremos que sean devueltos. Con Ethereum tenemos un bien público global, la capacidad de las personas para organizar y financiar proyectos juntos. La transparencia realmente ayuda, por tanto este es un lugar natural para una Blockchain.

Así que vamos a pensar en el ejemplo de crowdfunding con más detalle. En cierto sentido, dar dinero a un proyecto de crowdfunding es un contrato simple:

Si el saldo de la cuenta es mayor de $10,000 entonces se financia el proyecto, y si he contribuido más de $50, enviame una camiseta. De lo contrario, devuelve todo el dinero.

Expresados ​​como código de pretender, eso podría ser:

Si presentas este simple acuerdo escrito en código, se obtiene algo como esto. Este es un simple ejemplo de un Smart Contract y los Smart Contracts son uno de los conceptos más poderosos del sistema Ethereum.

El crowdfunding potencialmente nos da acceso al capital riesgo respaldado por la inteligencia técnica profunda, que invierte para crear un cambio político real. Si, por ejemplo, Elon Musk tuviera acceso a la inversión de todas las personas que crean en lo que está haciendo, vendiendo sin dolor (por ejemplo) las acciones de una futura de Ciudad Marte, ¿eso sería bueno o malo para el futuro de la humanidad?

La construcción de los mecanismos que permitan este tipo de acción colectiva masiva puede que sea fundamental para nuestro futuro. (como ejemplo vea el video de youtube de Blockchain de Coase).

Smart Contracts

La capa de implementación de todos estos sueños de fantasía es bastante simple: un contrato inteligente prevé tomar ciertos tipos de acuerdos de escritos en papel y representarlos como software. No puedes imaginar fácilmente hacer esto para pintar la casa — “¿está la casa adecuadamente pintada?” no es algo que una máquina pueda hacer — todavía. Pero para los contratos que son principalmente acerca de temas digitales — piensan en contratos de telefonía móvil, los billetes de avión o similares, que se basan en las computadoras para proporcionar un servicio o enviarte un e-ticket — el software ya representa estos contratos bastante bien en casi todos los casos. Muy de vez en cuando algo sale mal y toda el argot legal en inglés se activa y un juez humano se involucra en una demanda, pero es una rara excepción. Principalmente nos ocupamos de sitios web, y de mostrar a la gente del sistema que nos ayudan (como las azafatas de una aerolínea) prueba de que hemos completado la transacción con el ordenador, por ejemplo mostrándoles nuestras tarjetas de embarque. Hacemos negocios por medio de cumplimentar formularios y los ordenadores salen y arreglan todo por nosotros, no se requieren personas excepto cuando algo va mal.

Para hacer que todo eso sea posible a día de hoy, las empresas que ofrecen este tipo de servicios mantienen su propia infraestructura técnica — el dinero puntocom paga por equipos de ingenieros, granjas de servidores y seguridad física alrededor de estos activos. Puedes recibir los servicios de la gente que te pondrán en marcha un sitio web de comercio electrónico o algún otro caso simple, pero básicamente este tipo de sofisticación es el dominio de las grandes empresas debido a los gastos de estructura y la habilidad técnica que necesitas antes de que puedas tener un sistema informático que ofrezca a su vez servicios y reciba dinero.

Sólo es difícil y costoso. Si estás comenzando un banco o una nueva aerolínea, el software será una parte muy importante de tu presupuesto, y la contratación de un equipo técnico es una parte importante de tu desafío en personal.

Smart Contracts y el Ordenador Global

Entonces, lo que Ethereum ofrece es una “plataforma de contratos inteligentes”, que toma mucho de esos puntos difíciles y caros para automatizarlos. Son sus días tempranos, así que no puede hacerlo todo, pero estamos viendo una sorprendente cantidad de capacidades incluso en su primera versión de la primera plataforma de contratos inteligentes disponible en el mundo.

Entonces, ¿cómo trabaja una plataforma de Smart Contracts? Al igual que Bitcoin, mucha gente corre un cliente del software, y obtienen unos tokens (ethers) por hacerlo. Esos equipos de la red trabajan juntos y comparten una base de datos común, llamada la Blockchain. La blockchain de Bitcoin almacena las transacciones financieras. La blockchain de Ethereum almacena smart contracts. Con Ethereum no alquilas espacio en un centro de datos y contratas a un grupo de administradores de sistemas. Más bien, se utiliza el recurso global compartido, el “ordenador global” y los recursos que pones en el sistema van a las personas cuyos ordenadores constituyen este recurso mundial. El sistema es justo y equitativo.

Ethereum es un software de código abierto, y el equipo de Ethereum lo mantiene (cada vez más con ayuda de un montón de colaboradores independientes y también de otras organizaciones). La mayor parte de la web se ejecuta en software de código abierto producido y mantenido por equipos similares: Sabemos que el software de código abierto es una buena manera de producir y mantener la infraestructura mundial. Esto asegura que no hay ningún órgano centralizado que pueda usar su poder de mercado para decidir arbitrariamente como aumentar las comisiones de transacción para generar ingresos: el software de código abierto (y su hermano un poco más puritano, Free Software) ayudan a mantener estos bienes públicos globales libres y equitativos para todo el mundo.

Los contratos inteligentes, que se ejecutan en la plataforma Ethereum, están escritos en lenguajes simples: no son difícil de aprender por los desarrolladores en activo. Hay una curva de aprendizaje, pero no es diferente de las cosas que los profesionales hacen cada pocos años como proceso natural. Smart contracts son generalmente cortos: 500 líneas ya sería largo. Pero debido a que aprovechan el enorme poder de la criptografía y la Blockchain, porque operan a través de las organizaciones y entre los individuos, hay un enorme poder, incluso en programas relativamente cortos.

Entonces, ¿qué queremos decir sobre el ordenador global? En esencia, Ethereum simula una máquina perfecta — una herramienta que nunca podría existir en la naturaleza debido a las leyes de la física, pero que puede ser simulado por una red de ordenadores suficientemente grande. El tamaño de la red no está para crear la computadora más rápida posible (aunque eso puede venir más tarde con la escalabilidad de la Blockchain), sino para producir un ordenador universal que sea accesible desde cualquier lugar por cualquier persona, y (críticamente!) que siempre obtenga los mismos resultados para todo el mundo. Es un recurso global que almacena respuestas y no puede ser subvertido, negado o censurado (Ver el From Cypherpunks to Blockchains video en youtube).

Creemos que esto es algo importante.

Un contrato inteligente puede almacenar registros sobre quién es dueño de qué. Es capaz de almacenar promesas de pago, y se compromete a entregar sin tener intermediarios o exponer a las personas al riesgo del engaño. Se pueden mover automáticamente los fondos de acuerdo con las instrucciones dadas anteriormente, como un testamento o un contrato de futuros. Para los activos digitales puros no hay un “riesgo de contrapartida” porque el valor a transferir se puede bloquear en el contrato cuando se crea, y liberado de forma automática cuando se cumplan las condiciones y los términos: si el contrato es claro, entonces imposible que haya fraude, debido a que el programa actualmente tiene el control real de los activos depositados en lugar de exigirlos a intermediarios de confianza, como cajeros automáticos o agentes de alquiler de coches.

Y este sistema funciona a nivel mundial, con decenas y potencialmente cientos de miles de ordenadores compartiendo la carga de trabajo y, lo más importante, haciendo una copia de seguridad de la memoria cultural de quién prometió qué a quién. Sí, el fraude sigue siendo posible, en el límites de lo digital, pero muchos tipos de robos es probable que simplemente desaparezcan: se puede auditar la blockchain y averiguar si la casa ha vendido en dos ocasiones, por ejemplo. ¿Quién realmente es dueño de este puente en Brooklyn? ¿Qué pasa si este préstamo se convierte en moroso? Todo eso, tan claro como el cristal, en un sola Blockchain global compartida. Ese es el plan, de todos modos.

Acceso democratizado al estado de la técnica

Todo esto potencialmente toma todo el poder de la tecnología moderna y la pone en manos de los programadores que trabajan en un entorno no mucho más complejo que la programación de sitios web. Estos simples programas de smart contracts se están ejecutando en una enorme y poderosa infraestructura global compartida que puede mover valor y representar la propiedad de activos. Eso crea mercados, como los registros de nombres de dominio, y muchas otras cosas que no entendemos en este momento porque no se han construido. Cuando la “web” se inventó para hacer más fácil la publicación de documentos para que otras personas pudieran ver, nadie habría adivinado que hubiera revolucionado todas las industrias que ha afectado, y cambiando la vida personal de la gente a través de redes sociales, sitios de citas, y la educación online. Nadie hubiera imaginado que Amazon podría algún día ser más grande que Wal-Mart. Es imposible decir con certeza qué caminos los contratos inteligentes tendrán, pero es difícil no mirar a la web, y soñar.

Aunque se necesitaba una gran cantidad de la informática esotérica para crear un entorno de programación que permitiera habilidades web relativamente normales para transferir propiedad dentro de un ecosistema global seguro, ese trabajo se ha hecho. Aunque Ethereum todavía no es un juego de niños para programar, eso es en gran medida una cuestión de documentación, de formación y de madurez gradual del ecosistema técnico. Los lenguajes se escriben y son buenos: la depuración toman más tiempo. Pero la complejidad atroz de la programación de tu propia infraestructura de Smart Contracts se ha ido: los propios contratos inteligentes son más simples que el JavaScript moderno, y nada que un programador web se pueda asustar. Esperamos que estas herramientas estén disponibles en todas partes bastante pronto, ya que la gente empieza a solicitar estos nuevos servicios, y se están formando equipos para ofrecerlos.

¿El Futuro?

Estoy muy emocionado, precisamente porque no sabemos lo que hemos creado, y más importante, lo que tú y tus amigos van a crear con él. Mi creencia es que términos como “Bitcoin 2.0” y “Web 3.0” serán inadecuados — pues será algo nuevo, con nuevas ideas y nueva cultura embebidas en una nueva plataforma de software. Cada nuevo medio cambia el mensaje: los blogs trajeron una escritura extensa de nuevo, y luego Twitter formó un ambiente donde la brevedad no sólo era el alma del ingenio, sino también por necesidad. Ahora con Ethereum podemos representar simples acuerdos como la libertad de expresión, la publicación de una idea, y quién sabe dónde llevará todo esto.

Ethereum Frontier es un primer paso: es una plataforma para los desarrolladores para construir servicios que puedan acceder a través de un navegador web o una aplicación móvil. Más tarde lanzaremos la versión Ethereum Metrópolis, que será como un navegador web, también llamado Mist, que tiene toda la seguridad y criptografía inherente a Ethereum y lo empaqueta bien con una interfaz de usuario que cualquiera puede usar. Los últimos lanzamientos de Mist muestran una cartera segura, y eso es sólo el comienzo. La seguridad ofrecida por Mist es mucho más fuerte que los sistemas de comercio electrónico y las principales aplicaciones móviles. A medio plazo, los sistemas de producción de contratos serán independientes, permitiendo casi a cualquier persona que pueda descargar un “IDE de aplicaciones distribuidas” cargar sus contenidos e ideas — por temas simples no se requerirá ningún código, pero el poder subyacente de la red seguirá estando disponible. Piensa en las líneas de un asistente de instalación, pero en lugar de instalar los drivers de la impresora, estás configurando los términos de un contrato inteligente para un préstamo: ¿qué dinero, cuánto tiempo, qué tasa de amortización?, ¡Haga clic en Aceptar para aprobar!

Si esto suena imposible, bienvenido a nuestro reto: la tecnología ha llegado muy lejos, muy por delante de nuestra capacidad para explicar o comunicar esta tecnología.

¿El Súper Ordenador Global?

No hemos terminado de innovar todavía. En un tiempo — hablando de un año o dos — Ethereum Serenity llevará la red a un nivel completamente nuevo. Actualmente, la suma de más ordenadores a la red Ethereum hace que sea más seguro, pero no más rápido. Gestionamos la velocidad limitada de la red utilizando ethers, un token que permite dar prioridad en la red a las transacciones, etc. En el sistema de Serenity, añadir más ordenadores a la red hará que ésta sea más rápida, y por fin permitirá construir sistemas que realmente sean escalables para Internet: cientos de millones de ordenadores que trabajen juntos para hacer tareas que colectivamente necesitamos hacerlas. A día de hoy podemos hacer cálculos para investigar sobre el plegamiento de proteínas, la genética o la inteligencia artificial, pero ¿quién puede decir qué usos se van a encontrar para este software tan brillante?

Espero que este manual sobre el ecosistema Ethereum haya sido útil, y tan pronto tengamos una versión del sistema para el usuario disponible para su uso general, serás el primero en saberlo!


Escrito por Vinay Gupta, traducido por Jorge Mielgo Haurie and Andreas Junge.

Consensys

Layout by Eva Shon, along with icons from thenounproject.com
Show your support

Clapping shows how much you appreciated ConsenSys’s story.