A estas alturas, probablemente haya visto cientos de artículos sobre la tecnología blockchain, cada uno de los cuales intenta describir qué es y cómo es la próxima gran revolución para golpear el mundo tecnológico. Al final del artículo, muchas personas todavía están perplejas porque los autores ignoran muchos conceptos complicados sin explicarlos..
En esta guía, le daremos un explicación básica de qué son las cadenas de bloques, cómo funcionan y los conceptos criptográficos clave detrás de ellas. Es hora de superar las exageraciones y palabras de moda, y comprender lo que realmente está sucediendo a nivel técnico.
No se preocupe, porque tomaremos las cosas con calma y examinaremos cada elemento en detalle, proporcionándole analogías que ayudan a visualizar lo que realmente está sucediendo..
Una analogía simple para blockchains
Imagina una aldea primitiva, donde no tienen dinero en nuestro sentido tradicional. En lugar, graban los detalles de cada transacción en un bloque de piedra, luego ciérrelo en el centro del pueblo.
David intercambia quince pollos por uno de los cerdos de Sarah. Graban esta información en un bloque, luego la cementan en la plaza del pueblo. Ahora, cualquiera puede ver que David es el nuevo dueño de los cerdos de Sarah, mientras que Sarah ahora es la dueña de los quince pollos. Dado que la información es pública, no puede haber disputas sobre quién controla legalmente qué.
Al día siguiente, Jessica cambia a Mark 100 kilogramos de maíz por una canoa. Esto también está grabado en un bloque, que luego se cementa en la parte superior del bloque anterior. Dado que todos en la ciudad ahora podrán verificar públicamente que Jessica ya no posee los 100 kilogramos de maíz, no puede intentar venderlo nuevamente si Mark se va por un par de días..
En los próximos días, se llevan a cabo más y más transacciones, y más bloques de piedra con los detalles de la transacción grabados en ellas se cementan en su lugar. Con el tiempo, las piedras de transacción comienzan a formar una torre.
Todos los detalles están disponibles públicamente para todos, y las personas no pueden cambiar ni recuperar las transacciones anteriores., porque un montón de bloques están cementados encima de ellos.
Es posible que el sistema financiero de esta aldea no sea el más fácil de usar, pero les brinda a todos en la aldea una forma de realizar un seguimiento de sus transacciones. Es un libro público que mantiene registros permanentes, que no pueden modificarse. Uno de los aspectos más importantes es que está descentralizado. No hay un banco central o gobierno responsable de las transacciones. Todo lo hace la comunidad..
Hay una serie de diferencias entre las cadenas de bloques y la analogía anterior, pero sigue siendo un buen punto de partida para entender qué son las cadenas de bloques y por qué son útiles..
Uno de los contrastes clave es que las cadenas de bloques no se exhiben en público, en cambio, cualquiera que quiera puede almacenar una copia de una cadena de bloques en su computadora. Las cadenas de bloques usan criptografía, computadoras y electricidad para construir los bloques., en lugar de piedra y cemento.
Los aspectos más importantes de blockchains son que no se pueden cambiar, no están controlados por una sola entidad y todos pueden ver las transacciones. Estas propiedades son la razón por la cual las personas creen que la tecnología tiene el potencial de ser utilizada en una amplia gama de aplicaciones..
La historia de las blockchains.
A fines de la década de 1990 y principios de la década de 2000, hubo una serie de desarrollos hacia las monedas digitales basadas en varios conceptos criptográficos. Una de las primeras iniciativas similares a blockchain fue el mecanismo de Nick Szabo de 1998 llamado poco de oro. Aunque nunca se actualizó, involucró una serie de rompecabezas criptográficos, donde cada solución se agregaría al siguiente rompecabezas, formando una cadena.
No fue sino hasta 2008 que la idea de blockchains se desarrolló por completo, cuando alguien bajo el seudónimo de Satoshi Nakamoto publicó el artículo., Bitcoin: un sistema de efectivo electrónico de igual a igual.
Esta persona se basó en el trabajo anterior en el campo, incluido el sistema reutilizable de prueba de trabajo de Hal Finney, para formar la moneda digital bitcoin, así como el concepto subyacente de blockchains. Desde entonces, estas cadenas de bloques se han aplicado de diferentes maneras, tanto como monedas digitales y como soluciones a otros problemas.
La red bitcoin se lanzó a principios de 2009 y originalmente solo la usaba un pequeño grupo de criptógrafos y aficionados. No fue hasta que Bitcoin fue adoptado por los mercados de redes oscuras como Silk Road que las cadenas de bloques comenzaron a ver su adopción generalizada y práctica.
A medida que Bitcoin ganó popularidad, una serie de criptomonedas derivadas, conocidas como altcoins como Litecoin y Peercoin fueron desarrollados. Estos extendieron aún más la adopción y el uso de la tecnología blockchain.
Ethereum se lanzó en 2015 como una plataforma informática distribuida que permitía a sus usuarios desarrollar aplicaciones y promulgar contratos inteligentes entre las partes. Alrededor de este tiempo, creció el interés en la tecnología blockchain por parte del público, las principales empresas y gobiernos, tanto en casos de uso financieros como de otro tipo. Esto vio una oleada de nuevas actividades, con blockchains propuestos como soluciones a una variedad de problemas diferentes..
Los usos de blockchains
Han pasado más de 10 años desde que se lanzó la primera cadena de bloques, con una exageración e inversión intensivas durante los últimos cinco años. A pesar de la gran actividad, en esta etapa ha habido relativamente pocas implementaciones exitosas en el mundo real de la tecnología blockchain.
CRIPTOMONEDAS
Si bien las criptomonedas han visto aumentar y desplomarse sus valores, todavía ven comparativamente pocas transacciones para uso diario. El número de empresas que los aceptan es limitado, mientras que los costos de transacción para bitcoin se vuelven demasiado altos cuando la moneda se usa con frecuencia. Además de esto, la red bitcoin no puede manejar cerca del volumen de transacciones como una alternativa como el sistema tradicional de Visa.
Si bien hay criptomonedas que parecen más prometedoras que Bitcoin, estas se aceptan en aún menos lugares. En esta etapa, parece que los principales usos de las criptomonedas son las inversiones especulativas o la compra de productos ilícitos en los mercados de darknet..
Aplicaciones descentralizadas & contratos inteligentes
Después de Bitcoin, el proyecto basado en blockchain más famoso es Ethereum, que proporciona una plataforma para desarrollar aplicaciones descentralizadas y contratos inteligentes. A pesar de la exageración excesiva, que tiene una capitalización de mercado de $ 14 mil millones (en el momento de escribir este artículo) y más de 2,300 aplicaciones descentralizadas, tiene muy poco que mostrar en este momento..
Uno de los proyectos más exitosos de la red Ethereum hasta ahora es probablemente Cryptokitties, un videojuego donde los usuarios pueden criar gatos. MakerDAO, la aplicación que actualmente tiene la mayoría de los participantes activos diariamente, tuvo menos de 1,000 usuarios en las últimas 24 horas (en el momento de la redacción). Teniendo en cuenta que Ethereum ha sido catalogado como una “revolución tecnológica financiera”, entre sus muchos elogios, sus aplicaciones actuales parecen bastante decepcionantes.
Otras iniciativas basadas en blockchain
En los últimos años, ha habido innumerables empresas de inicio basadas en blockchain, así como muchas iniciativas respaldadas por nuestras compañías tecnológicas e instituciones financieras más grandes.
Numerosos programas piloto y experimentos tienen como objetivo adaptar la tecnología para su uso en gestión de la cadena de suministro, transacciones financieras, contratos inteligentes, almacenamiento descentralizado y más.
Estos incluyen IBM Food Trust y la incursión de Walmart en el uso de la tecnología para gestionar la logística del suministro de alimentos, bancos como UBS adaptando blockchains para liquidaciones financieras y la Bolsa de Valores de Australia (ASX) con el objetivo de adoptar la tecnología de contabilidad distribuida.
A pesar de esto, es difícil nombrar un producto o servicio exitoso y ampliamente utilizado que haya surgido de toda la inversión y el esfuerzo. Esto no quiere decir que la tecnología blockchain no tenga ningún uso futuro, solo que aún no será tan fructífera como muchos esperaban. En esta etapa, es difícil saber si algunos de estos proyectos tendrán éxito en los próximos años..
Los conceptos criptográficos centrales detrás de blockchains
Ya sea que las cadenas de bloques vean o no mucho uso en el mundo real, siguen siendo aplicaciones interesantes de criptografía..
En estos días, innumerables blockchains tienen sus propias variaciones únicas. Dado que no es posible cubrir cada uno de sus aspectos individuales, nos centraremos en los conceptos básicos y cómo se relacionan con la criptografía. Nos centraremos principalmente en bitcoin, no porque sea la mejor cadena de bloques, sino porque es la primera, en la que se basan todos los demás.
¿Qué es la criptografía??
Antes de sumergirnos demasiado profundo, es importante cubrir lo básico. La criptografía es el estudio y la práctica de mantener la información secreta lejos de los adversarios.. En los primeros días, se hizo simplemente, utilizando técnicas como cambiar cada letra de una palabra a la letra que le sigue en el alfabeto. Bajo este tipo de esquema:
Hola
Se convierte en:
Ifmmp
Si su destinatario sabe cómo convertir el mensaje codificado a su forma original y no lo sabe, puede suponer que es una forma segura de comunicarse.
Con el tiempo, las personas han mejorado mucho en descifrar códigos. Los avances tecnológicos también mejoraron significativamente nuestras habilidades para descifrar códigos. Para mantener nuestra información segura en la actualidad, ahora tenemos que usar códigos que son mucho más complejos.
Estos códigos incluyen algoritmos increíblemente complicados como AES o RSA, cada uno de los cuales implica muchas matemáticas. Usan computadoras para llevar a cabo los procesos de cifrado y descifrado..
Bitcoin: la primera cadena de bloques
Ahora que conoce los conceptos básicos sobre el estudio de la criptografía, es hora de comenzar a observar la estructura subyacente de Bitcoin, la cadena de bloques original. Bitcoin fue inicialmente propuesto como un moneda basada en criptografía que podría evitar las desventajas de tener un sistema financiero controlado por instituciones centrales.
En el núcleo de bitcoin está la idea de transfiriendo valor a través de una cadena de firmas digitales, que son similares a las firmas manuscritas. Esta idea en sí misma no fue revolucionaria, pero es importante entender cómo funciona para ver el panorama general. Usemos un ejemplo con firmas manuscritas para explicar cómo puede funcionar este proceso:
Sarah no tenía dinero, así que le pidió a Ann $ 5. Ann dijo que sí, pero solo si Sarah le daba un masaje. Sarah no podía hacerlo bien en ese momento, pero Ann es muy estricta con las reglas y la aplicación, por lo que redactó un contrato rápido.
Yo, Sarah, le debo al portador de este artículo un masaje de 10 minutos.
Ann hizo que Sarah lo firmara para que el contrato fuera legítimo.
Más tarde, Ann decidió que no quería un masaje y le ofreció vender el contrato a Jason por $ 5. Jason decidió comprarlo porque realmente quería un masaje. Ann luego lo firmó como prueba de que se lo estaba dando a otra parte.
Si bien Jason ahora es el propietario del contrato, hay un problema. ¿Cómo puede saber si Ann ya había redimido el masaje? Tal vez Sarah ya no le deba a nadie un masaje, y el contrato no tiene valor.
Llegaremos a la respuesta a este problema más adelante, en el ¿Cómo pueden las blockchains evitar el doble gasto?? sección. Por ahora, hablemos de las firmas digitales y el hash, dos de los conceptos más importantes que forman la base de blockchains..
Firmas digitales
Antes de que podamos explicar las firmas digitales, tenemos que hacer un poco de retroceso y hablar sobre algunos conceptos básicos de seguridad. Cuando transmitimos datos valiosos en línea, hay cuatro propiedades importantes que a menudo necesitamos:
- Confidencialidad – La capacidad de mantener los datos ocultos de terceros no autorizados..
- Autenticación – Esta propiedad implica poder verificar que la otra parte es realmente quien dice ser, y no un impostor o espía.
- Integridad – Si los datos conservan su integridad, significa que nadie más los ha alterado ni manipulado..
- No repudio – Esta propiedad esencialmente significa que la persona o entidad responsable de una acción no puede afirmar que no estuvo involucrada. En la vida cotidiana, utilizamos nuestras firmas manuscritas como una forma de no repudio. Es difícil para usted negar que haya aceptado un contrato cuando su firma ha sido utilizada para firmarlo..
Sin cada una de estas propiedades, ¿cómo podríamos estar seguros de que los datos importantes realmente representan lo que se supone que deben hacer y que nuestros enemigos no han accedido a ellos ni los han cambiado??
Normalmente, utilizamos algoritmos de cifrado como AES para cuidar la confidencialidad. Para las otras tres propiedades, recurrimos a las firmas digitales.
Hay dos tipos principales de encriptación:
- Cifrado de clave simétrica – En el cifrado de clave simétrica, se utiliza la misma clave para cifrar y descifrar datos. Este es un método eficiente que se utiliza en todas partes en la seguridad de la información, desde encriptar su disco duro hasta asegurar su conexión a un sitio web HTTPS. El algoritmo de clave simétrica más utilizado es AES.
- Clave pública (asimétrica) cifrado – La criptografía de clave pública utiliza claves separadas para los procesos de cifrado y descifrado. Estas son la clave pública, que se comparte abiertamente, y la clave privada, que debe mantenerse en secreto. Se basa en algunas propiedades matemáticas interesantes y permite que dos partes que nunca se hayan conocido antes intercambien información de forma segura. Es relativamente ineficiente, por lo que en la práctica, la criptografía de clave pública solo se usa para cifrar la clave simétrica, que a su vez se usa para cifrar datos.
Las firmas digitales son muy parecidas a las firmas normales. Firmamos un recibo para verificar que la información que contiene es correcta y conserva su integridad. Es muy difícil repudiar nuestras firmas manuscritas, porque son muy difíciles de copiar. Dado que tenemos nuestras firmas en nuestro banco y tarjetas de identificación, también sirven como una forma de autenticación. Cualquiera puede verificar si una firma coincide con la identidad emitida por el gobierno.
Las firmas digitales dependen de cifrado de clave pública. Si Alice quiere demostrar que un dato es auténtico, conserva su integridad y no quiere poder repudiarlo, puede enviar una firma digital junto con los datos..
Para crear una firma digital, Alice primero toma los datos y los somete a un algoritmo hash para formar una cadena única de números (esto se explica completamente en el Hashing sección). Estos números se firman digitalmente utilizando el algoritmo ECDSA y su clave privada.
Esencialmente, el hash y la clave privada de Alice se combinan usando una fórmula matemática compleja. El resultado es la firma digital, que se puede verificar con la clave pública de Alice para demostrar que ella es la verdadera dueña de su clave privada correspondiente, y no un impostor.
Las firmas digitales permiten a las personas demostrar su propiedad de la clave privada sin tener que revelarla a la otra parte. Para profundizar en cómo funciona este proceso, consulte nuestra guía completa sobre firmas digitales.
Una vez que Alice crea su firma digital, la envía a su destinatario, Bob, junto con los datos. Cuando Bob recibe los datos, puede verificar su autenticidad, verificar si conserva su integridad y ver si no es repudiable, todo mediante el uso de la clave pública de Alice.
Es muy probable que Alice haya compartido su clave pública con Bob antes de tiempo, de lo contrario, Bob podrá encontrarla en un servidor de claves (este es un servidor donde muchas personas alojan sus claves públicas, para que otros puedan encontrarlas y contactarlas en de manera segura).
Bob toma la firma digital y la de Alice Llave pública y los calcula juntos usando el reverso del algoritmo que Alice usó.
Debido a las propiedades matemáticas únicas de este cálculo, el resultado será el mismo que el hash de los datos de Alice de antes de firmarlo digitalmente con su clave privada.
Bob luego ejecuta el mensaje que recibió a través del la misma función hash que utilizó Alice. Si este mensaje no se ha modificado desde que Alice lo firmó, entonces la función hash le dará a Bob el mismo resultado que obtuvo del cálculo que realizó con la clave pública de Alice.
Si los dos valores son diferentes, significa que los datos han sido alterados, que no fueron firmados por la clave privada real de Alice o que hubo algún otro problema. Por el bien de nuestro ejemplo, supongamos que los dos valores coinciden y que los datos son legítimos..
En bitcoin y otras cadenas de bloques, las firmas digitales se utilizan principalmente en el proceso de transacción como una forma de que alguien demuestre su propiedad, sin tener que revelar su clave privada.
Hashing
El hash es el proceso de enviar datos a través de una función hash para producir un hash específico, esencialmente único, de una longitud fija. En las aplicaciones blockchain, utilizamos funciones hash criptográficas como SHA-256.
Las funciones de cifrado hash tienen varias características importantes que las hacen útiles:
- Son determinista – una entrada dada siempre tendrá la misma salida.
- Cada salida es esencialmente única. Las posibilidades de que dos entradas separadas tengan la misma salida son tan bajas que realmente no nos preocupamos por eso.
- Es inviable descubrir la entrada original de la salida (bajo técnicas y tecnología actuales).
- Los hashes se pueden calcular rápidamente.
- Un ligero cambio en la entrada da como resultado una salida significativamente diferente.
Como ejemplo, si ponemos “Vamos a cenar” a través de una función hash en línea, nos da:
a754edc281dfb28ca15fa0662de2e238550151a6c49514491eb1f60ac725bf65
Cada vez que lo pasamos, nos dará el mismo resultado. Pero si cambiamos incluso un carácter, devuelve un valor que es completamente diferente. “Comamos dinnet” nos da:
c323ef87e6a9e4fe8fede20738a7e3c7122f5ffa504bdf6c5541a33e76949812
Entonces, tenemos esta función matemática con una gama de propiedades interesantes, pero ¿cómo es útil en aplicaciones blockchain??
Las propiedades de los hashes nos permiten:
- Probar que poseemos cierta información, sin tener que revelar esa información.
- Evitar que las transacciones sean alteradas por adversarios.
- Verificar la confirmación de las transacciones. sin tener pleno conocimiento de un bloque.
- Reduce el ancho de banda de las transacciones.
- Haz rompecabezas criptográficos, que son parte del proceso minero.
Estas diversas características de los hashes se utilizan en cuatro áreas principales del sistema bitcoin:
- Cuando se realiza una transacción, los datos de transacciones anteriores se resumen en hash e incluido en la presente transacción.
- Cuando se realiza una nueva transacción, los datos también se combinan para formar un ID de transacción (txid), que es un identificador que se puede usar para ubicar los detalles de la transacción en la cadena de bloques.
- Se utiliza un hash de la clave pública como dirección donde los usuarios pueden enviar fondos. Esto hace que las direcciones sean más cortas y convenientes, además de proporcionar algunos beneficios de seguridad..
- Como parte de Bitcoin sistema de prueba de trabajo (esto se discute más adelante en el Prueba de trabajo sección).
Proceso básico de transacciones de Bitcoin
Ahora que hemos explicado algunas de las principales técnicas criptográficas detrás de la cadena de bloques de bitcoin, podemos ver cómo se usan en una transacción.
Lo primero que debe tener en cuenta es que las transacciones de bitcoin no ocurren de manera intuitiva. Todos los bitcoins que posee alguien no están todos mezclados, y no se pueden extraer en la cantidad exacta que se necesita para una transacción (más las tarifas de transacción).
En lugar, el saldo total se mantiene por separado en asignaciones de acuerdo a cómo se recibió. Digamos que Alice tiene un saldo total de 12 bitcoins, que recibió en tres transacciones separadas. Sus bitcoins se almacenarán en las cantidades separadas en que los recibió de las transacciones anteriores..
Digamos que su saldo se compone de una transacción previa de tres bitcoins, una transacción previa de cuatro bitcoins y una transacción previa de cinco bitcoins. Esto hace un total de 12 bitcoins. Cada uno de estos montos son los resultados de las transacciones anteriores, y ahora están bajo el control de Alice.
Ahora, digamos que Alice quiere hacer una transacción de diez bitcoins para comprarle un auto a Bob. Para cubrir los costos totales, necesitaría usar los bitcoins de cada una de las tres transacciones anteriores.. Estas salidas de transacciones pasadas ahora se convertirían en entradas para la nueva transacción..
Puede parecer extraño, pero dado que las transacciones anteriores no representan exactamente 10 bitcoins, Alice no puede enviar 10 bitcoins y dejar dos en su billetera. Dado que la única forma de formar los 10 bitcoins es combinar las tres transacciones pasadas como entradas, ella tendría que enviar la totalidad de las tres asignaciones, totalizando 12 bitcoins, para cubrir el valor total de la transacción.
Afortunadamente, esto no significa que Alice pierda los dos bitcoins adicionales. Se procesan como parte de la transacción, pero son devueltos a ella como cambio (menos la tarifa de transacción).
El proceso de transacción para comprar un auto de 10 bitcoins
Salidas, entradas
3 (de una de las transacciones anteriores de Alice) > 10 (a Bob)
4 (de una de las transacciones anteriores de Alice) > 2 (de vuelta a Alice como cambio)
5 (de una de las transacciones anteriores de Alice) >
Normalmente, la tarifa también se deduciría antes de devolver el cambio al remitente. Dado que el monto de la tarifa sería insignificante en comparación con los montos de las transacciones, hemos omitido la tarifa para mantener los números ordenados.
Profundizando en la transacción
Para la transacción anterior, cada una de las entradas habría tenido su hash de datos de transacciones anteriores, y luego se habría incluido en la transacción actual. Además, Alice tiene que demostrar que es propietaria de las tres entradas separadas (que son salidas de transacciones anteriores; ¡lo sabemos, es confuso!).
Alice hace esto usando firma guión, que es un script de desbloqueo Este guión se compone de dos aspectos, la clave pública de Alice y su firma digital. La clave pública indica la dirección de los resultados de las transacciones anteriores (que quiere usar como entradas para la nueva transacción), mientras que su firma digital muestra que ella es la verdadera propietaria.
Como discutimos en el Firma digital En la sección anterior, su firma demuestra que ella es la propietaria, ya que la firma digital solo podría haberse hecho usando su clave privada. La propiedad de Alice se verifica con su clave pública utilizando un script de clave pública.
Este diagrama muestra cómo las transacciones forman una cadena. En la segunda transacción, el Propietario 2 combina su clave pública con los datos del bloque anterior. El propietario 2 también crea una firma digital con su clave privada para demostrar su propiedad de la moneda. Esto se verifica con la clave pública del propietario 2. Bitcoin transacción visual por Inkscape bajo licencia CC0
¿Cómo pueden las blockchains evitar el doble gasto??
Por ahora, es de esperar que tenga una idea razonable sobre los procesos criptográficos subyacentes que utilizan bitcoin y otras cadenas de bloques en sus transacciones. Esto nos lleva de vuelta a donde lo dejamos en nuestro ejemplo anterior: H¿Cómo puede saber Jason si el masaje ya ha sido redimido?? Nos referimos a esto como el problema del doble gasto.
En cualquier red descentralizada, seudónima, se espera que algunas personas hagan trampa para tratar de enriquecerse. Bitcoin y otras cadenas de bloques resuelven este problema con un proceso de verificación basado en pares llamado minería.
Para explicar cómo funciona esto, ampliemos un poco más nuestra analogía anterior:
La mejor manera de visualizar el proceso de minería de blockchain es si, cada vez que se realiza una transacción, se envía una copia del contrato a todos los miembros del grupo de amistad..
Después de que se hayan realizado varias transacciones, cada persona combinaría los detalles de la transacción en una carpeta. Todos en el grupo de amistad tomarían el resultado de la carpeta de transacciones anterior, lo combinarían con los detalles de la transacción actual y luego intenta resolver un problema matemático complejo usando estas entradas.
La primera persona en encontrar la solución la transmitiría a todos los demás miembros del grupo de amistad., quienes pueden verificar rápidamente si han incluido las transacciones correctas y si tienen la respuesta correcta o no.
Si la respuesta es correcta, la persona que tuvo éxito primero recibe una recompensa. Esta recompensa es lo que incentiva a todos a validar las transacciones. Si alguien intenta hacer trampa, el resto del grupo lo descubrirá, lo que significa que los tramposos no tienen ninguna posibilidad de reclamar la recompensa y que el esfuerzo se desperdiciará.
Una vez que una persona ha completado con éxito el problema matemático y reclama su recompensa, todo el grupo comienza a recopilar nuevas transacciones en otra carpeta. Una vez que tienen suficiente, los combinan con el resultado de la carpeta anterior y cpara resolver un nuevo problema matemático con la esperanza de ganar la próxima recompensa.
El resultado de la carpeta anterior se incluye en la nueva y se forma una cadena de resultados que permite a las personas verificar los historiales de transacciones y verificar que todo a lo largo de la cadena sea legítimo.
Dado que todos guardan una copia que incluye el historial de transacciones, y el único incentivo financiero efectivo es contribuir honestamente al proceso de validación, esto evita que ocurra el doble gasto.
Todo este proceso puede parecer ineficiente, pero afortunadamente todos los que hacen una transacción de blockchain no tienen que hacer esto. La tarea se deja a los mineros y está automatizada, por lo que no implica tanto trabajo como nuestro ejemplo.
La analogía anterior es imperfecta, porque es una simplificación de un proceso relativamente complejo. El objetivo principal es darle una idea visual de lo que realmente está sucediendo. Discutiremos cómo funcionan realmente las cosas en un nivel más técnico en las siguientes secciones.
Nodos & mineros
Un nodo almacena una copia de la cadena de bloques, mientras que un minero crea y valida los bloques.. Los nodos completos almacenan todo el historial de transacciones de blockchain, mientras que los mineros solo se preocupan por el bloque anterior y el actual en el que están trabajando.
Además de almacenar los datos de blockchain, los nodos sirven como relés de red, ayudando a distribuir información a usuarios y mineros. Los nodos también verifican los bloques que generan los mineros asegurándose de que los hash coincidan con los datos de la transacción..
En los primeros días de bitcoin, no había separación entre nodos y mineros. Los términos se usaron indistintamente para referirse a las entidades que compitieron para validar las transacciones en un bloque, y también almacenaron la cadena de bloques que se usó para verificar transacciones pasadas.
Estos días, es posible alojar un nodo sin minar realmente. Un nodo completo se puede usar como billetera y para verificar la cadena de transacciones, ya que contiene una copia completa de la cadena de bloques. En la misma línea, los mineros técnicamente no tienen que alojar un nodo, aunque en realidad muchos sí.
Marcando la hora
El primer paso para evitar el doble gasto es publicar ampliamente un registro de transacciones anteriores. Si todos tienen una copia de los registros de transacciones anteriores, saben si ciertas monedas ya se han gastado.
En el protocolo bitcoin, los bloques de datos de transacciones se procesan en hash, luego el hash se extiende por toda la red. Este hash actúa como una marca de tiempo, lo que demuestra que los datos deben haber existido en el momento en que se creó el hash; de lo contrario, el hash no podría existir.
Cada nueva marca de tiempo es un hash que combina los datos de transacción del bloque actual y la marca de tiempo del bloque anterior. Esto crea una cadena de marcas de tiempo, y las futuras solidifican las marcas de tiempo que precedieron.
Este diagrama muestra cómo las transacciones se procesan para formar un bloque, y los datos del bloque anterior se procesan en un nuevo bloque. Datos de bloque de Bitcoin por Matthäus Wander licenciado bajo CC0
Redes blockchain
Uno de los objetivos principales de una cadena de bloques es crear un sistema descentralizado que puede verificarse sin la necesidad de terceros. Esto generalmente se logra a través de un proceso de verificación entre pares, donde la red ofrece incentivos financieros para validar honestamente los datos de las transacciones. Muchas cadenas de bloques se refieren a este proceso como minería.
En el protocolo bitcoin, cada vez que se realiza una transacción, Los detalles se envían a través de un relé de nodos hasta que cada nodo de la red reciba los datos..
Los mineros luego recolectan cada una de estas transacciones y las forman en un bloque. Cada minero luego intenta resolver el rompecabezas criptográfico para el bloque. Cuando un minero tiene éxito, envía el bloque a todos los nodos de la red..
Los nodos solo aceptarán el bloque si todas las transacciones dentro de él se verifican y no se han gastado.. Cuando los nodos aceptan un bloque, toman su hash y lo distribuyen a los mineros, que luego lo integran en el siguiente bloque de transacciones que intentan resolver.
Si dos mineros distintos resuelven un bloque al mismo tiempo, los otros mineros tomarán los datos del bloque que recibieron primero y los incorporarán en el siguiente bloque en el que están trabajando. También guardarán los datos del segundo bloque, en caso de que lo necesiten más adelante..
Toda la red estará trabajando en uno u otro bloque hasta que se resuelva el siguiente bloque. En este punto, aquellos que estaban trabajando en el otro bloque lo abandonarán. Esto se debe a que los mineros siempre aceptarán la cadena más larga como la correcta. Centran su trabajo en extender la cadena más larga, porque esta es la forma más probable de que terminen con la recompensa.
Prueba de trabajo
El protocolo bitcoin utiliza un concepto conocido como prueba de trabajo para validar sus transacciones. Se basa en el anterior esquema de Hashcash de Adam Back. Otras cadenas de bloques usan psistemas de techo de estaca, prueba de almacenamiento o prueba de espacio, pero no entraremos en los dos últimos en este artículo.
Para agregar una marca de tiempo a la red, un minero debe ser el primero en completar un rompecabezas criptográfico, luego difundir el resultado a los nodos de la red, que verifican la respuesta. El rompecabezas criptográfico requiere una cantidad significativa de recursos computacionales, y los mineros lo completan con la esperanza de resolver el bloqueo y recibir la recompensa. La recompensa se establece actualmente en 12.5 bitcoins.
Si un minero crea un bloque que no coincide con los resultados del resto de la red, el bloque se quedará atrás y los recursos que gastaron se habrán desperdiciado. Excluyendo circunstancias excepcionales (como un ataque del 51%), Es más rentable para un minero actuar honestamente, en lugar de intentar interrumpir la red o publicar resultados fraudulentos.
Este mecanismo de prueba de trabajo es lo que hace que la red sea honesta. Si alguien quisiera alterar o alterar un bloque, tendría que rehacer por completo el trabajo de resolver el bloqueo. Cuanto más atrás esté un bloque en una cadena, más difícil será manipularlo. Esto se debe a que todos los bloques que vienen después también tendrían que modificarse.
Este sistema de prueba de trabajo se basa en Algoritmo SHA-256. Es adecuado para las necesidades del sistema porque es relativamente difícil calcular la solución, pero fácil de verificar..
Prueba de estaca
Los algoritmos de prueba de trabajo requieren una potencia de procesamiento considerable, lo que los hace caros en términos de infraestructura y costos de energía.
Alternativas ligeras como han surgido pruebas de participación para hacer que el proceso de verificación sea más eficiente. Los protocolos de blockchain de prueba de participación tienen diversas técnicas, pero generalmente implican elegir al creador del siguiente bloque en función de una combinación de aleatoriedad y antigüedad o riqueza de la moneda.
La cantidad de monedas que tiene un usuario, o, alternativamente, cuánto tiempo se han mantenido las monedas, actúa como la apuesta del usuario. La estaca asegura que el usuario está realmente comprometido con la salud general del sistema..
Si bien estos factores son importantes en la delegación del siguiente bloque, son combinado con aleatoriedad para evitar que el sistema se centralice por los usuarios más ricos o más antiguos.
Seleccionar el siguiente bloque a través de sistemas de prueba de participación garantiza que las transacciones se validen correctamente, pero de una manera mucho más eficiente que los cálculos involucrados en los esquemas de prueba de trabajo.
Ethereum actualmente se está moviendo hacia un algoritmo de prueba de participación para aumentar su eficiencia, mientras que PeerCoin y NXT ya han implementado sistemas de prueba de participación.
Rompecabezas criptográficos
La única forma de resolver los acertijos criptográficos SHA-256 y ganar la recompensa es a través de fuerza bruta. Esto implica adivinar números al azar hasta que un minero encuentre la respuesta correcta.
Para completar los acertijos, los mineros toman los datos de transacción del bloque actual y el hash del bloque anterior como parte de su entrada. Luego deben adivinar una entrada separada, conocida como nonce (un número arbitrario), de modo que cuando todas estas entradas pasan por la función hash, el valor resultante comienza con un número establecido de ceros. Una solución podría verse así:
0000000000000000009b85ea7f6a14ca3d23b928ec3817263a831a4fc39be92
A medida que la red bitcoin se vuelve más poderosa, la dificultad de los acertijos aumenta exponencialmente al requerir soluciones que incluyan un mayor número de ceros. Esto hace que sea mucho más difícil y lento encontrar una respuesta correcta.
Puede ser difícil visualizar cómo funciona este proceso. Afortunadamente, hay una herramienta con la que puedes jugar que te da una idea razonable de cómo los mineros compiten en estos acertijos.
Con esta herramienta, puede emular el proceso de minería tomando un bloque determinado de datos de transacción, así como el hash del bloque anterior, luego tratando de adivinar qué nonce le dará un resultado que comienza con cuatro ceros. Normalmente, la solución requiere una cantidad mucho mayor de ceros, pero este ejemplo es solo una simplificación.
Para mantener las cosas fáciles, simularemos que nuestros datos de transacción, así como el hash del bloque anterior, es simplemente el número “1”. En el mundo real, la entrada sería mucho más compleja..
En el siguiente ejemplo, tenemos el número de bloque 1, con un nonce adivinado al azar de 72608 para nuestra entrada de datos de 1:
Como puedes ver, la suposición de 72608 no tuvo éxito, ya que el hash en la parte inferior no comienza con cuatro ceros. Si estás aburrido, puedes intentar encontrar una solución manualmente ingresando números para el nonce. Sigue intentándolo hasta que encuentres un resultado que comience con cuatro ceros.
Alternativamente, puede hacer las cosas de manera fácil, haciendo clic en “Mía“. Este botón genera conjeturas automáticamente para tratar de encontrar una solución. Al presionar el botón y esperar unos momentos, obtenemos el siguiente resultado:
Para la entrada dada de 1, un nonce de 64840 da como resultado un hash exitoso que comienza con cuatro ceros. Si fuéramos el primer minero de bitcoin en gastar la potencia informática necesaria para encontrar esta respuesta para el bloque, recibiríamos la recompensa del bloque.
Estos acertijos criptográficos pueden parecer complicados, pero el sistema de prueba de trabajo es importante para mantener la integridad de las cadenas de bloques. Si la validación de transacciones no requiere un gasto significativo de potencia informática, sería mucho más fácil para los atacantes alterar el sistema.
Blockchains: tecnología rápidamente emergente
A lo largo de este artículo, hemos hablado principalmente sobre cómo funcionan estos procesos en el contexto del protocolo bitcoin. Esto es simplemente porque Bitcoin fue la primera cadena de bloques funcional, y la mayoría de los demás se basan en gran medida en su diseño.
En estos días, hay miles de criptomonedas y blockchains diferentes, y no habría sido práctico cubrir las distinciones técnicas entre cada una. A pesar de las diferencias que existen entre ellos, todo el mundo blockchain se basa en conceptos criptográficos como la criptografía de clave pública, las firmas digitales y el hash.
Las cadenas de bloques variables solo tienen estructuras ligeramente diferentes y aplican estos conceptos de manera individual. Estas diferentes implementaciones tienen sus propios beneficios únicos, que le dan a las cadenas de bloques el potencial para ser utilizado en una amplia variedad de situaciones..
Blockchain por xresch con licencia bajo CC0
A estas alturas, la tecnología blockchain es un tema muy popular y se ha hablado mucho sobre ella. Sin embargo, muchos artículos no explican los conceptos complicados detrás de ella, lo que deja a muchas personas perplejas. Esta guía proporciona una explicación básica de qué son las cadenas de bloques, cómo funcionan y los conceptos criptográficos clave detrás de ellas. Es importante comprender lo que realmente está sucediendo a nivel técnico y esta guía lo hace de manera clara y detallada. La analogía de la aldea primitiva es una forma simple pero efectiva de entender cómo funcionan las cadenas de bloques. Es importante destacar que las cadenas de bloques son descentralizadas y no están controladas por un banco central o gobierno. La tecnología blockchain es una tecnología emergente y es importante entenderla para estar al día con las últimas tendencias tecnológicas.