Está en la página 1de 45

¿Qué son las Criptomonedas?

Una criptomoneda es algo similar a un dinero digital. Con el cual


podrás pagar a tus amigos tu parte del bar, comprar ese par de
medias que vistes 👀, reservar vuelos ✈️y hoteles 🏨 para tus
próximas vacaciones. Como las criptomonedas son digitales, es
posible que puedas transferírselas a tus amigos y familiares sin
importar en que parte del mundo se encuentren.

Parecido a PayPal o las transferencias bancarias, ¿Verdad?


Bueno, en realidad no lo es. ¡Es mucho más interesante!
Como sabrás, las pasarelas de pagos online que conocemos a día de
hoy pertenecen a organizaciones. Ellos retienen tu dinero y debes
solicitar alguna transacción o transferencia a tu nombre si deseas
gastar en algo.

Con las criptomonedas, no existe alguna organización. Entonces,


tanto tú como tus amigos y familiares pueden ser su propio banco,
esto gracias a que, tú computadora se conecta con las computadoras
de otras personas, lo que permite una comunicación directa, es decir,
¡Sin intermediarios!

Para usar tus criptomonedas no necesitas registrarte en algún sitio


web, usar tu correo electrónico o una contraseña. Puedes descargar
una amplia gama de aplicaciones en tu smartphone para enviar y
recibir criptos en cuestión de minutos.

¿Por qué se les llama criptomonedas?

El nombre de criptomonedas es la combinación entre criptografía


y moneda. Con el uso de las criptografías, usamos la matemática
avanzada para proporcionar mayor seguridad a nuestros fondos,
asegurándonos de que nadie más a excepción de nosotros mismos
pueda gastar nuestras criptomonedas.
No es necesario que entiendas todo esto: Las aplicaciones que uses harán todo el
trabajo pesado por ti. Ni siquiera sabrás que está pasando detrás de escena.

Si estás interesado en este tipo de cosas, tenemos algunos artículos que seguro te
gustarán:

 ¿Qué son las llaves públicas de la criptografía?


 Historia de la criptografía
 Cifrado simétrico vs asimétrico
 ¿Qué son las firmas digitales?

¿Qué es la criptografía de
clave pública?
La criptografía de clave pública (PKC), también conocida como
criptografía asimétrica, es un marco que utiliza tanto una clave
privada como una pública, a diferencia de la clave única utilizada en
la criptografía simétrica. El uso de pares de claves le da a PKC un
conjunto único de características y capacidades que se pueden
utilizar para resolver los desafíos inherentes a otras técnicas
criptográficas. Esta forma de criptografía se ha convertido en un
elemento importante de la seguridad informática moderna, así como
en un componente crítico del creciente ecosistema de criptomonedas.

¿Cómo funciona la criptografía de clave pública?

En un esquema PKC, la clave pública es utilizada por un remitente


para cifrar la información, mientras que la clave privada es utilizada
por un destinatario para descifrarla. Debido a que las dos claves son
diferentes entre sí, la clave pública se puede compartir de manera
segura sin comprometer la seguridad de la privada. Cada par de
claves asimétricas es único, lo que garantiza que un mensaje cifrado
con una clave pública sólo puede ser leído por la persona que posee
la clave privada correspondiente.
Debido a que los algoritmos de encriptación asimétrica generan pares
de claves que están matemáticamente vinculados, sus longitudes de
clave son mucho más largas que las utilizadas en la criptografía
simétrica. Esta longitud más larga, generalmente entre 1.024 y 2.048
bits, hace que sea extremadamente difícil calcular una clave privada
de su contraparte pública. Uno de los algoritmos más comunes para
el cifrado asimétrico en uso hoy en día se conoce como RSA. En el
esquema RSA, las claves se generan utilizando un módulo al que se
llega al multiplicar dos números (a menudo dos números primos
grandes). En términos básicos, el módulo genera dos claves (una
pública que puede compartirse y una privada que debe mantenerse
en secreto). El algoritmo RSA fue descrito por primera vez en 1977
por Rivest, Shamir y Adleman (por lo tanto, RSA) y sigue siendo un
componente importante de los sistemas de criptografía de clave
pública.

PKC como herramienta de cifrado 

La criptografía de clave pública resuelve uno de los problemas de


larga data de los algoritmos simétricos, que es la comunicación de la
clave que se utiliza tanto para el cifrado como para el descifrado. El
envío de esta clave a través de una conexión insegura puede
exponerla a terceros, quienes luego pueden leer cualquier mensaje
cifrado con la clave compartida. Aunque existen técnicas
criptográficas (como el protocolo de intercambio de claves Diffie-
Hellman-Merkle) para resolver este problema, aún son vulnerables a
los ataques. En la criptografía de clave pública, por el contrario, la
clave utilizada para el cifrado se puede compartir de forma segura a
través de cualquier conexión. Como resultado, los algoritmos
asimétricos ofrecen un mayor nivel de protección en comparación con
los simétricos.
Uso en Generación de Firmas Digitales

Otra aplicación de los algoritmos de criptografía asimétrica es la


autenticación de datos mediante el uso de firmas digitales.
Básicamente, una firma digital es un hash creado con los datos de un
mensaje. Cuando se envía ese mensaje, el destinatario puede
verificar la firma utilizando la clave pública del remitente como una
forma de autenticar la fuente del mensaje y asegurarse de que no
haya sido manipulado. En algunos casos, las firmas digitales y el
cifrado se aplican juntos, ya que el hash en sí puede estar cifrado
como parte del mensaje. Cabe señalar, sin embargo, que no todos los
esquemas de firma digital utilizan técnicas de cifrado.

Limitaciones

Aunque se puede usar para mejorar la seguridad de la computadora y


proporcionar la verificación de la integridad del mensaje, PKC tiene
algunas limitaciones. Debido a las complejas operaciones
matemáticas involucradas en el cifrado y descifrado, los algoritmos
asimétricos pueden ser bastante lentos cuando se los obliga a tratar
con grandes cantidades de datos. Este tipo de criptografía también
depende en gran medida de la suposición de que la clave privada
permanecerá secreta. Si una clave privada se comparte o se expone
accidentalmente, la seguridad de todos los mensajes que se hayan
cifrado con su clave pública correspondiente se verá comprometida.
También es posible que los usuarios pierdan accidentalmente sus
claves privadas, en cuyo caso se les hace imposible acceder a los
datos cifrados.

Aplicaciones de criptografía de clave pública.

Este tipo de criptografía es utilizado por muchos sistemas


informáticos modernos para brindar seguridad a la información
confidencial. Los correos electrónicos, por ejemplo, se pueden cifrar
utilizando técnicas de criptografía de clave pública para mantener su
contenido confidencial. El protocolo de capa de sockets seguros
(SSL) que hace posible las conexiones seguras a los sitios web
también emplea criptografía asimétrica. Los sistemas PKC incluso se
han explorado como un medio para proporcionar un entorno de
votación electrónica seguro que potencialmente permitiría a los
votantes participar en las elecciones desde las computadoras de sus
hogares.

PKC también ocupa un lugar destacado en la


tecnología blockchain y criptomoneda. Cuando se configura una
nueva cartera de criptomonedas, se generan un par de claves (claves
públicas y privadas). La dirección pública se genera utilizando la clave
pública y se puede compartir de forma segura con otros. La clave
privada, por otro lado, se utiliza para crear firmas digitales y verificar
transacciones, y por lo tanto, debe mantenerse en secreto. Una vez
que se ha verificado una transacción confirmando el hash contenido
en la firma digital, esa transacción se puede agregar al libro mayor de
blockchain. Este sistema de verificación de firma digital garantiza que
solo la persona que tiene la clave privada asociada con la cartera de
criptomonedas correspondiente puede liberar fondos de ella. Cabe
señalar que los cifrados asimétricos utilizados en las aplicaciones de
criptomoneda son diferentes de los utilizados con fines de seguridad
informática. Bitcoin y Ethereum, por ejemplo, utilizan un cifrado
especializado conocido como el algoritmo de firma digital de curva
elíptica (ECDSA) para verificar las transacciones.
Desde la seguridad informática hasta la verificación de las
transacciones de criptomonedas, la criptografía de clave pública
desempeña un papel importante en la protección de los sistemas
digitales modernos. Mediante el uso de claves públicas y privadas
emparejadas, los algoritmos de criptografía asimétrica resuelven
problemas de seguridad fundamentales presentados por cifrados
simétricos. Aunque PKC ha estado en uso durante muchos años,
nuevos usos y aplicaciones se están desarrollando regularmente para
él, particularmente en el espacio de la blockchain  y la criptomoneda.
Historia de la Criptografía
Los Antiguos Orígenes de la Criptografía

Se conoce la existencia de técnicas criptográficas primitivas desde


tiempos remotos, ya que la mayoría de civilizaciones antiguas
parecen haberlas usado de una forma u otra. El reemplazo de
símbolos, la forma más básica de criptografía, se puede encontrar
tanto en antiguas escrituras mesopotámicas como egipcias. El
ejemplo más antiguo conocido de esta forma de criptografía se
encontró en la tumba de un noble egipcio llamado Khnumhotep II, que
vivió hace aproximadamente unos 3.900 años.

