Como dice el diseño de Ethereum Rationale :
Tamaño de palabra de 32 bytes: la alternativa son palabras de 4 u 8 bytes, como en la mayoría de las otras arquitecturas, o ilimitadas, como en Bitcoin. Las palabras de 4 u 8 bytes son demasiado restrictivas para almacenar direcciones y valores grandes para cálculos criptográficos, y los valores ilimitados son demasiado difíciles para crear un modelo de gas seguro. 32 bytes es ideal porque es lo suficientemente grande como para almacenar valores de 32 bytes comunes en muchas implementaciones criptográficas, así como direcciones (y brinda la capacidad de empaquetar direcciones y valores en un solo índice de almacenamiento como una optimización), pero no tan grande como para ser extremadamente ineficiente.
Pero la cosa es:
Piénselo, si tiene que iterar una matriz de datos de 32 o 64 bits y los bloques de memoria EVM son de 256 bits, es un trabajo adicional para la CPU hacer los cálculos y se pierde mucho tiempo.
Si cree que esto sería una posible mejora, ¿hay alguna iniciativa o EIP abierta? no he visto nada
Gracias.
Tendrás varios problemas
Si mantiene su almacenamiento en 256 bits, será más complejo acceder. Necesita palabras de 4 x 64 bits para dirigirse a una ranura de almacenamiento. Todas las operaciones tendrán que convertir 256 bits a 64 bits. Su EVM será bastante complejo de implementar y auditar.
Si cambia el almacenamiento para usar 64 bits, entonces su EVM será más simple, pero el almacenamiento es mucho más pequeño y las colisiones son mucho más probables.
No puede representar direcciones de forma nativa. Las direcciones son de 20 bytes y necesitará registros de 3 x 64 bits.
Necesita compatibilidad con versiones anteriores de contratos antiguos y tendrá que implementar algún tipo de traductor.
La CPU no es el cuello de botella. Claro que hay mejores máquinas virtuales (y hay investigaciones sobre cómo reemplazarlas con WASM), pero la implementación actual hace su trabajo correctamente.
El tema más importante es IO, cada transacción tiene un par de modificaciones del estado de Ethereum World. Y un bloque tiene alrededor de cien transacciones, y se genera un bloque cada 15 segundos.
Por supuesto, es difícil decirlo con seguridad, pero mi intuición es que el cuello de botella no es el tamaño de las palabras. El cuello de botella es la imposición deliberada del tiempo de bloque de 14 segundos. El tiempo de bloque es un parámetro que los diseñadores originales eligieron para obligar a los mineros a gastar energía en forma de electricidad. Incluso si optimizaste en otra parte del sistema, esos 14 segundos no desaparecerían, por lo que la optimización no se manifestaría.
torre
bool
tipo desperdicie 255 bits me vuelve loco.ismael
torre
torre
ismael
torre