¿Cómo se debe intentar verificar a quién pertenece una determinada dirección de Bitcoin?

Digamos que tengo un sitio web que muestra una gran cantidad de direcciones públicas de Bitcoin y quiero dar la opción a cualquier persona que posea una dirección determinada para que la verifique automáticamente.

Suponiendo que uno no debería confiar en nadie en Internet basándose solo en su palabra, ¿cómo debería uno verificar que una persona posee una dirección determinada? (se prefieren los métodos que pueden ejecutarse de forma autónoma, sin intervención del administrador)

Respuestas (2)

El cliente v0.5 (todavía experimental en el momento de escribir este artículo) admite una función en la que puede firmar un mensaje de texto con una clave privada.

Entonces podrías: a) tener un botón de "registro" al lado de la dirección. b) proporcionar al usuario un mensaje para firmar que incluye alguna información de identificación (nombre de cuenta, dirección de correo electrónico, etc.) y la dirección. c) el usuario ejecutará bitcoind signmessage "" d) esto firmará el mensaje con la clave privada del usuario.

Solo un usuario que tenga acceso a la clave privada correspondiente a la dirección en cuestión podrá generar la firma correcta. Piense en ello como algo similar a una transacción de Bitcoin, pero no se publica en la red de Bitcoin e implica ningún mensaje de texto.

Eligius usa este método para vincular las direcciones de pago de NMC a las direcciones de pago de BTC para su grupo.

http://eligio.st/

Obviamente, esto tendrá más valor una vez que se publique Bitcoind v0.05.

Esa es una característica genial. ¿Existe también el "opuesto" (cifrar un mensaje con la clave pública de otra persona)? La clave pública no se puede derivar de la dirección de bitcoin, pero se incluye en la cadena de bloques una vez que se ha utilizado esa dirección, por lo que dicha función podría usarse para enviar mensajes confidenciales a alguien que le haya enviado a usted (o a alguien) bitcoins antes.
@Thilo No sé si esa funcionalidad está incluida actualmente, pero si no, no hay razón para que no se pueda incluir en una versión futura. Firmar un mensaje es simplemente cifrar un hash del mensaje con la clave privada (para que pueda descifrarse con la clave pública y verificarse). Si eso se puede hacer, cifrar todo el mensaje con clave pública (para que se pueda descifrar con clave privada) es ciertamente posible.
Para RSA, es cierto que firmar equivale a "cifrar con la clave privada"; sin embargo, este no es el caso de los algoritmos basados ​​en DSA como ECDSA. Excepto por el cifrado de billetera agregado en v0.4.0, bitcoin no emplea cifrado en ninguna parte.

Hay algunas otras sugerencias sobre cómo se puede hacer esto sin la función "firmar un mensaje" que viene en v0.5. - http://forum.bitcoin.org/index.php?topic=4411.0

Una sugerencia fue recibir una cantidad trivial pero única y luego enviar esa misma cantidad al remitente. Incómodo, pero posible.