El propósito del reemplazo de símbolos en la inscripción de


Knhumhotep no era ocultar información, sino incrementar su “atractivo
lingüístico”. El caso más antiguo conocido de criptografía enfocada a
proteger información sensible, es el de un escriba mesopotámico de
hace 3.500 años que empleó la técnica para ocultar una fórmula para
glaseado de cerámica en una tableta de arcilla.

En periodos posteriores de la antigüedad, la criptografía sería


ampliamente utilizada para la protección de importantes
informaciones militares, una función que aún hoy en día cumple. En la
ciudad-estado griega de Esparta, los mensajes se encriptaban al ser
escritos en un pergamino colocado en un cilindro de una medida
particular, lo que hacía que el mensaje fuera indescifrable hasta que
el recipiente lo enrollaba en un cilindro similar. De forma parecida, se
sabe que los espías de la antigua India empleaban mensajes
codificados ya en el siglo II a.C.

Pobablemente, la criptografía más avanzada del mundo antiguo fue la


de los romanos. Un ejemplo destacado de criptografía romana,
conocida como el cifrado del César, consistía en cambiar las letras de
un mensaje encriptado en base a cierto número de posiciones en el
alfabeto latino. Si se conocía el sistema y el número de posiciones
que debían moverse las letras, cualquier recipiente podía decodificar
con éxito el otrora ilegible mensaje.

Desarrollos en la Edad Media y Renacimiento

A lo largo de la Edad Media, la criptografía se volvería cada vez más


importante, pero los cifrados por substitución -de los cuales el cifrado
del César es un ejemplo- seguirían siendo el estándar. El
criptoanálisis, la ciencia encargada de resolver códigos y cifrados,
empezó a ponerse al nivel de una todavía relativamente primitiva
ciencia criptográfica. Al-Kindi, un célebre matemático árabe,
desarrollaría en torno al 800 d.C. una técnica conocida como análisis
de frecuencia, que dejaba en situación de vulnerabilidad a los cifrados
por sustitución. Por primera vez, la gente que intentaba descifrar
mensajes encriptados tenía a su disposición un método sistemático
para lograrlo, lo que obligó a la criptografía a evolucionar para seguir
siendo útil.

En 1465, Leone Alberti desarrolló el cifrado polialfabético,


considerado la solución contra la técnica de análisis de frecuencia de
Al-Kindi. En un cifrado polialfabético, el mensaje se codifica utilizando
dos alfabetos distintos. Uno es el alfabeto en que el mensaje original
se escribe, mientras el segundo es un alfabeto enteramente diferente,
en el que el mensaje se muestra después de ser codificado. En
combinación con los cifrados de sustitución tradicionales, los cifrados
polialfabéticos incrementaban enormemente la seguridad de la
información codificada. A no ser que el lector conociera el alfabeto en
que el mensaje había sido originalmente escrito, el análisis de
frecuencia resultaba inútil.

Nuevos métodos para codificar información serían también


desarrollados durante el Renacimiento, incluyendo un temprano
método popular de codificación binario inventado en 1623 por el
célebre erudito Sir Francis Bacon.
Avances en Siglos Más Recientes

La ciencia criptográfica continuaría progresando en los siguientes


siglos. Un notable avance en criptografía sería descrito, pero quizás
nunca construido, por Thomas Jefferson en la década de 1790. Su
invento, conocido como rueda de cifrado, consistía en 36 anillos de
letras en ruedas móviles, que podían ser utilizados para lograr
codificados complejos. Este concepto era tan avanzado que serviría
como base de la criptografía militar americana hasta el periodo de la
Segunda Guerra Mundial.

La Segunda Guerra Mundial traería consigo el ejemplo perfecto de


criptografía analógica: la máquina Enigma. Igual que la rueda de
cifrado, este dispositivo, empleado por las potencias del Eje, utilizaba
ruedas rotatorias para codificar un mensaje -haciendo que fuera
virtualmente imposible leerlo sin otra máquina Enigma. Tempranas
formas de tecnología informática serían empleadas para
eventualmente ayudar a romper el cifrado de Enigma. El exitoso
desencriptado de los mensajes de Enigma aún se considera un
componente crítico de la posterior victoria aliada.

La Criptografía en la Edad de las Computadoras

Con el auge de las computadoras, la criptografía alcanzó niveles de


progreso mucho mayores que en la era analógica. La encriptación
matemática de 128-bits, mucho más fuerte que cualquier cifrado
antiguo o medieval, es ahora el estándar para muchos dispositivos
sensibles y sistemas informáticos. En 1990, se pondría en marcha
toda una nueva forma de criptografía, apodada criptografía cuántica,
por parte de científicos computacionales que esperaban elevar una
vez más el nivel de protección ofrecido por la encriptación moderna.

Más recientemente, técnicas criptográficas han sido también


utilizadas para hacer posibles las criptomonedas. Las criptomonedas
aprovechan varias técnicas criptográficas avanzadas, como las
funciones hash, la criptografía de clave pública y las firmas digitales.
Estas técnicas se utilizan principalmente para garantizar la seguridad
de los datos almacenados en blockchains y para autenticar las
transacciones. Una forma especializada de criptografía, llamada
Elliptic Curve Digital Signature Algorithm (ECDSA), sirve de puntal a
Bitcoin y a otros sistemas de criptomonedas, al proporcionar una
seguridad complementaria y garantizar que los fondos sólo pueden
ser utilizados por sus legítimos dueños.

La criptografía ha recorrido un largo camino en los últimos 4.000


años, y no parece que vaya a detenerse pronto. En la medida en que
información sensible siga requiriendo protección, la criptografía
continuará avanzando. A pesar de que los sistemas criptográficos
empleados actualmente en las blockchains de las criptomonedas
representan algunas de las formas más avanzadas de esta ciencia,
son también piezas de una tradición que abarca buena parte de la
historia humana.

Encriptación Simétrica vs.


Asimétrica
En la actualidad, los sistemas criptográficos se dividen en dos
campos de estudio principales: criptografía simétrica y asimétrica.
Mientras la encriptación simétrica se emplea a menudo como
sinónimo de criptografía simétrica, la criptografía asimétrica abraza
dos usos primarios: encriptación asimétrica y firmas digitales.

Por consiguiente, podemos representar ambos grupos de la siguiente


manera:

 Criptografía de clave simétrica 


 Encriptación simétrica

 Criptografía asimétrica (o criptografía de clave pública)


 Encriptación asimétrica (o encriptación de clave
pública)

 Firmas digitales (puede incluir o no encriptación)

Este artículo se centrará en los algoritmos de encriptación simétricos


y asimétricos.

Encriptación simétrica vs. asimétrica

Los algoritmos de encriptación o cifrado a menudo se dividen en dos


categorías: encriptación simétrica y asimétrica. La diferencia
fundamental entre estos dos métodos de encriptación radica en el
hecho de que los algoritmos de cifrado simétricos emplean una única
clave, mientras que los asimétricos utilizan dos claves distintas pero
vinculadas. Dicha distinción, a pesar de ser simple en apariencia,
explica las diferencias funcionales entre los dos tipos de técnicas de
encriptación y la forma en que son empleadas.

Comprensión de las “claves de encriptación”

En criptografía, los algoritmos de cifrado generan claves en forma de


series de bits que se emplean para encriptar y desencriptar
fragmentos de información. La forma en que dichas claves se utilizan
da cuenta de la diferencia entre encriptación simétrica y asimétrica. 
Mientras los algoritmos de encriptación simétrica utilizan la misma
llave para llevar a cabo las funciones de encriptación y
desencriptación; un algoritmo de encriptación asimétrico, por contra,
emplea una clave para encriptar los datos y otra distinta para
desencriptarlos. En los sistemas asimétricos, la clave utilizada para la
encriptación se conoce como “clave pública” y puede ser compartida
libremente con el resto de la gente. Por el contrario, la clave
empleada para la desencriptación, denominada “clave privada”, debe
ser guardada en secreto.
Por ejemplo, si Alice le envía a Bob un mensaje protegido por
encriptación simétrica, deberá compartir también la clave empleada
para el cifrado, para que éste puede desencriptarlo y leerlo. Esto
significa que si un actor malicioso intercepta la clave será capaz de
acceder a la información encriptada. 

En cambio, si Alice decide emplear un esquema asimétrico, encriptará


el mensaje con la “clave pública” de Bob para que éste pueda
desencriptarlo con su propia “clave privada”. Como se deduce, la
encriptación asimétrica ofrece un nivel de seguridad más elevado
porque, incluso en el caso de que alguien intercepte y encuentre la
clave pública de Bob, no podrá desencriptar el mensaje.

Longitud de las claves

Otra diferencia funcional entre la encriptación simétrica y asimétrica


está relacionada con la longitud de las claves, medidas en bits, y
directamente vinculadas al nivel de seguridad proporcionado por cada
algoritmo criptográfico.

