¿Se agota una clave privada cuando se envía parte de los bitcoins que controla?

Aquí está mi comprensión actual de Bitcoin:

Tengo 10 bitcoins en mi billetera.

Si envío 5 bitcoins a otra persona, estoy enviando la clave privada de mi billetera a la dirección de clave pública de alguien.

Esos se combinan en una nueva transacción que luego es confirmada por los mineros. Los mineros confirman que soy dueño de los bitcoins al verificar mi clave privada y que la clave pública del receptor es válida.

Luego, los mineros crean una nueva clave privada que se envía a la billetera del receptor.

Sobre una base simple de Verdadero/Falso, ¿es correcto todo lo que he dicho hasta ahora?

Si es así, ¿qué sucede con los 5 bitcoins restantes en mi billetera? ¿Obtienen mágicamente una nueva clave privada, o qué? ¿Cómo sabe mi billetera cuántos me quedan y cómo los bitcoins restantes obtienen una nueva identidad?

Edité el título para reflejar mejor tu pregunta, espero que esté bien. Voy a publicar una respuesta para usted en un segundo.
No creo que esto sea un duplicado de ninguno de los dos, ni creo que sea una mala pregunta. Creo que es una simple cuestión de saber cómo funcionan las claves públicas y privadas en Bitcoin. Por favor, no vote negativamente: no es culpa del usuario 4710 que no esté versado en los detalles de la criptografía de clave pública. Mi respuesta estará disponible en breve.
-1 no voto para cerrar, pero la forma en que está redactada es tan confusa que no creo que sea bueno tener esa pregunta, hasta que se haya editado a algo mejor (lo que puede ayudar a futuros visitantes, en lugar de confundir a ellos).
@Lohoris, ¿qué encontraste confuso al respecto?
@eMansipater casi todo, necesitaría una nueva redacción completa, desde cero, para convertirse en una buena publicación, en mi humilde opinión.
Es muy legible para mí. ¿Quieres decir simplemente por todas las suposiciones incorrectas? Esa, para mí, es la cuestión.
@Lohoris He editado la pregunta. ¿Mi edición se ocupa de tus preocupaciones? Si no, siento que solo está diciendo que es una mala pregunta debido al bajo nivel de comprensión demostrado. La falta de comprensión nunca debe considerarse un delito en Stack Exchange, solo el hecho de no expresar esa falta de comprensión como una pregunta útil y que se pueda responder. Este parece un concepto erróneo perfectamente razonable, preguntado claramente. ¡No muerdan a los novatos, gente! Los usuarios de este intercambio de pila no deberían ser criptógrafos antes de que se les permita hacer preguntas.
@eMansipater ok, ahora está más claro. Supongo que fue la combinación de mala escritura + pregunta de novato lo que me impidió entender lo que estaba preguntando. No hay problema con las preguntas de novato, simplemente no pude entender de qué estaba hablando.

Respuestas (3)

Falso, como lo describió aquí, porque las claves privadas y públicas funcionan de manera un poco diferente a eso . Las matemáticas subyacentes son complicadas, pero intentaré dar una explicación de sentido común en el lenguaje cotidiano.

Imagina que hubiera un metal especial llamado Cryptonium, más duro que cualquier otro en la tierra y completamente indestructible. Nadie más sabe que existe, y mucho menos cómo hacer cosas con él. Digamos también que tienes una máquina especial que puede hacer placas con Cryptonium, con letras en relieve que dicen lo que quieras. Obviamente, mantendría la existencia de esta máquina de fabricación de placas en un secreto muy bien guardado . Probablemente ni siquiera querrías que nadie supiera que eras tú quien lo poseía. Pero aún desea compartir este emocionante descubrimiento con el mundo, por lo que produce en secreto un mensaje que dice "¡He aquí, un metal nuevo e indestructible!" Luego, a altas horas de la noche, te cuelas en el centro de la ciudad y colocas la placa de Cryptonium en la plaza del pueblo.

