El mito de la inmutabilidad blockchain

Nodo de origen: 1738527

Donde el pensamiento flexible es preferible al dogmatismo

"El bien más alto, que no hay más alto, es el blockchain, y en consecuencia es inmutablemente bueno, por lo tanto, verdaderamente eterno y verdaderamente inmortal".
- San Agustín, De natura boni, i, 405 CE (con ediciones menores)

Si le preguntas a alguien bien informado sobre las características de blockchains, la palabra "inmutable" aparecerá invariablemente en la respuesta. En inglés simple, esta palabra se usa para denotar algo que nunca se puede modificar o cambiar. En una cadena de bloques, se refiere al registro global de transacciones, que se crea por consenso entre los participantes de la cadena. La noción básica es esta: una vez que una transacción de blockchain ha recibido un nivel suficiente de validación, alguna criptografía asegura que nunca se pueda reemplazar o revertir. Esto marca las cadenas de bloques como diferentes de los archivos o bases de datos normales, en los que la información se puede editar y eliminar a voluntad. O eso dice la teoría.

En la arena estridente del debate de blockchain, la inmutabilidad se ha convertido en una doctrina cuasirreligiosa, una creencia central que no debe ser sacudida ni cuestionada. Y al igual que las doctrinas en las religiones convencionales, los miembros de los campos opuestos usan la inmutabilidad como un arma de burla y ridículo. El año pasado fue testigo de dos ejemplos destacados:

  • Los defensores de la criptomoneda afirman que la inmutabilidad solo se puede lograr a través de mecanismos económicos descentralizados como la prueba de trabajo. Desde esta perspectiva, las cadenas de bloques privadas son ridículas porque dependen del buen comportamiento colectivo de un grupo conocido de validadores, en quienes claramente no se puede confiar.
  • El desprecio se apoyó en la idea de una cadena de bloques editable (o mutable), en la que se pueden hacer modificaciones retroactivas en el historial de transacciones bajo ciertas condiciones. Los burladores plantearon la pregunta: ¿Cuál podría ser el objetivo de una cadena de bloques si su contenido se puede cambiar fácilmente?

Para aquellos de nosotros al margen, es divertido ver la confusión. No menos importante porque ambas críticas son completamente erróneas y se derivan de un malentendido fundamental sobre la naturaleza de la inmutabilidad en blockchains (y de hecho en cualquier sistema informático). Para aquellos con poco tiempo, aquí está el resultado final:

En blockchains, no existe la inmutabilidad perfecta. La verdadera pregunta es: ¿Cuáles son las condiciones bajo las cuales una cadena de bloques en particular puede y no puede cambiarse? ¿Y esas condiciones coinciden con el problema que estamos tratando de resolver?

Para decirlo de otra manera, las transacciones de una cadena de bloques no están escritas en la mente de Dios (con disculpas a Agustín arriba). En cambio, el comportamiento de la cadena depende de una red de sistemas informáticos corporales, que siempre serán vulnerables a la destrucción o la corrupción. Pero antes de entrar en los detalles de cómo, procedamos recapitulando algunos conceptos básicos de las propias cadenas de bloques.

Blockchains en breve

Una cadena de bloques se ejecuta en un conjunto de nodos, cada uno de los cuales puede estar bajo el control de una empresa u organización separada. Estos nodos se conectan entre sí en una densa red de igual a igual, de modo que ningún nodo individual actúa como un punto central de control o falla. Cada nodo puede generar y firmar digitalmente transacciones que representan operaciones en algún tipo de libro mayor o base de datos, y estas transacciones se propagan rápidamente a otros nodos a través de la red de manera similar a un chisme.

Cada nodo verifica independientemente la validez de cada nueva transacción entrante, en términos de: (a) su cumplimiento de las reglas de blockchain, (b) su firma digital y (c) cualquier conflicto con las transacciones vistas anteriormente. Si una transacción pasa estas pruebas, ingresa la lista local de transacciones no confirmadas provisionales de ese nodo (el "grupo de memoria"), y se enviará a sus pares. Las transacciones que fallan se rechazan directamente, mientras que otras cuya evaluación depende de transacciones no vistas se colocan en un área de espera temporal (el "grupo de huérfanos").

