¿Cuál es la relación entre una clave privada / clave pública / dirección de Bitcoin? Veo que se genera un par clave privada/clave pública, pero ¿existe la posibilidad de generar una clave privada ya en uso? Y, ¿también asumo que una dirección de billetera es una dirección de bitcoin? ¿Cada dirección de billetera tiene una relación uno a uno con una clave privada?
Gracias
Las billeteras antiguas usaban una clave privada generada aleatoriamente por la billetera cuando se ejecutaba por primera vez.
En carteras modernas "deterministas jerárquicas" (HD). Una clave privada se genera aleatoriamente o se deriva de una frase llamada frase inicial o frase de recuperación, que a su vez se genera a partir de un número aleatorio. Luego, muchas otras claves privadas se generan a partir de esto utilizando una "ruta de derivación" que puede diferir entre diferentes marcas de billetera. La ruta de derivación la eligen los desarrolladores y algunos desarrolladores diferentes eligieron diferentes rutas de derivación. Esto afecta la recuperación de la billetera.
Se genera una clave pública a partir de (¿junto con?) cada clave privada.
Las direcciones se construyen a partir de claves públicas para ciertos tipos comunes de transacciones. No todas las transacciones involucran direcciones.
Los tipos más comunes de transacciones crean direcciones como un prefijo seguido de un hash de una clave pública seguido de una suma de verificación (para que se puedan detectar errores de tipeo).
Debido a que las billeteras HD generan una nueva dirección para cada transacción, detrás de escena están utilizando la ruta de derivación fija para generar nuevas claves privadas y públicas a partir de las cuales crear la dirección.
Entonces, las billeteras HD tienen muchas direcciones, no es sensato pensar en una "dirección de billetera".
¿Cuál es la relación entre una clave privada / clave pública / dirección de Bitcoin?
Algo no del todo diferente a esto:
entropy --> random number --> phrase --> private key --> public key --> address
| ^ |
'------------------------' +--> private key --> pubkey --> addr
+--> private key --> pubkey --> addr
:
'--> private key --> pubkey --> addr
¿Existe la posibilidad de generar una clave privada ya en uso?
Es tan probable como que tu casa se transforme espontáneamente en una maceta de petunias. Lo que los físicos podrían decirle es teóricamente posible pero nunca va a ocurrir debido a su improbabilidad. El punto es que estamos hablando de probabilidades estadísticas que involucran números que son mucho más vastos de lo que la mayoría de nosotros tenemos la esperanza de comprender porque son mucho más grandes que cualquier número que nos encontremos de forma rutinaria o que podamos imaginar.
Y, ¿también asumo que una dirección de billetera es una dirección de bitcoin?
Sí.
¿Cada dirección de billetera tiene una relación uno a uno con una clave privada?
Hasta el momento si.
Se pueden inventar nuevos tipos de transacciones e imagino que se podrían inventar nuevos tipos de direcciones.
Con el algoritmo de firma digital de curva elíptica (ECDSA), la clave privada se usa para generar la clave pública, luego se aplica una función hash segura a la clave pública y se agrega una suma de verificación para producir una dirección de bitcoin con formato Base58.
Una colisión de claves privadas es teóricamente posible, pero prácticamente imposible debido a la gran cantidad de ellas disponibles en la red (cuatrillones+).
¿Cuál es la relación entre una clave privada / clave pública / dirección de Bitcoin?
La clave pública (un punto de curva) es igual al generador (un punto de curva fijo) multiplicado por la clave privada (un número entero).
Hay varios tipos diferentes de direcciones. Pero, un tipo común de dirección es un hash codificado de la clave pública. (En la práctica, lo que se codifica es la representación de bytes de la coordenada x de la clave pública con 0x02 o 0x03 agregados al frente para dar cuenta del signo de la coordenada y, y además hay algunos datos de suma de verificación, solo otro tipo de hash: agregado antes de la codificación).
¿Existe la posibilidad de generar una clave privada ya en uso?
Sí hay. Por ejemplo, si elige que su clave privada sea el número 1, entonces habrá elegido una clave privada incorrecta (la clave privada 1 ya está en uso, ¡vea si puede encontrarla!).
However, if you choose your private key at random from integers greater than zero and less than 115792089237316195423570985008687907852837564279074904382605163141518161494337, then you will have a valid key and the chance of a key collision is very very low (because 115792089237316195423570985008687907852837564279074904382605163141518161494337 is very very large).
Una clave privada es un número entero k
del rango (0, n ), 0 y n excluidos, donde n es el orden del generador G
, que es 0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141, un número ligeramente menor que 2 256 . La clave pública K
es el punto de la curva elíptica correspondiente en secp256k1: K = k×G
, donde G
es el punto base o generador de secp256k1.
Una dirección Pay to Public Key Hash (P2PKH) se deriva de la clave pública aplicando primero un hash SHA256 y luego un hash RIPEMD-160. Luego, la dirección se codifica con Base58Check. Esto significa que solo hay 2 160 direcciones para aproximadamente 2 256 claves privadas. Por lo tanto, aproximadamente 2 96 claves privadas se asignan a cada dirección. Dado que no existe un registro central de direcciones después de que se generan, no existe un mecanismo para evitar colisiones de claves, pero como ya explicó Travis , el tamaño del espacio numérico hace que las colisiones sean astronómicamente improbables. La pregunta ¿Cada dirección de Bitcoin es única? entra en más detalles.
Por ahora, hay varios tipos de direcciones diferentes que se pueden derivar de las mismas claves privadas. Estrictamente hablando, puede haber múltiples direcciones asociadas con la misma clave privada, pero para la mayoría de los propósitos prácticos, puede asumir que cada dirección es única y tiene una relación de uno a uno con una clave privada.
Sin más contexto, tomaría "dirección de billetera" y "dirección de bitcoin" para referirse al mismo concepto.
muro