Tiempo actual: 0:00Duración total:11:25

Transcripción del video

El último aspecto realmente esencial o destacado para entender la mecánica del funcionamiento de Bitcoin es lo que llamamos la "cadena de bloques de transacciones". Así que, si recuerdas el video anterior, tenías un ejemplo de una usuaria, Alice, que quería enviar un número de Bitcoins a otro usuario, Bob, en el sistema. Y lo que Alice tiene que hacer para iniciar esa transmisión es construir una "transacción"--un tipo de registro- que contenga información sobre esa transmisión y que ha sido firmada con la clave de firma (Sk) de Alice. Y eso en realidad contiene la clave de verificación pública de Alice y la clave de verificación pública de Bob. y esa información de la transacción es, básicamente, retransmitida como ya mencionamos, a todo el ecosistema Bitcoin. A todos los nodos de la red "peer-to-peer" de Bitcoin. Y los distintos nodos del ecosistema Bitcoin, vamos a ponerlos ahí. Los nodos van a recibir información sobre esa transacción. Pero también van a estar recibiendo información sobre muchas otras transacciones que están teniendo lugar aproximadamente al mismo tiempo. Y lo que estos nodos van a empezar a hacer es a trabajar en incorporar este registro de la transacción en un libro (de contabilidad) de todas las transacciones que han tenido lugar, alguna vez, en el sistema Bitcoin. Y así, lo que pasa es que cada nodo, básicamente, comienza tomando todas las transacciones no incorporadas hasta el momento que se han recibido previamente. Así que van a estar todas esas transacciones por ahí, que han ocurrido dentro de una ventana temporal determinada. y ahí están todas esas transacciones Bitcoin como si flotaran alrededor. Y estos nodos -estos mineros de Bitcoins, como son denominados- van a recibir información sobre todas estas transacciones diferentes y van a empezar a trabajar para incorporar esas transacciones. Y el primer objetivo es recopilar estas transacciones en lo que es conocido como un "transaction block" (bloque de transacciones). Así, volviendo a nuestra analogía del libro de contabilidad, una transacción Bitcoin individual, esencialmente corresponde a una propuesta de entrada en el "libro". En ese sentido, un bloque de transacciones corresponderá, básicamente, con una página en el libro, donde habrá varias transacciones que están recogidas en esa página del libro. Y el objetivo de los mineros Bitcoin es, realmente, en esencia, coger la página y conseguir añadirla al libro "de contabilidad" general que agrupa todas las transacciones validadas. Ahora bien, para participar en este tipo de trabajo, lo que estos nodos harán es, primero, tomar todas las transacciones que han sido retransmitidas. Y, vamos a decir, que estas cuatro transacciones han sido retransmitidas. Y los mineros van a "hashear" estas transacciones en parejas, en una estructura de datos de tipo árbol. Toman estas dos transacciones y les aplican una función hash criptográfica. y obtendremos sus correspondientes "digest" (resúmenes criptográficos) -lo mismo para estos otros dos- y, a continuación, se toman se cogen los dos "digest" y se calcula su hash para obtener un único valor de "digest". Y este "digest" efectivamente "codifica" todas estas transacciones, que estaban previamente sin incorporar, y que fueron recibidas anteriormente por estos nodos. Y, ahora, básicamente, este "digest" va a ser combinado con el hash del último bloque de transacciones que fue aceptado previamente por la red (Bitcoin). Así, puedes imaginar que la red (Bitcoin) tendrá una serie de bloques de transacciones que fueron aceptados previamente. Y, de hecho, como justo acabo de mencionar, cada bloque de transacciones incorpora el hash del bloque previo. Así, este bloque de transacciones incorporará el hash del que fue añadido inmediatamente antes de él. Y este bloque de transacciones enlazará (incorporará el hash) del anterior que se añadió justo antes. Y esto puede ir, literalmente, hasta el principio de los tiempos de Bitcoin. Así que aquí es donde el Bitcoin -el principio de los tiempos para el sistema Bitcoin- esto es, justo la "hora 0" para Bitcoin. Y van a tomar este último bloque y ahora, van a tomar ese último bloque y lo van a combinar con este bloque más reciente. Y así, puedes imaginar que tienes ahora no un bloque individual, porque ese bloque individual "incorpora" el anterior. Ya no estamos tratando con un bloque aislado o distinguido de transacciones, sino más bien con una cadena de bloques que comienza, literalmente, al principio del sistema Bitcoin completo. Esto es, cuando haces esta combinación, en síntesis, lo que estás haciendo es un hashing criptográfico y lo que obtendrás, básicamente, es una secuencia de números. Y está secuencia de números será derivada de la incorporación de todos estos bloques conjuntamente. Vas a obtener una secuencia de números. Y lo que vamos a hacer, básicamente, es tomar esta secuencia de números y convertir esa secuencia de números en un reto de un protocolo de prueba de trabajo (PoW). De hecho, hice un vídeo aparte sobre protocolos de prueba de trabajo. Te animaría a que lo veas si quieres tener una idea mejor de cómo funcionan. Pero el resumen es que lo que un nodo minero de Bitcoin tiene que hacer en este punto sería tomar este reto ("challenge") y tiene que venir con otra secuencia de números separada -que, típicamente, llamamos "prueba", o prueba de trabajo. Y esta prueba de trabajo tiene que cumplir una propiedad matemática muy específica. Y lo que esa propiedad implica es que si tomas los números reto y tomas estos números prueba y los concatenas juntos, y se los das como entrada a la función hash criptográfica, la salida resultante tiene que tener un largo prefijo formado por ceros. No todos tienen que ser ceros, pero si una porción grande del principio -el prefijo- tiene que ser todo ceros. Y si piensas en ello durante un momento, esas funciones hash criptográficas, dado que sus salida tienden a ser prácticamente aleatoria, es como si -en última instancia- estuvieras viendo una prueba, una prueba propuesta, que tiene una larga secuencia de ceros en su comienzo. Y, por ello, lo que el minero Bitcoin tendrá que hacer es, en media, tendrá que probar muchísimas alternativas para estos números hasta que, finalmente, tenga fortuna, y se tropiece con una que tiene esta clase de extraña propiedad estadística. Y la dificultad real de encontrar estos números de prueba, como puedes ver, depende de exactamente cuantos más ceros a la izquierda se exijan. Cuantos mas ceros a la izquierda se pidan en esta prueba, más tiempo llevará, de hecho, resolver el problema, más tiempo tomará venir con una prueba que funcione respecto a un reto dado. Cuantos menos ceros se requieran, menos tiempo tomará. El número exacto de bits, de bits cero exigidos en el protocolo Bitcoin cambia, de hecho, a lo largo del tiempo, es calibrado, y está diseñado para que, en media, -el tiempo medio que necesite el sistema en su conjunto- debería rondar los 10 minutos. Así, debe costar alrededor de 10 minutos que al menos un nodo venga con una prueba válida. Pero no olvides que un montón de nodos están trabajando en esta prueba concurrentemente. Una vez que esta prueba de trabajo es encontrada, Ahora, digamos que una prueba de trabajo ha sido, eventualmente, hallada. El minero Bitcoin anunciará los resultados a la red peer-to-peer global. Él va tomar esta prueba, que resuelve todo este reto, y va a anunciarlo a todos los demás nodos. Y ahora, los demás van a a ver que esa prueba de ahí afuera, alguien la ha encontrado. -Vamos a dejar las cosas que estábamos haciendo y vamos a empezar a trabajar y construir a partir de esa prueba nueva. Recuerda, esta prueba nueva, de este nuevo reto, incorpora todos los bloques de transacciones previos. De hecho, lo que están empezando a hacer es, empezando a trabajar en una nueva, modificada, cadena de bloques de transacciones. Y van a intentar incorporar cualquier nueva transacción pendiente en un nuevo bloque de transacciones. Ahora hay un par de aspectos que quiero comentar aquí. En primer lugar, como parte de la construcción de estos bloques de transacciones y, realmente, como parte de su incorporación en una cadena de bloques de transacciones, los mineros de Bitcoin estań de hecho autorizados a un pequeño trato especial, se les permite incluir en ese bloque de operaciones un nodo especial para ellos mismos. Y este nodo será, básicamente, una pequeña compensación, si llegan a obtenerla -y déjame utilizar el color verde para esta recompensa- ellos podrían tomar el primer bloque, el primer registro de transacción y pueden poner en ese registro de transacción... pueden asignarse una recompensa a sí mismos. La cantidad de esa recompensa cambiará con el tiempo. Pero lo que quiero señalar es que esta transacción es típicamente llamada una "transaccion Coinbase" ("Coinbase transaction")" o una transacción de generación. Así es como los nuevas monedas se añaden al sistema Bitcoin. Así que cuando un minero logra acercarse con una prueba, en la que como una parte de la misma está su propia transacción, para recompensarse a sí mismo. Una pequeña recompensa especial por invertir el esfuerzo necesario para conseguir la prueba y por hacer todo este trabajo asociado a añadir un nuevo bloque de transacciones para extender la cadena de bloques de Bitcoin. Y yo pienso que es razonable. Después de todo estos nodos están usando un montón de capacidad computacional para conseguir estas pruebas. Y si están usando capacidad de cómputo, eso debe significar que en algún lugar, alguien está gastando dinero en electricidad y así sucesivamente. Ahora también quiero señalar que además de esta recompensa, los nodos que están haciendo la minería Bitcoin, los que tiene éxito también consiguen recoger las comisiones de las transacciones que fueron especificadas en los registros de transacción. Si recuerdas, una persona que emite una transacción en Bitcoin puede asignar o reservar una cierta cantidad de dinero, tal vez puede ser un Bitcoin o una fracción de Bitcoin, para el nodo que tenga éxito en venir con la prueba actual de trabajo. Y, efectivamente, el nodo que tiene éxito en ser capaz de añadir esa transacción a la cadena general de bloques de transacciones de Bitcoin. Y así, ese nodo que hace el trabajo tenga éxito, obtiene una recompensa, otra comisión de transacción. Ahora bien, esta podría llegar a ser bastante grande porque el nodo no sólo obtendrá la comisión de una transacción, obtendrá las comisiones de todas las comisiones del bloque en curso. Le va a dar el acumulado de todas estas transacciones diferentes. Ahora, el segundo punto a resaltar es que sería posible que dos nodos resolvieran la prueba de trabajo de forma independiente uno de otro. Y de alguna manera, ambos terminan intentando añadir a la cadena existente de diferentes maneras. Esto da lugar a una extraña bifurcación en la cadena. Si esto sucede, los pares en la red Bitcoin básicamente tomarán una opción, tomando una opción en el cruce, al pegarse con la cadena más larga. Y por la más larga, no quiero decir la que tenga más transacciones en ella. Realmente necesito la que tenga la mayor dificultad agregada asociada a la prueba de trabajo subyacente en cada uno de los bloques de transacciones. Y, básicamente, miraremos la cantidad total de esfuerzo que se requirió para generar la cadena con respecto a esa prueba de trabajo. Y cualquiera que sea la cadena que tenga más trabajo asociado es una cadena "sacrosanta", es una cadena que todo el mundo aceptará. Ahora puede que tengas algunas discrepancias más, debido a los aspectos relacionados con la latencia de la red. Pero la idea es que después de, tal vez, un par de rondas, cuando hay "lazos" (bifurcaciones), ellos lo resolverán rápidamente debido a que la mayoría de los nodos son honrados y realmente se adhieren a la implementación del protocolo. Ahora, ya que los mineros de Bitcoin están generando bitcoins, pienso que aquí hay una cuestión interesante que aparece. Esta es: ¿cómo se controla la oferta monetaria de Bitcoin y cómo se gestiona? Y hablaré sobre ese concepto en un vídeo siguiente.