BlockChain y Bitcoin

Blockchain vs. Bitcoin.

Pero … que es? … para que sirve? … cual es la diferencia? Hay mucho ruido alrededor de estos conceptos. Principalmente porque todo el mundo quiere hablar de ellos, pero pocos entiende realmente lo que son y el porque de cada uno de ellos. He oído definiciones de todo tipo, y mientras nos mantenemos en un nivel de abstracción lo que se dice tiene sentido, pero en cuanto profundizamos, o intentamos llegar a alguna conclusión, la argumentación se desmonta sola.
Un dia, una perona, que realmente no se sabe quien fue, publico un articulo donde describia las bases matemáticas por las cuales, se puede crear una base de datos donde nadie puede modificar el contenido de forma arbitraria. Una reglas y normas por las cuales podemos garantizar que un conjunto de gente, que no se necesitan conecer, ni necesitan confiar entre ellos, pueden compartir una base de datos, sabiendo que ninguno puede hacer lo que quiera con ella.
De modo que, la información que existe en la base de datos es cierta y correcta.
En las base de datos convencionales, la información que contiene es valida por los sistemas de seguridad y de control que se establece para escribir en ella. En un banco tu cuenta corriente tiene una cantidad y no otra porque el banco controla que nadie pueda cambiar ese numero. Si alguien acceder de forma ilícita, o hackea la base de datosy donde pone 500 pone 50.000 podriamos aumentar el saldo de tu cuenta. Y ahí esta el problema de los hackers. Si encuentran un modo de entrar en la base de datos y cambiarla, el banco crear ese valor.
En el caso de blockchain, no es necesario poner controles de acceso ya que la propia información que conforma la base de datos nos dirá si alguien a modificado el valor ilícitamente.
Como ya no hace falta guardar bajo llave la información, no importa que el que quiera se tenga una copia, y por eso todas las bases de datos basadas en blockchain son distribuidas. Lo que quiere decir que si quieres leer un datos de la base de datos, no tienes que ir al banco, decir quien eres, y dejarle que el acceda de forma “restringida” ala información. Simplemente puedes mirar la copia que tienes en tu propio ordenador.
Y como funciona realmente. La base de datos del banco, las bases de datos tradicionales son bases de datos de estado. El valor es uno, y cuando lo cambio deja de ser el anterior y se convierte en el nuevo. Sabiendo el valor actual, no puedo decir como he llegado a este valor. Por motivos de seguridad los bancos mantienes monitorización, que registra cualquier acceso a la base de datos. Quien ha accedido y que cambios ha realizado. Pero esta información de actividad se mantiene fuera de la base de datos, y no es necesaria para la funcionalidad de la base de datos en si. Si quitamos la monitorización todo sigue funcionando.
En el caso de blockchain la base de datos no almacena el estado de los valores, sino almacena de forma estructural a la información, todas las modificaciones que han sufrido cada uno de los valores. De ese modo, para saber un valor determinado, lo que la base de datos hace es recorrer todos los cambios que ha sufrido ese valor desde le principio hasta la actualidad. Basándonos en la magia de la matica, esa secuencia de cambios es inmutable e incorruptible. Se puede, y se debe, recorrer toda la vida del valor, desde su comiendo, confirmando que cada cambio es legitimo y asi conrimar que el valor actual es el que es y es valido.
Y como lo hace. Bueno ahí esta la magia de la matemática, pero valga decir que cuando registramos un movimiento, se mantiene una referencia al movimiento anterior de modo que no perdamos el rastro del origen y la historia de este valor.
Cada uno de estos cambios lo llamaremos blockes (Blocks), y como cada blocke referencia el blocjjke anterior, acabamos teniendo una cadena de blockes que dan validez a cada dato que contenemos en la base de datos. He ahí el origen de su nombre BlockChain, cadena de blockes.
Si entendemos lo que es BlockChain, que no es mas que una cadena de blockes que almacenan información de modo, en base a la matemática mágica, que sabemos que los blockes nadie los ha modificado y por lo tanto la referencia al blocke anterior que contiene es valido, ahora podemos describir como funciona Bitcoin, a modo de ejemplo de uso de Blockchain.
Pues bien, en BitCoin los blockes contienen transacciones monetarias. A le ha dado a B tantos bitcoins. Y esa transacción se guarda en un bloque, referenciando el bloque que contiene la transacción anterior de donde viene ese dinero. En resumidas cuentas, el blockchain de bitcoin mantiene una referencia de donde ha estado cada moneda. Como si el banco de espanya guardara un registro de por que manos ha pasado cada moneda que imprime. De ese modo sabe en cada momento quien tiene que moneda y por lo tanto cuantas monedas tiene cada uno. Eso es todo.
Ahora imagiunate que cada transacción se realiza con un sobre lleno de bitcoins. Alquien A (un alias para no identificar a la persona), se lo da a B (que también es un alias). Manyana B puede utilizar ese mismo sobre para darle todo o parte a C (también un alias), por lo tanto la base de datos registra que A le dio a B y que B le puede dar a C porque A se lo dio antes, y asi sucesivamente.
Y si, no sabemos quien le dio el que a quien. Sabemos A, B y C … pero esos son alias, o identificadores digitales. Son números muy largos que solo la persona real A y la persona real B y la persona real C saben. Bueno ellos no, sus carteras digitales que no es mas que una aplicación que guarda esos identificadores. De ese modo si C quiere pagar D algo, necesita tener el identificador del sobre, de la cantidad que B le dio, así como solo C conoce ese identificador, solo C puede hacer uso de ese dinero y pagar a D. Si C pierde ese identificador, no podrá hacer uso de ese sobre, y lo perderá como el que pierde la llave de una caja fuerte y nunca puede acceder a su contenido.
Por lo tanto vemos que tenemos una base de datos publica, donde todos los movimientos son visibles para cualquier, que matemáticamente hablando todas las transacciones de la base de datos se pueden comprobar que son validas y ciertas, y como no se usan nombres reales, de facto la propiedades de los bitcoins es anónima. Es como si cada transacción se guardara en una caja de seguridad que solo el propietario tenga la llave, pero nadie conocer la identidad de quien tiene la llave. Al final acabas teniendo cientos o miles de cajas de seguridad cada una con una cantidad y cada una con una llave secreta que te da acceso a esa cantidad. Cuando quieres hacer una transacción puedes usar tantas cajas como necesites para alcanzar la cantidad que deseas transferir a alguien, y si te sobra, pues nada el resto se mete en otra caja donde la llave te la quedas tu.
Como puides ver las transaciones pueden llegar a ser complejas y grandes, pero como lo hacen ordenadores, nos da igual si para pagar al panadero, cambio un billete de 50€, o rompo 30 cerditos cada uno con unos pocos centimos para llegar al euro que me vale la barra de pan. Si un euro… me entere el otro dia .. madre mia como estamos.
Entonces… si el bitcoin almacena la vida y aventuras de cada bitcoin desde sus orígenes, cual es el origen de cada bitcoin. Donde nacen. Cuantos hay.
Ahí hemos llegado al lado complicado del sistema donde la gente se pierde y donde todo se vuelve tan confuso que dejamos de fiarnos y queremos tener trozos de metal o de papel de colores en el bolsillo.
Pues bien, el tio que escribió aquel articulo que describia como funcionaba bitcoin, también describió de donde salen, a que ritmo y cuando dejaran de crearse. Por lo tanto, si, los bitcoins llegaran a una cantidad máxima y ya no aumentaran. Creo que en el 2020, pero abria que leer el articulo.
Antes de entrar en detalles de los famosos mineros, dejarme que os cuente una historia. Un dia en la universidad empezamos a estudiar la LORTAD, que ya no existe, pero fue la primera ley de protección de datos tratados por sistemas informáticos. Pues bien, lo que me llamo la atención fue que se había creado una ley para el control del tratamiento automatizados de datos, no para el control de los datos en si. Los datos en si no estaban regidos por esta ley hasta que no los incorporabas a un sistema informatico. Y la pregunta fue, porque. Si un dato es publico, cual es el motivo para crear una ley que controle su gestión, cuando si manejo ese mismo dato en papel la ley no aplica. Pues bien, todo se basa en la diferencia de la realidad que provoca la rapidez con la que se pueden manejar datos por un ordenador. El ejemplo que me pusieran fue el siguiente. Si alguien te quiere investigar, puede pasarse días o semanas yendo a los distintos ministerios, registros, colegios, etc, donde obtener toda la información publica que existe de mi, para saber quien soy y que hago. Y ese acceso no se considera que vulnera ninguno de mis derechos de privacidad, etc. Pero si alguien quiere saber de mi, y consigue la misma información, repito publica, pero en segundos, eso si vulnera mi privacidad. Por lo tanto no es la información sino el modo en el que se puede manipular, lo que vulnera mi privacidad.
Bueno pues, volviendo a bitcoin, todo el sistema se basa en hacer complicado y complejo que alguien pueda crear esos enlaces entre blockes. El sistema esta montado para garantizar que por mucho dinero y potencia que tengas en el mundo se tarde alrededor de 10 minutos en calcular el enlace entre un bloque y otro. Ese hecho de complejidad y tiempo es relamnente dificl que alguien a dia de hoy pueda modificar un bloque de forma unilateral. Muy improbable que modifique 2 y prácticamente imposible que modifique 3, porque recordemos, para que la integridad de la cadena se mantenga , si quisiéramos modificar un valor de algún bloque, necesitamos modificar no solo el bloque que queremos, sino todos los demás hasta llegar al presente. De este modo, si una transacción se ha registrado en la cadena hace mas de 1 hora, ya es imposible que nadie la modifique. Es como decir que te pueden robar el pan caliente, pero en cuanto se enfrie ya es imposible que nadie lo toque.
Pues aquí están los mineros. Los hacen los cálculos matemáticos necesarios para poder crear los enlaces entre bloques se llaman mineros. Son gente que esta invirtiendo mucho dinero en ordenadores especializados en calculo matemático, cuya única finalidad es calcular los enlaces entre bloques. Y diras, es un calculo matemático, yo puedo tardar mucho o poco pero si me das tiempo yo lo podría calcular. Pues si, por eso los mineros calculan en modo de carrera. Es como si cada 10 minutos te dieran una suma muy larga, tu te poner a calcularla, pero si no eres el primero no te dan bollo. Si siempre hay alguien mas rápido , por mucho tiempo que inviertas sumando nunca cobras. El primero en calcular el enlace, lo escribe en la base de datos, se lo dice a todos que el resultado es ese, y se ponen con el siguiente.
Pero … porque los llaman mineros… y aun no me has explicado de donde salen los bitcoins. Imaginate que los Bitcoins furean oro. Mantenemos control de todo el oro en circulación, pero de donde sale mas… pues de la mina. Un minero consigue oro, lo registra, y desde ese momento se empieza a registrar sus movimientos en la base de datos. Por lo tanto los bitcoins nacen de los mineros. Pero de donde los sacan. Bueno, pues el tio del articulo también lo definio. Dijo que cada vez que hay una carrera para crear un enlace entre bloques, el que gane, cuando registre el bloque, también registrara el nacimiento de tantos bitcoins cuya calve para acceder solo tiene el minero. De ese modo, los mineros van creando bitcoins en cada carrera, y solo el que gane puede crear. Así los mineros cobran por el esfuerzo de realizar la carrera del calculo matemático.
Y que cobraran los mineros cuando ya no se puedan crear mas bitcoins. Bueno, ya llegaremos a eso en 3 anyos, pero decir que cada transacción tiene un campo de comisión. Asi que A le da dinero a B pero además también define la comisión que esta dispuesto a pagar. En estos momentos ese valor siempre suele estar a cero porque el propio sistema ya compensa a los Mineros con la generación, pero cuando ya no haya generación, los mineros, que ya no se deberían llamar asi, cobraran la suma de todas las comisiones de todas las transacciones contenidas en el bloque para el que han ganado creando el enlace al bloque anterior. Esto abrirá el debate ya que los mineros podrán elegir, de entre todas las transacciones a incluir en un bloque, cuales incluyen y cuales dejan pendiente para que otro minero lo genere. Asi si pones una comisión alta tu transacción acabra en la base de datos mucho antes que si pones una comisión baja. Aquí entrara el equilibrio, oferta y demanda de bloques y transacciones, pero dicen que el sistema se autoregulara y que tardara mas o menos pero todas las transacciones acabaran incluidas en la base de datos por un minero o por otro.
Y poco mas hay que explicar, una base de datos, que muchas veces también llaman registro, que contiene el toda la vida y aventuras de cada bitcoin, que se registra en modo de bloques de transacciones donde un A la da a un B una cantidad, y que el único que puede usar ese bloque para hacer otra transferencia es el receptor de la trasnferencia anterior, es decir B. Asi sabemos que A deja de tener ese bitcoin, y que solo esta a disposición de B para que se lo pase a otro C. Que no se referencian identidades sino claves, por lo que para hacer uso de tu dinero en bitcoins necesitas las claves de todas las transacciones que se te ha hecho, y que esas claves se almacenan en unos programas que llaman carteras digitales (digital wallets).
Ya por terminar decir que Bitcoin es un ejemplo de uso de bitcoin. Que las reglas de compensación, las de generación , las reglas de la carrera para acordar el enlace que gana , el contenido y estrucutra de cada bloque, etc… todas esas definiciones hacen que un blockchain sea distinto de otros. En resumen blockchain es la idea, te tecnología, que permite que una base de datos sea integra e inmutable a pesar de ser publica y accesible por quien quiera.
En el próximo articulo de bitchain explicar mi visión de los usos que puede tener blockchain, ajenos a las monedas digitales, porque al fin y al cabo es una base de datos, o registro (Leger), en la que todos confiamos sin que nadie tenga la propiedad o la ascendencia a modificarla unilateralmente.

Escrito el 27 / Oct / 2017

@rulasg espero tus comentarios.