¿Qué significa tener un Bitcoin? Muchas personas han escuchado que Bitcoin es una moneda digital completa sin gobierno que lo emite y que no se necesita ningún banco para administrar cuentas y verificar transacciones.
Sin embargo, algo que nadie sabe realmente es quién lo inventó. Para llegar allí y asegurarnos de que los detalles técnicos estén en contexto, lo que vamos a hacer es explicar cómo podrías inventar tu propia versión de Bitcoin.
El monitoreo de los pagos como libro de contabilidad
Comenzaremos con el monitoreo de los pagos que realizas entre ti y tus amigos y para ello utilizaremos un libro de contabilidad común. A la medida que vayas confiando en tus amigos, de a poco se te va la confianza en el resto del mundo y si eres lo suficientemente listo como para agregar algunos conceptos de la criptografía para ayudar a eludir la necesidad de confianza, terminarás con algo que se llama una criptomoneda.Verás que Bitcoin es solo el primer ejemplo de una criptomoneda y ahora hay miles más en las bolsas y exchanges con monedas tradicionales.
La atención para criptomonedas se expande
Al caminar por el camino de la invención puede ayudarte a encontrar las bases para comprender a algunos de los personajes más recientes en este mundo y para saber cuándo hay espacio para diferentes opciones de diseño. De hecho, una de las razones por las que elegí este tema es que en el último año hubo mucha atención e inversión dirigidas a estas monedas.
Por qué es importante entender la funcionalidad
Y no voy a comentar sobre las tasas de cambio actuales o futuras, pero creo que todos estaríamos de acuerdo en que cuando uno decide invertir en criptomonedas, realmente debería saber de qué se trata ese mundo. No nos referimos en términos de analogías con conexiones vagas a la extracción de oro, sino a la descripción real de lo que hacen las computadoras cuando enviamos, recibimos y creamos criptomonedas.
Un poco más allá que solo enviar transacciones
A pesar de que vamos a entrar muy en detalle en este artículo, vale la pena destacar que en realidad no necesitas saber todos estos detalles si solo quieres usar criptomonedas. Como tampoco necesitarás conocer los detalles de lo que sucede técnicamente cuando pagas una compra con tu tarjeta de crédito.
Como es el caso con cualquier pago digital, hay muchas aplicaciones fáciles de usar que te permiten enviar y recibir las monedas sin pensar en lo que está sucediendo. La diferencia es que la red que posibilita las transacciones no es un banco que verifica las transacciones, sino que es un inteligente sistema de verificación descentralizada basada en algunas de las matemáticas nacidas en la criptografía.
La base: Libro contable y firma digital
Para empezar, quiero que dejes de lado la idea de las criptomonedas por unos minutos. Vamos a comenzar el artículo con algo más básico: libros contables y firmas digitales. Si tú y tus amigos intercambian dinero con bastante frecuencia, como por ejemplo pagar tu parte de la factura de la cena y demás, puede ser inconveniente tener que intercambiar dinero todo el tiempo.
Por lo tanto, puedes mantener un libro de contabilidad común que registre todos los pagos que tienes pensado hacer en algún momento futuro. Por ejemplo: Juana le paga a Pedro $20, Pedro le paga a Martín $ 40, cosas así.
Acceso público y control
Este libro de contabilidad va a ser algo público y accesible para todos, como un sitio web donde cualquiera puede entrar para agregar nuevas entradas. Un día se reúnen y miran la lista de transacciones y hacen las cuentas finales. Si gastaste más de lo que recibiste, pones ese dinero y si recibiste más de lo que gastaste, sacas ese dinero.
Entonces, el protocolo para ser parte de este sistema tan simple podría verse así. Cualquiera puede agregar líneas al libro y al fin de mes se juntan para hacer la cuenta final. Ahora, un problema con un libro público como este es que cualquiera puede agregar una línea, entonces, ¿qué impide a Martín ir y escribir que Juana le pague a Martín $ 100 sin que Juana lo apruebe? ¿Cómo se supone que debemos confiar en que todas estas transacciones reflejan la intención del remitente?
Las firmas digitales, ¿por qué importan?
Bueno, aquí es donde entra la primera parte de la criptografía; las firmas digitales. Al igual que las firmas manuscritas, la idea aquí es que Juana debería poder agregar algo a esa transacción para que pueda comprobar que la haya visto y aprobado.
Además, no debería ser posible que alguien más forje esa firma. Al principio, debería parecer que una firma digital no debería ser posible, porque sería fácil de copiar por una computadora. Entonces, ¿cómo se evitan las falsificaciones de la firma?
La Clave Privada y la Clave Pública
Bueno, la forma en que esto funciona es que todos generan lo que se llama un conjunto de clave privada y clave pública, cada una de las cuales se ve como una cadena de bits. La clave privada a veces también se denomina clave secreta, de modo que la podemos abreviar como CS y para abreviar la clave pública usaremos CP. Ahora, como su nombre lo indica, las claves (sobre todo la clave secreta) no se comparten con terceros.
En el mundo real, su firma manuscrita se ve igual sin importar qué documento está firmando, pero una firma digital es mucho más potente porque puede cambiar según el mensaje.
La firma parece una cadena de unos y ceros, que comúnmente existen de 256 bits. Hasta la más pequeña alteración del mensaje cambiaría la firma usada en ese mensaje por completo. Dicho de forma un poco más formal, el producir una firma implica una función que depende tanto del mensaje en sí como de su clave privada. Es una combinación de ambos.
Se genera una firma única
La clave privada garantiza que solo tú podrás generar esa firma y el hecho de que depende del mensaje significa que nadie podrá falsificar tu firma para utilizarlo para otro mensaje distinto. De la mano con esta función se utiliza una segunda función para verificar que una firma sea válida y aquí es donde entra en juego la clave pública.
Lo único que hace la clave pública es mostrar un “verdadero” o “falso” para indicar si se trata de una firma producida por la clave privada asociada con la clave pública que se está utilizando para la verificación.
No entraré en los detalles de cómo funcionan exactamente estas dos funciones, pero la idea es que nadie debe conocer la clave secreta, salvo el titular de la clave pública. Específicamente, no hay mejor estrategia que simplemente adivinar y verificar firmas aleatorias, que uno puede verificar utilizando la clave pública que todo el mundo conoce.
Ahora piensa en cuántas firmas hay con la longitud de 256 bits, eso es dos a la potencia de 256. Este es un número increíblemente grande. Llamarlo astronómicamente daría demasiado crédito a la astronomía. Aquí mismo, digamos que cuando se verifica que la firma de un mensaje es válida, puedes estar extremadamente seguro de que únicamente la podría haber generado la persona con acceso a la clave secreta.
El problema de transacciones dobles
Utilizando las claves de esta forma, ya te podrás asegurar de que las firmas de la gente que firme transacciones en el libro son reales, pero todavía hay un problema. Si Juana firma una transacción en la que Juana le paga $ 100 a Martín, Martín no puede falsificar la firma de Juana, aunque si podría simplemente copiar esa misma línea tantas veces como quiera, porque la firma del mensaje sigue siendo válida.
Para evitar esto, lo que hacemos es que cuando se firme una transacción, el mensaje también tenga algún tipo de identificación asociada con esa transacción. De esta forma, si Juana le paga $ 100 a Martín varias veces, cada una de esas líneas en el libro mayor requiere una firma completamente nueva.
Distribución inicial
Está bien, genial. Las firmas digitales eliminan un gran tema de confianza en este protocolo inicial. Pero incluso si lo implementarías de esta forma, estaría dependiendo de un sistema en que todo el mundo cumpliera con su palabra y liquidara su saldo al final de cada mes. ¿Qué pasa si, por ejemplo, Pedro acumula miles de dólares en deudas y simplemente se niega a aparecer? La única razón real para volver al efectivo para cancelar saldos es si algunas personas deben mucho dinero.
Por lo tanto, tal vez te surja la ingeniosa idea de que no hay necesidad de cancelar en efectivo siempre que tengas alguna forma de evitar que la gente gaste más de lo que puede. Podrías empezar alocando $ 100 a cada participante y luego ingresas en el libro de cuentas que Juana recibe $ 100, Martin recibe $ 100 y Pedro recibe $ 100, etc.
Control de Transacciones
Ahora, simplemente no aceptas ninguna transacción en la que alguien gaste más de lo que ya tiene en ese libro de contabilidad. Por ejemplo, si las dos primeras transacciones son de Pedro pagando $ 50 a Juana y de Martín pagando $ 50 a Pedro, si Pedro luego quisiera ingresar que Martín te paga $ 20, sería marcado como transacción no válida, como si nunca hubiera firmado.
Esto significa que una transacción requiere el historial completo de transacciones hasta ese punto. Y esto también es cierto en las criptomonedas aunque todavía hay espacio para la optimización.
El historial de las transacciones es la moneda
Aquí, lo interesante es que este paso elimina la conexión entre el libro contable y los dólares físicos en el mundo real. En teoría, si todo el mundo usara este libro contable, podrías vivir toda tu vida enviando y recibiendo dinero en el libro contable sin la necesidad de convertirlo a dólares reales jamás.
Para enfatizar este punto, comencemos a referirnos al libro de contabilidad como dólares contables o DC para abreviar. Obviamente podrás intercambiar tus dólares contables a dólares reales si quisieras. Por ejemplo, tal vez Juana le dé a Martín un billete de $ 10 en el mundo real a cambio de que él agregue y firme la transacción. Martín le paga $ 10 dólares a Juana en este libro contable comunal.
Pero los intercambios como ese, no estarán garantizados por el protocolo. En ese caso es más análogo y parecido a cómo puedes cambiar dólares por euros o cualquier otra moneda en el mercado abierto. Es una forma independiente de intercambiar dinero.
Esta es la primera cosa importante para entender sobre Bitcoin o cualquier otra criptomoneda: es un libro de contabilidad y el historial de las transacciones es la moneda.
Múltiples copias de la misma cadena
Por supuesto, con Bitcoin, el dinero no ingresa en el libro contable cuando la gente lo compra en efectivo. Pero antes de eso, en realidad hay una diferencia aún más significativa entre nuestro sistema actual de dólares y cómo funcionan las criptomonedas.
Hasta ahora, mencionamos que este libro se encuentra en algún lugar público, como un sitio web donde cualquiera puede agregar nuevas líneas, pero eso requeriría confiar en una ubicación central que alberga el sitio web, que controla las reglas para agregar nuevas líneas.
Para eliminar ese elemento de confianza, cada uno conservará su propia copia del libro contable. Luego, cuando desee realizar una transacción como Juana pagándole $ 100 a Martín, lo que haces es transmitirlo a todos los libros contables privados.
El acuerdo sobre cuál es la cadena a seguir
Pero a menos que hagas algo más, este sistema es absurdamente malo. ¿Cómo podrías lograr que todos estén de acuerdo sobre cuál es el libro contable correcto? Cuando Martín recibe una transacción de Juana que le paga 10 dólares, ¿cómo puede estar seguro de que todos los demás han recibido la misma transacción y que más tarde puede pagar a Pedro y usar esos 10 dólares para hacer una transacción?
Imagínate que estás escuchando las transacciones que se transmiten. ¿Cómo puedes estar seguro de que todos los demás están grabando las mismas transacciones y en el mismo orden? Este es realmente el núcleo del problema y este es un rompecabezas interesante.
¿Puedes idear un protocolo sobre cómo aceptar o rechazar transacciones y en qué orden, para que te sientas seguro de que todos los demás tengan la misma información en el mismo protocolo en su propio libro contable personal? Este es uno de los problemas tratados en el documento original de Bitcoin.
Las criptomonedas y el trabajo computacional
En un nivel global, la solución que Bitcoin ofrece es la confianza de que el libro contable se conforme del mayor trabajo computacional posible. Me tomaré un momento para explicar exactamente qué significa eso. Implica una función llamada “cryptographic hash function” o función hash criptográfica.
La idea general es que si usas a trabajo computacional como base para saber en qué confiar, entonces podrías crearlo de tal forma en la que las transacciones fraudulentas y libros contables conflictivos requerirían una cantidad de computación no factible.
De nuevo, les recordaré que esto va mucho más alllá de lo que cualquiera debería saber para usar las criptomonedas, pero es una idea genial y si la entiendes, comprenderás el corazón de Bitcoin y otras criptomonedas.
¿Qué es una función hash?
Entonces, primero lo primero, ¿qué es una función hash? La entrada para una de estas funciones puede ser cualquier elemento secundario o mensaje o archivo, realmente no importa si el resultado es una cadena de bits con algún elemento secundario o longitud fija como 256 bits.
Este resultado se llama hash o el resumen del mensaje y la idea es que sea un resultado aleatorio. No es aleatorio, siempre da la misma entrada para una entrada determinada, pero la idea es que si cambias la entrada o solo uno de los caracteres, el hash resultante cambie completamente.
De hecho, para la función hash que mostramos aquí a continuación, llamada SHA-256, la forma en que puede cambiar la entrada es completamente impredecible. Como verás, esto no es simplemente cualquier función hash, es una función hash criptográfica, lo que significa que no es factible calcularla en dirección inversa.
Si te muestro una cadena de unos y ceros y te pido que encuentres la entrada para que el hash SHA-256 de esa entrada te dé esta cadena exacta de bits, no tendrás mejor método que solo intentar de adivinar y verificar.
La ingeniería inversa para las firmas
Podrías pensar que, si realmente analizaras a fondo los detalles de cómo esta función funciona, podrías aplicar la técnica de ingeniería inversa sin tener que adivinar ni verificar. Pero nadie ha descubierto una forma de hacerlo.
Curiosamente, no hay ninguna prueba rigurosa que sea difícil de calcular en el futuro y hay una gran cantidad de sistemas de seguridad modernos basados en las funciones de hash criptográficas y la idea de que tienen esta particularidad. Si tuviera que ver qué algoritmos se usan cuando se establece una conexión seguro con un sitio (como este), probablemente encontrarás el nombre SHA-256 allí también.
Por ahora, nos enfocaremos en cómo una lista particular de transacciones está asociada con un gran esfuerzo computacional. Imagina que alguien te muestra una lista de transacciones y te dice, «Oye, encontré un número especial para cuando pongas ese número al final de la lista de transacciones y apliques SHA-256 a todo; los primeros 30 bits de esa salida son todos ceros». ¿Cuán difícil crees que sería encontrar ese número?
Bueno, para un mensaje aleatorio, la probabilidad de que un hash empiece con 30 ceros sucesivos es uno y dos por 30, que es aproximadamente uno en mil millones. Y debido a que SHA-256 es una función hash criptográfica, la única forma en probarlo sería adivinar y verificar. Entonces, esta persona casi seguramente tendría que pasar por más de mil millones de números diferentes antes de encontrar el número correcto.
La verificación de una transacción y la prueba de trabajo
Una vez que conozcas ese número se puede verificar de forma muy rápida: solo hay que ejecutar el hash y verificar que hay 30 ceros. En otras palabras, podrás verificar que se está realizando un gran trabajo computacional sin que lo tengas que hacer por tu cuenta. Esto es lo que se llama una prueba de trabajo (“proof of work” en inglés) y lo que es más importante, todo este trabajo está intrínsecamente vinculado a la lista de transacciones.
Si cambias una de estas transacciones el hash cambiaría por completo, por lo que tendrías que pasar por otros mil millones de intentos para encontrar la nueva prueba de trabajo, este nuevo número que hace que el hash de la lista modificada en combinación con este nuevo número comience con 30 ceros.
Bitcoin como libro contable en bloques
Ahora volvamos a nuestra situación de contabilidad distribuida. Todo el mundo está transmitiendo transacciones y queremos estar en el libro de contabilidad correcto. Como dije, la idea central detrás del documento de Bitcoin es hacer que todos confíen en el libro contable que tenga más trabajo computacional por detrás.
La forma en que esto funciona es organizar un libro contable en bloques, donde cada bloque consiste en una lista de transacciones con una prueba de trabajo. Ese es un número especial para que el hash de todo el bloque comience con un montón de ceros.
Por el momento, digamos que tiene que comenzar con 60 ceros, pero luego volveremos a una forma más sistemática en la que quizás desees elegir ese número. De la misma manera que una transacción solo se considera válida cuando está firmada por el remitente, un bloque solo se considera válido si se hizo con una prueba de trabajo.
La importancia del encabezado y la cadena
Además, para asegurarnos de que hay un orden estándar para estos bloques, los haremos de manera que tengan el hash del bloque anterior en su encabezado. De esta forma, si regresas y cambias cualquiera de los bloques, se cambiaría el bloque que viene después, lo que cambia el hash de los bloques, que cambiaría el bloque que viene después de él y así sucesivamente.
Eso requeriría rehacer todo el trabajo, encontrar un nuevo número especial para cada uno de estos bloques que hace que sus hashes comiencen con 60 ceros. Debido a que los bloques están encadenados de esta manera, en lugar de llamarlo libro contable, es común llamarlo cadena de bloques.
Como parte de nuestro protocolo actualizado, ahora permitiremos que cualquier persona en el mundo sea un creador de bloque, lo que significa es que van a escuchar las transacciones que se están transmitiendo, recogerlas en un bloque, y luego harán una prueba de trabajo para encontrar un número especial que comience con el hash de ese bloque con 60 ceros.
La recompensa para creadores de bloques o la minería
Luego, una vez que lo encuentren, transmiten el bloque que encontraron. Para recompensar a un creador de bloque por todo este trabajo, cuando arma un bloque, le permitiremos que se convierta en una transacción muy especial en la que obtiene, digamos 10 dólares del libro contable, de la nada. Esto se llama recompensa por bloque y es una excepción para aceptar transacciones de pago. No viene de nadie y también significa que la cantidad de dólares en su economía aumenta con cada bloque nuevo.Crear bloques a menudo se llama minería ya que requiere mucho trabajo computacional e introduce nuevas monedas en la economía. Pero cuando escuches o leas sobre los mineros, ten en cuenta que lo que realmente están haciendo es computar transacciones, crear bloques, transmitir esos bloques y recibir recompensas con dinero nuevo por hacerlo.
Desde la perspectiva de los mineros, cada bloque es como una lotería en miniatura donde todos adivinan los números lo más rápido que puedan hasta que encuentran un número especial que hace que el hash del bloque empiece con muchos ceros y reciben la recompensa.
¿Cómo se llega a un consenso decentralizado?
Para cualquier otra persona que solo quiera utilizar el sistema para realizar pagos en lugar de escuchar transacciones, todos comienzan a escuchar solo bloques que se transmiten por sus copias personales de la cadena bloqueada. Ahora, la clave de nuestro protocolo es que si encuentras dos cadenas de bloques distintas con historias de transacciones en conflicto, podrás confiar en el bloque más largo que tiene más trabajo encima.
Si hay un empate, simplemente esperas hasta escuchar otro bloque que hace que uno de los bloques sea más largo. Entonces, aunque no existe una autoridad central y todos mantienen su copia personal de la cadena de bloques, si todo el mundo está de acuerdo de dar preferencia al bloque con más trabajo computacional, tenemos una forma decente de llegar a un consenso descentralizado.
Pero Martín todavía escuchará las transmisiones realizadas por otros mineros. Por lo tanto, para que siga creyendo en este bloqueo fraudulento, Juana tendría que hacer todo el trabajo computacional por su cuenta, agregando bloques en esta bifurcación especial en la cadena de bloques de Martí que es diferente de lo que está escuchando del resto de los mineros.
Recuerda, según el protocolo, Martín siempre confía en la cadena más larga. Es posible que Juana pueda mantenerlo engañado por unos pocos bloques por casualidad si los encuentra más rápidamente que todos los demás mineros en la red. Pero si no tiene por lo menos casi el 50% de poder de cómputo de toda la red de mineros, existe una gran probabilidad de que la cadena de bloques en la que todos los demás mineros están trabajando crezca más rápido que la única cadena de bloques fraudulenta que Juana le está alimentando a Martín.
Entonces, después de suficiente tiempo, Martín simplemente rechazará lo que está escuchando de Juana y optará por la cadena más larga en la que todos los demás están trabajando. Ten en cuenta que eso significa que no deberías confiar en un nuevo bloque de inmediato, sino que deberías esperar a que varios bloques nuevos se superpongan.
Si no hay otro bloque de cadenas más largo, podrás confiar en que este bloque es parte de la misma cadena que todos los demás están utilizando.
Tiempo para crear nuevos bloques
Hemos llegado a la mayoría de todas las ideas principales de cómo funciona una cadena de bloques como la de bitcoin y otras criptomonedas. Este sistema de libro contable distribuido basado en una prueba de trabajo es más o menos como funciona el protocolo. Solo hay algunos detalles para aclarar. Anteriormente, dije que el trabajo podría ser un número especial para que el hash del bloque comience con 60 ceros, es decir, el protocolo real de Bitcoin consiste en cambiar periódicamente esa cantidad de ceros para que pueda llevar un promedio de 10 minutos para encontrar un nuevo bloque.
Entonces, como hay más y más mineros agregados a la red, el desafío es cada vez más difícil de tal manera que esta lotería de miniatura en promedio solo tiene un ganador cada 10 minutos. Muchas nuevas criptomonedas tienen tiempos de bloques mucho más cortos que eso.
Y todo el dinero en Bitcoin proviene de una recompensa de bloque. Al principio, estas recompensas fueron de 50 Bitcoin por bloque. Hay un sitio web muy bueno llamado Block Explorer que hace que sea fácil consultar la cadena de bloques de Bitcoin. Si observas los pocos bloques de la cadena, no tienen ninguna otra recompensa de 50 Bitcoin para el minero.
Pero cada 210.000 bloques, que es aproximadamente cada año, esa recompensa se reduce a la mitad. Entonces, en este momento, la recompensa es de 12.5 Bitcoins por bloque. Y debido a que esta recompensa disminuye geométricamente con el tiempo, significa que nunca habrá más de 21 millones de Bitcoin en existencia.
Tasas de transacción en bitcoin
Sin embargo, esto no significa que los mineros dejen de ganar dinero. Además de la recompensa por bloque, los mineros también pueden cobrar las tarifas de transacción. La forma en que esto funciona es que cuando realizas un pago, puedes incluir una pequeña tasa adicional que va para el minero o el bloque que contenga ese pago.
La razón por la que podrías hacerlo es incentivar a los mineros a incluir realmente la transacción que estás enviando al siguiente bloque. En Bitcoin, cada bloque está limitado a alrededor de 2400 transacciones que, según muchos críticos, son innecesariamente restrictivas. Para comparar, los procesos de Visa tienen un promedio de aproximadamente 1700 transacciones por segundo y pueden manejar más de 24.000 por segundo.
Este procesamiento comparativamente lento en Bitcoin genera tarifas de transacción más altas, ya que es en base a las tasas que los mineros deciden incorporar las transacciones en un nuevo bloque. Todo esto está lejos de una cobertura completa de las criptomonedas, todavía hay muchos matices y alternativas de diseño que no hemos tocado aquí. Pero mi esperanza es que esto pueda proporcionar una comprensión fácil de entender para cualquiera que busque más información con más lecturas.
Conclusión
Como dije al principio, uno de los motivos detrás de esto es que una gran cantidad de dinero ha comenzado a fluir hacia las criptomonedas. No queremos hacer ninguna afirmación sobre si es una inversión buena o mala, pero realmente creemos que es saludable para las personas que ingresan al juego que al menos conozcan los fundamentos de la tecnología.
Si te gustó esta explicación, dejamos algunas direcciones por donde pueden hacer donaciones:
btc: 1HHgzaLnvc4Cm4Gz2W9kEfNDE8gSMxRsMk
ltc: LUXoASyQbN3tCjSE23vg29yCs4yUwvx5mK
eth: 0x82e7efF22F6FA8f595DF40763b84f64e72a64C0B
neo: AX8gjstzw6U6YgJ8wxD4wbN6WhWvmFSv9a
xlm: GDMXNQBJMS3FYI4PFSYCCB4XODQMNMTKPQ5HIKOUWBOWJ2P3CF6WASBE / memo: 164748
Comentarios Recientes