Al día siguiente, todos se reúnen en la plaza del pueblo para maravillarse ante esta increíble placa nueva. Se turnan para golpearlo con las cosas más duras, afiladas y pesadas que pueden encontrar, y la placa permanece perfectamente intacta. "Efectivamente", piensan, "es indestructible".

Decides usar la máquina secreta para escribir más cosas, ayudar a la gente del pueblo y gradualmente ganarte una reputación como una fuente confiable y confiable, aunque nadie sepa quién eres. Pero unos meses después sucede algo terrible. ¡ Nuevas placas comienzan a aparecer en la ciudad durante la noche, y son falsas! ¡Alguien más se está aprovechando de tu reputación para difundir mensajes falsos y engañosos! Por supuesto, no tienen su máquina especial: están haciendo sus placas de platino, y es casi indestructible. Pero los dos metales tienen el mismo aspecto y la gente del pueblo no nota la diferencia. ¿Qué vas a hacer?

Podrías anunciarte a la gente del pueblo, mostrarles la máquina y decirles que las nuevas placas son falsas. Puede que te crean, pero tu máquina ya no será un secreto. Entonces, en cambio, haces algo realmente inteligente. Usas la máquina para hacer una pequeña placa cuadrada en forma de cabeza de martillo. En la placa, pones el mensaje "Este martillo destruirá todas las placas falsas". Luego, colocas un mango en la cabeza del martillo que has hecho y lo dejas en el centro de la ciudad la noche siguiente.

Ahora, la gente del pueblo puede simplemente usar el martillo para romper todas las placas de platino falsas. Efectivamente, los mensajes falsos y engañosos se destruyen fácilmente, mientras que los que ha producido son capaces de resistir la fuerza del martillo. Tu reputación está preservada y tu secreto nunca fue revelado . Juntos, el martillo, la máquina secreta y las placas forman un sistema imbatible que te permite enviar mensajes que solo podrían haber venido de ti, sin revelar quién eres realmente. No está mal, ¿eh?

En muchos sentidos , la criptografía de clave pública funciona como nuestro metal Cryptonium imaginario . Se compone de tres partes y brinda a otras personas una manera de estar seguros de que un mensaje proviene de usted sin tener que revelar su identidad o su forma secreta de hacer mensajes. Al igual que el sistema Cryptonium, necesita los tres componentes para que el sistema funcione. Estas tres partes son su clave pública, su clave privada y sus firmas (que puede hacer tantas como quiera, firmando todos los mensajes diferentes). En nuestra historia, la clave privada es como la máquina secreta, la clave pública es como el martillo, y las firmas como las placas. En realidad, la criptografía de clave pública es más compleja de lo que he descrito aquí, y si desea obtener más información al respecto, puede consultareste curso de Khan Academy . Sin embargo, este ejemplo debería ser lo suficientemente bueno para comprender cómo se usan las claves públicas y privadas en Bitcoin.

Primero, nadie más ve tu clave privada . En cambio, al igual que la máquina secreta, usa su clave privada para hacer firmas (como las placas) de las que la gente puede estar segura de que proviene de usted. Cada persona (y cada dirección de bitcoin) tiene una clave pública y una privada, que comparten una relación matemática especial, y la clave pública (como el martillo) es lo que otras personas pueden usar para verificar que sus firmas son reales. Cuando envía una transacción de Bitcoin, no regala su máquina secreta, solo la usa para enviar un mensaje.diciendo a quién le estás dando los bitcoins. Este mensaje firmado, o firma, no pudo provenir de nadie más que del propietario de la dirección, por lo que todos saben que la transacción es real.

En segundo lugar, las claves privadas no provienen de los mineros, provienen de usted . Usted es quien elige en secreto una clave privada aleatoria (el software de Bitcoin lo hace por usted), y esa clave privada se usó para averiguar su dirección (que es básicamente una versión de su clave pública) antes de que alguien la enviara alguna vez. bitcoins Los mineros nunca lo tienen para empezar. Solo ven sus transacciones (firmas) y su dirección de recepción (clave pública).