A intervalos periódicos, uno de los nodos "validadores" de la red genera un nuevo bloque que contiene un conjunto de transacciones aún no confirmadas. Cada bloque tiene un identificador único de 32 bytes llamado "hash", que está determinado completamente por el contenido del bloque. Cada bloque también incluye una marca de tiempo y un enlace a un bloque anterior a través de su hash, creando una "cadena de bloques" literal que se remonta al principio.

Al igual que las transacciones, los bloques se propagan a través de la red de manera punto a punto y cada nodo los verifica de forma independiente. Para ser aceptado por un nodo, un bloque debe contener un conjunto de transacciones válidas que no entren en conflicto entre sí o con las de los bloques anteriores vinculados. Si un bloque pasa esta y otras pruebas, se agrega a la copia local de la cadena de bloques de ese nodo, y las transacciones dentro se "confirman". Cualquier transacción en el grupo de memoria del nodo o grupo huérfano que entre en conflicto con los del nuevo bloque se descarta inmediatamente.

Cada cadena emplea algún tipo de estrategia para garantizar que los bloques sean generados por una pluralidad de sus participantes. Esto asegura que ningún grupo individual o pequeño de nodos pueda tomar el control del contenido de la cadena de bloques. La mayoría de las cadenas de bloques públicas como Bitcoin usan "prueba de trabajo" que permite que los bloques sean creados por cualquier persona en Internet que pueda resolver un rompecabezas matemático inútil y endiabladamente difícil. Por el contrario, en blockchains privados, los bloques tienden a estar firmados por uno o más validadores permitidos, utilizando un esquema apropiado para evitar el control de las minorías. Nuestro producto MultiChain utiliza una técnica llamada "diversidad minera" que requiere una proporción mínima de validadores permitidos para participar a fin de crear una cadena válida.

Dependiendo del mecanismo de consenso utilizado, dos nodos validadores diferentes podrían generar simultáneamente bloques en conflicto, los cuales apuntan al mismo anterior. Cuando ocurre tal "bifurcación", los diferentes nodos en la red verán diferentes bloques primero, lo que les llevará a tener diferentes opiniones sobre la historia reciente de la cadena. Estas horquillas se resuelven automáticamente mediante el software blockchain, con el consenso recuperado una vez que llega un nuevo bloque a una de las sucursales. Los nodos que estaban en la rama más corta rebobinan automáticamente su último bloque y reproducen los dos bloques en el más largo. Si realmente no tenemos suerte y ambas ramas se extienden simultáneamente, el conflicto se resolverá después del tercer bloque en una rama, o la siguiente, y así sucesivamente. En la práctica, la probabilidad de que una bifurcación persista disminuye exponencialmente a medida que aumenta su longitud. En cadenas privadas con un conjunto limitado de validadores, la probabilidad se puede reducir a cero después de un pequeño número de bloques.

Sin embargo, es importante recordar que cada nodo se ejecuta en un sistema informático propiedad y controlado por una persona u organización en particular, por lo que blockchain no puede forzar para hacer cualquier cosa. El propósito de la cadena es ayudar a los nodos honestos a mantenerse sincronizados, pero si suficientes participantes eligen cambiar las reglas, ningún poder terrenal puede detenerlos. Es por eso que debemos dejar de preguntarnos si una cadena de bloques en particular es verdadera y absolutamente inmutable, porque la respuesta siempre será no. En cambio, deberíamos considerar el condiciones bajo el cual se puede modificar una cadena de bloques en particular, y luego verifique si nos sentimos cómodos con esas condiciones para el caso de uso que tenemos en mente.

Mutabilidad en las cadenas públicas.

Volvamos a los dos ejemplos citados en la introducción, en los que la doctrina de la inmutabilidad se ha utilizado como base para el ridículo. Comenzaremos con la afirmación de que los procedimientos de validación consensual utilizados en blockchains autorizados no pueden generar la "verdadera inmutabilidad" prometida por las cadenas públicas.

