¿Es posible saber si una dirección es mist, mew o parity?

¿Cómo puedo saber si una dirección es de Mist, MyEthereumWallet o Parity? ¿Hay alguna manera de saber? ¿Están codificados de manera diferente?

No, no hay manera de diferenciar. Todas las direcciones se generan de la misma manera a partir de una clave privada. Las claves privadas son 256 bits aleatorios. Se puede generar una clave privada a partir de palabras semilla, que tiene aproximadamente 256 bits aleatorios.
No es realmente cierto. Mira mi respuesta a continuación :)

Respuestas (1)

TL; DR: Más o menos.

Como Ismael señala anteriormente, las claves son aleatorias y todos los clientes siguen los mismos estándares básicos, lo que significa que poder saber qué cliente generó una dirección no es una característica prevista de las direcciones. Desde la perspectiva de la red, todas las direcciones se crean de la misma manera y no contienen metadatos sobre su procedencia.

Sin embargo , esta no es toda la historia. Si hurga en la red, notará una cantidad significativa de cuentas que comienzan con "0x00", como:

"0x00A85d2d62E1851ad5702e31619B10c7E4308522"

Esto puede ocurrir por casualidad, con una probabilidad de 1 en 256 de obtener dos ceros hexadecimales al principio de la dirección de su cuenta cuando la genera. Pero los clientes de Parity y CPP-Ethereum en realidad crean todas las cuentas como esta a propósito , para que sean lo suficientemente cortas como para usarlas con el Número de cuenta bancaria internacional o sistema IBAN. Ciertas otras bibliotecas también son "compatibles con IBAN". No todas las direcciones que comienzan con dos ceros fueron creadas por Parity o esas otras bibliotecas, pero a menos que esto se haga a propósito, solo 1 de cada 256 cuentas comenzará de esa manera. Por lo tanto, la mayoría de las direcciones que comienzan con dos ceros fueron creadas por Parity, por CPP-Ethereum o por una de las bibliotecas compatibles con IBAN.

¡Y eso es solo el comienzo! De forma predeterminada, Mist implementa un determinado "contrato de billetera" en el que los usuarios almacenan sus fondos y tokens, en lugar de simplemente almacenarlos directamente en una cuenta controlada por su clave privada. La implementación y el código de este contrato son visibles públicamente y son un fuerte indicador de que un usuario está usando Mist.

Además, diferentes clientes tienen diferentes formas de decidir qué tarifa establecer. Algunos clientes usan una determinada tasa de mercado para determinar qué tarifas deben cambiar constantemente, mientras que otros usan solo una tarifa fija una y otra vez, o permiten que el usuario establezca su propia tarifa. Nuevamente, esto puede proporcionar alguna evidencia sobre qué software de billetera está utilizando un usuario para enviar transacciones. Y otros tipos de metadatos pueden permitir obtener más información (aunque no tanta como en Bitcoin, donde el sistema UTXO puede ser manejado de muchas maneras diferentes por muchos clientes diferentes).

¡Combinando todas estas cosas juntas, en realidad hay una posibilidad razonable de que pueda determinar qué cliente / billetera creó una dirección determinada!

Resumir:

  • No, no hay ninguna codificación diferente de direcciones por cliente
  • La mayoría, pero no todas, las direcciones que comienzan con "0x00" fueron generadas por Parity, CPP-Ethereum o ciertas bibliotecas específicas "compatibles con IBAN".
  • Mist implementa un cierto "contrato de billetera" para los usuarios de forma predeterminada, cuyo código es visible en la cadena de bloques
  • Las tarifas y otra información contenida involuntariamente en las transacciones a menudo pueden ofrecer más pistas sobre qué software de billetera está usando un usuario.
  • La recopilación de este tipo de información a veces puede decirle qué cliente/billetera está usando un usuario.
Tenga en cuenta que CPP-Ethereum genera direcciones similares a Parity.