En los esquemas simétricos, las claves son seleccionadas de forma


aleatoria, y su longitud suele establecerse en 128 o 256 bits,
dependiendo del nivel de seguridad requerido. En la encriptación
asimétrica, sin embargo, debe existir una relación matemática entre la
clave pública y privada, lo que significa que un patrón matemático
vinculará a las dos. Dado que este patrón podría ser potencialmente
explotado por atacantes para vulnerar el cifrado, las claves
asimétricas requieren una mayor longitud para alcanzar un nivel de
seguridad equivalente. La diferencia en la longitud requerida para
cada clave es tan pronunciada, que una clave simétrica de 128 bits y
una asimétrica de 2,048 bits ofrecen aproximadamente los mismos
niveles de seguridad.

Ventajas y desventajas

Ambos tipos de encriptación presentan ventajas y desventajas


comparativas. Los algoritmos de encriptación simétricos son mucho
más rápidos y requieren menos potencia computacional, pero su
principal flaqueza es la distribución de las claves. Dado que la misma
clave se utiliza para encriptar y desencriptar la información, ésta debe
distribuirse a todo aquel que necesite acceder a los datos, lo que,
como es lógico, conlleva una serie de riesgos de seguridad (como se
ha explicado anteriormente).
Por el contrario, la encriptación asimétrica resuelve el problema de la
distribución de claves al utilizar claves públicas para el cifrado y
claves privadas para la desencriptación. La contraprestación, sin
embargo, es que los sistemas de cifrado asimétricos son mucho más
lentos que los simétricos y requieren mucha más potencia
computacional como resultado de la mayor longitud de sus claves.

Casos de uso

Encriptación simétrica

Debido a su mayor velocidad, la encriptación simétrica se emplea de


forma generalizada para la protección de información en muchos
sistemas de computación modernos. El Advanced Encryption
Standard (AES), por ejemplo, es empleado por el gobierno de los
Estados Unidos para encriptar información clasificada y sensible. El
AES reemplazó a su predecesor, el Data Encryption Standard (DES),
desarrollado en la década de 1970 como estándar de encriptación
simétrica.
Encriptación asimétrica

La encriptación asimétrica puede aplicarse en sistemas en los que


muchos usuarios pueden requerir la encriptación y desencriptación de
mensajes o conjuntos de datos, especialmente, cuando la velocidad y
la potencia computacional no son preocupaciones primarias. Un
ejemplo de este tipo de sistemas es el correo electrónico cifrado, en el
que una clave pública puede ser empleada para encriptar un
mensaje, y una clave privada para desencriptarlo.

Sistemas híbridos

En muchas aplicaciones, la encriptación simétrica y la asimétrica se


utilizan de forma conjunta. Ejemplos típicos de estos sistemas
híbridos son los protocolos criptográficos Secure Sockets Layer (SSL)
y Transport Layer Security (TLS), diseñados para proporcionar
comunicaciones seguras en Internet. Los protocolos SSL se
consideran en la actualidad poco seguros y su uso se desaconseja.
Por el contrario, los protocolos TLS se catalogan como seguros y han
sido ampliamente utilizados por los principales navegadores web.

¿Emplean las criptomonedas la encriptación?

Las técnicas de encriptación son utilizadas por muchos monederos de


criptomonedas para proporcionar un nivel de seguridad más elevado
para los usuarios finales. Los algoritmos de cifrado se aplican, por
ejemplo, cuando los usuarios establecen una contraseña para sus
monederos de criptomonedas, lo que significa que el archivo
empleado para acceder al software ha sido encriptado.

Ahora bien, debido a que Bitcoin y otras criptomonedas emplean


pares de claves público-privadas, se ha popularizado la idea errónea
de que los sistemas blockchain utilizan algoritmos de encriptación
asimétricos. Como se ha señalado previamente, la encriptación
asimétrica y las firmas digitales son dos de los casos de uso
principales de la criptografía asimétrica (criptografía de clave pública).
Pero no todas las firmas digitales, incluso en el caso de que
presenten una clave pública y privada, emplean técnicas de
encriptación. De hecho, un mensaje puede ser firmado digitalmente
sin ser encriptado. El RSA es un ejemplo de algoritmo que puede ser
utilizado para firmar mensajes encriptados, pero el algoritmo de firma
digital empleado por Bitcoin (denominado ECDSA) no usa la
encriptación en ningún caso.

Reflexiones finales

Tanto la encriptación simétrica como la asimétrica juegan un rol


destacado en la preservación de la seguridad de informaciones
sensibles y comunicaciones del mundo digitalmente dependiente en
el que vivimos. A pesar de que ambas pueden resultar útiles, cada
una presenta sus propias ventajas y desventajas, por lo que se
destinan a distintas aplicaciones. Mientras la ciencia criptográfica
continúa evolucionando para así defenderse de amenazas nuevas y
más sofisticadas, ambos tipos de sistemas criptográficos (simétricos y
asimétricos) seguirán siendo, con toda probabilidad, muy relevantes
para la seguridad informática.

¿Qué es una Firma Digital?


Una firma digital es un mecanismo criptográfico empleado para
verificar la autenticidad e integridad de datos digitales. Podemos
considerarla una versión digital de las firmas escritas a mano
ordinarias, pero con un nivel más elevado de complejidad y
seguridad.

En términos sencillos, podríamos describir una firma digital como


código vinculado a un mensaje o documento. Después de ser
generado, dicho código ejerce como prueba de que el mensaje no ha
sido manipulado durante el proceso que lo lleva del emisor al
receptor.

A pesar de que el concepto de proteger las comunicaciones mediante


el uso de criptografía se remonta a la antigüedad, los esquemas de
firma digital se convirtieron en una posibilidad real en los años 70 -
gracias al desarrollo de la Criptografía de Clave Pública (PKC). Así
que, para aprender cómo funcionan las firmas digitales, necesitamos
comprender primero los fundamentos de las funciones hash y de la
criptografía de clave pública.

Funciones Hash
El hashing es uno de los elementos principales de los sistemas de
firma digital. El proceso de hashing implica transformar datos de
cualquier tamaño en un output de extensión fija. Esto se consigue
mediante un tipo de algoritmos especiales conocidos como funciones
hash. El output generado por una función hash se denomina valor
hash o digest del mensaje.
En combinación con la criptografía, las así llamadas funciones hash
criptográficas pueden ser empleadas para generar un valor hash
(digest) que funciona como huella digital única. Esto significa que
cualquier cambio en los datos de entrada (mensaje) generará como
resultado un output (valor hash) completamente diferente. Y esta es la
razón por la que las funciones hash criptográficas son ampliamente
utilizadas para verificar la autenticidad de los datos digitales.

Criptografía de Clave Pública (PKC)


La criptografía de clave pública, o PKC, designa el sistema
criptográfico que hace uso de un par de claves: una pública y otra
privada. Las dos claves están matemáticamente vinculadas y pueden
ser empleadas tanto para encriptación de datos como para firmas
digitales.
Como herramienta de encriptación, la PKC es más segura que los
métodos más rudimentarios de la encriptación simétrica. Mientras los
sistemas más antiguos se apoyan en la misma clave para cifrar y
descifrar la información, la PKC permite encriptar los datos mediante
la clave pública, y desencriptarlos utilizando la correspondiente clave
privada.
Aparte de eso, el esquema PKC puede ser aplicado para la
generación de firmas digitales. Básicamente, el proceso consiste en
someter a hashing un mensaje (o datos digitales) junto con la clave
privada del firmante. A continuación, el receptor del mensaje podrá
comprobar si la firma es válida utilizando la clave pública
proporcionada por el firmante.

En algunas circunstancias, las firmas digitales pueden conllevar


encriptación, aunque no siempre es el caso. Por ejemplo, la
blockchain de Bitcoin hace uso de la PKC y de las firmas digitales,
pero a diferencia de lo que muchos tienden a creer, no se produce
encriptación en el proceso. Técnicamente, Bitcoin utiliza el llamado
Algoritmo de Firma Digital de Curva Elíptica (ECDSA) para autenticar
las transacciones.

Funcionamiento de las firmas digitales


En el ámbito de las criptomonedas, un sistema de firma digital con
frecuencia consta de tres pasos básicos: hashing, firma y verificación.

Hashing de los datos

El primer paso es someter a proceso de hashing el mensaje o los


datos digitales. Esto se logra procesando los datos mediante un
algoritmo de hashing, para así obtener un valor hash (en este caso, el
digest del mensaje). Como ya se ha mencionado, el tamaño de los
mensajes puede variar de forma significativa, pero cuando son
sometidos a proceso de hashing, todos sus valores hash resultantes
presentan la misma longitud. Esta es la propiedad más elemental de
una función hash.
Sin embargo, para producir una firma digital no es imprescindible
someter los datos a hashing, porque uno puede utilizar una clave
privada para firmar un mensaje que de ninguna forma haya sido
hasheado. Ahora bien, en el caso de las criptomonedas, los datos son
siempre sometidos a proceso de hashing porque lidiar con digests de
extensión fija facilita todo el proceso.