Esta crítica se aborda más fácilmente señalando la vulnerabilidad de las propias cadenas de bloques públicas. Tomemos, por ejemplo, la cadena de bloques Ethereum, que sufrió una hazaña devastadora en junio de 2016. Alguien encontró una laguna de codificación en un contrato inteligente llamado "The DAO", en el que se habían invertido casi $ 250 millones, y comenzó a drenar sus fondos rápidamente. Si bien esto viola claramente las intenciones de los creadores e inversores del contrato, su Términos y Condiciones se basó en el mantra de que "el código es ley". Ley o no, menos de un mes después, el software Ethereum se actualizó para evitar que el pirata informático retire la criptomoneda "ganada".

Por supuesto, esta actualización no se pudo aplicar, ya que cada usuario de Ethereum controla su propia computadora. Sin embargo, fue apoyado públicamente por Vitalik Buterin, fundador de Ethereum, así como por muchos otros líderes de la comunidad. Como resultado, la mayoría de los usuarios cumplieron, y la cadena de bloques con las nuevas reglas mantuvo el nombre de "Ethereum". Una minoría no estuvo de acuerdo con el cambio y continuó la cadena de bloques de acuerdo con sus reglas originales, ganando el título "Ethereum Classic". Una elección más precisa de nombres podría ser "Ethereum comprometido" y "Ethereum el puro". De cualquier manera, la democracia es democracia, y (el pragmático y popular) "Ethereum" ahora vale más de diez veces (el idealista pero marginado) "Ethereum Classic".

Ahora consideremos una forma menos benévola en la que la inmutabilidad de blockchain pública puede ser socavada. Recuerde que la creación de bloques o "minería" en bitcoin y Ethereum utiliza un esquema de prueba de trabajo, en el que se debe resolver un problema matemático para generar un bloque y reclamar su recompensa. El valor de esta recompensa inevitablemente convierte la minería en una carrera armamentista, en la que los mineros compiten para resolver los problemas más rápido. Para compensar, la red ajusta periódicamente la dificultad para mantener una tasa constante de creación de bloques, una vez cada 10 minutos en bitcoin o 15 segundos en Ethereum.

En los últimos años 5, dificultad de bitcoin ha aumentado en un factor de 350,000 ×. Hoy, la gran mayoría de la minería de bitcoins se realiza en hardware especializado costoso, en lugares donde el clima es frío y la electricidad es barata. Por ejemplo, $ 1,089 te comprará un Antminer S9, que mina 10,000 10 veces más rápido que cualquier computadora de escritorio y quema XNUMX veces más electricidad. Todo esto está muy lejos de los ideales democráticos con los que se creó Bitcoin, incluso si hace que la cadena de bloques sea extremadamente segura.

Bueno, algo seguro. Si alguien quisiera socavar la inmutabilidad de la cadena de bloques de bitcoin, así es como lo harían. Primero, instalarían más capacidad de minería que el resto de la red en conjunto, creando el llamado "ataque del 51%". En segundo lugar, en lugar de participar abiertamente en el proceso de minería, minarían su propia "rama secreta", que contiene todas las transacciones que aprueban y censuran el resto. Finalmente, cuando haya transcurrido el tiempo deseado, transmitirían de forma anónima su rama secreta a la red. Dado que el atacante tiene más poder minero que el resto de la red, su sucursal contendrá más pruebas de trabajo que la pública. Por lo tanto, cada nodo de bitcoin cambiará, ya que las reglas de bitcoin establecen que gana la rama más difícil. Cualquier transacción previamente confirmada que no esté en la rama secreta se revertirá, y el bitcoin que gastaron podría enviarse a otro lugar.

Por ahora, la mayoría de los creyentes de bitcoin se reirán, porque escribí "instalar más capacidad de minería que el resto de la red en conjunto" como si esto fuera trivial de lograr. Y tienen un punto, porque por supuesto no es de forma sencillade lo contrario, mucha gente ya lo habría hecho. Necesitas mucho equipo de minería y mucha electricidad para alimentarlo, lo que cuesta mucho dinero. Pero aquí está el hecho inconveniente de que la mayoría de los bitcoiners se pasan por alto: Para el gobierno de cualquier país de tamaño medio, el dinero requerido sigue siendo un pequeño cambio.

