Carteras HD y reutilización de direcciones

Las billeteras HD crean una serie de direcciones, y luego, cuando una dirección ha recibido una entrada, le dará una nueva dirección que aún no ha recibido entradas.

Entonces, con la idea de que te envíes bitcoins a ti mismo desde un intercambio y tengas diferentes direcciones todo el tiempo en el intercambio y diferentes direcciones en tus billeteras, entonces un observador no podría rastrear la suma de todos tus fondos.

Pero, ¿no se socava todo esto cuando mueve una gran cantidad de bitcoins y la transacción combina bitcoins de todas las direcciones en esa billetera?

¿Cómo se evita esa parte mientras se conserva la capacidad de enviar fondos de manera realista, rápida y conveniente? Entiendo que es posible realizar una transacción para usar solo una dirección determinada para el envío, pero en última instancia, todavía hay un tercero con una dirección a la que quiero enviar bitcoin. Así que tendré que usar varias de mis direcciones para obtener el saldo adecuado.

Esto parece deshacer completamente mi privacidad. No necesariamente del análisis de la cadena de bloques, sino al tener registros de una sola dirección (como la del intercambio).

Por ejemplo, digamos que un intercambio entregó los nombres de usuario a un gobierno. Luego, el gobierno analiza todas las direcciones a las que el usuario envió bitcoins desde el intercambio. Luego, simplemente buscan en la cadena de bloques esa dirección y miran dónde se usó nuevamente para combinar bitcoin con otras direcciones, ya que esto revela que una persona tenía las claves privadas de todas esas direcciones utilizadas. Privacidad socavada.

¿Solución? Puedo imaginar un escenario en el que podría hacer una transacción a la vez en un intercambio diferente, generando nuevas direcciones en mi billetera de intercambio. Incómodo. Pero para algo como un pago bitpay, no veo cómo esto es práctico, a menos que los terceros también me dejen elegir cuántas direcciones generarían para mí.

Respuestas (4)

Como se mencionó, no creo que las billeteras HD sean relevantes para este problema. Incluso con billeteras simples que combinan entradas de múltiples direcciones demuestra que una sola persona era dueña de todas las direcciones incluidas. No estoy seguro de si esto satisfaría sus necesidades específicas de privacidad, pero al menos es una forma sencilla de evitar ese problema:

Suponga que tiene 4 direcciones, A, B, C y D. Desea enviar una transacción que requiere fondos de las 4 sin probar que eran propiedad de la misma persona. Podría generar una cuarta dirección E y, en el transcurso de varios días, combinar todos los valores de dirección en una nueva dirección.

Si bien la cadena de bloques mostraría que los fondos en E provienen de AD, no habría ninguna prueba de que AD fuera propiedad de la misma persona, ya que nunca estuvieron juntos en una sola transacción, y es factible que 4 personas diferentes se hayan transferido. valor a E, en lugar de que la misma persona transfiera valor a E.

Parece factible escribir un cliente que siga esa política de nunca combinar entradas de múltiples direcciones en una sola transacción, lo que al menos permitiría una negación plausible. El usuario podría gestionar plazos en función de sus necesidades, de modo que la combinación podría darse en el plazo de una hora o de un año, dependiendo de la antelación con la que necesite la transacción. También puede agregar algunos pasos intermedios para dividir las cosas un poco más y pasar algunas direcciones adicionales para que sea un poco más difícil de seguir.

Dado que es un libro de contabilidad público, realmente no es un sistema muy anónimo, y lograr el anonimato es difícil sin un mezclador, pero el mayor compromiso para el anonimato es conectar varias direcciones en una sola entrada, por lo que simplemente evitarlo será útil, pero a expensas de la comodidad.

hm sí, un algoritmo para nunca combinar entradas
¿Hay alguna manera de expulsar una dirección de una billetera HD? eliminar una dirección existente de la secuencia de direcciones?
Desafortunadamente no puedo concebir una manera que sea posible. El propósito de una billetera HD es que una sola semilla sea capaz de generar todas las direcciones debajo de ella de manera determinista. Entonces, si una billetera cae debajo del espacio de su semilla, necesitaría deshacer las leyes de las matemáticas para deshacerse de ella. Su mejor apuesta sería generar una nueva semilla y enviar sus monedas allí.
interesante, creo que BIP32, BIP39 y BIP44 deben incluir las mejores prácticas. Veo una variedad de problemas que pueden no ser evidentes. Lo que puede hacer y lo que no puede hacer por usted.

La privacidad es uno de los mitos más comunes sobre Bitcoin. De forma predeterminada, no proporciona anonimato, por muchas razones, incluidas las que ha mencionado. La aplicación de la teoría de grafos en las transacciones puede revelar mucha información, conectar direcciones aparentemente independientes y, por lo tanto, comprometerlas. Bitcoin nunca tuvo la intención de proporcionar anonimato listo para usar, por lo que es difícil culparlo.

Sin embargo, esto no significa que el anonimato sea imposible de lograr. Hay muchos servicios de terceros que se especializan en esto, mezclando sus monedas con las monedas de otras personas, por ejemplo, bitmixer.io . Puede encontrar más servicios de este tipo y usarlos en cadena para un anonimato aún mejor, simplemente busque en Internet mezclador de bitcoin o lavandería de bitcoin .