Firma

Tras someter a proceso de hashing la información, el emisor del


mensaje debe firmarla. Este es el momento en que la criptografía de
clave pública entra en acción. Existen diversos tipos de algoritmos de
firma digital, cada uno con su propio mecanismo particular. Pero de
forma general, el mensaje que ha sido sometido a hashing será
firmado con una clave privada, y el receptor del mismo podrá
comprobar su validez utilizando la correspondiente clave pública
(proporcionada por el firmante).

Dicho de otra forma, si la clave privada no se incluye cuando se


genera la firma, el receptor del mensaje no podrá utilizar la clave
pública correspondiente para así verificar su validez. Tanto la clave
pública como la privada son generadas por el emisor del mensaje,
pero sólo la clave pública es compartida con el receptor.

Vale la pena señalar que las firmas digitales están directamente


relacionadas con el contenido de cada mensaje. Entonces, a
diferencia de las firmas manuscritas, que tienden a ser las mismas
independientemente del mensaje, cada mensaje firmado digitalmente
tendrá una firma digital diferente.

Verificación
Tomemos un ejemplo para ilustrar todo el proceso hasta el paso final
de verificación. Imagina que Alice escribe un mensaje a Bob, lo
codifica y luego combina el valor hash con su clave privada para
generar una firma digital. La firma funcionará como una huella digital
única de ese mensaje en particular.

Cuando Bob recibe el mensaje, puede verificar la validez de la firma


digital utilizando la clave pública provista por Alice. De esta manera,
Bob puede estar seguro de que la firma fue creada por Alice porque
solo ella tiene la clave privada que corresponde a esa clave pública
(al menos eso es lo que esperamos).

Entonces, es crucial para Alice mantener su clave privada en secreto.


Si otra persona tiene en sus manos la clave privada de Alice, puede
crear firmas digitales y pretender ser Alice. En el contexto de Bitcoin,
esto significa que alguien podría usar la clave privada de Alice para
mover o gastar sus Bitcoins sin su permiso.

¿Por qué son importantes las firmas


digitales?
Las firmas digitales a menudo se usan para lograr tres resultados:
integridad de datos, autenticación y no repudio.

 Integridad de los datos. Bob puede verificar que el mensaje de


Alice no haya cambiado en el camino. Cualquier modificación
en el mensaje produciría una firma completamente diferente.
 Autenticidad. Mientras la clave privada de Alice se mantenga en
secreto, Bob puede usar su clave pública para confirmar que
las firmas digitales fueron creadas por Alice y nadie más.
 No repudio. Una vez que se haya generado la firma, Alice no
podrá negar haberla firmado en el futuro, a menos que su
clave privada se vea comprometida de alguna manera.
Casos de uso
Las firmas digitales se pueden aplicar a varios tipos de documentos y
certificados digitales. Como tal, tienen varias aplicaciones. Algunos de
los casos de uso más comunes incluyen:

 Tecnología de la información. Para mejorar la seguridad de los


sistemas de comunicación de Internet.
 Finanzas. Las firmas digitales se pueden implementar en
auditorías, informes de gastos, acuerdos de préstamos y
mucho más.
 Jurídico. Firma digital de todo tipo de contratos comerciales y
acuerdos legales, incluidos documentos gubernamentales.
 Cuidado de la salud. Las firmas digitales pueden prevenir el
fraude de recetas y registros médicos.
 Blockchain. Los esquemas de firma digital aseguran que solo los
propietarios legítimos de las criptomonedas puedan firmar una
transacción para mover los fondos (siempre que sus claves
privadas no se vean comprometidas).

Limitaciones
Los principales desafíos que enfrentan los esquemas de firma digital
se basan en al menos tres requisitos:

 Algoritmo. La calidad de los algoritmos utilizados en un esquema


de firma digital es importante. Esto incluye la elección
de funciones hash confiables y sistemas criptográficos.
 Implementación. Si los algoritmos son buenos, pero la
implementación no lo es, es probable que el sistema de firma
digital presente fallas.
 Claveprivada. Si las claves privadas se filtran o se ven
comprometidas de alguna manera, las propiedades de
autenticidad y no repudio serán invalidadas. Para los usuarios
de criptomonedas, perder una clave privada puede resultar en
pérdidas financieras significativas.

Firmas electrónicas vs. Firmas digitales


En pocas palabras, las firmas digitales se relacionan con un tipo
particular de firmas electrónicas, que se refieren a cualquier método
electrónico de firma de documentos y mensajes. Por lo tanto, todas
las firmas digitales son firmas electrónicas, pero lo contrario no
siempre es cierto.

La principal diferencia entre ellos es el método de autenticación. Las


firmas digitales implementan sistemas criptográficos, como funciones
hash, criptografía de clave pública y técnicas de cifrado.

En conclusión
Las funciones de hash y la criptografía de clave pública son el núcleo
de los sistemas de firma digital, que ahora se aplican a una amplia
gama de casos de uso. Si se implementan correctamente, las firmas
digitales pueden aumentar la seguridad, garantizar la integridad y
facilitar la autenticación de todo tipo de datos digitales.

En el ámbito de blockchain, las firmas digitales se utilizan para firmar


y autorizar transacciones de criptomonedas. Son particularmente
importantes para Bitcoin porque las firmas aseguran que las monedas
solo pueden ser gastadas por las personas que poseen las claves
privadas correspondientes.

Aunque hemos estado utilizando firmas electrónicas y digitales


durante años, todavía hay mucho espacio para crecer. Una gran parte
de la burocracia actual todavía se basa en el papeleo, pero
probablemente veremos una mayor adopción de esquemas de firma
digital a medida que migremos a un sistema más digitalizado.

Entonces, este dinero mágico del internet no pertenece a nadie y usa


algo conocido como criptografía para proteger el sistema. Pero ya
tienes varias aplicaciones que te facilitan los pagos a otras personas,
¿Por qué debería preocuparte?

Es:
Sin restricciones
Nadie puede evitar que uses tus criptomonedas. En cambio, los servicios de pagos
centralizados pueden congelar tus cuentas o evitar que realices transacciones.

Resistente a la censura
Debido a la estructura en que fue diseñada la red, es prácticamente imposible que los
hackers u otros atacantes puedan desactivar la red.

Un método de pago rápido y económico


Al realizar una transacción con alguien que está al otro lado del mundo, tu dinero les
llegará en cuestión de segundos, con una fracción de la comisión que pagas por una
transferencia internacional.

¿Qué sucede con esa ₿ de Bitcoin de la que tanto hablan tus amigos


y familiares? Esa es la criptomoneda original y hasta la fecha sigue
siendo la más popular.

¿Quién inventó el Bitcoin?


Sorprendentemente, nadie sabe quién fue el creador de Bitcoin. Solo
conocemos su alias Satoshi Nakamoto. Satoshi podría ser una sola
persona, un grupo de programadores o si crees en algunas de las
teorías más extrañas puede llegar a ser un extraterrestre o un equipo
secreto del gobierno.
Satoshi publicó un documento de 9 páginas en 2008, detallando como
trabaja el sistema de Bitcoin. Meses después, en 2009, fue lanzado
su software.
Bitcoin proporcionó la base para muchas criptomonedas. Algunos se
basan incluso en el mismo software, mientras tanto, otros adoptaron
un enfoque distinto. Ok, pero ¿Cuál es la diferente entre todas las
criptomonedas?

Hacer una lista de todas las criptomonedas existentes nos tomaría


muchas semanas. Algunos son más rápidos que otros, en cambio
otros ofrecen mayor privacidad, mientras que existen otras más
seguras e incluso más programables que las anteriores.

Existe un dicho muy conocido en el ecosistema cripto: Do Your Own


Research (o por sus siglas, DYOR). No lo decimos para ser groseros
con quién pregunta, sino para ayudarlo. Significa que no debes
confiar en una sola fuente de información si no buscar más allá de lo
que ya sabes.
Antes de invertir tu dinero en cualquier proyecto, asegúrate de
haber investigado lo suficiente.
¡Las criptos no son todas idénticas!

Si estás interesado en conocer más sobre los diferentes tokens y monedas, hemos
recopilado una lista de guías en Binance Academy:

 ¿Qué es Bitcoin? (El rey de las criptomonedas)


 ¿Qué es Ethereum? (La distribución de computadoras)
 ¿Qué es BNB? (La moneda original del exchange)
 Una guía para principiantes acerca de Monero  (Para los aficionados
de la privacidad)
En la próxima sección, hablaremos sobre la tecnología en la cual se
basan la mayoría de las monedas digitales, conocida
como Blockchain.

¿Qué es Blockchain?
No te asustes al escuchar esas conversaciones técnicas que usan
muchas personas al describir la "Blockchain". Una Blockchain es
solamente una base de datos. Tampoco debe ser algo super
avanzado, puedes crearlo incluso en una hoja de cálculos sin
esforzarte en lo más mínimo.

Existen algunos detalles con estas bases de datos. La primera es que


