Escrito por: Vitalik Buterin
Compilado por: bayemon.eth, ChainCatcher
Se puede decir que el estado de desarrollo actual de Ethereum incluye una gran cantidad de apuestas de doble nivel. Las apuestas de doble nivel mencionadas aquí se refieren a un modelo de apuesta con dos tipos de participantes.
Operador de Nodo: Opera un nodo y utiliza su propia reputación o una cierta cantidad de su propio capital como garantía.
Agente delegador: los agentes prometen una determinada cantidad de Ethereum, sin una cantidad mínima ni restricciones adicionales sobre otros métodos de participación distintos de la garantía.
Esta doble apuesta emergente se genera a través de una fuerte participación en grupos de apuestas que proporcionan liquidez para los tokens de apuesta (LST). (Tanto Rocket Pool como Lido tienen este modelo).
Sin embargo, el doble staking actual tiene dos defectos:
Riesgo de centralización de los operadores de nodos: el mecanismo de selección de operadores de nodos en todos los grupos de staking actuales todavía está demasiado centralizado
Carga de consenso innecesaria: Ethereum L1 tiene que verificar alrededor de 800.000 firmas por época, lo que supone una carga enorme para una sola ranura. Además, debido a que los pools de staking de liquidez requieren más capital, la red en sí no se beneficia completamente de esta carga. Por lo tanto, si la red Ethereum puede lograr una descentralización y seguridad razonables sin requerir que cada participante firme según el período de tiempo, la comunidad puede adoptar dicha solución para reducir efectivamente la cantidad de firmas por período de tiempo.
En este artículo se describirán las soluciones a los dos problemas anteriores. En primer lugar, suponiendo que la mayor parte del capital está en manos de quienes no están dispuestos a gestionar personalmente los nodos de staking en la forma actual, firmar la información de cada slot, bloquear los depósitos y redistribuirlos entre aquellos cuyos fondos se han reducido, entonces, en este caso, ¿qué papel pueden seguir desempeñando estas personas para poder seguir haciendo contribuciones significativas a la descentralización y la seguridad de la red?
¿Cómo funciona actualmente el doble staking?
Los dos pools de staking más populares son Lido y RocketPool. En el caso de Lido, las dos partes implicadas son:
Operadores de nodos: votados por Lido DAO, lo que significa que en realidad son seleccionados por los titulares de LDO. Cuando alguien deposita ETH en el sistema de contratos inteligentes de Lido, se crea stETH y los operadores de nodos pueden colocarlo en el pool de staking (pero debido a que el comprobante de retiro está vinculado a la dirección del contrato inteligente, el operador no puede retirarlo a voluntad)
Agente: Cuando alguien deposita ETH en el sistema de contrato inteligente Lido, se genera stETH y el operador del nodo puede usarlo como garantía (pero debido a que el comprobante de retiro está vinculado a la dirección del contrato inteligente, el operador no puede retirarlo a voluntad)
Para Rocket Pool son:
Operador de nodo: cualquiera puede convertirse en operador de nodo enviando 8 ETH y una cierta cantidad de tokens RPL.
Agentes: cuando alguien deposita ETH en el sistema de contrato inteligente Rocket Pool, se genera rETH, que el operador del nodo puede usar como garantía (además, debido a que el comprobante de retiro está vinculado a la dirección del contrato inteligente, el operador no puede retirarlo a voluntad).
Rol del agente
En estos sistemas (o nuevos sistemas habilitados por posibles cambios futuros de protocolo), una pregunta clave es: ¿qué sentido tiene tener un proxy desde una perspectiva de protocolo?
Para entender la profunda importancia de esta pregunta, pensemos primero en los cambios de protocolo mencionados en la publicación, que consisten en limitar la penalización por slashing a 2ETH. Rocket Pool también reducirá la cantidad de participación para los operadores de nodos a 2ETH, y la participación de mercado de Rocket Pool aumentará al 100% (para los stakers y los poseedores de ETH, a medida que rETH se vuelva libre de riesgos, casi todos los poseedores de ETH se convertirán en poseedores de rETH u operadores de nodos).
Suponiendo un retorno del 3% para los titulares de rETH (incluidas las recompensas dentro del protocolo y las tarifas de prioridad + MEV) y un retorno del 4% para los operadores de nodos. También asumimos que el suministro total de ETH es de 100 millones.
Los resultados del cálculo son los siguientes. Para evitar la capitalización, calcularemos el rendimiento diariamente:

