Una blockchain es un tipo de base de datos especial, en la que los datos sólo pueden ser añadidos (y no eliminados o modificados). Fiel a su nombre, una blockchain se parece a una cadena de bloques -que es como llamamos a los fragmentos de información que se añaden a la base de datos. Cada bloque presenta un indicador que apunta al bloque que lo ha precedido y, generalmente, contiene cierta combinación de información transaccional, sellos temporales (timestamps), así como otros metadatos para confirmar su validez.
Debido a que están vinculadas de esta forma, las entradas no pueden ser editadas, borradas o modificadas en modo alguno -ya que esto invalidaría todos los bloques que las suceden.
Una blockchain puede parecer un tanto insignificante llegado este punto -y puede que te preguntes que tipo de ventajas ofrece este sistema respecto a una hoja de cálculo convencional. En lo que las blockchains despuntan es permitiendo a los usuarios coordinarse en torno a una fuente de verdad compartida, sin necesidad de confiar los unos en los otros. Con una red distribuida, no hay un único actor que pueda adueñarse de una blockchain sólida.
Para ejecutar y verificar de un modo independiente el estado de una blockchain, el usuario debe descargarse un software específico. Una vez listo y en funcionamiento en el equipo del usuario, dicho software interactúa con instancias de otros aparatos, con el objetivo de cargar/descargar información (como por ejemplo transacciones o bloques). Un nuevo usuario descarga un bloque, comprueba que haya sido creado siguiendo las reglas del sistema y transmite esta información a sus pares.
Lo que tenemos entonces es un ecosistema que puede estar compuesto por cientos, miles o decenas de miles de entidades, todas ellas ejecutando y sincronizando una copia idéntica de la base de datos (a estas entidades las denominamos nodos). Esto hace que sea altamente redundante y esté disponible en todo momento.
La integridad de una blockchain se ve socavada si información financiera falsa puede ser registrada. Al mismo tiempo, no hay un administrador o líder del sistema distribuido que mantenga el "ledger" (libro mayor contable) -así que, ¿cómo nos aseguramos de que los participantes estén actuando de un modo honesto?
Satoshi propuso un sistema Proof-of-Work, que permitía a cualquiera proponer un bloque para ser añadido a la red. Para proponer un bloque, se debería sacrificar potencia computacional para adivinar la solución a un problema propuesto por el protocolo (lo que implica un hashing repetido de los datos hasta producir un número que caiga debajo de un valor particular).
A este proceso lo llamamos minería. Si el minero adivina correctamente la solución, el bloque que ha construido (compuesto por transacciones no confirmadas, enviadas a él por sus pares) extenderá la cadena. Como resultado, recibirá una recompensa denominada en el token nativo de la blockchain.
Hacer hashing con una función unidireccional significa que con un output dado, resulta virtualmente imposible adivinar el input. Ahora bien, si se dispone del input, verificar el output es una tarea trivial. De esta forma, cualquier participante puede verificar que el minero haya producido un bloque "correcto" y rechazar aquellos que sean inválidos. En este caso, el minero no recibirá ninguna recompensa -por lo que, al tratar de forjar un bloque inválido, habrá malgastado capital.
En los sistemas de criptomonedas, la dependencia de la criptografía de clave pública/privada también garantiza que las partes no puedan gastar fondos que no posean. Las monedas están ligadas a claves privadas (conocidas solamente por los propietarios), y sólo una firma válida que certifique su movimiento permite que sean gastadas.
Proof-of-Work es el esquema para alcanzar consenso entre usuarios que más ha sido testeado, pero no es, en modo alguno, el único. Alternativas como Proof-of-Stake están siendo exploradas cada vez más, sin embargo, todavía se espera una adecuada implementación de las mismas en su forma auténtica (a pesar de que mecanismos de consenso híbridos existen desde hace cierto tiempo).
La idea básica que subyace al concepto de una cadena de datos inmutable se remonta a inicios de los 90. Los investigadores W. Scott Stornetta y Stuart Haber publicaron un artículo titulado How to Time-Stamp a Digital Document, que discutía prácticas eficientes de sellado temporal (timestamping) de archivos, para que éstos no pudieran ser editados o falsificados.
Sin embargo, el enfoque de Stornetta y Haber era imperfecto, ya que seguía dependiendo de la confianza en terceros para su implementación. La tecnología Blockchain incorpora innovaciones de otros científicos computacionales, siendo Satoshi Nakamoto el considerado como padre del sistema descrito previamente.
¿Te interesa aprender más sobre historia del blockchain? Lee nuestro artículo Historia del Blockchain.
Las criptomonedas eran sólo la punta del iceberg. Tras la aparición del dinero descentralizado, muchos vieron el potencial existente para la computación descentralizada. Del mismo modo que la primera generación de blockchains -como Bitcoin- introdujo la base de datos de transacciones compartida; los exponentes de segunda generación, como Ethereum, trajeron consigo los smart contracts. Estos últimos son programas que se ejecutan en blockchains para gestionar el movimiento condicional de tokens.
Con los smart contracts, ningún servidor central ejecuta el código, lo que significa que el punto central de falla en el nivel de alojamiento se desintermedia. Los usuarios pueden auditar el software (dada su disponibilidad pública), y los desarrolladores pueden diseñar contratos de tal manera que no puedan cerrarse o modificarse.
Algunas aplicaciones para blockchains pueden incluir:
La tecnología Blockchain se adapta a una amplia gama de casos de uso. A continuación, encontrarás algunas lecturas adicionales en Binance Academy:
Las blockchains públicas son sistemas sin permiso, lo que significa que no hay que realizar ningún procedimiento de autenticación antes de poder participar. Con Bitcoin y otras criptomonedas, el usuario solo necesita descargar software de código abierto para unirse a la red.
Dada la accesibilidad de estos ledgers, es increíblemente difícil prohibir la participación y es casi imposible que toda la red se desconecte. Dicha accesibilidad los convierte en una herramienta atractiva para usuarios de todo tipo.
Si bien sus aplicaciones más populares se encuentran en las transacciones financieras, hay muchos otros sectores donde su implementación puede ser beneficiosa en el futuro.