Calculemos el costo de un ataque del 51% que revierte un año de transacciones de bitcoin. Al precio actual de bitcoin de $ 1500 y una recompensa de 15 bitcoins (incluidas las tarifas de transacción) por bloque de 10 minutos, los mineros ganan alrededor de $ 1.2 mil millones por año ($ 1500 × 15 × 6 × 24 × 365). Suponiendo (razonablemente) que no están perdiendo dinero en general, o al menos no pierden mucho, esto significa que los gastos totales del minero también deben estar en el mismo rango. (Estoy simplificando aquí al amortizar el costo único de comprar equipos de minería, pero $ 400 millones le comprarán suficientes Antminer 9 para igualar la capacidad de minería de la red actual de bitcoin, por lo que estamos en el estadio correcto).

Ahora piensa en el informes que los ciudadanos chinos están utilizando ese bitcoin para eludir los controles de capital de su país. Y considere además que los ingresos fiscales del gobierno chino son de aproximadamente $ 3 trillón por año. ¿El gobierno de un país no democrático gastaría el 0.04% de su presupuesto para cerrar un método popular para sacar dinero ilegalmente de ese país? No diría que la respuesta es necesariamente si. Pero si crees que la respuesta es que probar definitivamente No, estás siendo más que un poco ingenuo. Especialmente teniendo en cuenta que, según los informes, China emplea a 2 millones de personas para controlar el contenido de Internet, que totaliza $ 10 mil millones / año si asumimos un salario bajo de $ 5,000. Eso pone en perspectiva el costo de $ 1.2 mil millones de revertir un año de transacciones de bitcoin.

Incluso este análisis subestima el problema, porque el gobierno chino podría socavar la red bitcoin de manera mucho más fácil y económica. Parece que la mayoría de la minería de bitcoins tiene lugar en China, debido a la energía hidroeléctrica de bajo costo y otros factores. Dados algunos tanques y pelotones, el ejército de China podría aprovechar físicamente estas operaciones de minería de bitcoins y reutilizarlas para censurar o revertir las transacciones. Si bien el mundo más amplio de bitcoin sin duda se daría cuenta, no hay nada que pueda hacer sin alterar fundamentalmente la estructura de gobierno (y, por lo tanto, la naturaleza) del propio bitcoin. ¿Qué fue eso de la censura de dinero gratis?

Nada de esto debe interpretarse como una crítica del diseño de bitcoin o una predicción de que en realidad sucederá una catástrofe en la red. La cadena de bloques de bitcoin es una pieza notable de ingeniería, tal vez incluso perfecta para el propósito que sus creadores tenían en mente. Y si tuviera que invertir dinero, apostaría a que China y otros gobiernos probablemente no atacará a bitcoin de esta manera, porque no les interesa hacerlo. Lo más probable es que centren su ira en sus primos más imposibles de rastrear como Dash, Zcash y Monero.

Sin embargo, la mera posibilidad de esta forma de interferencia pone en su lugar la doctrina de la inmutabilidad de la criptomoneda. La cadena de bloques de bitcoin y su tipo no son inmutables en ningún sentido perfecto o absoluto. Más bien, son inmutables siempre que nadie lo suficientemente grande y rico decida destruirlos. Aún así, confiando en el económico El costo de subvertir la red, la inmutabilidad de la criptomoneda satisface las necesidades específicas de las personas que no quieren confiar en los gobiernos, las empresas y los bancos. Puede que no sea perfecto, pero es lo mejor que pueden hacer.

Cadenas privadas regrabables

Ahora pasemos a blockchains privados, diseñados para las necesidades de gobiernos y grandes empresas. Podemos comenzar señalando que, desde la perspectiva de estas organizaciones, la inmutabilidad basada en la prueba de trabajo es una completo, legal y regulador no iniciador, porque permite que cualquier actor (suficientemente rico) ataque anónimamente a la red. Para las instituciones, la inmutabilidad solo puede basarse en el buen comportamiento de otras instituciones similares, con las que pueden firmar un contrato y demandar si es necesario. Como beneficio adicional, las cadenas de bloques privadas son mucho menos costosas de ejecutar, ya que los bloques solo necesitan una firma digital simple de los nodos que los aprueban. Siempre que la mayoría de los nodos de validación sigan las reglas, el resultado final es una inmutabilidad más fuerte y más barata que cualquier criptomoneda pública puede ofrecer.