estas blockchains son anexadores. Esto se refiere a que solo
pueden añadir información, en otros términos, no puedes hacer clic
en una celda que ya has agregado anteriormente para eliminarla o
cambiarla.
El segundo es que cada entrada (llamada un bloque) en la base de
datos es encriptada hasta la última entrada. En otros términos, cada
entrada nueva contiene una huella identificadora (hash) proveniente
de la última.
Y... ¡Esto es todo! Así como se registra cada huella en el último
bloque, terminas obteniendo una cadena de bloques consecutiva; o
como le llaman los chicos geniales, una blockchain.

Una blockchain es inmutable: Si alteras un bloque, cambias la


huella... y dado que esa huella se marca en el próximo bloque, el
siguiente bloque también sufre ese cambio y desde la huella marcada
en ese mismo bloque... bueno, ya comprendes el punto. Termina en
un efecto dominó donde cualquier cambio que hagas a la red queda
en evidencia ante la comunidad. No puedes alterar ninguna
información de la cadena sin que todos los que estén dentro (y fuera)
se den cuenta.
¿Es así?
¿Decepcionado? Eso es ser justos. La alternativa ofrecida en este
ecosistema no es diferente a la de un Google Sheets. En ambos
casos puedes descargar los bloques de otras personas en la misma
red para construir una copia exacta de la blockchain en tu
computadora. Eso es lo que hace el software mencionado
anteriormente.

Vamos a suponer que tú y tus amigos Alice, Bob, Carol y Dan están
ejecutando el software. Puedes decir "Quiero enviarle cinco monedas
a Bob", entonces envías dicha información a todos los demás de la
red, pero las monedas no se procesan a Bob al momento.

Carol puede decidir en ese mismo momento enviar otras cinco


monedas a Alice. Ella también envía las instrucciones a la red. En
cualquier momento, un participante puede recopilar todas las
instrucciones que están pendientes y crear un bloque.

Si cualquiera puede hacer un bloque, ¿Qué les impide hacer


trampa?
Es probable que te parezca tentador la idea de crear un bloque que
diga "Bob me pagó un millón de monedas", y comenzar a comprar
Lamborghinis y abrigos de piel de Carol haciendo transacciones con
dinero que no tienes.

Bueno, realmente no funciona así. Debido a algo de criptografía,


teoría del juego y algo llamado algoritmo de consenso, el sistema le
prohíbe gastar dinero que no debes gastar bajo ningún concepto.

¡Conocimiento gratuito sobre la Blockchain!

 ¿Qué es el consenso de algoritmo Blockchain?


 ¿Qué es Proof of Work (PoW)?
 Explicación del doble gasto
 Lateoría del juego y las criptomonedas
 Explicación a la tolerancia de las fallas bizantinas
¿Sabías todo eso y quieres aprender a hacer trading o invertir? Ese
será nuestro siguiente tema, sigue leyendo.

¿Qué es un Algoritmo de
Consenso?
Introducción
Un algoritmo de consenso es un mecanismo que permite a los
usuarios o máquinas coordinarse en un entorno distribuido. Debe
garantizar que todos los agentes del sistema puedan ponerse de
acuerdo respecto a una fuente única de verdad, incluso en el caso de
que algunos de ellos fallen. En otras palabras, el sistema debe
ser tolerante a faltas (ver también Guía sobre Tolerancia a Faltas
Bizantinas).
En un esquema centralizado, una entidad única tiene poder sobre
todo el sistema. En la mayoría de casos, podrá realizar los cambios
que quiera –no existe ningún sistema de gobernanza complejo para
alcanzar consenso entre muchos administradores.

Pero en un esquema descentralizado, la historia cambia por


completo. Digamos que estamos trabajando con una base de datos
distribuida –¿cómo nos ponemos de acuerdo respecto a qué entradas
añadir?

Superar dicho desafío en un entorno en el que extraños no confían


entre sí fue, quizás, el desarrollo más importante que allanó el camino
a las blockchains. En este artículo, analizaremos de qué manera los
algoritmos de consenso resultan vitales para el funcionamiento de las
criptomonedas y libros mayores distribuidos (distributed ledgers).
Algoritmos de consenso y
criptomonedas
En las criptomonedas, los balances de los usuarios se registran en
una base de datos –la blockchain. Resulta esencial que todo el
mundo (o para ser más precisos, cada nodo) mantenga una copia
idéntica de la base de datos. De lo contrario, pronto se acabaría
teniendo información contradictoria, lo que socavaría el propósito
fundamental de la red de la criptomoneda.
La criptografía de clave pública garantiza que los usuarios no puedan
gastarse las monedas de otros. Pero sigue siendo necesaria una
fuente de verdad única en la que los usuarios se apoyen, para poder
determinar si los fondos han sido ya gastados.
Satoshi Nakamoto, el creador de Bitcoin, propuso un sistema Proof of
Work para coordinar a los participantes. En breve, analizaremos cómo
funciona PoW -pero primero, identificaremos algunos de los rasgos
comunes de los múltiples algoritmos de consenso que existen.
En primer lugar, exigiremos a los usuarios que quieran
añadir bloques (los llamaremos validadores) que aporten un stake
(una participación). Dicho stake es algún tipo de valor que el
validador deberá adelantar, y que lo disuadirá de actuar de forma
deshonesta. Si hace trampas, perderá su stake. Ejemplos de stake
incluyen la potencia computacional, criptomonedas o, incluso, la
reputación. 
¿Por qué iban a tomarse la molestia de arriesgar sus propios
recursos? Pues, porque también hay disponible una recompensa.
Habitualmente, ésta consiste en la propia criptomoneda nativa del
protocolo -bajo la forma de comisiones pagadas por los usuarios,
unidades de la criptomoneda recién generadas, o ambas cosas.
La última cosa que necesitamos es transparencia. Debemos ser
capaces de detectar cuándo alguien hace trampas. Idealmente,
debería resultar costoso producir bloques, pero barato para
cualquiera validarlos. Esto garantizará a los usuarios mantener bajo
control a los validadores.

Tipos de algoritmos de consenso

Proof of Work (PoW)

Proof of Work (PoW) es el algoritmo de consenso pionero de las


blockchains. Fue implementado por primera vez en Bitcoin, pero el
concepto en sí existe desde hace cierto tiempo. En Proof of Work, los
validadores (a los que se denomina mineros) someten a hash los
datos que desean añadir, hasta que logran producir una solución
concreta.
Un hash es una serie de letras y números, aparentemente arbitrarios,
que se genera cuando procesas datos a través de una función hash.
Si procesas los mismos datos a través de ella de nuevo, obtendrás
siempre el mismo output. Sin embargo, si cambias tan sólo un
pequeño detalle, el aspecto de tu hash será completamente distinto.
Fijándote en el output, probablemente no podrás determinar qué
información fue introducida en la función. Por ese motivo éstas
resultan útiles para demostrar que conocías un fragmento de
información antes de cierto momento. Puedes entregarle a alguien el
hash, y cuando posteriormente reveles los datos, la persona podrá
procesarlos mediante la función para asegurarse de que el output es
el mismo.

En Proof of Work, el protocolo establece condiciones que determinan


la validez de un bloque. Éste podría decir, por ejemplo, que sólo un
bloque cuyo hash empiece por 00 será válido. La única forma de que
un minero logre crear uno que presente esa combinación, será
procesando a fuerza bruta los inputs. El minero podrá ir ajustando un
parámetro de sus datos para así ir produciendo resultados distintos
en cada prueba, hasta dar con el hash correcto. 
Con las principales blockchains, la barra se establece increíblemente
alta. Para competir con otros mineros, necesitarías un almacén lleno
de hardware de hashing especial (ASIC) para tener la oportunidad de
producir un bloque válido.
Tu stake, al minar, es el costo de estas máquinas y la electricidad
requerida para operarlas. Los ASIC están diseñados para un
propósito, por lo que no tienen uso en aplicaciones fuera de la minería
de criptomonedas. La única forma de recuperar tu inversión inicial es
minando, lo que produce una recompensa significativa si agregas con
éxito un nuevo bloque a la blockchain.
Es trivial que la red verifique que realmente has creado el bloque
correcto. Incluso si has intentado billones de combinaciones para
obtener el hash correcto, solo necesitan ejecutar tus datos a través de
una función una vez. Si tus datos producen un hash válido, serán
aceptados y obtendrás una recompensa. De lo contrario, la red lo
rechazará y habrás perdido tiempo y electricidad por nada.

Proof of Stake (PoS)

Proof of Stake (PoS) se propuso en los primeros días de Bitcoin como