Ahora, asumiendo que Rocket Pool no existe, el depósito mínimo por participante se reduce a 2 ETH, el límite de liquidez total es de 6,25 millones de ETH y la tasa de retorno del operador del nodo se reduce al 1%. Calculemos de nuevo:

Considere ambos escenarios desde la perspectiva del costo del ataque. En el primer caso, el atacante no se registrará como agente porque los agentes esencialmente no tienen ningún derecho a retirar fondos, por lo que no tiene sentido. Por lo tanto, pondrán en juego todo su ETH y se convertirán en operadores de nodos. Para alcanzar 1/3 de la participación total, necesitarían apostar 2,08 millones de ETH (lo que, para ser justos, sigue siendo una cantidad bastante grande). En el segundo caso, el atacante solo tiene que apostar fondos, y para alcanzar 1/3 de la participación total, todavía necesita apostar 2,08 millones de ETH.
Desde la perspectiva de la economía del staking y del costo del ataque, el resultado final en ambos casos es exactamente el mismo. La proporción del suministro total de ETH en poder de los operadores de nodos aumenta un 0,00256 % cada día, y la proporción del suministro total de ETH en poder de los operadores que no son de nodos disminuye un 0,00017 % cada día. El ataque costó 2,08 millones de ETH. Por lo tanto, en este modelo, el agente parece haberse convertido en una máquina de Rube Goldberg sin sentido, y la comunidad racional puede incluso tender a eliminar al intermediario, reducir significativamente las recompensas por staking y limitar la cantidad total de ETH en stake a 6,25 millones.
Por supuesto, este artículo no aboga por reducir la recompensa por staking en 4 veces y limitar el monto total por staking a 6,25 millones. En cambio, nuestro argumento es que una propiedad clave de un sistema de staking que funcione bien es que los agentes deben tener responsabilidades importantes en todo el sistema. Además, no importa si los agentes están motivados en gran medida a actuar correctamente por la presión de la comunidad y el altruismo; después de todo, esta es la principal fuerza que motiva a las personas a implementar soluciones de staking descentralizadas y de alta seguridad en la actualidad.
Responsabilidades del agente
Si los agentes pudieran desempeñar un papel significativo en un sistema de staking, ¿cuál podría ser ese papel?
Creo que hay dos tipos de respuestas:
Selección de agente: los agentes pueden elegir a qué operadores de nodos delegar su participación. El "peso" de un operador de nodo en el mecanismo de consenso es proporcional a la participación total que se le ha confiado. Actualmente, el mecanismo de selección de proxy aún es limitado, es decir, los titulares de rETH o stETH pueden retirar su ETH y cambiarse a un grupo diferente, pero la usabilidad real de la selección de proxy se puede mejorar en gran medida.
Participación en el mecanismo de consenso: los delegadores pueden elegir desempeñar un determinado papel en el mecanismo de consenso, con responsabilidades "más ligeras" que la suscripción completa, y no habrá un largo período de salida ni riesgos de reducción, pero aún pueden desempeñar un papel en la verificación y el equilibrio de los operadores de nodos.
Selección de agencias mejorada
Hay tres formas de aumentar el poder de selección representativa:
Herramientas de votación mejoradas en los pools
Aumentar la competencia entre pools
Representación fija
Actualmente, votar en pools no es realmente práctico: en Rocket Pool, cualquiera puede convertirse en operador de nodo, y en Lido, la votación la deciden los poseedores de LDO, no los poseedores de ETH. Lido propuso una propuesta para una gobernanza dual de LDO + stETH, donde pueden activar un mecanismo de protección para evitar nuevas votaciones, evitando así que se agreguen o eliminen operadores de nodos, lo que de alguna manera les da voz a los poseedores de stETH. Aún así, este poder es limitado y puede hacerse más fuerte.
La competencia entre pools ya existe hoy en día, pero es relativamente débil. El principal desafío es que los tokens en stake de grupos de staking más pequeños tienen menor liquidez, son menos confiables y reciben menos respaldo de las aplicaciones.
Podemos mejorar los dos primeros problemas limitando el monto de la penalización a una cantidad menor, como 2 o 4 ETH. El ETH restante se puede depositar de forma segura y retirar instantáneamente, lo que permite que el canje bidireccional aún funcione para grupos de staking más pequeños. Podemos mejorar el tercer problema creando un contrato maestro de emisión para administrar LST (similar a los contratos ERC-4337 y ERC-6900 para billeteras) de modo que podamos garantizar que todos los tokens en stake emitidos a través de este contrato sean seguros.
Por el momento no hay ninguna representación concreta en el acuerdo, pero parece probable que esto ocurra en el futuro. Implicará una lógica similar a las ideas anteriores, pero implementada a nivel de protocolo. Consulte este artículo para conocer los pros y contras de solidificar las cosas.
Estas ideas suponen mejoras respecto del status quo, pero las ventajas que pueden ofrecer son limitadas. Hay problemas con la gobernanza de la votación de tokens y, en última instancia, cualquier forma de selección de proxy no incentivada es solo una forma de votación de tokens; esta siempre ha sido mi principal queja con la Prueba de Participación Delegada. Por lo tanto, también es valioso considerar formas de lograr una participación consensuada más sólida.
Participación por consenso
Incluso dejando de lado los problemas actuales con el staking de liquidez, existen limitaciones a los métodos actuales de staking independientes. Suponiendo la finalidad de una sola ranura, cada ranura podría procesar idealmente entre 100.000 y 1.000.000 de firmas BLS. Incluso si utilizamos SNARK recursivos para agregar firmas, para la trazabilidad de las firmas, a cada firma se le debe asignar un campo de bits del participante. Si Ethereum se convierte en una red a escala global, un campo de bits de almacenamiento totalmente descentralizado no será suficiente: 16 MB en cada ranura solo pueden admitir alrededor de 64 millones de participantes.
Desde esta perspectiva, tiene valor separar el staking en un nivel canjeable de mayor complejidad, que entra en vigencia en cada franja horaria pero que solo puede tener 10 000 participantes, y un nivel de menor complejidad al que solo se recurre ocasionalmente para participar. Los niveles de menor complejidad podrían estar exentos de reducciones por completo, o a los participantes se les podría dar aleatoriamente la oportunidad de hacer un depósito y quedar sujetos a reducciones en unos pocos espacios.
En la práctica, esto se puede lograr aumentando el límite de saldo del validador y posteriormente aumentando el umbral de saldo (por ejemplo, 2048 ETH) para determinar qué validadores existentes pasan a niveles de complejidad mayor o menor.
A continuación se presentan algunas sugerencias sobre cómo podrían funcionar estos roles de participación pequeña:
Para cada espacio, se seleccionan aleatoriamente 10.000 pequeños apostadores y pueden firmar lo que creen que es representativo del espacio. Ejecute la regla de elección de bifurcación LMD GHOST utilizando pequeños stakers como entrada. Si existe una cierta divergencia entre la elección de bifurcación impulsada por los pequeños participantes y la elección de bifurcación impulsada por los operadores de nodos, el cliente del usuario no aceptará ningún bloque como confirmación final y mostrará un error. Esto obligó a la comunidad a intervenir y resolver la situación.
Los delegados pueden enviar transacciones anunciando a la red que están en línea y dispuestos a actuar como pequeños participantes durante la próxima hora. El cálculo de un mensaje (bloque o prueba) enviado por un nodo requiere que tanto el nodo como un proxy seleccionado aleatoriamente firmen el mensaje de confirmación del nodo.
Los delegados pueden enviar transacciones anunciando a la red que están en línea y dispuestos a actuar como pequeños participantes durante la próxima hora. En cada período, se seleccionan 10 agentes aleatorios como proveedores de listas de inclusión y se seleccionan 10 000 agentes más como votantes. Estos se eligen hace k espacios y se les da una ventana de k espacios para publicar mensajes en cadena confirmando que están en línea. Cada proveedor de lista de inclusión seleccionada confirmada puede publicar una lista de inclusión y, a menos que para cada lista de inclusión, se incluyan las transacciones en esa lista de inclusión o un voto de los votantes generalmente seleccionados indique que la lista de inclusión no está disponible, el bloqueo se considerará inválido.
Lo que estos pequeños nodos de staking tienen en común es que no necesitan participar activamente en cada espacio, e incluso solo los nodos ligeros pueden hacer todo el trabajo. Por lo tanto, la implementación de nodos solo necesita verificar la capa de consenso, lo que los operadores de nodos pueden lograr a través de aplicaciones o complementos del navegador, que en su mayoría son pasivos y requieren poca sobrecarga computacional, requisitos de hardware o conocimientos técnicos, y ni siquiera requieren tecnologías avanzadas como ZK-EVM.
Estos “pequeños” también tienen un objetivo común: evitar que los operadores de nodos con mayoría del 51% censuren las transacciones. El primero y el segundo también impiden a la mayoría participar en la restauración final. El tercero está más directamente relacionado con la censura, pero es más susceptible a las decisiones de los operadores de nodos mayoritarios.

