¿Qué es una "dirección ICAP indirecta"?

El wiki de ethereum tiene una especificación de direcciones ICAP básicas, directas e indirectas. Donde lo básico y lo directo están bien explicados aquí y aquí , tengo problemas para entender cómo funcionan las direcciones ICAP indirectas.

¿Se puede generar una dirección ICAP indirecta a partir de una clave de ethereum hexadecimal sin procesar? Si es así, ¿cómo funciona eso?

¿O está destinado a ser calculado al revés ? ¿Como si tuvieras la dirección primero y calcularas el hexadecimal al revés? Pero, ¿cómo se genera la clave privada asociada de esa manera? ¿Es eso posible?

Respuestas (2)

Las direcciones indirectas funcionan junto con los registros de activos.

De la especificación:

Indirecto

El BBAN para este código cuando sea indirecto será de 16 caracteres y estará compuesto por tres campos:

Identificador de activos, alfanumérico de 3 caracteres (< 16 bits); Identificador de la institución, alfanumérico de 4 caracteres (< 21 bits); Identificador de cliente de la institución, alfanumérico de 9 caracteres (< 47 bits); Incluyendo los cuatro caracteres iniciales, esto conduce a una longitud final de dirección de cuenta de cliente de 20 caracteres, de la forma:

XE81ETHXREGGAVOFYORK

Dividido en:

XE El código de país para Ethereum;

81 La suma de comprobación;

ETH El identificador de activos dentro de la cuenta del cliente; en este caso, "ETH" es el único identificador de activos válido, ya que el contrato de registro base de Ethereum admite solo este activo;

XREG El código de institución de la cuenta; en este caso, el contrato de registro base de Ethereum;

GAVOFYORK El identificador del cliente dentro de la institución; en este caso, un pago directo sin datos adicionales a cualquier dirección principal asociada con el nombre "GAVOFYORK" en el contrato de registro base de Ethereum;

Al enviar una transacción a una dirección ICAP indirecta , ocurrirá lo siguiente:

  • Se consulta el registro del ICAP con el código de la institución. Esto le dará una dirección de contrato para la institución si se encuentra.
  • Se realiza una transacción de contrato específico con la institución que incluye el identificador del cliente.

No creo que esta parte esté completamente especificada todavía, aunque hay una pista en las fuentes web3.js :

Una directdirección ICAP es aquella en la que la dirección hexadecimal de Ethereum está codificada directamente. En otras palabras: dada una dirección ICAP directa, puede hacer algunos cálculos y terminar con la dirección hexadecimal.

Una indirectdirección ICAP no codifica la dirección hexadecimal real. En cambio, se requiere un nivel de direccionamiento indirecto (una búsqueda en la base de datos, por ejemplo) para obtener la dirección hexadecimal.

Durante la creación de la cuenta, la dirección hexadecimal se determina criptográficamente a partir de la clave privada de una cuenta, por lo que no hay forma de comenzar con una dirección hexadecimal deseada y crear una cuenta para ella. Debido a esto, una organización que desee codificar datos visiblemente en la dirección de una cuenta en un formato particular (como se describe en la respuesta de @axic) debe usar el método indirecto.