Jan Xie AMA: Tercera parte: el sistema de direcciones de Nervos abordado de Nervos Network junio de 2022

Jan: Esta es una pregunta interesante porque tiene algo que ver con el diseño de CKB.

En primer lugar, después de esta actualización de la red principal, el formato de la dirección se unificará en un formato de longitud fija, al menos para la dirección predeterminada. ¿Por qué debo enfatizar la palabra “predeterminado”? Debido a que el formato de dirección utilizado por los desarrolladores y las aplicaciones lo deciden ellos, tienen la libertad de elegir y no hay forma de forzarlo. El formato de la dirección es solo un estándar, y todos son libres de elegir si usar este estándar o no. Lo que ha cambiado esta vez es el estándar por defecto: el problema anterior es que el estándar por defecto contiene dos formatos, una dirección larga y una dirección corta, y el nuevo estándar tiene un solo formato.

Sin embargo, esto no significa que la dirección de la billetera CKB de todas las dApps sea la misma.

Si la dirección no es la misma, no significa necesariamente que la experiencia del usuario vaya a ser mala. Los dos temas son separados e independientes.

Por los comentarios de la comunidad, sabemos la razón por la que la gente odia tanto las direcciones largas como las cortas. Es la experiencia de usuario, que no es buena. Pero este problema no se debe únicamente al formato de la dirección. Por ejemplo, veamos la capa SDK. Suponiendo que nuestro ecosistema esté maduro, el SDK esté completo, Mercury y Lumos estén todos completos, no importa qué formato de dirección haya, estas capas intermedias pueden admitirlo todo. Entonces, para las billeteras, los desarrolladores de dApps y los intercambios, ya que usan SDK como Mercury y Lumos en lugar de CKB RPC directamente, en última instancia, pueden lograr una buena experiencia de usuario.

Si la capa intermedia está bien hecha, es posible que no la sienta, incluso si la capa inferior tiene 100 direcciones. Esta es la ventaja de las capas, porque la capa intermedia puede ocultar los detalles de la capa inferior. El problema anterior es causado por la inmadurez de la capa intermedia ya que los detalles de la capa inferior pueden salir a borbotones. Esta es mi perspectiva del problema.

Entonces, cuando el ecosistema aún es inmaduro, ¿deberíamos esperar a que la capa intermedia madure y encuentre una solución perfecta para resolver este problema, o no deberíamos esperar y simplemente cambiar el formato de dirección a uno unificado?

Discutimos esto con el equipo central y la comunidad, incluidos UniPass, .bit. Finalmente, decidimos cambiar la dirección a una unificada, al menos para solucionar el problema que nos ocupa. De esta manera, no importa si el SDK en la capa intermedia funciona bien o no, al menos se pueden evitar los problemas que encontramos antes.

Pero en el futuro, seguirá habiendo varias direcciones en el CKB, e incluso puede haber direcciones diferentes para cada dApp. Esta es una característica del modelo UTXO. La mala experiencia del usuario causada por múltiples direcciones debe ser resuelta por la capa intermedia. Entonces, cuando diseñemos Mercury y SDK, prestaremos mucha atención para considerar qué tipo de dirección se asignará si sale un nuevo script. Si se mapea la misma dirección, por supuesto que no hay problema. Si se mapea una dirección diferente y se muestra en la superficie, ¿debería saberlo el usuario o no? ¿Cómo lo diseñamos para que los usuarios no se den cuenta de esto y ya no se encuentren con los problemas entre direcciones largas y direcciones cortas? Este es un tema que tenemos que considerar en el futuro.

En resumen, hemos adoptado una solución temporal con la que todos están satisfechos: una dirección unificada con una longitud fija. En el futuro, deberíamos discutir cómo debería evolucionar el formato de la dirección sin dejar de tener una buena experiencia de usuario.

¿Por qué es posible tener varias direcciones? Esto es algo muy interesante. No sé si has usado una billetera bitcoin. Una billetera de Bitcoin verdaderamente auténtica, como Electrum, o la billetera con el cliente oficial, generará muchas direcciones para usted de forma predeterminada. Entonces, ¿por qué las billeteras de bitcoin hacen esto? ¿Esto no causará problemas? Por un lado, esto se debe a que las direcciones y las cuentas son conceptos inherentemente diferentes. Debido a la popularidad de Ethereum, muchas personas no conocen las diferencias entre los dos. En segundo lugar, en realidad hay muchos beneficios al hacerlo, como una mejor protección de la privacidad. Si solo hay una dirección y todas sus actividades están asociadas a esta dirección, es muy fácil averiguar quién es usted con el análisis de big data. Si desea proteger su privacidad, la mejor manera es utilizar una nueva dirección diferente para cada transacción.

No sé si está utilizando una dirección o más direcciones en su billetera al mismo tiempo. De hecho, el sistema de cuentas no es muy bueno en términos de privacidad. Las billeteras de Bitcoin como Electrum cambiarán automáticamente las direcciones todo el tiempo. Una vez que use uno, generará una nueva dirección para usted, y una vez que reciba dinero, también generará una nueva dirección para usted. En el diseño del sistema de Bitcoin, las direcciones y las cuentas son dos conceptos: las cuentas no se corresponden uno a uno con las direcciones en Bitcoin, pero se corresponden uno a uno en Ethereum.

En el diseño de Bitcoin, una cuenta puede tener una cantidad infinita de direcciones. De hecho, podemos hacerlo a través del diseño del sistema. El usuario solo necesita recordar la cuenta. De hecho, no necesita preocuparse si hay 10 direcciones o 100 direcciones correspondientes a su cuenta, siempre que la capa intermedia a continuación pueda ayudarlo a manejarlo automáticamente. Desde la perspectiva de la cuenta, los activos de todas las direcciones están en una sola cuenta, aunque la transferencia y el recibo utilizan direcciones diferentes. Así que la experiencia del usuario es la misma.

La relación entre la dirección y la cuenta que se convierte en uno a uno es un cambio que se ha producido después del éxito de Ethereum. Sin embargo, si puede desvincular la dirección de la cuenta, en realidad hay muchos beneficios, uno de los cuales es la privacidad, como se mencionó anteriormente. Otro beneficio es que debido a que puedo tener diferentes direcciones, mi dirección en sí misma puede codificar información, y esta información codificada puede indicarle a la billetera qué hacer en consecuencia. De esta forma, hará más potente el protocolo entre la billetera y la aplicación.

Para concluir, tener varias direcciones bajo la misma cuenta en realidad no es crítico y podemos explorarlo gradualmente. Merece investigación y exploración, porque todo el mundo está muy acostumbrado al diseño de Ethereum. Primero mejoramos la experiencia del usuario y, en el futuro, exploraremos cómo debería ser el diseño subyacente mientras mantenemos una buena experiencia del usuario.

Espero que no llegue simplemente a la conclusión de que una dirección es buena, lo que en realidad no lo es. En realidad, hay mucho espacio para diseñar. En la actualidad, tenemos un principio claro: al explorar el nuevo diseño, debemos mantener una buena experiencia de usuario. Este es un resultado de ganar-ganar con el que todos estarán satisfechos.