¿Cómo sabe Alice que está recibiendo la dirección correcta?

Digamos que Alice quiere enviarle a Bob algunas monedas. Bob necesita decirle a Alice a dónde enviarlos, por lo que le envía su dirección a Alice. ¿Cómo envía Bob esta dirección para que Alice sepa que la dirección que está recibiendo es de hecho la dirección de Bob y no la de Eve (una espía) que quiere robar las monedas?

¿Cuál es la diferencia entre Bob y Eva? Es decir, ¿qué sabe Alice sobre Bob que hace que Bob sea la persona a la que quiere enviar?

Respuestas (4)

El problema en sí no es específico de Bitcoin per se. Es cuestión de poder verificar el remitente de algunos datos. Las direcciones de Bitcoin solo están diseñadas para ser inmunes a los errores tipográficos (contienen una suma de verificación), pero de lo contrario, el protocolo no hace nada.

Sin embargo, se pueden hacer un par de cosas para asegurarse de que se envíe y reciba una dirección adecuada:

  • Uno puede usar una dirección de vanidad que es difícil de generar y claramente está relacionada con la situación. Usar 1Bob... no sería la mejor opción, pero 1BobEveryman... o 1ThankYouAlice... pueden ser mejores (ejemplos elegidos para mayor claridad, normalmente estaría usando el alfabeto base 58). Por lo general, si se tarda más de un par de minutos en generar una dirección, sabrá que proviene del remitente original o que alguien deliberadamente quiso robar la identidad de Bob (pasando mucho tiempo antes de generar la dirección).
  • Uno puede intentar verificar el historial de la dirección en Bitcoin Block Explorer . Si la dirección se ha utilizado un par de veces, es menos probable que sea falsa. Siendo Eve, probablemente no querría usar la misma dirección para estafar a la gente más de una vez, y generar un historial de transacciones llevaría algún tiempo.
  • Se puede pedir a Bob que proporcione su dirección de Bitcoin envuelta en la firma digital de Bob. El principal problema con esto es asegurar la firma de Bob en primer lugar, que es básicamente el mismo problema que estamos resolviendo ahora.
  • Uno puede buscar la dirección recibida en Internet. Mucha gente tiene la costumbre de incluir la dirección de Bitcoin que usan en lugares como firmas de foros, sus sitios web y similares.
  • Si Alice conoce a Bob, podrían decidir usar alguna información que solo ellos conocen para crear un par de claves ECDSA y usarlo para transmitir Bitcoins. Tal información podría ser, por ejemplo, la película que vieron cuando se conocieron, alguna información de la escuela a la que asistieron, etc. Generalmente, algo que recuerdan y sería difícil de averiguar. Alice puede usar eso como la semilla privada del par de claves, generar la dirección pública para enviar los Bitcoins y realizar la transferencia. Bob tendría que repetir el mismo proceso y retirar Bitcoins por su parte. El principal problema con este enfoque es si Bob y Alice se conocen de antemano y confían en el manejo de claves privadas.
  • Cuando todo lo demás falla, uno siempre puede conocer a Bob en persona y obtener su dirección de esa manera.

Con todo, hay muchas formas de evitar que un hombre en el medio ataque en el escenario descrito.

Bitcoin actualmente no proporciona ninguna protección contra eso. Alice y Bob deberán asegurarse de que su canal de comunicación sea seguro.

Entonces, ¿eso significa que Bob necesitaría revelar su identidad a Alice?
@Alice: Si Bob no le ha revelado su identidad a Alice, ¿por qué le importaría a Alice si le envía dinero a Bob oa Eve? ¿Qué diferencia hace? ¿Qué tiene de especial Bob que lo hace a él a quien ella quiere enviar dinero?
@David Schwartz: La diferencia entre Bob y Eve es que Bob le vende algo a Alice, por ejemplo, calcetines. Bob y Alice quieren permanecer en el anonimato, pero Alice quiere sus calcetines y solo los obtendrá si Bob recibe las monedas. Sé que no hay protección al cliente (es decir, no hay garantía de que si le pagas a la persona correcta definitivamente obtendrás los artículos), pero ¿hay alguna manera de garantizar que al menos le estás pagando a la persona correcta? Lo que realmente estoy preguntando es: ¿cuál es el protocolo para enviar direcciones al transferir una moneda?
@Alice: ¿Cómo sabes que Bob vende calcetines? ¿Por qué método podría saber con certeza que Bob está vendiendo calcetines a un precio particular que no le comunicaría la dirección de Bob? ¿No sabrías que una persona no especificada (que bien podría ser Eve) está vendiendo calcetines? Entonces, enviar a Bob sería tan bueno como enviar a Eve porque, hasta donde usted sabe, ¿alguno de los dos podría estar vendiendo calcetines? Supongo que no entiendo las circunstancias en absoluto. ¿Cómo sabes que hay una "dirección correcta"?
@David Schwartz: No se trata tanto de a quién está enviando ella exactamente. Es más, ¿cómo solicita Alicia una dirección a la que quiere enviar las monedas? Es más una cuestión de: ¿existen medidas para prevenir un ataque MITM?
@Alice: ¿Cómo sabe a quién solicitar la dirección? No entiendo las circunstancias. ¿Cómo sabe Alice que Bob está vendiendo calcetines sin saber la dirección de Bob? Ella solo sabe que alguien está vendiendo calcetines, pero no tiene idea de quién. Entonces la pregunta no tiene nada que ver con Bitcoin, pero es, ¿cómo puede Alicia averiguar quién vende calcetines? (Para mí, la pregunta no tiene sentido). Cuando dices "Estoy vendiendo calcetines, necesito X bitcoins...", puedes poner tu dirección de Bitcoin. Y si no pudieras confiar en esa información, no podrías comprar los calcetines aunque supieras la dirección, ¿verdad?
@David Schwartz: Ahora veo tu punto. ¡Gracias por tu ayuda y paciencia!) :)

El mercado de #bitcoin-otc utiliza la autenticación GPG para protegerse contra esta misma situación.

Debido a que los apodos de irc son vulnerables a la manipulación, la tarea de autenticarse primero con el bot del canal ayuda a garantizar que las comunicaciones provengan verdaderamente del socio comercial previsto.

Este es solo un método para abordar este tema. Hay muchas opciones.

Entonces, ¿es esta una idea similar a las calificaciones del mercado de Amazon, excepto que los usuarios anónimos se autentican centralmente?

Si Alice conoció a Bob a través de su sitio web, https://bobbysox.com/ , entonces puede estar bastante segura de que la dirección que Bob muestra en su sitio es real, siempre que el certificado SSL de Bob se verifique correctamente. Para que Eve pueda jugar a la mujer en el medio, tendría que obtener de alguna manera un certificado para bobbysox.com, o el navegador de Alice le alertará del hecho de que hay un problema con la conexión segura. (Si Alice se da cuenta es otro asunto).

A menudo, así es como las direcciones de Bitcoin se transmiten del comerciante al comprador, a través de conexiones web de capa de conexión segura.

Nota: curiosamente, cuando hago clic en ese enlace que acabo de crear, veo una advertencia: "¡El certificado de seguridad del sitio no es de confianza!"