una alternativa a Proof of Work.En un sistema PoS, no existe un
concepto de mineros, hardware especializado o consumo masivo de
energía. Todo lo que necesitas es una PC normal.
Pues no todo. Aún necesitas poner algo de piel en el juego. En PoS,
no presentas un recurso externo (como electricidad o hardware), sino
uno interno: la criptomoneda. Las reglas difieren con cada protocolo,
pero generalmente hay una cantidad mínima de fondos que debes
tener para ser elegible para el staking.
A partir de ahí, puedes bloquear tus fondos en un monedero (no se
pueden mover mientras estás haciendo staking). Por lo general,
estarás de acuerdo con otros validadores sobre qué transacciones
irán al siguiente bloque. En cierto sentido, está apostando por el
bloque que se seleccionará, y el protocolo elegirá uno.
Si tu bloque es seleccionado, recibirás una proporción de las
comisiones de transacción, según tu stake. Cuantos más fondos haya
bloqueados, más ganarás. Pero si intentas hacer trampa al proponer
transacciones no válidas, perderás una parte (o la totalidad) de tu
stake. Por lo tanto, tenemos un mecanismo similar al PoW: actuar
honestamente es más rentable que actuar deshonestamente.
En general, no hay monedas recién creadas como parte de la
recompensa para los validadores. Por lo tanto, la moneda nativa de la
blockchain debe emitirse de alguna otra manera. Esto se puede hacer
a través de una distribución inicial (es decir, una ICO o IEO) o
haciendo que el protocolo se inicie con PoW antes de pasar a PoS.
Hasta la fecha, Proof of stake puro sólo se ha implementado
realmente en criptomonedas más pequeñas. Por lo tanto, no está
claro si puede servir como una alternativa viable a PoW. Si bien
parece teóricamente sólido, será muy diferente en la práctica.

Una vez que PoS se implementa en una red con una gran cantidad de
valor, el sistema se convierte en un campo de juego de teoría de
juegos e incentivos financieros. Cualquier persona con el
conocimiento para "hackear" un sistema PoS probablemente solo lo
haría si pudiera sacar provecho de él; por lo tanto, la única forma de
averiguar si es factible es en una red en vivo.
Pronto veremos PoS probado a gran escala: Casper se implementará
como parte de una serie de actualizaciones a la red Ethereum
(conocidas colectivamente como Ethereum 2.0).

Otros algoritmos de consenso


Proof of Work y Proof of Stake son los algoritmos de consenso más
discutidos. Pero hay una gran variedad de otros, todos con sus
propias ventajas y desventajas. Echa un vistazo a los siguientes
artículos:
 Delayed Proof of Work Explicado
 Leased Proof of Stake Consensus Explicado
 Proof of Authority Explicado
 Proof of Burn Explicado
 Delayed Proof of Stake Explicado
 Consenso Híbrido PoW/PoS explicado

Conclusión
Los mecanismos para lograr el consenso son vitales para el
funcionamiento de los sistemas distribuidos. Muchos creen que la
mayor innovación en Bitcoin fue el uso de Proof of Work para permitir
a los usuarios ponerse de acuerdo sobre un conjunto compartido de
hechos.

Los algoritmos de consenso actuales sustentan no solo los sistemas


de dinero digital, sino también las blockchains que permiten a los
desarrolladores ejecutar código en una red distribuida. Ahora son una
piedra angular de la tecnología blockchain y son fundamentales para
la viabilidad a largo plazo de las diversas redes existentes.

De todos los algoritmos de consenso, Proof of Work sigue siendo la


oferta dominante. Aún no se ha propuesto una alternativa que sea
más confiable y más segura. Dicho esto, hay una enorme cantidad de
investigación y desarrollo en reemplazos para PoW, y es probable
que veamos más de ellos en los próximos años.

¿Qué es Proof of Work


(PoW)?
Proof of Work (habitualmente abreviado como PoW) es un
mecanismo para prevenir double-spends (doble gastos). La mayor
parte de las principales criptomonedas lo utilizan como algoritmo de
consenso -que es, sencillamente, como denominamos a un método
para proteger el libro mayor contable de la criptomoneda.
Proof of Work sería el primer algoritmo de consenso que aparecería y,
a día de hoy, sigue siendo el predominante. Sería presentado
por Satoshi Nakamoto en el white paper de Bitcoin de 2008, pero la
tecnología en sí había sido concebida muchos antes. 
HashCash, de Adam Back, es un ejemplo temprano de algoritmo
Proof of Work, en época previa a la aparición de las criptomonedas.
Al requerir a los emisores ejecutar un mínimo de computación antes
de enviar un correo electrónico, los receptores lograrían mitigar el
spam. El coste de dicha computación sería prácticamente nulo para
un emisor legítimo, pero se incrementaría rápidamente para alguien
que mandara correos electrónicos en masa.

¿Qué es un doble gasto (double-spend)?


Un doble gasto se produce cuando los mismos fondos se gastan más
de una vez. El concepto se usa, casi en exclusiva, en el contexto del
dinero digital –a fin de cuentas, a uno le resultaría muy complicado
poder gastar dos veces el mismo dinero efectivo físico. Cuando pagas
un café a día de hoy, le entregas dinero efectivo al cajero -quien,
probablemente, lo guardará en una máquina registradora. No podrás
dirigirte a la cafetería que hay al otro lado de la calle y pagar otro café
con el mismo billete.
En los esquemas de dinero digital, cabe la posibilidad de que sí
puedas hacerlo. Sin duda, alguna vez habrás duplicado un archivo de
ordenador –sólo tienes que copiarlo y pegarlo. A continuación, podrás
mandar ese mismo archivo por correo electrónico a diez, veinte o
cincuenta personas.
Dado que el dinero digital es sólo información, es necesario impedir
que la gente copie y gaste las mismas unidades en distintos lugares.
De lo contrario, tu moneda se desplomará en poco tiempo.

Para un análisis en profundidad del doble gasto, consulta la Guía


sobre Doble Gasto.

¿Por qué Proof of Work es necesario?


Si has leído nuestra guía sobre tecnología blockchain, sabrás que los
usuarios transmiten transacciones a la red. Dichas transacciones, sin
embargo, no son consideradas inmediatamente válidas. Eso sólo
ocurre una vez son añadidas a la blockchain. 
La blockchain es una gran base de datos que cada usuario puede
consultar, para verificar si los fondos han sido gastados antes.
Imagínatela de esta forma: tú y tres amigos tenéis una planilla. Cada
vez que alguno de los cuatro quiere hacer una transferencia de las
unidades que sea que estéis utilizando, se apunta Alice paga a Bob
cinco unidades, Bob paga a Carol dos unidades, etc.
Existe otra complejidad añadida –cada vez que se realiza una
transacción, se ha de mencionar la transacción de donde provienen
los fondos. Por lo tanto, si Bob le paga a Carol dos unidades, la
entrada tendrá en realidad este aspecto: Bob le paga a Carol dos
unidades provenientes de esta transacción anterior con Alice.
De esta forma, tenemos una manera de rastrear las unidades. Si Bob
intenta realizar otra transacción utilizando las mismas unidades que le
acaba de enviar a Carol, todo el mundo se dará cuenta de manera
inmediata. Y el grupo no permitirá que la transacción se añada al bloc
de notas.

Esto es algo que puede funcionar bien en un grupo pequeño. Todo el


mundo se conoce entre sí, por lo que probablemente se pondrán de
acuerdo respecto a qué amigos deberían añadir transacciones al bloc
de notas. ¿Pero qué ocurre si queremos tener un grupo con 10.000
participantes? La idea del bloc de notas no escala bien, porque nadie
desea confiar en un extraño que se ocupe de gestionarlo.

Aquí es donde Proof of Work entra en juego. Garantiza que los


usuarios no están gastando dinero que no tienen el derecho de
gastar. Y utilizando una combinación de teoría de juegos y
criptografía, un algoritmo PoW permite a cualquiera actualizar la
blockchain en base a las reglas del sistema.

¿Cómo funciona PoW?


Nuestro bloc de notas anterior es la blockchain. Pero en ella, no se
añaden transacciones de una en una –en su lugar, las amontonamos
en bloques. Las transacciones son anunciadas a la red, y a
continuación, los usuarios que crean bloques las incluyen en
un candidate block (bloque candidato). Las transacciones sólo se
considerarán válidas una vez que su bloque candidato se convierta en
un bloque confirmado -lo que significa que ha sido añadido a la
blockchain.
Agregar un bloque, sin embargo, no es barato. Proof of Work le exige
al minero (el usuario que crea el bloque) el gasto de una parte de sus
recursos a cambio de ese privilegio. El recurso en cuestión es
potencia computacional, utilizada para someter a hash los datos del
bloque hasta que se encuentra una solución a un rompecabezas.
Someter a hash los datos del bloque significa pasarlos por
una función de hashing para generar un hash del bloque. El hash del
bloque funciona como una “huella digital” –se trata de una identidad
para tus datos de input, que es única de cada bloque.
Es prácticamente imposible revertir el hash de un bloque para obtener
los datos de input. Si se conoce el input, sin embargo, resulta trivial
confirmar que el hash sea correcto. Sólo se necesita pasar el input
por la función y comprobar que el output sea el mismo.

En Proof of Work, debes proporcionar datos cuyo hash cumpla ciertas