Por supuesto, la inmutabilidad sigue siendo fácil de socavar si todos los participantes de una cadena deciden hacerlo juntos. Imaginemos una cadena de bloques privada utilizada por seis hospitales para agregar datos sobre infecciones. Un programa en un hospital escribe un conjunto de datos grande y erróneo en la cadena, lo que es una fuente de inconvenientes para los demás participantes. Unas pocas llamadas telefónicas más tarde, los departamentos de TI de todos los hospitales acuerdan "rebobinar" sus nodos una hora, eliminar los datos problemáticos y luego permitir que la cadena continúe como si nada hubiera pasado. Si todos los hospitales están de acuerdo en hacer esto, ¿quién los va a detener? De hecho, aparte del personal involucrado, ¿quién sabrá siquiera que sucedió? (Cabe señalar que algunos algoritmos de consenso como PBFT no proporciona un mecanismo oficial para las reversiones, pero esto no ayuda con la gobernanza ya que los nodos aún son libres de eludir las reglas).

Ahora considere un caso en el que la mayoría de los participantes de una cadena de bloques privada aceptan rebobinar y eliminar alguna transacción, pero algunos retienen su consentimiento. Como el nodo de cada organización está bajo su control final, nadie puede obligar a la minoría a unirse al consenso. Sin embargo, al apegarse a sus principios, estos usuarios se encontrarán en una bifurcación ignorados por todos los demás. Al igual que los virtuosos defensores de Ethereum Classic, su lugar en el cielo bien puede estar asegurado. Pero aquí en la tierra, serán excluidos del proceso de consenso para el cual se desplegó la cadena, y también podrían renunciar por completo. La única aplicación práctica de transacciones fuera del consenso es servir como evidencia en un tribunal de justicia.

Con esto en mente, hablemos sobre el segundo caso en el que la doctrina de la inmutabilidad de blockchain se ha utilizado para ridiculizar las ideas. Aquí, nos referimos a la idea de Accenture de usando un hash de camaleón para permitir que un bloque enterrado profundamente en una cadena sea reemplazado fácilmente. La motivación principal, como descrito por David Treat, es permitir que una vieja transacción problemática se elimine de manera rápida y eficiente. Según el esquema, si ocurre una sustitución de bloque, se deja una "cicatriz" que todos los participantes pueden ver. (Cabe señalar que cualquier transacción posterior que dependa de la eliminada también debería eliminarse).

Es difícil exagerar cuántas personas despreciaron esta idea cuando se anunció. Twitter y LinkedIn estaban horrorizados y agitados. Y no solo estoy hablando de la multitud de criptomonedas, que se divierte al burlarse de todo lo relacionado con blockchains empresariales. La idea fue ampliamente criticada por defensores privados de blockchain también.

Y, sin embargo, en las condiciones adecuadas, la idea de permitir que las cadenas de bloques se modifiquen retroactivamente a través de hashes de camaleón puede tener mucho sentido. Para entender por qué, comenzamos con una pregunta simple: en este tipo de blockchain, ¿quién tendría realmente el poder de reemplazar los bloques viejos? Claramente, no puede ser ningún participante de la red no identificado, porque eso haría que la cadena sea ingobernable.

La respuesta es que un hash de camaleón solo puede ser usado por aquellos que tienen su clave secreta. La clave es necesaria para permitir que una nueva versión de un bloque, con diferentes transacciones, reciba el mismo hash de camaleón que antes. Por supuesto, probablemente no queremos un control centralizado en una cadena de bloques, por lo que podemos fortalecer el esquema al tener múltiples hashes de camaleón por bloque, cada una de las cuales posee una clave diferente. O podríamos usar intercambio secreto técnicas para dividir una clave hash de camaleón entre varias partes. De cualquier manera, la cadena puede configurarse de modo que una sustitución de bloque retroactiva solo pueda ocurrir si la mayoría de los poseedores de claves lo aprueban. ¿Esto comienza a sonar familiar?