Nota: el problema de conectar direcciones al mismo propietario no es específico de las billeteras HD, sino que también afecta a las billeteras simples que generan todas las direcciones al azar. Para el observador externo, no hay forma de saber si está utilizando uno u otro, pero esta información no es necesaria para conectar las direcciones una vez que haya realizado una transacción combinando sus entradas.

los mezcladores son inconvenientes, costosos, centralizados, no confiables, contienen registros, el usuario ni el administrador nunca sabrían si el mezclador ha estado comprometido durante años y, en última instancia, aumenta considerablemente el costo de la transacción. en segundo lugar, si esto no se hace antes de que uno busque realizar un pago no vinculable, por ejemplo, a una dirección de bitpay, entonces no podrán combinarse dentro de la ventana de 15 minutos que brinda bitpay.
sí, es esencialmente cierto lo que dices, sin embargo, los mixins de Bitcoin juegan un papel importante, especialmente en los mercados negros, donde la anonimización de las monedas es esencial. Es una práctica común mantener siempre algunas "monedas mixtas" en su billetera, para que pueda usarlas (inmediatamente) cuando las necesite. Puedes aumentar el anonimato usando múltiples mixins seguidos, pero obviamente nunca puedes estar 100% seguro. Bueno, supongo que a Bitcoin le resultaría mucho más difícil obtener reconocimiento legal si fuera anónimo :-)

Cualquiera que sea la respuesta hoy, probablemente no importará en un futuro no muy lejano. La cadena de bloques es un registro público y permanente de las transacciones de todos.

Además del hecho de que uno tendría que ser 100% anónimo para todas y cada una de las transacciones, el 100% del tiempo para permanecer anónimo (cualquiera que sea la solución)... Existe ese registro público permanente de cada una de sus transacciones. Si alguien quiere, eventualmente conectará los puntos de suficientes bases de datos públicas y privadas. Sin mencionar la computación cuántica u otros avances futuros.

Si yo fuera un recaudador de impuestos y quisiera evitar las trampas, crearía un sistema infalible para mantener un registro permanente de cada transacción. Entonces podríamos hacerlo más fácil, rastrear la cadena de bloques y enviar facturas de impuestos mensuales a mis secuaces. ¿No lo pagas? Sus transacciones no se confirmarán. No puedo gastar. Un poco difícil de refutar entonces.

pura conjetura, John, el operador de intercambio, no puede probar que Alice, titular de una cuenta en el intercambio, esté en posesión de una clave privada por la mera existencia de Alice enviando bitcoins de una dirección a la siguiente. si Alice usa diferentes direcciones para cada transacción, simplemente no hay puntos para conectar. Su respuesta sugiere que no tiene idea de cuál es la "amenaza" real de las computadoras cuánticas.
Sí, conjetura. De ahí el 'probablemente'. Mi punto es que pase lo que pase en el futuro, existe este registro permanente de blockchain que se usará para atrapar personas de manera retroactiva. Un vector que conocemos actualmente es la computación cuántica y el potencial para piratear nuestras claves (sin mencionar SSL, etc.). Otro vector sería mezclar su información bancaria con sus bitcoins comprando monedas de alguien como Coinbase. Coinbase podría verse fácilmente obligado a dar información que rastree la compra de mis monedas, conectando los puntos.
Estas perdiendo el punto. Todo el escenario ya considera que esto ya está sucediendo, considere que el intercambio ya tiene esta información, las mejores prácticas del documento técnico de satoshi de 2008 aún contrarrestan esto. solo está escribiendo galimatías al azar por el simple hecho de hacerlo, se trata de desvincular transacciones, donde desvincular es desvincular. No habría que hacer correlaciones, ni cifrar que descifrar.

Completaré los aspectos técnicos donde pueda más tarde hoy, pero en principio lo que está sucediendo es que una clave privada se modifica de tal manera que las claves públicas HD se pueden crear y rastrear en el árbol genealógico, que ambos sabemos.

Pero aquí hay algunas cosas a considerar:

  1. ¿Se puede aislar un pubkey como su clave? Lo más probable es que no, pero suponiendo que sea así, solo se comparte públicamente el hash160. ¿Qué quiere decir que no ha cambiado las semillas de la billetera, por ejemplo?
  2. Suponiendo que 1 sea cierto, invertir SHA256 Y ripemd160 para las coordenadas x/y de su clave pública es ~ imposible, es decir

    clave pública <==A==> hash <=====B===== 0x04 X + Y

          A = base58,     B = SHA256/RIPEMD160
    

    .

  3. La única forma probable de encontrar un enlace entre la clave pública y la clave privada es tener como mínimo la clave privada, e idealmente para un atacante, un conjunto de claves privadas.

sí, pero digamos que tengo 3 pubKeys, con 1 btc cada una. Luego encuentro una clave de bitpay pubKey y para adquirir el bien/servicio debo enviar esa dirección de bitpay 2.5 btc. Cualquier cosa que se me ocurra combinará las transacciones de la clave pública A, B y C, ya sea que lo haga en una transacción o en más de 3 transacciones, dentro del período de tiempo de 15 minutos que permite bitpay.