condiciones. Sin embargo, no sabes cómo lograrlo. La única opción
que tienes es pasar tus datos por una función hash y comprobar si se
cumplen las condiciones. Si no es así, deberás modificar tus datos
ligeramente para obtener un hash distinto. Incluso cambiar un único
carácter de tus datos producirá un resultado completamente diferente,
por lo que no hay manera de predecir cómo será un output.

Como resultado, si quieres crear un bloque, estás jugando un juego


de adivinanzas. Por lo general, tomas información sobre todas las
transacciones que deseas agregar y algunos otros datos importantes,
luego lo combinas todo. Pero como tu conjunto de datos no cambiará,
debes agregar una información que sea variable. De lo contrario,
siempre obtendrías el mismo hash que la salida. Estos datos
variables son lo que llamamos un nonce. Es un número que cambiará
con cada intento, por lo que obtendrás un hash diferente cada vez. Y
esto es lo que llamamos minería.
En resumen, la minería es el proceso de recopilar datos de blockchain
y mezclarlos con un nonce hasta que encuentres un hash en
particular. Si encuentras un hash que satisfaga las condiciones
establecidas por el protocolo, tienes derecho a transmitir el nuevo
bloque a la red. En este punto, los otros participantes de la red
actualizan sus blockchains para incluir el nuevo bloque.

Para las principales criptomonedas actuales, las condiciones son


increíblemente difíciles de satisfacer. Cuanto mayor sea la tasa de
hash en la red, más difícil será encontrar un hash válido. Esto se hace
para garantizar que los bloques no se encuentren demasiado rápido.
Como puedes imaginar, tratar de adivinar cantidades masivas de
hashes puede ser costoso con tu computadora. Estás desperdiciando
ciclos computacionales y electricidad. Pero el protocolo
lo recompensará con criptomonedas si encuentras un hash válido.
Recapitulemos lo que sabemos hasta ahora:

 Es costoso para ti minar.


 Eres recompensado si produces un bloque válido.

 Al conocer una entrada, un usuario puede verificar fácilmente su


hash: los usuarios que no son mineros pueden verificar que un
bloque sea válido sin gastar mucha potencia computacional.
Hasta aquí todo bien. Pero, ¿y si tratas de hacer trampa? ¿Qué te
impide poner un montón de transacciones fraudulentas en el bloque y
producir un hash válido?

Ahí es donde entra la criptografía de clave pública. No


profundizaremos en este artículo, pero echa un vistazo a ¿Qué es la
criptografía de clave pública? para una mirada completa. En resumen,
utilizamos algunos trucos criptográficos que permiten a cualquier
usuario verificar si alguien tiene derecho a mover los fondos que
intenta gastar.
Cuando creas una transacción, la firmas. Cualquier persona en la red
puede comparar tu firma con tu clave pública y verificar si coinciden.
También verificarán si realmente puedes gastar tus fondos y que la
suma de tus entradas es mayor que la suma de tus salidas (es decir,
que no estás gastando más de lo que tiene).
Cualquier bloque que incluya una transacción no válida será
rechazado automáticamente por la red. Incluso es costoso intentar
hacer trampa. Perderás tus propios recursos sin ninguna
recompensa.

Ahí radica la belleza de Proof of Work: hace que sea costoso hacer


trampa, pero que sea rentable actuar con honestidad. Cualquier
minero racional buscará ROI, por lo que se espera que se comporten
de una manera que garantice ingresos.
Proof of Work vs. Proof of Stake
Hay muchos algoritmos de consenso, pero uno de los más esperados
es Proof of Stake (PoS). El concepto se remonta a 2011, y se ha
implementado en algunos protocolos más pequeños. Pero aún no se
ha visto la adopción en ninguna de las grandes blockchains.
En los sistemas Proof of Stake, los mineros son reemplazados
por validadores. No hay minería involucrada ni carreras para adivinar
hashes. En cambio, los usuarios se seleccionan al azar: si son
seleccionados, deben proponer (o "forjar") un bloque. Si el bloque es
válido, recibirán una recompensa compuesta por las comisiones de
las transacciones del bloque.
Sin embargo, no se puede seleccionar cualquier usuario: el protocolo
los elige en función de una serie de factores. Para ser elegible, los
participantes deben bloquear un stake, que es una cantidad
predeterminada de la moneda nativa de la blockchain. El stake
funciona como una fianza: así como los acusados aportan una gran
suma de dinero para desincentivarlos de saltarse el juicio, los
validadores bloquean un stake para desincentivar las trampas. Si
actúan deshonestamente, se tomará su stake (o una parte de ella).
Proof of Stake tiene algunos beneficios sobre Proof of Work. La más
notable es la menor huella de carbono, ya que no hay necesidad
de granjas mineras de alta potencia en PoS, la electricidad consumida
es sólo una fracción de la que se consume en PoW. 
Dicho esto, no tiene cerca el historial de PoW. Aunque podría
percibirse como un desperdicio, la minería es el único algoritmo de
consenso que ha demostrado su eficacia a escala. En poco más de
una década, ha asegurado billones de dólares en transacciones. Para
decir con certeza si PoS puede rivalizar con su seguridad, el
replanteo debe probarse adecuadamente en la naturaleza.

Conclusión
Proof of Work fue la solución original al problema del doble gasto y ha
demostrado ser confiable y segura. Bitcoin demostró que no
necesitamos entidades centralizadas para evitar que los mismos
fondos se gasten dos veces. Con el uso inteligente de la criptografía,
las funciones hash y la teoría de juegos, los participantes en un
entorno descentralizado pueden ponerse de acuerdo sobre el estado
de una base de datos financiera.

Teoría de Juegos y
Criptomonedas
¿Qué es la teoría de juegos?

Esencialmente, la teoría de juegos es un método de matemática


aplicada que se utiliza para estudiar el comportamiento humano
basado en la toma racional de decisiones. El "juego" está diseñado
como un entorno interactivo, por lo que los jugadores tienden a actuar
racionalmente cuando responden a las reglas del juego o a la
influencia de otros jugadores.

El concepto se desarrolló inicialmente en economía para investigar


los comportamientos de las empresas, los mercados y los
consumidores, pero ahora se aplica ampliamente en los campos de
estudio de orden. Por lo tanto, los modelos de la teoría de juegos se
pueden utilizar como una herramienta para examinar el
comportamiento potencial de los agentes que interactúan y los
posibles resultados de sus acciones en circunstancias predefinidas.
Los modelos también pueden aplicarse en el amplio estudio de la
política, la sociología, la psicología y la filosofía.
El dilema del prisionero
El dilema del prisionero es uno de los ejemplos más populares de un
modelo de teoría de juegos. Ilustra un escenario en el que 2
delincuentes (A y B) son interrogados después de ser arrestados.
Cada criminal es interrogado en una habitación separada y no puede
comunicarse con el otro.

El fiscal intenta convencer a los criminales para que testifiquen unos


contra otros como una forma de reducir sus cargos. Si A testifica
contra B, queda en libertad y B es arrestado por 3 años (y viceversa).
Sin embargo, si ambos se traicionan y testifican entre sí, ambos son
arrestados por 2 años. Por último, si A y B deciden no traicionar y
permanecer callados, solo son sentenciados a 1 año de prisión por
falta de pruebas suficientes.

Por lo tanto, tendríamos los siguientes resultados posibles (según su


decisión individual):

B traiciona B se queda callado

Ambos encarcelados durante 2 A es libre. B es encarcelado por


A traiciona años. 3 años.

A se queda B es libre. A es encarcelado por


callado 3 años. Ambos encarcelados por 1 año.

Claramente, el mejor escenario para A (o B) es traicionar y ser


liberado, pero eso requeriría que el otro permanezca callado y no hay
manera de predecir qué decisión tomaría el otro. Ante una
recompensa, muchos prisioneros racionales probablemente elegirían
actuar por interés propio y traicionar al otro. Pero si A y B traicionan,
permanecerán 2 años en prisión y ese no es realmente el mejor
resultado. Por lo tanto, la mejor opción para ellos, como pareja, sería
permanecer callados y obtener solo 1 año en lugar de 2.

El dilema del prisionero tiene muchas variantes, pero esta sencilla


historia ilustra la idea de usar modelos de la teoría de juegos para
investigar el comportamiento humano y los posibles resultados
basados en su proceso de toma racional de decisiones.

Teoría de juegos y criptomonedas


Cuando se aplican a las criptomonedas, los modelos de teoría de
juegos juegan un papel importante al diseñar un sistema económico
seguro y que no requiere confianza en terceros, como el de Bitcoin.
La creación de Bitcoin como un sistema de tolerancia a faltas
bizantinas (BFT) es el resultado de una mezcla armoniosa de
criptografía y teoría de juegos.

El uso de la teoría de juegos en el contexto de la criptomoneda es lo


que dio origen al concepto de Cryptoeconomics, que es básicamente
el estudio de la economía de los protocolos de blockchain y las
posibles consecuencias que puede presentar el diseño de estos
protocolos, como resultado de los comportamientos de los
participantes.

También considera el comportamiento de los "agentes externos" que


