La propiedad de las criptomonedas como Bitcoin se establece a través de tres elementos principales: claves digitales (públicas y privadas), direcciones y firmas digitales, las cuales crean criptográficamente y son extremadamente seguras.
La criptografía de clave pública es lo que hace posible muchas de las singulares características de Bitcoin, como la confianza descentralizada, la comprobación de la propiedad y el modelo de seguridad de pruebas criptográficas.
La criptografía de clave pública fue creada en 1970 y hasta el día de hoy es la base matemática de la seguridad informática.
Desde entonces se han inventado una serie de funciones matemáticas adicionales que permiten la creación de firmas digitales infalsificables, para las cuales Bitcoin utiliza el algoritmo ECDSA (Elliptic Curve Digital Signature Algorithm) tanto para la creación de las claves públicas y privadas, como para la creación de firmas.
CONTENIDO
¿Qué son las claves digitales privadas y públicas en Bitcoin?
Las claves digitales son las que dan control al acceso de los Bitcoin almacenados en una cartera y para generarlas se utiliza la criptografía de clave pública y en concreto, para Bitcoin, las claves digitales vienen en pares: la clave privada y la clave pública.
Podemos pensar en la clave pública como si fuera el número de una cuenta bancaria y la clave privada como si fuera la clave de acceso secreta a esa cuenta.
La clave pública es usada para recibir Bitcoins, mientras que la clave privada es usada para firmar las transacciones para utilizar esos Bitcoin.
Una clave privada y una clave pública están matemáticamente relacionadas ya que la clave pública deriva de la clave privada.
Ahora bien, es posible crear la clave pública a partir de una clave privada, pero es prácticamente imposible crear la clave privada a partir de una clave pública.
La posesión de ambas claves determina automáticamente el control sobre los Bitcoin que se almacenen en una cartera y por ello es muy importante que la clave privada permanezca siempre bajo el control del propietario de dicha cuenta.
Es importante resaltar también que las claves digitales en Bitcoin son creadas y almacenadas por los usuarios o generadas y administradas por el software de cartera del usuario y por lo tanto, son completamente independientes del protocolo Bitcoin.
La clave privada puede tener esta estructura por ejemplo:
18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725
Ahora, la clave pública se genera desde una clave privada. Una clave pública Bitcoin derivada de la clave privada puede tener este formato por ejemplo:
0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6
Las direcciones Bitcoin
Para poder recibir y enviar Bitcoins necesitamos utilizar todavía dos elementos más que derivan de dichas claves.
Uno de ellos es la dirección Bitcoin, una cadena de alfanumérica que normalmente se genera a partir de las claves (pública y privada) y que podríamos definir como la huella digital de dichas claves.
Como las claves privadas y públicas tienen un formato muy complejo, son modeladas y creadas a partir de un proceso matemático que tiene un formato más gestionable.
Estas versiones de clave pública y privada son llamadas direcciones públicas y privadas.
La dirección privada es la que da acceso a los Bitcoin y la dirección pública es la “cuenta” que podemos compartir con el resto de la red para que nos envíen bitcoins, así como también es una dirección pública la cuenta de otro usuario para indicar en una transacción el receptor de los fondos que enviamos. Veamos unos ejemplos.
Ejemplo de una dirección pública después de haber sido aplicado el proceso matemático de resumen de la clave pública original.
Siempre empiezan con un 1 o 3, siendo el 3 utilizado para direcciones multifirma.
16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM
La dirección privada tiene un formato similar a la pública, pero debe ser secreta y nunca se debe compartir porque cualquiera que la conozca podría retirar esos bitcoins de la dirección pública.
Para poder gastar los Bitcoins de una dirección en particular, debemos además probar su propiedad y para ello necesitamos demostrar que conocemos la clave privada.
Es decir, necesitamos demostrar que conocemos la clave privada de la clave pública a la que se refiere esa dirección Bitcoin.
Y para poder demostrar que conocemos la clave privada sin revelarla públicamente es para lo que se utiliza la firma digital, incluida en el campo scriptSign de la transacción.
Firma digital en Bitcoin
Las firmas digitales son elementos criptográficos que se calculan a partir de la clave privada y de la información incluida en la propia transacción.
Gracias a ello es posible que una clave pública pueda usarse para verificar que dicha firma se ha creado usando la clave privada correspondiente.
Además, como las firmas se calculan utilizando la clave privada y de la información incluida en la propia transacción, esto permiten demostrar además del conocimiento de la clave privada, que el poseedor de la misma y por lo tanto el dueño de esos Bitcoins, confirma los datos de dicha transacción.
Por lo tanto, cada firma es solamente válida para una transacción específica.
El dueño de la clave privada puede firmar una transacción y gastar esos Bitcoin sin preocuparse de que su clave privada sea revelada porque la clave privada nunca es expuesta públicamente.
La firma y la clave pública de la dirección de la que se envían los Bitcoin se añaden al campo «input» de la transacción.
Esto demuestra que el propietario de la clave privada tiene realmente la intención de efectuar esa transacción y se asegura de que no puede ser alterada.
[irp]
Protocolo ECDSA
Actualmente, el protocolo Bitcoin está diseñado para que las claves y firmas se creen a través del esquema criptográfico conocido como Elliptic Curve Digital Signature Algorithm (ECDSA) que es una variante del algoritmo DSA que emplea operaciones sobre puntos de curvas elípticas lo que le brinda la misma seguridad que DSA pero con números de menor tamaño, es decir, claves más pequeñas e igual de seguras.
Pero que en el caso de Bitcoin era importante, ya que reduce los requisitos de almacenamiento y de transmisión y con ello facilita el manejo da las claves.