Autor original: ORFEO
Fuente original: The SeeDAO
El proyecto L2 vuelve a estar en el punto de mira.
Como representante de la ruta de expansión de Rollup en L2, después del airdrop de Arbitrum, se lanzará la Era zkSync. Detrás de los interminables nuevos diseños y hojas de ruta, ¿cuál es la línea principal de Rollup y cuál es el pensamiento evolutivo? Echemos un vistazo hoy.
Puntos principales de este artículo:
Para Bitcoin y Ethereum, desde su nacimiento, hay dos críticas más importantes de los usuarios comunes:
Estas dos críticas se derivan de dos factores en el diseño de blockchain:
Si la cadena de bloques realmente puede ser como un camino de entrada, entonces la solución fundamental es, naturalmente, ampliar el camino de entrada y, al mismo tiempo, cooperar con los medios de precios para guiar el tiempo para salir, y no salgas si no estás en una apurarse.
Sin embargo, aunque ampliar los carriles y aumentar la capacidad de los bloques es una solución atractiva para la eficiencia del tráfico, es el último recurso en el diseño de cadenas de bloques. Debido a que cuanto mayor sea el tamaño del bloque, mayores serán los requisitos de hardware para los mineros y menos mineros podrán cumplir con los requisitos; de acuerdo con esta idea, si desea procesar miles de transacciones por segundo como Visa, solo terminará haciendo otra Visa centralizada va en contra del propósito central de la falta de confianza de blockchain.
hay alguna otra solucion? Sí, además de la orientación del tiempo, también podemos optimizar el espacio, incluidos, entre otros, los siguientes:
Como un autobús en la cadena de bloques, la clave de Rollup es ahorrar espacio y gasolina (gasolina, juego de palabras):
De esta forma, los dos slots de “lento” y “caro” son resueltos por Rollup.
Volvamos a la cadena de bloques y veamos el plan específico de Rollup.
En lugar de echar un vistazo a la respuesta estándar (sin mencionar que no hay), es mejor tener algo de suspenso e imaginar lo que hará cuando tenga la tarea de diseñar Rollup para Ethereum.
También podríamos comenzar desde las dos perspectivas de reducir los costos de computación (ahorrar gasolina) y reducir los costos de almacenamiento (ahorrar espacio), y primero proponer una solución más radical llamada Rollup 1.0;.
Rollup 1.0 consta de 3 puntos principales:
En pocas palabras, es recopilar de forma regular y cuantitativa las solicitudes de transacciones de todos, y después de los cálculos fuera de la cadena, solo los resultados de los cálculos se solidifican en la cadena.
Esta solución resuelve perfectamente los dos principales puntos débiles de “lento” y “caro”, pero parece generar nuevos problemas:
Para estos tres nuevos problemas, podemos iterar una versión del plan.
El problema de la motivación se resuelve mejor, y los problemas que se pueden resolver con dinero no son problemas. El proveedor de servicios puede compartir el costo del “carpooling” en partes iguales y cobrar una pequeña “propina” adicional. Aun así, sigue siendo una situación en la que todos ganan con la persona que “carpooling”.
El problema de la revisión es un poco más problemático, pero la solución es muy común en el campo de la cadena de bloques y es la descentralización. Un grupo de personas son proveedores de servicios, lo cual es mejor que un solo proveedor de servicios; cualquiera puede ser un proveedor de servicios, lo cual es mejor que un grupo fijo de personas. En la última forma de jugar, si todos los proveedores de servicios no son buenos, usted también puede ser un proveedor de servicios o ir directamente a L1 para iniciar el arbitraje.
El fraude es un poco más difícil. Se puede dividir en dos preguntas: una es cómo identificar el fraude y la otra es cómo prevenirlo.
En primer lugar, para identificar el fraude, necesitamos conocer los datos de transacción (Transacción) de todos, el estado antes de la transacción (Estado), para calcular el nuevo estado (Estado’) después de la transacción y compararlo con el nuevo estado almacenado en la cadena del proveedor de servicios. Si es el mismo, significa que el proveedor de servicios es honesto, de lo contrario, significa que mintió. Sin embargo, no conocemos los datos de la transacción porque no están en la cadena. Como resultado, solo podemos ser escépticos e incapaces de juzgar si el proveedor de servicios es honesto o no.
Entonces, la mejor manera de prevenir el fraude es imposibilitar que ocurra el fraude. Esto es relativamente difícil, a menos que se verifique el cálculo del proveedor de servicios cada vez en la cadena, pero de esta manera, no habrá ninguna ventaja de " compartir coche". Por lo tanto, solo podemos dar un paso atrás y hacer que el costo del fraude sea muy alto, de modo que los proveedores de servicios tengan un pellejo en el juego, como pagar un depósito (Stake), que será confiscado si se encuentra un fraude. (Este método se llama consenso social, que pertenece a la seguridad basada en juegos, y también se menciona en “Weekly #3;”.)
Rollup 2.0 no está mal, pero el problema de identificar el fraude no está resuelto.
De acuerdo con la inferencia anterior, para identificar el fraude, debemos conocer los datos de la transacción, por lo que esta parte de los datos debe estar en la misma cadena que los datos de estado.
¿Quién se va a enterar de que son fraudulentos? Obviamente, es poco probable que se trate de un usuario común, ya que es imposible que todos puedan monitorear cada movimiento del proveedor de servicios las 7; x; 24 horas, por lo que solo puede ser un “cazarrecompensas” profesional (Validador). Si un “cazador de recompensas” informa un fraude dentro de los 7 días posteriores a que el proveedor de servicios “envíe la orden” y verifica que es cierto, la transacción se revertirá y el proveedor de servicios será sancionado. Por supuesto, de la misma manera, los “cazarrecompensas” también necesitan incentivos. Por ejemplo, después de que se descubre el fraude, una parte del depósito del proveedor del servicio se entregará al “cazarrecompensas” (solo una parte, para evitar la colusión entre el proveedor de servicios y el cazarrecompensas).
En la etapa de Rollup 3.0, toda la solución pudo funcionar sin problemas, pero se introdujeron nuevos costos. Los costos hasta ahora incluyen:
Echemos un vistazo a qué costos se pueden optimizar.
datos de la transacción
De manera específica, se agregan múltiples transacciones y el espacio ocupado puede ser menor que la suma del espacio ocupado por cada transacción.
Tomando como ejemplo la transacción de transferencia de ETH más simple, desmontamos la composición del contenido de cada transacción y podemos ver que el espacio de la firma representa la mayor proporción. Podemos combinar las firmas de todas las transacciones en una sola (agregación de claves), lo que ahorra una gran cantidad de gastos generales de almacenamiento (similar a Schnorr en Bitcoin). Además, también podemos optimizar otras partes, como deshacerse de Nonce, y elegir “gordo y delgado” tanto como sea posible cuando se “comparte el automóvil”, y una “persona que comparte el automóvil” que se ajuste perfectamente para maximizar el uso del “automóvil”. " espacio.
fuente:
Solo tres o dos veces, el tamaño de cada transacción de transferencia ETH se ha reducido de 112 bytes a 12 bytes, que es cerca de una décima parte de la anterior; por supuesto, existen otros medios para comprimir aún más los datos de la transacción.
En la operación real, podemos instalar dicho método en el contrato implementado en la cadena:
función storeTxData(bytes calldata data) external {;// no hacer nada}
Luego, cada vez que el “carpooling” tiene éxito, los datos de transacción combinados y comprimidos se pasan a este método como datos de llamada. Calldata no necesita almacenarse permanentemente, y después del Período de desafío de publicidad de consenso social (Período de desafío), no importará si se poda (Prune); el precio en sí es muy bajo y será más económico con la implementación de EIPs como Danksharding y Data Blob, esta forma de aplicar L1 a la distribución de almacenamiento de datos (Data Availability) también será más formal.
datos de estado
Ahora que los datos de la transacción se cargaron en la cadena, cualquiera puede calcular el estado actualizado a través de los datos de la transacción, y los datos del estado no son tan necesarios. Solo podemos conservar la Raíz de Merkel de los datos estatales, que se utiliza para permitir que los usuarios normales (“compartidores de vehículos compartidos”) soliciten retiros directamente a L1 cuando el proveedor de servicios no coopera, y confiar en Merkel Proof para demostrar que tienen dinero. en sus cuentas.
Costos de arbitraje de fraude
Cuando el “cazarrecompensas” informa de un fraude al proveedor de servicios, el cálculo del contrato en cadena (Repetición) se realiza una vez y se comparan los resultados del estado. Esto es teóricamente factible. Sin embargo, el costo de hacerlo no es bajo (aunque ya es bueno), y la segunda es que la suma del Gas de las transacciones incluidas en la “lista de carpooling” del Rollup puede exceder el límite de gas de Ethereum, imposibilitando para verificar.
Por lo tanto, el arbitraje debe reducir la carga, y la forma de reducir la carga es, naturalmente, poner operaciones de cálculo innecesarias fuera de la cadena. Una de las soluciones se llama Prueba Interactiva, el proceso general es el siguiente:
(Durante todo el proceso, si una parte no responde después de un tiempo de espera, la parte falla).
De esta manera, el costo del arbitraje en toda la cadena es muy, muy bajo.
Habiendo dicho eso, hemos construido completamente una solución de resumen. Debido a que este esquema asume que el proveedor de servicios es honesto por defecto, a menos que haya un informe de “cazarrecompensas”, esta facción se llama el resumen del optimista, el llamado Resumen Optimista.
Entonces, ¿nuestro Rollup 4.0 es la mejor solución?
Después de nuestras múltiples iteraciones, Rollup 4.0 todavía tiene algunas imperfecciones:
¿Existe una solución que pueda hacer que el fraude sea imposible en absoluto, hacer que la finalidad (Finality) sea más rápida, hacer que sea necesario cargar menos datos en la cadena y hacer que la expansión sea un orden de magnitud mayor? No quiero demasiado, pero hay un tipo de solución que puede satisfacer casi todas las imaginaciones: Zero Knowledge Rollup (ZK-Rollup para abreviar).
ZK-Rollup es una idea de resumen que utiliza prueba de conocimiento cero (ZKP). El llamado ZKP se refiere a la tecnología que convence a la otra parte de que conoce esta información sin revelar ninguna información confidencial. Para explicar ZKP, hay dos de mis ejemplos favoritos:
*Imagínese en una ciudad europea medieval y tengo un mapa del tesoro con un tesoro marcado en él. Para demostrarte que tengo un mapa del tesoro, pero sin dejarte saber la ubicación exacta del tesoro, te pongo una venda en los ojos, te arrastro a un carruaje y conduzco por la ciudad durante media hora para asegurarme. pierde el sentido de la dirección, finalmente llega al destino, sal del auto y te muestra el tesoro, y luego te lleva de regreso. Esta es una forma ingenua de ZKP.
En términos menos rigurosos, la idea central de ZKP es que el probador (Prover) primero oculta el conocimiento secreto, “compromete” (Commit), y luego el verificador (Verifier) inicia un desafío aleatorio (Challenge). si puede pasar con éxito el desafío, entonces hay una alta probabilidad de que tenga el conocimiento secreto correspondiente.
ZKP debe cumplir 3 requisitos:
Para cumplir con estos tres requisitos, ZKP utiliza una variedad de problemas NP, incluida la descomposición de números primos más simple y logaritmos discretos (como el de Schnorr), etc.
ZKP no es una tecnología nacida para blockchain, pero puede usarse para la expansión L2, principalmente porque un buen ZKP tiene las siguientes características útiles:
Con estas características, nuestra solución de resumen puede:
Por supuesto, cualquier mecanismo de seguridad tendrá requisitos previos potenciales, y ZKP no es una panacea para la cadena de bloques. ZKP todavía tiene muchas limitaciones en la actualidad, que deben superarse paso a paso, tales como:
fuente:
Por eso, en ZK-Rollup, un campo de expansión orientado al futuro, cada progreso es encomiable y gratificante.
fuente:
En lo que respecta al futuro de la expansión de la capacidad, el autor cree que, en comparación con la expansión de la capacidad nativa de L1, el diseño en capas que incluye el resumen es una idea más confiable. Modularización, cada capa resuelve las preocupaciones de cada capa, lo que es menos arriesgado que el apilamiento continuo en el ya “monolítico” L1; además, es poco probable teóricamente que la descentralización del L1 subyacente debido a la expansión de la capacidad sea La capa superior lo encuentra y lo hace arriba Además, esta idea de diseño en capas tiene aplicaciones aparentemente exitosas en campos distintos al blockchain. El punto de vista no es necesariamente correcto, pero esta es la cognición actual del autor.
Este artículo intenta resolver las razones de pensamiento y diseño de la solución de expansión de Rollup en un tono agnóstico del proyecto. Debido al nivel limitado, algunos lugares todavía son un poco contundentes, lo que puede no solo dejar de explicar en el lugar, sino que también aumenta la dificultad de comprensión; como un campo vertical que cambia cada día que pasa, el autor puede no ser consciente. de y tener en cuenta muchos nuevos desarrollos en el tiempo. Sinceramente bienvenidos amigos para corregir y comunicarse.