Permítame hacer que el paralelo sea más explícito. Digamos que compartimos el control sobre los hashes de camaleón entre esos mismos nodos de validación que son responsables de la creación de bloques. Esto significa que un bloque antiguo solo se puede reemplazar si la mayoría de los nodos de validación aceptan hacerlo. Y sin embargo, como discutimos anteriormente, cualquier blockchain puede ya haya utilizado ser modificado retroactivamente por la mayoría de los nodos de validación, a través del mecanismo de rebobinado y reproducción. Entonces, en términos de gobernanza, los hashes de camaleón sujetos a una mayoría de validadores no hacen ninguna diferencia.

Si es así, ¿por qué molestarse con ellos? La respuesta es: optimización de rendimiento, porque los hashes de camaleón permiten que los bloques viejos se sustituyan en una cadena mucho más eficientemente que antes. Imagine que necesitamos eliminar una transacción desde el inicio de una cadena de bloques que se ha estado ejecutando durante 5 años. Quizás esto se deba a la Unión Europea derecho al olvido legislación, que permite que las personas eliminen sus datos personales de los registros de las empresas. Los nodos no pueden simplemente borrar la transacción ofensiva de sus discos, porque eso cambiaría el hash del bloque correspondiente y rompería un enlace en la cadena. La próxima vez que se escaneó o compartió la cadena de bloques, todo se vendría abajo.

Para resolver este problema sin hash de camaleón, los nodos tendrían que reescribir el bloque inicial sin la transacción problemática, calcular el nuevo hash del bloque y luego cambiar el hash incrustado en el siguiente bloque para que coincida. Pero esto también afectaría el hash del bloque siguiente, que debe recalcularse y actualizarse en el bloque siguiente, y así sucesivamente a lo largo de la cadena. Si bien este mecanismo es posible en principio, podría llevar horas o días completarlo en una cadena de bloques con millones de bloques y transacciones. Peor aún, mientras participa en este proceso, un nodo puede ser incapaz de procesar una nueva actividad de red entrante. Por lo tanto, los hash de camaleón proporcionan una forma mucho más eficiente desde el punto de vista informático para lograr el mismo objetivo. Si imagina una mala transacción como una roca enterrada a muchas millas bajo tierra, los hash de camaleón pueden teletransportar la roca a la superficie, en lugar de hacernos cavar hasta el fondo, recuperar la roca y llenar el agujero.

La inmutabilidad es matizada

Al revisar los riesgos de blockchains de prueba de trabajo y el valor técnico de los hashes de camaleón, espero haberte convencido de que la inmutabilidad de blockchain es mucho más matizada que una pregunta de "sí o no". Citar Simon Taylor citando a Ian Grigg, la pregunta siempre debe ser "¿quién eres y qué quieres lograr?"

Para los creyentes en criptomonedas que desean evitar el dinero emitido por el gobierno y el sistema bancario tradicional, tiene mucho sentido creer en una cadena de bloques de prueba de trabajo pública, cuya inmutabilidad se basa en la economía en lugar de las partes confiables. Incluso si deben vivir con la posibilidad de que un gran gobierno (u otro actor rico) derribe la red, pueden consolarse con el hecho de que esta sería una operación dolorosa y costosa. Y sin duda esperan que las criptomonedas solo se vuelvan más seguras, ya que su valor y capacidad de minería continúan creciendo.

Por otro lado, para las empresas y otras instituciones que desean compartir de manera segura una base de datos a través de los límites de la organización, la inmutabilidad de la prueba de trabajo no tiene ningún sentido. No solo es asombrosamente costoso, sino que permite que cualquier participante suficientemente motivado tome el control anónimo de la cadena y censure o revierta las transacciones. Lo que estos usuarios necesitan es la inmutabilidad basada en el buen comportamiento de la mayoría de los nodos de validación identificados, respaldados por contratos y leyes.

Finalmente, para la mayoría de los casos de uso de blockchain autorizados, probablemente no queremos que los nodos validadores puedan sustituir de manera fácil y económica los bloques viejos en la cadena. Como Dave Birch dijo en su momento, "La forma de corregir un débito incorrecto es con un crédito correcto", en lugar de pretender que el débito nunca tuvo lugar. Sin embargo, para aquellos casos en los que necesitamos la flexibilidad adicional, los hashes de camaleón ayudan a que las cadenas de bloques sean una opción práctica.

Por favor publique cualquier comentario en Linkedin.

Sello de tiempo:

Mas de Multicain