Finalmente, solo para confundir un poco las cosas, debe usar una transacción completa a la vez. Entonces, si alguien le envió 10 bitcoins y desea enviarle a otra persona 5 de ellos, en realidad envía una transacción que toma los 10 que recibió, envía 5 a la dirección de la otra persona y 5 a otra dirección propia ( esto se llama el "cambio" de su transacción). Bitcoin hace esto para que otras personas no puedan saber qué parte de la transacción es lo que enviaste y qué parte es el cambio (nadie sabe qué direcciones pertenecen a la misma persona). Ayuda a proteger su privacidad. Pero si quisieras, podrías enviar el cambio a la misma dirección, porque tus claves privadas aún están seguras. Solo tendría que usar un cliente diferente al cliente de Bitcoin predeterminado, porque no tiene una forma de hacerlo.Todo esto sucede detrás de escena, por lo que su saldo aún se muestra como 5 bitcoins después de hacer esto . Bitcoin almacena todas sus diferentes direcciones y claves privadas en algo llamado billetera , y el saldo es el total de bitcoins que posee la billetera. ¡Así que mantiene todo simple desde el principio!

¿Tener sentido? Espero que no haya sido demasiado largo, pero quería intentar aclarar el tema de la clave pública/privada.

¡Muy buena explicación laica!

No. Las transacciones funcionan mediante la firma de ECDSA .

Básicamente, escribes una transacción y la firmas con tu clave privada. Cualquiera que tenga tu clave pública, el mensaje y la firma puede verificar fácilmente que el propietario de dicha clave pública es quien firmó el mensaje (por otro lado, falsificar una firma es extremadamente difícil)

Las transacciones pueden tener múltiples entradas: en tal caso, se requiere una firma de cada clave de entrada.

También pueden tener múltiples salidas. Generalmente, una transacción agota todo el dinero de las entradas. Todo el cambio se devuelve a las entradas, por lo que una transacción puede tener las entradas A (saldo 10 BTC) y B (saldo 15 BTC), con una salida de 20 BTC a C (propiedad de otra persona) y una salida de 5 BTC. volver a A. La mayoría de los clientes por defecto crean "cambiar direcciones" (o le dan la opción de hacerlo). En tales casos, se crea una nueva dirección D para recibir el cambio de la transacción, y la nueva dirección se agrega a su billetera (esto lo mantiene un poco más anónimo. Sus claves de remitente pueden estar conectadas a su identidad si hubo alguna no -intercambio anónimo involucrado en la transacción. La clave de cambio no necesariamente estará conectada con usted)

Todos los bitcoins que no se contabilizan en una transacción se consideran "tarifas de transacción" y son un incentivo adicional para que el minero los cobre.

Ver también: ¿Por qué hay dos salidas de transacción cuando se envía a una dirección?

eso no está bien. por defecto, el cambio se devuelve automáticamente a una nueva dirección. tiene que dirigir específicamente el cambio a una dirección de origen.
@joe: Eso está en el cliente oficial de bitcoin. El protocolo no especifica tal cosa.
No tengo conocimiento de ningún cliente que devuelva el cambio a la dirección de origen de forma predeterminada.
@joe: ..entonces? Nunca mencioné eso en mi respuesta. Sin embargo, es una opción en algunos desactivar el cambio de dirección.
dijiste que un tx "típico" devolverá el cambio que se origina en A a A. eso es incorrecto ya que, de manera predeterminada, todos los clientes que conozco envían el cambio a una nueva dirección D y la mayoría de las personas no se molestan o ni siquiera saben acerca de devolver el cambio de vuelta a su dirección de origen.
@joe: ¿Arreglado, feliz? Estaba hablando del protocolo, no de la implementación. Cambiar las direcciones es una característica del cliente, no del protocolo.
@joe AFAIK, el cliente de Android "bitcoin spinner" devuelve el cambio a la dirección de origen.
@wump eso es b/c en Spinner solo hay un par de claves, por lo que no es posible devolver el cambio a una dirección diferente.

La respuesta corta es No.

no se crea ninguna dirección nueva. Bitcoin simplemente se da cuenta de que el saldo de la clave privada anterior se deduce en 5 bitcoins.