¿Cuál es la necesidad de múltiples claves privadas?

Por lo que entiendo, inicialmente hay una semilla de la que se derivan las claves privadas y de ahí se deriva la clave pública respectiva a cada clave privada.

La clave pública es esencialmente la dirección de la billetera. Así que ahora diga que deseo recibir 10 BTC de Bob. Entonces Bob realiza una transacción "pagando 10 BTC a la dirección de la billetera #####(mío)" y la firma con su clave privada.

Yo (o los validadores para el caso) podemos verificarlo mirando la firma digital con la clave pública de Bob. Y si tengo que enviar 10 BTC a Bob, hago lo mismo que arriba.

Lo que no entiendo es ¿de qué sirve tener varias claves privadas cuando solo una puede ser suficiente? (He leído en alguna parte que las billeteras actúan más como un almacenamiento de claves que de almacenamiento de Bitcoins, por eso la duda).

Además, si hay muchas claves privadas (=> claves públicas => dirección de billetera) pertenecientes a cada transacción, ¿cómo es posible rastrear las transacciones anteriores ya que cada una tiene una dirección diferente?

Respuestas (2)

Por lo que entiendo, inicialmente hay una semilla de la que se derivan las claves privadas y de ahí se deriva la clave pública respectiva a cada clave privada.

Sí, si la billetera sigue BIP 32 (carteras deterministas jerárquicas), entonces este es el caso. Algunos estilos más antiguos de billeteras solo obtendrán nuevas claves aleatorias, pero esto hace que sea más difícil crear copias de seguridad de manera eficiente.

La clave pública es esencialmente la dirección de la billetera.

No del todo: la clave pública se codifica para obtener la dirección pública.

Yo (o los validadores para el caso) podemos verificarlo mirando la firma digital con la clave pública de Bob.

Correcto, la clave pública se incluye en los datos de la transacción para que se pueda verificar la firma.

Nota: debe ser un validador (es decir, ejecutar un nodo que verifique que las transacciones sean válidas); de lo contrario, está confiando en otra persona para que lo haga. Los mineros trabajan para confirmar transacciones, lo cual es diferente de una manera importante.

Lo que no entiendo es ¿de qué sirve tener varias claves privadas cuando solo una puede ser suficiente?

Si solo almacenaste una clave privada, entonces solo estarías usando una dirección, lo cual es muy malo para tu privacidad (y la privacidad de aquellos con quienes realizas transacciones).

He leído en alguna parte que las billeteras actúan más como un almacenamiento de claves que de almacenamiento de Bitcoins, por eso la duda

Eso es verdad. Los bitcoins en sí mismos no se "almacenan en una billetera", sino que su historial se rastrea públicamente, en el libro mayor distribuido de la cadena de bloques. Son solo las claves privadas que permiten que se gaste una cierta cantidad de bitcoin, de las que su aplicación de billetera hará un seguimiento.

Además, si hay muchas claves privadas (=> claves públicas => dirección de billetera) pertenecientes a cada transacción, ¿cómo es posible rastrear las transacciones anteriores ya que cada una tiene una dirección diferente?

Su billetera podrá realizar un seguimiento del historial de sus transacciones sin ningún problema, pero los observadores de terceros no podrán (¡que es el punto! La privacidad es importante).

Sobre el último punto, ¿cómo funciona exactamente? Entiendo que los observadores de terceros pueden seguir todas las direcciones que se utilizan y dónde envían sus bitcoins. ¿Simplemente no sabe quién tiene la clave privada para esas claves/direcciones públicas?
@totalMongot sí, exactamente eso. Las partes de la transacción sabrán qué direcciones son las suyas. Los observadores de terceros pueden ver las direcciones, pero no necesariamente sabrán quién controla/posee cada dirección.
gracias por la respuesta :)

La principal razón para usar varias claves privadas es la privacidad. Supongamos que recibe 1 BTC en la dirección A y desea enviar 0,1 BTC a alguien en la dirección X. (Omitiremos las tarifas de tx para simplificar las matemáticas).

0.1 BTC Address A -> Address X
0.9 BTC Address A -> Address B

Ahora suponga que estaba tratando de ver cualquier actividad de gasto del Usuario en la Dirección A, ¿cómo sabría si posee la Dirección X o la Dirección B? Si devuelve el cambio a la Dirección A, entonces es fácil continuar con el seguimiento de los gastos del usuario después de la primera transacción. Por lo tanto, las aplicaciones de billetera realizan un seguimiento de todas las direcciones de cambio recién generadas (desde que las generó), para que puedan estar al tanto de todos los Bitcoin no gastados del usuario.

Otra razón podría ser administrar varias cuentas con fines contables. BIP32 es un estándar común para generar subcuentas utilizando el mismo par de claves maestras.