¿Qué ch1b*@d0s es una Blockchain?

*nota: Artículo publicado originalmente en el medium de Everardo J Barojas.

Antes que nada quiero declararme un pendejo muy ignorante. Porque concuerdo en que el mayor enemigo del conocimiento no es la ignorancia, si no la ilusión del conocimiento. Estoy del lado del conocimiento a toda costa, y por eso este texto es producto de mi ignorancia y pendejés, que me llevaron a leer mucho. A ud, estimado lector, le digo que la única carta que comprueba mi confianza, es que tengo la piel en juego, escribo con mi nombre verdadero y no estoy comprado por nadie.

Una vez pasado ese trago muy amargo, quiero decir que este va a ser un postpseudo lépero. Considero que voy a poder ser más directo así, perdón, perdón y perdón, estimado lector.

He estado metido hasta el cuello en el mundo del Blockchain desde hace 4 años y en este tiempo he visto a varios, incluyéndome a mi, irse a la chingada. Mi lección principal es esta:

En modo de axioma: El Blockchain no es polvo mágico, es una cadena de bloques

Los derechos de esta frase mágica, son de @petertoddbtc (para el no iniciado, uno de los programadores que ha contribuido al código fuente de Bitcoin): https://twitter.com/bitcoin_ch/status/889549610255085573

La Blockchain es una base de datos antes que cualquier otra cosa. En cuanto a su capacidad de guardar datos, esta tecnología, es la primera instancia exitosa con estas características (me remito a los básicospara la fuente):

Pseudo anónima:Los únicos identificadores son llaves públicas (a veces llamadas carteras). En la implementación actual, pertenecen anónimas, sin embargo si por medios terceros identificas quién esta detrás de la llave pública, se pierde la anonimidad. De hecho, hay mucho interés en perder la anonimidad de algunas carteras.

Auditable:La Blockchain es pública por diseño y por ende, auditable para quien tenga interés. No hace falta más que ver este estudio de @wizsecurity (https://blog.wizsec.jp/2017/07/breaking-open-mtgox-1.html) estudiando qué sucedió con los Bitcoins del robo de Mt. Goxpara entender las ventajas de que sea público.

Inmutable:La Blockchain logra su inmutabilidad a través de una cadena de bloques(i.e., Blockchain). Cada bloque y transacción nuevo encadenainformación del bloque anterior e incorpora la fecha y hora en que se cualquierbloque es necesario modificar todos los bloques anteriores.

No repudio: La Blockchain es una base de datos pública habilitada por criptografía asimétrica. En el white paper original, una moneda electrónica (o sea un Bitcoin) se define como una cadena de firmas electrónicas que el pagador y receptor pueden auditar y que ninguno puede repudiar. La Blockchain es, en efecto, una base de datos que deja pasar todo lo que venga y de quién venga, pero si tus llaves no son correctas, nada sucederá.

BFT:Mejor conocido como Byzantine Fault Tolerance, en español: Tolerante al problema de los generales bizantinos. Este problema se entiende cuando imaginamos a un grupo de generales del ejercito bizantino que deben decidir qué hacer: unos deciden atacar y otros retroceder. Por razones varias, algunos tendrán conflictos de interés, o podrán ser comprados y decidir algo en contra del beneficio general. El sistema se vuelve tolerante al problema cuando los generales lealesllegan a un consenso unánime… y así en la Blockchain. Las creadoras de Bitcoin consideraron que iba a haber jugadores malévolos, con intereses encontrados y para evitar depender de un tercero, la Blockchain fue diseñada como un sistema distribuido que puede llegar a un consenso. Cuando el software (Bitcoin es un software, cuya base de datos es la Blockchain) llega a un consenso unánime, se toma una decisión indiscutible.

Las Concupiscencias del Bitcoin

La Sra. Satoshi no descubrió el hilo negro solita, se montó en los hombros de años de trabajo de los que hoy conocemos como los Cypherpunks. Desde principios de los 90s colectivamente tratamos de inventar dinero electrónico. No me crean a mi, acuérdense que no soy más que un pendejo ignorante, pero por favor vean por favor estos vestigios: 1. First Bank Of Internet(con fecha del ‘95) y 2. Brand’s Cash, una de los primeros intentos de dinero cibernético explicado por Hal Finney. Incidentalmente, Hal Finney es de los perfiles que probablemente mejor se adecúan a una fibrita de Satoshi, Hal ya murió pero permanece cryopreservado por la fundación Alcor… A otro gran candidato es Dave Kleiman, lo encontraron muerto, sólo,con una USB amarrada al cuello.

Bueno, vamos a subir el nivel de la conversación. La implementación de Bitcoin va de la mano de la Blockchain, y el software de Bitcoin apalanca la Blockchain con ciertas intenciones, que toco tangencialmente en estos puntos:

¿Por qué hay bloques? Hay dos razones por las cuales la Srita. Satoshi implementó bloques en su white paper. La primera es para simplificar la validación de pagos y la segunda es para disminuir la cantidad de información necesaria para su funcionamiento básico: No es necesario tener TODO el historial para validar una transacción, se pueden validar transacciones individuales sólo con la raíz de merkleguardada en el Block Header. En promedio hay 2,000 veces más transacciones que bloques, validar transacciones sólo con información del header es una cualidad importante.

¿Por qué es descentralizada? Como mencioné antes, hubo varios intentos de hacer dinero electrónico, algunos fueron centralizados y terminaron muy mal. Si iba a existir una moneda electrónica no podía pertenecer a nadie y tenía que considerar que este un mundo cruel y fundamentalmente ojete. Así que se construyó una red punto a punto, (peer to peer), resistente al problema de los generales bizantinos y como no iba a ser de nadie, el único modo de tomar decisiones en la red tenía que ser por consenso. Todas las decisiones en Bitcoin se toman por consenso y los votos son proporcionales a la potencia de CPU de los involucrados. El bloque más valido es el bloque más antigüo y el bloque más antigüo es el bloque que más Proof-of-Work tiene.

¿Proof-of-Work? Para evitar que nodos falsos finjan tener una cadena más antigüa, (i.e., con más trabajo) la validación de cada bloque lleva una prueba de trabajo imposible de fingir, que requiere potencia de CPU bruta para realizarse. Esto se llama proof-of-work y está basada en una criptomoneda de los 90s que se llamaba hashcash. Como moneda murió rápidamente, pero el algoritmo de prueba de trabajo sigue en uso, principalmente por blockchain pero también como medida de prevención de SPAM entre otros usos.

Conclusión: Blockchain es una base de datos resistente al problema de los generales bizantinos (i.e., distribuida), auditable, no repudiable a nivel transaccional e inmutable. Todas estas características son innovadoras y contribuyen a su funcionamiento.

La tecnología Bitcoin Blockchain es TODO esto junto, pero no todas las Blockchains son iguales, al momento de escribir esto: R3 de Corda no es tolerante al problema de generales bizantinos(más que para su modelo de Notarios), no involucra minado yestá respaldada por SQL. Ethereum utiliza otro algoritmo para la prueba de trabajoy no tiene un mecanismo de emisión limitado y la Blockchain de Accenture no es inmutable. Esto es sin siquiera tocar el tema de los Tokenso cryptomonedas que una Blockchain tiene o no tiene.

Les dejo mi imagen preferida: https://twitter.com/e_barojas/status/890732919194505216

*nota: Uso adjetivos femeninos en el nombre de Satoshi porque sí, porque no sabemos quién es y porque bien podría tener una componente femenina.