Estas ideas están escritas desde la perspectiva de una solución de doble staking implementada en el protocolo, pero también pueden implementarse como una característica de los pools de staking. A continuación se presentan algunas ideas de implementación específicas:
Desde una perspectiva de protocolo, cada validador puede establecer dos claves de staking: una clave de staking continuo P, y una dirección de Ethereum vinculada y llamable, y generar una clave de staking rápido Q. El nodo rastrea la información de la firma de la selección de bifurcación como P, y la información firmada está representada por Q. Si los resultados del almacenamiento de PQ son inconsistentes, no se aceptará la finalización de ningún bloque y el fondo de liquidez será responsable de seleccionar representantes al azar.
El protocolo puede permanecer prácticamente sin cambios, pero la clave pública del validador para ese período se establecerá en P+Q. Tenga en cuenta que para el desprendimiento, dos mensajes de desprendimiento pueden tener claves Q diferentes, pero tendrán la misma clave P; el diseño del desprendimiento debe manejar este caso.
Las claves Q solo se pueden utilizar en el protocolo para firmar y verificar listas de inclusión en bloques. En este caso, Q puede ser un contrato inteligente en lugar de una clave única, por lo que los grupos de staking pueden usarlo para implementar una lógica de votación más compleja, aceptando listas de inclusión de proveedores seleccionados al azar o suficientes votos para indicar que una lista de inclusión no está disponible.
en conclusión
Si se implementa correctamente, este ajuste al diseño de prueba de participación puede resolver dos problemas de una sola vez:
Brindar a aquellos que no tienen los recursos o la capacidad para ejecutar una prueba de participación independiente hoy la oportunidad de participar en la prueba de participación, conservando así más poder en sus manos: incluido (i) el poder de elegir qué nodos respaldar y (ii) la capacidad de participar activamente en el consenso de una manera que sea menos costosa que operar un nodo de prueba de participación completo, pero aún así significativa. No todos los participantes elegirán una o ambas de estas opciones, pero cualquier participante que elija una o ambas experimentará una mejora significativa respecto del status quo.
Reducir la cantidad de firmas que la capa de consenso de Ethereum necesita procesar en cada ranura, incluso bajo la finalidad de una sola ranura, a una cantidad más pequeña, como ~10 000. Esto también ayudará con la descentralización, haciendo más fácil para todos ejecutar un nodo validador.
Para cada una de estas soluciones, se pueden encontrar soluciones al problema en diferentes niveles de abstracción: permisos otorgados a los usuarios dentro del protocolo de prueba de participación, elección del usuario entre protocolos de prueba de participación y configuración dentro del protocolo. Esta elección debe considerarse cuidadosamente y a menudo es mejor elegir una configuración mínima viable que minimice la complejidad del protocolo y el alcance de los cambios en la economía del protocolo y, al mismo tiempo, logre los objetivos deseados.
Un agradecimiento especial a Mike Neuder, Justin Drake y otros por sus comentarios y reseñas. Ver también: publicaciones anteriores de Mike Neuder, Dankrad Feist y arixon.eth sobre temas similares.