no son realmente parte del ecosistema, pero que eventualmente
podrían unirse a la red solo para intentar interrumpirla desde dentro.

En otras palabras, Cryptoeconomics examina el comportamiento de


los nodos de la red según los incentivos proporcionados por el
protocolo, considerando las decisiones más racionales y probables.

Dado que la blockchain de Bitcoin está diseñada como un sistema


distribuido, con muchos nodos distribuidos en diferentes ubicaciones,
debe confiar en el acuerdo de estos nodos con respecto a la
validación de transacciones y bloques. Sin embargo, estos nodos no
son realmente capaces de confiar entre sí. Entonces, ¿cómo puede
un sistema así evitar la actividad maliciosa? ¿Cómo puede una
blockchain evitar que se interrumpa por nodos deshonestos?

Una de las características más importantes de la red Bitcoin que la


protege de actividades maliciosas es el algoritmo de consenso de
Proof of Work. Aplica técnicas criptográficas que hacen que el
proceso de minería sea muy costoso y exigente, creando un entorno
de minería altamente competitivo. Por lo tanto, la arquitectura de las
criptomonedas basadas en PoW incentiva a los nodos mineros a
actuar honestamente (para que no se arriesguen a perder los
recursos invertidos). En contraste, cualquier actividad maliciosa es
desalentada y castigada rápidamente. Los nodos mineros que
presentan un comportamiento deshonesto probablemente perderán
mucho dinero y serán expulsados de la red. En consecuencia, la
decisión más probable y racional que debe tomar un minero es actuar
honestamente y mantener segura la blockchain.

Conclusión

La aplicación general de la teoría de juegos es modelar y examinar


cómo se comportan los humanos y tomar decisiones basadas en sus
mentes racionales. Por lo tanto, los modelos de teoría de juegos
siempre deben considerarse al diseñar sistemas distribuidos, como
los de las criptomonedas.

Gracias a una combinación equilibrada de criptografía y teoría de


juegos, el algoritmo de consenso Proof of Work pudo crear la
blockchain de Bitcoin como un sistema económico descentralizado,
que es altamente resistente a los ataques. Lo mismo ocurre con otras
criptomonedas y los conceptos de la teoría de juegos también se
aplican a las cadenas de bloques de PoS. La principal diferencia aquí
es la forma en que una blockchain Proof of Stake se ocupa de las
transacciones y la validación de bloques.

Sin embargo, ten en cuenta que el grado de seguridad y resistencia


que tiene una blockchain depende de su protocolo y está
directamente relacionado con el número de participantes de la red.
Las redes distribuidas más grandes son más confiables que las más
pequeñas.

Tolerancia a faltas
bizantinas explicada
Desde la creación de Bitcoin en 2008, como un sistema de efectivo
electrónico peer-to-peer, se crearon muchas otras criptomonedas,
cada una con un mecanismo particular. Pero una cosa que casi todas
las criptomonedas tienen en común es blockchain como el elemento
central de su arquitectura.
Con pocas excepciones, las blockchains están diseñados
intencionalmente para ser descentralizados, funcionando como un
libro de contabilidad digital que es mantenido por una red distribuida
de nodos de computadora. Por esta razón, la tecnología de
blockchain permitió la creación de sistemas económicos sin
confianza, donde las transacciones financieras transparentes y
confiables podrían ejecutarse sin la necesidad de intermediarios. Se
están adoptando las criptomonedas como una alternativa viable a los
sistemas bancarios y de pago tradicionales, que dependen en gran
medida de la confianza.

Al igual que la mayoría de los sistemas informáticos distribuidos, los


participantes de una red de criptomoneda deben acordar
regularmente el estado actual de la blockchain, y eso es lo que
llamamos logro de consenso. Sin embargo, alcanzar un consenso
sobre redes distribuidas, de una manera segura y confiable, está lejos
de ser una tarea fácil.

Entonces, ¿cómo puede una red distribuida de nodos de


computadora acordar una decisión, si es probable que algunos de los
nodos fallen o actúen de manera deshonesta? Esta es la pregunta
fundamental del llamado problema de los generales bizantinos, que
dio origen al concepto de tolerancia a fallas bizantinas.

¿Que es el problema de los generales


bizantinos?
En pocas palabras, el problema de los generales bizantinos fue
concebido en 1982 como un dilema lógico que ilustra cómo un grupo
de generales bizantinos puede tener problemas de comunicación
cuando intentan ponerse de acuerdo sobre su próximo movimiento.

El dilema supone que cada general tiene su propio ejército y que cada
grupo está situado en diferentes lugares alrededor de la ciudad que
intentan atacar. Los generales deben estar de acuerdo en atacar o
retirarse. No importa si atacan o se retiran, siempre que todos los
generales lleguen a un consenso, es decir, acuerden una decisión
común para ejecutarla en coordinación.

Por lo tanto, podemos considerar los siguientes objetivos:

 Cada general tiene que decidir: atacar o retirarse (sí o no);

 Después de que se toma la decisión, no se puede cambiar;

 Todos los generales deben acordar la misma decisión y


ejecutarla de manera sincronizada.
Los problemas de comunicación mencionados anteriormente están
relacionados con el hecho de que un general solo puede comunicarse
con otro a través de mensajes, que son enviados por un correo. En
consecuencia, el desafío central del problema de los generales
bizantinos es que los mensajes pueden retrasarse, destruirse o
perderse de alguna manera.

Además, incluso si un mensaje se entrega con éxito, uno o más


generales pueden elegir (por cualquier motivo) actuar maliciosamente
y enviar un mensaje fraudulento para confundir a los otros generales,
lo que lleva a un error total.

Si aplicamos el dilema al contexto de blockchains, cada general


representa un nodo de red y los nodos deben alcanzar un consenso
sobre el estado actual del sistema. Dicho de otra manera, la mayoría
de los participantes dentro de una red distribuida tienen que estar de
acuerdo y ejecutar la misma acción para evitar una falla completa.

Por lo tanto, la única forma de lograr un consenso en estos tipos de


sistemas distribuidos es tener al menos ⅔ o más nodos de red
confiables y honestos. Esto significa que si la mayoría de la red
decide actuar maliciosamente, el sistema es susceptible de fallas y
ataques (como el ataque del 51%).

Tolerancia a faltas bizantinas (BFT)


En pocas palabras, la tolerancia a fallas bizantinas (BFT) es la
propiedad de un sistema que puede resistir la clase de fallas
derivadas del problema del dilema de los generales bizantinos. Esto
significa que un sistema BFT puede continuar funcionando incluso si
algunos de los nodos fallan o actúan maliciosamente.

Hay más de una solución posible al Problema de los Generales


Bizantinos y, por lo tanto, múltiples formas de construir un sistema
BFT. Del mismo modo, hay varios enfoques diferentes para que una
blockchain alcance la tolerancia a faltas bizantinas y esto nos lleva a
los llamados algoritmos de consenso.

Algoritmos de Consenso de Blockchain

Podemos definir un algoritmo de consenso como el mecanismo a


través del cual una red de blockchain alcanza un consenso. Las
implementaciones más comunes son la Proof of Work (PoW) y la
Proof of Stake (PoS). Pero tomemos el caso de Bitcoin como ejemplo.

Si bien el protocolo Bitcoin prescribe las reglas primarias del sistema,


el algoritmo de consenso de PoW es lo que define cómo se seguirán
estas reglas para alcanzar el consenso (por ejemplo, durante la
verificación y validación de transacciones).

Si bien el concepto de Proof of Work es más antiguo que las


criptomonedas, Satoshi Nakamoto desarrolló una versión modificada
como un algoritmo que permitió la creación de Bitcoin como un
sistema BFT.

Ten en cuenta que el algoritmo de PoW no es 100% tolerante a las


faltas bizantinas, pero debido al costo del proceso de minería y las
técnicas criptográficas subyacentes, PoW ha demostrado ser una de
las implementaciones más seguras y confiables para redes de
blockchain. En ese sentido, el algoritmo de consenso de Proof of
Work, diseñado por Satoshi Nakamoto, es considerado por muchos
como una de las soluciones más geniales para las faltas bizantinas.

Conclusión
El problema de los generales bizantinos es un dilema intrigante que
eventualmente dio origen a los sistemas BFT, que se están aplicando
ampliamente en varios escenarios. Más allá de la industria de la
blockchain, algunos casos de uso de los sistemas BFT incluyen las
industrias de la aviación, el espacio y la energía nuclear.

Dentro del contexto de la criptomoneda, tener una comunicación de


red eficiente junto con un buen mecanismo de consenso es vital para
cualquier ecosistema de blockchain. Asegurar estos sistemas es un
esfuerzo continuo y los algoritmos de consenso existentes aún deben
superar algunas limitaciones (como la escalabilidad). No obstante,
PoW y PoS son enfoques muy interesantes como los sistemas BFT, y
las aplicaciones potenciales están inspirando una innovación
generalizada.

https://academy.binance.com/es/articles/what-is-blockchain-technology-a-comprehensive-guide-for-
beginners

También podría gustarte